From 67618a2eacdf69ffe431ecf5f9250564bd6cff90 Mon Sep 17 00:00:00 2001 From: Floris Bos Date: Thu, 9 Dec 2021 12:22:14 +0100 Subject: [PATCH] Bump bundled libarchive version to 3.5.2 - Update bunlded libarchive version used on Windows/Mac - Enable requested zstd support while we are at it. Closes #211 --- CMakeLists.txt | 35 +- dependencies/libarchive-3.4.2/build/version | 1 - .../doc/pdf/archive_entry_acl.3.pdf | Bin 38427 -> 0 bytes .../doc/pdf/archive_entry_linkify.3.pdf | Bin 28097 -> 0 bytes .../doc/pdf/archive_entry_misc.3.pdf | Bin 21544 -> 0 bytes .../doc/pdf/archive_entry_paths.3.pdf | Bin 24961 -> 0 bytes .../doc/pdf/archive_entry_perms.3.pdf | Bin 29559 -> 0 bytes .../doc/pdf/archive_entry_stat.3.pdf | Bin 33108 -> 0 bytes .../doc/pdf/archive_entry_time.3.pdf | Bin 23170 -> 0 bytes .../doc/pdf/archive_read.3.pdf | Bin 32723 -> 0 bytes .../doc/pdf/archive_read_add_passphrase.3.pdf | Bin 22039 -> 0 bytes .../doc/pdf/archive_read_data.3.pdf | Bin 26077 -> 0 bytes .../doc/pdf/archive_read_disk.3.pdf | Bin 40066 -> 0 bytes .../doc/pdf/archive_read_extract.3.pdf | Bin 28365 -> 0 bytes .../doc/pdf/archive_read_filter.3.pdf | Bin 24806 -> 0 bytes .../doc/pdf/archive_read_free.3.pdf | Bin 22616 -> 0 bytes .../doc/pdf/archive_read_header.3.pdf | Bin 22806 -> 0 bytes .../doc/pdf/archive_read_new.3.pdf | Bin 20025 -> 0 bytes .../doc/pdf/archive_read_open.3.pdf | Bin 30019 -> 0 bytes .../doc/pdf/archive_read_set_options.3.pdf | Bin 27582 -> 0 bytes .../doc/pdf/archive_util.3.pdf | Bin 28801 -> 0 bytes .../doc/pdf/archive_write.3.pdf | Bin 37610 -> 0 bytes .../doc/pdf/archive_write_blocksize.3.pdf | Bin 25771 -> 0 bytes .../doc/pdf/archive_write_data.3.pdf | Bin 22981 -> 0 bytes .../doc/pdf/archive_write_disk.3.pdf | Bin 40388 -> 0 bytes .../doc/pdf/archive_write_finish_entry.3.pdf | Bin 23649 -> 0 bytes .../doc/pdf/archive_write_format.3.pdf | Bin 27093 -> 0 bytes .../doc/pdf/archive_write_free.3.pdf | Bin 22445 -> 0 bytes .../doc/pdf/archive_write_header.3.pdf | Bin 22310 -> 0 bytes .../doc/pdf/archive_write_open.3.pdf | Bin 33186 -> 0 bytes .../doc/pdf/archive_write_set_options.3.pdf | Bin 46786 -> 0 bytes .../pdf/archive_write_set_passphrase.3.pdf | Bin 22283 -> 0 bytes .../libarchive-3.4.2/doc/pdf/bsdcpio.1.pdf | Bin 38939 -> 0 bytes .../libarchive-3.4.2/doc/pdf/bsdtar.1.pdf | Bin 73601 -> 0 bytes .../libarchive-3.4.2/doc/pdf/cpio.5.pdf | Bin 35885 -> 0 bytes .../doc/pdf/libarchive-formats.5.pdf | Bin 42573 -> 0 bytes .../libarchive-3.4.2/doc/pdf/libarchive.3.pdf | Bin 31465 -> 0 bytes .../doc/pdf/libarchive_changes.3.pdf | Bin 35512 -> 0 bytes .../libarchive-3.4.2/doc/pdf/mtree.5.pdf | Bin 32340 -> 0 bytes .../libarchive-3.4.2/doc/pdf/tar.5.pdf | Bin 69058 -> 0 bytes .../libarchive-3.4.2/doc/text/cpio.5.txt | 235 - .../test/test_read_format_mtree.mtree.uu | 20 - .../CMakeLists.txt | 49 +- .../COPYING | 1 - .../INSTALL | 0 .../Makefile.am | 15 +- .../Makefile.in | 13478 +++++++++------- .../NEWS | 14 + .../README.md | 5 +- .../aclocal.m4 | 218 +- .../build/autoconf/ax_append_compile_flags.m4 | 0 .../build/autoconf/ax_append_flag.m4 | 0 .../build/autoconf/ax_check_compile_flag.m4 | 0 .../build/autoconf/ax_require_defined.m4 | 0 .../build/autoconf/check_stdcall_func.m4 | 0 .../build/autoconf/compile | 13 +- .../build/autoconf/config.guess | 0 .../build/autoconf/config.rpath | 0 .../build/autoconf/config.sub | 0 .../build/autoconf/depcomp | 8 +- .../build/autoconf/iconv.m4 | 0 .../build/autoconf/install-sh | 36 +- .../build/autoconf/la_uid_t.m4 | 0 .../build/autoconf/lib-ld.m4 | 0 .../build/autoconf/lib-link.m4 | 0 .../build/autoconf/lib-prefix.m4 | 0 .../build/autoconf/ltmain.sh | 217 +- .../build/autoconf/missing | 16 +- .../build/autoconf/test-driver | 10 +- .../build/autogen.sh | 0 .../build/bump-version.sh | 0 .../build/clean.sh | 0 .../build/cmake/CheckFileOffsetBits.c | 0 .../build/cmake/CheckFileOffsetBits.cmake | 0 .../build/cmake/CheckFuncs.cmake | 0 .../build/cmake/CheckFuncs_stub.c.in | 0 .../build/cmake/CheckHeaderDirent.cmake | 0 .../build/cmake/CheckTypeExists.cmake | 0 .../build/cmake/CreatePkgConfigFile.cmake | 4 +- .../build/cmake/FindLibGCC.cmake | 0 .../build/cmake/FindMbedTLS.cmake | 0 .../build/cmake/FindNettle.cmake | 0 .../build/cmake/FindPCREPOSIX.cmake | 0 .../build/cmake/LibarchiveCodeCoverage.cmake | 0 .../build/cmake/config.h.in | 7 + .../build/pkgconfig/libarchive.pc.in | 0 dependencies/libarchive-3.5.2/build/version | 1 + .../cat/CMakeLists.txt | 0 .../cat/bsdcat.1 | 0 .../cat/bsdcat.c | 0 .../cat/bsdcat.h | 0 .../cat/bsdcat_platform.h | 0 .../cat/cmdline.c | 0 .../cat/test/CMakeLists.txt | 0 .../cat/test/list.h | 2 +- .../cat/test/test.h | 0 .../cat/test/test_0.c | 0 .../cat/test/test_empty.gz.uu | 0 .../cat/test/test_empty.lz4.uu | 0 .../cat/test/test_empty.xz.uu | 0 .../cat/test/test_empty.zst.uu | 0 .../cat/test/test_empty_gz.c | 0 .../cat/test/test_empty_lz4.c | 0 .../cat/test/test_empty_xz.c | 0 .../cat/test/test_empty_zstd.c | 0 .../cat/test/test_error.c | 0 .../cat/test/test_error_mixed.c | 0 .../cat/test/test_expand.Z.uu | 0 .../cat/test/test_expand.bz2.uu | 0 .../cat/test/test_expand.gz.uu | 0 .../cat/test/test_expand.lz4.uu | 0 .../cat/test/test_expand.plain.uu | 0 .../cat/test/test_expand.xz.uu | 0 .../cat/test/test_expand.zst.uu | 0 .../cat/test/test_expand_Z.c | 0 .../cat/test/test_expand_bz2.c | 0 .../cat/test/test_expand_gz.c | 0 .../cat/test/test_expand_lz4.c | 0 .../cat/test/test_expand_mixed.c | 0 .../cat/test/test_expand_plain.c | 0 .../cat/test/test_expand_xz.c | 0 .../cat/test/test_expand_zstd.c | 0 .../cat/test/test_help.c | 0 .../cat/test/test_stdin.c | 0 .../cat/test/test_version.c | 0 .../config.h.in | 15 + .../configure | 516 +- .../configure.ac | 50 +- .../contrib/README | 0 .../contrib/android/Android.mk | 0 .../contrib/android/config/android.h | 0 .../contrib/android/config/linux_host.h | 0 .../contrib/android/config/windows_host.h | 0 .../contrib/android/include/Bcrypt.h | 0 .../contrib/android/include/Windows.h | 0 .../contrib/android/include/android_lf.h | 0 .../contrib/archivetest.c | 0 .../contrib/libarchive.1aix53.spec | 0 .../contrib/libarchive.spec | 4 +- .../libarchive_autodetect-st_lib_archive.m4 | 0 .../contrib/oss-fuzz/corpus.zip | Bin 0 -> 4675 bytes .../contrib/oss-fuzz/libarchive_fuzzer.cc | 49 + .../contrib/oss-fuzz/oss-fuzz-build.sh | 16 + .../contrib/psota-benchmark/results.txt | 0 .../contrib/psota-benchmark/tcp.sh | 0 .../contrib/shar/shar.1 | 0 .../contrib/shar/shar.c | 2 +- .../contrib/shar/tree.c | 0 .../contrib/shar/tree.h | 0 .../contrib/shar/tree_config.h | 0 .../contrib/untar.c | 0 .../cpio/CMakeLists.txt | 0 .../cpio/bsdcpio.1 | 7 + .../cpio/cmdline.c | 4 +- .../cpio/config_freebsd.h | 0 .../cpio/cpio.c | 38 +- .../cpio/cpio.h | 2 + .../cpio/cpio_platform.h | 0 .../cpio/cpio_windows.c | 0 .../cpio/cpio_windows.h | 0 .../cpio/test/CMakeLists.txt | 22 +- .../cpio/test/list.h | 14 +- .../cpio/test/test.h | 0 .../cpio/test/test_0.c | 0 .../cpio/test/test_basic.c | 2 + .../cpio/test/test_cmdline.c | 0 .../cpio/test/test_extract.cpio.Z.uu | 0 .../cpio/test/test_extract.cpio.bz2.uu | 0 .../cpio/test/test_extract.cpio.grz.uu | 0 .../cpio/test/test_extract.cpio.gz.uu | 0 .../cpio/test/test_extract.cpio.lrz.uu | 0 .../cpio/test/test_extract.cpio.lz.uu | 0 .../cpio/test/test_extract.cpio.lz4.uu | 0 .../cpio/test/test_extract.cpio.lzma.uu | 0 .../cpio/test/test_extract.cpio.lzo.uu | 0 .../cpio/test/test_extract.cpio.xz.uu | 0 .../cpio/test/test_extract.cpio.zst.uu | 0 .../cpio/test/test_extract_cpio_Z.c | 0 .../cpio/test/test_extract_cpio_bz2.c | 0 .../cpio/test/test_extract_cpio_grz.c | 0 .../cpio/test/test_extract_cpio_gz.c | 0 .../cpio/test/test_extract_cpio_lrz.c | 0 .../cpio/test/test_extract_cpio_lz.c | 0 .../cpio/test/test_extract_cpio_lz4.c | 0 .../cpio/test/test_extract_cpio_lzma.c | 0 .../cpio/test/test_extract_cpio_lzo.c | 0 .../cpio/test/test_extract_cpio_xz.c | 0 .../cpio/test/test_extract_cpio_zstd.c | 0 .../cpio/test/test_format_newc.c | 33 +- .../cpio/test/test_gcpio_compat.c | 0 .../cpio/test/test_gcpio_compat_ref.bin.uu | 0 .../cpio/test/test_gcpio_compat_ref.crc.uu | 0 .../cpio/test/test_gcpio_compat_ref.newc.uu | 0 .../cpio/test/test_gcpio_compat_ref.ustar.uu | 0 .../test/test_gcpio_compat_ref_nosym.bin.uu | 0 .../test/test_gcpio_compat_ref_nosym.crc.uu | 0 .../test/test_gcpio_compat_ref_nosym.newc.uu | 0 .../test/test_gcpio_compat_ref_nosym.ustar.uu | 0 .../cpio/test/test_missing_file.c | 0 .../cpio/test/test_option_0.c | 0 .../cpio/test/test_option_B_upper.c | 0 .../cpio/test/test_option_C_upper.c | 0 .../cpio/test/test_option_J_upper.c | 0 .../cpio/test/test_option_L_upper.c | 0 .../cpio/test/test_option_Z_upper.c | 0 .../cpio/test/test_option_a.c | 0 .../cpio/test/test_option_b64encode.c | 0 .../cpio/test/test_option_c.c | 0 .../cpio/test/test_option_d.c | 0 .../cpio/test/test_option_f.c | 0 .../cpio/test/test_option_f.cpio.uu | 0 .../cpio/test/test_option_grzip.c | 0 .../cpio/test/test_option_help.c | 0 .../cpio/test/test_option_l.c | 0 .../cpio/test/test_option_lrzip.c | 0 .../cpio/test/test_option_lz4.c | 0 .../cpio/test/test_option_lzma.c | 0 .../cpio/test/test_option_lzop.c | 0 .../cpio/test/test_option_m.c | 0 .../cpio/test/test_option_m.cpio.uu | 0 .../cpio/test/test_option_passphrase.c | 0 .../cpio/test/test_option_passphrase.zip.uu | 0 .../cpio/test/test_option_t.c | 0 .../cpio/test/test_option_t.cpio.uu | 0 .../cpio/test/test_option_t.stdout.uu | 0 .../cpio/test/test_option_tv.stdout.uu | 0 .../cpio/test/test_option_u.c | 0 .../cpio/test/test_option_uuencode.c | 0 .../cpio/test/test_option_version.c | 0 .../cpio/test/test_option_xz.c | 0 .../cpio/test/test_option_y.c | 0 .../cpio/test/test_option_z.c | 0 .../cpio/test/test_option_zstd.c | 0 .../cpio/test/test_owner_parse.c | 0 .../cpio/test/test_passthrough_dotdot.c | 0 .../cpio/test/test_passthrough_reverse.c | 0 .../doc/html/.ignore_me | 0 .../doc/html/Makefile | 8 +- .../doc/html/archive_entry.3.html | 4 +- .../doc/html/archive_entry_acl.3.html | 30 +- .../doc/html/archive_entry_linkify.3.html | 4 +- .../doc/html/archive_entry_misc.3.html | 4 +- .../doc/html/archive_entry_paths.3.html | 4 +- .../doc/html/archive_entry_perms.3.html | 4 +- .../doc/html/archive_entry_stat.3.html | 8 +- .../doc/html/archive_entry_time.3.html | 4 +- .../doc/html/archive_read.3.html | 6 +- .../html/archive_read_add_passphrase.3.html | 4 +- .../doc/html/archive_read_data.3.html | 4 +- .../doc/html/archive_read_disk.3.html | 30 +- .../doc/html/archive_read_extract.3.html | 4 +- .../doc/html/archive_read_filter.3.html | 26 +- .../doc/html/archive_read_format.3.html | 24 +- .../doc/html/archive_read_free.3.html | 4 +- .../doc/html/archive_read_header.3.html | 4 +- .../doc/html/archive_read_new.3.html | 4 +- .../doc/html/archive_read_open.3.html | 4 +- .../doc/html/archive_read_set_options.3.html | 22 +- .../doc/html/archive_util.3.html | 29 +- .../doc/html/archive_write.3.html | 14 +- .../doc/html/archive_write_blocksize.3.html | 8 +- .../doc/html/archive_write_data.3.html | 4 +- .../doc/html/archive_write_disk.3.html | 15 +- .../doc/html/archive_write_filter.3.html | 4 +- .../html/archive_write_finish_entry.3.html | 4 +- .../doc/html/archive_write_format.3.html | 31 +- .../doc/html/archive_write_free.3.html | 4 +- .../doc/html/archive_write_header.3.html | 4 +- .../doc/html/archive_write_new.3.html | 4 +- .../doc/html/archive_write_open.3.html | 55 +- .../doc/html/archive_write_set_options.3.html | 113 +- .../html/archive_write_set_passphrase.3.html | 4 +- .../doc/html/bsdcpio.1.html | 45 +- .../doc/html/bsdtar.1.html | 90 +- .../doc/html/cpio.5.html | 367 +- .../doc/html/libarchive-formats.5.html | 121 +- .../doc/html/libarchive.3.html | 19 +- .../doc/html/libarchive_changes.3.html | 18 +- .../doc/html/libarchive_internals.3.html | 4 +- .../doc/html/mtree.5.html | 29 +- .../doc/html/tar.5.html | 281 +- .../doc/man/.ignore_me | 0 .../doc/man/Makefile | 8 +- .../doc/man/archive_entry.3 | 0 .../doc/man/archive_entry_acl.3 | 0 .../doc/man/archive_entry_linkify.3 | 0 .../doc/man/archive_entry_misc.3 | 0 .../doc/man/archive_entry_paths.3 | 0 .../doc/man/archive_entry_perms.3 | 0 .../doc/man/archive_entry_stat.3 | 4 +- .../doc/man/archive_entry_time.3 | 0 .../doc/man/archive_read.3 | 0 .../doc/man/archive_read_add_passphrase.3 | 0 .../doc/man/archive_read_data.3 | 0 .../doc/man/archive_read_disk.3 | 0 .../doc/man/archive_read_extract.3 | 0 .../doc/man/archive_read_filter.3 | 15 +- .../doc/man/archive_read_format.3 | 0 .../doc/man/archive_read_free.3 | 0 .../doc/man/archive_read_header.3 | 0 .../doc/man/archive_read_new.3 | 0 .../doc/man/archive_read_open.3 | 0 .../doc/man/archive_read_set_options.3 | 11 + .../doc/man/archive_util.3 | 0 .../doc/man/archive_write.3 | 0 .../doc/man/archive_write_blocksize.3 | 0 .../doc/man/archive_write_data.3 | 0 .../doc/man/archive_write_disk.3 | 0 .../doc/man/archive_write_filter.3 | 0 .../doc/man/archive_write_finish_entry.3 | 0 .../doc/man/archive_write_format.3 | 24 +- .../doc/man/archive_write_free.3 | 0 .../doc/man/archive_write_header.3 | 0 .../doc/man/archive_write_new.3 | 0 .../doc/man/archive_write_open.3 | 33 +- .../doc/man/archive_write_set_options.3 | 21 +- .../doc/man/archive_write_set_passphrase.3 | 0 .../doc/man/bsdcpio.1 | 9 + .../doc/man/bsdtar.1 | 3 +- .../doc/man/cpio.5 | 240 +- .../doc/man/libarchive-formats.5 | 37 +- .../doc/man/libarchive.3 | 2 +- .../doc/man/libarchive_changes.3 | 0 .../doc/man/libarchive_internals.3 | 0 .../doc/man/mtree.5 | 0 .../doc/man/tar.5 | 0 .../doc/mdoc2man.awk | 0 .../doc/mdoc2wiki.awk | 0 .../doc/pdf/.ignore_me | 0 .../doc/pdf/Makefile | 8 +- .../doc/pdf/archive_entry.3.pdf | Bin 28804 -> 28974 bytes .../doc/pdf/archive_entry_acl.3.pdf | Bin 0 -> 38581 bytes .../doc/pdf/archive_entry_linkify.3.pdf | Bin 0 -> 28261 bytes .../doc/pdf/archive_entry_misc.3.pdf | Bin 0 -> 21711 bytes .../doc/pdf/archive_entry_paths.3.pdf | Bin 0 -> 25125 bytes .../doc/pdf/archive_entry_perms.3.pdf | Bin 0 -> 29724 bytes .../doc/pdf/archive_entry_stat.3.pdf | Bin 0 -> 33264 bytes .../doc/pdf/archive_entry_time.3.pdf | Bin 0 -> 23334 bytes .../doc/pdf/archive_read.3.pdf | Bin 0 -> 32863 bytes .../doc/pdf/archive_read_add_passphrase.3.pdf | Bin 0 -> 22201 bytes .../doc/pdf/archive_read_data.3.pdf | Bin 0 -> 26233 bytes .../doc/pdf/archive_read_disk.3.pdf | Bin 0 -> 40240 bytes .../doc/pdf/archive_read_extract.3.pdf | Bin 0 -> 28535 bytes .../doc/pdf/archive_read_filter.3.pdf | Bin 0 -> 26171 bytes .../doc/pdf/archive_read_format.3.pdf | Bin 27043 -> 27209 bytes .../doc/pdf/archive_read_free.3.pdf | Bin 0 -> 22789 bytes .../doc/pdf/archive_read_header.3.pdf | Bin 0 -> 22973 bytes .../doc/pdf/archive_read_new.3.pdf | Bin 0 -> 20202 bytes .../doc/pdf/archive_read_open.3.pdf | Bin 0 -> 30177 bytes .../doc/pdf/archive_read_set_options.3.pdf | Bin 0 -> 28187 bytes .../doc/pdf/archive_util.3.pdf | Bin 0 -> 28970 bytes .../doc/pdf/archive_write.3.pdf | Bin 0 -> 37778 bytes .../doc/pdf/archive_write_blocksize.3.pdf | Bin 0 -> 25921 bytes .../doc/pdf/archive_write_data.3.pdf | Bin 0 -> 23135 bytes .../doc/pdf/archive_write_disk.3.pdf | Bin 0 -> 40567 bytes .../doc/pdf/archive_write_filter.3.pdf | Bin 24821 -> 24996 bytes .../doc/pdf/archive_write_finish_entry.3.pdf | Bin 0 -> 23833 bytes .../doc/pdf/archive_write_format.3.pdf | Bin 0 -> 27360 bytes .../doc/pdf/archive_write_free.3.pdf | Bin 0 -> 22624 bytes .../doc/pdf/archive_write_header.3.pdf | Bin 0 -> 22488 bytes .../doc/pdf/archive_write_new.3.pdf | Bin 20012 -> 20177 bytes .../doc/pdf/archive_write_open.3.pdf | Bin 0 -> 33883 bytes .../doc/pdf/archive_write_set_options.3.pdf | Bin 0 -> 47200 bytes .../pdf/archive_write_set_passphrase.3.pdf | Bin 0 -> 22456 bytes .../libarchive-3.5.2/doc/pdf/bsdcpio.1.pdf | Bin 0 -> 39464 bytes .../libarchive-3.5.2/doc/pdf/bsdtar.1.pdf | Bin 0 -> 73931 bytes .../libarchive-3.5.2/doc/pdf/cpio.5.pdf | Bin 0 -> 39944 bytes .../doc/pdf/libarchive-formats.5.pdf | Bin 0 -> 42891 bytes .../libarchive-3.5.2/doc/pdf/libarchive.3.pdf | Bin 0 -> 31661 bytes .../doc/pdf/libarchive_changes.3.pdf | Bin 0 -> 35697 bytes .../doc/pdf/libarchive_internals.3.pdf | Bin 39742 -> 39907 bytes .../libarchive-3.5.2/doc/pdf/mtree.5.pdf | Bin 0 -> 32505 bytes .../libarchive-3.5.2/doc/pdf/tar.5.pdf | Bin 0 -> 69196 bytes .../doc/text/.ignore_me | 0 .../doc/text/Makefile | 8 +- .../doc/text/archive_entry.3.txt | 8 +- .../doc/text/archive_entry_acl.3.txt | 65 +- .../doc/text/archive_entry_linkify.3.txt | 46 +- .../doc/text/archive_entry_misc.3.txt | 12 +- .../doc/text/archive_entry_paths.3.txt | 8 +- .../doc/text/archive_entry_perms.3.txt | 16 +- .../doc/text/archive_entry_stat.3.txt | 29 +- .../doc/text/archive_entry_time.3.txt | 4 +- .../doc/text/archive_read.3.txt | 22 +- .../text/archive_read_add_passphrase.3.txt | 6 +- .../doc/text/archive_read_data.3.txt | 18 +- .../doc/text/archive_read_disk.3.txt | 70 +- .../doc/text/archive_read_extract.3.txt | 29 +- .../doc/text/archive_read_filter.3.txt | 19 +- .../doc/text/archive_read_format.3.txt | 40 +- .../doc/text/archive_read_free.3.txt | 4 +- .../doc/text/archive_read_header.3.txt | 10 +- .../doc/text/archive_read_new.3.txt | 2 +- .../doc/text/archive_read_open.3.txt | 24 +- .../doc/text/archive_read_set_options.3.txt | 26 +- .../doc/text/archive_util.3.txt | 34 +- .../doc/text/archive_write.3.txt | 32 +- .../doc/text/archive_write_blocksize.3.txt | 6 +- .../doc/text/archive_write_data.3.txt | 16 +- .../doc/text/archive_write_disk.3.txt | 102 +- .../doc/text/archive_write_filter.3.txt | 4 +- .../doc/text/archive_write_finish_entry.3.txt | 12 +- .../doc/text/archive_write_format.3.txt | 28 +- .../doc/text/archive_write_free.3.txt | 8 +- .../doc/text/archive_write_header.3.txt | 8 +- .../doc/text/archive_write_new.3.txt | 2 +- .../doc/text/archive_write_open.3.txt | 82 +- .../doc/text/archive_write_set_options.3.txt | 182 +- .../text/archive_write_set_passphrase.3.txt | 2 +- .../doc/text/bsdcpio.1.txt | 69 +- .../doc/text/bsdtar.1.txt | 293 +- .../libarchive-3.5.2/doc/text/cpio.5.txt | 292 + .../doc/text/libarchive-formats.5.txt | 222 +- .../doc/text/libarchive.3.txt | 102 +- .../doc/text/libarchive_changes.3.txt | 52 +- .../doc/text/libarchive_internals.3.txt | 68 +- .../doc/text/mtree.5.txt | 60 +- .../doc/text/tar.5.txt | 342 +- .../doc/update.sh | 0 .../doc/wiki/.ignore_me | 0 .../doc/wiki/Makefile | 8 +- .../doc/wiki/ManPageArchiveEntry3.wiki | 22 +- .../doc/wiki/ManPageArchiveEntryAcl3.wiki | 6 +- .../doc/wiki/ManPageArchiveEntryLinkify3.wiki | 4 +- .../doc/wiki/ManPageArchiveEntryMisc3.wiki | 8 +- .../doc/wiki/ManPageArchiveEntryPaths3.wiki | 8 +- .../doc/wiki/ManPageArchiveEntryPerms3.wiki | 10 +- .../doc/wiki/ManPageArchiveEntryStat3.wiki | 14 +- .../doc/wiki/ManPageArchiveEntryTime3.wiki | 6 +- .../doc/wiki/ManPageArchiveRead3.wiki | 38 +- .../ManPageArchiveReadAddPassphrase3.wiki | 6 +- .../doc/wiki/ManPageArchiveReadData3.wiki | 18 +- .../doc/wiki/ManPageArchiveReadDisk3.wiki | 16 +- .../doc/wiki/ManPageArchiveReadExtract3.wiki | 36 +- .../doc/wiki/ManPageArchiveReadFilter3.wiki | 22 +- .../doc/wiki/ManPageArchiveReadFormat3.wiki | 10 +- .../doc/wiki/ManPageArchiveReadFree3.wiki | 16 +- .../doc/wiki/ManPageArchiveReadHeader3.wiki | 18 +- .../doc/wiki/ManPageArchiveReadNew3.wiki | 14 +- .../doc/wiki/ManPageArchiveReadOpen3.wiki | 16 +- .../wiki/ManPageArchiveReadSetOptions3.wiki | 17 +- .../doc/wiki/ManPageArchiveUtil3.wiki | 12 +- .../doc/wiki/ManPageArchiveWrite3.wiki | 22 +- .../wiki/ManPageArchiveWriteBlocksize3.wiki | 4 +- .../doc/wiki/ManPageArchiveWriteData3.wiki | 6 +- .../doc/wiki/ManPageArchiveWriteDisk3.wiki | 10 +- .../doc/wiki/ManPageArchiveWriteFilter3.wiki | 8 +- .../wiki/ManPageArchiveWriteFinishEntry3.wiki | 6 +- .../doc/wiki/ManPageArchiveWriteFormat3.wiki | 34 +- .../doc/wiki/ManPageArchiveWriteFree3.wiki | 4 +- .../doc/wiki/ManPageArchiveWriteHeader3.wiki | 6 +- .../doc/wiki/ManPageArchiveWriteNew3.wiki | 8 +- .../doc/wiki/ManPageArchiveWriteOpen3.wiki | 48 +- .../wiki/ManPageArchiveWriteSetOptions3.wiki | 23 +- .../ManPageArchiveWriteSetPassphrase3.wiki | 6 +- .../doc/wiki/ManPageBsdcpio1.wiki | 17 +- .../doc/wiki/ManPageBsdtar1.wiki | 19 +- .../doc/wiki/ManPageCpio5.wiki | 218 +- .../doc/wiki/ManPageLibarchive3.wiki | 34 +- .../doc/wiki/ManPageLibarchiveChanges3.wiki | 20 +- .../doc/wiki/ManPageLibarchiveFormats5.wiki | 49 +- .../doc/wiki/ManPageLibarchiveInternals3.wiki | 22 +- .../doc/wiki/ManPageMtree5.wiki | 0 .../doc/wiki/ManPageTar5.wiki | 0 .../examples/minitar/README | 0 .../examples/minitar/minitar.c | 0 .../examples/tarfilter.c | 0 .../examples/untar.c | 0 .../libarchive/CMakeLists.txt | 3 +- .../libarchive/archive.h | 15 +- .../libarchive/archive_acl.c | 10 +- .../libarchive/archive_acl_private.h | 0 .../libarchive/archive_blake2.h | 0 .../libarchive/archive_blake2_impl.h | 0 .../libarchive/archive_blake2s_ref.c | 0 .../libarchive/archive_blake2sp_ref.c | 0 .../libarchive/archive_check_magic.c | 2 +- .../libarchive/archive_cmdline.c | 0 .../libarchive/archive_cmdline_private.h | 0 .../libarchive/archive_crc32.h | 0 .../libarchive/archive_cryptor.c | 23 + .../libarchive/archive_cryptor_private.h | 9 + .../libarchive/archive_digest.c | 534 +- .../libarchive/archive_digest_private.h | 4 + .../libarchive/archive_disk_acl_darwin.c | 0 .../libarchive/archive_disk_acl_freebsd.c | 20 +- .../libarchive/archive_disk_acl_linux.c | 23 +- .../libarchive/archive_disk_acl_sunos.c | 13 +- .../libarchive/archive_endian.h | 0 .../libarchive/archive_entry.3 | 0 .../libarchive/archive_entry.c | 85 +- .../libarchive/archive_entry.h | 15 +- .../libarchive/archive_entry_acl.3 | 0 .../libarchive/archive_entry_copy_bhfi.c | 0 .../libarchive/archive_entry_copy_stat.c | 0 .../libarchive/archive_entry_link_resolver.c | 0 .../libarchive/archive_entry_linkify.3 | 0 .../libarchive/archive_entry_locale.h | 0 .../libarchive/archive_entry_misc.3 | 0 .../libarchive/archive_entry_paths.3 | 0 .../libarchive/archive_entry_perms.3 | 0 .../libarchive/archive_entry_private.h | 16 + .../libarchive/archive_entry_sparse.c | 0 .../libarchive/archive_entry_stat.3 | 4 +- .../libarchive/archive_entry_stat.c | 0 .../libarchive/archive_entry_strmode.c | 0 .../libarchive/archive_entry_time.3 | 0 .../libarchive/archive_entry_xattr.c | 0 .../libarchive/archive_getdate.c | 0 .../libarchive/archive_getdate.h | 0 .../libarchive/archive_hmac.c | 0 .../libarchive/archive_hmac_private.h | 0 .../libarchive/archive_match.c | 0 .../libarchive/archive_openssl_evp_private.h | 0 .../libarchive/archive_openssl_hmac_private.h | 0 .../libarchive/archive_options.c | 0 .../libarchive/archive_options_private.h | 0 .../libarchive/archive_pack_dev.c | 0 .../libarchive/archive_pack_dev.h | 0 .../libarchive/archive_pathmatch.c | 4 + .../libarchive/archive_pathmatch.h | 0 .../libarchive/archive_platform.h | 0 .../libarchive/archive_platform_acl.h | 0 .../libarchive/archive_platform_xattr.h | 0 .../libarchive/archive_ppmd7.c | 2 +- .../libarchive/archive_ppmd7_private.h | 0 .../libarchive/archive_ppmd8.c | 0 .../libarchive/archive_ppmd8_private.h | 0 .../libarchive/archive_ppmd_private.h | 0 .../libarchive/archive_private.h | 7 + .../libarchive/archive_random.c | 8 +- .../libarchive/archive_random_private.h | 0 .../libarchive/archive_rb.c | 0 .../libarchive/archive_rb.h | 0 .../libarchive/archive_read.3 | 0 .../libarchive/archive_read.c | 17 +- .../libarchive/archive_read_add_passphrase.3 | 0 .../libarchive/archive_read_add_passphrase.c | 4 + .../libarchive/archive_read_append_filter.c | 0 .../libarchive/archive_read_data.3 | 0 .../libarchive/archive_read_data_into_fd.c | 0 .../libarchive/archive_read_disk.3 | 0 .../archive_read_disk_entry_from_file.c | 48 +- .../libarchive/archive_read_disk_posix.c | 96 +- .../libarchive/archive_read_disk_private.h | 0 .../archive_read_disk_set_standard_lookup.c | 0 .../libarchive/archive_read_disk_windows.c | 2 +- .../libarchive/archive_read_extract.3 | 0 .../libarchive/archive_read_extract.c | 0 .../libarchive/archive_read_extract2.c | 0 .../libarchive/archive_read_filter.3 | 12 +- .../libarchive/archive_read_format.3 | 0 .../libarchive/archive_read_free.3 | 0 .../libarchive/archive_read_header.3 | 0 .../libarchive/archive_read_new.3 | 0 .../libarchive/archive_read_open.3 | 0 .../libarchive/archive_read_open_fd.c | 0 .../libarchive/archive_read_open_file.c | 0 .../libarchive/archive_read_open_filename.c | 4 + .../libarchive/archive_read_open_memory.c | 0 .../libarchive/archive_read_private.h | 0 .../libarchive/archive_read_set_format.c | 9 + .../libarchive/archive_read_set_options.3 | 9 + .../libarchive/archive_read_set_options.c | 0 .../archive_read_support_filter_all.c | 0 .../archive_read_support_filter_by_code.c | 83 + .../archive_read_support_filter_bzip2.c | 0 .../archive_read_support_filter_compress.c | 0 .../archive_read_support_filter_grzip.c | 0 .../archive_read_support_filter_gzip.c | 0 .../archive_read_support_filter_lrzip.c | 0 .../archive_read_support_filter_lz4.c | 0 .../archive_read_support_filter_lzop.c | 0 .../archive_read_support_filter_none.c | 0 .../archive_read_support_filter_program.c | 23 +- .../archive_read_support_filter_rpm.c | 2 +- .../archive_read_support_filter_uu.c | 2 +- .../archive_read_support_filter_xz.c | 0 .../archive_read_support_filter_zstd.c | 4 + .../archive_read_support_format_7zip.c | 14 +- .../archive_read_support_format_all.c | 0 .../archive_read_support_format_ar.c | 0 .../archive_read_support_format_by_code.c | 15 + .../archive_read_support_format_cab.c | 3 +- .../archive_read_support_format_cpio.c | 18 + .../archive_read_support_format_empty.c | 2 +- .../archive_read_support_format_iso9660.c | 0 .../archive_read_support_format_lha.c | 0 .../archive_read_support_format_mtree.c | 145 +- .../archive_read_support_format_rar.c | 28 +- .../archive_read_support_format_rar5.c | 14 +- .../archive_read_support_format_raw.c | 0 .../archive_read_support_format_tar.c | 24 +- .../archive_read_support_format_warc.c | 20 +- .../archive_read_support_format_xar.c | 17 +- .../archive_read_support_format_zip.c | 97 +- .../libarchive/archive_string.c | 52 +- .../libarchive/archive_string.h | 2 +- .../libarchive/archive_string_composition.h | 0 .../libarchive/archive_string_sprintf.c | 0 .../libarchive/archive_util.3 | 0 .../libarchive/archive_util.c | 6 + .../libarchive/archive_version_details.c | 0 .../libarchive/archive_virtual.c | 0 .../libarchive/archive_windows.c | 0 .../libarchive/archive_windows.h | 0 .../libarchive/archive_write.3 | 0 .../libarchive/archive_write.c | 65 +- .../libarchive/archive_write_add_filter.c | 0 .../archive_write_add_filter_b64encode.c | 0 .../archive_write_add_filter_by_name.c | 0 .../archive_write_add_filter_bzip2.c | 0 .../archive_write_add_filter_compress.c | 0 .../archive_write_add_filter_grzip.c | 0 .../archive_write_add_filter_gzip.c | 0 .../archive_write_add_filter_lrzip.c | 0 .../libarchive/archive_write_add_filter_lz4.c | 0 .../archive_write_add_filter_lzop.c | 0 .../archive_write_add_filter_none.c | 0 .../archive_write_add_filter_program.c | 26 +- .../archive_write_add_filter_uuencode.c | 0 .../libarchive/archive_write_add_filter_xz.c | 4 +- .../archive_write_add_filter_zstd.c | 79 +- .../libarchive/archive_write_blocksize.3 | 0 .../libarchive/archive_write_data.3 | 0 .../libarchive/archive_write_disk.3 | 0 .../libarchive/archive_write_disk_posix.c | 115 +- .../libarchive/archive_write_disk_private.h | 0 .../archive_write_disk_set_standard_lookup.c | 0 .../libarchive/archive_write_disk_windows.c | 19 +- .../libarchive/archive_write_filter.3 | 0 .../libarchive/archive_write_finish_entry.3 | 0 .../libarchive/archive_write_format.3 | 18 +- .../libarchive/archive_write_free.3 | 0 .../libarchive/archive_write_header.3 | 0 .../libarchive/archive_write_new.3 | 0 .../libarchive/archive_write_open.3 | 37 +- .../libarchive/archive_write_open_fd.c | 10 +- .../libarchive/archive_write_open_file.c | 10 +- .../libarchive/archive_write_open_filename.c | 21 +- .../libarchive/archive_write_open_memory.c | 10 +- .../libarchive/archive_write_private.h | 1 + .../libarchive/archive_write_set_format.c | 6 +- .../archive_write_set_format_7zip.c | 11 +- .../libarchive/archive_write_set_format_ar.c | 0 .../archive_write_set_format_by_name.c | 4 +- .../archive_write_set_format_cpio.c | 10 + .../archive_write_set_format_cpio_binary.c | 610 + .../archive_write_set_format_cpio_newc.c | 2 +- .../archive_write_set_format_cpio_odc.c} | 44 +- .../archive_write_set_format_filter_by_ext.c | 0 .../archive_write_set_format_gnutar.c | 0 .../archive_write_set_format_iso9660.c | 3 +- .../archive_write_set_format_mtree.c | 49 +- .../libarchive/archive_write_set_format_pax.c | 0 .../archive_write_set_format_private.h | 0 .../libarchive/archive_write_set_format_raw.c | 0 .../archive_write_set_format_shar.c | 0 .../archive_write_set_format_ustar.c | 0 .../archive_write_set_format_v7tar.c | 0 .../archive_write_set_format_warc.c | 0 .../libarchive/archive_write_set_format_xar.c | 7 +- .../libarchive/archive_write_set_format_zip.c | 5 + .../libarchive/archive_write_set_options.3 | 17 +- .../libarchive/archive_write_set_options.c | 0 .../libarchive/archive_write_set_passphrase.3 | 0 .../libarchive/archive_write_set_passphrase.c | 0 .../libarchive/archive_xxhash.h | 0 .../libarchive/config_freebsd.h | 3 + .../libarchive/cpio.5 | 218 +- .../libarchive/filter_fork.h | 9 +- .../libarchive/filter_fork_posix.c | 10 +- .../libarchive/filter_fork_windows.c | 17 +- .../libarchive/libarchive-formats.5 | 37 +- .../libarchive/libarchive.3 | 2 +- .../libarchive/libarchive_changes.3 | 0 .../libarchive/libarchive_internals.3 | 0 .../libarchive/mtree.5 | 0 .../libarchive/tar.5 | 0 .../libarchive/test/CMakeLists.txt | 5 +- .../libarchive/test/README | 0 .../libarchive/test/list.h | 79 +- .../libarchive/test/read_open_memory.c | 0 .../libarchive/test/test.h | 0 .../libarchive/test/test_acl_nfs4.c | 0 .../libarchive/test/test_acl_pax.c | 0 .../libarchive/test/test_acl_pax_nfs4.tar.uu | 0 .../test/test_acl_pax_posix1e.tar.uu | 0 .../libarchive/test/test_acl_platform_nfs4.c | 2 + .../test/test_acl_platform_posix1e.c | 4 +- .../libarchive/test/test_acl_posix1e.c | 0 .../libarchive/test/test_acl_text.c | 0 .../test/test_archive_api_feature.c | 0 .../test/test_archive_clear_error.c | 0 .../libarchive/test/test_archive_cmdline.c | 0 .../libarchive/test/test_archive_digest.c | 0 .../libarchive/test/test_archive_getdate.c | 0 .../test/test_archive_match_owner.c | 0 .../libarchive/test/test_archive_match_path.c | 0 .../libarchive/test/test_archive_match_time.c | 0 .../libarchive/test/test_archive_pathmatch.c | 4 + .../test/test_archive_read_add_passphrase.c | 0 .../test/test_archive_read_close_twice.c | 0 .../test_archive_read_close_twice_open_fd.c | 0 ...t_archive_read_close_twice_open_filename.c | 0 .../test_archive_read_multiple_data_objects.c | 0 .../test_archive_read_next_header_empty.c | 26 +- .../test/test_archive_read_next_header_raw.c | 0 .../libarchive/test/test_archive_read_open2.c | 0 .../test_archive_read_set_filter_option.c | 0 .../test_archive_read_set_format_option.c | 0 .../test/test_archive_read_set_option.c | 0 .../test/test_archive_read_set_options.c | 0 .../test/test_archive_read_support.c | 49 + .../libarchive/test/test_archive_set_error.c | 0 .../libarchive/test/test_archive_string.c | 0 .../test/test_archive_string_conversion.c | 79 +- .../test_archive_string_conversion.txt.Z.uu | 0 .../test_archive_write_add_filter_by_name.c | 0 .../test_archive_write_set_filter_option.c | 0 .../test_archive_write_set_format_by_name.c | 0 ...t_archive_write_set_format_filter_by_ext.c | 0 .../test_archive_write_set_format_option.c | 0 .../test/test_archive_write_set_option.c | 0 .../test/test_archive_write_set_options.c | 0 .../test/test_archive_write_set_passphrase.c | 0 .../libarchive/test/test_bad_fd.c | 0 .../libarchive/test/test_compat_bzip2.c | 0 .../test/test_compat_bzip2_1.tbz.uu | 0 .../test/test_compat_bzip2_2.tbz.uu | 0 .../libarchive/test/test_compat_cpio.c | 0 .../test/test_compat_cpio_1.cpio.uu | 0 .../libarchive/test/test_compat_gtar.c | 0 .../libarchive/test/test_compat_gtar_1.tar.uu | 0 .../libarchive/test/test_compat_gtar_2.tar.uu | 0 .../libarchive/test/test_compat_gzip.c | 0 .../libarchive/test/test_compat_gzip_1.tgz.uu | 0 .../libarchive/test/test_compat_gzip_2.tgz.uu | 0 .../libarchive/test/test_compat_lz4.c | 0 .../test/test_compat_lz4_1.tar.lz4.uu | 0 .../test/test_compat_lz4_2.tar.lz4.uu | 0 .../test/test_compat_lz4_3.tar.lz4.uu | 0 .../test/test_compat_lz4_B4.tar.lz4.uu | 0 .../test/test_compat_lz4_B4BD.tar.lz4.uu | 0 .../test/test_compat_lz4_B4BDBX.tar.lz4.uu | 0 .../test/test_compat_lz4_B5.tar.lz4.uu | 0 .../test/test_compat_lz4_B5BD.tar.lz4.uu | 0 .../test/test_compat_lz4_B6.tar.lz4.uu | 0 .../test/test_compat_lz4_B6BD.tar.lz4.uu | 0 .../test/test_compat_lz4_B7.tar.lz4.uu | 0 .../test/test_compat_lz4_B7BD.tar.lz4.uu | 0 .../libarchive/test/test_compat_lzip.c | 0 .../libarchive/test/test_compat_lzip_1.tlz.uu | 0 .../libarchive/test/test_compat_lzip_2.tlz.uu | 0 .../libarchive/test/test_compat_lzma.c | 2 +- .../libarchive/test/test_compat_lzma_1.tlz.uu | 0 .../libarchive/test/test_compat_lzma_2.tlz.uu | 0 .../libarchive/test/test_compat_lzma_3.tlz.uu | 0 .../libarchive/test/test_compat_lzop.c | 0 .../test/test_compat_lzop_1.tar.lzo.uu | 0 .../test/test_compat_lzop_2.tar.lzo.uu | 0 .../test/test_compat_lzop_3.tar.lzo.uu | 0 .../test/test_compat_mac-1.tar.Z.uu | 0 .../test/test_compat_mac-2.tar.Z.uu | 0 .../libarchive/test/test_compat_mac.c | 0 .../test/test_compat_perl_archive_tar.c | 0 .../test/test_compat_perl_archive_tar.tar.uu | 0 .../test/test_compat_plexus_archiver_tar.c | 0 .../test_compat_plexus_archiver_tar.tar.uu | 0 .../test/test_compat_solaris_pax_sparse.c | 0 .../test_compat_solaris_pax_sparse_1.pax.Z.uu | 0 .../test_compat_solaris_pax_sparse_2.pax.Z.uu | 0 .../test/test_compat_solaris_tar_acl.c | 0 .../test/test_compat_solaris_tar_acl.tar.uu | 0 .../libarchive/test/test_compat_star_acl.c | 0 .../test/test_compat_star_acl_nfs4.tar.uu | 0 .../test/test_compat_star_acl_posix1e.tar.uu | 0 .../test/test_compat_tar_hardlink.c | 0 .../test/test_compat_tar_hardlink_1.tar.uu | 0 .../libarchive/test/test_compat_uudecode.c | 0 .../test/test_compat_uudecode_large.c | 0 .../test/test_compat_uudecode_large.tar.Z.uu | 0 .../libarchive/test/test_compat_xz.c | 0 .../libarchive/test/test_compat_xz_1.txz.uu | 0 .../libarchive/test/test_compat_zip.c | 0 .../libarchive/test/test_compat_zip_1.zip.uu | 0 .../libarchive/test/test_compat_zip_2.zip.uu | 0 .../libarchive/test/test_compat_zip_3.zip.uu | 0 .../libarchive/test/test_compat_zip_4.zip.uu | 0 .../libarchive/test/test_compat_zip_5.zip.uu | 0 .../libarchive/test/test_compat_zip_6.zip.uu | 0 .../libarchive/test/test_compat_zip_7.xps.uu | 0 .../libarchive/test/test_compat_zip_8.zip.uu | 0 .../libarchive/test/test_compat_zstd.c | 3 + .../test/test_compat_zstd_1.tar.zst.uu | 0 .../test/test_compat_zstd_2.tar.zst.uu | 8 + .../libarchive/test/test_empty_write.c | 0 .../libarchive/test/test_entry.c | 89 +- .../libarchive/test/test_entry_strmode.c | 0 .../libarchive/test/test_extattr_freebsd.c | 0 .../libarchive/test/test_filter_count.c | 0 .../libarchive/test/test_fuzz.c | 0 .../libarchive/test/test_fuzz.cab.uu | 0 .../libarchive/test/test_fuzz.lzh.uu | 0 .../libarchive/test/test_fuzz_1.iso.Z.uu | 0 .../test/test_gnutar_filename_encoding.c | 0 .../libarchive/test/test_link_resolver.c | 0 .../libarchive/test/test_open_failure.c | 0 .../libarchive/test/test_open_fd.c | 0 .../libarchive/test/test_open_file.c | 0 .../libarchive/test/test_open_filename.c | 0 .../test/test_pax_filename_encoding.c | 0 .../test/test_pax_filename_encoding.tar.uu | 0 .../libarchive/test/test_pax_xattr_header.c | 0 .../test/test_pax_xattr_header_all.tar.uu | 0 .../test_pax_xattr_header_libarchive.tar.uu | 0 .../test/test_pax_xattr_header_schily.tar.uu | 0 ...ar_multivolume_multiple_files.part1.rar.uu | 0 ...ar_multivolume_multiple_files.part2.rar.uu | 0 ...ar_multivolume_multiple_files.part3.rar.uu | 0 ...ar_multivolume_multiple_files.part4.rar.uu | 0 ...ar_multivolume_multiple_files.part5.rar.uu | 0 ...ar_multivolume_multiple_files.part6.rar.uu | 0 ...t_rar_multivolume_single_file.part1.rar.uu | 0 ...t_rar_multivolume_single_file.part2.rar.uu | 0 ...t_rar_multivolume_single_file.part3.rar.uu | 0 ...ltivolume_uncompressed_files.part01.rar.uu | 0 ...ltivolume_uncompressed_files.part02.rar.uu | 0 ...ltivolume_uncompressed_files.part03.rar.uu | 0 ...ltivolume_uncompressed_files.part04.rar.uu | 0 ...ltivolume_uncompressed_files.part05.rar.uu | 0 ...ltivolume_uncompressed_files.part06.rar.uu | 0 ...ltivolume_uncompressed_files.part07.rar.uu | 0 ...ltivolume_uncompressed_files.part08.rar.uu | 0 ...ltivolume_uncompressed_files.part09.rar.uu | 0 ...ltivolume_uncompressed_files.part10.rar.uu | 0 .../libarchive/test/test_read_data_large.c | 0 .../libarchive/test/test_read_disk.c | 0 .../test_read_disk_directory_traversals.c | 13 +- .../test/test_read_disk_entry_from_file.c | 0 .../libarchive/test/test_read_extract.c | 0 .../test/test_read_file_nonexistent.c | 0 .../test/test_read_filter_compress.c | 0 .../libarchive/test/test_read_filter_grzip.c | 0 .../test/test_read_filter_grzip.tar.grz.uu | 0 .../libarchive/test/test_read_filter_lrzip.c | 0 .../test/test_read_filter_lrzip.tar.lrz.uu | 0 .../libarchive/test/test_read_filter_lzop.c | 0 .../test/test_read_filter_lzop.tar.lzo.uu | 0 .../test_read_filter_lzop_multiple_parts.c | 0 ...read_filter_lzop_multiple_parts.tar.lzo.uu | 0 .../test/test_read_filter_program.c | 0 .../test/test_read_filter_program_signature.c | 0 .../test/test_read_filter_uudecode.c | 0 .../libarchive/test/test_read_format_7zip.c | 0 .../test_read_format_7zip_bcj2_bzip2.7z.uu | 0 .../test_read_format_7zip_bcj2_copy_1.7z.uu | 0 .../test_read_format_7zip_bcj2_copy_2.7z.uu | 0 ...test_read_format_7zip_bcj2_copy_lzma.7z.uu | 0 .../test_read_format_7zip_bcj2_deflate.7z.uu | 0 .../test_read_format_7zip_bcj2_lzma1_1.7z.uu | 0 .../test_read_format_7zip_bcj2_lzma1_2.7z.uu | 0 .../test_read_format_7zip_bcj2_lzma2_1.7z.uu | 0 .../test_read_format_7zip_bcj2_lzma2_2.7z.uu | 0 .../test_read_format_7zip_bcj_bzip2.7z.uu | 0 .../test/test_read_format_7zip_bcj_copy.7z.uu | 0 .../test_read_format_7zip_bcj_deflate.7z.uu | 0 .../test_read_format_7zip_bcj_lzma1.7z.uu | 0 .../test_read_format_7zip_bcj_lzma2.7z.uu | 0 .../test/test_read_format_7zip_bzip2.7z.uu | 0 .../test/test_read_format_7zip_copy.7z.uu | 0 .../test/test_read_format_7zip_copy_2.7z.uu | 0 .../test/test_read_format_7zip_deflate.7z.uu | 0 .../test_read_format_7zip_delta4_lzma1.7z.uu | 0 .../test_read_format_7zip_delta4_lzma2.7z.uu | 0 .../test_read_format_7zip_delta_lzma1.7z.uu | 0 .../test_read_format_7zip_delta_lzma2.7z.uu | 0 .../test_read_format_7zip_empty_archive.7z.uu | 0 .../test_read_format_7zip_empty_file.7z.uu | 0 .../test_read_format_7zip_encryption.7z.uu | 0 .../test_read_format_7zip_encryption_data.c | 0 ...t_read_format_7zip_encryption_header.7z.uu | 0 .../test_read_format_7zip_encryption_header.c | 0 ...ead_format_7zip_encryption_partially.7z.uu | 0 ...st_read_format_7zip_encryption_partially.c | 0 .../test/test_read_format_7zip_lzma1.7z.uu | 0 .../test/test_read_format_7zip_lzma1_2.7z.uu | 0 .../test_read_format_7zip_lzma1_lzma2.7z.uu | 0 .../test/test_read_format_7zip_lzma2.7z.uu | 0 .../test_read_format_7zip_malformed.7z.uu | 0 .../test/test_read_format_7zip_malformed.c | 0 .../test_read_format_7zip_malformed2.7z.uu | 0 ...st_read_format_7zip_packinfo_digests.7z.uu | 0 .../test_read_format_7zip_packinfo_digests.c | 0 .../test/test_read_format_7zip_ppmd.7z.uu | 0 .../test_read_format_7zip_symbolic_name.7z.uu | 0 .../libarchive/test/test_read_format_ar.ar.uu | 0 .../libarchive/test/test_read_format_ar.c | 0 .../libarchive/test/test_read_format_cab.c | 0 .../test/test_read_format_cab_1.cab.uu | 0 .../test/test_read_format_cab_2.cab.uu | 0 .../test/test_read_format_cab_3.cab.uu | 0 .../test/test_read_format_cab_filename.c | 0 ...test_read_format_cab_filename_cp932.cab.uu | 0 .../test/test_read_format_cpio_afio.c | 0 .../test/test_read_format_cpio_bin.c | 0 .../test/test_read_format_cpio_bin_Z.c | 0 .../test/test_read_format_cpio_bin_be.c | 0 .../test/test_read_format_cpio_bin_be.cpio.uu | 0 .../test/test_read_format_cpio_bin_bz2.c | 0 .../test/test_read_format_cpio_bin_gz.c | 0 .../test/test_read_format_cpio_bin_le.c | 0 .../test/test_read_format_cpio_bin_le.cpio.uu | 0 .../test/test_read_format_cpio_bin_lzip.c | 0 .../test/test_read_format_cpio_bin_lzma.c | 0 .../test/test_read_format_cpio_bin_xz.c | 0 .../test/test_read_format_cpio_filename.c | 0 ...st_read_format_cpio_filename_cp866.cpio.uu | 0 ...st_read_format_cpio_filename_eucjp.cpio.uu | 0 ...st_read_format_cpio_filename_koi8r.cpio.uu | 0 ..._read_format_cpio_filename_utf8_jp.cpio.uu | 0 ..._read_format_cpio_filename_utf8_ru.cpio.uu | 0 .../test/test_read_format_cpio_odc.c | 0 .../test_read_format_cpio_svr4_bzip2_rpm.c | 0 ...est_read_format_cpio_svr4_bzip2_rpm.rpm.uu | 0 .../test/test_read_format_cpio_svr4_gzip.c | 0 .../test_read_format_cpio_svr4_gzip_rpm.c | 0 ...test_read_format_cpio_svr4_gzip_rpm.rpm.uu | 0 .../test/test_read_format_cpio_svr4c_Z.c | 0 .../libarchive/test/test_read_format_empty.c | 0 .../test/test_read_format_gtar_filename.c | 0 ...t_read_format_gtar_filename_cp866.tar.Z.uu | 0 ...t_read_format_gtar_filename_eucjp.tar.Z.uu | 0 ...t_read_format_gtar_filename_koi8r.tar.Z.uu | 0 .../test/test_read_format_gtar_gz.c | 0 .../test/test_read_format_gtar_lzma.c | 0 .../test/test_read_format_gtar_sparse.c | 0 .../test_read_format_gtar_sparse_1_13.tar.uu | 0 .../test_read_format_gtar_sparse_1_17.tar.uu | 0 ...ead_format_gtar_sparse_1_17_posix00.tar.uu | 0 ...ead_format_gtar_sparse_1_17_posix01.tar.uu | 0 ...ead_format_gtar_sparse_1_17_posix10.tar.uu | 0 ...t_gtar_sparse_1_17_posix10_modified.tar.uu | 0 .../test_read_format_gtar_sparse_skip_entry.c | 0 ...ead_format_gtar_sparse_skip_entry.tar.Z.uu | 0 .../test/test_read_format_iso.iso.Z.uu | 0 .../test/test_read_format_iso_2.iso.Z.uu | 0 .../libarchive/test/test_read_format_iso_Z.c | 0 .../test/test_read_format_iso_joliet.iso.Z.uu | 0 ...st_read_format_iso_joliet_by_nero.iso.Z.uu | 0 .../test_read_format_iso_joliet_long.iso.Z.uu | 0 ..._read_format_iso_joliet_rockridge.iso.Z.uu | 0 .../test/test_read_format_iso_multi_extent.c | 0 ...test_read_format_iso_multi_extent.iso.Z.uu | 0 .../test_read_format_iso_rockridge.iso.Z.uu | 0 ...test_read_format_iso_rockridge_ce.iso.Z.uu | 0 ...est_read_format_iso_rockridge_new.iso.Z.uu | 0 ...ead_format_iso_rockridge_rr_moved.iso.Z.uu | 0 .../test/test_read_format_iso_xorriso.c | 0 .../test_read_format_iso_xorriso.iso.Z.uu | 0 .../test/test_read_format_iso_zisofs.iso.Z.uu | 0 .../test/test_read_format_isojoliet_bz2.c | 0 .../test/test_read_format_isojoliet_long.c | 0 .../test/test_read_format_isojoliet_rr.c | 0 .../test_read_format_isojoliet_versioned.c | 0 .../test/test_read_format_isorr_bz2.c | 0 .../test/test_read_format_isorr_ce.c | 0 .../test/test_read_format_isorr_new_bz2.c | 0 .../test/test_read_format_isorr_rr_moved.c | 0 .../test/test_read_format_isozisofs_bz2.c | 0 .../libarchive/test/test_read_format_lha.c | 0 .../test/test_read_format_lha_bugfix_0.c | 0 .../test/test_read_format_lha_bugfix_0.lzh.uu | 0 .../test/test_read_format_lha_filename.c | 0 ...test_read_format_lha_filename_cp932.lzh.uu | 0 .../test_read_format_lha_filename_utf16.c | 0 ...test_read_format_lha_filename_utf16.lzh.uu | 0 .../test/test_read_format_lha_header0.lzh.uu | 0 .../test/test_read_format_lha_header1.lzh.uu | 0 .../test/test_read_format_lha_header2.lzh.uu | 0 .../test/test_read_format_lha_header3.lzh.uu | 0 .../test/test_read_format_lha_lh0.lzh.uu | 0 .../test/test_read_format_lha_lh6.lzh.uu | 0 .../test/test_read_format_lha_lh7.lzh.uu | 0 .../test/test_read_format_lha_withjunk.lzh.uu | 0 .../libarchive/test/test_read_format_mtree.c | 74 +- .../test/test_read_format_mtree.mtree.uu | 40 + .../test/test_read_format_mtree_crash747.c | 0 ...st_read_format_mtree_crash747.mtree.bz2.uu | 0 .../test_read_format_mtree_nomagic.mtree.uu | 0 .../test_read_format_mtree_nomagic2.mtree.uu | 0 .../test_read_format_mtree_nomagic3.mtree.uu | 0 .../test_read_format_mtree_noprint.mtree.uu | 0 .../test/test_read_format_pax_bz2.c | 0 .../libarchive/test/test_read_format_rar.c | 0 .../test/test_read_format_rar.rar.uu | 0 .../libarchive/test/test_read_format_rar5.c | 0 .../test/test_read_format_rar5_arm.rar.uu | 0 ..._rar5_arm_filter_on_window_boundary.rar.uu | 0 .../test/test_read_format_rar5_blake2.rar.uu | 0 ...format_rar5_block_size_is_too_small.rar.uu | 0 .../test_read_format_rar5_compressed.rar.uu | 0 ...at_rar5_different_solid_window_size.rar.uu | 0 ...d_format_rar5_different_window_size.rar.uu | 0 ...mat_rar5_different_winsize_on_merge.rar.uu | 0 ..._read_format_rar5_distance_overflow.rar.uu | 0 ...ead_format_rar5_extra_field_version.rar.uu | 0 .../test_read_format_rar5_fileattr.rar.uu | 0 .../test_read_format_rar5_hardlink.rar.uu | 0 ..._format_rar5_invalid_dict_reference.rar.uu | 0 .../test_read_format_rar5_leftshift1.rar.uu | 0 .../test_read_format_rar5_leftshift2.rar.uu | 0 ...ead_format_rar5_multiarchive.part01.rar.uu | 0 ...ead_format_rar5_multiarchive.part02.rar.uu | 0 ...ead_format_rar5_multiarchive.part03.rar.uu | 0 ...ead_format_rar5_multiarchive.part04.rar.uu | 0 ...ead_format_rar5_multiarchive.part05.rar.uu | 0 ...ead_format_rar5_multiarchive.part06.rar.uu | 0 ...ead_format_rar5_multiarchive.part07.rar.uu | 0 ...ead_format_rar5_multiarchive.part08.rar.uu | 0 ...rmat_rar5_multiarchive_solid.part01.rar.uu | 0 ...rmat_rar5_multiarchive_solid.part02.rar.uu | 0 ...rmat_rar5_multiarchive_solid.part03.rar.uu | 0 ...rmat_rar5_multiarchive_solid.part04.rar.uu | 0 ...est_read_format_rar5_multiple_files.rar.uu | 0 ...ad_format_rar5_multiple_files_solid.rar.uu | 0 ...ead_format_rar5_nonempty_dir_stream.rar.uu | 0 .../test/test_read_format_rar5_owner.rar.uu | 0 ...ead_format_rar5_readtables_overflow.rar.uu | 0 .../test/test_read_format_rar5_solid.rar.uu | 0 .../test/test_read_format_rar5_stored.rar.uu | 0 ...t_read_format_rar5_stored_manyfiles.rar.uu | 0 .../test/test_read_format_rar5_symlink.rar.uu | 0 ...est_read_format_rar5_truncated_huff.rar.uu | 0 .../test/test_read_format_rar5_win32.rar.uu | 0 .../test_read_format_rar_binary_data.rar.uu | 0 .../test_read_format_rar_compress_best.rar.uu | 0 ...est_read_format_rar_compress_normal.rar.uu | 0 .../test_read_format_rar_encryption_data.c | 0 ...est_read_format_rar_encryption_data.rar.uu | 0 .../test_read_format_rar_encryption_header.c | 0 ...t_read_format_rar_encryption_header.rar.uu | 0 ...est_read_format_rar_encryption_partially.c | 0 ...ead_format_rar_encryption_partially.rar.uu | 0 .../test/test_read_format_rar_invalid1.c | 0 .../test/test_read_format_rar_invalid1.rar.uu | 0 ...t_read_format_rar_multi_lzss_blocks.rar.uu | 0 ...ead_format_rar_multivolume.part0001.rar.uu | 0 ...ead_format_rar_multivolume.part0002.rar.uu | 0 ...ead_format_rar_multivolume.part0003.rar.uu | 0 ...ead_format_rar_multivolume.part0004.rar.uu | 0 .../test/test_read_format_rar_noeof.rar.uu | 0 ...ead_format_rar_ppmd_lzss_conversion.rar.uu | 0 ...read_format_rar_ppmd_use_after_free.rar.uu | 0 ...ead_format_rar_ppmd_use_after_free2.rar.uu | 0 .../test/test_read_format_rar_sfx.exe.uu | 0 .../test/test_read_format_rar_subblock.rar.uu | 0 .../test/test_read_format_rar_unicode.rar.uu | 0 .../test/test_read_format_rar_windows.rar.uu | 0 .../test/test_read_format_raw.bufr.uu | 0 .../libarchive/test/test_read_format_raw.c | 5 +- .../test/test_read_format_raw.data.Z.uu | 0 .../test/test_read_format_raw.data.gz.uu | 0 .../test/test_read_format_raw.data.uu | 0 .../libarchive/test/test_read_format_tar.c | 0 .../test/test_read_format_tar_concatenated.c | 0 .../test_read_format_tar_concatenated.tar.uu | 0 .../test_read_format_tar_empty_filename.c | 0 ...test_read_format_tar_empty_filename.tar.uu | 0 .../test/test_read_format_tar_empty_pax.c | 0 .../test_read_format_tar_empty_pax.tar.Z.uu | 0 ...test_read_format_tar_empty_with_gnulabel.c | 0 ...read_format_tar_empty_with_gnulabel.tar.uu | 0 .../test/test_read_format_tar_filename.c | 0 ...st_read_format_tar_filename_koi8r.tar.Z.uu | 0 .../libarchive/test/test_read_format_tbz.c | 0 .../libarchive/test/test_read_format_tgz.c | 0 .../libarchive/test/test_read_format_tlz.c | 0 .../libarchive/test/test_read_format_txz.c | 0 .../libarchive/test/test_read_format_tz.c | 0 .../test/test_read_format_ustar_filename.c | 0 ..._read_format_ustar_filename_cp866.tar.Z.uu | 0 ..._read_format_ustar_filename_eucjp.tar.Z.uu | 0 ..._read_format_ustar_filename_koi8r.tar.Z.uu | 0 .../libarchive/test/test_read_format_warc.c | 0 .../test/test_read_format_warc.warc.uu | 0 .../libarchive/test/test_read_format_xar.c | 0 .../libarchive/test/test_read_format_zip.c | 109 + .../test/test_read_format_zip.zip.uu | 0 .../test_read_format_zip_7075_utf8_paths.c | 0 ...est_read_format_zip_7075_utf8_paths.zip.uu | 0 .../test_read_format_zip_7z_deflate.zip.uu | 361 + .../test/test_read_format_zip_7z_lzma.zip.uu | 45 + .../test/test_read_format_zip_bz2_hang.zip.uu | 0 .../test/test_read_format_zip_bzip2.zipx.uu | 0 .../test_read_format_zip_bzip2_multi.zipx.uu | 0 .../test_read_format_zip_comment_stored.c | 0 ...st_read_format_zip_comment_stored_1.zip.uu | 0 ...st_read_format_zip_comment_stored_2.zip.uu | 0 .../test_read_format_zip_encryption_data.c | 0 ...est_read_format_zip_encryption_data.zip.uu | 0 .../test_read_format_zip_encryption_header.c | 0 ...t_read_format_zip_encryption_header.zip.uu | 0 ...est_read_format_zip_encryption_partially.c | 0 ...ead_format_zip_encryption_partially.zip.uu | 0 .../test/test_read_format_zip_extra_padding.c | 0 .../test_read_format_zip_extra_padding.zip.uu | 0 .../test/test_read_format_zip_filename.c | 0 ...test_read_format_zip_filename_cp866.zip.uu | 0 ...test_read_format_zip_filename_cp932.zip.uu | 0 ...test_read_format_zip_filename_koi8r.zip.uu | 0 ...st_read_format_zip_filename_utf8_jp.zip.uu | 0 ...st_read_format_zip_filename_utf8_ru.zip.uu | 0 ...t_read_format_zip_filename_utf8_ru2.zip.uu | 0 .../test_read_format_zip_high_compression.c | 0 ...st_read_format_zip_high_compression.zip.uu | 0 .../test/test_read_format_zip_jar.c | 0 .../test/test_read_format_zip_jar.jar.uu | 0 .../test_read_format_zip_length_at_end.zip.uu | 0 .../test/test_read_format_zip_lzma.zipx.uu | 0 ...st_read_format_zip_lzma_alone_leak.zipx.uu | 0 .../test_read_format_zip_lzma_multi.zipx.uu | 0 ...st_read_format_zip_lzma_stream_end.zipx.uu | 19 + .../test/test_read_format_zip_mac_metadata.c | 0 .../test_read_format_zip_mac_metadata.zip.uu | 0 .../test/test_read_format_zip_malformed.c | 0 .../test_read_format_zip_malformed1.zip.uu | 0 .../test/test_read_format_zip_msdos.c | 0 .../test/test_read_format_zip_msdos.zip.uu | 0 .../test/test_read_format_zip_nested.c | 0 .../test/test_read_format_zip_nested.zip.uu | 0 .../test/test_read_format_zip_nofiletype.c | 0 .../test_read_format_zip_nofiletype.zip.uu | 0 .../test/test_read_format_zip_padded.c | 0 .../test/test_read_format_zip_padded1.zip.uu | 0 .../test/test_read_format_zip_padded2.zip.uu | 0 .../test/test_read_format_zip_padded3.zip.uu | 0 .../test/test_read_format_zip_ppmd8.zipx.uu | 0 ...test_read_format_zip_ppmd8_crash_1.zipx.uu | 0 ...test_read_format_zip_ppmd8_crash_2.zipx.uu | 0 .../test_read_format_zip_ppmd8_multi.zipx.uu | 0 .../test/test_read_format_zip_sfx.c | 0 .../test/test_read_format_zip_sfx.uu | 0 .../test/test_read_format_zip_symlink.zip.uu | 0 ...d_format_zip_traditional_encryption_data.c | 0 ...mat_zip_traditional_encryption_data.zip.uu | 0 .../test/test_read_format_zip_ux.zip.uu | 0 .../test/test_read_format_zip_winzip_aes.c | 0 .../test_read_format_zip_winzip_aes128.zip.uu | 0 .../test_read_format_zip_winzip_aes256.zip.uu | 0 ...read_format_zip_winzip_aes256_large.zip.uu | 0 ...ead_format_zip_winzip_aes256_stored.zip.uu | 0 .../test_read_format_zip_winzip_aes_large.c | 0 ...format_zip_with_invalid_traditional_eocd.c | 0 ...t_zip_with_invalid_traditional_eocd.zip.uu | 0 .../test_read_format_zip_xz_multi.zipx.uu | 0 .../test/test_read_format_zip_zip64.c | 0 .../test/test_read_format_zip_zip64a.zip.uu | 0 .../test/test_read_format_zip_zip64b.zip.uu | 0 .../libarchive/test/test_read_large.c | 0 .../test/test_read_large_splitted_rar_aa.uu | 0 .../test/test_read_large_splitted_rar_ab.uu | 0 .../test/test_read_large_splitted_rar_ac.uu | 0 .../test/test_read_large_splitted_rar_ad.uu | 0 .../test/test_read_large_splitted_rar_ae.uu | 0 .../libarchive/test/test_read_pax_truncated.c | 0 ...test_read_pax_xattr_rht_security_selinux.c | 62 + ...read_pax_xattr_rht_security_selinux.tar.uu | 231 + .../test/test_read_pax_xattr_schily.c} | 4 +- .../test/test_read_pax_xattr_schily.tar.uu} | 2 +- .../libarchive/test/test_read_position.c | 0 .../libarchive/test/test_read_set_format.c | 3 +- .../test/test_read_splitted_rar_aa.uu | 0 .../test/test_read_splitted_rar_ab.uu | 0 .../test/test_read_splitted_rar_ac.uu | 0 .../test/test_read_splitted_rar_ad.uu | 0 .../test/test_read_too_many_filters.c | 0 .../test/test_read_too_many_filters.gz.uu | 0 .../libarchive/test/test_read_truncated.c | 0 .../test/test_read_truncated_filter.c | 0 .../libarchive/test/test_short_writes.c | 216 + .../libarchive/test/test_sparse_basic.c | 4 +- .../test/test_splitted_rar_seek_support_aa.uu | 0 .../test/test_splitted_rar_seek_support_ab.uu | 0 .../test/test_splitted_rar_seek_support_ac.uu | 0 .../libarchive/test/test_tar_filenames.c | 0 .../libarchive/test/test_tar_large.c | 0 .../test/test_ustar_filename_encoding.c | 0 .../libarchive/test/test_ustar_filenames.c | 0 .../test/test_warn_missing_hardlink_target.c | 0 .../libarchive/test/test_write_disk.c | 0 .../test/test_write_disk_appledouble.c | 8 +- .../test_write_disk_appledouble.cpio.gz.uu | 0 .../test/test_write_disk_failures.c | 0 .../libarchive/test/test_write_disk_fixup.c | 81 + .../test/test_write_disk_hardlink.c | 49 +- .../test/test_write_disk_hfs_compression.c | 8 +- .../test_write_disk_hfs_compression.tgz.uu | 0 .../libarchive/test/test_write_disk_lookup.c | 0 .../test/test_write_disk_mac_metadata.c | 8 +- .../test_write_disk_mac_metadata.tar.gz.uu | 0 .../test/test_write_disk_no_hfs_compression.c | 8 +- .../test_write_disk_no_hfs_compression.tgz.uu | 0 .../libarchive/test/test_write_disk_perms.c | 0 .../libarchive/test/test_write_disk_secure.c | 34 +- .../test/test_write_disk_secure744.c | 0 .../test/test_write_disk_secure745.c | 0 .../test/test_write_disk_secure746.c | 0 .../libarchive/test/test_write_disk_sparse.c | 0 .../libarchive/test/test_write_disk_symlink.c | 0 .../libarchive/test/test_write_disk_times.c | 0 .../test/test_write_filter_b64encode.c | 0 .../libarchive/test/test_write_filter_bzip2.c | 0 .../test/test_write_filter_compress.c | 0 .../libarchive/test/test_write_filter_gzip.c | 0 .../test/test_write_filter_gzip_timestamp.c | 0 .../libarchive/test/test_write_filter_lrzip.c | 0 .../libarchive/test/test_write_filter_lz4.c | 0 .../libarchive/test/test_write_filter_lzip.c | 0 .../libarchive/test/test_write_filter_lzma.c | 0 .../libarchive/test/test_write_filter_lzop.c | 0 .../test/test_write_filter_program.c | 0 .../test/test_write_filter_uuencode.c | 0 .../libarchive/test/test_write_filter_xz.c | 0 .../libarchive/test/test_write_filter_zstd.c | 3 + .../libarchive/test/test_write_format_7zip.c | 0 .../test/test_write_format_7zip_empty.c | 0 .../test/test_write_format_7zip_large.c | 0 .../libarchive/test/test_write_format_ar.c | 0 .../libarchive/test/test_write_format_cpio.c | 36 +- .../test/test_write_format_cpio_empty.c | 2 +- .../test/test_write_format_cpio_newc.c | 0 .../test/test_write_format_cpio_odc.c | 2 +- .../test/test_write_format_gnutar.c | 0 .../test/test_write_format_gnutar_filenames.c | 0 .../test/test_write_format_iso9660.c | 0 .../test/test_write_format_iso9660_boot.c | 0 .../test/test_write_format_iso9660_empty.c | 0 .../test/test_write_format_iso9660_filename.c | 0 .../test/test_write_format_iso9660_zisofs.c | 0 .../libarchive/test/test_write_format_mtree.c | 0 .../test_write_format_mtree_absolute_path.c | 0 .../test/test_write_format_mtree_classic.c | 0 .../test_write_format_mtree_classic_indent.c | 0 .../test/test_write_format_mtree_fflags.c | 0 .../test_write_format_mtree_no_separator.c | 0 .../test_write_format_mtree_quoted_filename.c | 0 .../libarchive/test/test_write_format_pax.c | 0 .../libarchive/test/test_write_format_raw.c | 0 .../test/test_write_format_raw_b64.c | 0 .../test/test_write_format_shar_empty.c | 0 .../libarchive/test/test_write_format_tar.c | 0 .../test/test_write_format_tar_empty.c | 0 .../test/test_write_format_tar_sparse.c | 0 .../test/test_write_format_tar_ustar.c | 0 .../test/test_write_format_tar_v7tar.c | 0 .../libarchive/test/test_write_format_warc.c | 28 +- .../test/test_write_format_warc_empty.c | 0 .../libarchive/test/test_write_format_xar.c | 0 .../test/test_write_format_xar_empty.c | 0 .../libarchive/test/test_write_format_zip.c | 0 .../test_write_format_zip_compression_store.c | 0 .../test/test_write_format_zip_empty.c | 0 .../test/test_write_format_zip_empty_zip64.c | 0 .../test/test_write_format_zip_file.c | 0 .../test/test_write_format_zip_file_zip64.c | 0 .../test/test_write_format_zip_large.c | 0 .../test/test_write_format_zip_zip64.c | 0 .../libarchive/test/test_write_open_memory.c | 0 .../test/test_write_read_format_zip.c | 0 .../libarchive/test/test_xattr_platform.c | 0 .../test/test_zip_filename_encoding.c | 0 .../libarchive/xxhash.c | 6 +- .../libarchive_fe/err.c | 0 .../libarchive_fe/err.h | 0 .../libarchive_fe/lafe_platform.h | 0 .../libarchive_fe/line_reader.c | 0 .../libarchive_fe/line_reader.h | 0 .../libarchive_fe/passphrase.c | 0 .../libarchive_fe/passphrase.h | 0 .../tar/CMakeLists.txt | 0 .../tar/bsdtar.1 | 3 +- .../tar/bsdtar.c | 0 .../tar/bsdtar.h | 0 .../tar/bsdtar_platform.h | 0 .../tar/bsdtar_windows.c | 0 .../tar/bsdtar_windows.h | 0 .../tar/cmdline.c | 0 .../tar/config_freebsd.h | 0 .../tar/creation_set.c | 0 .../tar/read.c | 0 .../tar/subst.c | 0 .../tar/test/CMakeLists.txt | 0 .../tar/test/list.h | 24 +- .../tar/test/test.h | 0 .../tar/test/test_0.c | 0 .../tar/test/test_basic.c | 0 .../tar/test/test_copy.c | 0 .../tar/test/test_empty_mtree.c | 0 .../tar/test/test_extract.tar.Z.uu | 0 .../tar/test/test_extract.tar.bz2.uu | 0 .../tar/test/test_extract.tar.grz.uu | 0 .../tar/test/test_extract.tar.gz.uu | 0 .../tar/test/test_extract.tar.lrz.uu | 0 .../tar/test/test_extract.tar.lz.uu | 0 .../tar/test/test_extract.tar.lz4.uu | 0 .../tar/test/test_extract.tar.lzma.uu | 0 .../tar/test/test_extract.tar.lzo.uu | 0 .../tar/test/test_extract.tar.xz.uu | 0 .../tar/test/test_extract.tar.zst.uu | 0 .../tar/test/test_extract_tar_Z.c | 0 .../tar/test/test_extract_tar_bz2.c | 0 .../tar/test/test_extract_tar_grz.c | 0 .../tar/test/test_extract_tar_gz.c | 0 .../tar/test/test_extract_tar_lrz.c | 0 .../tar/test/test_extract_tar_lz.c | 0 .../tar/test/test_extract_tar_lz4.c | 0 .../tar/test/test_extract_tar_lzma.c | 0 .../tar/test/test_extract_tar_lzo.c | 0 .../tar/test/test_extract_tar_xz.c | 0 .../tar/test/test_extract_tar_zstd.c | 0 .../tar/test/test_format_newc.c | 0 .../tar/test/test_help.c | 0 .../tar/test/test_leading_slash.c | 0 .../tar/test/test_leading_slash.tar.uu | 0 .../tar/test/test_missing_file.c | 0 .../tar/test/test_option_C_mtree.c | 0 .../tar/test/test_option_C_upper.c | 0 .../tar/test/test_option_H_upper.c | 0 .../tar/test/test_option_L_upper.c | 0 .../tar/test/test_option_O_upper.c | 0 .../tar/test/test_option_T_upper.c | 0 .../tar/test/test_option_U_upper.c | 0 .../tar/test/test_option_X_upper.c | 0 .../tar/test/test_option_a.c | 0 .../tar/test/test_option_acls.c | 0 .../tar/test/test_option_b.c | 0 .../tar/test/test_option_b64encode.c | 0 .../tar/test/test_option_exclude.c | 0 .../tar/test/test_option_exclude_vcs.c | 0 .../tar/test/test_option_fflags.c | 0 .../tar/test/test_option_gid_gname.c | 0 .../tar/test/test_option_grzip.c | 0 .../tar/test/test_option_j.c | 0 .../tar/test/test_option_k.c | 0 .../tar/test/test_option_keep_newer_files.c | 0 .../test_option_keep_newer_files.tar.Z.uu | 0 .../tar/test/test_option_lrzip.c | 0 .../tar/test/test_option_lz4.c | 0 .../tar/test/test_option_lzma.c | 0 .../tar/test/test_option_lzop.c | 0 .../tar/test/test_option_n.c | 0 .../tar/test/test_option_newer_than.c | 0 .../tar/test/test_option_nodump.c | 0 .../tar/test/test_option_older_than.c | 0 .../tar/test/test_option_passphrase.c | 0 .../tar/test/test_option_passphrase.zip.uu | 0 .../tar/test/test_option_q.c | 0 .../tar/test/test_option_r.c | 0 .../tar/test/test_option_s.c | 0 .../tar/test/test_option_s.tar.Z.uu | 0 .../tar/test/test_option_safe_writes.c | 2 +- .../tar/test/test_option_uid_uname.c | 0 .../tar/test/test_option_uuencode.c | 0 .../tar/test/test_option_xattrs.c | 0 .../tar/test/test_option_xz.c | 0 .../tar/test/test_option_z.c | 0 .../tar/test/test_option_zstd.c | 0 .../tar/test/test_patterns.c | 0 .../tar/test/test_patterns_2.tar.uu | 0 .../tar/test/test_patterns_3.tar.uu | 0 .../tar/test/test_patterns_4.tar.uu | 0 .../tar/test/test_print_longpath.c | 0 .../tar/test/test_print_longpath.tar.Z.uu | 0 .../tar/test/test_stdio.c | 0 .../tar/test/test_strip_components.c | 0 .../tar/test/test_symlink_dir.c | 0 .../tar/test/test_version.c | 0 .../tar/test/test_windows.c | 0 .../tar/util.c | 0 .../tar/write.c | 0 .../test_utils/test_common.h | 4 + .../test_utils/test_main.c | 21 +- .../test_utils/test_utils.c | 0 .../test_utils/test_utils.h | 0 dependencies/zstd-1.5.0/.buckconfig | 9 + dependencies/zstd-1.5.0/.buckversion | 1 + dependencies/zstd-1.5.0/.circleci/config.yml | 143 + .../.circleci/images/primary/Dockerfile | 9 + dependencies/zstd-1.5.0/.cirrus.yml | 11 + dependencies/zstd-1.5.0/.gitattributes | 21 + .../.github/ISSUE_TEMPLATE/bug_report.md | 35 + .../.github/ISSUE_TEMPLATE/feature_request.md | 20 + .../.github/workflows/generic-dev.yml | 225 + .../.github/workflows/generic-release.yml | 59 + .../.github/workflows/linux-kernel.yml | 13 + .../zstd-1.5.0/.github/workflows/main.yml | 30 + .../workflows/publish-release-artifacts.yml | 68 + dependencies/zstd-1.5.0/.gitignore | 54 + dependencies/zstd-1.5.0/.travis.yml | 160 + dependencies/zstd-1.5.0/CHANGELOG | 698 + dependencies/zstd-1.5.0/CODE_OF_CONDUCT.md | 5 + dependencies/zstd-1.5.0/CONTRIBUTING.md | 504 + dependencies/zstd-1.5.0/COPYING | 339 + dependencies/zstd-1.5.0/LICENSE | 30 + dependencies/zstd-1.5.0/Makefile | 420 + dependencies/zstd-1.5.0/README.md | 199 + dependencies/zstd-1.5.0/TESTING.md | 43 + dependencies/zstd-1.5.0/appveyor.yml | 327 + dependencies/zstd-1.5.0/build/.gitignore | 33 + dependencies/zstd-1.5.0/build/LICENSE | 0 dependencies/zstd-1.5.0/build/README.md | 56 + .../build/VS2008/fullbench/fullbench.vcproj | 549 + .../build/VS2008/fuzzer/fuzzer.vcproj | 585 + dependencies/zstd-1.5.0/build/VS2008/zstd.sln | 56 + .../zstd-1.5.0/build/VS2008/zstd/zstd.vcproj | 669 + .../build/VS2008/zstdlib/zstdlib.vcproj | 635 + .../build/VS2010/CompileAsCpp.props | 8 + .../build/VS2010/datagen/datagen.vcxproj | 168 + .../fullbench-dll/fullbench-dll.vcxproj | 189 + .../build/VS2010/fullbench/fullbench.vcxproj | 218 + .../build/VS2010/fuzzer/fuzzer.vcxproj | 223 + .../build/VS2010/libzstd-dll/libzstd-dll.rc | 51 + .../VS2010/libzstd-dll/libzstd-dll.vcxproj | 250 + .../build/VS2010/libzstd/libzstd.vcxproj | 243 + dependencies/zstd-1.5.0/build/VS2010/zstd.sln | 89 + .../zstd-1.5.0/build/VS2010/zstd/zstd.rc | 51 + .../zstd-1.5.0/build/VS2010/zstd/zstd.vcxproj | 258 + .../zstd-1.5.0/build/VS_scripts/README.md | 64 + .../build/VS_scripts/build.VS2010.cmd | 7 + .../build/VS_scripts/build.VS2012.cmd | 6 + .../build/VS_scripts/build.VS2013.cmd | 7 + .../build/VS_scripts/build.VS2015.cmd | 7 + .../build/VS_scripts/build.VS2017.cmd | 7 + .../VS_scripts/build.VS2017Community.cmd | 7 + .../VS_scripts/build.VS2017Enterprise.cmd | 7 + .../VS_scripts/build.VS2017Professional.cmd | 7 + .../build/VS_scripts/build.generic.cmd | 62 + .../zstd-1.5.0/build/cmake/.gitignore | 10 + .../zstd-1.5.0/build/cmake/CMakeLists.txt | 203 + .../AddZstdCompilationFlags.cmake | 83 + .../build/cmake/CMakeModules/FindLibLZ4.cmake | 49 + .../CMakeModules/GetZstdLibraryVersion.cmake | 10 + dependencies/zstd-1.5.0/build/cmake/README.md | 104 + .../build/cmake/contrib/CMakeLists.txt | 13 + .../cmake/contrib/gen_html/CMakeLists.txt | 30 + .../build/cmake/contrib/pzstd/CMakeLists.txt | 32 + .../zstd-1.5.0/build/cmake/lib/.gitignore | 2 + .../zstd-1.5.0/build/cmake/lib/CMakeLists.txt | 182 + .../build/cmake/lib/cmake_uninstall.cmake.in | 22 + .../build/cmake/programs/.gitignore | 5 + .../build/cmake/programs/CMakeLists.txt | 135 + .../zstd-1.5.0/build/cmake/tests/.gitignore | 6 + .../build/cmake/tests/CMakeLists.txt | 111 + .../zstd-1.5.0/build/cmake/zstdConfig.cmake | 1 + .../build/meson/GetZstdLibraryVersion.py | 39 + .../zstd-1.5.0/build/meson/InstallSymlink.py | 55 + dependencies/zstd-1.5.0/build/meson/README.md | 38 + .../build/meson/contrib/gen_html/meson.build | 30 + .../build/meson/contrib/meson.build | 12 + .../build/meson/contrib/pzstd/meson.build | 24 + .../zstd-1.5.0/build/meson/lib/meson.build | 127 + .../zstd-1.5.0/build/meson/meson.build | 146 + .../zstd-1.5.0/build/meson/meson_options.txt | 36 + .../build/meson/programs/meson.build | 105 + .../zstd-1.5.0/build/meson/tests/meson.build | 206 + .../build/meson/tests/valgrindTest.py | 90 + .../build/single_file_libs/.gitignore | 9 + .../build/single_file_libs/README.md | 33 + .../single_file_libs/build_decoder_test.sh | 91 + .../single_file_libs/build_library_test.sh | 97 + .../build/single_file_libs/combine.sh | 211 + .../create_single_file_decoder.sh | 14 + .../create_single_file_library.sh | 14 + .../build/single_file_libs/examples/README.md | 11 + .../single_file_libs/examples/emscripten.c | 340 + .../single_file_libs/examples/roundtrip.c | 83 + .../single_file_libs/examples/shell.html | 31 + .../build/single_file_libs/examples/simple.c | 75 + .../examples/testcard-dxt1.inl | 2731 ++++ .../examples/testcard-zstd.inl | 261 + .../single_file_libs/examples/testcard.png | Bin 0 -> 12675 bytes .../build/single_file_libs/zstd-in.c | 84 + .../build/single_file_libs/zstddeclib-in.c | 56 + .../zstd-1.5.0/contrib/VS2005/README.md | 3 + .../contrib/VS2005/fullbench/fullbench.vcproj | 440 + .../contrib/VS2005/fuzzer/fuzzer.vcproj | 488 + .../zstd-1.5.0/contrib/VS2005/zstd.sln | 55 + .../contrib/VS2005/zstd/zstd.vcproj | 548 + .../contrib/VS2005/zstdlib/zstdlib.vcproj | 546 + dependencies/zstd-1.5.0/contrib/cleanTabs | 2 + .../contrib/diagnose_corruption/.gitignore | 1 + .../contrib/diagnose_corruption/Makefile | 35 + .../diagnose_corruption/check_flipped_bits.c | 400 + .../zstd-1.5.0/contrib/docker/Dockerfile | 20 + .../zstd-1.5.0/contrib/docker/README.md | 20 + .../contrib/freestanding_lib/freestanding.py | 749 + .../zstd-1.5.0/contrib/gen_html/.gitignore | 3 + .../zstd-1.5.0/contrib/gen_html/Makefile | 51 + .../zstd-1.5.0/contrib/gen_html/README.md | 31 + .../contrib/gen_html/gen-zstd-manual.sh | 9 + .../zstd-1.5.0/contrib/gen_html/gen_html.cpp | 224 + .../contrib/largeNbDicts/.gitignore | 2 + .../zstd-1.5.0/contrib/largeNbDicts/Makefile | 58 + .../zstd-1.5.0/contrib/largeNbDicts/README.md | 25 + .../contrib/largeNbDicts/largeNbDicts.c | 998 ++ .../contrib/linux-kernel/.gitignore | 4 + .../zstd-1.5.0/contrib/linux-kernel/Makefile | 95 + .../zstd-1.5.0/contrib/linux-kernel/README.md | 14 + .../contrib/linux-kernel/btrfs-benchmark.sh | 104 + .../linux-kernel/btrfs-extract-benchmark.sh | 99 + .../contrib/linux-kernel/decompress_sources.h | 28 + .../zstd-1.5.0/contrib/linux-kernel/linux.mk | 46 + .../contrib/linux-kernel/linux_zstd.h | 447 + .../zstd-1.5.0/contrib/linux-kernel/mem.h | 259 + .../linux-kernel/squashfs-benchmark.sh | 39 + .../contrib/linux-kernel/test/Makefile | 44 + .../linux-kernel/test/include/asm/unaligned.h | 186 + .../test/include/linux/compiler.h | 21 + .../linux-kernel/test/include/linux/errno.h | 15 + .../linux-kernel/test/include/linux/kernel.h | 19 + .../linux-kernel/test/include/linux/limits.h | 15 + .../linux-kernel/test/include/linux/math64.h | 15 + .../linux-kernel/test/include/linux/module.h | 18 + .../linux-kernel/test/include/linux/printk.h | 15 + .../linux-kernel/test/include/linux/stddef.h | 15 + .../linux-kernel/test/include/linux/swab.h | 16 + .../linux-kernel/test/include/linux/types.h | 16 + .../linux-kernel/test/include/linux/xxhash.h | 746 + .../contrib/linux-kernel/test/macro-test.sh | 44 + .../contrib/linux-kernel/test/static_test.c | 50 + .../contrib/linux-kernel/test/test.c | 219 + .../linux-kernel/zstd_compress_module.c | 124 + .../linux-kernel/zstd_decompress_module.c | 105 + .../contrib/linux-kernel/zstd_deps.h | 125 + .../contrib/match_finders/README.md | 42 + .../contrib/match_finders/zstd_edist.c | 558 + .../contrib/match_finders/zstd_edist.h | 70 + .../zstd-1.5.0/contrib/premake/premake4.lua | 6 + .../zstd-1.5.0/contrib/premake/zstd.lua | 80 + .../zstd-1.5.0/contrib/pzstd/.gitignore | 2 + dependencies/zstd-1.5.0/contrib/pzstd/BUCK | 72 + .../zstd-1.5.0/contrib/pzstd/ErrorHolder.h | 54 + .../zstd-1.5.0/contrib/pzstd/Logging.h | 72 + .../zstd-1.5.0/contrib/pzstd/Makefile | 274 + .../zstd-1.5.0/contrib/pzstd/Options.cpp | 424 + .../zstd-1.5.0/contrib/pzstd/Options.h | 71 + .../zstd-1.5.0/contrib/pzstd/Pzstd.cpp | 611 + dependencies/zstd-1.5.0/contrib/pzstd/Pzstd.h | 153 + .../zstd-1.5.0/contrib/pzstd/README.md | 56 + .../contrib/pzstd/SkippableFrame.cpp | 30 + .../zstd-1.5.0/contrib/pzstd/SkippableFrame.h | 64 + .../contrib/pzstd/images/Cspeed.png | Bin 0 -> 69804 bytes .../contrib/pzstd/images/Dspeed.png | Bin 0 -> 26335 bytes .../zstd-1.5.0/contrib/pzstd/main.cpp | 27 + .../zstd-1.5.0/contrib/pzstd/test/BUCK | 37 + .../contrib/pzstd/test/OptionsTest.cpp | 536 + .../contrib/pzstd/test/PzstdTest.cpp | 149 + .../zstd-1.5.0/contrib/pzstd/test/RoundTrip.h | 86 + .../contrib/pzstd/test/RoundTripTest.cpp | 86 + .../zstd-1.5.0/contrib/pzstd/utils/BUCK | 75 + .../zstd-1.5.0/contrib/pzstd/utils/Buffer.h | 99 + .../contrib/pzstd/utils/FileSystem.h | 94 + .../zstd-1.5.0/contrib/pzstd/utils/Likely.h | 28 + .../zstd-1.5.0/contrib/pzstd/utils/Range.h | 131 + .../contrib/pzstd/utils/ResourcePool.h | 96 + .../contrib/pzstd/utils/ScopeGuard.h | 50 + .../contrib/pzstd/utils/ThreadPool.h | 58 + .../contrib/pzstd/utils/WorkQueue.h | 181 + .../zstd-1.5.0/contrib/pzstd/utils/test/BUCK | 35 + .../contrib/pzstd/utils/test/BufferTest.cpp | 89 + .../contrib/pzstd/utils/test/RangeTest.cpp | 82 + .../pzstd/utils/test/ResourcePoolTest.cpp | 72 + .../pzstd/utils/test/ScopeGuardTest.cpp | 28 + .../pzstd/utils/test/ThreadPoolTest.cpp | 71 + .../pzstd/utils/test/WorkQueueTest.cpp | 282 + .../zstd-1.5.0/contrib/recovery/Makefile | 35 + .../contrib/recovery/recover_directory.c | 152 + .../seekable_format/examples/.gitignore | 5 + .../contrib/seekable_format/examples/Makefile | 53 + .../examples/parallel_compression.c | 214 + .../examples/parallel_processing.c | 194 + .../examples/seekable_compression.c | 133 + .../examples/seekable_decompression.c | 141 + .../examples/seekable_decompression_mem.c | 147 + .../contrib/seekable_format/tests/.gitignore | 1 + .../contrib/seekable_format/tests/Makefile | 38 + .../seekable_format/tests/seekable_tests.c | 196 + .../contrib/seekable_format/zstd_seekable.h | 217 + .../zstd_seekable_compression_format.md | 116 + .../seekable_format/zstdseek_compress.c | 363 + .../seekable_format/zstdseek_decompress.c | 544 + .../zstd-1.5.0/contrib/snap/snapcraft.yaml | 28 + dependencies/zstd-1.5.0/doc/README.md | 25 + .../doc/educational_decoder/.gitignore | 2 + .../doc/educational_decoder/Makefile | 62 + .../doc/educational_decoder/README.md | 36 + .../doc/educational_decoder/harness.c | 119 + .../doc/educational_decoder/zstd_decompress.c | 2320 +++ .../doc/educational_decoder/zstd_decompress.h | 61 + .../zstd-1.5.0/doc/images/CSpeed2.png | Bin 0 -> 73335 bytes .../zstd-1.5.0/doc/images/DCspeed5.png | Bin 0 -> 69278 bytes .../zstd-1.5.0/doc/images/DSpeed3.png | Bin 0 -> 27123 bytes .../zstd-1.5.0/doc/images/cdict_v136.png | Bin 0 -> 33330 bytes .../zstd-1.5.0/doc/images/dict-cr.png | Bin 0 -> 90412 bytes .../zstd-1.5.0/doc/images/dict-cs.png | Bin 0 -> 91518 bytes .../zstd-1.5.0/doc/images/dict-ds.png | Bin 0 -> 98316 bytes .../doc/images/zstd_cdict_v1_3_5.png | Bin 0 -> 93969 bytes .../zstd-1.5.0/doc/images/zstd_logo86.png | Bin 0 -> 5963 bytes .../zstd-1.5.0/doc/zstd_compression_format.md | 1692 ++ dependencies/zstd-1.5.0/doc/zstd_manual.html | 1870 +++ dependencies/zstd-1.5.0/examples/.gitignore | 15 + dependencies/zstd-1.5.0/examples/Makefile | 93 + dependencies/zstd-1.5.0/examples/README.md | 46 + dependencies/zstd-1.5.0/examples/common.h | 234 + .../examples/dictionary_compression.c | 97 + .../examples/dictionary_decompression.c | 99 + .../examples/multiple_simple_compression.c | 116 + .../examples/multiple_streaming_compression.c | 133 + .../zstd-1.5.0/examples/simple_compression.c | 68 + .../examples/simple_decompression.c | 65 + .../examples/streaming_compression.c | 124 + .../streaming_compression_thread_pool.c | 178 + .../examples/streaming_decompression.c | 100 + .../examples/streaming_memory_usage.c | 137 + dependencies/zstd-1.5.0/lib/.gitignore | 3 + dependencies/zstd-1.5.0/lib/BUCK | 232 + dependencies/zstd-1.5.0/lib/Makefile | 482 + dependencies/zstd-1.5.0/lib/README.md | 211 + .../zstd-1.5.0/lib/common/bitstream.h | 463 + dependencies/zstd-1.5.0/lib/common/compiler.h | 289 + dependencies/zstd-1.5.0/lib/common/cpu.h | 213 + dependencies/zstd-1.5.0/lib/common/debug.c | 24 + dependencies/zstd-1.5.0/lib/common/debug.h | 107 + .../zstd-1.5.0/lib/common/entropy_common.c | 362 + .../zstd-1.5.0/lib/common/error_private.c | 56 + .../zstd-1.5.0/lib/common/error_private.h | 80 + dependencies/zstd-1.5.0/lib/common/fse.h | 716 + .../zstd-1.5.0/lib/common/fse_decompress.c | 403 + dependencies/zstd-1.5.0/lib/common/huf.h | 362 + dependencies/zstd-1.5.0/lib/common/mem.h | 424 + dependencies/zstd-1.5.0/lib/common/pool.c | 350 + dependencies/zstd-1.5.0/lib/common/pool.h | 84 + .../zstd-1.5.0/lib/common/threading.c | 122 + .../zstd-1.5.0/lib/common/threading.h | 155 + dependencies/zstd-1.5.0/lib/common/xxhash.c | 824 + dependencies/zstd-1.5.0/lib/common/xxhash.h | 285 + .../zstd-1.5.0/lib/common/zstd_common.c | 83 + .../zstd-1.5.0/lib/common/zstd_deps.h | 111 + .../zstd-1.5.0/lib/common/zstd_internal.h | 490 + .../zstd-1.5.0/lib/common/zstd_trace.h | 154 + .../zstd-1.5.0/lib/compress/fse_compress.c | 705 + dependencies/zstd-1.5.0/lib/compress/hist.c | 181 + dependencies/zstd-1.5.0/lib/compress/hist.h | 75 + .../zstd-1.5.0/lib/compress/huf_compress.c | 937 ++ .../zstd-1.5.0/lib/compress/zstd_compress.c | 6393 ++++++++ .../lib/compress/zstd_compress_internal.h | 1367 ++ .../lib/compress/zstd_compress_literals.c | 158 + .../lib/compress/zstd_compress_literals.h | 29 + .../lib/compress/zstd_compress_sequences.c | 441 + .../lib/compress/zstd_compress_sequences.h | 54 + .../lib/compress/zstd_compress_superblock.c | 572 + .../lib/compress/zstd_compress_superblock.h | 32 + .../zstd-1.5.0/lib/compress/zstd_cwksp.h | 662 + .../lib/compress/zstd_double_fast.c | 521 + .../lib/compress/zstd_double_fast.h | 38 + .../zstd-1.5.0/lib/compress/zstd_fast.c | 496 + .../zstd-1.5.0/lib/compress/zstd_fast.h | 37 + .../zstd-1.5.0/lib/compress/zstd_lazy.c | 2184 +++ .../zstd-1.5.0/lib/compress/zstd_lazy.h | 125 + .../zstd-1.5.0/lib/compress/zstd_ldm.c | 722 + .../zstd-1.5.0/lib/compress/zstd_ldm.h | 117 + .../lib/compress/zstd_ldm_geartab.h | 103 + .../zstd-1.5.0/lib/compress/zstd_opt.c | 1345 ++ .../zstd-1.5.0/lib/compress/zstd_opt.h | 56 + .../zstd-1.5.0/lib/compress/zstdmt_compress.c | 1821 +++ .../zstd-1.5.0/lib/compress/zstdmt_compress.h | 110 + .../lib/decompress/huf_decompress.c | 1351 ++ .../zstd-1.5.0/lib/decompress/zstd_ddict.c | 244 + .../zstd-1.5.0/lib/decompress/zstd_ddict.h | 44 + .../lib/decompress/zstd_decompress.c | 2167 +++ .../lib/decompress/zstd_decompress_block.c | 1548 ++ .../lib/decompress/zstd_decompress_block.h | 62 + .../lib/decompress/zstd_decompress_internal.h | 205 + .../zstd-1.5.0/lib/deprecated/zbuff.h | 214 + .../zstd-1.5.0/lib/deprecated/zbuff_common.c | 26 + .../lib/deprecated/zbuff_compress.c | 147 + .../lib/deprecated/zbuff_decompress.c | 75 + .../zstd-1.5.0/lib/dictBuilder/cover.c | 1246 ++ .../zstd-1.5.0/lib/dictBuilder/cover.h | 158 + .../zstd-1.5.0/lib/dictBuilder/divsufsort.c | 1913 +++ .../zstd-1.5.0/lib/dictBuilder/divsufsort.h | 67 + .../zstd-1.5.0/lib/dictBuilder/fastcover.c | 759 + .../zstd-1.5.0/lib/dictBuilder/zdict.c | 1134 ++ .../zstd-1.5.0/lib/dll/example/Makefile | 48 + .../zstd-1.5.0/lib/dll/example/README.md | 63 + .../lib/dll/example/build_package.bat | 20 + .../lib/dll/example/fullbench-dll.sln | 25 + .../lib/dll/example/fullbench-dll.vcxproj | 181 + .../zstd-1.5.0/lib/legacy/zstd_legacy.h | 415 + dependencies/zstd-1.5.0/lib/legacy/zstd_v01.c | 2162 +++ dependencies/zstd-1.5.0/lib/legacy/zstd_v01.h | 94 + dependencies/zstd-1.5.0/lib/legacy/zstd_v02.c | 3522 ++++ dependencies/zstd-1.5.0/lib/legacy/zstd_v02.h | 93 + dependencies/zstd-1.5.0/lib/legacy/zstd_v03.c | 3164 ++++ dependencies/zstd-1.5.0/lib/legacy/zstd_v03.h | 93 + dependencies/zstd-1.5.0/lib/legacy/zstd_v04.c | 3651 +++++ dependencies/zstd-1.5.0/lib/legacy/zstd_v04.h | 142 + dependencies/zstd-1.5.0/lib/legacy/zstd_v05.c | 4054 +++++ dependencies/zstd-1.5.0/lib/legacy/zstd_v05.h | 162 + dependencies/zstd-1.5.0/lib/legacy/zstd_v06.c | 4158 +++++ dependencies/zstd-1.5.0/lib/legacy/zstd_v06.h | 172 + dependencies/zstd-1.5.0/lib/legacy/zstd_v07.c | 4545 ++++++ dependencies/zstd-1.5.0/lib/legacy/zstd_v07.h | 187 + dependencies/zstd-1.5.0/lib/libzstd.pc.in | 15 + dependencies/zstd-1.5.0/lib/zdict.h | 452 + dependencies/zstd-1.5.0/lib/zstd.h | 2532 +++ dependencies/zstd-1.5.0/lib/zstd_errors.h | 95 + dependencies/zstd-1.5.0/programs/.gitignore | 39 + dependencies/zstd-1.5.0/programs/BUCK | 44 + dependencies/zstd-1.5.0/programs/Makefile | 511 + dependencies/zstd-1.5.0/programs/README.md | 300 + dependencies/zstd-1.5.0/programs/benchfn.c | 256 + dependencies/zstd-1.5.0/programs/benchfn.h | 183 + dependencies/zstd-1.5.0/programs/benchzstd.c | 882 + dependencies/zstd-1.5.0/programs/benchzstd.h | 213 + dependencies/zstd-1.5.0/programs/datagen.c | 186 + dependencies/zstd-1.5.0/programs/datagen.h | 30 + dependencies/zstd-1.5.0/programs/dibio.c | 360 + dependencies/zstd-1.5.0/programs/dibio.h | 39 + dependencies/zstd-1.5.0/programs/fileio.c | 3123 ++++ dependencies/zstd-1.5.0/programs/fileio.h | 179 + dependencies/zstd-1.5.0/programs/platform.h | 215 + dependencies/zstd-1.5.0/programs/timefn.c | 169 + dependencies/zstd-1.5.0/programs/timefn.h | 89 + dependencies/zstd-1.5.0/programs/util.c | 1291 ++ dependencies/zstd-1.5.0/programs/util.h | 290 + .../zstd-1.5.0/programs/windres/verrsrc.h | 17 + .../zstd-1.5.0/programs/windres/zstd.rc | 51 + .../zstd-1.5.0/programs/windres/zstd32.res | Bin 0 -> 1044 bytes .../zstd-1.5.0/programs/windres/zstd64.res | Bin 0 -> 1044 bytes dependencies/zstd-1.5.0/programs/zstd.1 | 491 + dependencies/zstd-1.5.0/programs/zstd.1.md | 587 + dependencies/zstd-1.5.0/programs/zstdcli.c | 1427 ++ .../zstd-1.5.0/programs/zstdcli_trace.c | 172 + .../zstd-1.5.0/programs/zstdcli_trace.h | 24 + dependencies/zstd-1.5.0/programs/zstdgrep | 134 + dependencies/zstd-1.5.0/programs/zstdgrep.1 | 23 + .../zstd-1.5.0/programs/zstdgrep.1.md | 26 + dependencies/zstd-1.5.0/programs/zstdless | 2 + dependencies/zstd-1.5.0/programs/zstdless.1 | 14 + .../zstd-1.5.0/programs/zstdless.1.md | 16 + dependencies/zstd-1.5.0/tests/.gitignore | 68 + .../tests/DEPRECATED-test-zstd-speed.py | 378 + dependencies/zstd-1.5.0/tests/Makefile | 432 + dependencies/zstd-1.5.0/tests/README.md | 184 + .../tests/automated_benchmarking.py | 326 + dependencies/zstd-1.5.0/tests/bigdict.c | 128 + dependencies/zstd-1.5.0/tests/checkTag.c | 65 + dependencies/zstd-1.5.0/tests/datagencli.c | 130 + dependencies/zstd-1.5.0/tests/decodecorpus.c | 1932 +++ .../tests/dict-files/zero-weight-dict | Bin 0 -> 153 bytes dependencies/zstd-1.5.0/tests/fullbench.c | 937 ++ dependencies/zstd-1.5.0/tests/fuzz/.gitignore | 27 + dependencies/zstd-1.5.0/tests/fuzz/Makefile | 230 + dependencies/zstd-1.5.0/tests/fuzz/README.md | 101 + .../zstd-1.5.0/tests/fuzz/block_decompress.c | 49 + .../zstd-1.5.0/tests/fuzz/block_round_trip.c | 99 + .../tests/fuzz/decompress_dstSize_tooSmall.c | 70 + .../tests/fuzz/dictionary_decompress.c | 73 + .../zstd-1.5.0/tests/fuzz/dictionary_loader.c | 103 + .../tests/fuzz/dictionary_round_trip.c | 121 + .../tests/fuzz/dictionary_stream_round_trip.c | 206 + .../zstd-1.5.0/tests/fuzz/fse_read_ncount.c | 100 + dependencies/zstd-1.5.0/tests/fuzz/fuzz.h | 53 + dependencies/zstd-1.5.0/tests/fuzz/fuzz.py | 892 + .../tests/fuzz/fuzz_data_producer.c | 88 + .../tests/fuzz/fuzz_data_producer.h | 64 + .../zstd-1.5.0/tests/fuzz/fuzz_helpers.c | 32 + .../zstd-1.5.0/tests/fuzz/fuzz_helpers.h | 74 + .../tests/fuzz/raw_dictionary_round_trip.c | 115 + .../zstd-1.5.0/tests/fuzz/regression_driver.c | 89 + .../tests/fuzz/seekable_roundtrip.c | 88 + .../tests/fuzz/sequence_compression_api.c | 303 + .../zstd-1.5.0/tests/fuzz/simple_compress.c | 56 + .../zstd-1.5.0/tests/fuzz/simple_decompress.c | 49 + .../zstd-1.5.0/tests/fuzz/simple_round_trip.c | 118 + .../zstd-1.5.0/tests/fuzz/stream_decompress.c | 119 + .../zstd-1.5.0/tests/fuzz/stream_round_trip.c | 177 + .../zstd-1.5.0/tests/fuzz/zstd_frame_info.c | 43 + .../zstd-1.5.0/tests/fuzz/zstd_helpers.c | 149 + .../zstd-1.5.0/tests/fuzz/zstd_helpers.h | 51 + dependencies/zstd-1.5.0/tests/fuzzer.c | 4175 +++++ .../zstd-1.5.0/tests/golden-compression/http | 1 + .../huffman-compressed-larger | Bin 0 -> 143 bytes .../http-dict-missing-symbols | Bin 0 -> 1000 bytes dependencies/zstd-1.5.0/tests/gzip/Makefile | 45 + .../zstd-1.5.0/tests/gzip/gzip-env.sh | 46 + .../zstd-1.5.0/tests/gzip/helin-segv.sh | 31 + .../zstd-1.5.0/tests/gzip/help-version.sh | 270 + .../zstd-1.5.0/tests/gzip/hufts-segv.gz | Bin 0 -> 425 bytes dependencies/zstd-1.5.0/tests/gzip/hufts.sh | 34 + dependencies/zstd-1.5.0/tests/gzip/init.cfg | 5 + dependencies/zstd-1.5.0/tests/gzip/init.sh | 616 + dependencies/zstd-1.5.0/tests/gzip/keep.sh | 51 + dependencies/zstd-1.5.0/tests/gzip/list.sh | 31 + .../zstd-1.5.0/tests/gzip/memcpy-abuse.sh | 34 + dependencies/zstd-1.5.0/tests/gzip/mixed.sh | 68 + .../tests/gzip/null-suffix-clobber.sh | 35 + dependencies/zstd-1.5.0/tests/gzip/stdin.sh | 31 + .../zstd-1.5.0/tests/gzip/test-driver.sh | 150 + .../zstd-1.5.0/tests/gzip/trailing-nul.sh | 37 + .../zstd-1.5.0/tests/gzip/unpack-invalid.sh | 36 + .../zstd-1.5.0/tests/gzip/z-suffix.sh | 30 + dependencies/zstd-1.5.0/tests/gzip/zdiff.sh | 48 + .../zstd-1.5.0/tests/gzip/zgrep-context.sh | 47 + dependencies/zstd-1.5.0/tests/gzip/zgrep-f.sh | 43 + .../zstd-1.5.0/tests/gzip/zgrep-signal.sh | 64 + dependencies/zstd-1.5.0/tests/gzip/znew-k.sh | 40 + .../zstd-1.5.0/tests/invalidDictionaries.c | 61 + dependencies/zstd-1.5.0/tests/legacy.c | 260 + .../tests/libzstd_partial_builds.sh | 99 + dependencies/zstd-1.5.0/tests/longmatch.c | 101 + dependencies/zstd-1.5.0/tests/paramgrill.c | 2966 ++++ dependencies/zstd-1.5.0/tests/playTests.sh | 1666 ++ dependencies/zstd-1.5.0/tests/poolTests.c | 271 + dependencies/zstd-1.5.0/tests/rateLimiter.py | 41 + .../zstd-1.5.0/tests/regression/.gitignore | 3 + .../zstd-1.5.0/tests/regression/Makefile | 59 + .../zstd-1.5.0/tests/regression/README.md | 28 + .../zstd-1.5.0/tests/regression/config.c | 404 + .../zstd-1.5.0/tests/regression/config.h | 91 + .../zstd-1.5.0/tests/regression/data.c | 631 + .../zstd-1.5.0/tests/regression/data.h | 121 + .../zstd-1.5.0/tests/regression/levels.h | 57 + .../zstd-1.5.0/tests/regression/method.c | 701 + .../zstd-1.5.0/tests/regression/method.h | 65 + .../zstd-1.5.0/tests/regression/result.c | 28 + .../zstd-1.5.0/tests/regression/result.h | 103 + .../zstd-1.5.0/tests/regression/results.csv | 1408 ++ .../zstd-1.5.0/tests/regression/test.c | 362 + .../zstd-1.5.0/tests/roundTripCrash.c | 241 + dependencies/zstd-1.5.0/tests/seqgen.c | 260 + dependencies/zstd-1.5.0/tests/seqgen.h | 58 + dependencies/zstd-1.5.0/tests/test-license.py | 155 + .../zstd-1.5.0/tests/test-zstd-versions.py | 277 + dependencies/zstd-1.5.0/tests/zstreamtest.c | 2616 +++ .../zstd-1.5.0/zlibWrapper/.gitignore | 28 + dependencies/zstd-1.5.0/zlibWrapper/BUCK | 22 + dependencies/zstd-1.5.0/zlibWrapper/Makefile | 119 + dependencies/zstd-1.5.0/zlibWrapper/README.md | 163 + .../zstd-1.5.0/zlibWrapper/examples/example.c | 629 + .../zlibWrapper/examples/example_original.c | 618 + .../zstd-1.5.0/zlibWrapper/examples/fitblk.c | 254 + .../zlibWrapper/examples/fitblk_original.c | 233 + .../zlibWrapper/examples/minigzip.c | 640 + .../zlibWrapper/examples/zwrapbench.c | 1016 ++ dependencies/zstd-1.5.0/zlibWrapper/gzclose.c | 28 + .../zstd-1.5.0/zlibWrapper/gzcompatibility.h | 68 + dependencies/zstd-1.5.0/zlibWrapper/gzguts.h | 229 + dependencies/zstd-1.5.0/zlibWrapper/gzlib.c | 640 + dependencies/zstd-1.5.0/zlibWrapper/gzread.c | 678 + dependencies/zstd-1.5.0/zlibWrapper/gzwrite.c | 671 + .../zstd-1.5.0/zlibWrapper/zstd_zlibwrapper.c | 1191 ++ .../zstd-1.5.0/zlibWrapper/zstd_zlibwrapper.h | 88 + downloadextractthread.cpp | 2 +- imagewriter.cpp | 6 +- main.cpp | 7 + windows/rpi-imager.nsi.in | 4 +- 1869 files changed, 166685 insertions(+), 9489 deletions(-) delete mode 100644 dependencies/libarchive-3.4.2/build/version delete mode 100644 dependencies/libarchive-3.4.2/doc/pdf/archive_entry_acl.3.pdf delete mode 100644 dependencies/libarchive-3.4.2/doc/pdf/archive_entry_linkify.3.pdf delete mode 100644 dependencies/libarchive-3.4.2/doc/pdf/archive_entry_misc.3.pdf delete mode 100644 dependencies/libarchive-3.4.2/doc/pdf/archive_entry_paths.3.pdf delete mode 100644 dependencies/libarchive-3.4.2/doc/pdf/archive_entry_perms.3.pdf delete mode 100644 dependencies/libarchive-3.4.2/doc/pdf/archive_entry_stat.3.pdf delete mode 100644 dependencies/libarchive-3.4.2/doc/pdf/archive_entry_time.3.pdf delete mode 100644 dependencies/libarchive-3.4.2/doc/pdf/archive_read.3.pdf delete mode 100644 dependencies/libarchive-3.4.2/doc/pdf/archive_read_add_passphrase.3.pdf delete mode 100644 dependencies/libarchive-3.4.2/doc/pdf/archive_read_data.3.pdf delete mode 100644 dependencies/libarchive-3.4.2/doc/pdf/archive_read_disk.3.pdf delete mode 100644 dependencies/libarchive-3.4.2/doc/pdf/archive_read_extract.3.pdf delete mode 100644 dependencies/libarchive-3.4.2/doc/pdf/archive_read_filter.3.pdf delete mode 100644 dependencies/libarchive-3.4.2/doc/pdf/archive_read_free.3.pdf delete mode 100644 dependencies/libarchive-3.4.2/doc/pdf/archive_read_header.3.pdf delete mode 100644 dependencies/libarchive-3.4.2/doc/pdf/archive_read_new.3.pdf delete mode 100644 dependencies/libarchive-3.4.2/doc/pdf/archive_read_open.3.pdf delete mode 100644 dependencies/libarchive-3.4.2/doc/pdf/archive_read_set_options.3.pdf delete mode 100644 dependencies/libarchive-3.4.2/doc/pdf/archive_util.3.pdf delete mode 100644 dependencies/libarchive-3.4.2/doc/pdf/archive_write.3.pdf delete mode 100644 dependencies/libarchive-3.4.2/doc/pdf/archive_write_blocksize.3.pdf delete mode 100644 dependencies/libarchive-3.4.2/doc/pdf/archive_write_data.3.pdf delete mode 100644 dependencies/libarchive-3.4.2/doc/pdf/archive_write_disk.3.pdf delete mode 100644 dependencies/libarchive-3.4.2/doc/pdf/archive_write_finish_entry.3.pdf delete mode 100644 dependencies/libarchive-3.4.2/doc/pdf/archive_write_format.3.pdf delete mode 100644 dependencies/libarchive-3.4.2/doc/pdf/archive_write_free.3.pdf delete mode 100644 dependencies/libarchive-3.4.2/doc/pdf/archive_write_header.3.pdf delete mode 100644 dependencies/libarchive-3.4.2/doc/pdf/archive_write_open.3.pdf delete mode 100644 dependencies/libarchive-3.4.2/doc/pdf/archive_write_set_options.3.pdf delete mode 100644 dependencies/libarchive-3.4.2/doc/pdf/archive_write_set_passphrase.3.pdf delete mode 100644 dependencies/libarchive-3.4.2/doc/pdf/bsdcpio.1.pdf delete mode 100644 dependencies/libarchive-3.4.2/doc/pdf/bsdtar.1.pdf delete mode 100644 dependencies/libarchive-3.4.2/doc/pdf/cpio.5.pdf delete mode 100644 dependencies/libarchive-3.4.2/doc/pdf/libarchive-formats.5.pdf delete mode 100644 dependencies/libarchive-3.4.2/doc/pdf/libarchive.3.pdf delete mode 100644 dependencies/libarchive-3.4.2/doc/pdf/libarchive_changes.3.pdf delete mode 100644 dependencies/libarchive-3.4.2/doc/pdf/mtree.5.pdf delete mode 100644 dependencies/libarchive-3.4.2/doc/pdf/tar.5.pdf delete mode 100644 dependencies/libarchive-3.4.2/doc/text/cpio.5.txt delete mode 100644 dependencies/libarchive-3.4.2/libarchive/test/test_read_format_mtree.mtree.uu rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/CMakeLists.txt (98%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/COPYING (99%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/INSTALL (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/Makefile.am (98%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/Makefile.in (53%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/NEWS (98%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/README.md (99%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/aclocal.m4 (98%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/build/autoconf/ax_append_compile_flags.m4 (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/build/autoconf/ax_append_flag.m4 (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/build/autoconf/ax_check_compile_flag.m4 (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/build/autoconf/ax_require_defined.m4 (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/build/autoconf/check_stdcall_func.m4 (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/build/autoconf/compile (95%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/build/autoconf/config.guess (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/build/autoconf/config.rpath (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/build/autoconf/config.sub (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/build/autoconf/depcomp (99%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/build/autoconf/iconv.m4 (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/build/autoconf/install-sh (94%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/build/autoconf/la_uid_t.m4 (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/build/autoconf/lib-ld.m4 (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/build/autoconf/lib-link.m4 (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/build/autoconf/lib-prefix.m4 (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/build/autoconf/ltmain.sh (98%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/build/autoconf/missing (94%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/build/autoconf/test-driver (94%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/build/autogen.sh (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/build/bump-version.sh (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/build/clean.sh (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/build/cmake/CheckFileOffsetBits.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/build/cmake/CheckFileOffsetBits.cmake (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/build/cmake/CheckFuncs.cmake (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/build/cmake/CheckFuncs_stub.c.in (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/build/cmake/CheckHeaderDirent.cmake (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/build/cmake/CheckTypeExists.cmake (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/build/cmake/CreatePkgConfigFile.cmake (90%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/build/cmake/FindLibGCC.cmake (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/build/cmake/FindMbedTLS.cmake (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/build/cmake/FindNettle.cmake (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/build/cmake/FindPCREPOSIX.cmake (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/build/cmake/LibarchiveCodeCoverage.cmake (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/build/cmake/config.h.in (99%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/build/pkgconfig/libarchive.pc.in (100%) create mode 100644 dependencies/libarchive-3.5.2/build/version rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/cat/CMakeLists.txt (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/cat/bsdcat.1 (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/cat/bsdcat.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/cat/bsdcat.h (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/cat/bsdcat_platform.h (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/cat/cmdline.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/cat/test/CMakeLists.txt (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/cat/test/list.h (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/cat/test/test.h (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/cat/test/test_0.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/cat/test/test_empty.gz.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/cat/test/test_empty.lz4.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/cat/test/test_empty.xz.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/cat/test/test_empty.zst.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/cat/test/test_empty_gz.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/cat/test/test_empty_lz4.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/cat/test/test_empty_xz.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/cat/test/test_empty_zstd.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/cat/test/test_error.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/cat/test/test_error_mixed.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/cat/test/test_expand.Z.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/cat/test/test_expand.bz2.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/cat/test/test_expand.gz.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/cat/test/test_expand.lz4.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/cat/test/test_expand.plain.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/cat/test/test_expand.xz.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/cat/test/test_expand.zst.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/cat/test/test_expand_Z.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/cat/test/test_expand_bz2.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/cat/test/test_expand_gz.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/cat/test/test_expand_lz4.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/cat/test/test_expand_mixed.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/cat/test/test_expand_plain.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/cat/test/test_expand_xz.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/cat/test/test_expand_zstd.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/cat/test/test_help.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/cat/test/test_stdin.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/cat/test/test_version.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/config.h.in (98%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/configure (98%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/configure.ac (96%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/contrib/README (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/contrib/android/Android.mk (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/contrib/android/config/android.h (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/contrib/android/config/linux_host.h (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/contrib/android/config/windows_host.h (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/contrib/android/include/Bcrypt.h (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/contrib/android/include/Windows.h (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/contrib/android/include/android_lf.h (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/contrib/archivetest.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/contrib/libarchive.1aix53.spec (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/contrib/libarchive.spec (97%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/contrib/libarchive_autodetect-st_lib_archive.m4 (100%) create mode 100644 dependencies/libarchive-3.5.2/contrib/oss-fuzz/corpus.zip create mode 100644 dependencies/libarchive-3.5.2/contrib/oss-fuzz/libarchive_fuzzer.cc create mode 100755 dependencies/libarchive-3.5.2/contrib/oss-fuzz/oss-fuzz-build.sh rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/contrib/psota-benchmark/results.txt (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/contrib/psota-benchmark/tcp.sh (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/contrib/shar/shar.1 (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/contrib/shar/shar.c (98%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/contrib/shar/tree.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/contrib/shar/tree.h (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/contrib/shar/tree_config.h (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/contrib/untar.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/cpio/CMakeLists.txt (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/cpio/bsdcpio.1 (97%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/cpio/cmdline.c (98%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/cpio/config_freebsd.h (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/cpio/cpio.c (97%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/cpio/cpio.h (98%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/cpio/cpio_platform.h (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/cpio/cpio_windows.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/cpio/cpio_windows.h (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/cpio/test/CMakeLists.txt (90%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/cpio/test/list.h (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/cpio/test/test.h (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/cpio/test/test_0.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/cpio/test/test_basic.c (98%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/cpio/test/test_cmdline.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/cpio/test/test_extract.cpio.Z.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/cpio/test/test_extract.cpio.bz2.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/cpio/test/test_extract.cpio.grz.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/cpio/test/test_extract.cpio.gz.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/cpio/test/test_extract.cpio.lrz.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/cpio/test/test_extract.cpio.lz.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/cpio/test/test_extract.cpio.lz4.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/cpio/test/test_extract.cpio.lzma.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/cpio/test/test_extract.cpio.lzo.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/cpio/test/test_extract.cpio.xz.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/cpio/test/test_extract.cpio.zst.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/cpio/test/test_extract_cpio_Z.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/cpio/test/test_extract_cpio_bz2.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/cpio/test/test_extract_cpio_grz.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/cpio/test/test_extract_cpio_gz.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/cpio/test/test_extract_cpio_lrz.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/cpio/test/test_extract_cpio_lz.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/cpio/test/test_extract_cpio_lz4.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/cpio/test/test_extract_cpio_lzma.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/cpio/test/test_extract_cpio_lzo.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/cpio/test/test_extract_cpio_xz.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/cpio/test/test_extract_cpio_zstd.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/cpio/test/test_format_newc.c (95%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/cpio/test/test_gcpio_compat.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/cpio/test/test_gcpio_compat_ref.bin.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/cpio/test/test_gcpio_compat_ref.crc.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/cpio/test/test_gcpio_compat_ref.newc.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/cpio/test/test_gcpio_compat_ref.ustar.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/cpio/test/test_gcpio_compat_ref_nosym.bin.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/cpio/test/test_gcpio_compat_ref_nosym.crc.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/cpio/test/test_gcpio_compat_ref_nosym.newc.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/cpio/test/test_gcpio_compat_ref_nosym.ustar.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/cpio/test/test_missing_file.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/cpio/test/test_option_0.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/cpio/test/test_option_B_upper.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/cpio/test/test_option_C_upper.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/cpio/test/test_option_J_upper.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/cpio/test/test_option_L_upper.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/cpio/test/test_option_Z_upper.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/cpio/test/test_option_a.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/cpio/test/test_option_b64encode.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/cpio/test/test_option_c.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/cpio/test/test_option_d.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/cpio/test/test_option_f.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/cpio/test/test_option_f.cpio.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/cpio/test/test_option_grzip.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/cpio/test/test_option_help.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/cpio/test/test_option_l.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/cpio/test/test_option_lrzip.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/cpio/test/test_option_lz4.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/cpio/test/test_option_lzma.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/cpio/test/test_option_lzop.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/cpio/test/test_option_m.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/cpio/test/test_option_m.cpio.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/cpio/test/test_option_passphrase.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/cpio/test/test_option_passphrase.zip.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/cpio/test/test_option_t.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/cpio/test/test_option_t.cpio.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/cpio/test/test_option_t.stdout.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/cpio/test/test_option_tv.stdout.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/cpio/test/test_option_u.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/cpio/test/test_option_uuencode.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/cpio/test/test_option_version.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/cpio/test/test_option_xz.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/cpio/test/test_option_y.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/cpio/test/test_option_z.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/cpio/test/test_option_zstd.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/cpio/test/test_owner_parse.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/cpio/test/test_passthrough_dotdot.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/cpio/test/test_passthrough_reverse.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/html/.ignore_me (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/html/Makefile (98%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/html/archive_entry.3.html (98%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/html/archive_entry_acl.3.html (95%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/html/archive_entry_linkify.3.html (98%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/html/archive_entry_misc.3.html (96%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/html/archive_entry_paths.3.html (98%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/html/archive_entry_perms.3.html (99%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/html/archive_entry_stat.3.html (98%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/html/archive_entry_time.3.html (98%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/html/archive_read.3.html (98%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/html/archive_read_add_passphrase.3.html (96%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/html/archive_read_data.3.html (98%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/html/archive_read_disk.3.html (94%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/html/archive_read_extract.3.html (98%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/html/archive_read_filter.3.html (89%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/html/archive_read_format.3.html (92%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/html/archive_read_free.3.html (97%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/html/archive_read_header.3.html (97%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/html/archive_read_new.3.html (95%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/html/archive_read_open.3.html (98%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/html/archive_read_set_options.3.html (92%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/html/archive_util.3.html (92%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/html/archive_write.3.html (96%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/html/archive_write_blocksize.3.html (95%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/html/archive_write_data.3.html (97%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/html/archive_write_disk.3.html (97%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/html/archive_write_filter.3.html (98%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/html/archive_write_finish_entry.3.html (96%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/html/archive_write_format.3.html (90%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/html/archive_write_free.3.html (97%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/html/archive_write_header.3.html (96%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/html/archive_write_new.3.html (95%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/html/archive_write_open.3.html (83%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/html/archive_write_set_options.3.html (91%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/html/archive_write_set_passphrase.3.html (96%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/html/bsdcpio.1.html (93%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/html/bsdtar.1.html (95%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/html/cpio.5.html (50%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/html/libarchive-formats.5.html (84%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/html/libarchive.3.html (95%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/html/libarchive_changes.3.html (96%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/html/libarchive_internals.3.html (99%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/html/mtree.5.html (94%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/html/tar.5.html (84%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/man/.ignore_me (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/man/Makefile (98%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/man/archive_entry.3 (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/man/archive_entry_acl.3 (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/man/archive_entry_linkify.3 (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/man/archive_entry_misc.3 (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/man/archive_entry_paths.3 (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/man/archive_entry_perms.3 (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/man/archive_entry_stat.3 (99%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/man/archive_entry_time.3 (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/man/archive_read.3 (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/man/archive_read_add_passphrase.3 (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/man/archive_read_data.3 (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/man/archive_read_disk.3 (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/man/archive_read_extract.3 (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/man/archive_read_filter.3 (89%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/man/archive_read_format.3 (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/man/archive_read_free.3 (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/man/archive_read_header.3 (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/man/archive_read_new.3 (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/man/archive_read_open.3 (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/man/archive_read_set_options.3 (93%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/man/archive_util.3 (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/man/archive_write.3 (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/man/archive_write_blocksize.3 (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/man/archive_write_data.3 (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/man/archive_write_disk.3 (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/man/archive_write_filter.3 (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/man/archive_write_finish_entry.3 (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/man/archive_write_format.3 (89%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/man/archive_write_free.3 (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/man/archive_write_header.3 (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/man/archive_write_new.3 (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/man/archive_write_open.3 (86%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/man/archive_write_set_options.3 (98%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/man/archive_write_set_passphrase.3 (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/man/bsdcpio.1 (97%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/man/bsdtar.1 (99%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/man/cpio.5 (61%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/man/libarchive-formats.5 (93%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/man/libarchive.3 (99%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/man/libarchive_changes.3 (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/man/libarchive_internals.3 (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/man/mtree.5 (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/man/tar.5 (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/mdoc2man.awk (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/mdoc2wiki.awk (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/pdf/.ignore_me (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/pdf/Makefile (99%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/pdf/archive_entry.3.pdf (55%) create mode 100644 dependencies/libarchive-3.5.2/doc/pdf/archive_entry_acl.3.pdf create mode 100644 dependencies/libarchive-3.5.2/doc/pdf/archive_entry_linkify.3.pdf create mode 100644 dependencies/libarchive-3.5.2/doc/pdf/archive_entry_misc.3.pdf create mode 100644 dependencies/libarchive-3.5.2/doc/pdf/archive_entry_paths.3.pdf create mode 100644 dependencies/libarchive-3.5.2/doc/pdf/archive_entry_perms.3.pdf create mode 100644 dependencies/libarchive-3.5.2/doc/pdf/archive_entry_stat.3.pdf create mode 100644 dependencies/libarchive-3.5.2/doc/pdf/archive_entry_time.3.pdf create mode 100644 dependencies/libarchive-3.5.2/doc/pdf/archive_read.3.pdf create mode 100644 dependencies/libarchive-3.5.2/doc/pdf/archive_read_add_passphrase.3.pdf create mode 100644 dependencies/libarchive-3.5.2/doc/pdf/archive_read_data.3.pdf create mode 100644 dependencies/libarchive-3.5.2/doc/pdf/archive_read_disk.3.pdf create mode 100644 dependencies/libarchive-3.5.2/doc/pdf/archive_read_extract.3.pdf create mode 100644 dependencies/libarchive-3.5.2/doc/pdf/archive_read_filter.3.pdf rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/pdf/archive_read_format.3.pdf (54%) create mode 100644 dependencies/libarchive-3.5.2/doc/pdf/archive_read_free.3.pdf create mode 100644 dependencies/libarchive-3.5.2/doc/pdf/archive_read_header.3.pdf create mode 100644 dependencies/libarchive-3.5.2/doc/pdf/archive_read_new.3.pdf create mode 100644 dependencies/libarchive-3.5.2/doc/pdf/archive_read_open.3.pdf create mode 100644 dependencies/libarchive-3.5.2/doc/pdf/archive_read_set_options.3.pdf create mode 100644 dependencies/libarchive-3.5.2/doc/pdf/archive_util.3.pdf create mode 100644 dependencies/libarchive-3.5.2/doc/pdf/archive_write.3.pdf create mode 100644 dependencies/libarchive-3.5.2/doc/pdf/archive_write_blocksize.3.pdf create mode 100644 dependencies/libarchive-3.5.2/doc/pdf/archive_write_data.3.pdf create mode 100644 dependencies/libarchive-3.5.2/doc/pdf/archive_write_disk.3.pdf rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/pdf/archive_write_filter.3.pdf (51%) create mode 100644 dependencies/libarchive-3.5.2/doc/pdf/archive_write_finish_entry.3.pdf create mode 100644 dependencies/libarchive-3.5.2/doc/pdf/archive_write_format.3.pdf create mode 100644 dependencies/libarchive-3.5.2/doc/pdf/archive_write_free.3.pdf create mode 100644 dependencies/libarchive-3.5.2/doc/pdf/archive_write_header.3.pdf rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/pdf/archive_write_new.3.pdf (53%) create mode 100644 dependencies/libarchive-3.5.2/doc/pdf/archive_write_open.3.pdf create mode 100644 dependencies/libarchive-3.5.2/doc/pdf/archive_write_set_options.3.pdf create mode 100644 dependencies/libarchive-3.5.2/doc/pdf/archive_write_set_passphrase.3.pdf create mode 100644 dependencies/libarchive-3.5.2/doc/pdf/bsdcpio.1.pdf create mode 100644 dependencies/libarchive-3.5.2/doc/pdf/bsdtar.1.pdf create mode 100644 dependencies/libarchive-3.5.2/doc/pdf/cpio.5.pdf create mode 100644 dependencies/libarchive-3.5.2/doc/pdf/libarchive-formats.5.pdf create mode 100644 dependencies/libarchive-3.5.2/doc/pdf/libarchive.3.pdf create mode 100644 dependencies/libarchive-3.5.2/doc/pdf/libarchive_changes.3.pdf rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/pdf/libarchive_internals.3.pdf (57%) create mode 100644 dependencies/libarchive-3.5.2/doc/pdf/mtree.5.pdf create mode 100644 dependencies/libarchive-3.5.2/doc/pdf/tar.5.pdf rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/text/.ignore_me (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/text/Makefile (99%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/text/archive_entry.3.txt (96%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/text/archive_entry_acl.3.txt (90%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/text/archive_entry_linkify.3.txt (82%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/text/archive_entry_misc.3.txt (86%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/text/archive_entry_paths.3.txt (98%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/text/archive_entry_perms.3.txt (96%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/text/archive_entry_stat.3.txt (89%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/text/archive_entry_time.3.txt (97%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/text/archive_read.3.txt (93%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/text/archive_read_add_passphrase.3.txt (93%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/text/archive_read_data.3.txt (93%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/text/archive_read_disk.3.txt (83%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/text/archive_read_extract.3.txt (80%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/text/archive_read_filter.3.txt (84%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/text/archive_read_format.3.txt (78%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/text/archive_read_free.3.txt (98%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/text/archive_read_header.3.txt (88%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/text/archive_read_new.3.txt (91%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/text/archive_read_open.3.txt (93%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/text/archive_read_set_options.3.txt (86%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/text/archive_util.3.txt (89%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/text/archive_write.3.txt (87%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/text/archive_write_blocksize.3.txt (94%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/text/archive_write_data.3.txt (79%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/text/archive_write_disk.3.txt (76%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/text/archive_write_filter.3.txt (99%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/text/archive_write_finish_entry.3.txt (80%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/text/archive_write_format.3.txt (88%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/text/archive_write_free.3.txt (92%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/text/archive_write_header.3.txt (90%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/text/archive_write_new.3.txt (91%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/text/archive_write_open.3.txt (65%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/text/archive_write_set_options.3.txt (77%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/text/archive_write_set_passphrase.3.txt (98%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/text/bsdcpio.1.txt (90%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/text/bsdtar.1.txt (84%) create mode 100644 dependencies/libarchive-3.5.2/doc/text/cpio.5.txt rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/text/libarchive-formats.5.txt (70%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/text/libarchive.3.txt (75%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/text/libarchive_changes.3.txt (87%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/text/libarchive_internals.3.txt (93%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/text/mtree.5.txt (77%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/text/tar.5.txt (73%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/update.sh (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/wiki/.ignore_me (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/wiki/Makefile (98%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/wiki/ManPageArchiveEntry3.wiki (89%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/wiki/ManPageArchiveEntryAcl3.wiki (99%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/wiki/ManPageArchiveEntryLinkify3.wiki (98%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/wiki/ManPageArchiveEntryMisc3.wiki (91%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/wiki/ManPageArchiveEntryPaths3.wiki (97%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/wiki/ManPageArchiveEntryPerms3.wiki (98%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/wiki/ManPageArchiveEntryStat3.wiki (97%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/wiki/ManPageArchiveEntryTime3.wiki (97%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/wiki/ManPageArchiveRead3.wiki (90%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/wiki/ManPageArchiveReadAddPassphrase3.wiki (93%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/wiki/ManPageArchiveReadData3.wiki (91%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/wiki/ManPageArchiveReadDisk3.wiki (98%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/wiki/ManPageArchiveReadExtract3.wiki (81%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/wiki/ManPageArchiveReadFilter3.wiki (87%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/wiki/ManPageArchiveReadFormat3.wiki (97%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/wiki/ManPageArchiveReadFree3.wiki (87%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/wiki/ManPageArchiveReadHeader3.wiki (85%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/wiki/ManPageArchiveReadNew3.wiki (74%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/wiki/ManPageArchiveReadOpen3.wiki (96%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/wiki/ManPageArchiveReadSetOptions3.wiki (91%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/wiki/ManPageArchiveUtil3.wiki (97%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/wiki/ManPageArchiveWrite3.wiki (94%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/wiki/ManPageArchiveWriteBlocksize3.wiki (98%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/wiki/ManPageArchiveWriteData3.wiki (94%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/wiki/ManPageArchiveWriteDisk3.wiki (98%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/wiki/ManPageArchiveWriteFilter3.wiki (96%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/wiki/ManPageArchiveWriteFinishEntry3.wiki (93%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/wiki/ManPageArchiveWriteFormat3.wiki (86%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/wiki/ManPageArchiveWriteFree3.wiki (96%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/wiki/ManPageArchiveWriteHeader3.wiki (92%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/wiki/ManPageArchiveWriteNew3.wiki (85%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/wiki/ManPageArchiveWriteOpen3.wiki (83%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/wiki/ManPageArchiveWriteSetOptions3.wiki (97%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/wiki/ManPageArchiveWriteSetPassphrase3.wiki (92%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/wiki/ManPageBsdcpio1.wiki (96%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/wiki/ManPageBsdtar1.wiki (99%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/wiki/ManPageCpio5.wiki (61%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/wiki/ManPageLibarchive3.wiki (94%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/wiki/ManPageLibarchiveChanges3.wiki (96%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/wiki/ManPageLibarchiveFormats5.wiki (93%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/wiki/ManPageLibarchiveInternals3.wiki (97%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/wiki/ManPageMtree5.wiki (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/doc/wiki/ManPageTar5.wiki (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/examples/minitar/README (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/examples/minitar/minitar.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/examples/tarfilter.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/examples/untar.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/CMakeLists.txt (98%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive.h (98%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_acl.c (99%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_acl_private.h (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_blake2.h (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_blake2_impl.h (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_blake2s_ref.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_blake2sp_ref.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_check_magic.c (99%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_cmdline.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_cmdline_private.h (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_crc32.h (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_cryptor.c (95%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_cryptor_private.h (97%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_digest.c (54%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_digest_private.h (99%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_disk_acl_darwin.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_disk_acl_freebsd.c (97%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_disk_acl_linux.c (97%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_disk_acl_sunos.c (98%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_endian.h (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_entry.3 (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_entry.c (96%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_entry.h (98%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_entry_acl.3 (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_entry_copy_bhfi.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_entry_copy_stat.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_entry_link_resolver.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_entry_linkify.3 (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_entry_locale.h (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_entry_misc.3 (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_entry_paths.3 (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_entry_perms.3 (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_entry_private.h (94%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_entry_sparse.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_entry_stat.3 (99%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_entry_stat.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_entry_strmode.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_entry_time.3 (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_entry_xattr.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_getdate.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_getdate.h (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_hmac.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_hmac_private.h (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_match.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_openssl_evp_private.h (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_openssl_hmac_private.h (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_options.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_options_private.h (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_pack_dev.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_pack_dev.h (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_pathmatch.c (99%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_pathmatch.h (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_platform.h (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_platform_acl.h (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_platform_xattr.h (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_ppmd7.c (99%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_ppmd7_private.h (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_ppmd8.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_ppmd8_private.h (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_ppmd_private.h (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_private.h (97%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_random.c (97%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_random_private.h (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_rb.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_rb.h (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_read.3 (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_read.c (99%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_read_add_passphrase.3 (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_read_add_passphrase.c (97%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_read_append_filter.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_read_data.3 (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_read_data_into_fd.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_read_disk.3 (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_read_disk_entry_from_file.c (96%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_read_disk_posix.c (97%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_read_disk_private.h (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_read_disk_set_standard_lookup.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_read_disk_windows.c (99%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_read_extract.3 (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_read_extract.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_read_extract2.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_read_filter.3 (92%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_read_format.3 (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_read_free.3 (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_read_header.3 (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_read_new.3 (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_read_open.3 (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_read_open_fd.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_read_open_file.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_read_open_filename.c (99%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_read_open_memory.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_read_private.h (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_read_set_format.c (94%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_read_set_options.3 (94%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_read_set_options.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_read_support_filter_all.c (100%) create mode 100644 dependencies/libarchive-3.5.2/libarchive/archive_read_support_filter_by_code.c rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_read_support_filter_bzip2.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_read_support_filter_compress.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_read_support_filter_grzip.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_read_support_filter_gzip.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_read_support_filter_lrzip.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_read_support_filter_lz4.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_read_support_filter_lzop.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_read_support_filter_none.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_read_support_filter_program.c (95%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_read_support_filter_rpm.c (99%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_read_support_filter_uu.c (99%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_read_support_filter_xz.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_read_support_filter_zstd.c (97%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_read_support_format_7zip.c (99%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_read_support_format_all.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_read_support_format_ar.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_read_support_format_by_code.c (87%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_read_support_format_cab.c (99%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_read_support_format_cpio.c (97%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_read_support_format_empty.c (99%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_read_support_format_iso9660.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_read_support_format_lha.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_read_support_format_mtree.c (94%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_read_support_format_rar.c (99%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_read_support_format_rar5.c (99%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_read_support_format_raw.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_read_support_format_tar.c (99%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_read_support_format_warc.c (98%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_read_support_format_xar.c (99%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_read_support_format_zip.c (97%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_string.c (98%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_string.h (99%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_string_composition.h (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_string_sprintf.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_util.3 (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_util.c (98%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_version_details.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_virtual.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_windows.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_windows.h (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_write.3 (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_write.c (95%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_write_add_filter.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_write_add_filter_b64encode.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_write_add_filter_by_name.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_write_add_filter_bzip2.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_write_add_filter_compress.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_write_add_filter_grzip.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_write_add_filter_gzip.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_write_add_filter_lrzip.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_write_add_filter_lz4.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_write_add_filter_lzop.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_write_add_filter_none.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_write_add_filter_program.c (94%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_write_add_filter_uuencode.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_write_add_filter_xz.c (99%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_write_add_filter_zstd.c (80%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_write_blocksize.3 (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_write_data.3 (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_write_disk.3 (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_write_disk_posix.c (97%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_write_disk_private.h (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_write_disk_set_standard_lookup.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_write_disk_windows.c (99%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_write_filter.3 (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_write_finish_entry.3 (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_write_format.3 (91%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_write_free.3 (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_write_header.3 (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_write_new.3 (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_write_open.3 (89%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_write_open_fd.c (94%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_write_open_file.c (92%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_write_open_filename.c (94%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_write_open_memory.c (93%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_write_private.h (99%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_write_set_format.c (94%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_write_set_format_7zip.c (99%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_write_set_format_ar.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_write_set_format_by_name.c (96%) create mode 100644 dependencies/libarchive-3.5.2/libarchive/archive_write_set_format_cpio.c create mode 100644 dependencies/libarchive-3.5.2/libarchive/archive_write_set_format_cpio_binary.c rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_write_set_format_cpio_newc.c (99%) rename dependencies/{libarchive-3.4.2/libarchive/archive_write_set_format_cpio.c => libarchive-3.5.2/libarchive/archive_write_set_format_cpio_odc.c} (91%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_write_set_format_filter_by_ext.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_write_set_format_gnutar.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_write_set_format_iso9660.c (99%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_write_set_format_mtree.c (98%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_write_set_format_pax.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_write_set_format_private.h (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_write_set_format_raw.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_write_set_format_shar.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_write_set_format_ustar.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_write_set_format_v7tar.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_write_set_format_warc.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_write_set_format_xar.c (99%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_write_set_format_zip.c (99%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_write_set_options.3 (98%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_write_set_options.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_write_set_passphrase.3 (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_write_set_passphrase.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/archive_xxhash.h (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/config_freebsd.h (98%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/cpio.5 (65%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/filter_fork.h (93%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/filter_fork_posix.c (98%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/filter_fork_windows.c (95%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/libarchive-formats.5 (94%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/libarchive.3 (99%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/libarchive_changes.3 (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/libarchive_internals.3 (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/mtree.5 (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/tar.5 (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/CMakeLists.txt (98%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/README (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/list.h (98%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/read_open_memory.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test.h (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_acl_nfs4.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_acl_pax.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_acl_pax_nfs4.tar.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_acl_pax_posix1e.tar.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_acl_platform_nfs4.c (99%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_acl_platform_posix1e.c (99%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_acl_posix1e.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_acl_text.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_archive_api_feature.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_archive_clear_error.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_archive_cmdline.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_archive_digest.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_archive_getdate.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_archive_match_owner.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_archive_match_path.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_archive_match_time.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_archive_pathmatch.c (98%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_archive_read_add_passphrase.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_archive_read_close_twice.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_archive_read_close_twice_open_fd.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_archive_read_close_twice_open_filename.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_archive_read_multiple_data_objects.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_archive_read_next_header_empty.c (90%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_archive_read_next_header_raw.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_archive_read_open2.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_archive_read_set_filter_option.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_archive_read_set_format_option.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_archive_read_set_option.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_archive_read_set_options.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_archive_read_support.c (74%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_archive_set_error.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_archive_string.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_archive_string_conversion.c (90%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_archive_string_conversion.txt.Z.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_archive_write_add_filter_by_name.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_archive_write_set_filter_option.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_archive_write_set_format_by_name.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_archive_write_set_format_filter_by_ext.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_archive_write_set_format_option.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_archive_write_set_option.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_archive_write_set_options.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_archive_write_set_passphrase.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_bad_fd.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_compat_bzip2.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_compat_bzip2_1.tbz.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_compat_bzip2_2.tbz.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_compat_cpio.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_compat_cpio_1.cpio.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_compat_gtar.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_compat_gtar_1.tar.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_compat_gtar_2.tar.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_compat_gzip.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_compat_gzip_1.tgz.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_compat_gzip_2.tgz.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_compat_lz4.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_compat_lz4_1.tar.lz4.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_compat_lz4_2.tar.lz4.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_compat_lz4_3.tar.lz4.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_compat_lz4_B4.tar.lz4.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_compat_lz4_B4BD.tar.lz4.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_compat_lz4_B4BDBX.tar.lz4.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_compat_lz4_B5.tar.lz4.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_compat_lz4_B5BD.tar.lz4.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_compat_lz4_B6.tar.lz4.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_compat_lz4_B6BD.tar.lz4.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_compat_lz4_B7.tar.lz4.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_compat_lz4_B7BD.tar.lz4.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_compat_lzip.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_compat_lzip_1.tlz.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_compat_lzip_2.tlz.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_compat_lzma.c (98%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_compat_lzma_1.tlz.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_compat_lzma_2.tlz.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_compat_lzma_3.tlz.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_compat_lzop.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_compat_lzop_1.tar.lzo.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_compat_lzop_2.tar.lzo.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_compat_lzop_3.tar.lzo.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_compat_mac-1.tar.Z.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_compat_mac-2.tar.Z.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_compat_mac.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_compat_perl_archive_tar.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_compat_perl_archive_tar.tar.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_compat_plexus_archiver_tar.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_compat_plexus_archiver_tar.tar.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_compat_solaris_pax_sparse.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_compat_solaris_pax_sparse_1.pax.Z.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_compat_solaris_pax_sparse_2.pax.Z.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_compat_solaris_tar_acl.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_compat_solaris_tar_acl.tar.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_compat_star_acl.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_compat_star_acl_nfs4.tar.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_compat_star_acl_posix1e.tar.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_compat_tar_hardlink.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_compat_tar_hardlink_1.tar.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_compat_uudecode.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_compat_uudecode_large.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_compat_uudecode_large.tar.Z.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_compat_xz.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_compat_xz_1.txz.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_compat_zip.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_compat_zip_1.zip.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_compat_zip_2.zip.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_compat_zip_3.zip.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_compat_zip_4.zip.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_compat_zip_5.zip.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_compat_zip_6.zip.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_compat_zip_7.xps.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_compat_zip_8.zip.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_compat_zstd.c (97%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_compat_zstd_1.tar.zst.uu (100%) create mode 100644 dependencies/libarchive-3.5.2/libarchive/test/test_compat_zstd_2.tar.zst.uu rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_empty_write.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_entry.c (86%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_entry_strmode.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_extattr_freebsd.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_filter_count.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_fuzz.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_fuzz.cab.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_fuzz.lzh.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_fuzz_1.iso.Z.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_gnutar_filename_encoding.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_link_resolver.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_open_failure.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_open_fd.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_open_file.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_open_filename.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_pax_filename_encoding.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_pax_filename_encoding.tar.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_pax_xattr_header.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_pax_xattr_header_all.tar.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_pax_xattr_header_libarchive.tar.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_pax_xattr_header_schily.tar.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_rar_multivolume_multiple_files.part1.rar.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_rar_multivolume_multiple_files.part2.rar.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_rar_multivolume_multiple_files.part3.rar.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_rar_multivolume_multiple_files.part4.rar.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_rar_multivolume_multiple_files.part5.rar.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_rar_multivolume_multiple_files.part6.rar.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_rar_multivolume_single_file.part1.rar.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_rar_multivolume_single_file.part2.rar.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_rar_multivolume_single_file.part3.rar.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_rar_multivolume_uncompressed_files.part01.rar.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_rar_multivolume_uncompressed_files.part02.rar.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_rar_multivolume_uncompressed_files.part03.rar.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_rar_multivolume_uncompressed_files.part04.rar.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_rar_multivolume_uncompressed_files.part05.rar.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_rar_multivolume_uncompressed_files.part06.rar.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_rar_multivolume_uncompressed_files.part07.rar.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_rar_multivolume_uncompressed_files.part08.rar.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_rar_multivolume_uncompressed_files.part09.rar.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_rar_multivolume_uncompressed_files.part10.rar.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_data_large.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_disk.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_disk_directory_traversals.c (99%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_disk_entry_from_file.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_extract.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_file_nonexistent.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_filter_compress.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_filter_grzip.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_filter_grzip.tar.grz.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_filter_lrzip.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_filter_lrzip.tar.lrz.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_filter_lzop.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_filter_lzop.tar.lzo.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_filter_lzop_multiple_parts.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_filter_lzop_multiple_parts.tar.lzo.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_filter_program.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_filter_program_signature.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_filter_uudecode.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_7zip.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_7zip_bcj2_bzip2.7z.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_7zip_bcj2_copy_1.7z.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_7zip_bcj2_copy_2.7z.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_7zip_bcj2_copy_lzma.7z.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_7zip_bcj2_deflate.7z.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_7zip_bcj2_lzma1_1.7z.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_7zip_bcj2_lzma1_2.7z.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_7zip_bcj2_lzma2_1.7z.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_7zip_bcj2_lzma2_2.7z.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_7zip_bcj_bzip2.7z.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_7zip_bcj_copy.7z.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_7zip_bcj_deflate.7z.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_7zip_bcj_lzma1.7z.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_7zip_bcj_lzma2.7z.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_7zip_bzip2.7z.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_7zip_copy.7z.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_7zip_copy_2.7z.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_7zip_deflate.7z.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_7zip_delta4_lzma1.7z.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_7zip_delta4_lzma2.7z.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_7zip_delta_lzma1.7z.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_7zip_delta_lzma2.7z.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_7zip_empty_archive.7z.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_7zip_empty_file.7z.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_7zip_encryption.7z.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_7zip_encryption_data.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_7zip_encryption_header.7z.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_7zip_encryption_header.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_7zip_encryption_partially.7z.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_7zip_encryption_partially.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_7zip_lzma1.7z.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_7zip_lzma1_2.7z.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_7zip_lzma1_lzma2.7z.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_7zip_lzma2.7z.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_7zip_malformed.7z.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_7zip_malformed.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_7zip_malformed2.7z.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_7zip_packinfo_digests.7z.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_7zip_packinfo_digests.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_7zip_ppmd.7z.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_7zip_symbolic_name.7z.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_ar.ar.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_ar.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_cab.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_cab_1.cab.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_cab_2.cab.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_cab_3.cab.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_cab_filename.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_cab_filename_cp932.cab.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_cpio_afio.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_cpio_bin.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_cpio_bin_Z.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_cpio_bin_be.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_cpio_bin_be.cpio.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_cpio_bin_bz2.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_cpio_bin_gz.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_cpio_bin_le.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_cpio_bin_le.cpio.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_cpio_bin_lzip.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_cpio_bin_lzma.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_cpio_bin_xz.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_cpio_filename.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_cpio_filename_cp866.cpio.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_cpio_filename_eucjp.cpio.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_cpio_filename_koi8r.cpio.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_cpio_filename_utf8_jp.cpio.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_cpio_filename_utf8_ru.cpio.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_cpio_odc.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_cpio_svr4_bzip2_rpm.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_cpio_svr4_bzip2_rpm.rpm.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_cpio_svr4_gzip.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_cpio_svr4_gzip_rpm.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_cpio_svr4_gzip_rpm.rpm.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_cpio_svr4c_Z.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_empty.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_gtar_filename.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_gtar_filename_cp866.tar.Z.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_gtar_filename_eucjp.tar.Z.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_gtar_filename_koi8r.tar.Z.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_gtar_gz.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_gtar_lzma.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_gtar_sparse.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_gtar_sparse_1_13.tar.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_gtar_sparse_1_17.tar.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_gtar_sparse_1_17_posix00.tar.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_gtar_sparse_1_17_posix01.tar.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_gtar_sparse_1_17_posix10.tar.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_gtar_sparse_1_17_posix10_modified.tar.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_gtar_sparse_skip_entry.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_gtar_sparse_skip_entry.tar.Z.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_iso.iso.Z.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_iso_2.iso.Z.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_iso_Z.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_iso_joliet.iso.Z.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_iso_joliet_by_nero.iso.Z.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_iso_joliet_long.iso.Z.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_iso_joliet_rockridge.iso.Z.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_iso_multi_extent.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_iso_multi_extent.iso.Z.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_iso_rockridge.iso.Z.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_iso_rockridge_ce.iso.Z.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_iso_rockridge_new.iso.Z.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_iso_rockridge_rr_moved.iso.Z.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_iso_xorriso.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_iso_xorriso.iso.Z.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_iso_zisofs.iso.Z.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_isojoliet_bz2.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_isojoliet_long.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_isojoliet_rr.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_isojoliet_versioned.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_isorr_bz2.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_isorr_ce.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_isorr_new_bz2.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_isorr_rr_moved.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_isozisofs_bz2.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_lha.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_lha_bugfix_0.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_lha_bugfix_0.lzh.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_lha_filename.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_lha_filename_cp932.lzh.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_lha_filename_utf16.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_lha_filename_utf16.lzh.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_lha_header0.lzh.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_lha_header1.lzh.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_lha_header2.lzh.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_lha_header3.lzh.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_lha_lh0.lzh.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_lha_lh6.lzh.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_lha_lh7.lzh.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_lha_withjunk.lzh.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_mtree.c (90%) create mode 100644 dependencies/libarchive-3.5.2/libarchive/test/test_read_format_mtree.mtree.uu rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_mtree_crash747.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_mtree_crash747.mtree.bz2.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_mtree_nomagic.mtree.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_mtree_nomagic2.mtree.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_mtree_nomagic3.mtree.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_mtree_noprint.mtree.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_pax_bz2.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_rar.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_rar.rar.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_rar5.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_rar5_arm.rar.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_rar5_arm_filter_on_window_boundary.rar.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_rar5_blake2.rar.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_rar5_block_size_is_too_small.rar.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_rar5_compressed.rar.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_rar5_different_solid_window_size.rar.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_rar5_different_window_size.rar.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_rar5_different_winsize_on_merge.rar.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_rar5_distance_overflow.rar.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_rar5_extra_field_version.rar.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_rar5_fileattr.rar.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_rar5_hardlink.rar.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_rar5_invalid_dict_reference.rar.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_rar5_leftshift1.rar.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_rar5_leftshift2.rar.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_rar5_multiarchive.part01.rar.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_rar5_multiarchive.part02.rar.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_rar5_multiarchive.part03.rar.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_rar5_multiarchive.part04.rar.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_rar5_multiarchive.part05.rar.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_rar5_multiarchive.part06.rar.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_rar5_multiarchive.part07.rar.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_rar5_multiarchive.part08.rar.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_rar5_multiarchive_solid.part01.rar.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_rar5_multiarchive_solid.part02.rar.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_rar5_multiarchive_solid.part03.rar.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_rar5_multiarchive_solid.part04.rar.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_rar5_multiple_files.rar.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_rar5_multiple_files_solid.rar.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_rar5_nonempty_dir_stream.rar.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_rar5_owner.rar.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_rar5_readtables_overflow.rar.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_rar5_solid.rar.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_rar5_stored.rar.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_rar5_stored_manyfiles.rar.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_rar5_symlink.rar.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_rar5_truncated_huff.rar.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_rar5_win32.rar.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_rar_binary_data.rar.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_rar_compress_best.rar.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_rar_compress_normal.rar.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_rar_encryption_data.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_rar_encryption_data.rar.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_rar_encryption_header.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_rar_encryption_header.rar.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_rar_encryption_partially.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_rar_encryption_partially.rar.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_rar_invalid1.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_rar_invalid1.rar.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_rar_multi_lzss_blocks.rar.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_rar_multivolume.part0001.rar.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_rar_multivolume.part0002.rar.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_rar_multivolume.part0003.rar.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_rar_multivolume.part0004.rar.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_rar_noeof.rar.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_rar_ppmd_lzss_conversion.rar.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_rar_ppmd_use_after_free.rar.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_rar_ppmd_use_after_free2.rar.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_rar_sfx.exe.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_rar_subblock.rar.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_rar_unicode.rar.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_rar_windows.rar.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_raw.bufr.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_raw.c (96%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_raw.data.Z.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_raw.data.gz.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_raw.data.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_tar.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_tar_concatenated.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_tar_concatenated.tar.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_tar_empty_filename.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_tar_empty_filename.tar.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_tar_empty_pax.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_tar_empty_pax.tar.Z.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_tar_empty_with_gnulabel.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_tar_empty_with_gnulabel.tar.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_tar_filename.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_tar_filename_koi8r.tar.Z.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_tbz.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_tgz.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_tlz.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_txz.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_tz.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_ustar_filename.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_ustar_filename_cp866.tar.Z.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_ustar_filename_eucjp.tar.Z.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_ustar_filename_koi8r.tar.Z.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_warc.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_warc.warc.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_xar.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_zip.c (88%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_zip.zip.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_zip_7075_utf8_paths.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_zip_7075_utf8_paths.zip.uu (100%) create mode 100644 dependencies/libarchive-3.5.2/libarchive/test/test_read_format_zip_7z_deflate.zip.uu create mode 100644 dependencies/libarchive-3.5.2/libarchive/test/test_read_format_zip_7z_lzma.zip.uu rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_zip_bz2_hang.zip.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_zip_bzip2.zipx.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_zip_bzip2_multi.zipx.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_zip_comment_stored.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_zip_comment_stored_1.zip.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_zip_comment_stored_2.zip.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_zip_encryption_data.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_zip_encryption_data.zip.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_zip_encryption_header.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_zip_encryption_header.zip.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_zip_encryption_partially.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_zip_encryption_partially.zip.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_zip_extra_padding.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_zip_extra_padding.zip.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_zip_filename.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_zip_filename_cp866.zip.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_zip_filename_cp932.zip.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_zip_filename_koi8r.zip.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_zip_filename_utf8_jp.zip.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_zip_filename_utf8_ru.zip.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_zip_filename_utf8_ru2.zip.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_zip_high_compression.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_zip_high_compression.zip.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_zip_jar.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_zip_jar.jar.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_zip_length_at_end.zip.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_zip_lzma.zipx.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_zip_lzma_alone_leak.zipx.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_zip_lzma_multi.zipx.uu (100%) create mode 100644 dependencies/libarchive-3.5.2/libarchive/test/test_read_format_zip_lzma_stream_end.zipx.uu rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_zip_mac_metadata.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_zip_mac_metadata.zip.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_zip_malformed.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_zip_malformed1.zip.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_zip_msdos.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_zip_msdos.zip.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_zip_nested.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_zip_nested.zip.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_zip_nofiletype.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_zip_nofiletype.zip.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_zip_padded.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_zip_padded1.zip.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_zip_padded2.zip.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_zip_padded3.zip.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_zip_ppmd8.zipx.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_zip_ppmd8_crash_1.zipx.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_zip_ppmd8_crash_2.zipx.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_zip_ppmd8_multi.zipx.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_zip_sfx.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_zip_sfx.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_zip_symlink.zip.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_zip_traditional_encryption_data.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_zip_traditional_encryption_data.zip.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_zip_ux.zip.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_zip_winzip_aes.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_zip_winzip_aes128.zip.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_zip_winzip_aes256.zip.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_zip_winzip_aes256_large.zip.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_zip_winzip_aes256_stored.zip.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_zip_winzip_aes_large.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_zip_with_invalid_traditional_eocd.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_zip_with_invalid_traditional_eocd.zip.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_zip_xz_multi.zipx.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_zip_zip64.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_zip_zip64a.zip.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_format_zip_zip64b.zip.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_large.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_large_splitted_rar_aa.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_large_splitted_rar_ab.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_large_splitted_rar_ac.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_large_splitted_rar_ad.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_large_splitted_rar_ae.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_pax_truncated.c (100%) create mode 100644 dependencies/libarchive-3.5.2/libarchive/test/test_read_pax_xattr_rht_security_selinux.c create mode 100644 dependencies/libarchive-3.5.2/libarchive/test/test_read_pax_xattr_rht_security_selinux.tar.uu rename dependencies/{libarchive-3.4.2/libarchive/test/test_read_pax_schily_xattr.c => libarchive-3.5.2/libarchive/test/test_read_pax_xattr_schily.c} (96%) rename dependencies/{libarchive-3.4.2/libarchive/test/test_read_pax_schily_xattr.tar.uu => libarchive-3.5.2/libarchive/test/test_read_pax_xattr_schily.tar.uu} (99%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_position.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_set_format.c (98%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_splitted_rar_aa.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_splitted_rar_ab.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_splitted_rar_ac.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_splitted_rar_ad.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_too_many_filters.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_too_many_filters.gz.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_truncated.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_read_truncated_filter.c (100%) create mode 100644 dependencies/libarchive-3.5.2/libarchive/test/test_short_writes.c rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_sparse_basic.c (99%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_splitted_rar_seek_support_aa.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_splitted_rar_seek_support_ab.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_splitted_rar_seek_support_ac.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_tar_filenames.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_tar_large.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_ustar_filename_encoding.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_ustar_filenames.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_warn_missing_hardlink_target.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_write_disk.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_write_disk_appledouble.c (99%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_write_disk_appledouble.cpio.gz.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_write_disk_failures.c (100%) create mode 100644 dependencies/libarchive-3.5.2/libarchive/test/test_write_disk_fixup.c rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_write_disk_hardlink.c (83%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_write_disk_hfs_compression.c (99%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_write_disk_hfs_compression.tgz.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_write_disk_lookup.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_write_disk_mac_metadata.c (99%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_write_disk_mac_metadata.tar.gz.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_write_disk_no_hfs_compression.c (99%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_write_disk_no_hfs_compression.tgz.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_write_disk_perms.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_write_disk_secure.c (93%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_write_disk_secure744.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_write_disk_secure745.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_write_disk_secure746.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_write_disk_sparse.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_write_disk_symlink.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_write_disk_times.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_write_filter_b64encode.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_write_filter_bzip2.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_write_filter_compress.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_write_filter_gzip.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_write_filter_gzip_timestamp.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_write_filter_lrzip.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_write_filter_lz4.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_write_filter_lzip.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_write_filter_lzma.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_write_filter_lzop.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_write_filter_program.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_write_filter_uuencode.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_write_filter_xz.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_write_filter_zstd.c (98%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_write_format_7zip.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_write_format_7zip_empty.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_write_format_7zip_large.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_write_format_ar.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_write_format_cpio.c (87%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_write_format_cpio_empty.c (98%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_write_format_cpio_newc.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_write_format_cpio_odc.c (99%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_write_format_gnutar.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_write_format_gnutar_filenames.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_write_format_iso9660.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_write_format_iso9660_boot.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_write_format_iso9660_empty.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_write_format_iso9660_filename.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_write_format_iso9660_zisofs.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_write_format_mtree.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_write_format_mtree_absolute_path.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_write_format_mtree_classic.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_write_format_mtree_classic_indent.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_write_format_mtree_fflags.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_write_format_mtree_no_separator.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_write_format_mtree_quoted_filename.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_write_format_pax.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_write_format_raw.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_write_format_raw_b64.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_write_format_shar_empty.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_write_format_tar.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_write_format_tar_empty.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_write_format_tar_sparse.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_write_format_tar_ustar.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_write_format_tar_v7tar.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_write_format_warc.c (91%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_write_format_warc_empty.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_write_format_xar.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_write_format_xar_empty.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_write_format_zip.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_write_format_zip_compression_store.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_write_format_zip_empty.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_write_format_zip_empty_zip64.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_write_format_zip_file.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_write_format_zip_file_zip64.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_write_format_zip_large.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_write_format_zip_zip64.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_write_open_memory.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_write_read_format_zip.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_xattr_platform.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/test/test_zip_filename_encoding.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive/xxhash.c (99%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive_fe/err.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive_fe/err.h (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive_fe/lafe_platform.h (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive_fe/line_reader.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive_fe/line_reader.h (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive_fe/passphrase.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/libarchive_fe/passphrase.h (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/tar/CMakeLists.txt (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/tar/bsdtar.1 (99%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/tar/bsdtar.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/tar/bsdtar.h (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/tar/bsdtar_platform.h (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/tar/bsdtar_windows.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/tar/bsdtar_windows.h (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/tar/cmdline.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/tar/config_freebsd.h (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/tar/creation_set.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/tar/read.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/tar/subst.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/tar/test/CMakeLists.txt (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/tar/test/list.h (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/tar/test/test.h (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/tar/test/test_0.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/tar/test/test_basic.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/tar/test/test_copy.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/tar/test/test_empty_mtree.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/tar/test/test_extract.tar.Z.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/tar/test/test_extract.tar.bz2.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/tar/test/test_extract.tar.grz.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/tar/test/test_extract.tar.gz.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/tar/test/test_extract.tar.lrz.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/tar/test/test_extract.tar.lz.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/tar/test/test_extract.tar.lz4.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/tar/test/test_extract.tar.lzma.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/tar/test/test_extract.tar.lzo.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/tar/test/test_extract.tar.xz.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/tar/test/test_extract.tar.zst.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/tar/test/test_extract_tar_Z.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/tar/test/test_extract_tar_bz2.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/tar/test/test_extract_tar_grz.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/tar/test/test_extract_tar_gz.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/tar/test/test_extract_tar_lrz.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/tar/test/test_extract_tar_lz.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/tar/test/test_extract_tar_lz4.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/tar/test/test_extract_tar_lzma.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/tar/test/test_extract_tar_lzo.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/tar/test/test_extract_tar_xz.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/tar/test/test_extract_tar_zstd.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/tar/test/test_format_newc.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/tar/test/test_help.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/tar/test/test_leading_slash.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/tar/test/test_leading_slash.tar.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/tar/test/test_missing_file.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/tar/test/test_option_C_mtree.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/tar/test/test_option_C_upper.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/tar/test/test_option_H_upper.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/tar/test/test_option_L_upper.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/tar/test/test_option_O_upper.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/tar/test/test_option_T_upper.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/tar/test/test_option_U_upper.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/tar/test/test_option_X_upper.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/tar/test/test_option_a.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/tar/test/test_option_acls.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/tar/test/test_option_b.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/tar/test/test_option_b64encode.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/tar/test/test_option_exclude.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/tar/test/test_option_exclude_vcs.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/tar/test/test_option_fflags.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/tar/test/test_option_gid_gname.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/tar/test/test_option_grzip.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/tar/test/test_option_j.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/tar/test/test_option_k.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/tar/test/test_option_keep_newer_files.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/tar/test/test_option_keep_newer_files.tar.Z.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/tar/test/test_option_lrzip.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/tar/test/test_option_lz4.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/tar/test/test_option_lzma.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/tar/test/test_option_lzop.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/tar/test/test_option_n.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/tar/test/test_option_newer_than.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/tar/test/test_option_nodump.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/tar/test/test_option_older_than.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/tar/test/test_option_passphrase.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/tar/test/test_option_passphrase.zip.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/tar/test/test_option_q.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/tar/test/test_option_r.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/tar/test/test_option_s.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/tar/test/test_option_s.tar.Z.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/tar/test/test_option_safe_writes.c (98%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/tar/test/test_option_uid_uname.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/tar/test/test_option_uuencode.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/tar/test/test_option_xattrs.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/tar/test/test_option_xz.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/tar/test/test_option_z.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/tar/test/test_option_zstd.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/tar/test/test_patterns.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/tar/test/test_patterns_2.tar.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/tar/test/test_patterns_3.tar.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/tar/test/test_patterns_4.tar.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/tar/test/test_print_longpath.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/tar/test/test_print_longpath.tar.Z.uu (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/tar/test/test_stdio.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/tar/test/test_strip_components.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/tar/test/test_symlink_dir.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/tar/test/test_version.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/tar/test/test_windows.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/tar/util.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/tar/write.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/test_utils/test_common.h (98%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/test_utils/test_main.c (99%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/test_utils/test_utils.c (100%) rename dependencies/{libarchive-3.4.2 => libarchive-3.5.2}/test_utils/test_utils.h (100%) create mode 100644 dependencies/zstd-1.5.0/.buckconfig create mode 100644 dependencies/zstd-1.5.0/.buckversion create mode 100644 dependencies/zstd-1.5.0/.circleci/config.yml create mode 100644 dependencies/zstd-1.5.0/.circleci/images/primary/Dockerfile create mode 100644 dependencies/zstd-1.5.0/.cirrus.yml create mode 100644 dependencies/zstd-1.5.0/.gitattributes create mode 100644 dependencies/zstd-1.5.0/.github/ISSUE_TEMPLATE/bug_report.md create mode 100644 dependencies/zstd-1.5.0/.github/ISSUE_TEMPLATE/feature_request.md create mode 100644 dependencies/zstd-1.5.0/.github/workflows/generic-dev.yml create mode 100644 dependencies/zstd-1.5.0/.github/workflows/generic-release.yml create mode 100644 dependencies/zstd-1.5.0/.github/workflows/linux-kernel.yml create mode 100644 dependencies/zstd-1.5.0/.github/workflows/main.yml create mode 100644 dependencies/zstd-1.5.0/.github/workflows/publish-release-artifacts.yml create mode 100644 dependencies/zstd-1.5.0/.gitignore create mode 100644 dependencies/zstd-1.5.0/.travis.yml create mode 100644 dependencies/zstd-1.5.0/CHANGELOG create mode 100644 dependencies/zstd-1.5.0/CODE_OF_CONDUCT.md create mode 100644 dependencies/zstd-1.5.0/CONTRIBUTING.md create mode 100644 dependencies/zstd-1.5.0/COPYING create mode 100644 dependencies/zstd-1.5.0/LICENSE create mode 100644 dependencies/zstd-1.5.0/Makefile create mode 100644 dependencies/zstd-1.5.0/README.md create mode 100644 dependencies/zstd-1.5.0/TESTING.md create mode 100644 dependencies/zstd-1.5.0/appveyor.yml create mode 100644 dependencies/zstd-1.5.0/build/.gitignore create mode 100644 dependencies/zstd-1.5.0/build/LICENSE create mode 100644 dependencies/zstd-1.5.0/build/README.md create mode 100644 dependencies/zstd-1.5.0/build/VS2008/fullbench/fullbench.vcproj create mode 100644 dependencies/zstd-1.5.0/build/VS2008/fuzzer/fuzzer.vcproj create mode 100644 dependencies/zstd-1.5.0/build/VS2008/zstd.sln create mode 100644 dependencies/zstd-1.5.0/build/VS2008/zstd/zstd.vcproj create mode 100644 dependencies/zstd-1.5.0/build/VS2008/zstdlib/zstdlib.vcproj create mode 100644 dependencies/zstd-1.5.0/build/VS2010/CompileAsCpp.props create mode 100644 dependencies/zstd-1.5.0/build/VS2010/datagen/datagen.vcxproj create mode 100644 dependencies/zstd-1.5.0/build/VS2010/fullbench-dll/fullbench-dll.vcxproj create mode 100644 dependencies/zstd-1.5.0/build/VS2010/fullbench/fullbench.vcxproj create mode 100644 dependencies/zstd-1.5.0/build/VS2010/fuzzer/fuzzer.vcxproj create mode 100644 dependencies/zstd-1.5.0/build/VS2010/libzstd-dll/libzstd-dll.rc create mode 100644 dependencies/zstd-1.5.0/build/VS2010/libzstd-dll/libzstd-dll.vcxproj create mode 100644 dependencies/zstd-1.5.0/build/VS2010/libzstd/libzstd.vcxproj create mode 100644 dependencies/zstd-1.5.0/build/VS2010/zstd.sln create mode 100644 dependencies/zstd-1.5.0/build/VS2010/zstd/zstd.rc create mode 100644 dependencies/zstd-1.5.0/build/VS2010/zstd/zstd.vcxproj create mode 100644 dependencies/zstd-1.5.0/build/VS_scripts/README.md create mode 100644 dependencies/zstd-1.5.0/build/VS_scripts/build.VS2010.cmd create mode 100644 dependencies/zstd-1.5.0/build/VS_scripts/build.VS2012.cmd create mode 100644 dependencies/zstd-1.5.0/build/VS_scripts/build.VS2013.cmd create mode 100644 dependencies/zstd-1.5.0/build/VS_scripts/build.VS2015.cmd create mode 100644 dependencies/zstd-1.5.0/build/VS_scripts/build.VS2017.cmd create mode 100644 dependencies/zstd-1.5.0/build/VS_scripts/build.VS2017Community.cmd create mode 100644 dependencies/zstd-1.5.0/build/VS_scripts/build.VS2017Enterprise.cmd create mode 100644 dependencies/zstd-1.5.0/build/VS_scripts/build.VS2017Professional.cmd create mode 100644 dependencies/zstd-1.5.0/build/VS_scripts/build.generic.cmd create mode 100644 dependencies/zstd-1.5.0/build/cmake/.gitignore create mode 100644 dependencies/zstd-1.5.0/build/cmake/CMakeLists.txt create mode 100644 dependencies/zstd-1.5.0/build/cmake/CMakeModules/AddZstdCompilationFlags.cmake create mode 100644 dependencies/zstd-1.5.0/build/cmake/CMakeModules/FindLibLZ4.cmake create mode 100644 dependencies/zstd-1.5.0/build/cmake/CMakeModules/GetZstdLibraryVersion.cmake create mode 100644 dependencies/zstd-1.5.0/build/cmake/README.md create mode 100644 dependencies/zstd-1.5.0/build/cmake/contrib/CMakeLists.txt create mode 100644 dependencies/zstd-1.5.0/build/cmake/contrib/gen_html/CMakeLists.txt create mode 100644 dependencies/zstd-1.5.0/build/cmake/contrib/pzstd/CMakeLists.txt create mode 100644 dependencies/zstd-1.5.0/build/cmake/lib/.gitignore create mode 100644 dependencies/zstd-1.5.0/build/cmake/lib/CMakeLists.txt create mode 100644 dependencies/zstd-1.5.0/build/cmake/lib/cmake_uninstall.cmake.in create mode 100644 dependencies/zstd-1.5.0/build/cmake/programs/.gitignore create mode 100644 dependencies/zstd-1.5.0/build/cmake/programs/CMakeLists.txt create mode 100644 dependencies/zstd-1.5.0/build/cmake/tests/.gitignore create mode 100644 dependencies/zstd-1.5.0/build/cmake/tests/CMakeLists.txt create mode 100644 dependencies/zstd-1.5.0/build/cmake/zstdConfig.cmake create mode 100644 dependencies/zstd-1.5.0/build/meson/GetZstdLibraryVersion.py create mode 100644 dependencies/zstd-1.5.0/build/meson/InstallSymlink.py create mode 100644 dependencies/zstd-1.5.0/build/meson/README.md create mode 100644 dependencies/zstd-1.5.0/build/meson/contrib/gen_html/meson.build create mode 100644 dependencies/zstd-1.5.0/build/meson/contrib/meson.build create mode 100644 dependencies/zstd-1.5.0/build/meson/contrib/pzstd/meson.build create mode 100644 dependencies/zstd-1.5.0/build/meson/lib/meson.build create mode 100644 dependencies/zstd-1.5.0/build/meson/meson.build create mode 100644 dependencies/zstd-1.5.0/build/meson/meson_options.txt create mode 100644 dependencies/zstd-1.5.0/build/meson/programs/meson.build create mode 100644 dependencies/zstd-1.5.0/build/meson/tests/meson.build create mode 100644 dependencies/zstd-1.5.0/build/meson/tests/valgrindTest.py create mode 100644 dependencies/zstd-1.5.0/build/single_file_libs/.gitignore create mode 100644 dependencies/zstd-1.5.0/build/single_file_libs/README.md create mode 100755 dependencies/zstd-1.5.0/build/single_file_libs/build_decoder_test.sh create mode 100755 dependencies/zstd-1.5.0/build/single_file_libs/build_library_test.sh create mode 100755 dependencies/zstd-1.5.0/build/single_file_libs/combine.sh create mode 100755 dependencies/zstd-1.5.0/build/single_file_libs/create_single_file_decoder.sh create mode 100755 dependencies/zstd-1.5.0/build/single_file_libs/create_single_file_library.sh create mode 100644 dependencies/zstd-1.5.0/build/single_file_libs/examples/README.md create mode 100644 dependencies/zstd-1.5.0/build/single_file_libs/examples/emscripten.c create mode 100644 dependencies/zstd-1.5.0/build/single_file_libs/examples/roundtrip.c create mode 100644 dependencies/zstd-1.5.0/build/single_file_libs/examples/shell.html create mode 100644 dependencies/zstd-1.5.0/build/single_file_libs/examples/simple.c create mode 100644 dependencies/zstd-1.5.0/build/single_file_libs/examples/testcard-dxt1.inl create mode 100644 dependencies/zstd-1.5.0/build/single_file_libs/examples/testcard-zstd.inl create mode 100755 dependencies/zstd-1.5.0/build/single_file_libs/examples/testcard.png create mode 100644 dependencies/zstd-1.5.0/build/single_file_libs/zstd-in.c create mode 100644 dependencies/zstd-1.5.0/build/single_file_libs/zstddeclib-in.c create mode 100644 dependencies/zstd-1.5.0/contrib/VS2005/README.md create mode 100644 dependencies/zstd-1.5.0/contrib/VS2005/fullbench/fullbench.vcproj create mode 100644 dependencies/zstd-1.5.0/contrib/VS2005/fuzzer/fuzzer.vcproj create mode 100644 dependencies/zstd-1.5.0/contrib/VS2005/zstd.sln create mode 100644 dependencies/zstd-1.5.0/contrib/VS2005/zstd/zstd.vcproj create mode 100644 dependencies/zstd-1.5.0/contrib/VS2005/zstdlib/zstdlib.vcproj create mode 100755 dependencies/zstd-1.5.0/contrib/cleanTabs create mode 100644 dependencies/zstd-1.5.0/contrib/diagnose_corruption/.gitignore create mode 100644 dependencies/zstd-1.5.0/contrib/diagnose_corruption/Makefile create mode 100644 dependencies/zstd-1.5.0/contrib/diagnose_corruption/check_flipped_bits.c create mode 100644 dependencies/zstd-1.5.0/contrib/docker/Dockerfile create mode 100644 dependencies/zstd-1.5.0/contrib/docker/README.md create mode 100755 dependencies/zstd-1.5.0/contrib/freestanding_lib/freestanding.py create mode 100644 dependencies/zstd-1.5.0/contrib/gen_html/.gitignore create mode 100644 dependencies/zstd-1.5.0/contrib/gen_html/Makefile create mode 100644 dependencies/zstd-1.5.0/contrib/gen_html/README.md create mode 100755 dependencies/zstd-1.5.0/contrib/gen_html/gen-zstd-manual.sh create mode 100644 dependencies/zstd-1.5.0/contrib/gen_html/gen_html.cpp create mode 100644 dependencies/zstd-1.5.0/contrib/largeNbDicts/.gitignore create mode 100644 dependencies/zstd-1.5.0/contrib/largeNbDicts/Makefile create mode 100644 dependencies/zstd-1.5.0/contrib/largeNbDicts/README.md create mode 100644 dependencies/zstd-1.5.0/contrib/largeNbDicts/largeNbDicts.c create mode 100644 dependencies/zstd-1.5.0/contrib/linux-kernel/.gitignore create mode 100644 dependencies/zstd-1.5.0/contrib/linux-kernel/Makefile create mode 100644 dependencies/zstd-1.5.0/contrib/linux-kernel/README.md create mode 100755 dependencies/zstd-1.5.0/contrib/linux-kernel/btrfs-benchmark.sh create mode 100755 dependencies/zstd-1.5.0/contrib/linux-kernel/btrfs-extract-benchmark.sh create mode 100644 dependencies/zstd-1.5.0/contrib/linux-kernel/decompress_sources.h create mode 100644 dependencies/zstd-1.5.0/contrib/linux-kernel/linux.mk create mode 100644 dependencies/zstd-1.5.0/contrib/linux-kernel/linux_zstd.h create mode 100644 dependencies/zstd-1.5.0/contrib/linux-kernel/mem.h create mode 100755 dependencies/zstd-1.5.0/contrib/linux-kernel/squashfs-benchmark.sh create mode 100644 dependencies/zstd-1.5.0/contrib/linux-kernel/test/Makefile create mode 100644 dependencies/zstd-1.5.0/contrib/linux-kernel/test/include/asm/unaligned.h create mode 100644 dependencies/zstd-1.5.0/contrib/linux-kernel/test/include/linux/compiler.h create mode 100644 dependencies/zstd-1.5.0/contrib/linux-kernel/test/include/linux/errno.h create mode 100644 dependencies/zstd-1.5.0/contrib/linux-kernel/test/include/linux/kernel.h create mode 100644 dependencies/zstd-1.5.0/contrib/linux-kernel/test/include/linux/limits.h create mode 100644 dependencies/zstd-1.5.0/contrib/linux-kernel/test/include/linux/math64.h create mode 100644 dependencies/zstd-1.5.0/contrib/linux-kernel/test/include/linux/module.h create mode 100644 dependencies/zstd-1.5.0/contrib/linux-kernel/test/include/linux/printk.h create mode 100644 dependencies/zstd-1.5.0/contrib/linux-kernel/test/include/linux/stddef.h create mode 100644 dependencies/zstd-1.5.0/contrib/linux-kernel/test/include/linux/swab.h create mode 100644 dependencies/zstd-1.5.0/contrib/linux-kernel/test/include/linux/types.h create mode 100644 dependencies/zstd-1.5.0/contrib/linux-kernel/test/include/linux/xxhash.h create mode 100755 dependencies/zstd-1.5.0/contrib/linux-kernel/test/macro-test.sh create mode 100644 dependencies/zstd-1.5.0/contrib/linux-kernel/test/static_test.c create mode 100644 dependencies/zstd-1.5.0/contrib/linux-kernel/test/test.c create mode 100644 dependencies/zstd-1.5.0/contrib/linux-kernel/zstd_compress_module.c create mode 100644 dependencies/zstd-1.5.0/contrib/linux-kernel/zstd_decompress_module.c create mode 100644 dependencies/zstd-1.5.0/contrib/linux-kernel/zstd_deps.h create mode 100644 dependencies/zstd-1.5.0/contrib/match_finders/README.md create mode 100644 dependencies/zstd-1.5.0/contrib/match_finders/zstd_edist.c create mode 100644 dependencies/zstd-1.5.0/contrib/match_finders/zstd_edist.h create mode 100644 dependencies/zstd-1.5.0/contrib/premake/premake4.lua create mode 100644 dependencies/zstd-1.5.0/contrib/premake/zstd.lua create mode 100644 dependencies/zstd-1.5.0/contrib/pzstd/.gitignore create mode 100644 dependencies/zstd-1.5.0/contrib/pzstd/BUCK create mode 100644 dependencies/zstd-1.5.0/contrib/pzstd/ErrorHolder.h create mode 100644 dependencies/zstd-1.5.0/contrib/pzstd/Logging.h create mode 100644 dependencies/zstd-1.5.0/contrib/pzstd/Makefile create mode 100644 dependencies/zstd-1.5.0/contrib/pzstd/Options.cpp create mode 100644 dependencies/zstd-1.5.0/contrib/pzstd/Options.h create mode 100644 dependencies/zstd-1.5.0/contrib/pzstd/Pzstd.cpp create mode 100644 dependencies/zstd-1.5.0/contrib/pzstd/Pzstd.h create mode 100644 dependencies/zstd-1.5.0/contrib/pzstd/README.md create mode 100644 dependencies/zstd-1.5.0/contrib/pzstd/SkippableFrame.cpp create mode 100644 dependencies/zstd-1.5.0/contrib/pzstd/SkippableFrame.h create mode 100644 dependencies/zstd-1.5.0/contrib/pzstd/images/Cspeed.png create mode 100644 dependencies/zstd-1.5.0/contrib/pzstd/images/Dspeed.png create mode 100644 dependencies/zstd-1.5.0/contrib/pzstd/main.cpp create mode 100644 dependencies/zstd-1.5.0/contrib/pzstd/test/BUCK create mode 100644 dependencies/zstd-1.5.0/contrib/pzstd/test/OptionsTest.cpp create mode 100644 dependencies/zstd-1.5.0/contrib/pzstd/test/PzstdTest.cpp create mode 100644 dependencies/zstd-1.5.0/contrib/pzstd/test/RoundTrip.h create mode 100644 dependencies/zstd-1.5.0/contrib/pzstd/test/RoundTripTest.cpp create mode 100644 dependencies/zstd-1.5.0/contrib/pzstd/utils/BUCK create mode 100644 dependencies/zstd-1.5.0/contrib/pzstd/utils/Buffer.h create mode 100644 dependencies/zstd-1.5.0/contrib/pzstd/utils/FileSystem.h create mode 100644 dependencies/zstd-1.5.0/contrib/pzstd/utils/Likely.h create mode 100644 dependencies/zstd-1.5.0/contrib/pzstd/utils/Range.h create mode 100644 dependencies/zstd-1.5.0/contrib/pzstd/utils/ResourcePool.h create mode 100644 dependencies/zstd-1.5.0/contrib/pzstd/utils/ScopeGuard.h create mode 100644 dependencies/zstd-1.5.0/contrib/pzstd/utils/ThreadPool.h create mode 100644 dependencies/zstd-1.5.0/contrib/pzstd/utils/WorkQueue.h create mode 100644 dependencies/zstd-1.5.0/contrib/pzstd/utils/test/BUCK create mode 100644 dependencies/zstd-1.5.0/contrib/pzstd/utils/test/BufferTest.cpp create mode 100644 dependencies/zstd-1.5.0/contrib/pzstd/utils/test/RangeTest.cpp create mode 100644 dependencies/zstd-1.5.0/contrib/pzstd/utils/test/ResourcePoolTest.cpp create mode 100644 dependencies/zstd-1.5.0/contrib/pzstd/utils/test/ScopeGuardTest.cpp create mode 100644 dependencies/zstd-1.5.0/contrib/pzstd/utils/test/ThreadPoolTest.cpp create mode 100644 dependencies/zstd-1.5.0/contrib/pzstd/utils/test/WorkQueueTest.cpp create mode 100644 dependencies/zstd-1.5.0/contrib/recovery/Makefile create mode 100644 dependencies/zstd-1.5.0/contrib/recovery/recover_directory.c create mode 100644 dependencies/zstd-1.5.0/contrib/seekable_format/examples/.gitignore create mode 100644 dependencies/zstd-1.5.0/contrib/seekable_format/examples/Makefile create mode 100644 dependencies/zstd-1.5.0/contrib/seekable_format/examples/parallel_compression.c create mode 100644 dependencies/zstd-1.5.0/contrib/seekable_format/examples/parallel_processing.c create mode 100644 dependencies/zstd-1.5.0/contrib/seekable_format/examples/seekable_compression.c create mode 100644 dependencies/zstd-1.5.0/contrib/seekable_format/examples/seekable_decompression.c create mode 100644 dependencies/zstd-1.5.0/contrib/seekable_format/examples/seekable_decompression_mem.c create mode 100644 dependencies/zstd-1.5.0/contrib/seekable_format/tests/.gitignore create mode 100644 dependencies/zstd-1.5.0/contrib/seekable_format/tests/Makefile create mode 100644 dependencies/zstd-1.5.0/contrib/seekable_format/tests/seekable_tests.c create mode 100644 dependencies/zstd-1.5.0/contrib/seekable_format/zstd_seekable.h create mode 100644 dependencies/zstd-1.5.0/contrib/seekable_format/zstd_seekable_compression_format.md create mode 100644 dependencies/zstd-1.5.0/contrib/seekable_format/zstdseek_compress.c create mode 100644 dependencies/zstd-1.5.0/contrib/seekable_format/zstdseek_decompress.c create mode 100644 dependencies/zstd-1.5.0/contrib/snap/snapcraft.yaml create mode 100644 dependencies/zstd-1.5.0/doc/README.md create mode 100644 dependencies/zstd-1.5.0/doc/educational_decoder/.gitignore create mode 100644 dependencies/zstd-1.5.0/doc/educational_decoder/Makefile create mode 100644 dependencies/zstd-1.5.0/doc/educational_decoder/README.md create mode 100644 dependencies/zstd-1.5.0/doc/educational_decoder/harness.c create mode 100644 dependencies/zstd-1.5.0/doc/educational_decoder/zstd_decompress.c create mode 100644 dependencies/zstd-1.5.0/doc/educational_decoder/zstd_decompress.h create mode 100644 dependencies/zstd-1.5.0/doc/images/CSpeed2.png create mode 100644 dependencies/zstd-1.5.0/doc/images/DCspeed5.png create mode 100644 dependencies/zstd-1.5.0/doc/images/DSpeed3.png create mode 100644 dependencies/zstd-1.5.0/doc/images/cdict_v136.png create mode 100644 dependencies/zstd-1.5.0/doc/images/dict-cr.png create mode 100644 dependencies/zstd-1.5.0/doc/images/dict-cs.png create mode 100644 dependencies/zstd-1.5.0/doc/images/dict-ds.png create mode 100644 dependencies/zstd-1.5.0/doc/images/zstd_cdict_v1_3_5.png create mode 100644 dependencies/zstd-1.5.0/doc/images/zstd_logo86.png create mode 100644 dependencies/zstd-1.5.0/doc/zstd_compression_format.md create mode 100644 dependencies/zstd-1.5.0/doc/zstd_manual.html create mode 100644 dependencies/zstd-1.5.0/examples/.gitignore create mode 100644 dependencies/zstd-1.5.0/examples/Makefile create mode 100644 dependencies/zstd-1.5.0/examples/README.md create mode 100644 dependencies/zstd-1.5.0/examples/common.h create mode 100644 dependencies/zstd-1.5.0/examples/dictionary_compression.c create mode 100644 dependencies/zstd-1.5.0/examples/dictionary_decompression.c create mode 100644 dependencies/zstd-1.5.0/examples/multiple_simple_compression.c create mode 100644 dependencies/zstd-1.5.0/examples/multiple_streaming_compression.c create mode 100644 dependencies/zstd-1.5.0/examples/simple_compression.c create mode 100644 dependencies/zstd-1.5.0/examples/simple_decompression.c create mode 100644 dependencies/zstd-1.5.0/examples/streaming_compression.c create mode 100644 dependencies/zstd-1.5.0/examples/streaming_compression_thread_pool.c create mode 100644 dependencies/zstd-1.5.0/examples/streaming_decompression.c create mode 100644 dependencies/zstd-1.5.0/examples/streaming_memory_usage.c create mode 100644 dependencies/zstd-1.5.0/lib/.gitignore create mode 100644 dependencies/zstd-1.5.0/lib/BUCK create mode 100644 dependencies/zstd-1.5.0/lib/Makefile create mode 100644 dependencies/zstd-1.5.0/lib/README.md create mode 100644 dependencies/zstd-1.5.0/lib/common/bitstream.h create mode 100644 dependencies/zstd-1.5.0/lib/common/compiler.h create mode 100644 dependencies/zstd-1.5.0/lib/common/cpu.h create mode 100644 dependencies/zstd-1.5.0/lib/common/debug.c create mode 100644 dependencies/zstd-1.5.0/lib/common/debug.h create mode 100644 dependencies/zstd-1.5.0/lib/common/entropy_common.c create mode 100644 dependencies/zstd-1.5.0/lib/common/error_private.c create mode 100644 dependencies/zstd-1.5.0/lib/common/error_private.h create mode 100644 dependencies/zstd-1.5.0/lib/common/fse.h create mode 100644 dependencies/zstd-1.5.0/lib/common/fse_decompress.c create mode 100644 dependencies/zstd-1.5.0/lib/common/huf.h create mode 100644 dependencies/zstd-1.5.0/lib/common/mem.h create mode 100644 dependencies/zstd-1.5.0/lib/common/pool.c create mode 100644 dependencies/zstd-1.5.0/lib/common/pool.h create mode 100644 dependencies/zstd-1.5.0/lib/common/threading.c create mode 100644 dependencies/zstd-1.5.0/lib/common/threading.h create mode 100644 dependencies/zstd-1.5.0/lib/common/xxhash.c create mode 100644 dependencies/zstd-1.5.0/lib/common/xxhash.h create mode 100644 dependencies/zstd-1.5.0/lib/common/zstd_common.c create mode 100644 dependencies/zstd-1.5.0/lib/common/zstd_deps.h create mode 100644 dependencies/zstd-1.5.0/lib/common/zstd_internal.h create mode 100644 dependencies/zstd-1.5.0/lib/common/zstd_trace.h create mode 100644 dependencies/zstd-1.5.0/lib/compress/fse_compress.c create mode 100644 dependencies/zstd-1.5.0/lib/compress/hist.c create mode 100644 dependencies/zstd-1.5.0/lib/compress/hist.h create mode 100644 dependencies/zstd-1.5.0/lib/compress/huf_compress.c create mode 100644 dependencies/zstd-1.5.0/lib/compress/zstd_compress.c create mode 100644 dependencies/zstd-1.5.0/lib/compress/zstd_compress_internal.h create mode 100644 dependencies/zstd-1.5.0/lib/compress/zstd_compress_literals.c create mode 100644 dependencies/zstd-1.5.0/lib/compress/zstd_compress_literals.h create mode 100644 dependencies/zstd-1.5.0/lib/compress/zstd_compress_sequences.c create mode 100644 dependencies/zstd-1.5.0/lib/compress/zstd_compress_sequences.h create mode 100644 dependencies/zstd-1.5.0/lib/compress/zstd_compress_superblock.c create mode 100644 dependencies/zstd-1.5.0/lib/compress/zstd_compress_superblock.h create mode 100644 dependencies/zstd-1.5.0/lib/compress/zstd_cwksp.h create mode 100644 dependencies/zstd-1.5.0/lib/compress/zstd_double_fast.c create mode 100644 dependencies/zstd-1.5.0/lib/compress/zstd_double_fast.h create mode 100644 dependencies/zstd-1.5.0/lib/compress/zstd_fast.c create mode 100644 dependencies/zstd-1.5.0/lib/compress/zstd_fast.h create mode 100644 dependencies/zstd-1.5.0/lib/compress/zstd_lazy.c create mode 100644 dependencies/zstd-1.5.0/lib/compress/zstd_lazy.h create mode 100644 dependencies/zstd-1.5.0/lib/compress/zstd_ldm.c create mode 100644 dependencies/zstd-1.5.0/lib/compress/zstd_ldm.h create mode 100644 dependencies/zstd-1.5.0/lib/compress/zstd_ldm_geartab.h create mode 100644 dependencies/zstd-1.5.0/lib/compress/zstd_opt.c create mode 100644 dependencies/zstd-1.5.0/lib/compress/zstd_opt.h create mode 100644 dependencies/zstd-1.5.0/lib/compress/zstdmt_compress.c create mode 100644 dependencies/zstd-1.5.0/lib/compress/zstdmt_compress.h create mode 100644 dependencies/zstd-1.5.0/lib/decompress/huf_decompress.c create mode 100644 dependencies/zstd-1.5.0/lib/decompress/zstd_ddict.c create mode 100644 dependencies/zstd-1.5.0/lib/decompress/zstd_ddict.h create mode 100644 dependencies/zstd-1.5.0/lib/decompress/zstd_decompress.c create mode 100644 dependencies/zstd-1.5.0/lib/decompress/zstd_decompress_block.c create mode 100644 dependencies/zstd-1.5.0/lib/decompress/zstd_decompress_block.h create mode 100644 dependencies/zstd-1.5.0/lib/decompress/zstd_decompress_internal.h create mode 100644 dependencies/zstd-1.5.0/lib/deprecated/zbuff.h create mode 100644 dependencies/zstd-1.5.0/lib/deprecated/zbuff_common.c create mode 100644 dependencies/zstd-1.5.0/lib/deprecated/zbuff_compress.c create mode 100644 dependencies/zstd-1.5.0/lib/deprecated/zbuff_decompress.c create mode 100644 dependencies/zstd-1.5.0/lib/dictBuilder/cover.c create mode 100644 dependencies/zstd-1.5.0/lib/dictBuilder/cover.h create mode 100644 dependencies/zstd-1.5.0/lib/dictBuilder/divsufsort.c create mode 100644 dependencies/zstd-1.5.0/lib/dictBuilder/divsufsort.h create mode 100644 dependencies/zstd-1.5.0/lib/dictBuilder/fastcover.c create mode 100644 dependencies/zstd-1.5.0/lib/dictBuilder/zdict.c create mode 100644 dependencies/zstd-1.5.0/lib/dll/example/Makefile create mode 100644 dependencies/zstd-1.5.0/lib/dll/example/README.md create mode 100644 dependencies/zstd-1.5.0/lib/dll/example/build_package.bat create mode 100644 dependencies/zstd-1.5.0/lib/dll/example/fullbench-dll.sln create mode 100644 dependencies/zstd-1.5.0/lib/dll/example/fullbench-dll.vcxproj create mode 100644 dependencies/zstd-1.5.0/lib/legacy/zstd_legacy.h create mode 100644 dependencies/zstd-1.5.0/lib/legacy/zstd_v01.c create mode 100644 dependencies/zstd-1.5.0/lib/legacy/zstd_v01.h create mode 100644 dependencies/zstd-1.5.0/lib/legacy/zstd_v02.c create mode 100644 dependencies/zstd-1.5.0/lib/legacy/zstd_v02.h create mode 100644 dependencies/zstd-1.5.0/lib/legacy/zstd_v03.c create mode 100644 dependencies/zstd-1.5.0/lib/legacy/zstd_v03.h create mode 100644 dependencies/zstd-1.5.0/lib/legacy/zstd_v04.c create mode 100644 dependencies/zstd-1.5.0/lib/legacy/zstd_v04.h create mode 100644 dependencies/zstd-1.5.0/lib/legacy/zstd_v05.c create mode 100644 dependencies/zstd-1.5.0/lib/legacy/zstd_v05.h create mode 100644 dependencies/zstd-1.5.0/lib/legacy/zstd_v06.c create mode 100644 dependencies/zstd-1.5.0/lib/legacy/zstd_v06.h create mode 100644 dependencies/zstd-1.5.0/lib/legacy/zstd_v07.c create mode 100644 dependencies/zstd-1.5.0/lib/legacy/zstd_v07.h create mode 100644 dependencies/zstd-1.5.0/lib/libzstd.pc.in create mode 100644 dependencies/zstd-1.5.0/lib/zdict.h create mode 100644 dependencies/zstd-1.5.0/lib/zstd.h create mode 100644 dependencies/zstd-1.5.0/lib/zstd_errors.h create mode 100644 dependencies/zstd-1.5.0/programs/.gitignore create mode 100644 dependencies/zstd-1.5.0/programs/BUCK create mode 100644 dependencies/zstd-1.5.0/programs/Makefile create mode 100644 dependencies/zstd-1.5.0/programs/README.md create mode 100644 dependencies/zstd-1.5.0/programs/benchfn.c create mode 100644 dependencies/zstd-1.5.0/programs/benchfn.h create mode 100644 dependencies/zstd-1.5.0/programs/benchzstd.c create mode 100644 dependencies/zstd-1.5.0/programs/benchzstd.h create mode 100644 dependencies/zstd-1.5.0/programs/datagen.c create mode 100644 dependencies/zstd-1.5.0/programs/datagen.h create mode 100644 dependencies/zstd-1.5.0/programs/dibio.c create mode 100644 dependencies/zstd-1.5.0/programs/dibio.h create mode 100644 dependencies/zstd-1.5.0/programs/fileio.c create mode 100644 dependencies/zstd-1.5.0/programs/fileio.h create mode 100644 dependencies/zstd-1.5.0/programs/platform.h create mode 100644 dependencies/zstd-1.5.0/programs/timefn.c create mode 100644 dependencies/zstd-1.5.0/programs/timefn.h create mode 100644 dependencies/zstd-1.5.0/programs/util.c create mode 100644 dependencies/zstd-1.5.0/programs/util.h create mode 100644 dependencies/zstd-1.5.0/programs/windres/verrsrc.h create mode 100644 dependencies/zstd-1.5.0/programs/windres/zstd.rc create mode 100644 dependencies/zstd-1.5.0/programs/windres/zstd32.res create mode 100644 dependencies/zstd-1.5.0/programs/windres/zstd64.res create mode 100644 dependencies/zstd-1.5.0/programs/zstd.1 create mode 100644 dependencies/zstd-1.5.0/programs/zstd.1.md create mode 100644 dependencies/zstd-1.5.0/programs/zstdcli.c create mode 100644 dependencies/zstd-1.5.0/programs/zstdcli_trace.c create mode 100644 dependencies/zstd-1.5.0/programs/zstdcli_trace.h create mode 100755 dependencies/zstd-1.5.0/programs/zstdgrep create mode 100644 dependencies/zstd-1.5.0/programs/zstdgrep.1 create mode 100644 dependencies/zstd-1.5.0/programs/zstdgrep.1.md create mode 100755 dependencies/zstd-1.5.0/programs/zstdless create mode 100644 dependencies/zstd-1.5.0/programs/zstdless.1 create mode 100644 dependencies/zstd-1.5.0/programs/zstdless.1.md create mode 100644 dependencies/zstd-1.5.0/tests/.gitignore create mode 100755 dependencies/zstd-1.5.0/tests/DEPRECATED-test-zstd-speed.py create mode 100644 dependencies/zstd-1.5.0/tests/Makefile create mode 100644 dependencies/zstd-1.5.0/tests/README.md create mode 100644 dependencies/zstd-1.5.0/tests/automated_benchmarking.py create mode 100644 dependencies/zstd-1.5.0/tests/bigdict.c create mode 100644 dependencies/zstd-1.5.0/tests/checkTag.c create mode 100644 dependencies/zstd-1.5.0/tests/datagencli.c create mode 100644 dependencies/zstd-1.5.0/tests/decodecorpus.c create mode 100644 dependencies/zstd-1.5.0/tests/dict-files/zero-weight-dict create mode 100644 dependencies/zstd-1.5.0/tests/fullbench.c create mode 100644 dependencies/zstd-1.5.0/tests/fuzz/.gitignore create mode 100644 dependencies/zstd-1.5.0/tests/fuzz/Makefile create mode 100644 dependencies/zstd-1.5.0/tests/fuzz/README.md create mode 100644 dependencies/zstd-1.5.0/tests/fuzz/block_decompress.c create mode 100644 dependencies/zstd-1.5.0/tests/fuzz/block_round_trip.c create mode 100644 dependencies/zstd-1.5.0/tests/fuzz/decompress_dstSize_tooSmall.c create mode 100644 dependencies/zstd-1.5.0/tests/fuzz/dictionary_decompress.c create mode 100644 dependencies/zstd-1.5.0/tests/fuzz/dictionary_loader.c create mode 100644 dependencies/zstd-1.5.0/tests/fuzz/dictionary_round_trip.c create mode 100644 dependencies/zstd-1.5.0/tests/fuzz/dictionary_stream_round_trip.c create mode 100644 dependencies/zstd-1.5.0/tests/fuzz/fse_read_ncount.c create mode 100644 dependencies/zstd-1.5.0/tests/fuzz/fuzz.h create mode 100755 dependencies/zstd-1.5.0/tests/fuzz/fuzz.py create mode 100644 dependencies/zstd-1.5.0/tests/fuzz/fuzz_data_producer.c create mode 100644 dependencies/zstd-1.5.0/tests/fuzz/fuzz_data_producer.h create mode 100644 dependencies/zstd-1.5.0/tests/fuzz/fuzz_helpers.c create mode 100644 dependencies/zstd-1.5.0/tests/fuzz/fuzz_helpers.h create mode 100644 dependencies/zstd-1.5.0/tests/fuzz/raw_dictionary_round_trip.c create mode 100644 dependencies/zstd-1.5.0/tests/fuzz/regression_driver.c create mode 100644 dependencies/zstd-1.5.0/tests/fuzz/seekable_roundtrip.c create mode 100644 dependencies/zstd-1.5.0/tests/fuzz/sequence_compression_api.c create mode 100644 dependencies/zstd-1.5.0/tests/fuzz/simple_compress.c create mode 100644 dependencies/zstd-1.5.0/tests/fuzz/simple_decompress.c create mode 100644 dependencies/zstd-1.5.0/tests/fuzz/simple_round_trip.c create mode 100644 dependencies/zstd-1.5.0/tests/fuzz/stream_decompress.c create mode 100644 dependencies/zstd-1.5.0/tests/fuzz/stream_round_trip.c create mode 100644 dependencies/zstd-1.5.0/tests/fuzz/zstd_frame_info.c create mode 100644 dependencies/zstd-1.5.0/tests/fuzz/zstd_helpers.c create mode 100644 dependencies/zstd-1.5.0/tests/fuzz/zstd_helpers.h create mode 100644 dependencies/zstd-1.5.0/tests/fuzzer.c create mode 100644 dependencies/zstd-1.5.0/tests/golden-compression/http create mode 100644 dependencies/zstd-1.5.0/tests/golden-compression/huffman-compressed-larger create mode 100644 dependencies/zstd-1.5.0/tests/golden-dictionaries/http-dict-missing-symbols create mode 100644 dependencies/zstd-1.5.0/tests/gzip/Makefile create mode 100755 dependencies/zstd-1.5.0/tests/gzip/gzip-env.sh create mode 100644 dependencies/zstd-1.5.0/tests/gzip/helin-segv.sh create mode 100644 dependencies/zstd-1.5.0/tests/gzip/help-version.sh create mode 100644 dependencies/zstd-1.5.0/tests/gzip/hufts-segv.gz create mode 100644 dependencies/zstd-1.5.0/tests/gzip/hufts.sh create mode 100644 dependencies/zstd-1.5.0/tests/gzip/init.cfg create mode 100644 dependencies/zstd-1.5.0/tests/gzip/init.sh create mode 100644 dependencies/zstd-1.5.0/tests/gzip/keep.sh create mode 100644 dependencies/zstd-1.5.0/tests/gzip/list.sh create mode 100644 dependencies/zstd-1.5.0/tests/gzip/memcpy-abuse.sh create mode 100644 dependencies/zstd-1.5.0/tests/gzip/mixed.sh create mode 100644 dependencies/zstd-1.5.0/tests/gzip/null-suffix-clobber.sh create mode 100644 dependencies/zstd-1.5.0/tests/gzip/stdin.sh create mode 100644 dependencies/zstd-1.5.0/tests/gzip/test-driver.sh create mode 100644 dependencies/zstd-1.5.0/tests/gzip/trailing-nul.sh create mode 100644 dependencies/zstd-1.5.0/tests/gzip/unpack-invalid.sh create mode 100644 dependencies/zstd-1.5.0/tests/gzip/z-suffix.sh create mode 100644 dependencies/zstd-1.5.0/tests/gzip/zdiff.sh create mode 100644 dependencies/zstd-1.5.0/tests/gzip/zgrep-context.sh create mode 100644 dependencies/zstd-1.5.0/tests/gzip/zgrep-f.sh create mode 100644 dependencies/zstd-1.5.0/tests/gzip/zgrep-signal.sh create mode 100644 dependencies/zstd-1.5.0/tests/gzip/znew-k.sh create mode 100644 dependencies/zstd-1.5.0/tests/invalidDictionaries.c create mode 100644 dependencies/zstd-1.5.0/tests/legacy.c create mode 100755 dependencies/zstd-1.5.0/tests/libzstd_partial_builds.sh create mode 100644 dependencies/zstd-1.5.0/tests/longmatch.c create mode 100644 dependencies/zstd-1.5.0/tests/paramgrill.c create mode 100755 dependencies/zstd-1.5.0/tests/playTests.sh create mode 100644 dependencies/zstd-1.5.0/tests/poolTests.c create mode 100755 dependencies/zstd-1.5.0/tests/rateLimiter.py create mode 100644 dependencies/zstd-1.5.0/tests/regression/.gitignore create mode 100644 dependencies/zstd-1.5.0/tests/regression/Makefile create mode 100644 dependencies/zstd-1.5.0/tests/regression/README.md create mode 100644 dependencies/zstd-1.5.0/tests/regression/config.c create mode 100644 dependencies/zstd-1.5.0/tests/regression/config.h create mode 100644 dependencies/zstd-1.5.0/tests/regression/data.c create mode 100644 dependencies/zstd-1.5.0/tests/regression/data.h create mode 100644 dependencies/zstd-1.5.0/tests/regression/levels.h create mode 100644 dependencies/zstd-1.5.0/tests/regression/method.c create mode 100644 dependencies/zstd-1.5.0/tests/regression/method.h create mode 100644 dependencies/zstd-1.5.0/tests/regression/result.c create mode 100644 dependencies/zstd-1.5.0/tests/regression/result.h create mode 100644 dependencies/zstd-1.5.0/tests/regression/results.csv create mode 100644 dependencies/zstd-1.5.0/tests/regression/test.c create mode 100644 dependencies/zstd-1.5.0/tests/roundTripCrash.c create mode 100644 dependencies/zstd-1.5.0/tests/seqgen.c create mode 100644 dependencies/zstd-1.5.0/tests/seqgen.h create mode 100755 dependencies/zstd-1.5.0/tests/test-license.py create mode 100755 dependencies/zstd-1.5.0/tests/test-zstd-versions.py create mode 100644 dependencies/zstd-1.5.0/tests/zstreamtest.c create mode 100644 dependencies/zstd-1.5.0/zlibWrapper/.gitignore create mode 100644 dependencies/zstd-1.5.0/zlibWrapper/BUCK create mode 100644 dependencies/zstd-1.5.0/zlibWrapper/Makefile create mode 100644 dependencies/zstd-1.5.0/zlibWrapper/README.md create mode 100644 dependencies/zstd-1.5.0/zlibWrapper/examples/example.c create mode 100644 dependencies/zstd-1.5.0/zlibWrapper/examples/example_original.c create mode 100644 dependencies/zstd-1.5.0/zlibWrapper/examples/fitblk.c create mode 100644 dependencies/zstd-1.5.0/zlibWrapper/examples/fitblk_original.c create mode 100644 dependencies/zstd-1.5.0/zlibWrapper/examples/minigzip.c create mode 100644 dependencies/zstd-1.5.0/zlibWrapper/examples/zwrapbench.c create mode 100644 dependencies/zstd-1.5.0/zlibWrapper/gzclose.c create mode 100644 dependencies/zstd-1.5.0/zlibWrapper/gzcompatibility.h create mode 100644 dependencies/zstd-1.5.0/zlibWrapper/gzguts.h create mode 100644 dependencies/zstd-1.5.0/zlibWrapper/gzlib.c create mode 100644 dependencies/zstd-1.5.0/zlibWrapper/gzread.c create mode 100644 dependencies/zstd-1.5.0/zlibWrapper/gzwrite.c create mode 100644 dependencies/zstd-1.5.0/zlibWrapper/zstd_zlibwrapper.c create mode 100644 dependencies/zstd-1.5.0/zlibWrapper/zstd_zlibwrapper.h diff --git a/CMakeLists.txt b/CMakeLists.txt index 4db8ada..214a9de 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,7 +1,7 @@ # SPDX-License-Identifier: Apache-2.0 # Copyright (C) 2020 Raspberry Pi (Trading) Limited -cmake_minimum_required(VERSION 2.8.12) +cmake_minimum_required(VERSION 3.9.4) if (APPLE) set(CMAKE_OSX_DEPLOYMENT_TARGET "10.13" CACHE STRING "" FORCE) endif() @@ -96,6 +96,17 @@ else() add_executable(${PROJECT_NAME} ${SOURCES} ${HEADERS} ${DEPENDENCIES}) endif() +# Enable link time optimization if available +include(CheckIPOSupported) +check_ipo_supported(RESULT iposupported OUTPUT ipoerror) + +if(iposupported) + message("Enabled LTO") + set_property(TARGET ${PROJECT_NAME} PROPERTY INTERPROCEDURAL_OPTIMIZATION TRUE) +else() + message(STATUS "LTO not supported: <${ipoerror}>") +endif() + # Because dependencies are typically not available by default on Windows, build bundled code if (WIN32) # Target Windows 7 (needed for drivelist module) @@ -122,14 +133,21 @@ if (WIN32) set(LIBLZMA_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/dependencies/cmliblzma/liblzma/api) set(LIBLZMA_LIBRARY cmliblzma) + # Bundled zstd + set(ZSTD_BUILD_PROGRAMS OFF) + set(ZSTD_BUILD_SHARED OFF) + add_subdirectory(dependencies/zstd-1.5.0/build/cmake) + set(ZSTD_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/dependencies/zstd-1.5.0/lib) + set(ZSTD_LIBRARY libzstd_static) + # Bundled libarchive set(ENABLE_TEST OFF CACHE BOOL "") set(ENABLE_TAR OFF CACHE BOOL "") set(ENABLE_CPIO OFF CACHE BOOL "") set(ENABLE_CAT OFF CACHE BOOL "") - add_subdirectory(dependencies/libarchive-3.4.2) + add_subdirectory(dependencies/libarchive-3.5.2) set(LibArchive_LIBRARIES archive_static) - set(LibArchive_INCLUDE_DIR dependencies/libarchive-3.4.2/libarchive) + set(LibArchive_INCLUDE_DIR dependencies/libarchive-3.5.2/libarchive) # Bundled fat32format add_subdirectory(dependencies/fat32format) @@ -204,14 +222,21 @@ elseif(APPLE) set(LIBLZMA_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/dependencies/cmliblzma/liblzma/api) set(LIBLZMA_LIBRARY cmliblzma) + # Bundled zstd + set(ZSTD_BUILD_PROGRAMS OFF) + set(ZSTD_BUILD_SHARED OFF) + add_subdirectory(dependencies/zstd-1.5.0/build/cmake) + set(ZSTD_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/dependencies/zstd-1.5.0/lib) + set(ZSTD_LIBRARY libzstd_static) + # Bundled libarchive set(ENABLE_TEST OFF CACHE BOOL "") set(ENABLE_TAR OFF CACHE BOOL "") set(ENABLE_CPIO OFF CACHE BOOL "") set(ENABLE_CAT OFF CACHE BOOL "") - add_subdirectory(dependencies/libarchive-3.4.2) + add_subdirectory(dependencies/libarchive-3.5.2) set(LibArchive_LIBRARIES archive_static) - set(LibArchive_INCLUDE_DIR dependencies/libarchive-3.4.2/libarchive) + set(LibArchive_INCLUDE_DIR dependencies/libarchive-3.5.2/libarchive) find_library(Cocoa Cocoa) find_library(CoreFoundation CoreFoundation) diff --git a/dependencies/libarchive-3.4.2/build/version b/dependencies/libarchive-3.4.2/build/version deleted file mode 100644 index 78be3ab..0000000 --- a/dependencies/libarchive-3.4.2/build/version +++ /dev/null @@ -1 +0,0 @@ -3004002 diff --git a/dependencies/libarchive-3.4.2/doc/pdf/archive_entry_acl.3.pdf b/dependencies/libarchive-3.4.2/doc/pdf/archive_entry_acl.3.pdf deleted file mode 100644 index 7bcfc773d153353d24daacc69ef63d8bca1630d0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 38427 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 W2d7^z7Z4ke9fbJijj*f;;{OL927{dd diff --git a/dependencies/libarchive-3.4.2/doc/pdf/archive_entry_linkify.3.pdf b/dependencies/libarchive-3.4.2/doc/pdf/archive_entry_linkify.3.pdf deleted file mode 100644 index 5ac98eac027562306e26af23bb47ae15935ac5f0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28097 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 z 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 nWh6{W0j44)_n$S)x7n6G$pjDbPO>2|K& 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 AdjJ3c diff --git a/dependencies/libarchive-3.4.2/doc/pdf/archive_entry_paths.3.pdf b/dependencies/libarchive-3.4.2/doc/pdf/archive_entry_paths.3.pdf deleted file mode 100644 index 0a67baa531d76f6df3bc307af44bed0260605bb9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24961 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 YF-A*S5~&uHFdl+QMpjmC-tI>K1#Ggn%m4rY diff --git a/dependencies/libarchive-3.4.2/doc/pdf/archive_entry_perms.3.pdf b/dependencies/libarchive-3.4.2/doc/pdf/archive_entry_perms.3.pdf deleted file mode 100644 index 9949f9e3c38bba64d1a23d2b5fb85208d2f8f717..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 29559 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 diff --git a/dependencies/libarchive-3.4.2/doc/pdf/archive_entry_stat.3.pdf b/dependencies/libarchive-3.4.2/doc/pdf/archive_entry_stat.3.pdf deleted file mode 100644 index 292c88afd5d9a67f75a72773be5fdfeb30d8be3f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 33108 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

vm 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 ZA7_}66YR&01PtF|abYqrNGeNV{y$5xU_bx> diff --git a/dependencies/libarchive-3.4.2/doc/pdf/archive_entry_time.3.pdf b/dependencies/libarchive-3.4.2/doc/pdf/archive_entry_time.3.pdf deleted file mode 100644 index 53c92f9f25545581ba7019e9979e4bb7e8fb758d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23170 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 diff --git a/dependencies/libarchive-3.4.2/doc/pdf/archive_read.3.pdf b/dependencies/libarchive-3.4.2/doc/pdf/archive_read.3.pdf deleted file mode 100644 index 5425238803b2831a9316e1201df9ef4802a1958e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32723 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 J6@Ms!@_%8AQq2GW diff --git a/dependencies/libarchive-3.4.2/doc/pdf/archive_read_add_passphrase.3.pdf b/dependencies/libarchive-3.4.2/doc/pdf/archive_read_add_passphrase.3.pdf deleted file mode 100644 index cff07e0a61447775395a953567ec47038088dfe9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22039 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 diff --git a/dependencies/libarchive-3.4.2/doc/pdf/archive_read_free.3.pdf b/dependencies/libarchive-3.4.2/doc/pdf/archive_read_free.3.pdf deleted file mode 100644 index 5507fdecc88b72a340dc8ec8564d9c2a8dd1ab34..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22616 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 diff --git a/dependencies/libarchive-3.4.2/doc/pdf/archive_read_header.3.pdf b/dependencies/libarchive-3.4.2/doc/pdf/archive_read_header.3.pdf deleted file mode 100644 index 254272b8dfe15222a58144fb1b67bcb59e5572d0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22806 zcmb@u1yr0#vpd zzu!IgaAu~xtE;NJeou8hkje-M(a_T}!ISnLL}tS?6VMS@>6yZFasniPmPYo*1T3Hu zIe?IfxjoR903c+pYY!9v>RTBAxw+x(>}`R%7Vyq#lPdF;^FqiT)5_GNfieNLi`Z5o zvb@2-t}^|CxEP`!c%SSk6v$wEiZLnA588{fnzVv)G5c3#*2wc~wzNjWY02M|1?U6? zJSLZ84_6ZVgfpEWeYufZ5eq$o_N@BRTT)OI>fJ1STG9H){OuhoO>~=6TulX4 zxqO#8eyjD;5Y}si$Teh%edUZj=wW&$aRO7Zy$azpMruwUAtIUlwEfDrq7(E~bnCi0 z?rc`%d*ICj<~_9ExjIH+xn*J2h*S$MZDsqMYx_3pZ7bhr8t7`7S))3P4y%r21SXI8 zVFkoaCAo&`FK?5@_LP@!*VH|HS~ObK7h_{aDm?q(V@lWZ<#}#e?yOPGo7I9t5&iDh z-4l5%T=M7+BEm|YqMDn&O-ZA4r5?+JJx)QY$j~f>n(5YlEdV-lu#+G-hm}}6haXf} z!u%E^20e*>?9vanbfFo8Km%ho}DlLpYer$#u&G<^_Rjd|V-m8veJv z9Ks^$y9EnuB)5#|iIvjrtecvB9m49Wt0g=BWTU$a9N95~hpKI07v!dhL-SYo0A-Bt z!gF}dQ~AnQ;Q3_(Igaav#;W_9=wZz6S$Khp(vTP3JG6lv9nXOgYeGJJo2kLb zfu1_GXfg_WUwcNsvrS9Vu7u&r9pb?_oQN3XAIM(T^w*X8N%()LVDK?IT-{(M+AbZ( z_4T3`J1Zq-?C9k*j!2J7Ry)(RcGJ?S^gk8$NY_mmppM@85OjP5mekN!Vm^r<*wyK& z!^QQsHG;|aY|})$xLBs3!QWSb15OkuGEK}F`072KQY@@u3%Uy`D6A#k%9%E7Z-Ncrg{-#Yz2|HCY z?U&=TCexRRa`=sJ&hlR$jmK+z`++zTAu1TTWy%{uOyUNSq3L<);19!X_#qypI9FUB zPtx!>$L!)=y3=dJax=-Wk4w_|n)q}KU*MVsco*JJSJy6x+Rq>G2|>69_%%X(kQ_cr zWc9jW!U!4km{Sn*N#+08H9$9~C`v@y#)1F6o?8r}#n9o)19L=q6QcVm3CtlghNC(K zSWP@|p-L{2|KR1ah&L`HFpZgc-Mea%8Z7flNb=k~4$UN)>=e2`8!U$F#k&{$TToKX zke;MjaHDx-!kyV3F3hJ~{vy@IT`kUy)^LwO2D0w62RLUpIKW63 zEjOv4War#7k&pzy&a!nSm@;4#FwwV+WDZ6sQzxF6ie`FBPxuqrSQTcso`HCQ<=mHR3r4tRc=a&zZv! zC!F6VXPr)7V{kh)jjd`@r@h;uxZSH=lFHwaD4fxdO?2-P3-g4!R@Z4%s@2Qo}^*Hr{|-yrMAK z(Y4>p)>|>zGGheE?OXkHsbLk5T3>m1ukq2;Aok^_a!&oN4v6{UV-~OT#;C#UkS_^c z6IYg(WE}iqGA;NFWEI-;`Fno-<|pLtchAea?!1AP2EXhNDD`Nw9xc`5FFgx06a23- zroZf&f{Qf}Afsyp1V{o6Omz9IoC(zFK-J9b%mi#q44Uu&IV*dRbt9kywXy|T+7mE7 znm$l5(9X)iRv%~wGKw;`R{HWldvyTFY!UzzfX?=yeuB>S!tzgD>DhmF5wZexXLuZ4 z4jyDD0sNpmXhb`LNBjCz^ozd7DSp~p&}bk637#mlBLIk-7}yc0!#~n52d_y08o>cH zB>m%Pzq-=@+4WaXeqDQAb1S1ihWJIjB+y>h08~T3!1j;1S^qx3U(0|8NXtkP&~tPD zG1KF!exU+6R`|z$a(~hBw9G$h>FMCk?oOnbWgSHOiVvpu(H9kJW=}CmYJF5Z+#zIgUTPZ$`XXK zOe~E+q*}hSv@`iLFYlmd|ESB4`T`QtANugf?SFDiRa9O;k^dLR$k&%($@$*RhBSRn4PmG0UrUPxT-#$NcKbiB?n)Q+Fr@!AA`3Ex}+4RVu zpDg}khR0I2pNxGH&SUE*HvY-fzsCQW0#N{J$pjL>BQ3xGK92bZeGDL49zUQpfWBEl zpIcm{iwTRodjmRWY)yc+ z|5OwDpL_XI@GM1)(bw{dbl|<{*d& z50JM9S||~K&R2MVq=}s!$WT8)ibuN#8V7_pKroR4@D9KS;0Fi*1OcJ|34kO(3Lp)T z0f3GbfC4}fpaf6_*jel911X=i+UlOwiKXW0g2R$OHwv$=nM*$IiN&|`9Zvbd zwSV7mY~^(`@0Qug(8~Q{u*y^YJfupjGn*+Od1+p7&0HyMow${VOjC|pi)R3rjyVym zuj`(Svn9+DaMwXT)Vph^e3p4-#jjDe`_=q-X{scQt5=G2@kz$%5j`QmFVgD@)q_Hpqs3orhH(c45D)Fl^6{j2MZl z4DyoYpW5}RFlj`dUph;_ROo+z4wn|mVQOnZ%S6t^M{TVciSQ7li$F?y2~&oc?=ggll#%oB5MZiT~c!afpX14qGSv7Jj=${)2%~jd3!F1 zH}0f7!~LGFu9V4F&FQDQ{-)X^NpdyUo*O$@ihUUiZ==y!She{LnJ5b=8;u%OF#TVl zUK(DCu~SajvSKxwRbnY8!HbOr`FFvfc+oM<(y&x>&CE>C1ao}VHQIk2pc42!W9e@lfSxVTUf%0M6EF7$dp@4LeCAf}gLL(9TFPxEVMANO0wTBk;I*+B{pfwSUD!jSx(F&JKgHFO7X3%Mtxtu1rUG}Zeg)P+Pv z1~zK#QzukVJAgD+jw$-(M)a3gh=V|qJ?H(+&c#?3lBfc;d!_LY4;K~uRzap&uAG|% z91h}|2LP>4kRSNUx6YK6(YDYH49Itt_2X6!MW{C{E^#z3TjD*Z&Za4`_w7js9rYFM zX@HE~Fr1N|UwZ&X-8mHsXPgpIA1!k9mWA{nteV!XC0NFn4>@NKDM^~T`6x}k+QuSq z2}y{XIE(uh*@jP(koiPb>}w=&hzxDFAGuI)b@*uB7EFwHq`s7lkG6NU&UDNub4qRr z@)_yr`lerPz+o&#^~}GpMx3TtuOc9FTCSFfbDAgT==G&b@6ymlm(9TxhOjG z1YcE@T0q8bG@Jf|9GWqZ1G2P8i+?j95JI~4fKHld#>PL8 zYoifuj9t3)N+d!(B^^dhZLaAMLWn0rA{E=LkD5X`;b5>t-RvFs8t`o|E3`v-8~xiL z*OOFIb;><~aGa2ktGTu7w_IP$H+|0hL>xbo=Vg)Fu_Ra9B1F?<20?xn*i3}t$-PWm zv1rG3ES@r-rPLUbL(61BJZuV>c!s~O2Cb&vWb@|8_^pPM&2oPueHg*TsRwMDSo)kj zpD6lL1SZYPlYo^sM$(IzJSBtoBJ^qVWsVknTI-)hBtu!54}IMQ?Gyul;Gy2QBzTJrEG=%di=O%PXEh6DLX8X2 zqHlSrAZ59uoOOa-b#vpFz4)N`{s(I^U>ol7(fjW{sNXy#e?BYy<)HWrtNe!t^Cz%E z!wP~c44@~j$Hzqi7B;p&0n1-tg$)EdegiA4EbxFo!3wDBe?lwt^#2a6sQkh_Of3H% zx(ES8e!-WYz(on53(y1T1N5ydEOY?|0N}4jOn@Q4(8Li4Faj6@j9sjaftCOhfGNNn zU;(fMSOKgofdFfO^`mdi9B63&GiCdTwgA?krywf>fDOPFUp#I@Z0=ZfKMEC!51jS6p z&ip%qQZZ4HpKe^Dueh9|qQaD%Ae)++TQ8mTt5K4zG!-l%s2<1~I)Cw61VWTRRTP#m z3i&j`EpAiw@7E+taG3ERX9#vFIlxL z-*_$?q98KDqK7iy7~8u$@2P$4x*C0Uv#mIUie7CGeg4)BN$g6Kb9c4x#OS3C3-*v> zp;n`HCSzwZ()@Nun2SGT=%#Di$ZbSq;U2_68kQ^{4o+S8aktPgmhg0<+gU$K(?wGnq?9K5l@XMS- zJ2tEy`zie?nN5;&C>viXL32<&oRuD_P236LJ>L~-2`o=X=8WJoyg zufq+qoNB0QujH5P+v)|E=@~=cGSzvU+%xu@jm{HCmf3igUCOKHRQGQ?fa&7J;vWYU z6Y({YpulC0nO=jNkA9AH>Fi0lC|gS#9Td+#BE&tXWQ`Rl$j^ltotKl1N=bx*EGf*A zu&Y+pHmrbszak-QOnRe~8XMNn+W|@0!Ksaq4i#Edgrm~ogJ$l_WNK@#2k#xe8dlYc z6NtBdFc3gDAO^i7h(0RXIX-ccjAh4>H8R>M2b{DOHrotP#O8MrMaa1z%wsDeV z3v6r6xpUe{o7TO)*oX7Mkc1z>E_?%ptR~{%iw3AL@KFh4I0>82&_<e{`J zcqzktikFN2iSuKUM%QcQ_<`D^iwRw^^$cQ%H*M|r>8`Lx3Qp-q=GE!oojNiz*z-8c zNe1_Y?p<=4a>|lTw{qJ0hX>j(a9JV-9>)bce=v-Xb|AdCW6Br45j;p94)K|qp9b}{Z4(;|{W0z4BZ8XaxO-W^15cy=#Z9g?| zlh`($@eZZ|VtD?1k?MG5BB$LqFivhe7A4+Jq3@+EnFR_3_=QQ%ZITXE2t+Hx4_(qj zTj+9qHFlcBw}D6L^FD@WnzvuWcrO=wo8PKmIgUBfFWXmort66G=_LaEHA!;Ytq!LF z93&@YCIAN7$=_P^@8N`VQ^7stLIC5Q>eER-Bug6$WSEBE%MZb%y+k<8k9F4HW)2Eh z%KG6of1zhyqw6f=eR97vo6Ys3268SW5HBkkBTiz!;W^i;_rxuZi>0e$7!zWb zPj1Xm@k~Nk>Iyo7k%#SN>V6sh%@3&;UCb`ENGXk~4=Fl~fEAcD0fwFMmy|n_2DJI+5HytL+91lky3>Q=<(GI|IcRMsr_PEjwvrzlPzxgChP9?AXLHF(Clvis} zUv5m|S(#q-0L0E)GeLQ`_cU*r=sldgS75~Q&ZQ#boQ>A^sXGNtpzT{k(WrS{#SRM; zTnFfY+&}Q6m)ZSW5+cVuZT;#zuj({zAFpk+OVE|CYcmCf1eeguPDd;ygV1ZmX1!TXvu zCVr}{dY2!E-z_dO*8yzo zACQm{>P39tT-1$r0~nT=_Q{N9RH9NU+&X_yjY*PI$}d+7mp56_^L$;u8a9$$z9n4Z z$Yq#@aC1k+uKv=a7h_`^%_~v&N@bJadEexj`wx!3Ax&_}fhu1Hoi(2UIsL$lIwCLn z$ugFKz$M>mS%7lE#G4D3E8!2yyJycQU1gqyp_^f7fF0YU^1NZF+o?={d8A1f^gH0!7dbBK06Z zHqjduuaK7Jh@wmS@TGk1o}NoMkB0AkJ9F==Z8UI53YJvtN)@Vxk*Fc8a{1TbBd{;> z&$RjiAJ&wVX`*HF0PO?(Gs3V`W+XrG~yQ(gSk96yCrv0-W?n zoPZyug!4%IikY9sB=PhWExI;8&~Q0sJZo;@Yk1d+xO7%UHU`$*h_)cNhIHWJ1 zn43cd_V7WD_S}7w61ur2Y@~WWTa+puYY;lG*U?M1rsB%kx$FXRo@UKV0o%*D<}aj z{X$u#=vi{R9(7fm;&Z&tPa~sMe0fq(Xq-`HeUY-#}}QI!jbWj)1HKiAoh5F)UM7h zw@52P@rzYx$?S8-@gQ9LwlBv5lASe{mvlVy2kQsrw|5j?Nv5lu0VY$XUIX^=#P z(%fC~KWQcwOxur1aOO3cRdQ0L)y??ZY+-F_W~VQS)3prR3I4zW`tVi2GZVw3Qx2XD z9)uOwV8Ph4ap|HK6Mp7XqV^{lv;HEg7XEGtO$HCVi#N_u1e08VES%)piE53&t<3f?qM;dx~>xl$w5j0cG8GegB*eTE602x(bd(M4L`TE{;~ zb3Jie?i33I@wA92!~jx-Xj5QX{0@qTd0a-Ckavv4ozKAAgWcM1nASM8U}lY62h}-# zgx4xc(kL4jEN?ecIZqMDv$tp5PG%Gkppr`OMg@Ik&u*hW+rO1dM#Q+G61x+M82v(P zGDc0v08ydWZ!oW=+Hus8#_+A?X!j_I#tC5@gQtVq zQjeKCAX%k1S3eCW9Cbs#XDa~_E-7`UIU+b4cyrhyQaJ@C;eEu=-}%fK^3_s;f+?$u zDXy)+;8$O_RKgp%`oja0cJSf~uyPz5fs&85-h71dgZ|0=XU}+>uHE6b-v!!T;%VS; zZ@sA~IJHX}g)WjpuZFhVe0B&c$_CcVD`MBNd0;7+di@sRW3)@=K&t%Q8b_q^jSrYL zH3#Rlib@QObq>nIFuKUy`u!`Bi}SC<4e#ZzckHK`tq~?j)mX*>l5Q^8FD&%#uy2MO zIFz^aaz4pTj%n&glPjDJ#(p`2KbVP+uT5`9z<0YQO&38Y$?OZAXqIm3_6)a-Hg)-p&lk}fe}YMILWnyzAHWJ zCz7vGFLoR_xTf4#{Fg&eND2%M#DGvgn#1h#UW5W&i%NOy>a}fO1Z8>PLq9k_$nrnH zer~GGMzHtW@4a?JCz3*$7EUyU*le3x`l_;^Dw8+mLpy3_VPS4n<>-B$rK1>$BBJFlW^|n(e~IB&Uj5)px|_FHYFE#pHWs%>3wD)3jeHxdiZx7shPVfm*+#$hfoK_>5%O17Wh=~h`m6uEP$c}>WM1zSxe*OGcG zvo6*LQ+^xP_^|{rw~4(&_sJ(VE+HXFCU$8;PJVnLO)1vf)j0JWL;Ax; zq9Cmq=5c>n+KVxuiEFC_l?D+^2cIte;g}XWiY!hw3EH#g`l#7!Rs25q&R(O~Z*f}f zOg9WX8Yp|Cz~y%CzA$H>VEStYQ4Gtg!~=tGYG_^2J$J<|9|CO`fb zn{Xaa5?02##YZQ^))LAKx?wb@+nW!>80MqPhfwFFF2VVo;1J z@nBt`byypX@Vt#8q)@I*HMFdxOu$#T&_HaRI2vcDzMht0eglVd8o$QO+!&obMVk^P zm^W7>rY9#}-keqqA+vj7umoHQuOdEq&K_E(xYpQaP%&OGy>oHCjjS*kYfViwsUxhG zhn5DnXNpcWVAV!gMY{Jx!QC{sSDuQfS6QLLxOgWb{7#5?SkLvGPY5C}(v-kzNKnCq zmThvqrr}s=9BWiu$!U~vmKyXN)d>{cc_UTmrx%Rp(g(@z&I z&0%lvJMn$Lu=~|)Vh*-P8(dUe^*1n&Ot~HR>TF=^_e=1t#A8S-iEILJs_cm+_L!U% zAUOj&5{J}-^-*LQdSd`gU2qZz}s?DnCjj*Hpmk&}s{0svt*p zKZmZK+EEue!QN`R50?k6fXll@LS=FR8G}z8q#_8{f+TDtI{95l7NEIW-ImV5IM?oO zmpWM^uk$j)R(gd(^#kxGsVt9qIOZ%NuT#af%I70KIxUj$;%5^_$Qf38D2tMx9~3j* zuGw7SYUEnexOaSlFrBRZ#5&g4(jIuB-GX!=F~l?_cv3l!6_6C6Cn_|-dwmEKiGBSZ z%IIdVw~dC52usZTOJP4lpu%d$-GRBsba%J5TSWPDSo9vDv-OuYkSCSQne%SP67vYW z4;FMAyt!;tq^ih~iQn_3oF+7fHhZc277RP@h7xghq?N#0l(ZM_a9O7*hKCf_K0FJE z4GP%6Vjcx!mR2pKwcMB8xHu<#MQ;mRnyc(}&`Kk3P#V15JC&C@29{0{o$rs7$L(xe zaM}UYp3FFz*bZq;Zbot9ev+k3lcE@|C>H5bUK8vYfYs-C4_}qX6{_+54yL93$L&R% zqIG;L@}vh50}WTou^h5|>?DxMv{ukPks|%w^BVDx&^VXMU=(f?U&}3&UQ$YKQc{)= z+g{zRzdZDD&xgKdVn{6LpbnC^2*iPFo(B3$;&n2h&%qmoBcHlUEugJeo$ z*yBM+&uFY=LcQu{1>+=jQ*^yHf1f7Zsb@zywJodQz_KRL?pQ-g$*TQV4J z(ADl@aK-8d)@PQYpqo4+eT7)J#a20|6Bd<>^#ps0T^)_CBVxx~$E0CvNNCKnXOPX4 zo?BSZ&fLY@0t%*B&?>k$Fl|u}2*@zt9#$2uS??Di#o01s>>$PcwV-E9=cB&7Klj?Y z^=U2NBy~MlUpS{G!?$7IE{Fpk_cu$jx73-ugQelA`hc>%K>_f<(fv2^Ge5n# zplBN!dNxpm7-%RKP-NGy+h<0`zr48&f4_Qu%>L=k1$F%o-rUCv>vxX7uAM=*>>$^! zuJg}J=%2aYuce<#{&e&{PX6Z|^-pK+qZ`){+b1{cx|}->^c#L|2UQId?PQ!@!L^00~hx zrY1biP>d}4RYT{M?$vc0f= zm~`!J;OxcF#<@dfh>ab?N$-<%_VS~@_27L|-0@94a)lOXsY@cJG&1nDe2LvSuIuoiRcUe*`@v~<$(;FK$#fcoLE z@j4*~y)0k0V9cQUROWrThgZ!i*7O%#O0zF!BSnL2V)J?|Tfg_DLfBoip<@A|U1LYRz+>Je))Xu_F2F+1%bAvY1vBsKD-_YLXw{uT8o$gi8>Sg4ZiqJts^C+!NT*|$dJOz^{mI5BZ)s8+ zH;<2254WqP-0ar?^_KU2DQpwxHqA8d65nxsu&MxBK~^`q zo9>z(Hgp~)XPx(*M8?5Y>oNDOt>Dd&+cW*8M~ zuN_OL;q4~%8O^fbxs^SK+RdBzZ!T(zkWNY5tfMw|2Xd|p?|%3+V>v(yvzpe>93W6u zR|%HUP*Bm*mJ-BAkoHamaD5vGhP?^()s~(nLvNE3xZu zJ#FLKeUkcji~tB>h6y@8*q}U`y*c+Wod}#z$RO@8eG}3HGNvi9n5#s*d zC+O=6F?EI3<7$Rl_dtd$g0LK(p#A1PUuZ{BgqLOtlN7V6RQYhHN_ScNkXJe?A0L@&*N&M0UZAHN6u?xX3 zlo3;x`8`$bW25iG22>(?9QXOTRD=${X?Dd%w@>+e?B8icg$WQcgtE3@`5xP%{Oz-s zV{3hLu9;LLQ4(0d3(huGIiS6OzKtY$D9uo~S40JZ&e$a2bUhef zbq#;Dv&#Q0Jk-6i^r1!;Mun3ZL0l*JT;9Bsf$LtwSnR+Mt9cmZ!Ih)Q+2vEk5R@{& z_WeTRIWdPDEQ3}0COtQ5w>4`!r~OJD0z83TRBD!Lf}Gh?Af_^5Qp}A=UV)f z7dgi-5wXCBeRey8DID1@a`8=cPg5rSJyR*kRhX{76@46j3A~aJ-?m2$w?!qNQ_ZL@Mx_lGS~; z&v_dN4IB9y2+w;_Ti_yP-nHS7iyWbnI76o7Ku{Y|-3#N6M_;7XmqDMh;7z@z<+lb9 z95!sos3scB@qW==K`VVx( z0*cN1KSf8NkiGvKbfgbLMvu72^5^aJW4s>dPWm4=(Jp^OMNcm_{Dz8ti|75HUqI6{ zvHuMfDVRyf8)0$>WUR}=$)^w@9HjLCg@`P7l7znayQF6GqrL9gNh64r%6cJ287KA; z?YdUO6EM*x*59I$NcE<8+pBdB%Bs zU#M!k>0{aosH93uIN46rwNvGt0|eS%*2lEz73OOzGHm-tvJcfHn-W&Yz&L8 zy75m_4v6|&-A_3$2uFtF(KmqGgK{J;$=!l$NO?cxY)n&}{miAyN%k|_bvhqdAv!Bg zZaaunE8V3{lpG@jnz1`s^i5`1sBv##2iuf%IVzZE-kL)ugq>E995B~lghi@Wz%AuP zZA6`a@Ezs9oxK&hf2I|>+-0@yRTb4{8>aA{jq)LHNKW z29<&jUzo9%s){#!IC|axDiut2RJ21 zTRz{E+LB-iapN{E7wyHcj*m^H^~7D1aDdsScI2Bv)7q|xjf5`|Ux%O%lwVSKSH1;^ zEf>}{VdIq5#+gm{+P(`HLH5&oMO7$?MrY~KHtZXBWkYP2iapr zd#pJHONSf?ivFU zJK@qX(Tx)Ets`a)#fTLLb)MF?t4E-kq~)mTkAc@xe7jwmk0Y3bDQ|*S|7_2~hK$c6 z#UEcJ#}9WMa!C@OCulWja$F`%v9}vK>eG1_OFlU{xLZWf1uFpF#B!#@OC?n{>2;b) zjW2xZo);)fln&XDWi@zhu={>z$k*?#*6@v~`zx)sA57%+DmICpr6PLMX+1EWX%g>atpt*!Z5yoaNO=`ZjV@n63>@!E9W)mpoMhM!5& z(MI|rtzBT@yj>e5)z(pV<2bhCQu&aCmKS^MBkn|K>%6U==y!+!sz55%9p)_G(h4)| zJ?gAs!Mh39iX#dF;p5*-$tX1TwY3M%U4>WSHEU;Wa#`vDA zuZF}i&6@IB-j#Z+45Yv7<6)O6Iy^m25I0mI)^nMmN*j@7V|^onP#olF#Qz*ZiLc;g zlzw=FK74zW&K9L_tZnCUo9^vI+%qDIAR(eQJZ?D7;N74rOt+L*@T9_y4f5dq-F8G$ zZQa8y_uwQwct9n%38GP&EPwU{Huu2fHOqG`g*3fu+NVOZ)VNAcU zq@)kSe%clo0fql?KD%t2EbCF+5MTCVjQ+Ok@nN)=8)f*pxwr|V^KSLCKuLv%!5b}= zB+eC&`0Zh^Q3DLzL$-q*$X=gDlR)4+`Kip6Cu$aRU@YARPJMob>fZb_? z;J(E*5nXk^#Y3g}klo;8xKC;&)Mle~W2*y(-xm!rXJ;k_=osA@rRO?2=nkxAc8p8^ zjdlI)A^N{sSNZ?&hQd$N%Ea;*xDI-~43uDDX8hCf!2Flvf%(x7@Mp|BGw98<-y9F@ zprEpUAN0-)YWKgjt)Q-ddLG_^V&eq?Kf}w!LGkgA(ea?y_ds#+%Am-2T~LVGqgTQR zU1w!U>)oQ{$oft6N#z`0va<-He~JY+{&Gy0;k2e;4c@ z0jSek0p4*6n-ehvVFbVKlF)lYAL^XmM<`VrYI=tq~D9(ZMh ziZnHu7OAJGIY|Ptcrb~ta2M(bGU}SB9x1(<+)1Xe^DgIpuC`Poa!zD;=pB+LvBqMYNfQ|t z+VWcxsyu=tORl~xP>rh-U_%HeGlJHLi}Brw(XV)Ol=nBn)S$7vhf1xB%hZfY@MUE9 z@E~Yoe`L+;eS-j4n=OPZDU$0`v1YT*c<_;s4*K+Xe^y+#0xs0k)+*|c<3mpXQCqx^ zPA`?1(a^69h*2r9I0j9>g=GQ_CFFSf`;Jh!hhRr{wEIR@Z9OT5A|act2vH!HbrQ!Z z4QNKOlBQhKv(YCYKB-3dO*rhiy+DiEgNo<1&}qO}x#|p66E*{QzN2;-KE`!4(+FpQ z!(eZfL`sY{5`Mp61nyA#(K7N`3q@Z^Ie_+Lo#G*^-Yo)3KemvgCLfC!N*T6ovvHgq zQt;l~4SfbWB(BMh5+|Do3;}#eJ<5B!fsRLKdYs}FoZKi{+%u@^Rq9*e6G#c)U=eHV zFHuY*Sr50Tbj!2_i% z@sOt6s!%Bx5_XtdrcI^F>F-hfLv?(Y4W0b(P+*UgQxzA!3r0R0%sysrBP|pP64>?a ztC0=3e~&^R7fr02%Xg`lJ0^;g$WGd|O64cA@$*3e2Ba3Xsb ze_tg8w3Cl*$VLULEzhQxu7;7Ju-u$XjWP3`&-8G0b5_Y=qdrnrQ9NW$ztIdKTmiSN z{-Rr#VxE+M-F7!i^htFch!d*swz}ER|h-e_|DU` zr1%ar)T?ip*0rf_2u=kdO|jsc6P5;O{&+-4C)|N9^e322zCx%~;1l(xsr)!EaGCsb zlW~|4_N;XSJ>MU%aoUh#MUyijND+U&JIM7yX7kSLp53slVQvCr9^J=3F~zCH6Sc95 z=E6UC1{JcIJmDvTMI7CwgX4~d$rB*o)qqv{?JMsdJ3+V`8^I)|$fv;FklVUQ-)iAJ z-w=wtiay*SVxPEho*K5HZdjrr!d{n4a!eRIU5yv>{V_~C4EA+uDNTDg%)E%0xWpVQ z11z6?qFwY(r+{zDw>q}bVnV+Jsx35HhHFA8C@iw5_SBg-NmCg@1EnYnVc^S(>67x{ zi&ZM-)!i0!O&I69$g!66%XJ8ouczN=r@!H8=>>w%#zrK&>{)!Vr2E8I&UP zV__)mX7wO^;My1)sq5^ey>rhGO1B=^f+!OSoDR?*x#tg2*= z(pf&V(O;Wa8Bn*r(Ae`Zo5pw0yg1()>ueS!^?SYDE*_O{)F$DD>>+!?C#`VI+aY3) z#m5^-8tFecioi`Ga)sL5?zBdt7B(e=+VVkO;VKSZD$4Ud?mKcIhEr$a{dX;bQyP&D zAzBW2$AR(nqOcXgmkSb}O=m=63zfy9t>PLvvXs0Cid!Xk6>lXEwN72;Pug{PH91PD zW0_##--gVEv=LR*F_1G2&5WJG%uz4~A^8ugA}qmbh=^Mwpk_s1DQn0i$X?$L7l+z-dDP+*#Ko! zcPVGrW}CpTX#pIS!&yD)4VCB<-fATsIqv}3yL?v{QEf=(I8fB>xq)Aw8$QqDMs1;} zWa2cQ(J14V2$-l?3~u{KlIG^fP@1JXh8ww?Ravcx=3zxQ2W5a;K>xwm%%@a-*K%Ni ze2DX~Dpj+M7+%rv%H%wUHPNv@qPDG{F+;x6rrScr<=a!SN z-?4;d!Au2zaL>A&HgK)40V|e^BT4$66R!2}!jSa`c=5#$o%zsmy^DFib6*D+W3BmC z1ho#wvct5bKFneFJ=`6jAR$Ym-8si4F}7E}p+7Aaf8e96$zJUm=P~Wz{?*c_{vweW z8{^)hyBMcx?$R4PcW_UAj>)_4gxdH=Nq36(a(Rt{Iq2KyuNVQVcfK@Mi&xisH>@K# z<9%+VjuwIWlAaa$l15W%OqS{AAL>55pgwp%4H-P+-p+_4JX|F_GtU$f=_)%DZ(R0H z(lud$r((PosuWCpuj)JSuw)Ki3ljTQUHE(WL6gQMhc#4M&1Xgd(#gaQ=kjO7ga}P; z5%wf|ZSPk&G3CA~Uzw$KXT^!Vy|L{Xu2~fPzGQ0?|Ir2(2b_PH@bj_tGRnLQa{d=` zwh0zmBeNMyEXS~(lZRo$Sn@C~t!A#`zRdd{MEHEPsJI3$?iVwVsTCGMIuQLo9EV%P z2yg`@d)Sn&LfVd7Z@BOrm;A(c|(G{ev5L9pRYSWV`XU0g)EN%~5{6b;fTQdu7SZr{ z$d5|qi}4w%4KH$KjVUGg_!_{51Ld=jXMpyyY9c0)VvN-$w+u> zG|T#Mb(6S!8_w8ZEW9$pe`k4f&IiTKP>2fAbzl*V?QXGpxP3f^ z%eVA4MuL7#@LB*-ObUew(Zd+bw{j&?8_P3yMf-p!(^^B`c#iM7XL88FjDg|da8oj| zT>G=@>2uKy3UqsTXPoCs1cp3q2h%K5HgYJ9^lVqN!kLq?tA@CfjQlJ_2?yZA6nJmU zO-u9Maa5+=uH0GfvmcN*rf5o90-LbVbhkKrC7pr^o0$c}U~>!!<75_)m2l3Ga_)Ih8UMoXycNu3s45N~FbcjIJ5 zbv=F3K#ZWnN4ggEa@+RybMPI6Bi%=-uti-#Y!ok_TngGbME~*@W^VAvdGKcXT`A&u zz8nF8HUV1=+f%w5NRlIKlY5w{1rG5OgKx0XR?v573rw!C7N}umZm+E_uJOHiFUNBv zKQ9p3(dnm)-B*auV#51NwsKfTSlUIFB_$#B#C)u@6Y-)?x%G0fn}PHI+a48p!Lz~9 zqd{@$#oA*bBR|>}L_{6~3poz6vh>wl*W3U9YvuZ5nz*C5g3i&nDH~f*L2o!YWVH9Q zSFUTz_#p~{LqR0EO$+V8jnbCul@{hAvM3YKNgPUa8s|u4ID(5)5jHh5Qv@B7F~xw! zZT^A3Hbqf%3+`R{AuVKP377tHef_-e``&xs_f7h~_db_Rd8+P7+nJ?~{fA}+l=SzP zGw~V9HAT+o^#^C=mNrhPeQ>m?x!5ni;`|Iv_YJS&1xvY^iJND7eYLamZG&%m>Zu>r z#%w*%b~UK!ZtK>7pK7Ol7iaIQN;==%UKY?k@#|GgN6)RcfH$T_+IH+N-q7>-TA8q8 z&@`^_%Ltem)-6xu)c7 zW>4JTRqwnxMW~HGTiv@d`j|}aXGZSTd|MikcIU0~mc#KCl}mp+EHl>@l*#_E`K|~| z{WxOpdsTU}Puz}tsv%B3+8X+K`i1nsY~PB$n&K_?$4g4@SSLPJbrl^?U7cUQZ_cM( zC$I2!Q4}BgUt#K#x=ZPxJt5w|F3P)l{gLg6Gt9fIp)ofh{=$P9^cLRx=;n|5r$6|` z`DDv2TX<1_^Eaxal`jQhw~Exc<$3gx z`GwW5q#U5hPd@0_*Op!QLQ_DAZk}W1+~DTASvOvd_O=9KGrBMyxnHt)T7ZA3*7tUD z>#4Z!`-66FGghRYuD*G1!j(1UjVVl6i~p*Jez86+Ym3i(c>i~w)|UF$js%D089PEk z0&hPulhdbcIuoIuJ?ClLjlM}meXHY;-tN&w2p3(@$QK`mh=iVXoTnuw47Zz86f=B+ zuZeKNfADOhh@=}cd9xP%tMLSi@CGfqLYassTBD6w{GtNEm|UV3jxl?bIb1u3;8v_0J+MwuV39&&Ez^QiTSaX2S2yy0^%r>=Ci@H?Qa4(556mdbs zY%Q9Wn1qNHiz%B2A|?f^AmjuUhHwH91vo51HbN*E6owQGoO&5hISmX5-?V6!C|cDR z=5RO^4oYDWGBJW>SqvvJl9U5NZp$}|dZ*lMn+x__6XDZ_)yy`9YfcJij>Gsgj8Nd% zkfEVQK;B|TB*Xf2i(S;Bb~|rSvnq~Ka)xwyxRNr;34&9~q5BV)LrsPzS%x-}BsXNv zI%1k`_TUFFNP!>VP7PdD27884(4q^I5|D*i7MnQ0l!UMfl0mV-#~-g*L2SnM0t9r> z4I03x6M@x;%a4JAj*i4hT#l3QxG5y5R)(u-e5D5S072YAE80~8dXClz&EzUYR)16lMQ60)e2M@dJ!Cr!AeAR z8u(GXaLdoZfB{QQdO03vC#PhKbh=+_?0xXJd^K zE0+i|8p4JR?-x25GEUd{4fJf2geGDw>X5d;QSHPd8drz1Ib^J4o)1M;DM7&DQi_Dc zsHN1xNrE6rWjJINj-&7a7-Zjb5QEteGFHCKALfK}3Puj7UPx9ZZBql6#Hd0k5e^xY z5v;_fC0&SlP(~80^hTYV3 z*qiCxbfM=M9mpuOA^N01aSs=4bDG{buOlwcT%JkQ+*$*O?A#$85H;hwrA zt{nNiqM!%v8v$sC5iFT6Fv7Y*fR51ujEC?(;W7k^GjkTi)z%GX5;4dsjS{D0l?02k xv611?Of(*)#8o67iAT~bfm3XZ?)ixKB{D^us24=nVkSu#K{jvRf_GzO{{j@8WEcPd diff --git a/dependencies/libarchive-3.4.2/doc/pdf/archive_read_new.3.pdf b/dependencies/libarchive-3.4.2/doc/pdf/archive_read_new.3.pdf deleted file mode 100644 index 34295f3bdf8bc5e22aee7da5701169b1a5f831f1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20025 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 nB`nS@Bq}WMKj+XvJeuU-XkhPnIheuR5N diff --git a/dependencies/libarchive-3.4.2/doc/pdf/archive_read_open.3.pdf b/dependencies/libarchive-3.4.2/doc/pdf/archive_read_open.3.pdf deleted file mode 100644 index e9006e5249f1408b00012c4afb500252e27dfa54..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 30019 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 TzXv502@!)6b8#tZC=ve;mKx`H diff --git a/dependencies/libarchive-3.4.2/doc/pdf/archive_read_set_options.3.pdf b/dependencies/libarchive-3.4.2/doc/pdf/archive_read_set_options.3.pdf deleted file mode 100644 index cc6694e54fca8e85cc110cf0c92735ecf12f88e2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 27582 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 PP7;PuNJw2*gYmxrCfb^b diff --git a/dependencies/libarchive-3.4.2/doc/pdf/archive_util.3.pdf b/dependencies/libarchive-3.4.2/doc/pdf/archive_util.3.pdf deleted file mode 100644 index b9a906029686b85acaf382f3db1809472fd570db..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28801 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 diff --git a/dependencies/libarchive-3.4.2/doc/pdf/archive_write.3.pdf b/dependencies/libarchive-3.4.2/doc/pdf/archive_write.3.pdf deleted file mode 100644 index 326a1f09725d01d40bc5ad364fd0cdb82f537c73..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 37610 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Μ1&%HE%Q?!+rI#w zxX-oI<7%axV?j^&r47p8DX5z``3zJ%M`K21A!o5^@PhNaF(vUAuSjJfv@FK4JQzp1 zUEMeFI&}9I*9&2zm57N6u)fsM>p1PXaV^h2 zzcCuX%CP4|;2R?n`lHCbEL-;$Qgf9`4zLS(@K80el4($!uUE5y8jhM(l=~?l3bCg5 zpCE2NcVNvMi%YRU`!%;l#5wVi4eyj7_?zE%wXVADMO-{w9))l4G}B}Q`;v}BTd0(r2$-3LYwCeH_wP(+JdeHT|!2sIiw}2_%G`#b!n`TKa zAL?mw;_X%(p*=YFm|&&mRd)J3EAM(nOOIG8*-DLZaa>+uig9u3b%a2&9(g;sKl=iH z6j6Og@^{-GL~a>hZM-0LU8B)avoc7E-{|OQYOk2p_Sgvpcp?r~Q;-v|T;&Xo96*3{fPcL?YwAk%VQwbaw#sPmYr4}=P`z5MmqotsuG(m- zt-`Eg*0w%uBS61!PN=T-wG z&70qJs>ceWGsjW=B%Ob%`{{)k_wl}dvun!gNcq;9(7pJnOu>q1@UsA;4X)c# zUlNq}V~Ph%ghmG);4;A`ox`?ij~A7E)QQ#1EbkM_!i~#!b)C-3YRXD{?BwrP-U{>D z3z|yubL;aC*v!6^?q2oWEo1D7O3RcM&tO>dwhP&a$Rtv4RfS6DrluQ@caLO1lum`#>5R zv2>2(TWqf&Vmr!7@ zQUm3RlMB=^suwysP|;{NLYIO|N#;)KKsFGD5bSpraX)qM5pt9T}#k zmWBv5{}E&ILeP67nAFntTyzt?UCz7XhVJ2p-sYat=B~E)UFyTr8r4Hb;E#`)AYiaW zc`dRt)RA9v?4+%&arR&QMm~?-L?A*Cfe9i7=1V{nNBBuv*qeA{`C-P$C#A*f#-yjI zZY8ItD`}K(q-Q5refUtmp$>c}o*F?JLLb9Lg^rG{rnSoDg^oUhK7&z@?u4P{`)Z=6 zpE6iHtTyC!Gl~==*hWa2`^Hw|c zHX2G(+*;6hJR!;bs%>%R2XUSV_j=viXXs;9cC;_;}?kSdHO&w@3Sv|PSrE~=i)Jt+({bUFquJ3QwMbNj4A0t-eN^{HU3HdoKm(JX++HGW9`A@AQOR=BWf* zSth-{pr;1`ael`%|8LUh@62HT9gEPvA&>e4<^W7Ynx9;603g(XjgjS_Co%OBgjNJ^a z^sRs5CjMKz#Lqp;|3XXHm;=EQe_=HGpV1R`R?d!phenvY(fth`@xK5@{Gvzw(}eRU zuBrcbU<3;jBj8UnPNo{P60&JyC2DJ_(ux_ZdBmznWSAtr#Y)rLFid`V1c-0^Lc#!) zG#vBRMV~vHw1UMxxG$^CpCiA0xF;WJ7Ro#zrZrq4y&SJ-&mL~?YK^tnA0Kny&+Ogg zo9$Y8UOo4|UyGA#)FuxV>S+}&Z43anMR>&>zfZovbKZnnAl~qNy1~HrVV9u-Qm^ z@Wru(Y=sgHERRNKOL##*!UnoqvH*bc>uLx$21jQ$(8Nc;0}*b&37V{tW0y zd>Ws-JW@$w0yhfZaIrG7=xrXc5}JezyL{t}=nP0$E^{E_f@ zzK5b$aSO4FQEC`ysDwlL=mqVv735;E_3N^W|0#Eg#uE~bL=&To6u4vLtv;Shq%qJZI-v)F@w8Rcjxpg2zeWPpu5acSk zSqpBfpZZRTjYcU*M}% zUNO>0l#oH8O;4-W&Csjzu&r32l?smJ;1{hg8-``x`=`e|hLTy^S z7tnv}_=csBwXd$$70SRuP%xuC8N!Wx=rokn%`nb${@o9=Mqk^9MQj($tq9}h`>NjV zH`w0paCcuVhcu}b3+eW~J9r%*hA5_k-)DN>?}k6$>rjpFT_0gW&%~d?=Y;sH%TZPo zl#NP63?O@z13@-#EOIXS+EL;C8m3nFnw3hODfNYmU>lgn1_~6~EzpTLbjd+^A^_=Q zWa-2-;{Z=K-4O`vyUOo~KYY2gVR3YPzDU!FEDDmaF7SQykNuIoZf4JVeM?010f3%9llztfhDsE#KdMZ zHJ~bPozOghFA&ol@m?fD(1tp(dfdSX0Stl_=-1PScT&6>cUn$gg4awAa&k{fV1=g1 z(6X0Tg4C*g9BV8OoE<=5SVOu9xo>I9AYt0^a6vVD%y?z=*OR6~xA=$Dl^CLsDT(;6HqRh8v4$upFnh>Fp{l?;$AYmf+5 zyj4jDUgr4L-do)33CT1!&T}$ffwZYZDicANd1|j<^ft8+IgK5BTp7(rT7s|ChN!7;Y30~UMIxHur&W& z)E=8+-*ssM7VyRE>TOTnMNsrNt895oF-DzwwU0)5c2!ok3%PZnXwQO8coRN8_%1$X z6%N~t&XALzYe+C!N^9NxTR{`+f+y$JEja7U;c_k8WfZ^h&mTve5E(cbI9OOH0NBk< zhe{cEH zONxVcs}S=xX7(0SGpvgA=;xSf>0BPoxC<)BZ|Swvyi=~;wGea=F_CE%sZn7ev!^iF zuUK@Hfc97zdOO2v`UJIbZw3h_uFnd}_5QYLYSfp|liyP>lKpY`4xOYCsURQv*#PVT zpgtUuDRz@~$7k8!$ngzNfRpHIuE)u+j!x`(c<#y(8#hFPC_H?_8X7uJk+Wl>z?cm6 z*-dof{2b5o)5G1ZTp`oG?6#-J)uXYG!q7@pj%{N$XRk{k)d}Gz@5y86uJUqgqzZ_l zJH8Vm;T!-JD0^ynf?hdz7H7B7nu^EQqZIkiCt5k73r!M=W-rk75?zn;;qSlEH>|2G zxs!G+Y!a~7_LR#emb9AH>2>LPWxOKdWxg$$622kM;DC>kkoC@4&V;2pz#A%ApNb|p zo@A4>;9mgGP8TDnBkL~+)uTQqTkeUrce4z%kHb4S1l-pV`S06CYL<#kh)sV+1}x^# zQUP}rkSlsBIxEeGEX);NC`-ti==UeRC<`^<4A5ZbC72iLYTsQ)IxbJ>5K8@+b9oh5 zKVT2Z#9H_|Gv%=}ep&eLR7ajsJR=Z$y>IpVnfinLIpBoOhft!H?i5lNGF>aGTSVT#kC|lY>`1jMz ztc5i=U#AA(Rh+J>KLs%?U`&2dEYK(u5v5(*7wpxG>BXPodeo?}LsrfIc20ET&n{rV zpeYfyh@~)QG%EZ}$D@@yJ%Oofg3Q)-x>hkudY{PVE?B2(T>$R@I2qlmj6{u#!1k)p z80bIgD|DH#MQ8AM{f6OU+ONs|lc8D2{ zi9`b=UqY8;*<%`(zZK4a!o~0JsQ4<2>faU+1j?hRVSqAAyCqC!&V{MlO>4*RF&4HI z(fm2Wdz}Q~`>Rf|>CAb>ANh`1C%G14dTyM1Y&tj=)Wz!l)Z6c2Wu`Owqkx2=lv6Mn-E+2d& zP{TIYgQqhail7@An}NIAUVZo1=o^50*IR-fHW?u&y15U7bFIyTC<$(5t^@bF!-Qe0 z@>I3e7B*xu4p=Z(?!SLfSY@dy0 zpRai39z-0JnS9`=1%=YloeW{XA&|I>yi;f9886G9dx$R&t=>9#TUNel`pvFY+xQY{ zAa#R?P}O;3^f1K$^6C9Y-^}W5vOIhEleclQe2<8&tT>1xavmlwtttq}XN4Leka^~+ zaXu!}jfwEKUf>eZzwi1Wp!XVYt zwCj_|{Q>brQFsAzvJ=)8GYhEv3i0IsLb32k=#j_4=u_;cu#DE=rd>T>lrLx*d9t{c z?Vi;Xk%}?UAM>u8=(p381$#cZ3-5}s?L{P!`O(C2t6vAo&=>>ipW2q}*_FXNXzF*B z-Kx`5_z{)jN7ntPE{8HrPglg*er?gno}K$}`LD_pmTgfJXB^&H{fLEnvG-dLEz~A~ z&)Z1jtc*b6Jzn0iCnPGY9?nb?BYz7T#v%p8MfFg!%I&Om;)<%awz4uTb1&P~C-Fyb z8KMBdM|E1aM_DJE$=4!+in`EGQXcbJBS)Wmo=)2&-skofi=fYL4Hct`i!|VuiEsOB zo8R=ZqlwUHA+?Ql5m9*s?)6)B^DvFEgN`+^Vr#!5;SPFJovjMVLIqzCg-3H$@)`@M zE{JX~59KG_`;?)?7)tIn=t~_Z?n5pl zk{UDpa&p>ye>-bPG|(rnc>1p9F~hBQ!vhl9;+deWja7r%7>T=g)?t<#OSo(+rP*U> zvDFgtY3&~mhI;Lpmu=rN*`N!7*Wd20f|r`SM}Vv{(=gNz&=9OO1=LmwfB|5uwf1)hz^Zy?s*6 z>%*dqu9p3PrL>!$PYmIao0&DffpN5-oREPUJr&3DY;I%_t*30x(npEq1IfNq#4-o# z-8&=?_2&$Ni#8{~cZSzsx^sf>m%4P!Z`U+=G%qmUv#8iwk{6H8qvT373TPvq<7}K4 zbWfure^#&_iyEIZlLwWUv9zqcH?dXB{gBjt&2hM{AbiuNpoyGW^_D84OgNG{hFetO zh|uELQnD$JD2bg9v<>3ws>|N(u&4Rv#wme%T_a5)O*JlAGv^aeaKUNG!f;rQe3|uHKDyhR-8phDM#NxgU1*PVFXgCL z{j_Po7w_7hCUx3+(@HHYXwne&HUz|6&fLjMN=Qlq8RjTu5Mv8ka0v>M)G@{0w2v9v z`1@@{37UTB1`bbwy}(D^Lq^EPbT(|6Udo5q2*#ZuVx$umU%W3J>lkc&o++#f+;U&drYqXWZ1O0TVzuMsL08^IsQP2;|xZ&p&jZXujO zbFZ&_1dr1#PmbWZrmwOOt2`ZkGTtldINWKST2+^EOhq?yAXS4OrwlQp6 zi3FY`x8#1|fz8OklYLzF;qLr#bhYGojfq^FoXwALKZv^So)!MxbX;S_>Cj?yQKjGn zZAI_-VvEt$b&_Pd&?BqMeS52=4X5b|8XXZNeX|<_iw8Z+zNJLWpD|W-t0#odr|GcF z#kK4Lh zmh3mH{K6VoXgK*YViNCQp`)~;7u+T3R=qE73(}ipAK{m1&_S|DV-Quy#gi}961K#h zAgp4J(5LoENX!)s9g#!XlsJUl(p2+kC55hp^2NtPrF(Ltn1qx&ge_~7ICK(bp_~xc z@Mq~;hDnYbjD()zRxpVI*w@gq_Vag%lWi)hg~+N3{kXcwN-xlE@c2f|hujs-aKr*% z6Yzu#aKQ7}T{Dv7Q{zJ!ckNNcSx{O(FDXE<3062ED%tzyZd%R*f^bNt9P8~TV|#Ny zfoM!7?@Koo-iMCh_eIo)K6`JOc~ z4eZ$1Ltsk-?w;MiuOOhF4v{ck?+pG?_`$G}X)TF0DFvF3^+WZNDW8Lew}}pEoTZ$G zNDzQ*lwmZ2V+y$tV``H{XD4Ks&e=l*b81LlMMp%(#3sp*AM*_oN^Z}}XU{j(Y#yUQ z*|IQpFcOmC;ZD8Ua|V!JenF>LPGFLaP=_qWd*>m$f$Z+;!V>V+upj-`a&@uRbb`+w zgf~n##-rSn`F*? z!U4FT7gWFCkRQBE=_+CZnQ(zBZ*ZRY`5ylk8^F*fuCzEd!UXosZ=Lord_c17H#a0Hty>Y>AqNQFc$WMGPX z=VFLF@ecPRyka+q7d$z7S$A}{{ei;l>=RN$WMralE>STWuvtVZ55O)IZtc8JL*<>(wY1uN#o29{3^|_!VhtZo^G>-quBiZ*Ig* zrph8sFKs7iY-TRz;b5%jA){pIVQI*2M8?Yl!^Nu)6umd5anrY>F)_CSlHxn!16ldG z2?Z6TLV3mf12sY@PD~DS#p!9Nz36o+1grJ zngb>JXxV8QfFuai_$CfO0RdNA2TObgS^ydFmJUWH911{@zdvpWJmV%ab8@odprdnj zb)|J>qP2A}rDFhYh@+!tq+?{H0ea9ly4yJEyV2M<5&_HmRS|Qwe}&mN(*CLwEpVeD zow*tv11&w>KMVRNg{ir%4gSx9^$l#Dow&)Ioz0Cn*jY`OSWJuzXxLbojAx=r)vJCJm3XjflR=503LAwRSb=s4UHYR$wcL(@I}pR z9i9Hr3&UrpWdxAX{p0cfQ?&y2&A)F2V2A#r8MuHx9MV8RE)#blpy~k+BRwNM4Lu|9 zag`VuIat^@nCUgR=>Fye>~~<4;4hto{~_v6PJfEBbx;Bh1RhfdTN4v}7vQk^+5QZ) zjEuBQe-!pB>>plSbU%CMPi^v_ZY6y?Y3cuaJ6T)*9LPWYID~8sovneo6yievn_=>w z?pY(le^uDd*}>{pP8b=|0hf|~*3A*vxeUM>8yRw#*g61pTYy<FFKh67nyi|WgNei(;o*`=07ut!%E-Al$*?r#>m)2-`UEEj7Qn#m$%U$y~FD*Km^I(ZA^flpq0Os z!Nm5vjrn&!04vLHv3e1O4y)0b~eg{d=7m*Z@EQ;=k5~5jbFev#~L;{k>fn*;#(?OEzZq z-|~o^neF%S_ftmhujMiUL;qxRa?l6L1~~w=iSg+a%{`2PIgJk#Nw#&u2UY}M0iRCX z#>5u?=S&1tNfsBv*W}`77GY)Qr>AG(XJTa*q8AbZwji4j0Km@1D9p;hD!}tUduadE axpj2XcX0YOkuU+6f$~ZuB*L;HF#iW|2fsA{ diff --git a/dependencies/libarchive-3.4.2/doc/pdf/archive_write_blocksize.3.pdf b/dependencies/libarchive-3.4.2/doc/pdf/archive_write_blocksize.3.pdf deleted file mode 100644 index 61078a560f0908f34488b77df2493672a3f50f3d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25771 zcmce81yo(hwry~i;K5yj9NdDtyIXK~x8R=O?(Ptr;7$m^EfCz@LU8>Dl1``l_Py`^ zH~#qJu*WW!S*vQ#TD1x?IUx~R20CU~vcCPu99R}YdO{n0b674efRvH7iK8hYD= zAYx|eXkoy%(xSg+~g-?!B|*;bGj(y3FyJZW-5-jynV|#C>6#h{oWN9-Yw7W z+jm@2Q4|kJ?Gw#4yZ{nM#Z0&D&HXK=9DL&Ms_wyy@0a;#ywwhdPhWuxqY2OVF^HBn zGfj6_5oAquCo^fb-R!O2TwMom=(D_T=Wh4B7@AroaBw`hoR00^eQiQ|V!Q1hK81n% zS#?q8P55w)bi7jJ_8ZMSX%!5XYgVdRQdJvpo^wCG_7fCU+k_lt*fG?RfTQc4K0P!- zwvc>|Eq!uX_Y*7_`ZKq(JNBjF4KUaE*+D^EhDc&euV|>4m#ssGz1P{Fv8&pi54nGz z32|@5oN|v%+>yP$dvBY*vGb{N#Lg5SZ?^2U%>=?Nav2Y%g-Y4?JZqV+1#vt^nmn9V zjb5{ifwoEjcPReE3vcH)m;$DiqCsHeLp|@yp6?ek7LBG4 z63+xbSH`{oO}{V`NkVd9{_cIS{&ka`X_KEFpZn7=+9`c|@tj*o)saUAUexUjB?Mf+ z_brKnD(12m`8P|MBKNh+k=9TE?^_HW)-Jc`%8 z_a^(^B@@YsLlB=+I1;k+5u5JP-RsP{@zT1kp~W=?QK#H~I_RAiipUr2&NvINRut** z6iwea1SOMp=*chorG|pnFrzdNZ%J}^{WdS5fy9``9I6TI(AUWy@4?WY&~~~X+baH*=?Y-PSGqQjf4a_ ze{qx^FxwA1Y}IQmz!%Mh|4KZS4O&XTe%zCh#;Z}WKnwdiDR6#sb)}TD#8e6++r1SgP{q;_qckdb4H(+>Dq@CSTTv%VnFE zmqSE-Wi1t&{UnfXDVZYzLuhW85Wo;%wRv2%U+6bW28kV2KSdhw`J>*lZVd8vlcF8fNWcJC6XC-D!C%XCvQf%Eu1A9?OZ^lFsiSkNZz)8zgk%vR;1@&B5 zbB_iOgI}?j;2+^3hhuX%kIE)yY0ATxuChv^PEmh#W_f2!Qerc}s!Hit+-HmI*j!j> zBF3sAn}`3=L-`UJg*99rk6Fgzo$PdPWlrQP!bPX>?H~Q7D!XdidcOxxAv>HVi}@bEJnI zxBLMijgLi>jm2s9rJ0oIwo2rv54}1r^3#M#5{5dA$C~zPLiLE}_pc2JV^JH%l(cB0o z-os64l|G~SY}oON)3W?~k*WhU$4PnK#OS9F3nfiBAxiRZt_V-Cb3rwRRS6O>w>@@b ztjYCEHF;k>&=YtU*%ou0G+v;>rXXWwfu`spamT#DZ@(S*8p`ii&Xi?$RDvR{iB4hz z-_h|(rt-BUpq--@#&g(g-b@fgQ!)kAMn+y8kBBHh5(aIqK-a1*v)p)#q{i7ZVi~PB zvlY}^Ci`{J404~P)+WAAmO^g@n-y8$fln9A7Jb_S1-M6UB#kDRyt8K2T8!Y9HQ$RC zX_03ya!UF_ZpDh}8KLE4(f(%Wp>;;7oCpH;=D70#ElW{|TVRUmQ^$T<#LFp9r*oIf?>OFE zC9_7>hCdkt(DleN9=XNin~|QK9rkA!BjdkN5Jsl|hJ(b%+SsJhBY#}_PIX8o)_b;u zrNc@)Rc%xvGD=>a93_|*N9Fs4$m-(21gsy0yu9?bE9NL;X<==G8$<-W^3|QTW$S=a zm;08UnujdDng8hPUW|{)(joJL^(UMNAmaQV;e{CtH32=8`nc7YBkd9uyi#rCS05Z> z$gW)7UGB_SuQEF3O}-O;@^Tl_CrvUkl++v*|5$^QlmM4I2xwSP6;}K*g~(HCUcp-K z#}vSEM0!N!l#DX}0gtgODhgKspJT8!GtZ3A08KRQ(q)I{GWrcyRX=?|K$Dd3s_Xjh z!VO!K{DugCA4d^~ayNg`w6K2hJQ?=LxI zM0#&Hxixs_w#-T3BM?E-!|=+L*Jz4-iKU?I%a)kHw;dYI<6U|o<}}df=dY<;uE4`Z z4%)A4NPSCp_TS4Uc!zh`#Jy0uGYA;;f9o6bjs|C<)4L_9dhAMu&20g}*az+Mlc5a* z+eS`bhM>riE?VS|4E)GF;+J%hVk+R8)X!=9+{2X3Md)ZO&Hay<(@c|r=fs^=HFxbe! z#>w8m$N|Wc8YQ6S@EKNMiK34tX!J@);v+dupGw=M#c=sD_H+L-)N(odMBjU4q1 zfiZ+kKLY+NfbCZko?7rH-mm~!IcY)$9-cpHdW8QcnhI>NkNFh-EaquE{)lCuhh=yg zAAkZoEc;_ZfC5l#7@qO~ovg47KQ==O49u_$Pn`sYGQu)Eu2{bp`kRFPLzTa6u@wHN zD*v_crxyNfv4Ea~(W6)ajgBg-Qe|KSJwAL1VK0pr<#qQlC{ z_VoV4{Ua9>`{TIKKgDt|Gyh1z#tzH+)Y8YaEG(>l$@`cZ82&i7tbyB4GiwuIQ?2=} z9n60D6`k}QA7}KVOadj~4`F*8%D*Efqo^XHApH|D1sf|p>%T+xG;RN9#28qZ{{v)9 zK*4={9vlA%=%f1ySXdT%;4(z87_{OR`_lz+ha2-G7)KS2Ib#}mZBaCRWL zk8a@eG)Rwmp5O$={R}631pTq>AAtX;2iP89dS+nEW6OSjKbHSTYZ;%~_2_$au>qf- zF;9K^(Z|Q(eT@Ah&tt8BxF5^?*{>%d`Q`o<%0Le+90<=-_kgaaPW(05VR7L0Cr9`jz)(1mX=1wj=wziW+tYN+JDO6(<1VBA>@}+RZ-WV1}=~GW=8gZ7eIy| zOVCqe|2}7#S^k`}3=F>}Eg|a@aF2lfbp68gukig7q<=~A50L*J4=nv>9gp?=sOyg! z{|xyN^M@b!hW(M|w-8|ae)@hJ%Kvs^KP|_92UXF{O5euv_lf(*-~v}VV08+Be>7y_tiBm7b&N?*j1KN8#7HEiEM@qrm@%0MN?nTbkK98U2eOJbjaY z@6kUm-VBTkzm}pOK>t2ue{=s21N{F-K>iSfUqbK?0`g~?r&RwNG5Kv^|Aby%L5yGY z7xe%5(R?Bu|2y3O9sW<@{}%fnx&BD=o9~ZF^5=Bn*TQ=^fx~Ew;Ax{mC>^@`Zq*J07%?{yqy+EwK;&Sla+%}`%zJC;y}m> z{D!c@0{9&a9?3f}0?51dY{iToSLYwzN0Rgy2h0o$5C@V_GXs8W6H6fFhXp7)8d<3j z0#|)lfV7!|1CVk&k)y{iIItWbcLLIWN&r7V03Zku0tf@d0a5^IfDAwuAO`?0GXN!k zGC&2O4sfv5Gcclh>IG1bZUm$NPdxI^ufvo7=R)>F)Bd}n9oUfHiH+bNnt29xc6uJ3 zUpn}7WeX)mRqWQpC=Xevu!J(DBG&8(q%y|YViLqJP|#mK3qlE%!-A~ei4j7RrUYD& zaD;-pkynOv^+JIv%Xi9S4r{zAt}~aft(lFetFbf*uc@6)KKd9-;NUl$a>c!O-*9B( zeKY5g+0EF-13yshrTIOqTB19LIWT!~PI%Q)C2ftQjjFS0OYbmTL4IXK*Bj>i;vm(3 z5jLQ6I?D?(ZqU$Eoz-*gOa172&%s*^fKIiJV%hZO#`+<`)j_pOLa^bspiUc1=EX)n{z?9V-nzO}#mYjFh<55D=@=csQZ|~ZX?lpHGsE6sLbPXqi_i_z*Lf*>G zw2(2FS)9}(2PF^OriAKlGJH>l7@U*B`i^5vRrAg**ey|g_%=elGk}SPBv(++GZ}YN zlr`|Ki(;^E$3gWZAy4>Z#>M~0%&g&*oGsO2xoxd27!2gla^Ej$Vigi|FXH+7ORWvD zplPw<8O*$ukS|Ob=qhIO%BW=!@f|kSbbB3O4STu|E4&<{{#oyEyegP56IU1&rQbJp z>Q`gYiospD%AzXuKR|}disdqQw4!AqXA&TJLJsJ?xXqx{U7-28wNTNG236YW0-Lwx zl-ub4d4A1p7>go?8-&^OaBzVwgYGV=rI1jyc0N(M6>^SseeB!j0i>cMHz>6y8Sikv zm%BSv@?}fF<9AN3mP+16;d^sG^t?)prc$EUr2CJ zeX(c5ZnCJtR!xGH7!L{PfqL#u&-|5^wT63UW_l*{)tH{i-itupc-VC)T3$>1(Z&

2qY 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 Y4&+eSoVkWUVTfovc;iNsZKmM=0nwItNB{r; diff --git a/dependencies/libarchive-3.4.2/doc/pdf/archive_write_data.3.pdf b/dependencies/libarchive-3.4.2/doc/pdf/archive_write_data.3.pdf deleted file mode 100644 index ac5c443a74e458942aad23edef34dc2d0b6891a0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22981 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 diff --git a/dependencies/libarchive-3.4.2/doc/pdf/archive_write_disk.3.pdf b/dependencies/libarchive-3.4.2/doc/pdf/archive_write_disk.3.pdf deleted file mode 100644 index 66249b23abf1582f0c4dcf4e804a11d2367216be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 40388 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%0DB9) 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 GTs;AjsbBv9 diff --git a/dependencies/libarchive-3.4.2/doc/pdf/archive_write_finish_entry.3.pdf b/dependencies/libarchive-3.4.2/doc/pdf/archive_write_finish_entry.3.pdf deleted file mode 100644 index 62ab88d6f356ede4ff7c354e71f0da9119b6ef3b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23649 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 CX+F{b diff --git a/dependencies/libarchive-3.4.2/doc/pdf/archive_write_format.3.pdf b/dependencies/libarchive-3.4.2/doc/pdf/archive_write_format.3.pdf deleted file mode 100644 index e3d75a11b440dfe6a9c726e61c85f50ae3d940ec..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 27093 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 J8U~uI{|EPk#3TR! diff --git a/dependencies/libarchive-3.4.2/doc/pdf/archive_write_free.3.pdf b/dependencies/libarchive-3.4.2/doc/pdf/archive_write_free.3.pdf deleted file mode 100644 index 5bb87fbf59e2307f8c5c168f3fb577e6ba8c8b02..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22445 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 diff --git a/dependencies/libarchive-3.4.2/doc/pdf/archive_write_open.3.pdf b/dependencies/libarchive-3.4.2/doc/pdf/archive_write_open.3.pdf deleted file mode 100644 index 5e5bb7bc74f5a412b25c0955f1c830e2d9265f5c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 33186 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 Bs(Ana diff --git a/dependencies/libarchive-3.4.2/doc/pdf/archive_write_set_options.3.pdf b/dependencies/libarchive-3.4.2/doc/pdf/archive_write_set_options.3.pdf deleted file mode 100644 index cf7d87a83843a66f419000ecd0d0b3991d72c322..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 46786 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

6J|wV-7R-&-q}%w?e{XSm28%k=qTeihNS7x9hX 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 Qj0V=9`M@hoa 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≷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 h=NsW1cKrJhKS~$Dy|Jo&EI`WM*QDOLag diff --git a/dependencies/libarchive-3.4.2/doc/pdf/bsdcpio.1.pdf b/dependencies/libarchive-3.4.2/doc/pdf/bsdcpio.1.pdf deleted file mode 100644 index a9e916d6ca11fcc2f9aff1e7a0df4286a9e4c650..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 38939 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 GA^#ujq`z$d diff --git a/dependencies/libarchive-3.4.2/doc/pdf/bsdtar.1.pdf b/dependencies/libarchive-3.4.2/doc/pdf/bsdtar.1.pdf deleted file mode 100644 index aaa69779a2f236ed771b9232e6e980d9f7a1f5a5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 73601 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 diff --git a/dependencies/libarchive-3.4.2/doc/pdf/cpio.5.pdf b/dependencies/libarchive-3.4.2/doc/pdf/cpio.5.pdf deleted file mode 100644 index 4119aa53af717ca51a8fccd64d712f7c4a0584f3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 35885 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 P$-x9qMkXpR2LJy7AGr#k diff --git a/dependencies/libarchive-3.4.2/doc/pdf/libarchive-formats.5.pdf b/dependencies/libarchive-3.4.2/doc/pdf/libarchive-formats.5.pdf deleted file mode 100644 index a59642203e3a150f07759b364239ff9cf657fc6d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 42573 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 PfDVGdjve}@1_J*DQt4=n diff --git a/dependencies/libarchive-3.4.2/doc/pdf/libarchive.3.pdf b/dependencies/libarchive-3.4.2/doc/pdf/libarchive.3.pdf deleted file mode 100644 index 2bf16b55060e6be6113faf2c59ff948061049055..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 31465 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 diff --git a/dependencies/libarchive-3.4.2/doc/pdf/mtree.5.pdf b/dependencies/libarchive-3.4.2/doc/pdf/mtree.5.pdf deleted file mode 100644 index 9d8b5896f07aeacb3fc40beca838f1036f8b0de5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32340 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 E0MTFG7XSbN diff --git a/dependencies/libarchive-3.4.2/doc/pdf/tar.5.pdf b/dependencies/libarchive-3.4.2/doc/pdf/tar.5.pdf deleted file mode 100644 index 14d06c8549e42e73051ab9ee5fad66f4ff8b4acc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 69058 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 diff --git a/dependencies/libarchive-3.4.2/doc/text/cpio.5.txt b/dependencies/libarchive-3.4.2/doc/text/cpio.5.txt deleted file mode 100644 index 3efa5d1..0000000 --- a/dependencies/libarchive-3.4.2/doc/text/cpio.5.txt +++ /dev/null @@ -1,235 +0,0 @@ -CPIO(5) BSD File Formats Manual CPIO(5) - -NAME - cpio -- format of cpio archive files - -DESCRIPTION - The cpio archive format collects any number of files, directories, and - other file system objects (symbolic links, device nodes, etc.) into a - single stream of bytes. - - General Format - Each file system object in a cpio archive comprises a header record with - basic numeric metadata followed by the full pathname of the entry and the - file data. The header record stores a series of integer values that gen- - erally follow the fields in struct stat. (See stat(2) for details.) The - variants differ primarily in how they store those integers (binary, - octal, or hexadecimal). The header is followed by the pathname of the - entry (the length of the pathname is stored in the header) and any file - data. The end of the archive is indicated by a special record with the - pathname ``TRAILER!!!''. - - PWB format - XXX Any documentation of the original PWB/UNIX 1.0 format? XXX - - Old Binary Format - The old binary cpio format stores numbers as 2-byte and 4-byte binary - values. Each entry begins with a header in the following format: - - struct header_old_cpio { - unsigned short c_magic; - unsigned short c_dev; - unsigned short c_ino; - unsigned short c_mode; - unsigned short c_uid; - unsigned short c_gid; - unsigned short c_nlink; - unsigned short c_rdev; - unsigned short c_mtime[2]; - unsigned short c_namesize; - unsigned short c_filesize[2]; - }; - - The unsigned short fields here are 16-bit integer values; the unsigned - int fields are 32-bit integer values. The fields are as follows - - magic The integer value octal 070707. This value can be used to deter- - mine whether this archive is written with little-endian or big- - endian integers. - - dev, ino - The device and inode numbers from the disk. These are used by - programs that read cpio archives to determine when two entries - refer to the same file. Programs that synthesize cpio archives - should be careful to set these to distinct values for each entry. - - mode The mode specifies both the regular permissions and the file - type. It consists of several bit fields as follows: - 0170000 This masks the file type bits. - 0140000 File type value for sockets. - 0120000 File type value for symbolic links. For symbolic links, - the link body is stored as file data. - 0100000 File type value for regular files. - 0060000 File type value for block special devices. - 0040000 File type value for directories. - 0020000 File type value for character special devices. - 0010000 File type value for named pipes or FIFOs. - 0004000 SUID bit. - 0002000 SGID bit. - 0001000 Sticky bit. On some systems, this modifies the behavior - of executables and/or directories. - 0000777 The lower 9 bits specify read/write/execute permissions - for world, group, and user following standard POSIX con- - ventions. - - uid, gid - The numeric user id and group id of the owner. - - nlink The number of links to this file. Directories always have a - value of at least two here. Note that hardlinked files include - file data with every copy in the archive. - - rdev For block special and character special entries, this field con- - tains the associated device number. For all other entry types, - it should be set to zero by writers and ignored by readers. - - mtime Modification time of the file, indicated as the number of seconds - since the start of the epoch, 00:00:00 UTC January 1, 1970. The - four-byte integer is stored with the most-significant 16 bits - first followed by the least-significant 16 bits. Each of the two - 16 bit values are stored in machine-native byte order. - - namesize - The number of bytes in the pathname that follows the header. - This count includes the trailing NUL byte. - - filesize - The size of the file. Note that this archive format is limited - to four gigabyte file sizes. See mtime above for a description - of the storage of four-byte integers. - - The pathname immediately follows the fixed header. If the namesize is - odd, an additional NUL byte is added after the pathname. The file data - is then appended, padded with NUL bytes to an even length. - - Hardlinked files are not given special treatment; the full file contents - are included with each copy of the file. - - Portable ASCII Format - Version 2 of the Single UNIX Specification (``SUSv2'') standardized an - ASCII variant that is portable across all platforms. It is commonly - known as the ``old character'' format or as the ``odc'' format. It - stores the same numeric fields as the old binary format, but represents - them as 6-character or 11-character octal values. - - struct cpio_odc_header { - char c_magic[6]; - char c_dev[6]; - char c_ino[6]; - char c_mode[6]; - char c_uid[6]; - char c_gid[6]; - char c_nlink[6]; - char c_rdev[6]; - char c_mtime[11]; - char c_namesize[6]; - char c_filesize[11]; - }; - - The fields are identical to those in the old binary format. The name and - file body follow the fixed header. Unlike the old binary format, there - is no additional padding after the pathname or file contents. If the - files being archived are themselves entirely ASCII, then the resulting - archive will be entirely ASCII, except for the NUL byte that terminates - the name field. - - New ASCII Format - The "new" ASCII format uses 8-byte hexadecimal fields for all numbers and - separates device numbers into separate fields for major and minor num- - bers. - - struct cpio_newc_header { - char c_magic[6]; - char c_ino[8]; - char c_mode[8]; - char c_uid[8]; - char c_gid[8]; - char c_nlink[8]; - char c_mtime[8]; - char c_filesize[8]; - char c_devmajor[8]; - char c_devminor[8]; - char c_rdevmajor[8]; - char c_rdevminor[8]; - char c_namesize[8]; - char c_check[8]; - }; - - Except as specified below, the fields here match those specified for the - old binary format above. - - magic The string ``070701''. - - check This field is always set to zero by writers and ignored by read- - ers. See the next section for more details. - - The pathname is followed by NUL bytes so that the total size of the fixed - header plus pathname is a multiple of four. Likewise, the file data is - padded to a multiple of four bytes. Note that this format supports only - 4 gigabyte files (unlike the older ASCII format, which supports 8 giga- - byte files). - - In this format, hardlinked files are handled by setting the filesize to - zero for each entry except the last one that appears in the archive. - - New CRC Format - The CRC format is identical to the new ASCII format described in the pre- - vious section except that the magic field is set to ``070702'' and the - check field is set to the sum of all bytes in the file data. This sum is - computed treating all bytes as unsigned values and using unsigned arith- - metic. Only the least-significant 32 bits of the sum are stored. - - HP variants - The cpio implementation distributed with HPUX used XXXX but stored device - numbers differently XXX. - - Other Extensions and Variants - Sun Solaris uses additional file types to store extended file data, - including ACLs and extended attributes, as special entries in cpio ar- - chives. - - XXX Others? XXX - -SEE ALSO - cpio(1), tar(5) - -STANDARDS - The cpio utility is no longer a part of POSIX or the Single Unix Stan- - dard. It last appeared in Version 2 of the Single UNIX Specification - (``SUSv2''). It has been supplanted in subsequent standards by pax(1). - The portable ASCII format is currently part of the specification for the - pax(1) utility. - -HISTORY - The original cpio utility was written by Dick Haight while working in - AT&T's Unix Support Group. It appeared in 1977 as part of PWB/UNIX 1.0, - the ``Programmer's Work Bench'' derived from Version 6 AT&T UNIX that was - used internally at AT&T. Both the old binary and old character formats - were in use by 1980, according to the System III source released by SCO - under their ``Ancient Unix'' license. The character format was adopted - as part of IEEE Std 1003.1-1988 (``POSIX.1''). XXX when did "newc" - appear? Who invented it? When did HP come out with their variant? When - did Sun introduce ACLs and extended attributes? XXX - -BUGS - The ``CRC'' format is mis-named, as it uses a simple checksum and not a - cyclic redundancy check. - - The old binary format is limited to 16 bits for user id, group id, - device, and inode numbers. It is limited to 4 gigabyte file sizes. - - The old ASCII format is limited to 18 bits for the user id, group id, - device, and inode numbers. It is limited to 8 gigabyte file sizes. - - The new ASCII format is limited to 4 gigabyte file sizes. - - None of the cpio formats store user or group names, which are essential - when moving files between systems with dissimilar user or group number- - ing. - - Especially when writing older cpio variants, it may be necessary to map - actual device/inode values to synthesized values that fit the available - fields. With very large filesystems, this may be necessary even for the - newer formats. - -BSD December 23, 2011 BSD diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_mtree.mtree.uu b/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_mtree.mtree.uu deleted file mode 100644 index f1c9d60..0000000 --- a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_mtree.mtree.uu +++ /dev/null @@ -1,20 +0,0 @@ -begin 644 test_read_format_mtree.mtree -M(VUT7!E/61I<@H@9FEL95PP-#!W:71H7#`T,'-P86-E('1Y<&4]9FEL -M92!U:60],3@*("XN"F9I;&5<,#0P=VET:%PP-#!S<&%C92!T>7!E/69I;&4* -M9&ER,B!T>7!E/61I<@H@9&ER,V$@='EP93UD:7(*("!I;F1I7!E/61I<@H@(&EN9&ER,V(@ -M='EP93UF:6QE"B`@9FEL96YA;65<7'=I=&A<"E]E7!E/69I -M;&4@F4]+3$*9&ER,B]B:6=F:6QE('1Y -M<&4]9FEL92!S:7IE/3DR,C,S-S(P,S8X-30W-S4X,#<*9&ER,B]T;V]B:6=F -M:6QE('1Y<&4]9FEL92!S:7IE/3DR,C,S-S(P,S8X-30W-S4X,#@*9&ER,B]V -M97)Y;VQD9FEL92!T>7!E/69I;&4@=&EM93TM.3(R,S,W,C`S-C@U-#\n#include \nint main(void) { struct xvfsconf v; return sizeof(v);}" HAVE_STRUCT_XVFSCONF) +CHECK_C_SOURCE_COMPILES( + "#include \n#include \nint main(void) { struct statfs s; return sizeof(s);}" + HAVE_STRUCT_STATFS) + # Make sure we have the POSIX version of readdir_r, not the # older 2-argument version. CHECK_C_SOURCE_COMPILES( @@ -1449,9 +1458,13 @@ CHECK_C_SOURCE_COMPILES( "#include \nint main() { return major(256); }" MAJOR_IN_SYSMACROS) +IF(ENABLE_LZMA) CHECK_C_SOURCE_COMPILES( "#include \n#if LZMA_VERSION < 50020000\n#error unsupported\n#endif\nint main(void){lzma_stream_encoder_mt(0, 0); return 0;}" HAVE_LZMA_STREAM_ENCODER_MT) +ELSE() + SET(HAVE_LZMA_STREAM_ENCODER_MT 0) +ENDIF(ENABLE_LZMA) IF(HAVE_STRERROR_R) SET(HAVE_DECL_STRERROR_R 1) @@ -1491,9 +1504,14 @@ CHECK_STRUCT_HAS_MEMBER("struct tm" tm_gmtoff CHECK_STRUCT_HAS_MEMBER("struct tm" __tm_gmtoff "time.h" HAVE_STRUCT_TM___TM_GMTOFF) +IF(HAVE_STRUCT_STATFS) # Check for f_namemax in struct statfs CHECK_STRUCT_HAS_MEMBER("struct statfs" f_namemax "sys/param.h;sys/mount.h" HAVE_STRUCT_STATFS_F_NAMEMAX) +# Check for f_iosize in struct statfs +CHECK_STRUCT_HAS_MEMBER("struct statfs" f_iosize + "sys/param.h;sys/mount.h" HAVE_STRUCT_STATFS_F_IOSIZE) +ENDIF(HAVE_STRUCT_STATFS) # Check for birthtime in struct stat CHECK_STRUCT_HAS_MEMBER("struct stat" st_birthtime @@ -2036,6 +2054,11 @@ IF(MSVC) ADD_DEFINITIONS(-D_CRT_SECURE_NO_DEPRECATE) ENDIF(MSVC) +IF(APPLE) + # CC_MD5_Init() functions are deprecated on macOS 10.15, but we want to use them + ADD_DEFINITIONS(-Wno-deprecated-declarations) +ENDIF(APPLE) + IF(ENABLE_TEST) ADD_CUSTOM_TARGET(run_all_tests) ENDIF(ENABLE_TEST) diff --git a/dependencies/libarchive-3.4.2/COPYING b/dependencies/libarchive-3.5.2/COPYING similarity index 99% rename from dependencies/libarchive-3.4.2/COPYING rename to dependencies/libarchive-3.5.2/COPYING index 14bbefa..1b97235 100644 --- a/dependencies/libarchive-3.4.2/COPYING +++ b/dependencies/libarchive-3.5.2/COPYING @@ -15,7 +15,6 @@ the actual statements in the files are controlling. * The following source files are also subject in whole or in part to a 3-clause UC Regents copyright; please read the individual source files for details: - libarchive/archive_entry.c libarchive/archive_read_support_filter_compress.c libarchive/archive_write_add_filter_compress.c libarchive/mtree.5 diff --git a/dependencies/libarchive-3.4.2/INSTALL b/dependencies/libarchive-3.5.2/INSTALL similarity index 100% rename from dependencies/libarchive-3.4.2/INSTALL rename to dependencies/libarchive-3.5.2/INSTALL diff --git a/dependencies/libarchive-3.4.2/Makefile.am b/dependencies/libarchive-3.5.2/Makefile.am similarity index 98% rename from dependencies/libarchive-3.4.2/Makefile.am rename to dependencies/libarchive-3.5.2/Makefile.am index 41b2808..c93a82e 100644 --- a/dependencies/libarchive-3.4.2/Makefile.am +++ b/dependencies/libarchive-3.5.2/Makefile.am @@ -158,6 +158,7 @@ libarchive_la_SOURCES= \ libarchive/archive_read_set_options.c \ libarchive/archive_read_support_filter_all.c \ libarchive/archive_read_support_filter_bzip2.c \ + libarchive/archive_read_support_filter_by_code.c \ libarchive/archive_read_support_filter_compress.c \ libarchive/archive_read_support_filter_grzip.c \ libarchive/archive_read_support_filter_gzip.c \ @@ -223,7 +224,9 @@ libarchive_la_SOURCES= \ libarchive/archive_write_set_format_ar.c \ libarchive/archive_write_set_format_by_name.c \ libarchive/archive_write_set_format_cpio.c \ + libarchive/archive_write_set_format_cpio_binary.c \ libarchive/archive_write_set_format_cpio_newc.c \ + libarchive/archive_write_set_format_cpio_odc.c \ libarchive/archive_write_set_format_filter_by_ext.c \ libarchive/archive_write_set_format_iso9660.c \ libarchive/archive_write_set_format_mtree.c \ @@ -539,13 +542,15 @@ libarchive_test_SOURCES= \ libarchive/test/test_read_format_zip_zip64.c \ libarchive/test/test_read_format_zip_with_invalid_traditional_eocd.c \ libarchive/test/test_read_large.c \ - libarchive/test/test_read_pax_schily_xattr.c \ + libarchive/test/test_read_pax_xattr_rht_security_selinux.c \ + libarchive/test/test_read_pax_xattr_schily.c \ libarchive/test/test_read_pax_truncated.c \ libarchive/test/test_read_position.c \ libarchive/test/test_read_set_format.c \ libarchive/test/test_read_too_many_filters.c \ libarchive/test/test_read_truncated.c \ libarchive/test/test_read_truncated_filter.c \ + libarchive/test/test_short_writes.c \ libarchive/test/test_sparse_basic.c \ libarchive/test/test_tar_filenames.c \ libarchive/test/test_tar_large.c \ @@ -555,6 +560,7 @@ libarchive_test_SOURCES= \ libarchive/test/test_write_disk.c \ libarchive/test/test_write_disk_appledouble.c \ libarchive/test/test_write_disk_failures.c \ + libarchive/test/test_write_disk_fixup.c \ libarchive/test/test_write_disk_hardlink.c \ libarchive/test/test_write_disk_hfs_compression.c \ libarchive/test/test_write_disk_lookup.c \ @@ -701,6 +707,7 @@ libarchive_test_EXTRA_DIST=\ libarchive/test/test_compat_zip_7.xps.uu \ libarchive/test/test_compat_zip_8.zip.uu \ libarchive/test/test_compat_zstd_1.tar.zst.uu \ + libarchive/test/test_compat_zstd_2.tar.zst.uu \ libarchive/test/test_fuzz.cab.uu \ libarchive/test/test_fuzz.lzh.uu \ libarchive/test/test_fuzz_1.iso.Z.uu \ @@ -895,6 +902,8 @@ libarchive_test_EXTRA_DIST=\ libarchive/test/test_read_format_warc.warc.uu \ libarchive/test/test_read_format_zip.zip.uu \ libarchive/test/test_read_format_zip_7075_utf8_paths.zip.uu \ + libarchive/test/test_read_format_zip_7z_deflate.zip.uu \ + libarchive/test/test_read_format_zip_7z_lzma.zip.uu \ libarchive/test/test_read_format_zip_bz2_hang.zip.uu \ libarchive/test/test_read_format_zip_bzip2.zipx.uu \ libarchive/test/test_read_format_zip_bzip2_multi.zipx.uu \ @@ -915,6 +924,7 @@ libarchive_test_EXTRA_DIST=\ libarchive/test/test_read_format_zip_lzma.zipx.uu \ libarchive/test/test_read_format_zip_lzma_alone_leak.zipx.uu \ libarchive/test/test_read_format_zip_lzma_multi.zipx.uu \ + libarchive/test/test_read_format_zip_lzma_stream_end.zipx.uu \ libarchive/test/test_read_format_zip_jar.jar.uu \ libarchive/test/test_read_format_zip_mac_metadata.zip.uu \ libarchive/test/test_read_format_zip_malformed1.zip.uu \ @@ -945,7 +955,8 @@ libarchive_test_EXTRA_DIST=\ libarchive/test/test_read_large_splitted_rar_ac.uu \ libarchive/test/test_read_large_splitted_rar_ad.uu \ libarchive/test/test_read_large_splitted_rar_ae.uu \ - libarchive/test/test_read_pax_schily_xattr.tar.uu \ + libarchive/test/test_read_pax_xattr_rht_security_selinux.tar.uu \ + libarchive/test/test_read_pax_xattr_schily.tar.uu \ libarchive/test/test_read_splitted_rar_aa.uu \ libarchive/test/test_read_splitted_rar_ab.uu \ libarchive/test/test_read_splitted_rar_ac.uu \ diff --git a/dependencies/libarchive-3.4.2/Makefile.in b/dependencies/libarchive-3.5.2/Makefile.in similarity index 53% rename from dependencies/libarchive-3.4.2/Makefile.in rename to dependencies/libarchive-3.5.2/Makefile.in index a690063..ba651eb 100644 --- a/dependencies/libarchive-3.4.2/Makefile.in +++ b/dependencies/libarchive-3.5.2/Makefile.in @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.15.1 from Makefile.am. +# Makefile.in generated by automake 1.16.1 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2017 Free Software Foundation, Inc. +# Copyright (C) 1994-2018 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -147,6 +147,17 @@ mkinstalldirs = $(install_sh) -d CONFIG_HEADER = config.h CONFIG_CLEAN_FILES = build/pkgconfig/libarchive.pc CONFIG_CLEAN_VPATH_FILES = +@BUILD_BSDTAR_TRUE@am__EXEEXT_1 = bsdtar$(EXEEXT) +@BUILD_BSDCPIO_TRUE@am__EXEEXT_2 = bsdcpio$(EXEEXT) +@BUILD_BSDCAT_TRUE@am__EXEEXT_3 = bsdcat$(EXEEXT) +am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(libdir)" \ + "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(man3dir)" \ + "$(DESTDIR)$(man5dir)" "$(DESTDIR)$(pkgconfigdir)" \ + "$(DESTDIR)$(includedir)" +@BUILD_BSDTAR_TRUE@am__EXEEXT_4 = bsdtar_test$(EXEEXT) +@BUILD_BSDCPIO_TRUE@am__EXEEXT_5 = bsdcpio_test$(EXEEXT) +@BUILD_BSDCAT_TRUE@am__EXEEXT_6 = bsdcat_test$(EXEEXT) +PROGRAMS = $(bin_PROGRAMS) am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ @@ -174,10 +185,6 @@ am__uninstall_files_from_dir = { \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } -am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" \ - "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(man3dir)" \ - "$(DESTDIR)$(man5dir)" "$(DESTDIR)$(pkgconfigdir)" \ - "$(DESTDIR)$(includedir)" LTLIBRARIES = $(lib_LTLIBRARIES) $(noinst_LTLIBRARIES) am__DEPENDENCIES_1 = libarchive_la_DEPENDENCIES = $(am__DEPENDENCIES_1) @@ -234,6 +241,7 @@ am__libarchive_la_SOURCES_DIST = libarchive/archive_acl.c \ libarchive/archive_read_set_options.c \ libarchive/archive_read_support_filter_all.c \ libarchive/archive_read_support_filter_bzip2.c \ + libarchive/archive_read_support_filter_by_code.c \ libarchive/archive_read_support_filter_compress.c \ libarchive/archive_read_support_filter_grzip.c \ libarchive/archive_read_support_filter_gzip.c \ @@ -296,7 +304,9 @@ am__libarchive_la_SOURCES_DIST = libarchive/archive_acl.c \ libarchive/archive_write_set_format_ar.c \ libarchive/archive_write_set_format_by_name.c \ libarchive/archive_write_set_format_cpio.c \ + libarchive/archive_write_set_format_cpio_binary.c \ libarchive/archive_write_set_format_cpio_newc.c \ + libarchive/archive_write_set_format_cpio_odc.c \ libarchive/archive_write_set_format_filter_by_ext.c \ libarchive/archive_write_set_format_iso9660.c \ libarchive/archive_write_set_format_mtree.c \ @@ -372,6 +382,7 @@ am_libarchive_la_OBJECTS = libarchive/archive_acl.lo \ libarchive/archive_read_set_options.lo \ libarchive/archive_read_support_filter_all.lo \ libarchive/archive_read_support_filter_bzip2.lo \ + libarchive/archive_read_support_filter_by_code.lo \ libarchive/archive_read_support_filter_compress.lo \ libarchive/archive_read_support_filter_grzip.lo \ libarchive/archive_read_support_filter_gzip.lo \ @@ -432,7 +443,9 @@ am_libarchive_la_OBJECTS = libarchive/archive_acl.lo \ libarchive/archive_write_set_format_ar.lo \ libarchive/archive_write_set_format_by_name.lo \ libarchive/archive_write_set_format_cpio.lo \ + libarchive/archive_write_set_format_cpio_binary.lo \ libarchive/archive_write_set_format_cpio_newc.lo \ + libarchive/archive_write_set_format_cpio_odc.lo \ libarchive/archive_write_set_format_filter_by_ext.lo \ libarchive/archive_write_set_format_iso9660.lo \ libarchive/archive_write_set_format_mtree.lo \ @@ -459,17 +472,9 @@ libarchive_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(libarchive_la_LDFLAGS) $(LDFLAGS) -o $@ libarchive_fe_la_LIBADD = -am_libarchive_fe_la_OBJECTS = libarchive_fe/libarchive_fe_la-err.lo \ - libarchive_fe/libarchive_fe_la-line_reader.lo \ - libarchive_fe/libarchive_fe_la-passphrase.lo +am_libarchive_fe_la_OBJECTS = libarchive_fe/la-err.lo \ + libarchive_fe/la-line_reader.lo libarchive_fe/la-passphrase.lo libarchive_fe_la_OBJECTS = $(am_libarchive_fe_la_OBJECTS) -@BUILD_BSDTAR_TRUE@am__EXEEXT_1 = bsdtar$(EXEEXT) -@BUILD_BSDCPIO_TRUE@am__EXEEXT_2 = bsdcpio$(EXEEXT) -@BUILD_BSDCAT_TRUE@am__EXEEXT_3 = bsdcat$(EXEEXT) -@BUILD_BSDTAR_TRUE@am__EXEEXT_4 = bsdtar_test$(EXEEXT) -@BUILD_BSDCPIO_TRUE@am__EXEEXT_5 = bsdcpio_test$(EXEEXT) -@BUILD_BSDCAT_TRUE@am__EXEEXT_6 = bsdcat_test$(EXEEXT) -PROGRAMS = $(bin_PROGRAMS) am__objects_7 = am_bsdcat_OBJECTS = cat/bsdcat-bsdcat.$(OBJEXT) \ cat/bsdcat-cmdline.$(OBJEXT) $(am__objects_7) @@ -702,6 +707,7 @@ am__libarchive_test_SOURCES_DIST = libarchive/archive_acl.c \ libarchive/archive_read_set_options.c \ libarchive/archive_read_support_filter_all.c \ libarchive/archive_read_support_filter_bzip2.c \ + libarchive/archive_read_support_filter_by_code.c \ libarchive/archive_read_support_filter_compress.c \ libarchive/archive_read_support_filter_grzip.c \ libarchive/archive_read_support_filter_gzip.c \ @@ -764,7 +770,9 @@ am__libarchive_test_SOURCES_DIST = libarchive/archive_acl.c \ libarchive/archive_write_set_format_ar.c \ libarchive/archive_write_set_format_by_name.c \ libarchive/archive_write_set_format_cpio.c \ + libarchive/archive_write_set_format_cpio_binary.c \ libarchive/archive_write_set_format_cpio_newc.c \ + libarchive/archive_write_set_format_cpio_odc.c \ libarchive/archive_write_set_format_filter_by_ext.c \ libarchive/archive_write_set_format_iso9660.c \ libarchive/archive_write_set_format_mtree.c \ @@ -978,13 +986,15 @@ am__libarchive_test_SOURCES_DIST = libarchive/archive_acl.c \ libarchive/test/test_read_format_zip_zip64.c \ libarchive/test/test_read_format_zip_with_invalid_traditional_eocd.c \ libarchive/test/test_read_large.c \ - libarchive/test/test_read_pax_schily_xattr.c \ + libarchive/test/test_read_pax_xattr_rht_security_selinux.c \ + libarchive/test/test_read_pax_xattr_schily.c \ libarchive/test/test_read_pax_truncated.c \ libarchive/test/test_read_position.c \ libarchive/test/test_read_set_format.c \ libarchive/test/test_read_too_many_filters.c \ libarchive/test/test_read_truncated.c \ libarchive/test/test_read_truncated_filter.c \ + libarchive/test/test_short_writes.c \ libarchive/test/test_sparse_basic.c \ libarchive/test/test_tar_filenames.c \ libarchive/test/test_tar_large.c \ @@ -994,6 +1004,7 @@ am__libarchive_test_SOURCES_DIST = libarchive/archive_acl.c \ libarchive/test/test_write_disk.c \ libarchive/test/test_write_disk_appledouble.c \ libarchive/test/test_write_disk_failures.c \ + libarchive/test/test_write_disk_fixup.c \ libarchive/test/test_write_disk_hardlink.c \ libarchive/test/test_write_disk_hfs_compression.c \ libarchive/test/test_write_disk_lookup.c \ @@ -1068,412 +1079,418 @@ am__libarchive_test_SOURCES_DIST = libarchive/archive_acl.c \ libarchive/test/test_write_read_format_zip.c \ libarchive/test/test_xattr_platform.c \ libarchive/test/test_zip_filename_encoding.c -@INC_WINDOWS_FILES_TRUE@am__objects_13 = libarchive/libarchive_test-archive_entry_copy_bhfi.$(OBJEXT) \ -@INC_WINDOWS_FILES_TRUE@ libarchive/libarchive_test-archive_read_disk_windows.$(OBJEXT) \ -@INC_WINDOWS_FILES_TRUE@ libarchive/libarchive_test-archive_windows.$(OBJEXT) \ -@INC_WINDOWS_FILES_TRUE@ libarchive/libarchive_test-archive_write_disk_windows.$(OBJEXT) \ -@INC_WINDOWS_FILES_TRUE@ libarchive/libarchive_test-filter_fork_windows.$(OBJEXT) -@INC_BLAKE2_TRUE@am__objects_14 = libarchive/libarchive_test-archive_blake2s_ref.$(OBJEXT) \ -@INC_BLAKE2_TRUE@ libarchive/libarchive_test-archive_blake2sp_ref.$(OBJEXT) -@INC_LINUX_ACL_TRUE@am__objects_15 = libarchive/libarchive_test-archive_disk_acl_linux.$(OBJEXT) -@INC_LINUX_ACL_FALSE@@INC_SUNOS_ACL_TRUE@am__objects_16 = libarchive/libarchive_test-archive_disk_acl_sunos.$(OBJEXT) -@INC_DARWIN_ACL_TRUE@@INC_LINUX_ACL_FALSE@@INC_SUNOS_ACL_FALSE@am__objects_17 = libarchive/libarchive_test-archive_disk_acl_darwin.$(OBJEXT) -@INC_DARWIN_ACL_FALSE@@INC_FREEBSD_ACL_TRUE@@INC_LINUX_ACL_FALSE@@INC_SUNOS_ACL_FALSE@am__objects_18 = libarchive/libarchive_test-archive_disk_acl_freebsd.$(OBJEXT) -am__objects_19 = libarchive/libarchive_test-archive_acl.$(OBJEXT) \ - libarchive/libarchive_test-archive_check_magic.$(OBJEXT) \ - libarchive/libarchive_test-archive_cmdline.$(OBJEXT) \ - libarchive/libarchive_test-archive_cryptor.$(OBJEXT) \ - libarchive/libarchive_test-archive_digest.$(OBJEXT) \ - libarchive/libarchive_test-archive_entry.$(OBJEXT) \ - libarchive/libarchive_test-archive_entry_copy_stat.$(OBJEXT) \ - libarchive/libarchive_test-archive_entry_link_resolver.$(OBJEXT) \ - libarchive/libarchive_test-archive_entry_sparse.$(OBJEXT) \ - libarchive/libarchive_test-archive_entry_stat.$(OBJEXT) \ - libarchive/libarchive_test-archive_entry_strmode.$(OBJEXT) \ - libarchive/libarchive_test-archive_entry_xattr.$(OBJEXT) \ - libarchive/libarchive_test-archive_getdate.$(OBJEXT) \ - libarchive/libarchive_test-archive_hmac.$(OBJEXT) \ - libarchive/libarchive_test-archive_match.$(OBJEXT) \ - libarchive/libarchive_test-archive_options.$(OBJEXT) \ - libarchive/libarchive_test-archive_pack_dev.$(OBJEXT) \ - libarchive/libarchive_test-archive_pathmatch.$(OBJEXT) \ - libarchive/libarchive_test-archive_ppmd7.$(OBJEXT) \ - libarchive/libarchive_test-archive_ppmd8.$(OBJEXT) \ - libarchive/libarchive_test-archive_random.$(OBJEXT) \ - libarchive/libarchive_test-archive_rb.$(OBJEXT) \ - libarchive/libarchive_test-archive_read.$(OBJEXT) \ - libarchive/libarchive_test-archive_read_add_passphrase.$(OBJEXT) \ - libarchive/libarchive_test-archive_read_append_filter.$(OBJEXT) \ - libarchive/libarchive_test-archive_read_data_into_fd.$(OBJEXT) \ - libarchive/libarchive_test-archive_read_disk_entry_from_file.$(OBJEXT) \ - libarchive/libarchive_test-archive_read_disk_posix.$(OBJEXT) \ - libarchive/libarchive_test-archive_read_disk_set_standard_lookup.$(OBJEXT) \ - libarchive/libarchive_test-archive_read_extract.$(OBJEXT) \ - libarchive/libarchive_test-archive_read_extract2.$(OBJEXT) \ - libarchive/libarchive_test-archive_read_open_fd.$(OBJEXT) \ - libarchive/libarchive_test-archive_read_open_file.$(OBJEXT) \ - libarchive/libarchive_test-archive_read_open_filename.$(OBJEXT) \ - libarchive/libarchive_test-archive_read_open_memory.$(OBJEXT) \ - libarchive/libarchive_test-archive_read_set_format.$(OBJEXT) \ - libarchive/libarchive_test-archive_read_set_options.$(OBJEXT) \ - libarchive/libarchive_test-archive_read_support_filter_all.$(OBJEXT) \ - libarchive/libarchive_test-archive_read_support_filter_bzip2.$(OBJEXT) \ - libarchive/libarchive_test-archive_read_support_filter_compress.$(OBJEXT) \ - libarchive/libarchive_test-archive_read_support_filter_grzip.$(OBJEXT) \ - libarchive/libarchive_test-archive_read_support_filter_gzip.$(OBJEXT) \ - libarchive/libarchive_test-archive_read_support_filter_lrzip.$(OBJEXT) \ - libarchive/libarchive_test-archive_read_support_filter_lz4.$(OBJEXT) \ - libarchive/libarchive_test-archive_read_support_filter_lzop.$(OBJEXT) \ - libarchive/libarchive_test-archive_read_support_filter_none.$(OBJEXT) \ - libarchive/libarchive_test-archive_read_support_filter_program.$(OBJEXT) \ - libarchive/libarchive_test-archive_read_support_filter_rpm.$(OBJEXT) \ - libarchive/libarchive_test-archive_read_support_filter_uu.$(OBJEXT) \ - libarchive/libarchive_test-archive_read_support_filter_xz.$(OBJEXT) \ - libarchive/libarchive_test-archive_read_support_filter_zstd.$(OBJEXT) \ - libarchive/libarchive_test-archive_read_support_format_7zip.$(OBJEXT) \ - libarchive/libarchive_test-archive_read_support_format_all.$(OBJEXT) \ - libarchive/libarchive_test-archive_read_support_format_ar.$(OBJEXT) \ - libarchive/libarchive_test-archive_read_support_format_by_code.$(OBJEXT) \ - libarchive/libarchive_test-archive_read_support_format_cab.$(OBJEXT) \ - libarchive/libarchive_test-archive_read_support_format_cpio.$(OBJEXT) \ - libarchive/libarchive_test-archive_read_support_format_empty.$(OBJEXT) \ - libarchive/libarchive_test-archive_read_support_format_iso9660.$(OBJEXT) \ - libarchive/libarchive_test-archive_read_support_format_lha.$(OBJEXT) \ - libarchive/libarchive_test-archive_read_support_format_mtree.$(OBJEXT) \ - libarchive/libarchive_test-archive_read_support_format_rar.$(OBJEXT) \ - libarchive/libarchive_test-archive_read_support_format_rar5.$(OBJEXT) \ - libarchive/libarchive_test-archive_read_support_format_raw.$(OBJEXT) \ - libarchive/libarchive_test-archive_read_support_format_tar.$(OBJEXT) \ - libarchive/libarchive_test-archive_read_support_format_warc.$(OBJEXT) \ - libarchive/libarchive_test-archive_read_support_format_xar.$(OBJEXT) \ - libarchive/libarchive_test-archive_read_support_format_zip.$(OBJEXT) \ - libarchive/libarchive_test-archive_string.$(OBJEXT) \ - libarchive/libarchive_test-archive_string_sprintf.$(OBJEXT) \ - libarchive/libarchive_test-archive_util.$(OBJEXT) \ - libarchive/libarchive_test-archive_version_details.$(OBJEXT) \ - libarchive/libarchive_test-archive_virtual.$(OBJEXT) \ - libarchive/libarchive_test-archive_write.$(OBJEXT) \ - libarchive/libarchive_test-archive_write_disk_posix.$(OBJEXT) \ - libarchive/libarchive_test-archive_write_disk_set_standard_lookup.$(OBJEXT) \ - libarchive/libarchive_test-archive_write_open_fd.$(OBJEXT) \ - libarchive/libarchive_test-archive_write_open_file.$(OBJEXT) \ - libarchive/libarchive_test-archive_write_open_filename.$(OBJEXT) \ - libarchive/libarchive_test-archive_write_open_memory.$(OBJEXT) \ - libarchive/libarchive_test-archive_write_add_filter.$(OBJEXT) \ - libarchive/libarchive_test-archive_write_add_filter_b64encode.$(OBJEXT) \ - libarchive/libarchive_test-archive_write_add_filter_by_name.$(OBJEXT) \ - libarchive/libarchive_test-archive_write_add_filter_bzip2.$(OBJEXT) \ - libarchive/libarchive_test-archive_write_add_filter_compress.$(OBJEXT) \ - libarchive/libarchive_test-archive_write_add_filter_grzip.$(OBJEXT) \ - libarchive/libarchive_test-archive_write_add_filter_gzip.$(OBJEXT) \ - libarchive/libarchive_test-archive_write_add_filter_lrzip.$(OBJEXT) \ - libarchive/libarchive_test-archive_write_add_filter_lz4.$(OBJEXT) \ - libarchive/libarchive_test-archive_write_add_filter_lzop.$(OBJEXT) \ - libarchive/libarchive_test-archive_write_add_filter_none.$(OBJEXT) \ - libarchive/libarchive_test-archive_write_add_filter_program.$(OBJEXT) \ - libarchive/libarchive_test-archive_write_add_filter_uuencode.$(OBJEXT) \ - libarchive/libarchive_test-archive_write_add_filter_xz.$(OBJEXT) \ - libarchive/libarchive_test-archive_write_add_filter_zstd.$(OBJEXT) \ - libarchive/libarchive_test-archive_write_set_format.$(OBJEXT) \ - libarchive/libarchive_test-archive_write_set_format_7zip.$(OBJEXT) \ - libarchive/libarchive_test-archive_write_set_format_ar.$(OBJEXT) \ - libarchive/libarchive_test-archive_write_set_format_by_name.$(OBJEXT) \ - libarchive/libarchive_test-archive_write_set_format_cpio.$(OBJEXT) \ - libarchive/libarchive_test-archive_write_set_format_cpio_newc.$(OBJEXT) \ - libarchive/libarchive_test-archive_write_set_format_filter_by_ext.$(OBJEXT) \ - libarchive/libarchive_test-archive_write_set_format_iso9660.$(OBJEXT) \ - libarchive/libarchive_test-archive_write_set_format_mtree.$(OBJEXT) \ - libarchive/libarchive_test-archive_write_set_format_pax.$(OBJEXT) \ - libarchive/libarchive_test-archive_write_set_format_raw.$(OBJEXT) \ - libarchive/libarchive_test-archive_write_set_format_shar.$(OBJEXT) \ - libarchive/libarchive_test-archive_write_set_format_ustar.$(OBJEXT) \ - libarchive/libarchive_test-archive_write_set_format_v7tar.$(OBJEXT) \ - libarchive/libarchive_test-archive_write_set_format_gnutar.$(OBJEXT) \ - libarchive/libarchive_test-archive_write_set_format_warc.$(OBJEXT) \ - libarchive/libarchive_test-archive_write_set_format_xar.$(OBJEXT) \ - libarchive/libarchive_test-archive_write_set_format_zip.$(OBJEXT) \ - libarchive/libarchive_test-archive_write_set_options.$(OBJEXT) \ - libarchive/libarchive_test-archive_write_set_passphrase.$(OBJEXT) \ - libarchive/libarchive_test-filter_fork_posix.$(OBJEXT) \ - libarchive/libarchive_test-xxhash.$(OBJEXT) $(am__objects_13) \ +@INC_WINDOWS_FILES_TRUE@am__objects_13 = libarchive/test-archive_entry_copy_bhfi.$(OBJEXT) \ +@INC_WINDOWS_FILES_TRUE@ libarchive/test-archive_read_disk_windows.$(OBJEXT) \ +@INC_WINDOWS_FILES_TRUE@ libarchive/test-archive_windows.$(OBJEXT) \ +@INC_WINDOWS_FILES_TRUE@ libarchive/test-archive_write_disk_windows.$(OBJEXT) \ +@INC_WINDOWS_FILES_TRUE@ libarchive/test-filter_fork_windows.$(OBJEXT) +@INC_BLAKE2_TRUE@am__objects_14 = libarchive/test-archive_blake2s_ref.$(OBJEXT) \ +@INC_BLAKE2_TRUE@ libarchive/test-archive_blake2sp_ref.$(OBJEXT) +@INC_LINUX_ACL_TRUE@am__objects_15 = libarchive/test-archive_disk_acl_linux.$(OBJEXT) +@INC_LINUX_ACL_FALSE@@INC_SUNOS_ACL_TRUE@am__objects_16 = libarchive/test-archive_disk_acl_sunos.$(OBJEXT) +@INC_DARWIN_ACL_TRUE@@INC_LINUX_ACL_FALSE@@INC_SUNOS_ACL_FALSE@am__objects_17 = libarchive/test-archive_disk_acl_darwin.$(OBJEXT) +@INC_DARWIN_ACL_FALSE@@INC_FREEBSD_ACL_TRUE@@INC_LINUX_ACL_FALSE@@INC_SUNOS_ACL_FALSE@am__objects_18 = libarchive/test-archive_disk_acl_freebsd.$(OBJEXT) +am__objects_19 = libarchive/test-archive_acl.$(OBJEXT) \ + libarchive/test-archive_check_magic.$(OBJEXT) \ + libarchive/test-archive_cmdline.$(OBJEXT) \ + libarchive/test-archive_cryptor.$(OBJEXT) \ + libarchive/test-archive_digest.$(OBJEXT) \ + libarchive/test-archive_entry.$(OBJEXT) \ + libarchive/test-archive_entry_copy_stat.$(OBJEXT) \ + libarchive/test-archive_entry_link_resolver.$(OBJEXT) \ + libarchive/test-archive_entry_sparse.$(OBJEXT) \ + libarchive/test-archive_entry_stat.$(OBJEXT) \ + libarchive/test-archive_entry_strmode.$(OBJEXT) \ + libarchive/test-archive_entry_xattr.$(OBJEXT) \ + libarchive/test-archive_getdate.$(OBJEXT) \ + libarchive/test-archive_hmac.$(OBJEXT) \ + libarchive/test-archive_match.$(OBJEXT) \ + libarchive/test-archive_options.$(OBJEXT) \ + libarchive/test-archive_pack_dev.$(OBJEXT) \ + libarchive/test-archive_pathmatch.$(OBJEXT) \ + libarchive/test-archive_ppmd7.$(OBJEXT) \ + libarchive/test-archive_ppmd8.$(OBJEXT) \ + libarchive/test-archive_random.$(OBJEXT) \ + libarchive/test-archive_rb.$(OBJEXT) \ + libarchive/test-archive_read.$(OBJEXT) \ + libarchive/test-archive_read_add_passphrase.$(OBJEXT) \ + libarchive/test-archive_read_append_filter.$(OBJEXT) \ + libarchive/test-archive_read_data_into_fd.$(OBJEXT) \ + libarchive/test-archive_read_disk_entry_from_file.$(OBJEXT) \ + libarchive/test-archive_read_disk_posix.$(OBJEXT) \ + libarchive/test-archive_read_disk_set_standard_lookup.$(OBJEXT) \ + libarchive/test-archive_read_extract.$(OBJEXT) \ + libarchive/test-archive_read_extract2.$(OBJEXT) \ + libarchive/test-archive_read_open_fd.$(OBJEXT) \ + libarchive/test-archive_read_open_file.$(OBJEXT) \ + libarchive/test-archive_read_open_filename.$(OBJEXT) \ + libarchive/test-archive_read_open_memory.$(OBJEXT) \ + libarchive/test-archive_read_set_format.$(OBJEXT) \ + libarchive/test-archive_read_set_options.$(OBJEXT) \ + libarchive/test-archive_read_support_filter_all.$(OBJEXT) \ + libarchive/test-archive_read_support_filter_bzip2.$(OBJEXT) \ + libarchive/test-archive_read_support_filter_by_code.$(OBJEXT) \ + libarchive/test-archive_read_support_filter_compress.$(OBJEXT) \ + libarchive/test-archive_read_support_filter_grzip.$(OBJEXT) \ + libarchive/test-archive_read_support_filter_gzip.$(OBJEXT) \ + libarchive/test-archive_read_support_filter_lrzip.$(OBJEXT) \ + libarchive/test-archive_read_support_filter_lz4.$(OBJEXT) \ + libarchive/test-archive_read_support_filter_lzop.$(OBJEXT) \ + libarchive/test-archive_read_support_filter_none.$(OBJEXT) \ + libarchive/test-archive_read_support_filter_program.$(OBJEXT) \ + libarchive/test-archive_read_support_filter_rpm.$(OBJEXT) \ + libarchive/test-archive_read_support_filter_uu.$(OBJEXT) \ + libarchive/test-archive_read_support_filter_xz.$(OBJEXT) \ + libarchive/test-archive_read_support_filter_zstd.$(OBJEXT) \ + libarchive/test-archive_read_support_format_7zip.$(OBJEXT) \ + libarchive/test-archive_read_support_format_all.$(OBJEXT) \ + libarchive/test-archive_read_support_format_ar.$(OBJEXT) \ + libarchive/test-archive_read_support_format_by_code.$(OBJEXT) \ + libarchive/test-archive_read_support_format_cab.$(OBJEXT) \ + libarchive/test-archive_read_support_format_cpio.$(OBJEXT) \ + libarchive/test-archive_read_support_format_empty.$(OBJEXT) \ + libarchive/test-archive_read_support_format_iso9660.$(OBJEXT) \ + libarchive/test-archive_read_support_format_lha.$(OBJEXT) \ + libarchive/test-archive_read_support_format_mtree.$(OBJEXT) \ + libarchive/test-archive_read_support_format_rar.$(OBJEXT) \ + libarchive/test-archive_read_support_format_rar5.$(OBJEXT) \ + libarchive/test-archive_read_support_format_raw.$(OBJEXT) \ + libarchive/test-archive_read_support_format_tar.$(OBJEXT) \ + libarchive/test-archive_read_support_format_warc.$(OBJEXT) \ + libarchive/test-archive_read_support_format_xar.$(OBJEXT) \ + libarchive/test-archive_read_support_format_zip.$(OBJEXT) \ + libarchive/test-archive_string.$(OBJEXT) \ + libarchive/test-archive_string_sprintf.$(OBJEXT) \ + libarchive/test-archive_util.$(OBJEXT) \ + libarchive/test-archive_version_details.$(OBJEXT) \ + libarchive/test-archive_virtual.$(OBJEXT) \ + libarchive/test-archive_write.$(OBJEXT) \ + libarchive/test-archive_write_disk_posix.$(OBJEXT) \ + libarchive/test-archive_write_disk_set_standard_lookup.$(OBJEXT) \ + libarchive/test-archive_write_open_fd.$(OBJEXT) \ + libarchive/test-archive_write_open_file.$(OBJEXT) \ + libarchive/test-archive_write_open_filename.$(OBJEXT) \ + libarchive/test-archive_write_open_memory.$(OBJEXT) \ + libarchive/test-archive_write_add_filter.$(OBJEXT) \ + libarchive/test-archive_write_add_filter_b64encode.$(OBJEXT) \ + libarchive/test-archive_write_add_filter_by_name.$(OBJEXT) \ + libarchive/test-archive_write_add_filter_bzip2.$(OBJEXT) \ + libarchive/test-archive_write_add_filter_compress.$(OBJEXT) \ + libarchive/test-archive_write_add_filter_grzip.$(OBJEXT) \ + libarchive/test-archive_write_add_filter_gzip.$(OBJEXT) \ + libarchive/test-archive_write_add_filter_lrzip.$(OBJEXT) \ + libarchive/test-archive_write_add_filter_lz4.$(OBJEXT) \ + libarchive/test-archive_write_add_filter_lzop.$(OBJEXT) \ + libarchive/test-archive_write_add_filter_none.$(OBJEXT) \ + libarchive/test-archive_write_add_filter_program.$(OBJEXT) \ + libarchive/test-archive_write_add_filter_uuencode.$(OBJEXT) \ + libarchive/test-archive_write_add_filter_xz.$(OBJEXT) \ + libarchive/test-archive_write_add_filter_zstd.$(OBJEXT) \ + libarchive/test-archive_write_set_format.$(OBJEXT) \ + libarchive/test-archive_write_set_format_7zip.$(OBJEXT) \ + libarchive/test-archive_write_set_format_ar.$(OBJEXT) \ + libarchive/test-archive_write_set_format_by_name.$(OBJEXT) \ + libarchive/test-archive_write_set_format_cpio.$(OBJEXT) \ + libarchive/test-archive_write_set_format_cpio_binary.$(OBJEXT) \ + libarchive/test-archive_write_set_format_cpio_newc.$(OBJEXT) \ + libarchive/test-archive_write_set_format_cpio_odc.$(OBJEXT) \ + libarchive/test-archive_write_set_format_filter_by_ext.$(OBJEXT) \ + libarchive/test-archive_write_set_format_iso9660.$(OBJEXT) \ + libarchive/test-archive_write_set_format_mtree.$(OBJEXT) \ + libarchive/test-archive_write_set_format_pax.$(OBJEXT) \ + libarchive/test-archive_write_set_format_raw.$(OBJEXT) \ + libarchive/test-archive_write_set_format_shar.$(OBJEXT) \ + libarchive/test-archive_write_set_format_ustar.$(OBJEXT) \ + libarchive/test-archive_write_set_format_v7tar.$(OBJEXT) \ + libarchive/test-archive_write_set_format_gnutar.$(OBJEXT) \ + libarchive/test-archive_write_set_format_warc.$(OBJEXT) \ + libarchive/test-archive_write_set_format_xar.$(OBJEXT) \ + libarchive/test-archive_write_set_format_zip.$(OBJEXT) \ + libarchive/test-archive_write_set_options.$(OBJEXT) \ + libarchive/test-archive_write_set_passphrase.$(OBJEXT) \ + libarchive/test-filter_fork_posix.$(OBJEXT) \ + libarchive/test-xxhash.$(OBJEXT) $(am__objects_13) \ $(am__objects_14) $(am__objects_15) $(am__objects_16) \ $(am__objects_17) $(am__objects_18) am__objects_20 = test_utils/libarchive_test-test_utils.$(OBJEXT) \ test_utils/libarchive_test-test_main.$(OBJEXT) am_libarchive_test_OBJECTS = $(am__objects_19) $(am__objects_20) \ - libarchive/test/libarchive_test-read_open_memory.$(OBJEXT) \ - libarchive/test/libarchive_test-test_acl_nfs4.$(OBJEXT) \ - libarchive/test/libarchive_test-test_acl_pax.$(OBJEXT) \ - libarchive/test/libarchive_test-test_acl_platform_nfs4.$(OBJEXT) \ - libarchive/test/libarchive_test-test_acl_platform_posix1e.$(OBJEXT) \ - libarchive/test/libarchive_test-test_acl_posix1e.$(OBJEXT) \ - libarchive/test/libarchive_test-test_acl_text.$(OBJEXT) \ - libarchive/test/libarchive_test-test_archive_api_feature.$(OBJEXT) \ - libarchive/test/libarchive_test-test_archive_clear_error.$(OBJEXT) \ - libarchive/test/libarchive_test-test_archive_cmdline.$(OBJEXT) \ - libarchive/test/libarchive_test-test_archive_digest.$(OBJEXT) \ - libarchive/test/libarchive_test-test_archive_getdate.$(OBJEXT) \ - libarchive/test/libarchive_test-test_archive_match_owner.$(OBJEXT) \ - libarchive/test/libarchive_test-test_archive_match_path.$(OBJEXT) \ - libarchive/test/libarchive_test-test_archive_match_time.$(OBJEXT) \ - libarchive/test/libarchive_test-test_archive_pathmatch.$(OBJEXT) \ - libarchive/test/libarchive_test-test_archive_read_add_passphrase.$(OBJEXT) \ - libarchive/test/libarchive_test-test_archive_read_close_twice.$(OBJEXT) \ - libarchive/test/libarchive_test-test_archive_read_close_twice_open_fd.$(OBJEXT) \ - libarchive/test/libarchive_test-test_archive_read_close_twice_open_filename.$(OBJEXT) \ - libarchive/test/libarchive_test-test_archive_read_multiple_data_objects.$(OBJEXT) \ - libarchive/test/libarchive_test-test_archive_read_next_header_empty.$(OBJEXT) \ - libarchive/test/libarchive_test-test_archive_read_next_header_raw.$(OBJEXT) \ - libarchive/test/libarchive_test-test_archive_read_open2.$(OBJEXT) \ - libarchive/test/libarchive_test-test_archive_read_set_filter_option.$(OBJEXT) \ - libarchive/test/libarchive_test-test_archive_read_set_format_option.$(OBJEXT) \ - libarchive/test/libarchive_test-test_archive_read_set_option.$(OBJEXT) \ - libarchive/test/libarchive_test-test_archive_read_set_options.$(OBJEXT) \ - libarchive/test/libarchive_test-test_archive_read_support.$(OBJEXT) \ - libarchive/test/libarchive_test-test_archive_set_error.$(OBJEXT) \ - libarchive/test/libarchive_test-test_archive_string.$(OBJEXT) \ - libarchive/test/libarchive_test-test_archive_string_conversion.$(OBJEXT) \ - libarchive/test/libarchive_test-test_archive_write_add_filter_by_name.$(OBJEXT) \ - libarchive/test/libarchive_test-test_archive_write_set_filter_option.$(OBJEXT) \ - libarchive/test/libarchive_test-test_archive_write_set_format_by_name.$(OBJEXT) \ - libarchive/test/libarchive_test-test_archive_write_set_format_filter_by_ext.$(OBJEXT) \ - libarchive/test/libarchive_test-test_archive_write_set_format_option.$(OBJEXT) \ - libarchive/test/libarchive_test-test_archive_write_set_option.$(OBJEXT) \ - libarchive/test/libarchive_test-test_archive_write_set_options.$(OBJEXT) \ - libarchive/test/libarchive_test-test_archive_write_set_passphrase.$(OBJEXT) \ - libarchive/test/libarchive_test-test_bad_fd.$(OBJEXT) \ - libarchive/test/libarchive_test-test_compat_bzip2.$(OBJEXT) \ - libarchive/test/libarchive_test-test_compat_cpio.$(OBJEXT) \ - libarchive/test/libarchive_test-test_compat_gtar.$(OBJEXT) \ - libarchive/test/libarchive_test-test_compat_gzip.$(OBJEXT) \ - libarchive/test/libarchive_test-test_compat_lz4.$(OBJEXT) \ - libarchive/test/libarchive_test-test_compat_lzip.$(OBJEXT) \ - libarchive/test/libarchive_test-test_compat_lzma.$(OBJEXT) \ - libarchive/test/libarchive_test-test_compat_lzop.$(OBJEXT) \ - libarchive/test/libarchive_test-test_compat_mac.$(OBJEXT) \ - libarchive/test/libarchive_test-test_compat_perl_archive_tar.$(OBJEXT) \ - libarchive/test/libarchive_test-test_compat_plexus_archiver_tar.$(OBJEXT) \ - libarchive/test/libarchive_test-test_compat_solaris_tar_acl.$(OBJEXT) \ - libarchive/test/libarchive_test-test_compat_solaris_pax_sparse.$(OBJEXT) \ - libarchive/test/libarchive_test-test_compat_star_acl.$(OBJEXT) \ - libarchive/test/libarchive_test-test_compat_tar_hardlink.$(OBJEXT) \ - libarchive/test/libarchive_test-test_compat_uudecode.$(OBJEXT) \ - libarchive/test/libarchive_test-test_compat_uudecode_large.$(OBJEXT) \ - libarchive/test/libarchive_test-test_compat_xz.$(OBJEXT) \ - libarchive/test/libarchive_test-test_compat_zip.$(OBJEXT) \ - libarchive/test/libarchive_test-test_compat_zstd.$(OBJEXT) \ - libarchive/test/libarchive_test-test_empty_write.$(OBJEXT) \ - libarchive/test/libarchive_test-test_entry.$(OBJEXT) \ - libarchive/test/libarchive_test-test_entry_strmode.$(OBJEXT) \ - libarchive/test/libarchive_test-test_extattr_freebsd.$(OBJEXT) \ - libarchive/test/libarchive_test-test_filter_count.$(OBJEXT) \ - libarchive/test/libarchive_test-test_fuzz.$(OBJEXT) \ - libarchive/test/libarchive_test-test_gnutar_filename_encoding.$(OBJEXT) \ - libarchive/test/libarchive_test-test_link_resolver.$(OBJEXT) \ - libarchive/test/libarchive_test-test_open_failure.$(OBJEXT) \ - libarchive/test/libarchive_test-test_open_fd.$(OBJEXT) \ - libarchive/test/libarchive_test-test_open_file.$(OBJEXT) \ - libarchive/test/libarchive_test-test_open_filename.$(OBJEXT) \ - libarchive/test/libarchive_test-test_pax_filename_encoding.$(OBJEXT) \ - libarchive/test/libarchive_test-test_pax_xattr_header.$(OBJEXT) \ - libarchive/test/libarchive_test-test_read_data_large.$(OBJEXT) \ - libarchive/test/libarchive_test-test_read_disk.$(OBJEXT) \ - libarchive/test/libarchive_test-test_read_disk_directory_traversals.$(OBJEXT) \ - libarchive/test/libarchive_test-test_read_disk_entry_from_file.$(OBJEXT) \ - libarchive/test/libarchive_test-test_read_extract.$(OBJEXT) \ - libarchive/test/libarchive_test-test_read_file_nonexistent.$(OBJEXT) \ - libarchive/test/libarchive_test-test_read_filter_compress.$(OBJEXT) \ - libarchive/test/libarchive_test-test_read_filter_grzip.$(OBJEXT) \ - libarchive/test/libarchive_test-test_read_filter_lrzip.$(OBJEXT) \ - libarchive/test/libarchive_test-test_read_filter_lzop.$(OBJEXT) \ - libarchive/test/libarchive_test-test_read_filter_lzop_multiple_parts.$(OBJEXT) \ - libarchive/test/libarchive_test-test_read_filter_program.$(OBJEXT) \ - libarchive/test/libarchive_test-test_read_filter_program_signature.$(OBJEXT) \ - libarchive/test/libarchive_test-test_read_filter_uudecode.$(OBJEXT) \ - libarchive/test/libarchive_test-test_read_format_7zip.$(OBJEXT) \ - libarchive/test/libarchive_test-test_read_format_7zip_encryption_data.$(OBJEXT) \ - libarchive/test/libarchive_test-test_read_format_7zip_encryption_partially.$(OBJEXT) \ - libarchive/test/libarchive_test-test_read_format_7zip_encryption_header.$(OBJEXT) \ - libarchive/test/libarchive_test-test_read_format_7zip_malformed.$(OBJEXT) \ - libarchive/test/libarchive_test-test_read_format_7zip_packinfo_digests.$(OBJEXT) \ - libarchive/test/libarchive_test-test_read_format_ar.$(OBJEXT) \ - libarchive/test/libarchive_test-test_read_format_cab.$(OBJEXT) \ - libarchive/test/libarchive_test-test_read_format_cab_filename.$(OBJEXT) \ - libarchive/test/libarchive_test-test_read_format_cpio_afio.$(OBJEXT) \ - libarchive/test/libarchive_test-test_read_format_cpio_bin.$(OBJEXT) \ - libarchive/test/libarchive_test-test_read_format_cpio_bin_Z.$(OBJEXT) \ - libarchive/test/libarchive_test-test_read_format_cpio_bin_be.$(OBJEXT) \ - libarchive/test/libarchive_test-test_read_format_cpio_bin_bz2.$(OBJEXT) \ - libarchive/test/libarchive_test-test_read_format_cpio_bin_gz.$(OBJEXT) \ - libarchive/test/libarchive_test-test_read_format_cpio_bin_le.$(OBJEXT) \ - libarchive/test/libarchive_test-test_read_format_cpio_bin_lzip.$(OBJEXT) \ - libarchive/test/libarchive_test-test_read_format_cpio_bin_lzma.$(OBJEXT) \ - libarchive/test/libarchive_test-test_read_format_cpio_bin_xz.$(OBJEXT) \ - libarchive/test/libarchive_test-test_read_format_cpio_filename.$(OBJEXT) \ - libarchive/test/libarchive_test-test_read_format_cpio_odc.$(OBJEXT) \ - libarchive/test/libarchive_test-test_read_format_cpio_svr4_bzip2_rpm.$(OBJEXT) \ - libarchive/test/libarchive_test-test_read_format_cpio_svr4_gzip.$(OBJEXT) \ - libarchive/test/libarchive_test-test_read_format_cpio_svr4_gzip_rpm.$(OBJEXT) \ - libarchive/test/libarchive_test-test_read_format_cpio_svr4c_Z.$(OBJEXT) \ - libarchive/test/libarchive_test-test_read_format_empty.$(OBJEXT) \ - libarchive/test/libarchive_test-test_read_format_gtar_filename.$(OBJEXT) \ - libarchive/test/libarchive_test-test_read_format_gtar_gz.$(OBJEXT) \ - libarchive/test/libarchive_test-test_read_format_gtar_lzma.$(OBJEXT) \ - libarchive/test/libarchive_test-test_read_format_gtar_sparse.$(OBJEXT) \ - libarchive/test/libarchive_test-test_read_format_gtar_sparse_skip_entry.$(OBJEXT) \ - libarchive/test/libarchive_test-test_read_format_iso_Z.$(OBJEXT) \ - libarchive/test/libarchive_test-test_read_format_iso_multi_extent.$(OBJEXT) \ - libarchive/test/libarchive_test-test_read_format_iso_xorriso.$(OBJEXT) \ - libarchive/test/libarchive_test-test_read_format_isojoliet_bz2.$(OBJEXT) \ - libarchive/test/libarchive_test-test_read_format_isojoliet_long.$(OBJEXT) \ - libarchive/test/libarchive_test-test_read_format_isojoliet_rr.$(OBJEXT) \ - libarchive/test/libarchive_test-test_read_format_isojoliet_versioned.$(OBJEXT) \ - libarchive/test/libarchive_test-test_read_format_isorr_bz2.$(OBJEXT) \ - libarchive/test/libarchive_test-test_read_format_isorr_ce.$(OBJEXT) \ - libarchive/test/libarchive_test-test_read_format_isorr_new_bz2.$(OBJEXT) \ - libarchive/test/libarchive_test-test_read_format_isorr_rr_moved.$(OBJEXT) \ - libarchive/test/libarchive_test-test_read_format_isozisofs_bz2.$(OBJEXT) \ - libarchive/test/libarchive_test-test_read_format_lha.$(OBJEXT) \ - libarchive/test/libarchive_test-test_read_format_lha_bugfix_0.$(OBJEXT) \ - libarchive/test/libarchive_test-test_read_format_lha_filename.$(OBJEXT) \ - libarchive/test/libarchive_test-test_read_format_lha_filename_utf16.$(OBJEXT) \ - libarchive/test/libarchive_test-test_read_format_mtree.$(OBJEXT) \ - libarchive/test/libarchive_test-test_read_format_mtree_crash747.$(OBJEXT) \ - libarchive/test/libarchive_test-test_read_format_pax_bz2.$(OBJEXT) \ - libarchive/test/libarchive_test-test_read_format_rar.$(OBJEXT) \ - libarchive/test/libarchive_test-test_read_format_rar_encryption_data.$(OBJEXT) \ - libarchive/test/libarchive_test-test_read_format_rar_encryption_partially.$(OBJEXT) \ - libarchive/test/libarchive_test-test_read_format_rar_encryption_header.$(OBJEXT) \ - libarchive/test/libarchive_test-test_read_format_rar_invalid1.$(OBJEXT) \ - libarchive/test/libarchive_test-test_read_format_rar5.$(OBJEXT) \ - libarchive/test/libarchive_test-test_read_format_raw.$(OBJEXT) \ - libarchive/test/libarchive_test-test_read_format_tar.$(OBJEXT) \ - libarchive/test/libarchive_test-test_read_format_tar_concatenated.$(OBJEXT) \ - libarchive/test/libarchive_test-test_read_format_tar_empty_pax.$(OBJEXT) \ - libarchive/test/libarchive_test-test_read_format_tar_empty_filename.$(OBJEXT) \ - libarchive/test/libarchive_test-test_read_format_tar_empty_with_gnulabel.$(OBJEXT) \ - libarchive/test/libarchive_test-test_read_format_tar_filename.$(OBJEXT) \ - libarchive/test/libarchive_test-test_read_format_tbz.$(OBJEXT) \ - libarchive/test/libarchive_test-test_read_format_tgz.$(OBJEXT) \ - libarchive/test/libarchive_test-test_read_format_tlz.$(OBJEXT) \ - libarchive/test/libarchive_test-test_read_format_txz.$(OBJEXT) \ - libarchive/test/libarchive_test-test_read_format_tz.$(OBJEXT) \ - libarchive/test/libarchive_test-test_read_format_ustar_filename.$(OBJEXT) \ - libarchive/test/libarchive_test-test_read_format_warc.$(OBJEXT) \ - libarchive/test/libarchive_test-test_read_format_xar.$(OBJEXT) \ - libarchive/test/libarchive_test-test_read_format_zip.$(OBJEXT) \ - libarchive/test/libarchive_test-test_read_format_zip_7075_utf8_paths.$(OBJEXT) \ - libarchive/test/libarchive_test-test_read_format_zip_comment_stored.$(OBJEXT) \ - libarchive/test/libarchive_test-test_read_format_zip_encryption_data.$(OBJEXT) \ - libarchive/test/libarchive_test-test_read_format_zip_encryption_partially.$(OBJEXT) \ - libarchive/test/libarchive_test-test_read_format_zip_encryption_header.$(OBJEXT) \ - libarchive/test/libarchive_test-test_read_format_zip_extra_padding.$(OBJEXT) \ - libarchive/test/libarchive_test-test_read_format_zip_filename.$(OBJEXT) \ - libarchive/test/libarchive_test-test_read_format_zip_high_compression.$(OBJEXT) \ - libarchive/test/libarchive_test-test_read_format_zip_jar.$(OBJEXT) \ - libarchive/test/libarchive_test-test_read_format_zip_mac_metadata.$(OBJEXT) \ - libarchive/test/libarchive_test-test_read_format_zip_malformed.$(OBJEXT) \ - libarchive/test/libarchive_test-test_read_format_zip_msdos.$(OBJEXT) \ - libarchive/test/libarchive_test-test_read_format_zip_nested.$(OBJEXT) \ - libarchive/test/libarchive_test-test_read_format_zip_nofiletype.$(OBJEXT) \ - libarchive/test/libarchive_test-test_read_format_zip_padded.$(OBJEXT) \ - libarchive/test/libarchive_test-test_read_format_zip_sfx.$(OBJEXT) \ - libarchive/test/libarchive_test-test_read_format_zip_traditional_encryption_data.$(OBJEXT) \ - libarchive/test/libarchive_test-test_read_format_zip_winzip_aes.$(OBJEXT) \ - libarchive/test/libarchive_test-test_read_format_zip_winzip_aes_large.$(OBJEXT) \ - libarchive/test/libarchive_test-test_read_format_zip_zip64.$(OBJEXT) \ - libarchive/test/libarchive_test-test_read_format_zip_with_invalid_traditional_eocd.$(OBJEXT) \ - libarchive/test/libarchive_test-test_read_large.$(OBJEXT) \ - libarchive/test/libarchive_test-test_read_pax_schily_xattr.$(OBJEXT) \ - libarchive/test/libarchive_test-test_read_pax_truncated.$(OBJEXT) \ - libarchive/test/libarchive_test-test_read_position.$(OBJEXT) \ - libarchive/test/libarchive_test-test_read_set_format.$(OBJEXT) \ - libarchive/test/libarchive_test-test_read_too_many_filters.$(OBJEXT) \ - libarchive/test/libarchive_test-test_read_truncated.$(OBJEXT) \ - libarchive/test/libarchive_test-test_read_truncated_filter.$(OBJEXT) \ - libarchive/test/libarchive_test-test_sparse_basic.$(OBJEXT) \ - libarchive/test/libarchive_test-test_tar_filenames.$(OBJEXT) \ - libarchive/test/libarchive_test-test_tar_large.$(OBJEXT) \ - libarchive/test/libarchive_test-test_ustar_filenames.$(OBJEXT) \ - libarchive/test/libarchive_test-test_ustar_filename_encoding.$(OBJEXT) \ - libarchive/test/libarchive_test-test_warn_missing_hardlink_target.$(OBJEXT) \ - libarchive/test/libarchive_test-test_write_disk.$(OBJEXT) \ - libarchive/test/libarchive_test-test_write_disk_appledouble.$(OBJEXT) \ - libarchive/test/libarchive_test-test_write_disk_failures.$(OBJEXT) \ - libarchive/test/libarchive_test-test_write_disk_hardlink.$(OBJEXT) \ - libarchive/test/libarchive_test-test_write_disk_hfs_compression.$(OBJEXT) \ - libarchive/test/libarchive_test-test_write_disk_lookup.$(OBJEXT) \ - libarchive/test/libarchive_test-test_write_disk_mac_metadata.$(OBJEXT) \ - libarchive/test/libarchive_test-test_write_disk_no_hfs_compression.$(OBJEXT) \ - libarchive/test/libarchive_test-test_write_disk_perms.$(OBJEXT) \ - libarchive/test/libarchive_test-test_write_disk_secure.$(OBJEXT) \ - libarchive/test/libarchive_test-test_write_disk_secure744.$(OBJEXT) \ - libarchive/test/libarchive_test-test_write_disk_secure745.$(OBJEXT) \ - libarchive/test/libarchive_test-test_write_disk_secure746.$(OBJEXT) \ - libarchive/test/libarchive_test-test_write_disk_sparse.$(OBJEXT) \ - libarchive/test/libarchive_test-test_write_disk_symlink.$(OBJEXT) \ - libarchive/test/libarchive_test-test_write_disk_times.$(OBJEXT) \ - libarchive/test/libarchive_test-test_write_filter_b64encode.$(OBJEXT) \ - libarchive/test/libarchive_test-test_write_filter_bzip2.$(OBJEXT) \ - libarchive/test/libarchive_test-test_write_filter_compress.$(OBJEXT) \ - libarchive/test/libarchive_test-test_write_filter_gzip.$(OBJEXT) \ - libarchive/test/libarchive_test-test_write_filter_gzip_timestamp.$(OBJEXT) \ - libarchive/test/libarchive_test-test_write_filter_lrzip.$(OBJEXT) \ - libarchive/test/libarchive_test-test_write_filter_lz4.$(OBJEXT) \ - libarchive/test/libarchive_test-test_write_filter_lzip.$(OBJEXT) \ - libarchive/test/libarchive_test-test_write_filter_lzma.$(OBJEXT) \ - libarchive/test/libarchive_test-test_write_filter_lzop.$(OBJEXT) \ - libarchive/test/libarchive_test-test_write_filter_program.$(OBJEXT) \ - libarchive/test/libarchive_test-test_write_filter_uuencode.$(OBJEXT) \ - libarchive/test/libarchive_test-test_write_filter_xz.$(OBJEXT) \ - libarchive/test/libarchive_test-test_write_filter_zstd.$(OBJEXT) \ - libarchive/test/libarchive_test-test_write_format_7zip.$(OBJEXT) \ - libarchive/test/libarchive_test-test_write_format_7zip_empty.$(OBJEXT) \ - libarchive/test/libarchive_test-test_write_format_7zip_large.$(OBJEXT) \ - libarchive/test/libarchive_test-test_write_format_ar.$(OBJEXT) \ - libarchive/test/libarchive_test-test_write_format_cpio.$(OBJEXT) \ - libarchive/test/libarchive_test-test_write_format_cpio_empty.$(OBJEXT) \ - libarchive/test/libarchive_test-test_write_format_cpio_newc.$(OBJEXT) \ - libarchive/test/libarchive_test-test_write_format_cpio_odc.$(OBJEXT) \ - libarchive/test/libarchive_test-test_write_format_gnutar.$(OBJEXT) \ - libarchive/test/libarchive_test-test_write_format_gnutar_filenames.$(OBJEXT) \ - libarchive/test/libarchive_test-test_write_format_iso9660.$(OBJEXT) \ - libarchive/test/libarchive_test-test_write_format_iso9660_boot.$(OBJEXT) \ - libarchive/test/libarchive_test-test_write_format_iso9660_empty.$(OBJEXT) \ - libarchive/test/libarchive_test-test_write_format_iso9660_filename.$(OBJEXT) \ - libarchive/test/libarchive_test-test_write_format_iso9660_zisofs.$(OBJEXT) \ - libarchive/test/libarchive_test-test_write_format_mtree.$(OBJEXT) \ - libarchive/test/libarchive_test-test_write_format_mtree_absolute_path.$(OBJEXT) \ - libarchive/test/libarchive_test-test_write_format_mtree_classic.$(OBJEXT) \ - libarchive/test/libarchive_test-test_write_format_mtree_classic_indent.$(OBJEXT) \ - libarchive/test/libarchive_test-test_write_format_mtree_fflags.$(OBJEXT) \ - libarchive/test/libarchive_test-test_write_format_mtree_no_separator.$(OBJEXT) \ - libarchive/test/libarchive_test-test_write_format_mtree_quoted_filename.$(OBJEXT) \ - libarchive/test/libarchive_test-test_write_format_pax.$(OBJEXT) \ - libarchive/test/libarchive_test-test_write_format_raw.$(OBJEXT) \ - libarchive/test/libarchive_test-test_write_format_raw_b64.$(OBJEXT) \ - libarchive/test/libarchive_test-test_write_format_shar_empty.$(OBJEXT) \ - libarchive/test/libarchive_test-test_write_format_tar.$(OBJEXT) \ - libarchive/test/libarchive_test-test_write_format_tar_empty.$(OBJEXT) \ - libarchive/test/libarchive_test-test_write_format_tar_sparse.$(OBJEXT) \ - libarchive/test/libarchive_test-test_write_format_tar_ustar.$(OBJEXT) \ - libarchive/test/libarchive_test-test_write_format_tar_v7tar.$(OBJEXT) \ - libarchive/test/libarchive_test-test_write_format_warc.$(OBJEXT) \ - libarchive/test/libarchive_test-test_write_format_warc_empty.$(OBJEXT) \ - libarchive/test/libarchive_test-test_write_format_xar.$(OBJEXT) \ - libarchive/test/libarchive_test-test_write_format_xar_empty.$(OBJEXT) \ - libarchive/test/libarchive_test-test_write_format_zip.$(OBJEXT) \ - libarchive/test/libarchive_test-test_write_format_zip_compression_store.$(OBJEXT) \ - libarchive/test/libarchive_test-test_write_format_zip_empty.$(OBJEXT) \ - libarchive/test/libarchive_test-test_write_format_zip_empty_zip64.$(OBJEXT) \ - libarchive/test/libarchive_test-test_write_format_zip_file.$(OBJEXT) \ - libarchive/test/libarchive_test-test_write_format_zip_file_zip64.$(OBJEXT) \ - libarchive/test/libarchive_test-test_write_format_zip_large.$(OBJEXT) \ - libarchive/test/libarchive_test-test_write_format_zip_zip64.$(OBJEXT) \ - libarchive/test/libarchive_test-test_write_open_memory.$(OBJEXT) \ - libarchive/test/libarchive_test-test_write_read_format_zip.$(OBJEXT) \ - libarchive/test/libarchive_test-test_xattr_platform.$(OBJEXT) \ - libarchive/test/libarchive_test-test_zip_filename_encoding.$(OBJEXT) + libarchive/test/test-read_open_memory.$(OBJEXT) \ + libarchive/test/test-test_acl_nfs4.$(OBJEXT) \ + libarchive/test/test-test_acl_pax.$(OBJEXT) \ + libarchive/test/test-test_acl_platform_nfs4.$(OBJEXT) \ + libarchive/test/test-test_acl_platform_posix1e.$(OBJEXT) \ + libarchive/test/test-test_acl_posix1e.$(OBJEXT) \ + libarchive/test/test-test_acl_text.$(OBJEXT) \ + libarchive/test/test-test_archive_api_feature.$(OBJEXT) \ + libarchive/test/test-test_archive_clear_error.$(OBJEXT) \ + libarchive/test/test-test_archive_cmdline.$(OBJEXT) \ + libarchive/test/test-test_archive_digest.$(OBJEXT) \ + libarchive/test/test-test_archive_getdate.$(OBJEXT) \ + libarchive/test/test-test_archive_match_owner.$(OBJEXT) \ + libarchive/test/test-test_archive_match_path.$(OBJEXT) \ + libarchive/test/test-test_archive_match_time.$(OBJEXT) \ + libarchive/test/test-test_archive_pathmatch.$(OBJEXT) \ + libarchive/test/test-test_archive_read_add_passphrase.$(OBJEXT) \ + libarchive/test/test-test_archive_read_close_twice.$(OBJEXT) \ + libarchive/test/test-test_archive_read_close_twice_open_fd.$(OBJEXT) \ + libarchive/test/test-test_archive_read_close_twice_open_filename.$(OBJEXT) \ + libarchive/test/test-test_archive_read_multiple_data_objects.$(OBJEXT) \ + libarchive/test/test-test_archive_read_next_header_empty.$(OBJEXT) \ + libarchive/test/test-test_archive_read_next_header_raw.$(OBJEXT) \ + libarchive/test/test-test_archive_read_open2.$(OBJEXT) \ + libarchive/test/test-test_archive_read_set_filter_option.$(OBJEXT) \ + libarchive/test/test-test_archive_read_set_format_option.$(OBJEXT) \ + libarchive/test/test-test_archive_read_set_option.$(OBJEXT) \ + libarchive/test/test-test_archive_read_set_options.$(OBJEXT) \ + libarchive/test/test-test_archive_read_support.$(OBJEXT) \ + libarchive/test/test-test_archive_set_error.$(OBJEXT) \ + libarchive/test/test-test_archive_string.$(OBJEXT) \ + libarchive/test/test-test_archive_string_conversion.$(OBJEXT) \ + libarchive/test/test-test_archive_write_add_filter_by_name.$(OBJEXT) \ + libarchive/test/test-test_archive_write_set_filter_option.$(OBJEXT) \ + libarchive/test/test-test_archive_write_set_format_by_name.$(OBJEXT) \ + libarchive/test/test-test_archive_write_set_format_filter_by_ext.$(OBJEXT) \ + libarchive/test/test-test_archive_write_set_format_option.$(OBJEXT) \ + libarchive/test/test-test_archive_write_set_option.$(OBJEXT) \ + libarchive/test/test-test_archive_write_set_options.$(OBJEXT) \ + libarchive/test/test-test_archive_write_set_passphrase.$(OBJEXT) \ + libarchive/test/test-test_bad_fd.$(OBJEXT) \ + libarchive/test/test-test_compat_bzip2.$(OBJEXT) \ + libarchive/test/test-test_compat_cpio.$(OBJEXT) \ + libarchive/test/test-test_compat_gtar.$(OBJEXT) \ + libarchive/test/test-test_compat_gzip.$(OBJEXT) \ + libarchive/test/test-test_compat_lz4.$(OBJEXT) \ + libarchive/test/test-test_compat_lzip.$(OBJEXT) \ + libarchive/test/test-test_compat_lzma.$(OBJEXT) \ + libarchive/test/test-test_compat_lzop.$(OBJEXT) \ + libarchive/test/test-test_compat_mac.$(OBJEXT) \ + libarchive/test/test-test_compat_perl_archive_tar.$(OBJEXT) \ + libarchive/test/test-test_compat_plexus_archiver_tar.$(OBJEXT) \ + libarchive/test/test-test_compat_solaris_tar_acl.$(OBJEXT) \ + libarchive/test/test-test_compat_solaris_pax_sparse.$(OBJEXT) \ + libarchive/test/test-test_compat_star_acl.$(OBJEXT) \ + libarchive/test/test-test_compat_tar_hardlink.$(OBJEXT) \ + libarchive/test/test-test_compat_uudecode.$(OBJEXT) \ + libarchive/test/test-test_compat_uudecode_large.$(OBJEXT) \ + libarchive/test/test-test_compat_xz.$(OBJEXT) \ + libarchive/test/test-test_compat_zip.$(OBJEXT) \ + libarchive/test/test-test_compat_zstd.$(OBJEXT) \ + libarchive/test/test-test_empty_write.$(OBJEXT) \ + libarchive/test/test-test_entry.$(OBJEXT) \ + libarchive/test/test-test_entry_strmode.$(OBJEXT) \ + libarchive/test/test-test_extattr_freebsd.$(OBJEXT) \ + libarchive/test/test-test_filter_count.$(OBJEXT) \ + libarchive/test/test-test_fuzz.$(OBJEXT) \ + libarchive/test/test-test_gnutar_filename_encoding.$(OBJEXT) \ + libarchive/test/test-test_link_resolver.$(OBJEXT) \ + libarchive/test/test-test_open_failure.$(OBJEXT) \ + libarchive/test/test-test_open_fd.$(OBJEXT) \ + libarchive/test/test-test_open_file.$(OBJEXT) \ + libarchive/test/test-test_open_filename.$(OBJEXT) \ + libarchive/test/test-test_pax_filename_encoding.$(OBJEXT) \ + libarchive/test/test-test_pax_xattr_header.$(OBJEXT) \ + libarchive/test/test-test_read_data_large.$(OBJEXT) \ + libarchive/test/test-test_read_disk.$(OBJEXT) \ + libarchive/test/test-test_read_disk_directory_traversals.$(OBJEXT) \ + libarchive/test/test-test_read_disk_entry_from_file.$(OBJEXT) \ + libarchive/test/test-test_read_extract.$(OBJEXT) \ + libarchive/test/test-test_read_file_nonexistent.$(OBJEXT) \ + libarchive/test/test-test_read_filter_compress.$(OBJEXT) \ + libarchive/test/test-test_read_filter_grzip.$(OBJEXT) \ + libarchive/test/test-test_read_filter_lrzip.$(OBJEXT) \ + libarchive/test/test-test_read_filter_lzop.$(OBJEXT) \ + libarchive/test/test-test_read_filter_lzop_multiple_parts.$(OBJEXT) \ + libarchive/test/test-test_read_filter_program.$(OBJEXT) \ + libarchive/test/test-test_read_filter_program_signature.$(OBJEXT) \ + libarchive/test/test-test_read_filter_uudecode.$(OBJEXT) \ + libarchive/test/test-test_read_format_7zip.$(OBJEXT) \ + libarchive/test/test-test_read_format_7zip_encryption_data.$(OBJEXT) \ + libarchive/test/test-test_read_format_7zip_encryption_partially.$(OBJEXT) \ + libarchive/test/test-test_read_format_7zip_encryption_header.$(OBJEXT) \ + libarchive/test/test-test_read_format_7zip_malformed.$(OBJEXT) \ + libarchive/test/test-test_read_format_7zip_packinfo_digests.$(OBJEXT) \ + libarchive/test/test-test_read_format_ar.$(OBJEXT) \ + libarchive/test/test-test_read_format_cab.$(OBJEXT) \ + libarchive/test/test-test_read_format_cab_filename.$(OBJEXT) \ + libarchive/test/test-test_read_format_cpio_afio.$(OBJEXT) \ + libarchive/test/test-test_read_format_cpio_bin.$(OBJEXT) \ + libarchive/test/test-test_read_format_cpio_bin_Z.$(OBJEXT) \ + libarchive/test/test-test_read_format_cpio_bin_be.$(OBJEXT) \ + libarchive/test/test-test_read_format_cpio_bin_bz2.$(OBJEXT) \ + libarchive/test/test-test_read_format_cpio_bin_gz.$(OBJEXT) \ + libarchive/test/test-test_read_format_cpio_bin_le.$(OBJEXT) \ + libarchive/test/test-test_read_format_cpio_bin_lzip.$(OBJEXT) \ + libarchive/test/test-test_read_format_cpio_bin_lzma.$(OBJEXT) \ + libarchive/test/test-test_read_format_cpio_bin_xz.$(OBJEXT) \ + libarchive/test/test-test_read_format_cpio_filename.$(OBJEXT) \ + libarchive/test/test-test_read_format_cpio_odc.$(OBJEXT) \ + libarchive/test/test-test_read_format_cpio_svr4_bzip2_rpm.$(OBJEXT) \ + libarchive/test/test-test_read_format_cpio_svr4_gzip.$(OBJEXT) \ + libarchive/test/test-test_read_format_cpio_svr4_gzip_rpm.$(OBJEXT) \ + libarchive/test/test-test_read_format_cpio_svr4c_Z.$(OBJEXT) \ + libarchive/test/test-test_read_format_empty.$(OBJEXT) \ + libarchive/test/test-test_read_format_gtar_filename.$(OBJEXT) \ + libarchive/test/test-test_read_format_gtar_gz.$(OBJEXT) \ + libarchive/test/test-test_read_format_gtar_lzma.$(OBJEXT) \ + libarchive/test/test-test_read_format_gtar_sparse.$(OBJEXT) \ + libarchive/test/test-test_read_format_gtar_sparse_skip_entry.$(OBJEXT) \ + libarchive/test/test-test_read_format_iso_Z.$(OBJEXT) \ + libarchive/test/test-test_read_format_iso_multi_extent.$(OBJEXT) \ + libarchive/test/test-test_read_format_iso_xorriso.$(OBJEXT) \ + libarchive/test/test-test_read_format_isojoliet_bz2.$(OBJEXT) \ + libarchive/test/test-test_read_format_isojoliet_long.$(OBJEXT) \ + libarchive/test/test-test_read_format_isojoliet_rr.$(OBJEXT) \ + libarchive/test/test-test_read_format_isojoliet_versioned.$(OBJEXT) \ + libarchive/test/test-test_read_format_isorr_bz2.$(OBJEXT) \ + libarchive/test/test-test_read_format_isorr_ce.$(OBJEXT) \ + libarchive/test/test-test_read_format_isorr_new_bz2.$(OBJEXT) \ + libarchive/test/test-test_read_format_isorr_rr_moved.$(OBJEXT) \ + libarchive/test/test-test_read_format_isozisofs_bz2.$(OBJEXT) \ + libarchive/test/test-test_read_format_lha.$(OBJEXT) \ + libarchive/test/test-test_read_format_lha_bugfix_0.$(OBJEXT) \ + libarchive/test/test-test_read_format_lha_filename.$(OBJEXT) \ + libarchive/test/test-test_read_format_lha_filename_utf16.$(OBJEXT) \ + libarchive/test/test-test_read_format_mtree.$(OBJEXT) \ + libarchive/test/test-test_read_format_mtree_crash747.$(OBJEXT) \ + libarchive/test/test-test_read_format_pax_bz2.$(OBJEXT) \ + libarchive/test/test-test_read_format_rar.$(OBJEXT) \ + libarchive/test/test-test_read_format_rar_encryption_data.$(OBJEXT) \ + libarchive/test/test-test_read_format_rar_encryption_partially.$(OBJEXT) \ + libarchive/test/test-test_read_format_rar_encryption_header.$(OBJEXT) \ + libarchive/test/test-test_read_format_rar_invalid1.$(OBJEXT) \ + libarchive/test/test-test_read_format_rar5.$(OBJEXT) \ + libarchive/test/test-test_read_format_raw.$(OBJEXT) \ + libarchive/test/test-test_read_format_tar.$(OBJEXT) \ + libarchive/test/test-test_read_format_tar_concatenated.$(OBJEXT) \ + libarchive/test/test-test_read_format_tar_empty_pax.$(OBJEXT) \ + libarchive/test/test-test_read_format_tar_empty_filename.$(OBJEXT) \ + libarchive/test/test-test_read_format_tar_empty_with_gnulabel.$(OBJEXT) \ + libarchive/test/test-test_read_format_tar_filename.$(OBJEXT) \ + libarchive/test/test-test_read_format_tbz.$(OBJEXT) \ + libarchive/test/test-test_read_format_tgz.$(OBJEXT) \ + libarchive/test/test-test_read_format_tlz.$(OBJEXT) \ + libarchive/test/test-test_read_format_txz.$(OBJEXT) \ + libarchive/test/test-test_read_format_tz.$(OBJEXT) \ + libarchive/test/test-test_read_format_ustar_filename.$(OBJEXT) \ + libarchive/test/test-test_read_format_warc.$(OBJEXT) \ + libarchive/test/test-test_read_format_xar.$(OBJEXT) \ + libarchive/test/test-test_read_format_zip.$(OBJEXT) \ + libarchive/test/test-test_read_format_zip_7075_utf8_paths.$(OBJEXT) \ + libarchive/test/test-test_read_format_zip_comment_stored.$(OBJEXT) \ + libarchive/test/test-test_read_format_zip_encryption_data.$(OBJEXT) \ + libarchive/test/test-test_read_format_zip_encryption_partially.$(OBJEXT) \ + libarchive/test/test-test_read_format_zip_encryption_header.$(OBJEXT) \ + libarchive/test/test-test_read_format_zip_extra_padding.$(OBJEXT) \ + libarchive/test/test-test_read_format_zip_filename.$(OBJEXT) \ + libarchive/test/test-test_read_format_zip_high_compression.$(OBJEXT) \ + libarchive/test/test-test_read_format_zip_jar.$(OBJEXT) \ + libarchive/test/test-test_read_format_zip_mac_metadata.$(OBJEXT) \ + libarchive/test/test-test_read_format_zip_malformed.$(OBJEXT) \ + libarchive/test/test-test_read_format_zip_msdos.$(OBJEXT) \ + libarchive/test/test-test_read_format_zip_nested.$(OBJEXT) \ + libarchive/test/test-test_read_format_zip_nofiletype.$(OBJEXT) \ + libarchive/test/test-test_read_format_zip_padded.$(OBJEXT) \ + libarchive/test/test-test_read_format_zip_sfx.$(OBJEXT) \ + libarchive/test/test-test_read_format_zip_traditional_encryption_data.$(OBJEXT) \ + libarchive/test/test-test_read_format_zip_winzip_aes.$(OBJEXT) \ + libarchive/test/test-test_read_format_zip_winzip_aes_large.$(OBJEXT) \ + libarchive/test/test-test_read_format_zip_zip64.$(OBJEXT) \ + libarchive/test/test-test_read_format_zip_with_invalid_traditional_eocd.$(OBJEXT) \ + libarchive/test/test-test_read_large.$(OBJEXT) \ + libarchive/test/test-test_read_pax_xattr_rht_security_selinux.$(OBJEXT) \ + libarchive/test/test-test_read_pax_xattr_schily.$(OBJEXT) \ + libarchive/test/test-test_read_pax_truncated.$(OBJEXT) \ + libarchive/test/test-test_read_position.$(OBJEXT) \ + libarchive/test/test-test_read_set_format.$(OBJEXT) \ + libarchive/test/test-test_read_too_many_filters.$(OBJEXT) \ + libarchive/test/test-test_read_truncated.$(OBJEXT) \ + libarchive/test/test-test_read_truncated_filter.$(OBJEXT) \ + libarchive/test/test-test_short_writes.$(OBJEXT) \ + libarchive/test/test-test_sparse_basic.$(OBJEXT) \ + libarchive/test/test-test_tar_filenames.$(OBJEXT) \ + libarchive/test/test-test_tar_large.$(OBJEXT) \ + libarchive/test/test-test_ustar_filenames.$(OBJEXT) \ + libarchive/test/test-test_ustar_filename_encoding.$(OBJEXT) \ + libarchive/test/test-test_warn_missing_hardlink_target.$(OBJEXT) \ + libarchive/test/test-test_write_disk.$(OBJEXT) \ + libarchive/test/test-test_write_disk_appledouble.$(OBJEXT) \ + libarchive/test/test-test_write_disk_failures.$(OBJEXT) \ + libarchive/test/test-test_write_disk_fixup.$(OBJEXT) \ + libarchive/test/test-test_write_disk_hardlink.$(OBJEXT) \ + libarchive/test/test-test_write_disk_hfs_compression.$(OBJEXT) \ + libarchive/test/test-test_write_disk_lookup.$(OBJEXT) \ + libarchive/test/test-test_write_disk_mac_metadata.$(OBJEXT) \ + libarchive/test/test-test_write_disk_no_hfs_compression.$(OBJEXT) \ + libarchive/test/test-test_write_disk_perms.$(OBJEXT) \ + libarchive/test/test-test_write_disk_secure.$(OBJEXT) \ + libarchive/test/test-test_write_disk_secure744.$(OBJEXT) \ + libarchive/test/test-test_write_disk_secure745.$(OBJEXT) \ + libarchive/test/test-test_write_disk_secure746.$(OBJEXT) \ + libarchive/test/test-test_write_disk_sparse.$(OBJEXT) \ + libarchive/test/test-test_write_disk_symlink.$(OBJEXT) \ + libarchive/test/test-test_write_disk_times.$(OBJEXT) \ + libarchive/test/test-test_write_filter_b64encode.$(OBJEXT) \ + libarchive/test/test-test_write_filter_bzip2.$(OBJEXT) \ + libarchive/test/test-test_write_filter_compress.$(OBJEXT) \ + libarchive/test/test-test_write_filter_gzip.$(OBJEXT) \ + libarchive/test/test-test_write_filter_gzip_timestamp.$(OBJEXT) \ + libarchive/test/test-test_write_filter_lrzip.$(OBJEXT) \ + libarchive/test/test-test_write_filter_lz4.$(OBJEXT) \ + libarchive/test/test-test_write_filter_lzip.$(OBJEXT) \ + libarchive/test/test-test_write_filter_lzma.$(OBJEXT) \ + libarchive/test/test-test_write_filter_lzop.$(OBJEXT) \ + libarchive/test/test-test_write_filter_program.$(OBJEXT) \ + libarchive/test/test-test_write_filter_uuencode.$(OBJEXT) \ + libarchive/test/test-test_write_filter_xz.$(OBJEXT) \ + libarchive/test/test-test_write_filter_zstd.$(OBJEXT) \ + libarchive/test/test-test_write_format_7zip.$(OBJEXT) \ + libarchive/test/test-test_write_format_7zip_empty.$(OBJEXT) \ + libarchive/test/test-test_write_format_7zip_large.$(OBJEXT) \ + libarchive/test/test-test_write_format_ar.$(OBJEXT) \ + libarchive/test/test-test_write_format_cpio.$(OBJEXT) \ + libarchive/test/test-test_write_format_cpio_empty.$(OBJEXT) \ + libarchive/test/test-test_write_format_cpio_newc.$(OBJEXT) \ + libarchive/test/test-test_write_format_cpio_odc.$(OBJEXT) \ + libarchive/test/test-test_write_format_gnutar.$(OBJEXT) \ + libarchive/test/test-test_write_format_gnutar_filenames.$(OBJEXT) \ + libarchive/test/test-test_write_format_iso9660.$(OBJEXT) \ + libarchive/test/test-test_write_format_iso9660_boot.$(OBJEXT) \ + libarchive/test/test-test_write_format_iso9660_empty.$(OBJEXT) \ + libarchive/test/test-test_write_format_iso9660_filename.$(OBJEXT) \ + libarchive/test/test-test_write_format_iso9660_zisofs.$(OBJEXT) \ + libarchive/test/test-test_write_format_mtree.$(OBJEXT) \ + libarchive/test/test-test_write_format_mtree_absolute_path.$(OBJEXT) \ + libarchive/test/test-test_write_format_mtree_classic.$(OBJEXT) \ + libarchive/test/test-test_write_format_mtree_classic_indent.$(OBJEXT) \ + libarchive/test/test-test_write_format_mtree_fflags.$(OBJEXT) \ + libarchive/test/test-test_write_format_mtree_no_separator.$(OBJEXT) \ + libarchive/test/test-test_write_format_mtree_quoted_filename.$(OBJEXT) \ + libarchive/test/test-test_write_format_pax.$(OBJEXT) \ + libarchive/test/test-test_write_format_raw.$(OBJEXT) \ + libarchive/test/test-test_write_format_raw_b64.$(OBJEXT) \ + libarchive/test/test-test_write_format_shar_empty.$(OBJEXT) \ + libarchive/test/test-test_write_format_tar.$(OBJEXT) \ + libarchive/test/test-test_write_format_tar_empty.$(OBJEXT) \ + libarchive/test/test-test_write_format_tar_sparse.$(OBJEXT) \ + libarchive/test/test-test_write_format_tar_ustar.$(OBJEXT) \ + libarchive/test/test-test_write_format_tar_v7tar.$(OBJEXT) \ + libarchive/test/test-test_write_format_warc.$(OBJEXT) \ + libarchive/test/test-test_write_format_warc_empty.$(OBJEXT) \ + libarchive/test/test-test_write_format_xar.$(OBJEXT) \ + libarchive/test/test-test_write_format_xar_empty.$(OBJEXT) \ + libarchive/test/test-test_write_format_zip.$(OBJEXT) \ + libarchive/test/test-test_write_format_zip_compression_store.$(OBJEXT) \ + libarchive/test/test-test_write_format_zip_empty.$(OBJEXT) \ + libarchive/test/test-test_write_format_zip_empty_zip64.$(OBJEXT) \ + libarchive/test/test-test_write_format_zip_file.$(OBJEXT) \ + libarchive/test/test-test_write_format_zip_file_zip64.$(OBJEXT) \ + libarchive/test/test-test_write_format_zip_large.$(OBJEXT) \ + libarchive/test/test-test_write_format_zip_zip64.$(OBJEXT) \ + libarchive/test/test-test_write_open_memory.$(OBJEXT) \ + libarchive/test/test-test_write_read_format_zip.$(OBJEXT) \ + libarchive/test/test-test_xattr_platform.$(OBJEXT) \ + libarchive/test/test-test_zip_filename_encoding.$(OBJEXT) libarchive_test_OBJECTS = $(am_libarchive_test_OBJECTS) libarchive_test_DEPENDENCIES = $(am__DEPENDENCIES_1) AM_V_P = $(am__v_P_@AM_V@) @@ -1490,7 +1507,699 @@ am__v_at_0 = @ am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/build/autoconf/depcomp -am__depfiles_maybe = depfiles +am__maybe_remake_depfiles = depfiles +am__depfiles_remade = cat/$(DEPDIR)/bsdcat-bsdcat.Po \ + cat/$(DEPDIR)/bsdcat-cmdline.Po \ + cat/test/$(DEPDIR)/bsdcat_test-test_0.Po \ + cat/test/$(DEPDIR)/bsdcat_test-test_empty_gz.Po \ + cat/test/$(DEPDIR)/bsdcat_test-test_empty_lz4.Po \ + cat/test/$(DEPDIR)/bsdcat_test-test_empty_xz.Po \ + cat/test/$(DEPDIR)/bsdcat_test-test_empty_zstd.Po \ + cat/test/$(DEPDIR)/bsdcat_test-test_error.Po \ + cat/test/$(DEPDIR)/bsdcat_test-test_error_mixed.Po \ + cat/test/$(DEPDIR)/bsdcat_test-test_expand_Z.Po \ + cat/test/$(DEPDIR)/bsdcat_test-test_expand_bz2.Po \ + cat/test/$(DEPDIR)/bsdcat_test-test_expand_gz.Po \ + cat/test/$(DEPDIR)/bsdcat_test-test_expand_lz4.Po \ + cat/test/$(DEPDIR)/bsdcat_test-test_expand_mixed.Po \ + cat/test/$(DEPDIR)/bsdcat_test-test_expand_plain.Po \ + cat/test/$(DEPDIR)/bsdcat_test-test_expand_xz.Po \ + cat/test/$(DEPDIR)/bsdcat_test-test_expand_zstd.Po \ + cat/test/$(DEPDIR)/bsdcat_test-test_help.Po \ + cat/test/$(DEPDIR)/bsdcat_test-test_stdin.Po \ + cat/test/$(DEPDIR)/bsdcat_test-test_version.Po \ + cpio/$(DEPDIR)/bsdcpio-cmdline.Po \ + cpio/$(DEPDIR)/bsdcpio-cpio.Po \ + cpio/$(DEPDIR)/bsdcpio-cpio_windows.Po \ + cpio/$(DEPDIR)/bsdcpio_test-cmdline.Po \ + cpio/test/$(DEPDIR)/bsdcpio_test-test_0.Po \ + cpio/test/$(DEPDIR)/bsdcpio_test-test_basic.Po \ + cpio/test/$(DEPDIR)/bsdcpio_test-test_cmdline.Po \ + cpio/test/$(DEPDIR)/bsdcpio_test-test_extract_cpio_Z.Po \ + cpio/test/$(DEPDIR)/bsdcpio_test-test_extract_cpio_bz2.Po \ + cpio/test/$(DEPDIR)/bsdcpio_test-test_extract_cpio_grz.Po \ + cpio/test/$(DEPDIR)/bsdcpio_test-test_extract_cpio_gz.Po \ + cpio/test/$(DEPDIR)/bsdcpio_test-test_extract_cpio_lrz.Po \ + cpio/test/$(DEPDIR)/bsdcpio_test-test_extract_cpio_lz.Po \ + cpio/test/$(DEPDIR)/bsdcpio_test-test_extract_cpio_lz4.Po \ + cpio/test/$(DEPDIR)/bsdcpio_test-test_extract_cpio_lzma.Po \ + cpio/test/$(DEPDIR)/bsdcpio_test-test_extract_cpio_lzo.Po \ + cpio/test/$(DEPDIR)/bsdcpio_test-test_extract_cpio_xz.Po \ + cpio/test/$(DEPDIR)/bsdcpio_test-test_extract_cpio_zstd.Po \ + cpio/test/$(DEPDIR)/bsdcpio_test-test_format_newc.Po \ + cpio/test/$(DEPDIR)/bsdcpio_test-test_gcpio_compat.Po \ + cpio/test/$(DEPDIR)/bsdcpio_test-test_missing_file.Po \ + cpio/test/$(DEPDIR)/bsdcpio_test-test_option_0.Po \ + cpio/test/$(DEPDIR)/bsdcpio_test-test_option_B_upper.Po \ + cpio/test/$(DEPDIR)/bsdcpio_test-test_option_C_upper.Po \ + cpio/test/$(DEPDIR)/bsdcpio_test-test_option_J_upper.Po \ + cpio/test/$(DEPDIR)/bsdcpio_test-test_option_L_upper.Po \ + cpio/test/$(DEPDIR)/bsdcpio_test-test_option_Z_upper.Po \ + cpio/test/$(DEPDIR)/bsdcpio_test-test_option_a.Po \ + cpio/test/$(DEPDIR)/bsdcpio_test-test_option_b64encode.Po \ + cpio/test/$(DEPDIR)/bsdcpio_test-test_option_c.Po \ + cpio/test/$(DEPDIR)/bsdcpio_test-test_option_d.Po \ + cpio/test/$(DEPDIR)/bsdcpio_test-test_option_f.Po \ + cpio/test/$(DEPDIR)/bsdcpio_test-test_option_grzip.Po \ + cpio/test/$(DEPDIR)/bsdcpio_test-test_option_help.Po \ + cpio/test/$(DEPDIR)/bsdcpio_test-test_option_l.Po \ + cpio/test/$(DEPDIR)/bsdcpio_test-test_option_lrzip.Po \ + cpio/test/$(DEPDIR)/bsdcpio_test-test_option_lz4.Po \ + cpio/test/$(DEPDIR)/bsdcpio_test-test_option_lzma.Po \ + cpio/test/$(DEPDIR)/bsdcpio_test-test_option_lzop.Po \ + cpio/test/$(DEPDIR)/bsdcpio_test-test_option_m.Po \ + cpio/test/$(DEPDIR)/bsdcpio_test-test_option_passphrase.Po \ + cpio/test/$(DEPDIR)/bsdcpio_test-test_option_t.Po \ + cpio/test/$(DEPDIR)/bsdcpio_test-test_option_u.Po \ + cpio/test/$(DEPDIR)/bsdcpio_test-test_option_uuencode.Po \ + cpio/test/$(DEPDIR)/bsdcpio_test-test_option_version.Po \ + cpio/test/$(DEPDIR)/bsdcpio_test-test_option_xz.Po \ + cpio/test/$(DEPDIR)/bsdcpio_test-test_option_y.Po \ + cpio/test/$(DEPDIR)/bsdcpio_test-test_option_z.Po \ + cpio/test/$(DEPDIR)/bsdcpio_test-test_option_zstd.Po \ + cpio/test/$(DEPDIR)/bsdcpio_test-test_owner_parse.Po \ + cpio/test/$(DEPDIR)/bsdcpio_test-test_passthrough_dotdot.Po \ + cpio/test/$(DEPDIR)/bsdcpio_test-test_passthrough_reverse.Po \ + libarchive/$(DEPDIR)/archive_acl.Plo \ + libarchive/$(DEPDIR)/archive_blake2s_ref.Plo \ + libarchive/$(DEPDIR)/archive_blake2sp_ref.Plo \ + libarchive/$(DEPDIR)/archive_check_magic.Plo \ + libarchive/$(DEPDIR)/archive_cmdline.Plo \ + libarchive/$(DEPDIR)/archive_cryptor.Plo \ + libarchive/$(DEPDIR)/archive_digest.Plo \ + libarchive/$(DEPDIR)/archive_disk_acl_darwin.Plo \ + libarchive/$(DEPDIR)/archive_disk_acl_freebsd.Plo \ + libarchive/$(DEPDIR)/archive_disk_acl_linux.Plo \ + libarchive/$(DEPDIR)/archive_disk_acl_sunos.Plo \ + libarchive/$(DEPDIR)/archive_entry.Plo \ + libarchive/$(DEPDIR)/archive_entry_copy_bhfi.Plo \ + libarchive/$(DEPDIR)/archive_entry_copy_stat.Plo \ + libarchive/$(DEPDIR)/archive_entry_link_resolver.Plo \ + libarchive/$(DEPDIR)/archive_entry_sparse.Plo \ + libarchive/$(DEPDIR)/archive_entry_stat.Plo \ + libarchive/$(DEPDIR)/archive_entry_strmode.Plo \ + libarchive/$(DEPDIR)/archive_entry_xattr.Plo \ + libarchive/$(DEPDIR)/archive_getdate.Plo \ + libarchive/$(DEPDIR)/archive_hmac.Plo \ + libarchive/$(DEPDIR)/archive_match.Plo \ + libarchive/$(DEPDIR)/archive_options.Plo \ + libarchive/$(DEPDIR)/archive_pack_dev.Plo \ + libarchive/$(DEPDIR)/archive_pathmatch.Plo \ + libarchive/$(DEPDIR)/archive_ppmd7.Plo \ + libarchive/$(DEPDIR)/archive_ppmd8.Plo \ + libarchive/$(DEPDIR)/archive_random.Plo \ + libarchive/$(DEPDIR)/archive_rb.Plo \ + libarchive/$(DEPDIR)/archive_read.Plo \ + libarchive/$(DEPDIR)/archive_read_add_passphrase.Plo \ + libarchive/$(DEPDIR)/archive_read_append_filter.Plo \ + libarchive/$(DEPDIR)/archive_read_data_into_fd.Plo \ + libarchive/$(DEPDIR)/archive_read_disk_entry_from_file.Plo \ + libarchive/$(DEPDIR)/archive_read_disk_posix.Plo \ + libarchive/$(DEPDIR)/archive_read_disk_set_standard_lookup.Plo \ + libarchive/$(DEPDIR)/archive_read_disk_windows.Plo \ + libarchive/$(DEPDIR)/archive_read_extract.Plo \ + libarchive/$(DEPDIR)/archive_read_extract2.Plo \ + libarchive/$(DEPDIR)/archive_read_open_fd.Plo \ + libarchive/$(DEPDIR)/archive_read_open_file.Plo \ + libarchive/$(DEPDIR)/archive_read_open_filename.Plo \ + libarchive/$(DEPDIR)/archive_read_open_memory.Plo \ + libarchive/$(DEPDIR)/archive_read_set_format.Plo \ + libarchive/$(DEPDIR)/archive_read_set_options.Plo \ + libarchive/$(DEPDIR)/archive_read_support_filter_all.Plo \ + libarchive/$(DEPDIR)/archive_read_support_filter_by_code.Plo \ + libarchive/$(DEPDIR)/archive_read_support_filter_bzip2.Plo \ + libarchive/$(DEPDIR)/archive_read_support_filter_compress.Plo \ + libarchive/$(DEPDIR)/archive_read_support_filter_grzip.Plo \ + libarchive/$(DEPDIR)/archive_read_support_filter_gzip.Plo \ + libarchive/$(DEPDIR)/archive_read_support_filter_lrzip.Plo \ + libarchive/$(DEPDIR)/archive_read_support_filter_lz4.Plo \ + libarchive/$(DEPDIR)/archive_read_support_filter_lzop.Plo \ + libarchive/$(DEPDIR)/archive_read_support_filter_none.Plo \ + libarchive/$(DEPDIR)/archive_read_support_filter_program.Plo \ + libarchive/$(DEPDIR)/archive_read_support_filter_rpm.Plo \ + libarchive/$(DEPDIR)/archive_read_support_filter_uu.Plo \ + libarchive/$(DEPDIR)/archive_read_support_filter_xz.Plo \ + libarchive/$(DEPDIR)/archive_read_support_filter_zstd.Plo \ + libarchive/$(DEPDIR)/archive_read_support_format_7zip.Plo \ + libarchive/$(DEPDIR)/archive_read_support_format_all.Plo \ + libarchive/$(DEPDIR)/archive_read_support_format_ar.Plo \ + libarchive/$(DEPDIR)/archive_read_support_format_by_code.Plo \ + libarchive/$(DEPDIR)/archive_read_support_format_cab.Plo \ + libarchive/$(DEPDIR)/archive_read_support_format_cpio.Plo \ + libarchive/$(DEPDIR)/archive_read_support_format_empty.Plo \ + libarchive/$(DEPDIR)/archive_read_support_format_iso9660.Plo \ + libarchive/$(DEPDIR)/archive_read_support_format_lha.Plo \ + libarchive/$(DEPDIR)/archive_read_support_format_mtree.Plo \ + libarchive/$(DEPDIR)/archive_read_support_format_rar.Plo \ + libarchive/$(DEPDIR)/archive_read_support_format_rar5.Plo \ + libarchive/$(DEPDIR)/archive_read_support_format_raw.Plo \ + libarchive/$(DEPDIR)/archive_read_support_format_tar.Plo \ + libarchive/$(DEPDIR)/archive_read_support_format_warc.Plo \ + libarchive/$(DEPDIR)/archive_read_support_format_xar.Plo \ + libarchive/$(DEPDIR)/archive_read_support_format_zip.Plo \ + libarchive/$(DEPDIR)/archive_string.Plo \ + libarchive/$(DEPDIR)/archive_string_sprintf.Plo \ + libarchive/$(DEPDIR)/archive_util.Plo \ + libarchive/$(DEPDIR)/archive_version_details.Plo \ + libarchive/$(DEPDIR)/archive_virtual.Plo \ + libarchive/$(DEPDIR)/archive_windows.Plo \ + libarchive/$(DEPDIR)/archive_write.Plo \ + libarchive/$(DEPDIR)/archive_write_add_filter.Plo \ + libarchive/$(DEPDIR)/archive_write_add_filter_b64encode.Plo \ + libarchive/$(DEPDIR)/archive_write_add_filter_by_name.Plo \ + libarchive/$(DEPDIR)/archive_write_add_filter_bzip2.Plo \ + libarchive/$(DEPDIR)/archive_write_add_filter_compress.Plo \ + libarchive/$(DEPDIR)/archive_write_add_filter_grzip.Plo \ + libarchive/$(DEPDIR)/archive_write_add_filter_gzip.Plo \ + libarchive/$(DEPDIR)/archive_write_add_filter_lrzip.Plo \ + libarchive/$(DEPDIR)/archive_write_add_filter_lz4.Plo \ + libarchive/$(DEPDIR)/archive_write_add_filter_lzop.Plo \ + libarchive/$(DEPDIR)/archive_write_add_filter_none.Plo \ + libarchive/$(DEPDIR)/archive_write_add_filter_program.Plo \ + libarchive/$(DEPDIR)/archive_write_add_filter_uuencode.Plo \ + libarchive/$(DEPDIR)/archive_write_add_filter_xz.Plo \ + libarchive/$(DEPDIR)/archive_write_add_filter_zstd.Plo \ + libarchive/$(DEPDIR)/archive_write_disk_posix.Plo \ + libarchive/$(DEPDIR)/archive_write_disk_set_standard_lookup.Plo \ + libarchive/$(DEPDIR)/archive_write_disk_windows.Plo \ + libarchive/$(DEPDIR)/archive_write_open_fd.Plo \ + libarchive/$(DEPDIR)/archive_write_open_file.Plo \ + libarchive/$(DEPDIR)/archive_write_open_filename.Plo \ + libarchive/$(DEPDIR)/archive_write_open_memory.Plo \ + libarchive/$(DEPDIR)/archive_write_set_format.Plo \ + libarchive/$(DEPDIR)/archive_write_set_format_7zip.Plo \ + libarchive/$(DEPDIR)/archive_write_set_format_ar.Plo \ + libarchive/$(DEPDIR)/archive_write_set_format_by_name.Plo \ + libarchive/$(DEPDIR)/archive_write_set_format_cpio.Plo \ + libarchive/$(DEPDIR)/archive_write_set_format_cpio_binary.Plo \ + libarchive/$(DEPDIR)/archive_write_set_format_cpio_newc.Plo \ + libarchive/$(DEPDIR)/archive_write_set_format_cpio_odc.Plo \ + libarchive/$(DEPDIR)/archive_write_set_format_filter_by_ext.Plo \ + libarchive/$(DEPDIR)/archive_write_set_format_gnutar.Plo \ + libarchive/$(DEPDIR)/archive_write_set_format_iso9660.Plo \ + libarchive/$(DEPDIR)/archive_write_set_format_mtree.Plo \ + libarchive/$(DEPDIR)/archive_write_set_format_pax.Plo \ + libarchive/$(DEPDIR)/archive_write_set_format_raw.Plo \ + libarchive/$(DEPDIR)/archive_write_set_format_shar.Plo \ + libarchive/$(DEPDIR)/archive_write_set_format_ustar.Plo \ + libarchive/$(DEPDIR)/archive_write_set_format_v7tar.Plo \ + libarchive/$(DEPDIR)/archive_write_set_format_warc.Plo \ + libarchive/$(DEPDIR)/archive_write_set_format_xar.Plo \ + libarchive/$(DEPDIR)/archive_write_set_format_zip.Plo \ + libarchive/$(DEPDIR)/archive_write_set_options.Plo \ + libarchive/$(DEPDIR)/archive_write_set_passphrase.Plo \ + libarchive/$(DEPDIR)/filter_fork_posix.Plo \ + libarchive/$(DEPDIR)/filter_fork_windows.Plo \ + libarchive/$(DEPDIR)/test-archive_acl.Po \ + libarchive/$(DEPDIR)/test-archive_blake2s_ref.Po \ + libarchive/$(DEPDIR)/test-archive_blake2sp_ref.Po \ + libarchive/$(DEPDIR)/test-archive_check_magic.Po \ + libarchive/$(DEPDIR)/test-archive_cmdline.Po \ + libarchive/$(DEPDIR)/test-archive_cryptor.Po \ + libarchive/$(DEPDIR)/test-archive_digest.Po \ + libarchive/$(DEPDIR)/test-archive_disk_acl_darwin.Po \ + libarchive/$(DEPDIR)/test-archive_disk_acl_freebsd.Po \ + libarchive/$(DEPDIR)/test-archive_disk_acl_linux.Po \ + libarchive/$(DEPDIR)/test-archive_disk_acl_sunos.Po \ + libarchive/$(DEPDIR)/test-archive_entry.Po \ + libarchive/$(DEPDIR)/test-archive_entry_copy_bhfi.Po \ + libarchive/$(DEPDIR)/test-archive_entry_copy_stat.Po \ + libarchive/$(DEPDIR)/test-archive_entry_link_resolver.Po \ + libarchive/$(DEPDIR)/test-archive_entry_sparse.Po \ + libarchive/$(DEPDIR)/test-archive_entry_stat.Po \ + libarchive/$(DEPDIR)/test-archive_entry_strmode.Po \ + libarchive/$(DEPDIR)/test-archive_entry_xattr.Po \ + libarchive/$(DEPDIR)/test-archive_getdate.Po \ + libarchive/$(DEPDIR)/test-archive_hmac.Po \ + libarchive/$(DEPDIR)/test-archive_match.Po \ + libarchive/$(DEPDIR)/test-archive_options.Po \ + libarchive/$(DEPDIR)/test-archive_pack_dev.Po \ + libarchive/$(DEPDIR)/test-archive_pathmatch.Po \ + libarchive/$(DEPDIR)/test-archive_ppmd7.Po \ + libarchive/$(DEPDIR)/test-archive_ppmd8.Po \ + libarchive/$(DEPDIR)/test-archive_random.Po \ + libarchive/$(DEPDIR)/test-archive_rb.Po \ + libarchive/$(DEPDIR)/test-archive_read.Po \ + libarchive/$(DEPDIR)/test-archive_read_add_passphrase.Po \ + libarchive/$(DEPDIR)/test-archive_read_append_filter.Po \ + libarchive/$(DEPDIR)/test-archive_read_data_into_fd.Po \ + libarchive/$(DEPDIR)/test-archive_read_disk_entry_from_file.Po \ + libarchive/$(DEPDIR)/test-archive_read_disk_posix.Po \ + libarchive/$(DEPDIR)/test-archive_read_disk_set_standard_lookup.Po \ + libarchive/$(DEPDIR)/test-archive_read_disk_windows.Po \ + libarchive/$(DEPDIR)/test-archive_read_extract.Po \ + libarchive/$(DEPDIR)/test-archive_read_extract2.Po \ + libarchive/$(DEPDIR)/test-archive_read_open_fd.Po \ + libarchive/$(DEPDIR)/test-archive_read_open_file.Po \ + libarchive/$(DEPDIR)/test-archive_read_open_filename.Po \ + libarchive/$(DEPDIR)/test-archive_read_open_memory.Po \ + libarchive/$(DEPDIR)/test-archive_read_set_format.Po \ + libarchive/$(DEPDIR)/test-archive_read_set_options.Po \ + libarchive/$(DEPDIR)/test-archive_read_support_filter_all.Po \ + libarchive/$(DEPDIR)/test-archive_read_support_filter_by_code.Po \ + libarchive/$(DEPDIR)/test-archive_read_support_filter_bzip2.Po \ + libarchive/$(DEPDIR)/test-archive_read_support_filter_compress.Po \ + libarchive/$(DEPDIR)/test-archive_read_support_filter_grzip.Po \ + libarchive/$(DEPDIR)/test-archive_read_support_filter_gzip.Po \ + libarchive/$(DEPDIR)/test-archive_read_support_filter_lrzip.Po \ + libarchive/$(DEPDIR)/test-archive_read_support_filter_lz4.Po \ + libarchive/$(DEPDIR)/test-archive_read_support_filter_lzop.Po \ + libarchive/$(DEPDIR)/test-archive_read_support_filter_none.Po \ + libarchive/$(DEPDIR)/test-archive_read_support_filter_program.Po \ + libarchive/$(DEPDIR)/test-archive_read_support_filter_rpm.Po \ + libarchive/$(DEPDIR)/test-archive_read_support_filter_uu.Po \ + libarchive/$(DEPDIR)/test-archive_read_support_filter_xz.Po \ + libarchive/$(DEPDIR)/test-archive_read_support_filter_zstd.Po \ + libarchive/$(DEPDIR)/test-archive_read_support_format_7zip.Po \ + libarchive/$(DEPDIR)/test-archive_read_support_format_all.Po \ + libarchive/$(DEPDIR)/test-archive_read_support_format_ar.Po \ + libarchive/$(DEPDIR)/test-archive_read_support_format_by_code.Po \ + libarchive/$(DEPDIR)/test-archive_read_support_format_cab.Po \ + libarchive/$(DEPDIR)/test-archive_read_support_format_cpio.Po \ + libarchive/$(DEPDIR)/test-archive_read_support_format_empty.Po \ + libarchive/$(DEPDIR)/test-archive_read_support_format_iso9660.Po \ + libarchive/$(DEPDIR)/test-archive_read_support_format_lha.Po \ + libarchive/$(DEPDIR)/test-archive_read_support_format_mtree.Po \ + libarchive/$(DEPDIR)/test-archive_read_support_format_rar.Po \ + libarchive/$(DEPDIR)/test-archive_read_support_format_rar5.Po \ + libarchive/$(DEPDIR)/test-archive_read_support_format_raw.Po \ + libarchive/$(DEPDIR)/test-archive_read_support_format_tar.Po \ + libarchive/$(DEPDIR)/test-archive_read_support_format_warc.Po \ + libarchive/$(DEPDIR)/test-archive_read_support_format_xar.Po \ + libarchive/$(DEPDIR)/test-archive_read_support_format_zip.Po \ + libarchive/$(DEPDIR)/test-archive_string.Po \ + libarchive/$(DEPDIR)/test-archive_string_sprintf.Po \ + libarchive/$(DEPDIR)/test-archive_util.Po \ + libarchive/$(DEPDIR)/test-archive_version_details.Po \ + libarchive/$(DEPDIR)/test-archive_virtual.Po \ + libarchive/$(DEPDIR)/test-archive_windows.Po \ + libarchive/$(DEPDIR)/test-archive_write.Po \ + libarchive/$(DEPDIR)/test-archive_write_add_filter.Po \ + libarchive/$(DEPDIR)/test-archive_write_add_filter_b64encode.Po \ + libarchive/$(DEPDIR)/test-archive_write_add_filter_by_name.Po \ + libarchive/$(DEPDIR)/test-archive_write_add_filter_bzip2.Po \ + libarchive/$(DEPDIR)/test-archive_write_add_filter_compress.Po \ + libarchive/$(DEPDIR)/test-archive_write_add_filter_grzip.Po \ + libarchive/$(DEPDIR)/test-archive_write_add_filter_gzip.Po \ + libarchive/$(DEPDIR)/test-archive_write_add_filter_lrzip.Po \ + libarchive/$(DEPDIR)/test-archive_write_add_filter_lz4.Po \ + libarchive/$(DEPDIR)/test-archive_write_add_filter_lzop.Po \ + libarchive/$(DEPDIR)/test-archive_write_add_filter_none.Po \ + libarchive/$(DEPDIR)/test-archive_write_add_filter_program.Po \ + libarchive/$(DEPDIR)/test-archive_write_add_filter_uuencode.Po \ + libarchive/$(DEPDIR)/test-archive_write_add_filter_xz.Po \ + libarchive/$(DEPDIR)/test-archive_write_add_filter_zstd.Po \ + libarchive/$(DEPDIR)/test-archive_write_disk_posix.Po \ + libarchive/$(DEPDIR)/test-archive_write_disk_set_standard_lookup.Po \ + libarchive/$(DEPDIR)/test-archive_write_disk_windows.Po \ + libarchive/$(DEPDIR)/test-archive_write_open_fd.Po \ + libarchive/$(DEPDIR)/test-archive_write_open_file.Po \ + libarchive/$(DEPDIR)/test-archive_write_open_filename.Po \ + libarchive/$(DEPDIR)/test-archive_write_open_memory.Po \ + libarchive/$(DEPDIR)/test-archive_write_set_format.Po \ + libarchive/$(DEPDIR)/test-archive_write_set_format_7zip.Po \ + libarchive/$(DEPDIR)/test-archive_write_set_format_ar.Po \ + libarchive/$(DEPDIR)/test-archive_write_set_format_by_name.Po \ + libarchive/$(DEPDIR)/test-archive_write_set_format_cpio.Po \ + libarchive/$(DEPDIR)/test-archive_write_set_format_cpio_binary.Po \ + libarchive/$(DEPDIR)/test-archive_write_set_format_cpio_newc.Po \ + libarchive/$(DEPDIR)/test-archive_write_set_format_cpio_odc.Po \ + libarchive/$(DEPDIR)/test-archive_write_set_format_filter_by_ext.Po \ + libarchive/$(DEPDIR)/test-archive_write_set_format_gnutar.Po \ + libarchive/$(DEPDIR)/test-archive_write_set_format_iso9660.Po \ + libarchive/$(DEPDIR)/test-archive_write_set_format_mtree.Po \ + libarchive/$(DEPDIR)/test-archive_write_set_format_pax.Po \ + libarchive/$(DEPDIR)/test-archive_write_set_format_raw.Po \ + libarchive/$(DEPDIR)/test-archive_write_set_format_shar.Po \ + libarchive/$(DEPDIR)/test-archive_write_set_format_ustar.Po \ + libarchive/$(DEPDIR)/test-archive_write_set_format_v7tar.Po \ + libarchive/$(DEPDIR)/test-archive_write_set_format_warc.Po \ + libarchive/$(DEPDIR)/test-archive_write_set_format_xar.Po \ + libarchive/$(DEPDIR)/test-archive_write_set_format_zip.Po \ + libarchive/$(DEPDIR)/test-archive_write_set_options.Po \ + libarchive/$(DEPDIR)/test-archive_write_set_passphrase.Po \ + libarchive/$(DEPDIR)/test-filter_fork_posix.Po \ + libarchive/$(DEPDIR)/test-filter_fork_windows.Po \ + libarchive/$(DEPDIR)/test-xxhash.Po \ + libarchive/$(DEPDIR)/xxhash.Plo \ + libarchive/test/$(DEPDIR)/test-read_open_memory.Po \ + libarchive/test/$(DEPDIR)/test-test_acl_nfs4.Po \ + libarchive/test/$(DEPDIR)/test-test_acl_pax.Po \ + libarchive/test/$(DEPDIR)/test-test_acl_platform_nfs4.Po \ + libarchive/test/$(DEPDIR)/test-test_acl_platform_posix1e.Po \ + libarchive/test/$(DEPDIR)/test-test_acl_posix1e.Po \ + libarchive/test/$(DEPDIR)/test-test_acl_text.Po \ + libarchive/test/$(DEPDIR)/test-test_archive_api_feature.Po \ + libarchive/test/$(DEPDIR)/test-test_archive_clear_error.Po \ + libarchive/test/$(DEPDIR)/test-test_archive_cmdline.Po \ + libarchive/test/$(DEPDIR)/test-test_archive_digest.Po \ + libarchive/test/$(DEPDIR)/test-test_archive_getdate.Po \ + libarchive/test/$(DEPDIR)/test-test_archive_match_owner.Po \ + libarchive/test/$(DEPDIR)/test-test_archive_match_path.Po \ + libarchive/test/$(DEPDIR)/test-test_archive_match_time.Po \ + libarchive/test/$(DEPDIR)/test-test_archive_pathmatch.Po \ + libarchive/test/$(DEPDIR)/test-test_archive_read_add_passphrase.Po \ + libarchive/test/$(DEPDIR)/test-test_archive_read_close_twice.Po \ + libarchive/test/$(DEPDIR)/test-test_archive_read_close_twice_open_fd.Po \ + libarchive/test/$(DEPDIR)/test-test_archive_read_close_twice_open_filename.Po \ + libarchive/test/$(DEPDIR)/test-test_archive_read_multiple_data_objects.Po \ + libarchive/test/$(DEPDIR)/test-test_archive_read_next_header_empty.Po \ + libarchive/test/$(DEPDIR)/test-test_archive_read_next_header_raw.Po \ + libarchive/test/$(DEPDIR)/test-test_archive_read_open2.Po \ + libarchive/test/$(DEPDIR)/test-test_archive_read_set_filter_option.Po \ + libarchive/test/$(DEPDIR)/test-test_archive_read_set_format_option.Po \ + libarchive/test/$(DEPDIR)/test-test_archive_read_set_option.Po \ + libarchive/test/$(DEPDIR)/test-test_archive_read_set_options.Po \ + libarchive/test/$(DEPDIR)/test-test_archive_read_support.Po \ + libarchive/test/$(DEPDIR)/test-test_archive_set_error.Po \ + libarchive/test/$(DEPDIR)/test-test_archive_string.Po \ + libarchive/test/$(DEPDIR)/test-test_archive_string_conversion.Po \ + libarchive/test/$(DEPDIR)/test-test_archive_write_add_filter_by_name.Po \ + libarchive/test/$(DEPDIR)/test-test_archive_write_set_filter_option.Po \ + libarchive/test/$(DEPDIR)/test-test_archive_write_set_format_by_name.Po \ + libarchive/test/$(DEPDIR)/test-test_archive_write_set_format_filter_by_ext.Po \ + libarchive/test/$(DEPDIR)/test-test_archive_write_set_format_option.Po \ + libarchive/test/$(DEPDIR)/test-test_archive_write_set_option.Po \ + libarchive/test/$(DEPDIR)/test-test_archive_write_set_options.Po \ + libarchive/test/$(DEPDIR)/test-test_archive_write_set_passphrase.Po \ + libarchive/test/$(DEPDIR)/test-test_bad_fd.Po \ + libarchive/test/$(DEPDIR)/test-test_compat_bzip2.Po \ + libarchive/test/$(DEPDIR)/test-test_compat_cpio.Po \ + libarchive/test/$(DEPDIR)/test-test_compat_gtar.Po \ + libarchive/test/$(DEPDIR)/test-test_compat_gzip.Po \ + libarchive/test/$(DEPDIR)/test-test_compat_lz4.Po \ + libarchive/test/$(DEPDIR)/test-test_compat_lzip.Po \ + libarchive/test/$(DEPDIR)/test-test_compat_lzma.Po \ + libarchive/test/$(DEPDIR)/test-test_compat_lzop.Po \ + libarchive/test/$(DEPDIR)/test-test_compat_mac.Po \ + libarchive/test/$(DEPDIR)/test-test_compat_perl_archive_tar.Po \ + libarchive/test/$(DEPDIR)/test-test_compat_plexus_archiver_tar.Po \ + libarchive/test/$(DEPDIR)/test-test_compat_solaris_pax_sparse.Po \ + libarchive/test/$(DEPDIR)/test-test_compat_solaris_tar_acl.Po \ + libarchive/test/$(DEPDIR)/test-test_compat_star_acl.Po \ + libarchive/test/$(DEPDIR)/test-test_compat_tar_hardlink.Po \ + libarchive/test/$(DEPDIR)/test-test_compat_uudecode.Po \ + libarchive/test/$(DEPDIR)/test-test_compat_uudecode_large.Po \ + libarchive/test/$(DEPDIR)/test-test_compat_xz.Po \ + libarchive/test/$(DEPDIR)/test-test_compat_zip.Po \ + libarchive/test/$(DEPDIR)/test-test_compat_zstd.Po \ + libarchive/test/$(DEPDIR)/test-test_empty_write.Po \ + libarchive/test/$(DEPDIR)/test-test_entry.Po \ + libarchive/test/$(DEPDIR)/test-test_entry_strmode.Po \ + libarchive/test/$(DEPDIR)/test-test_extattr_freebsd.Po \ + libarchive/test/$(DEPDIR)/test-test_filter_count.Po \ + libarchive/test/$(DEPDIR)/test-test_fuzz.Po \ + libarchive/test/$(DEPDIR)/test-test_gnutar_filename_encoding.Po \ + libarchive/test/$(DEPDIR)/test-test_link_resolver.Po \ + libarchive/test/$(DEPDIR)/test-test_open_failure.Po \ + libarchive/test/$(DEPDIR)/test-test_open_fd.Po \ + libarchive/test/$(DEPDIR)/test-test_open_file.Po \ + libarchive/test/$(DEPDIR)/test-test_open_filename.Po \ + libarchive/test/$(DEPDIR)/test-test_pax_filename_encoding.Po \ + libarchive/test/$(DEPDIR)/test-test_pax_xattr_header.Po \ + libarchive/test/$(DEPDIR)/test-test_read_data_large.Po \ + libarchive/test/$(DEPDIR)/test-test_read_disk.Po \ + libarchive/test/$(DEPDIR)/test-test_read_disk_directory_traversals.Po \ + libarchive/test/$(DEPDIR)/test-test_read_disk_entry_from_file.Po \ + libarchive/test/$(DEPDIR)/test-test_read_extract.Po \ + libarchive/test/$(DEPDIR)/test-test_read_file_nonexistent.Po \ + libarchive/test/$(DEPDIR)/test-test_read_filter_compress.Po \ + libarchive/test/$(DEPDIR)/test-test_read_filter_grzip.Po \ + libarchive/test/$(DEPDIR)/test-test_read_filter_lrzip.Po \ + libarchive/test/$(DEPDIR)/test-test_read_filter_lzop.Po \ + libarchive/test/$(DEPDIR)/test-test_read_filter_lzop_multiple_parts.Po \ + libarchive/test/$(DEPDIR)/test-test_read_filter_program.Po \ + libarchive/test/$(DEPDIR)/test-test_read_filter_program_signature.Po \ + libarchive/test/$(DEPDIR)/test-test_read_filter_uudecode.Po \ + libarchive/test/$(DEPDIR)/test-test_read_format_7zip.Po \ + libarchive/test/$(DEPDIR)/test-test_read_format_7zip_encryption_data.Po \ + libarchive/test/$(DEPDIR)/test-test_read_format_7zip_encryption_header.Po \ + libarchive/test/$(DEPDIR)/test-test_read_format_7zip_encryption_partially.Po \ + libarchive/test/$(DEPDIR)/test-test_read_format_7zip_malformed.Po \ + libarchive/test/$(DEPDIR)/test-test_read_format_7zip_packinfo_digests.Po \ + libarchive/test/$(DEPDIR)/test-test_read_format_ar.Po \ + libarchive/test/$(DEPDIR)/test-test_read_format_cab.Po \ + libarchive/test/$(DEPDIR)/test-test_read_format_cab_filename.Po \ + libarchive/test/$(DEPDIR)/test-test_read_format_cpio_afio.Po \ + libarchive/test/$(DEPDIR)/test-test_read_format_cpio_bin.Po \ + libarchive/test/$(DEPDIR)/test-test_read_format_cpio_bin_Z.Po \ + libarchive/test/$(DEPDIR)/test-test_read_format_cpio_bin_be.Po \ + libarchive/test/$(DEPDIR)/test-test_read_format_cpio_bin_bz2.Po \ + libarchive/test/$(DEPDIR)/test-test_read_format_cpio_bin_gz.Po \ + libarchive/test/$(DEPDIR)/test-test_read_format_cpio_bin_le.Po \ + libarchive/test/$(DEPDIR)/test-test_read_format_cpio_bin_lzip.Po \ + libarchive/test/$(DEPDIR)/test-test_read_format_cpio_bin_lzma.Po \ + libarchive/test/$(DEPDIR)/test-test_read_format_cpio_bin_xz.Po \ + libarchive/test/$(DEPDIR)/test-test_read_format_cpio_filename.Po \ + libarchive/test/$(DEPDIR)/test-test_read_format_cpio_odc.Po \ + libarchive/test/$(DEPDIR)/test-test_read_format_cpio_svr4_bzip2_rpm.Po \ + libarchive/test/$(DEPDIR)/test-test_read_format_cpio_svr4_gzip.Po \ + libarchive/test/$(DEPDIR)/test-test_read_format_cpio_svr4_gzip_rpm.Po \ + libarchive/test/$(DEPDIR)/test-test_read_format_cpio_svr4c_Z.Po \ + libarchive/test/$(DEPDIR)/test-test_read_format_empty.Po \ + libarchive/test/$(DEPDIR)/test-test_read_format_gtar_filename.Po \ + libarchive/test/$(DEPDIR)/test-test_read_format_gtar_gz.Po \ + libarchive/test/$(DEPDIR)/test-test_read_format_gtar_lzma.Po \ + libarchive/test/$(DEPDIR)/test-test_read_format_gtar_sparse.Po \ + libarchive/test/$(DEPDIR)/test-test_read_format_gtar_sparse_skip_entry.Po \ + libarchive/test/$(DEPDIR)/test-test_read_format_iso_Z.Po \ + libarchive/test/$(DEPDIR)/test-test_read_format_iso_multi_extent.Po \ + libarchive/test/$(DEPDIR)/test-test_read_format_iso_xorriso.Po \ + libarchive/test/$(DEPDIR)/test-test_read_format_isojoliet_bz2.Po \ + libarchive/test/$(DEPDIR)/test-test_read_format_isojoliet_long.Po \ + libarchive/test/$(DEPDIR)/test-test_read_format_isojoliet_rr.Po \ + libarchive/test/$(DEPDIR)/test-test_read_format_isojoliet_versioned.Po \ + libarchive/test/$(DEPDIR)/test-test_read_format_isorr_bz2.Po \ + libarchive/test/$(DEPDIR)/test-test_read_format_isorr_ce.Po \ + libarchive/test/$(DEPDIR)/test-test_read_format_isorr_new_bz2.Po \ + libarchive/test/$(DEPDIR)/test-test_read_format_isorr_rr_moved.Po \ + libarchive/test/$(DEPDIR)/test-test_read_format_isozisofs_bz2.Po \ + libarchive/test/$(DEPDIR)/test-test_read_format_lha.Po \ + libarchive/test/$(DEPDIR)/test-test_read_format_lha_bugfix_0.Po \ + libarchive/test/$(DEPDIR)/test-test_read_format_lha_filename.Po \ + libarchive/test/$(DEPDIR)/test-test_read_format_lha_filename_utf16.Po \ + libarchive/test/$(DEPDIR)/test-test_read_format_mtree.Po \ + libarchive/test/$(DEPDIR)/test-test_read_format_mtree_crash747.Po \ + libarchive/test/$(DEPDIR)/test-test_read_format_pax_bz2.Po \ + libarchive/test/$(DEPDIR)/test-test_read_format_rar.Po \ + libarchive/test/$(DEPDIR)/test-test_read_format_rar5.Po \ + libarchive/test/$(DEPDIR)/test-test_read_format_rar_encryption_data.Po \ + libarchive/test/$(DEPDIR)/test-test_read_format_rar_encryption_header.Po \ + libarchive/test/$(DEPDIR)/test-test_read_format_rar_encryption_partially.Po \ + libarchive/test/$(DEPDIR)/test-test_read_format_rar_invalid1.Po \ + libarchive/test/$(DEPDIR)/test-test_read_format_raw.Po \ + libarchive/test/$(DEPDIR)/test-test_read_format_tar.Po \ + libarchive/test/$(DEPDIR)/test-test_read_format_tar_concatenated.Po \ + libarchive/test/$(DEPDIR)/test-test_read_format_tar_empty_filename.Po \ + libarchive/test/$(DEPDIR)/test-test_read_format_tar_empty_pax.Po \ + libarchive/test/$(DEPDIR)/test-test_read_format_tar_empty_with_gnulabel.Po \ + libarchive/test/$(DEPDIR)/test-test_read_format_tar_filename.Po \ + libarchive/test/$(DEPDIR)/test-test_read_format_tbz.Po \ + libarchive/test/$(DEPDIR)/test-test_read_format_tgz.Po \ + libarchive/test/$(DEPDIR)/test-test_read_format_tlz.Po \ + libarchive/test/$(DEPDIR)/test-test_read_format_txz.Po \ + libarchive/test/$(DEPDIR)/test-test_read_format_tz.Po \ + libarchive/test/$(DEPDIR)/test-test_read_format_ustar_filename.Po \ + libarchive/test/$(DEPDIR)/test-test_read_format_warc.Po \ + libarchive/test/$(DEPDIR)/test-test_read_format_xar.Po \ + libarchive/test/$(DEPDIR)/test-test_read_format_zip.Po \ + libarchive/test/$(DEPDIR)/test-test_read_format_zip_7075_utf8_paths.Po \ + libarchive/test/$(DEPDIR)/test-test_read_format_zip_comment_stored.Po \ + libarchive/test/$(DEPDIR)/test-test_read_format_zip_encryption_data.Po \ + libarchive/test/$(DEPDIR)/test-test_read_format_zip_encryption_header.Po \ + libarchive/test/$(DEPDIR)/test-test_read_format_zip_encryption_partially.Po \ + libarchive/test/$(DEPDIR)/test-test_read_format_zip_extra_padding.Po \ + libarchive/test/$(DEPDIR)/test-test_read_format_zip_filename.Po \ + libarchive/test/$(DEPDIR)/test-test_read_format_zip_high_compression.Po \ + libarchive/test/$(DEPDIR)/test-test_read_format_zip_jar.Po \ + libarchive/test/$(DEPDIR)/test-test_read_format_zip_mac_metadata.Po \ + libarchive/test/$(DEPDIR)/test-test_read_format_zip_malformed.Po \ + libarchive/test/$(DEPDIR)/test-test_read_format_zip_msdos.Po \ + libarchive/test/$(DEPDIR)/test-test_read_format_zip_nested.Po \ + libarchive/test/$(DEPDIR)/test-test_read_format_zip_nofiletype.Po \ + libarchive/test/$(DEPDIR)/test-test_read_format_zip_padded.Po \ + libarchive/test/$(DEPDIR)/test-test_read_format_zip_sfx.Po \ + libarchive/test/$(DEPDIR)/test-test_read_format_zip_traditional_encryption_data.Po \ + libarchive/test/$(DEPDIR)/test-test_read_format_zip_winzip_aes.Po \ + libarchive/test/$(DEPDIR)/test-test_read_format_zip_winzip_aes_large.Po \ + libarchive/test/$(DEPDIR)/test-test_read_format_zip_with_invalid_traditional_eocd.Po \ + libarchive/test/$(DEPDIR)/test-test_read_format_zip_zip64.Po \ + libarchive/test/$(DEPDIR)/test-test_read_large.Po \ + libarchive/test/$(DEPDIR)/test-test_read_pax_truncated.Po \ + libarchive/test/$(DEPDIR)/test-test_read_pax_xattr_rht_security_selinux.Po \ + libarchive/test/$(DEPDIR)/test-test_read_pax_xattr_schily.Po \ + libarchive/test/$(DEPDIR)/test-test_read_position.Po \ + libarchive/test/$(DEPDIR)/test-test_read_set_format.Po \ + libarchive/test/$(DEPDIR)/test-test_read_too_many_filters.Po \ + libarchive/test/$(DEPDIR)/test-test_read_truncated.Po \ + libarchive/test/$(DEPDIR)/test-test_read_truncated_filter.Po \ + libarchive/test/$(DEPDIR)/test-test_short_writes.Po \ + libarchive/test/$(DEPDIR)/test-test_sparse_basic.Po \ + libarchive/test/$(DEPDIR)/test-test_tar_filenames.Po \ + libarchive/test/$(DEPDIR)/test-test_tar_large.Po \ + libarchive/test/$(DEPDIR)/test-test_ustar_filename_encoding.Po \ + libarchive/test/$(DEPDIR)/test-test_ustar_filenames.Po \ + libarchive/test/$(DEPDIR)/test-test_warn_missing_hardlink_target.Po \ + libarchive/test/$(DEPDIR)/test-test_write_disk.Po \ + libarchive/test/$(DEPDIR)/test-test_write_disk_appledouble.Po \ + libarchive/test/$(DEPDIR)/test-test_write_disk_failures.Po \ + libarchive/test/$(DEPDIR)/test-test_write_disk_fixup.Po \ + libarchive/test/$(DEPDIR)/test-test_write_disk_hardlink.Po \ + libarchive/test/$(DEPDIR)/test-test_write_disk_hfs_compression.Po \ + libarchive/test/$(DEPDIR)/test-test_write_disk_lookup.Po \ + libarchive/test/$(DEPDIR)/test-test_write_disk_mac_metadata.Po \ + libarchive/test/$(DEPDIR)/test-test_write_disk_no_hfs_compression.Po \ + libarchive/test/$(DEPDIR)/test-test_write_disk_perms.Po \ + libarchive/test/$(DEPDIR)/test-test_write_disk_secure.Po \ + libarchive/test/$(DEPDIR)/test-test_write_disk_secure744.Po \ + libarchive/test/$(DEPDIR)/test-test_write_disk_secure745.Po \ + libarchive/test/$(DEPDIR)/test-test_write_disk_secure746.Po \ + libarchive/test/$(DEPDIR)/test-test_write_disk_sparse.Po \ + libarchive/test/$(DEPDIR)/test-test_write_disk_symlink.Po \ + libarchive/test/$(DEPDIR)/test-test_write_disk_times.Po \ + libarchive/test/$(DEPDIR)/test-test_write_filter_b64encode.Po \ + libarchive/test/$(DEPDIR)/test-test_write_filter_bzip2.Po \ + libarchive/test/$(DEPDIR)/test-test_write_filter_compress.Po \ + libarchive/test/$(DEPDIR)/test-test_write_filter_gzip.Po \ + libarchive/test/$(DEPDIR)/test-test_write_filter_gzip_timestamp.Po \ + libarchive/test/$(DEPDIR)/test-test_write_filter_lrzip.Po \ + libarchive/test/$(DEPDIR)/test-test_write_filter_lz4.Po \ + libarchive/test/$(DEPDIR)/test-test_write_filter_lzip.Po \ + libarchive/test/$(DEPDIR)/test-test_write_filter_lzma.Po \ + libarchive/test/$(DEPDIR)/test-test_write_filter_lzop.Po \ + libarchive/test/$(DEPDIR)/test-test_write_filter_program.Po \ + libarchive/test/$(DEPDIR)/test-test_write_filter_uuencode.Po \ + libarchive/test/$(DEPDIR)/test-test_write_filter_xz.Po \ + libarchive/test/$(DEPDIR)/test-test_write_filter_zstd.Po \ + libarchive/test/$(DEPDIR)/test-test_write_format_7zip.Po \ + libarchive/test/$(DEPDIR)/test-test_write_format_7zip_empty.Po \ + libarchive/test/$(DEPDIR)/test-test_write_format_7zip_large.Po \ + libarchive/test/$(DEPDIR)/test-test_write_format_ar.Po \ + libarchive/test/$(DEPDIR)/test-test_write_format_cpio.Po \ + libarchive/test/$(DEPDIR)/test-test_write_format_cpio_empty.Po \ + libarchive/test/$(DEPDIR)/test-test_write_format_cpio_newc.Po \ + libarchive/test/$(DEPDIR)/test-test_write_format_cpio_odc.Po \ + libarchive/test/$(DEPDIR)/test-test_write_format_gnutar.Po \ + libarchive/test/$(DEPDIR)/test-test_write_format_gnutar_filenames.Po \ + libarchive/test/$(DEPDIR)/test-test_write_format_iso9660.Po \ + libarchive/test/$(DEPDIR)/test-test_write_format_iso9660_boot.Po \ + libarchive/test/$(DEPDIR)/test-test_write_format_iso9660_empty.Po \ + libarchive/test/$(DEPDIR)/test-test_write_format_iso9660_filename.Po \ + libarchive/test/$(DEPDIR)/test-test_write_format_iso9660_zisofs.Po \ + libarchive/test/$(DEPDIR)/test-test_write_format_mtree.Po \ + libarchive/test/$(DEPDIR)/test-test_write_format_mtree_absolute_path.Po \ + libarchive/test/$(DEPDIR)/test-test_write_format_mtree_classic.Po \ + libarchive/test/$(DEPDIR)/test-test_write_format_mtree_classic_indent.Po \ + libarchive/test/$(DEPDIR)/test-test_write_format_mtree_fflags.Po \ + libarchive/test/$(DEPDIR)/test-test_write_format_mtree_no_separator.Po \ + libarchive/test/$(DEPDIR)/test-test_write_format_mtree_quoted_filename.Po \ + libarchive/test/$(DEPDIR)/test-test_write_format_pax.Po \ + libarchive/test/$(DEPDIR)/test-test_write_format_raw.Po \ + libarchive/test/$(DEPDIR)/test-test_write_format_raw_b64.Po \ + libarchive/test/$(DEPDIR)/test-test_write_format_shar_empty.Po \ + libarchive/test/$(DEPDIR)/test-test_write_format_tar.Po \ + libarchive/test/$(DEPDIR)/test-test_write_format_tar_empty.Po \ + libarchive/test/$(DEPDIR)/test-test_write_format_tar_sparse.Po \ + libarchive/test/$(DEPDIR)/test-test_write_format_tar_ustar.Po \ + libarchive/test/$(DEPDIR)/test-test_write_format_tar_v7tar.Po \ + libarchive/test/$(DEPDIR)/test-test_write_format_warc.Po \ + libarchive/test/$(DEPDIR)/test-test_write_format_warc_empty.Po \ + libarchive/test/$(DEPDIR)/test-test_write_format_xar.Po \ + libarchive/test/$(DEPDIR)/test-test_write_format_xar_empty.Po \ + libarchive/test/$(DEPDIR)/test-test_write_format_zip.Po \ + libarchive/test/$(DEPDIR)/test-test_write_format_zip_compression_store.Po \ + libarchive/test/$(DEPDIR)/test-test_write_format_zip_empty.Po \ + libarchive/test/$(DEPDIR)/test-test_write_format_zip_empty_zip64.Po \ + libarchive/test/$(DEPDIR)/test-test_write_format_zip_file.Po \ + libarchive/test/$(DEPDIR)/test-test_write_format_zip_file_zip64.Po \ + libarchive/test/$(DEPDIR)/test-test_write_format_zip_large.Po \ + libarchive/test/$(DEPDIR)/test-test_write_format_zip_zip64.Po \ + libarchive/test/$(DEPDIR)/test-test_write_open_memory.Po \ + libarchive/test/$(DEPDIR)/test-test_write_read_format_zip.Po \ + libarchive/test/$(DEPDIR)/test-test_xattr_platform.Po \ + libarchive/test/$(DEPDIR)/test-test_zip_filename_encoding.Po \ + libarchive_fe/$(DEPDIR)/la-err.Plo \ + libarchive_fe/$(DEPDIR)/la-line_reader.Plo \ + libarchive_fe/$(DEPDIR)/la-passphrase.Plo \ + tar/$(DEPDIR)/bsdtar-bsdtar.Po \ + tar/$(DEPDIR)/bsdtar-bsdtar_windows.Po \ + tar/$(DEPDIR)/bsdtar-cmdline.Po \ + tar/$(DEPDIR)/bsdtar-creation_set.Po \ + tar/$(DEPDIR)/bsdtar-read.Po tar/$(DEPDIR)/bsdtar-subst.Po \ + tar/$(DEPDIR)/bsdtar-util.Po tar/$(DEPDIR)/bsdtar-write.Po \ + tar/test/$(DEPDIR)/bsdtar_test-test_0.Po \ + tar/test/$(DEPDIR)/bsdtar_test-test_basic.Po \ + tar/test/$(DEPDIR)/bsdtar_test-test_copy.Po \ + tar/test/$(DEPDIR)/bsdtar_test-test_empty_mtree.Po \ + tar/test/$(DEPDIR)/bsdtar_test-test_extract_tar_Z.Po \ + tar/test/$(DEPDIR)/bsdtar_test-test_extract_tar_bz2.Po \ + tar/test/$(DEPDIR)/bsdtar_test-test_extract_tar_grz.Po \ + tar/test/$(DEPDIR)/bsdtar_test-test_extract_tar_gz.Po \ + tar/test/$(DEPDIR)/bsdtar_test-test_extract_tar_lrz.Po \ + tar/test/$(DEPDIR)/bsdtar_test-test_extract_tar_lz.Po \ + tar/test/$(DEPDIR)/bsdtar_test-test_extract_tar_lz4.Po \ + tar/test/$(DEPDIR)/bsdtar_test-test_extract_tar_lzma.Po \ + tar/test/$(DEPDIR)/bsdtar_test-test_extract_tar_lzo.Po \ + tar/test/$(DEPDIR)/bsdtar_test-test_extract_tar_xz.Po \ + tar/test/$(DEPDIR)/bsdtar_test-test_extract_tar_zstd.Po \ + tar/test/$(DEPDIR)/bsdtar_test-test_format_newc.Po \ + tar/test/$(DEPDIR)/bsdtar_test-test_help.Po \ + tar/test/$(DEPDIR)/bsdtar_test-test_leading_slash.Po \ + tar/test/$(DEPDIR)/bsdtar_test-test_missing_file.Po \ + tar/test/$(DEPDIR)/bsdtar_test-test_option_C_mtree.Po \ + tar/test/$(DEPDIR)/bsdtar_test-test_option_C_upper.Po \ + tar/test/$(DEPDIR)/bsdtar_test-test_option_H_upper.Po \ + tar/test/$(DEPDIR)/bsdtar_test-test_option_L_upper.Po \ + tar/test/$(DEPDIR)/bsdtar_test-test_option_O_upper.Po \ + tar/test/$(DEPDIR)/bsdtar_test-test_option_T_upper.Po \ + tar/test/$(DEPDIR)/bsdtar_test-test_option_U_upper.Po \ + tar/test/$(DEPDIR)/bsdtar_test-test_option_X_upper.Po \ + tar/test/$(DEPDIR)/bsdtar_test-test_option_a.Po \ + tar/test/$(DEPDIR)/bsdtar_test-test_option_acls.Po \ + tar/test/$(DEPDIR)/bsdtar_test-test_option_b.Po \ + tar/test/$(DEPDIR)/bsdtar_test-test_option_b64encode.Po \ + tar/test/$(DEPDIR)/bsdtar_test-test_option_exclude.Po \ + tar/test/$(DEPDIR)/bsdtar_test-test_option_exclude_vcs.Po \ + tar/test/$(DEPDIR)/bsdtar_test-test_option_fflags.Po \ + tar/test/$(DEPDIR)/bsdtar_test-test_option_gid_gname.Po \ + tar/test/$(DEPDIR)/bsdtar_test-test_option_grzip.Po \ + tar/test/$(DEPDIR)/bsdtar_test-test_option_j.Po \ + tar/test/$(DEPDIR)/bsdtar_test-test_option_k.Po \ + tar/test/$(DEPDIR)/bsdtar_test-test_option_keep_newer_files.Po \ + tar/test/$(DEPDIR)/bsdtar_test-test_option_lrzip.Po \ + tar/test/$(DEPDIR)/bsdtar_test-test_option_lz4.Po \ + tar/test/$(DEPDIR)/bsdtar_test-test_option_lzma.Po \ + tar/test/$(DEPDIR)/bsdtar_test-test_option_lzop.Po \ + tar/test/$(DEPDIR)/bsdtar_test-test_option_n.Po \ + tar/test/$(DEPDIR)/bsdtar_test-test_option_newer_than.Po \ + tar/test/$(DEPDIR)/bsdtar_test-test_option_nodump.Po \ + tar/test/$(DEPDIR)/bsdtar_test-test_option_older_than.Po \ + tar/test/$(DEPDIR)/bsdtar_test-test_option_passphrase.Po \ + tar/test/$(DEPDIR)/bsdtar_test-test_option_q.Po \ + tar/test/$(DEPDIR)/bsdtar_test-test_option_r.Po \ + tar/test/$(DEPDIR)/bsdtar_test-test_option_s.Po \ + tar/test/$(DEPDIR)/bsdtar_test-test_option_safe_writes.Po \ + tar/test/$(DEPDIR)/bsdtar_test-test_option_uid_uname.Po \ + tar/test/$(DEPDIR)/bsdtar_test-test_option_uuencode.Po \ + tar/test/$(DEPDIR)/bsdtar_test-test_option_xattrs.Po \ + tar/test/$(DEPDIR)/bsdtar_test-test_option_xz.Po \ + tar/test/$(DEPDIR)/bsdtar_test-test_option_z.Po \ + tar/test/$(DEPDIR)/bsdtar_test-test_option_zstd.Po \ + tar/test/$(DEPDIR)/bsdtar_test-test_patterns.Po \ + tar/test/$(DEPDIR)/bsdtar_test-test_print_longpath.Po \ + tar/test/$(DEPDIR)/bsdtar_test-test_stdio.Po \ + tar/test/$(DEPDIR)/bsdtar_test-test_strip_components.Po \ + tar/test/$(DEPDIR)/bsdtar_test-test_symlink_dir.Po \ + tar/test/$(DEPDIR)/bsdtar_test-test_version.Po \ + tar/test/$(DEPDIR)/bsdtar_test-test_windows.Po \ + test_utils/$(DEPDIR)/bsdcat_test-test_main.Po \ + test_utils/$(DEPDIR)/bsdcat_test-test_utils.Po \ + test_utils/$(DEPDIR)/bsdcpio_test-test_main.Po \ + test_utils/$(DEPDIR)/bsdcpio_test-test_utils.Po \ + test_utils/$(DEPDIR)/bsdtar_test-test_main.Po \ + test_utils/$(DEPDIR)/bsdtar_test-test_utils.Po \ + test_utils/$(DEPDIR)/libarchive_test-test_main.Po \ + test_utils/$(DEPDIR)/libarchive_test-test_utils.Po am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) @@ -2004,6 +2713,7 @@ libarchive_la_SOURCES = libarchive/archive_acl.c \ libarchive/archive_read_set_options.c \ libarchive/archive_read_support_filter_all.c \ libarchive/archive_read_support_filter_bzip2.c \ + libarchive/archive_read_support_filter_by_code.c \ libarchive/archive_read_support_filter_compress.c \ libarchive/archive_read_support_filter_grzip.c \ libarchive/archive_read_support_filter_gzip.c \ @@ -2066,7 +2776,9 @@ libarchive_la_SOURCES = libarchive/archive_acl.c \ libarchive/archive_write_set_format_ar.c \ libarchive/archive_write_set_format_by_name.c \ libarchive/archive_write_set_format_cpio.c \ + libarchive/archive_write_set_format_cpio_binary.c \ libarchive/archive_write_set_format_cpio_newc.c \ + libarchive/archive_write_set_format_cpio_odc.c \ libarchive/archive_write_set_format_filter_by_ext.c \ libarchive/archive_write_set_format_iso9660.c \ libarchive/archive_write_set_format_mtree.c \ @@ -2351,13 +3063,15 @@ libarchive_test_SOURCES = \ libarchive/test/test_read_format_zip_zip64.c \ libarchive/test/test_read_format_zip_with_invalid_traditional_eocd.c \ libarchive/test/test_read_large.c \ - libarchive/test/test_read_pax_schily_xattr.c \ + libarchive/test/test_read_pax_xattr_rht_security_selinux.c \ + libarchive/test/test_read_pax_xattr_schily.c \ libarchive/test/test_read_pax_truncated.c \ libarchive/test/test_read_position.c \ libarchive/test/test_read_set_format.c \ libarchive/test/test_read_too_many_filters.c \ libarchive/test/test_read_truncated.c \ libarchive/test/test_read_truncated_filter.c \ + libarchive/test/test_short_writes.c \ libarchive/test/test_sparse_basic.c \ libarchive/test/test_tar_filenames.c \ libarchive/test/test_tar_large.c \ @@ -2367,6 +3081,7 @@ libarchive_test_SOURCES = \ libarchive/test/test_write_disk.c \ libarchive/test/test_write_disk_appledouble.c \ libarchive/test/test_write_disk_failures.c \ + libarchive/test/test_write_disk_fixup.c \ libarchive/test/test_write_disk_hardlink.c \ libarchive/test/test_write_disk_hfs_compression.c \ libarchive/test/test_write_disk_lookup.c \ @@ -2504,6 +3219,7 @@ libarchive_test_EXTRA_DIST = \ libarchive/test/test_compat_zip_7.xps.uu \ libarchive/test/test_compat_zip_8.zip.uu \ libarchive/test/test_compat_zstd_1.tar.zst.uu \ + libarchive/test/test_compat_zstd_2.tar.zst.uu \ libarchive/test/test_fuzz.cab.uu \ libarchive/test/test_fuzz.lzh.uu \ libarchive/test/test_fuzz_1.iso.Z.uu \ @@ -2698,6 +3414,8 @@ libarchive_test_EXTRA_DIST = \ libarchive/test/test_read_format_warc.warc.uu \ libarchive/test/test_read_format_zip.zip.uu \ libarchive/test/test_read_format_zip_7075_utf8_paths.zip.uu \ + libarchive/test/test_read_format_zip_7z_deflate.zip.uu \ + libarchive/test/test_read_format_zip_7z_lzma.zip.uu \ libarchive/test/test_read_format_zip_bz2_hang.zip.uu \ libarchive/test/test_read_format_zip_bzip2.zipx.uu \ libarchive/test/test_read_format_zip_bzip2_multi.zipx.uu \ @@ -2718,6 +3436,7 @@ libarchive_test_EXTRA_DIST = \ libarchive/test/test_read_format_zip_lzma.zipx.uu \ libarchive/test/test_read_format_zip_lzma_alone_leak.zipx.uu \ libarchive/test/test_read_format_zip_lzma_multi.zipx.uu \ + libarchive/test/test_read_format_zip_lzma_stream_end.zipx.uu \ libarchive/test/test_read_format_zip_jar.jar.uu \ libarchive/test/test_read_format_zip_mac_metadata.zip.uu \ libarchive/test/test_read_format_zip_malformed1.zip.uu \ @@ -2748,7 +3467,8 @@ libarchive_test_EXTRA_DIST = \ libarchive/test/test_read_large_splitted_rar_ac.uu \ libarchive/test/test_read_large_splitted_rar_ad.uu \ libarchive/test/test_read_large_splitted_rar_ae.uu \ - libarchive/test/test_read_pax_schily_xattr.tar.uu \ + libarchive/test/test_read_pax_xattr_rht_security_selinux.tar.uu \ + libarchive/test/test_read_pax_xattr_schily.tar.uu \ libarchive/test/test_read_splitted_rar_aa.uu \ libarchive/test/test_read_splitted_rar_ab.uu \ libarchive/test/test_read_splitted_rar_ac.uu \ @@ -3144,8 +3864,8 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status echo ' $(SHELL) ./config.status'; \ $(SHELL) ./config.status;; \ *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) @@ -3173,6 +3893,64 @@ distclean-hdr: -rm -f config.h stamp-h1 build/pkgconfig/libarchive.pc: $(top_builddir)/config.status $(top_srcdir)/build/pkgconfig/libarchive.pc.in cd $(top_builddir) && $(SHELL) ./config.status $@ +install-binPROGRAMS: $(bin_PROGRAMS) + @$(NORMAL_INSTALL) + @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \ + fi; \ + for p in $$list; do echo "$$p $$p"; done | \ + sed 's/$(EXEEXT)$$//' | \ + while read p p1; do if test -f $$p \ + || test -f $$p1 \ + ; then echo "$$p"; echo "$$p"; else :; fi; \ + done | \ + sed -e 'p;s,.*/,,;n;h' \ + -e 's|.*|.|' \ + -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ + sed 'N;N;N;s,\n, ,g' | \ + $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ + { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ + if ($$2 == $$4) files[d] = files[d] " " $$1; \ + else { print "f", $$3 "/" $$4, $$1; } } \ + END { for (d in files) print "f", d, files[d] }' | \ + while read type dir files; do \ + if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ + test -z "$$files" || { \ + echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \ + $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ + } \ + ; done + +uninstall-binPROGRAMS: + @$(NORMAL_UNINSTALL) + @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ + files=`for p in $$list; do echo "$$p"; done | \ + sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ + -e 's/$$/$(EXEEXT)/' \ + `; \ + test -n "$$list" || exit 0; \ + echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ + cd "$(DESTDIR)$(bindir)" && rm -f $$files + +clean-binPROGRAMS: + @list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \ + echo " rm -f" $$list; \ + rm -f $$list || exit $$?; \ + test -n "$(EXEEXT)" || exit 0; \ + list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ + echo " rm -f" $$list; \ + rm -f $$list + +clean-checkPROGRAMS: + @list='$(check_PROGRAMS)'; test -n "$$list" || exit 0; \ + echo " rm -f" $$list; \ + rm -f $$list || exit $$?; \ + test -n "$(EXEEXT)" || exit 0; \ + list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ + echo " rm -f" $$list; \ + rm -f $$list install-libLTLIBRARIES: $(lib_LTLIBRARIES) @$(NORMAL_INSTALL) @@ -3307,6 +4085,9 @@ libarchive/archive_read_support_filter_all.lo: \ libarchive/archive_read_support_filter_bzip2.lo: \ libarchive/$(am__dirstamp) \ libarchive/$(DEPDIR)/$(am__dirstamp) +libarchive/archive_read_support_filter_by_code.lo: \ + libarchive/$(am__dirstamp) \ + libarchive/$(DEPDIR)/$(am__dirstamp) libarchive/archive_read_support_filter_compress.lo: \ libarchive/$(am__dirstamp) \ libarchive/$(DEPDIR)/$(am__dirstamp) @@ -3475,9 +4256,15 @@ libarchive/archive_write_set_format_by_name.lo: \ libarchive/archive_write_set_format_cpio.lo: \ libarchive/$(am__dirstamp) \ libarchive/$(DEPDIR)/$(am__dirstamp) +libarchive/archive_write_set_format_cpio_binary.lo: \ + libarchive/$(am__dirstamp) \ + libarchive/$(DEPDIR)/$(am__dirstamp) libarchive/archive_write_set_format_cpio_newc.lo: \ libarchive/$(am__dirstamp) \ libarchive/$(DEPDIR)/$(am__dirstamp) +libarchive/archive_write_set_format_cpio_odc.lo: \ + libarchive/$(am__dirstamp) \ + libarchive/$(DEPDIR)/$(am__dirstamp) libarchive/archive_write_set_format_filter_by_ext.lo: \ libarchive/$(am__dirstamp) \ libarchive/$(DEPDIR)/$(am__dirstamp) @@ -3554,75 +4341,15 @@ libarchive_fe/$(am__dirstamp): libarchive_fe/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) libarchive_fe/$(DEPDIR) @: > libarchive_fe/$(DEPDIR)/$(am__dirstamp) -libarchive_fe/libarchive_fe_la-err.lo: libarchive_fe/$(am__dirstamp) \ +libarchive_fe/la-err.lo: libarchive_fe/$(am__dirstamp) \ libarchive_fe/$(DEPDIR)/$(am__dirstamp) -libarchive_fe/libarchive_fe_la-line_reader.lo: \ - libarchive_fe/$(am__dirstamp) \ +libarchive_fe/la-line_reader.lo: libarchive_fe/$(am__dirstamp) \ libarchive_fe/$(DEPDIR)/$(am__dirstamp) -libarchive_fe/libarchive_fe_la-passphrase.lo: \ - libarchive_fe/$(am__dirstamp) \ +libarchive_fe/la-passphrase.lo: libarchive_fe/$(am__dirstamp) \ libarchive_fe/$(DEPDIR)/$(am__dirstamp) libarchive_fe.la: $(libarchive_fe_la_OBJECTS) $(libarchive_fe_la_DEPENDENCIES) $(EXTRA_libarchive_fe_la_DEPENDENCIES) $(AM_V_CCLD)$(LINK) $(libarchive_fe_la_OBJECTS) $(libarchive_fe_la_LIBADD) $(LIBS) -install-binPROGRAMS: $(bin_PROGRAMS) - @$(NORMAL_INSTALL) - @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ - if test -n "$$list"; then \ - echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \ - fi; \ - for p in $$list; do echo "$$p $$p"; done | \ - sed 's/$(EXEEXT)$$//' | \ - while read p p1; do if test -f $$p \ - || test -f $$p1 \ - ; then echo "$$p"; echo "$$p"; else :; fi; \ - done | \ - sed -e 'p;s,.*/,,;n;h' \ - -e 's|.*|.|' \ - -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ - sed 'N;N;N;s,\n, ,g' | \ - $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ - { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ - if ($$2 == $$4) files[d] = files[d] " " $$1; \ - else { print "f", $$3 "/" $$4, $$1; } } \ - END { for (d in files) print "f", d, files[d] }' | \ - while read type dir files; do \ - if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ - test -z "$$files" || { \ - echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \ - $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ - } \ - ; done - -uninstall-binPROGRAMS: - @$(NORMAL_UNINSTALL) - @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ - files=`for p in $$list; do echo "$$p"; done | \ - sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ - -e 's/$$/$(EXEEXT)/' \ - `; \ - test -n "$$list" || exit 0; \ - echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ - cd "$(DESTDIR)$(bindir)" && rm -f $$files - -clean-binPROGRAMS: - @list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \ - echo " rm -f" $$list; \ - rm -f $$list || exit $$?; \ - test -n "$(EXEEXT)" || exit 0; \ - list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ - echo " rm -f" $$list; \ - rm -f $$list - -clean-checkPROGRAMS: - @list='$(check_PROGRAMS)'; test -n "$$list" || exit 0; \ - echo " rm -f" $$list; \ - rm -f $$list || exit $$?; \ - test -n "$(EXEEXT)" || exit 0; \ - list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ - echo " rm -f" $$list; \ - rm -f $$list cat/$(am__dirstamp): @$(MKDIR_P) cat @: > cat/$(am__dirstamp) @@ -3997,388 +4724,377 @@ tar/test/bsdtar_test-test_windows.$(OBJEXT): tar/test/$(am__dirstamp) \ bsdtar_test$(EXEEXT): $(bsdtar_test_OBJECTS) $(bsdtar_test_DEPENDENCIES) $(EXTRA_bsdtar_test_DEPENDENCIES) @rm -f bsdtar_test$(EXEEXT) $(AM_V_CCLD)$(LINK) $(bsdtar_test_OBJECTS) $(bsdtar_test_LDADD) $(LIBS) -libarchive/libarchive_test-archive_acl.$(OBJEXT): \ - libarchive/$(am__dirstamp) \ +libarchive/test-archive_acl.$(OBJEXT): libarchive/$(am__dirstamp) \ libarchive/$(DEPDIR)/$(am__dirstamp) -libarchive/libarchive_test-archive_check_magic.$(OBJEXT): \ +libarchive/test-archive_check_magic.$(OBJEXT): \ libarchive/$(am__dirstamp) \ libarchive/$(DEPDIR)/$(am__dirstamp) -libarchive/libarchive_test-archive_cmdline.$(OBJEXT): \ - libarchive/$(am__dirstamp) \ +libarchive/test-archive_cmdline.$(OBJEXT): libarchive/$(am__dirstamp) \ libarchive/$(DEPDIR)/$(am__dirstamp) -libarchive/libarchive_test-archive_cryptor.$(OBJEXT): \ - libarchive/$(am__dirstamp) \ +libarchive/test-archive_cryptor.$(OBJEXT): libarchive/$(am__dirstamp) \ libarchive/$(DEPDIR)/$(am__dirstamp) -libarchive/libarchive_test-archive_digest.$(OBJEXT): \ - libarchive/$(am__dirstamp) \ +libarchive/test-archive_digest.$(OBJEXT): libarchive/$(am__dirstamp) \ libarchive/$(DEPDIR)/$(am__dirstamp) -libarchive/libarchive_test-archive_entry.$(OBJEXT): \ - libarchive/$(am__dirstamp) \ +libarchive/test-archive_entry.$(OBJEXT): libarchive/$(am__dirstamp) \ libarchive/$(DEPDIR)/$(am__dirstamp) -libarchive/libarchive_test-archive_entry_copy_stat.$(OBJEXT): \ +libarchive/test-archive_entry_copy_stat.$(OBJEXT): \ libarchive/$(am__dirstamp) \ libarchive/$(DEPDIR)/$(am__dirstamp) -libarchive/libarchive_test-archive_entry_link_resolver.$(OBJEXT): \ +libarchive/test-archive_entry_link_resolver.$(OBJEXT): \ libarchive/$(am__dirstamp) \ libarchive/$(DEPDIR)/$(am__dirstamp) -libarchive/libarchive_test-archive_entry_sparse.$(OBJEXT): \ +libarchive/test-archive_entry_sparse.$(OBJEXT): \ libarchive/$(am__dirstamp) \ libarchive/$(DEPDIR)/$(am__dirstamp) -libarchive/libarchive_test-archive_entry_stat.$(OBJEXT): \ +libarchive/test-archive_entry_stat.$(OBJEXT): \ libarchive/$(am__dirstamp) \ libarchive/$(DEPDIR)/$(am__dirstamp) -libarchive/libarchive_test-archive_entry_strmode.$(OBJEXT): \ +libarchive/test-archive_entry_strmode.$(OBJEXT): \ libarchive/$(am__dirstamp) \ libarchive/$(DEPDIR)/$(am__dirstamp) -libarchive/libarchive_test-archive_entry_xattr.$(OBJEXT): \ +libarchive/test-archive_entry_xattr.$(OBJEXT): \ libarchive/$(am__dirstamp) \ libarchive/$(DEPDIR)/$(am__dirstamp) -libarchive/libarchive_test-archive_getdate.$(OBJEXT): \ - libarchive/$(am__dirstamp) \ +libarchive/test-archive_getdate.$(OBJEXT): libarchive/$(am__dirstamp) \ libarchive/$(DEPDIR)/$(am__dirstamp) -libarchive/libarchive_test-archive_hmac.$(OBJEXT): \ - libarchive/$(am__dirstamp) \ +libarchive/test-archive_hmac.$(OBJEXT): libarchive/$(am__dirstamp) \ libarchive/$(DEPDIR)/$(am__dirstamp) -libarchive/libarchive_test-archive_match.$(OBJEXT): \ - libarchive/$(am__dirstamp) \ +libarchive/test-archive_match.$(OBJEXT): libarchive/$(am__dirstamp) \ libarchive/$(DEPDIR)/$(am__dirstamp) -libarchive/libarchive_test-archive_options.$(OBJEXT): \ - libarchive/$(am__dirstamp) \ +libarchive/test-archive_options.$(OBJEXT): libarchive/$(am__dirstamp) \ libarchive/$(DEPDIR)/$(am__dirstamp) -libarchive/libarchive_test-archive_pack_dev.$(OBJEXT): \ +libarchive/test-archive_pack_dev.$(OBJEXT): \ libarchive/$(am__dirstamp) \ libarchive/$(DEPDIR)/$(am__dirstamp) -libarchive/libarchive_test-archive_pathmatch.$(OBJEXT): \ +libarchive/test-archive_pathmatch.$(OBJEXT): \ libarchive/$(am__dirstamp) \ libarchive/$(DEPDIR)/$(am__dirstamp) -libarchive/libarchive_test-archive_ppmd7.$(OBJEXT): \ - libarchive/$(am__dirstamp) \ +libarchive/test-archive_ppmd7.$(OBJEXT): libarchive/$(am__dirstamp) \ libarchive/$(DEPDIR)/$(am__dirstamp) -libarchive/libarchive_test-archive_ppmd8.$(OBJEXT): \ - libarchive/$(am__dirstamp) \ +libarchive/test-archive_ppmd8.$(OBJEXT): libarchive/$(am__dirstamp) \ libarchive/$(DEPDIR)/$(am__dirstamp) -libarchive/libarchive_test-archive_random.$(OBJEXT): \ - libarchive/$(am__dirstamp) \ +libarchive/test-archive_random.$(OBJEXT): libarchive/$(am__dirstamp) \ libarchive/$(DEPDIR)/$(am__dirstamp) -libarchive/libarchive_test-archive_rb.$(OBJEXT): \ - libarchive/$(am__dirstamp) \ +libarchive/test-archive_rb.$(OBJEXT): libarchive/$(am__dirstamp) \ libarchive/$(DEPDIR)/$(am__dirstamp) -libarchive/libarchive_test-archive_read.$(OBJEXT): \ - libarchive/$(am__dirstamp) \ +libarchive/test-archive_read.$(OBJEXT): libarchive/$(am__dirstamp) \ libarchive/$(DEPDIR)/$(am__dirstamp) -libarchive/libarchive_test-archive_read_add_passphrase.$(OBJEXT): \ +libarchive/test-archive_read_add_passphrase.$(OBJEXT): \ libarchive/$(am__dirstamp) \ libarchive/$(DEPDIR)/$(am__dirstamp) -libarchive/libarchive_test-archive_read_append_filter.$(OBJEXT): \ +libarchive/test-archive_read_append_filter.$(OBJEXT): \ libarchive/$(am__dirstamp) \ libarchive/$(DEPDIR)/$(am__dirstamp) -libarchive/libarchive_test-archive_read_data_into_fd.$(OBJEXT): \ +libarchive/test-archive_read_data_into_fd.$(OBJEXT): \ libarchive/$(am__dirstamp) \ libarchive/$(DEPDIR)/$(am__dirstamp) -libarchive/libarchive_test-archive_read_disk_entry_from_file.$(OBJEXT): \ +libarchive/test-archive_read_disk_entry_from_file.$(OBJEXT): \ libarchive/$(am__dirstamp) \ libarchive/$(DEPDIR)/$(am__dirstamp) -libarchive/libarchive_test-archive_read_disk_posix.$(OBJEXT): \ +libarchive/test-archive_read_disk_posix.$(OBJEXT): \ libarchive/$(am__dirstamp) \ libarchive/$(DEPDIR)/$(am__dirstamp) -libarchive/libarchive_test-archive_read_disk_set_standard_lookup.$(OBJEXT): \ +libarchive/test-archive_read_disk_set_standard_lookup.$(OBJEXT): \ libarchive/$(am__dirstamp) \ libarchive/$(DEPDIR)/$(am__dirstamp) -libarchive/libarchive_test-archive_read_extract.$(OBJEXT): \ +libarchive/test-archive_read_extract.$(OBJEXT): \ libarchive/$(am__dirstamp) \ libarchive/$(DEPDIR)/$(am__dirstamp) -libarchive/libarchive_test-archive_read_extract2.$(OBJEXT): \ +libarchive/test-archive_read_extract2.$(OBJEXT): \ libarchive/$(am__dirstamp) \ libarchive/$(DEPDIR)/$(am__dirstamp) -libarchive/libarchive_test-archive_read_open_fd.$(OBJEXT): \ +libarchive/test-archive_read_open_fd.$(OBJEXT): \ libarchive/$(am__dirstamp) \ libarchive/$(DEPDIR)/$(am__dirstamp) -libarchive/libarchive_test-archive_read_open_file.$(OBJEXT): \ +libarchive/test-archive_read_open_file.$(OBJEXT): \ libarchive/$(am__dirstamp) \ libarchive/$(DEPDIR)/$(am__dirstamp) -libarchive/libarchive_test-archive_read_open_filename.$(OBJEXT): \ +libarchive/test-archive_read_open_filename.$(OBJEXT): \ libarchive/$(am__dirstamp) \ libarchive/$(DEPDIR)/$(am__dirstamp) -libarchive/libarchive_test-archive_read_open_memory.$(OBJEXT): \ +libarchive/test-archive_read_open_memory.$(OBJEXT): \ libarchive/$(am__dirstamp) \ libarchive/$(DEPDIR)/$(am__dirstamp) -libarchive/libarchive_test-archive_read_set_format.$(OBJEXT): \ +libarchive/test-archive_read_set_format.$(OBJEXT): \ libarchive/$(am__dirstamp) \ libarchive/$(DEPDIR)/$(am__dirstamp) -libarchive/libarchive_test-archive_read_set_options.$(OBJEXT): \ +libarchive/test-archive_read_set_options.$(OBJEXT): \ libarchive/$(am__dirstamp) \ libarchive/$(DEPDIR)/$(am__dirstamp) -libarchive/libarchive_test-archive_read_support_filter_all.$(OBJEXT): \ +libarchive/test-archive_read_support_filter_all.$(OBJEXT): \ libarchive/$(am__dirstamp) \ libarchive/$(DEPDIR)/$(am__dirstamp) -libarchive/libarchive_test-archive_read_support_filter_bzip2.$(OBJEXT): \ +libarchive/test-archive_read_support_filter_bzip2.$(OBJEXT): \ libarchive/$(am__dirstamp) \ libarchive/$(DEPDIR)/$(am__dirstamp) -libarchive/libarchive_test-archive_read_support_filter_compress.$(OBJEXT): \ +libarchive/test-archive_read_support_filter_by_code.$(OBJEXT): \ libarchive/$(am__dirstamp) \ libarchive/$(DEPDIR)/$(am__dirstamp) -libarchive/libarchive_test-archive_read_support_filter_grzip.$(OBJEXT): \ +libarchive/test-archive_read_support_filter_compress.$(OBJEXT): \ libarchive/$(am__dirstamp) \ libarchive/$(DEPDIR)/$(am__dirstamp) -libarchive/libarchive_test-archive_read_support_filter_gzip.$(OBJEXT): \ +libarchive/test-archive_read_support_filter_grzip.$(OBJEXT): \ libarchive/$(am__dirstamp) \ libarchive/$(DEPDIR)/$(am__dirstamp) -libarchive/libarchive_test-archive_read_support_filter_lrzip.$(OBJEXT): \ +libarchive/test-archive_read_support_filter_gzip.$(OBJEXT): \ libarchive/$(am__dirstamp) \ libarchive/$(DEPDIR)/$(am__dirstamp) -libarchive/libarchive_test-archive_read_support_filter_lz4.$(OBJEXT): \ +libarchive/test-archive_read_support_filter_lrzip.$(OBJEXT): \ libarchive/$(am__dirstamp) \ libarchive/$(DEPDIR)/$(am__dirstamp) -libarchive/libarchive_test-archive_read_support_filter_lzop.$(OBJEXT): \ +libarchive/test-archive_read_support_filter_lz4.$(OBJEXT): \ libarchive/$(am__dirstamp) \ libarchive/$(DEPDIR)/$(am__dirstamp) -libarchive/libarchive_test-archive_read_support_filter_none.$(OBJEXT): \ +libarchive/test-archive_read_support_filter_lzop.$(OBJEXT): \ libarchive/$(am__dirstamp) \ libarchive/$(DEPDIR)/$(am__dirstamp) -libarchive/libarchive_test-archive_read_support_filter_program.$(OBJEXT): \ +libarchive/test-archive_read_support_filter_none.$(OBJEXT): \ libarchive/$(am__dirstamp) \ libarchive/$(DEPDIR)/$(am__dirstamp) -libarchive/libarchive_test-archive_read_support_filter_rpm.$(OBJEXT): \ +libarchive/test-archive_read_support_filter_program.$(OBJEXT): \ libarchive/$(am__dirstamp) \ libarchive/$(DEPDIR)/$(am__dirstamp) -libarchive/libarchive_test-archive_read_support_filter_uu.$(OBJEXT): \ +libarchive/test-archive_read_support_filter_rpm.$(OBJEXT): \ libarchive/$(am__dirstamp) \ libarchive/$(DEPDIR)/$(am__dirstamp) -libarchive/libarchive_test-archive_read_support_filter_xz.$(OBJEXT): \ +libarchive/test-archive_read_support_filter_uu.$(OBJEXT): \ libarchive/$(am__dirstamp) \ libarchive/$(DEPDIR)/$(am__dirstamp) -libarchive/libarchive_test-archive_read_support_filter_zstd.$(OBJEXT): \ +libarchive/test-archive_read_support_filter_xz.$(OBJEXT): \ libarchive/$(am__dirstamp) \ libarchive/$(DEPDIR)/$(am__dirstamp) -libarchive/libarchive_test-archive_read_support_format_7zip.$(OBJEXT): \ +libarchive/test-archive_read_support_filter_zstd.$(OBJEXT): \ libarchive/$(am__dirstamp) \ libarchive/$(DEPDIR)/$(am__dirstamp) -libarchive/libarchive_test-archive_read_support_format_all.$(OBJEXT): \ +libarchive/test-archive_read_support_format_7zip.$(OBJEXT): \ libarchive/$(am__dirstamp) \ libarchive/$(DEPDIR)/$(am__dirstamp) -libarchive/libarchive_test-archive_read_support_format_ar.$(OBJEXT): \ +libarchive/test-archive_read_support_format_all.$(OBJEXT): \ libarchive/$(am__dirstamp) \ libarchive/$(DEPDIR)/$(am__dirstamp) -libarchive/libarchive_test-archive_read_support_format_by_code.$(OBJEXT): \ +libarchive/test-archive_read_support_format_ar.$(OBJEXT): \ libarchive/$(am__dirstamp) \ libarchive/$(DEPDIR)/$(am__dirstamp) -libarchive/libarchive_test-archive_read_support_format_cab.$(OBJEXT): \ +libarchive/test-archive_read_support_format_by_code.$(OBJEXT): \ libarchive/$(am__dirstamp) \ libarchive/$(DEPDIR)/$(am__dirstamp) -libarchive/libarchive_test-archive_read_support_format_cpio.$(OBJEXT): \ +libarchive/test-archive_read_support_format_cab.$(OBJEXT): \ libarchive/$(am__dirstamp) \ libarchive/$(DEPDIR)/$(am__dirstamp) -libarchive/libarchive_test-archive_read_support_format_empty.$(OBJEXT): \ +libarchive/test-archive_read_support_format_cpio.$(OBJEXT): \ libarchive/$(am__dirstamp) \ libarchive/$(DEPDIR)/$(am__dirstamp) -libarchive/libarchive_test-archive_read_support_format_iso9660.$(OBJEXT): \ +libarchive/test-archive_read_support_format_empty.$(OBJEXT): \ libarchive/$(am__dirstamp) \ libarchive/$(DEPDIR)/$(am__dirstamp) -libarchive/libarchive_test-archive_read_support_format_lha.$(OBJEXT): \ +libarchive/test-archive_read_support_format_iso9660.$(OBJEXT): \ libarchive/$(am__dirstamp) \ libarchive/$(DEPDIR)/$(am__dirstamp) -libarchive/libarchive_test-archive_read_support_format_mtree.$(OBJEXT): \ +libarchive/test-archive_read_support_format_lha.$(OBJEXT): \ libarchive/$(am__dirstamp) \ libarchive/$(DEPDIR)/$(am__dirstamp) -libarchive/libarchive_test-archive_read_support_format_rar.$(OBJEXT): \ +libarchive/test-archive_read_support_format_mtree.$(OBJEXT): \ libarchive/$(am__dirstamp) \ libarchive/$(DEPDIR)/$(am__dirstamp) -libarchive/libarchive_test-archive_read_support_format_rar5.$(OBJEXT): \ +libarchive/test-archive_read_support_format_rar.$(OBJEXT): \ libarchive/$(am__dirstamp) \ libarchive/$(DEPDIR)/$(am__dirstamp) -libarchive/libarchive_test-archive_read_support_format_raw.$(OBJEXT): \ +libarchive/test-archive_read_support_format_rar5.$(OBJEXT): \ libarchive/$(am__dirstamp) \ libarchive/$(DEPDIR)/$(am__dirstamp) -libarchive/libarchive_test-archive_read_support_format_tar.$(OBJEXT): \ +libarchive/test-archive_read_support_format_raw.$(OBJEXT): \ libarchive/$(am__dirstamp) \ libarchive/$(DEPDIR)/$(am__dirstamp) -libarchive/libarchive_test-archive_read_support_format_warc.$(OBJEXT): \ +libarchive/test-archive_read_support_format_tar.$(OBJEXT): \ libarchive/$(am__dirstamp) \ libarchive/$(DEPDIR)/$(am__dirstamp) -libarchive/libarchive_test-archive_read_support_format_xar.$(OBJEXT): \ +libarchive/test-archive_read_support_format_warc.$(OBJEXT): \ libarchive/$(am__dirstamp) \ libarchive/$(DEPDIR)/$(am__dirstamp) -libarchive/libarchive_test-archive_read_support_format_zip.$(OBJEXT): \ +libarchive/test-archive_read_support_format_xar.$(OBJEXT): \ libarchive/$(am__dirstamp) \ libarchive/$(DEPDIR)/$(am__dirstamp) -libarchive/libarchive_test-archive_string.$(OBJEXT): \ +libarchive/test-archive_read_support_format_zip.$(OBJEXT): \ libarchive/$(am__dirstamp) \ libarchive/$(DEPDIR)/$(am__dirstamp) -libarchive/libarchive_test-archive_string_sprintf.$(OBJEXT): \ - libarchive/$(am__dirstamp) \ +libarchive/test-archive_string.$(OBJEXT): libarchive/$(am__dirstamp) \ libarchive/$(DEPDIR)/$(am__dirstamp) -libarchive/libarchive_test-archive_util.$(OBJEXT): \ +libarchive/test-archive_string_sprintf.$(OBJEXT): \ libarchive/$(am__dirstamp) \ libarchive/$(DEPDIR)/$(am__dirstamp) -libarchive/libarchive_test-archive_version_details.$(OBJEXT): \ - libarchive/$(am__dirstamp) \ +libarchive/test-archive_util.$(OBJEXT): libarchive/$(am__dirstamp) \ libarchive/$(DEPDIR)/$(am__dirstamp) -libarchive/libarchive_test-archive_virtual.$(OBJEXT): \ +libarchive/test-archive_version_details.$(OBJEXT): \ libarchive/$(am__dirstamp) \ libarchive/$(DEPDIR)/$(am__dirstamp) -libarchive/libarchive_test-archive_write.$(OBJEXT): \ - libarchive/$(am__dirstamp) \ +libarchive/test-archive_virtual.$(OBJEXT): libarchive/$(am__dirstamp) \ + libarchive/$(DEPDIR)/$(am__dirstamp) +libarchive/test-archive_write.$(OBJEXT): libarchive/$(am__dirstamp) \ libarchive/$(DEPDIR)/$(am__dirstamp) -libarchive/libarchive_test-archive_write_disk_posix.$(OBJEXT): \ +libarchive/test-archive_write_disk_posix.$(OBJEXT): \ libarchive/$(am__dirstamp) \ libarchive/$(DEPDIR)/$(am__dirstamp) -libarchive/libarchive_test-archive_write_disk_set_standard_lookup.$(OBJEXT): \ +libarchive/test-archive_write_disk_set_standard_lookup.$(OBJEXT): \ libarchive/$(am__dirstamp) \ libarchive/$(DEPDIR)/$(am__dirstamp) -libarchive/libarchive_test-archive_write_open_fd.$(OBJEXT): \ +libarchive/test-archive_write_open_fd.$(OBJEXT): \ libarchive/$(am__dirstamp) \ libarchive/$(DEPDIR)/$(am__dirstamp) -libarchive/libarchive_test-archive_write_open_file.$(OBJEXT): \ +libarchive/test-archive_write_open_file.$(OBJEXT): \ libarchive/$(am__dirstamp) \ libarchive/$(DEPDIR)/$(am__dirstamp) -libarchive/libarchive_test-archive_write_open_filename.$(OBJEXT): \ +libarchive/test-archive_write_open_filename.$(OBJEXT): \ libarchive/$(am__dirstamp) \ libarchive/$(DEPDIR)/$(am__dirstamp) -libarchive/libarchive_test-archive_write_open_memory.$(OBJEXT): \ +libarchive/test-archive_write_open_memory.$(OBJEXT): \ libarchive/$(am__dirstamp) \ libarchive/$(DEPDIR)/$(am__dirstamp) -libarchive/libarchive_test-archive_write_add_filter.$(OBJEXT): \ +libarchive/test-archive_write_add_filter.$(OBJEXT): \ libarchive/$(am__dirstamp) \ libarchive/$(DEPDIR)/$(am__dirstamp) -libarchive/libarchive_test-archive_write_add_filter_b64encode.$(OBJEXT): \ +libarchive/test-archive_write_add_filter_b64encode.$(OBJEXT): \ libarchive/$(am__dirstamp) \ libarchive/$(DEPDIR)/$(am__dirstamp) -libarchive/libarchive_test-archive_write_add_filter_by_name.$(OBJEXT): \ +libarchive/test-archive_write_add_filter_by_name.$(OBJEXT): \ libarchive/$(am__dirstamp) \ libarchive/$(DEPDIR)/$(am__dirstamp) -libarchive/libarchive_test-archive_write_add_filter_bzip2.$(OBJEXT): \ +libarchive/test-archive_write_add_filter_bzip2.$(OBJEXT): \ libarchive/$(am__dirstamp) \ libarchive/$(DEPDIR)/$(am__dirstamp) -libarchive/libarchive_test-archive_write_add_filter_compress.$(OBJEXT): \ +libarchive/test-archive_write_add_filter_compress.$(OBJEXT): \ libarchive/$(am__dirstamp) \ libarchive/$(DEPDIR)/$(am__dirstamp) -libarchive/libarchive_test-archive_write_add_filter_grzip.$(OBJEXT): \ +libarchive/test-archive_write_add_filter_grzip.$(OBJEXT): \ libarchive/$(am__dirstamp) \ libarchive/$(DEPDIR)/$(am__dirstamp) -libarchive/libarchive_test-archive_write_add_filter_gzip.$(OBJEXT): \ +libarchive/test-archive_write_add_filter_gzip.$(OBJEXT): \ libarchive/$(am__dirstamp) \ libarchive/$(DEPDIR)/$(am__dirstamp) -libarchive/libarchive_test-archive_write_add_filter_lrzip.$(OBJEXT): \ +libarchive/test-archive_write_add_filter_lrzip.$(OBJEXT): \ libarchive/$(am__dirstamp) \ libarchive/$(DEPDIR)/$(am__dirstamp) -libarchive/libarchive_test-archive_write_add_filter_lz4.$(OBJEXT): \ +libarchive/test-archive_write_add_filter_lz4.$(OBJEXT): \ libarchive/$(am__dirstamp) \ libarchive/$(DEPDIR)/$(am__dirstamp) -libarchive/libarchive_test-archive_write_add_filter_lzop.$(OBJEXT): \ +libarchive/test-archive_write_add_filter_lzop.$(OBJEXT): \ libarchive/$(am__dirstamp) \ libarchive/$(DEPDIR)/$(am__dirstamp) -libarchive/libarchive_test-archive_write_add_filter_none.$(OBJEXT): \ +libarchive/test-archive_write_add_filter_none.$(OBJEXT): \ libarchive/$(am__dirstamp) \ libarchive/$(DEPDIR)/$(am__dirstamp) -libarchive/libarchive_test-archive_write_add_filter_program.$(OBJEXT): \ +libarchive/test-archive_write_add_filter_program.$(OBJEXT): \ libarchive/$(am__dirstamp) \ libarchive/$(DEPDIR)/$(am__dirstamp) -libarchive/libarchive_test-archive_write_add_filter_uuencode.$(OBJEXT): \ +libarchive/test-archive_write_add_filter_uuencode.$(OBJEXT): \ libarchive/$(am__dirstamp) \ libarchive/$(DEPDIR)/$(am__dirstamp) -libarchive/libarchive_test-archive_write_add_filter_xz.$(OBJEXT): \ +libarchive/test-archive_write_add_filter_xz.$(OBJEXT): \ libarchive/$(am__dirstamp) \ libarchive/$(DEPDIR)/$(am__dirstamp) -libarchive/libarchive_test-archive_write_add_filter_zstd.$(OBJEXT): \ +libarchive/test-archive_write_add_filter_zstd.$(OBJEXT): \ libarchive/$(am__dirstamp) \ libarchive/$(DEPDIR)/$(am__dirstamp) -libarchive/libarchive_test-archive_write_set_format.$(OBJEXT): \ +libarchive/test-archive_write_set_format.$(OBJEXT): \ libarchive/$(am__dirstamp) \ libarchive/$(DEPDIR)/$(am__dirstamp) -libarchive/libarchive_test-archive_write_set_format_7zip.$(OBJEXT): \ +libarchive/test-archive_write_set_format_7zip.$(OBJEXT): \ libarchive/$(am__dirstamp) \ libarchive/$(DEPDIR)/$(am__dirstamp) -libarchive/libarchive_test-archive_write_set_format_ar.$(OBJEXT): \ +libarchive/test-archive_write_set_format_ar.$(OBJEXT): \ libarchive/$(am__dirstamp) \ libarchive/$(DEPDIR)/$(am__dirstamp) -libarchive/libarchive_test-archive_write_set_format_by_name.$(OBJEXT): \ +libarchive/test-archive_write_set_format_by_name.$(OBJEXT): \ libarchive/$(am__dirstamp) \ libarchive/$(DEPDIR)/$(am__dirstamp) -libarchive/libarchive_test-archive_write_set_format_cpio.$(OBJEXT): \ +libarchive/test-archive_write_set_format_cpio.$(OBJEXT): \ libarchive/$(am__dirstamp) \ libarchive/$(DEPDIR)/$(am__dirstamp) -libarchive/libarchive_test-archive_write_set_format_cpio_newc.$(OBJEXT): \ +libarchive/test-archive_write_set_format_cpio_binary.$(OBJEXT): \ libarchive/$(am__dirstamp) \ libarchive/$(DEPDIR)/$(am__dirstamp) -libarchive/libarchive_test-archive_write_set_format_filter_by_ext.$(OBJEXT): \ +libarchive/test-archive_write_set_format_cpio_newc.$(OBJEXT): \ libarchive/$(am__dirstamp) \ libarchive/$(DEPDIR)/$(am__dirstamp) -libarchive/libarchive_test-archive_write_set_format_iso9660.$(OBJEXT): \ +libarchive/test-archive_write_set_format_cpio_odc.$(OBJEXT): \ libarchive/$(am__dirstamp) \ libarchive/$(DEPDIR)/$(am__dirstamp) -libarchive/libarchive_test-archive_write_set_format_mtree.$(OBJEXT): \ +libarchive/test-archive_write_set_format_filter_by_ext.$(OBJEXT): \ libarchive/$(am__dirstamp) \ libarchive/$(DEPDIR)/$(am__dirstamp) -libarchive/libarchive_test-archive_write_set_format_pax.$(OBJEXT): \ +libarchive/test-archive_write_set_format_iso9660.$(OBJEXT): \ libarchive/$(am__dirstamp) \ libarchive/$(DEPDIR)/$(am__dirstamp) -libarchive/libarchive_test-archive_write_set_format_raw.$(OBJEXT): \ +libarchive/test-archive_write_set_format_mtree.$(OBJEXT): \ libarchive/$(am__dirstamp) \ libarchive/$(DEPDIR)/$(am__dirstamp) -libarchive/libarchive_test-archive_write_set_format_shar.$(OBJEXT): \ +libarchive/test-archive_write_set_format_pax.$(OBJEXT): \ libarchive/$(am__dirstamp) \ libarchive/$(DEPDIR)/$(am__dirstamp) -libarchive/libarchive_test-archive_write_set_format_ustar.$(OBJEXT): \ +libarchive/test-archive_write_set_format_raw.$(OBJEXT): \ libarchive/$(am__dirstamp) \ libarchive/$(DEPDIR)/$(am__dirstamp) -libarchive/libarchive_test-archive_write_set_format_v7tar.$(OBJEXT): \ +libarchive/test-archive_write_set_format_shar.$(OBJEXT): \ libarchive/$(am__dirstamp) \ libarchive/$(DEPDIR)/$(am__dirstamp) -libarchive/libarchive_test-archive_write_set_format_gnutar.$(OBJEXT): \ +libarchive/test-archive_write_set_format_ustar.$(OBJEXT): \ libarchive/$(am__dirstamp) \ libarchive/$(DEPDIR)/$(am__dirstamp) -libarchive/libarchive_test-archive_write_set_format_warc.$(OBJEXT): \ +libarchive/test-archive_write_set_format_v7tar.$(OBJEXT): \ libarchive/$(am__dirstamp) \ libarchive/$(DEPDIR)/$(am__dirstamp) -libarchive/libarchive_test-archive_write_set_format_xar.$(OBJEXT): \ +libarchive/test-archive_write_set_format_gnutar.$(OBJEXT): \ libarchive/$(am__dirstamp) \ libarchive/$(DEPDIR)/$(am__dirstamp) -libarchive/libarchive_test-archive_write_set_format_zip.$(OBJEXT): \ +libarchive/test-archive_write_set_format_warc.$(OBJEXT): \ libarchive/$(am__dirstamp) \ libarchive/$(DEPDIR)/$(am__dirstamp) -libarchive/libarchive_test-archive_write_set_options.$(OBJEXT): \ +libarchive/test-archive_write_set_format_xar.$(OBJEXT): \ libarchive/$(am__dirstamp) \ libarchive/$(DEPDIR)/$(am__dirstamp) -libarchive/libarchive_test-archive_write_set_passphrase.$(OBJEXT): \ +libarchive/test-archive_write_set_format_zip.$(OBJEXT): \ libarchive/$(am__dirstamp) \ libarchive/$(DEPDIR)/$(am__dirstamp) -libarchive/libarchive_test-filter_fork_posix.$(OBJEXT): \ +libarchive/test-archive_write_set_options.$(OBJEXT): \ libarchive/$(am__dirstamp) \ libarchive/$(DEPDIR)/$(am__dirstamp) -libarchive/libarchive_test-xxhash.$(OBJEXT): \ +libarchive/test-archive_write_set_passphrase.$(OBJEXT): \ libarchive/$(am__dirstamp) \ libarchive/$(DEPDIR)/$(am__dirstamp) -libarchive/libarchive_test-archive_entry_copy_bhfi.$(OBJEXT): \ +libarchive/test-filter_fork_posix.$(OBJEXT): \ libarchive/$(am__dirstamp) \ libarchive/$(DEPDIR)/$(am__dirstamp) -libarchive/libarchive_test-archive_read_disk_windows.$(OBJEXT): \ +libarchive/test-xxhash.$(OBJEXT): libarchive/$(am__dirstamp) \ + libarchive/$(DEPDIR)/$(am__dirstamp) +libarchive/test-archive_entry_copy_bhfi.$(OBJEXT): \ libarchive/$(am__dirstamp) \ libarchive/$(DEPDIR)/$(am__dirstamp) -libarchive/libarchive_test-archive_windows.$(OBJEXT): \ +libarchive/test-archive_read_disk_windows.$(OBJEXT): \ libarchive/$(am__dirstamp) \ libarchive/$(DEPDIR)/$(am__dirstamp) -libarchive/libarchive_test-archive_write_disk_windows.$(OBJEXT): \ +libarchive/test-archive_windows.$(OBJEXT): libarchive/$(am__dirstamp) \ + libarchive/$(DEPDIR)/$(am__dirstamp) +libarchive/test-archive_write_disk_windows.$(OBJEXT): \ libarchive/$(am__dirstamp) \ libarchive/$(DEPDIR)/$(am__dirstamp) -libarchive/libarchive_test-filter_fork_windows.$(OBJEXT): \ +libarchive/test-filter_fork_windows.$(OBJEXT): \ libarchive/$(am__dirstamp) \ libarchive/$(DEPDIR)/$(am__dirstamp) -libarchive/libarchive_test-archive_blake2s_ref.$(OBJEXT): \ +libarchive/test-archive_blake2s_ref.$(OBJEXT): \ libarchive/$(am__dirstamp) \ libarchive/$(DEPDIR)/$(am__dirstamp) -libarchive/libarchive_test-archive_blake2sp_ref.$(OBJEXT): \ +libarchive/test-archive_blake2sp_ref.$(OBJEXT): \ libarchive/$(am__dirstamp) \ libarchive/$(DEPDIR)/$(am__dirstamp) -libarchive/libarchive_test-archive_disk_acl_linux.$(OBJEXT): \ +libarchive/test-archive_disk_acl_linux.$(OBJEXT): \ libarchive/$(am__dirstamp) \ libarchive/$(DEPDIR)/$(am__dirstamp) -libarchive/libarchive_test-archive_disk_acl_sunos.$(OBJEXT): \ +libarchive/test-archive_disk_acl_sunos.$(OBJEXT): \ libarchive/$(am__dirstamp) \ libarchive/$(DEPDIR)/$(am__dirstamp) -libarchive/libarchive_test-archive_disk_acl_darwin.$(OBJEXT): \ +libarchive/test-archive_disk_acl_darwin.$(OBJEXT): \ libarchive/$(am__dirstamp) \ libarchive/$(DEPDIR)/$(am__dirstamp) -libarchive/libarchive_test-archive_disk_acl_freebsd.$(OBJEXT): \ +libarchive/test-archive_disk_acl_freebsd.$(OBJEXT): \ libarchive/$(am__dirstamp) \ libarchive/$(DEPDIR)/$(am__dirstamp) test_utils/libarchive_test-test_utils.$(OBJEXT): \ @@ -4393,823 +5109,832 @@ libarchive/test/$(am__dirstamp): libarchive/test/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) libarchive/test/$(DEPDIR) @: > libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-read_open_memory.$(OBJEXT): \ +libarchive/test/test-read_open_memory.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_acl_nfs4.$(OBJEXT): \ +libarchive/test/test-test_acl_nfs4.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_acl_pax.$(OBJEXT): \ +libarchive/test/test-test_acl_pax.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_acl_platform_nfs4.$(OBJEXT): \ +libarchive/test/test-test_acl_platform_nfs4.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_acl_platform_posix1e.$(OBJEXT): \ +libarchive/test/test-test_acl_platform_posix1e.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_acl_posix1e.$(OBJEXT): \ +libarchive/test/test-test_acl_posix1e.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_acl_text.$(OBJEXT): \ +libarchive/test/test-test_acl_text.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_archive_api_feature.$(OBJEXT): \ +libarchive/test/test-test_archive_api_feature.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_archive_clear_error.$(OBJEXT): \ +libarchive/test/test-test_archive_clear_error.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_archive_cmdline.$(OBJEXT): \ +libarchive/test/test-test_archive_cmdline.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_archive_digest.$(OBJEXT): \ +libarchive/test/test-test_archive_digest.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_archive_getdate.$(OBJEXT): \ +libarchive/test/test-test_archive_getdate.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_archive_match_owner.$(OBJEXT): \ +libarchive/test/test-test_archive_match_owner.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_archive_match_path.$(OBJEXT): \ +libarchive/test/test-test_archive_match_path.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_archive_match_time.$(OBJEXT): \ +libarchive/test/test-test_archive_match_time.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_archive_pathmatch.$(OBJEXT): \ +libarchive/test/test-test_archive_pathmatch.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_archive_read_add_passphrase.$(OBJEXT): \ +libarchive/test/test-test_archive_read_add_passphrase.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_archive_read_close_twice.$(OBJEXT): \ +libarchive/test/test-test_archive_read_close_twice.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_archive_read_close_twice_open_fd.$(OBJEXT): \ +libarchive/test/test-test_archive_read_close_twice_open_fd.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_archive_read_close_twice_open_filename.$(OBJEXT): \ +libarchive/test/test-test_archive_read_close_twice_open_filename.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_archive_read_multiple_data_objects.$(OBJEXT): \ +libarchive/test/test-test_archive_read_multiple_data_objects.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_archive_read_next_header_empty.$(OBJEXT): \ +libarchive/test/test-test_archive_read_next_header_empty.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_archive_read_next_header_raw.$(OBJEXT): \ +libarchive/test/test-test_archive_read_next_header_raw.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_archive_read_open2.$(OBJEXT): \ +libarchive/test/test-test_archive_read_open2.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_archive_read_set_filter_option.$(OBJEXT): \ +libarchive/test/test-test_archive_read_set_filter_option.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_archive_read_set_format_option.$(OBJEXT): \ +libarchive/test/test-test_archive_read_set_format_option.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_archive_read_set_option.$(OBJEXT): \ +libarchive/test/test-test_archive_read_set_option.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_archive_read_set_options.$(OBJEXT): \ +libarchive/test/test-test_archive_read_set_options.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_archive_read_support.$(OBJEXT): \ +libarchive/test/test-test_archive_read_support.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_archive_set_error.$(OBJEXT): \ +libarchive/test/test-test_archive_set_error.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_archive_string.$(OBJEXT): \ +libarchive/test/test-test_archive_string.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_archive_string_conversion.$(OBJEXT): \ +libarchive/test/test-test_archive_string_conversion.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_archive_write_add_filter_by_name.$(OBJEXT): \ +libarchive/test/test-test_archive_write_add_filter_by_name.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_archive_write_set_filter_option.$(OBJEXT): \ +libarchive/test/test-test_archive_write_set_filter_option.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_archive_write_set_format_by_name.$(OBJEXT): \ +libarchive/test/test-test_archive_write_set_format_by_name.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_archive_write_set_format_filter_by_ext.$(OBJEXT): \ +libarchive/test/test-test_archive_write_set_format_filter_by_ext.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_archive_write_set_format_option.$(OBJEXT): \ +libarchive/test/test-test_archive_write_set_format_option.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_archive_write_set_option.$(OBJEXT): \ +libarchive/test/test-test_archive_write_set_option.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_archive_write_set_options.$(OBJEXT): \ +libarchive/test/test-test_archive_write_set_options.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_archive_write_set_passphrase.$(OBJEXT): \ +libarchive/test/test-test_archive_write_set_passphrase.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_bad_fd.$(OBJEXT): \ +libarchive/test/test-test_bad_fd.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_compat_bzip2.$(OBJEXT): \ +libarchive/test/test-test_compat_bzip2.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_compat_cpio.$(OBJEXT): \ +libarchive/test/test-test_compat_cpio.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_compat_gtar.$(OBJEXT): \ +libarchive/test/test-test_compat_gtar.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_compat_gzip.$(OBJEXT): \ +libarchive/test/test-test_compat_gzip.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_compat_lz4.$(OBJEXT): \ +libarchive/test/test-test_compat_lz4.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_compat_lzip.$(OBJEXT): \ +libarchive/test/test-test_compat_lzip.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_compat_lzma.$(OBJEXT): \ +libarchive/test/test-test_compat_lzma.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_compat_lzop.$(OBJEXT): \ +libarchive/test/test-test_compat_lzop.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_compat_mac.$(OBJEXT): \ +libarchive/test/test-test_compat_mac.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_compat_perl_archive_tar.$(OBJEXT): \ +libarchive/test/test-test_compat_perl_archive_tar.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_compat_plexus_archiver_tar.$(OBJEXT): \ +libarchive/test/test-test_compat_plexus_archiver_tar.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_compat_solaris_tar_acl.$(OBJEXT): \ +libarchive/test/test-test_compat_solaris_tar_acl.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_compat_solaris_pax_sparse.$(OBJEXT): \ +libarchive/test/test-test_compat_solaris_pax_sparse.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_compat_star_acl.$(OBJEXT): \ +libarchive/test/test-test_compat_star_acl.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_compat_tar_hardlink.$(OBJEXT): \ +libarchive/test/test-test_compat_tar_hardlink.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_compat_uudecode.$(OBJEXT): \ +libarchive/test/test-test_compat_uudecode.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_compat_uudecode_large.$(OBJEXT): \ +libarchive/test/test-test_compat_uudecode_large.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_compat_xz.$(OBJEXT): \ +libarchive/test/test-test_compat_xz.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_compat_zip.$(OBJEXT): \ +libarchive/test/test-test_compat_zip.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_compat_zstd.$(OBJEXT): \ +libarchive/test/test-test_compat_zstd.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_empty_write.$(OBJEXT): \ +libarchive/test/test-test_empty_write.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_entry.$(OBJEXT): \ +libarchive/test/test-test_entry.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_entry_strmode.$(OBJEXT): \ +libarchive/test/test-test_entry_strmode.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_extattr_freebsd.$(OBJEXT): \ +libarchive/test/test-test_extattr_freebsd.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_filter_count.$(OBJEXT): \ +libarchive/test/test-test_filter_count.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_fuzz.$(OBJEXT): \ +libarchive/test/test-test_fuzz.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_gnutar_filename_encoding.$(OBJEXT): \ +libarchive/test/test-test_gnutar_filename_encoding.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_link_resolver.$(OBJEXT): \ +libarchive/test/test-test_link_resolver.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_open_failure.$(OBJEXT): \ +libarchive/test/test-test_open_failure.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_open_fd.$(OBJEXT): \ +libarchive/test/test-test_open_fd.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_open_file.$(OBJEXT): \ +libarchive/test/test-test_open_file.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_open_filename.$(OBJEXT): \ +libarchive/test/test-test_open_filename.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_pax_filename_encoding.$(OBJEXT): \ +libarchive/test/test-test_pax_filename_encoding.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_pax_xattr_header.$(OBJEXT): \ +libarchive/test/test-test_pax_xattr_header.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_read_data_large.$(OBJEXT): \ +libarchive/test/test-test_read_data_large.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_read_disk.$(OBJEXT): \ +libarchive/test/test-test_read_disk.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_read_disk_directory_traversals.$(OBJEXT): \ +libarchive/test/test-test_read_disk_directory_traversals.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_read_disk_entry_from_file.$(OBJEXT): \ +libarchive/test/test-test_read_disk_entry_from_file.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_read_extract.$(OBJEXT): \ +libarchive/test/test-test_read_extract.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_read_file_nonexistent.$(OBJEXT): \ +libarchive/test/test-test_read_file_nonexistent.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_read_filter_compress.$(OBJEXT): \ +libarchive/test/test-test_read_filter_compress.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_read_filter_grzip.$(OBJEXT): \ +libarchive/test/test-test_read_filter_grzip.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_read_filter_lrzip.$(OBJEXT): \ +libarchive/test/test-test_read_filter_lrzip.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_read_filter_lzop.$(OBJEXT): \ +libarchive/test/test-test_read_filter_lzop.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_read_filter_lzop_multiple_parts.$(OBJEXT): \ +libarchive/test/test-test_read_filter_lzop_multiple_parts.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_read_filter_program.$(OBJEXT): \ +libarchive/test/test-test_read_filter_program.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_read_filter_program_signature.$(OBJEXT): \ +libarchive/test/test-test_read_filter_program_signature.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_read_filter_uudecode.$(OBJEXT): \ +libarchive/test/test-test_read_filter_uudecode.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_read_format_7zip.$(OBJEXT): \ +libarchive/test/test-test_read_format_7zip.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_read_format_7zip_encryption_data.$(OBJEXT): \ +libarchive/test/test-test_read_format_7zip_encryption_data.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_read_format_7zip_encryption_partially.$(OBJEXT): \ +libarchive/test/test-test_read_format_7zip_encryption_partially.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_read_format_7zip_encryption_header.$(OBJEXT): \ +libarchive/test/test-test_read_format_7zip_encryption_header.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_read_format_7zip_malformed.$(OBJEXT): \ +libarchive/test/test-test_read_format_7zip_malformed.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_read_format_7zip_packinfo_digests.$(OBJEXT): \ +libarchive/test/test-test_read_format_7zip_packinfo_digests.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_read_format_ar.$(OBJEXT): \ +libarchive/test/test-test_read_format_ar.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_read_format_cab.$(OBJEXT): \ +libarchive/test/test-test_read_format_cab.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_read_format_cab_filename.$(OBJEXT): \ +libarchive/test/test-test_read_format_cab_filename.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_read_format_cpio_afio.$(OBJEXT): \ +libarchive/test/test-test_read_format_cpio_afio.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_read_format_cpio_bin.$(OBJEXT): \ +libarchive/test/test-test_read_format_cpio_bin.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_read_format_cpio_bin_Z.$(OBJEXT): \ +libarchive/test/test-test_read_format_cpio_bin_Z.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_read_format_cpio_bin_be.$(OBJEXT): \ +libarchive/test/test-test_read_format_cpio_bin_be.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_read_format_cpio_bin_bz2.$(OBJEXT): \ +libarchive/test/test-test_read_format_cpio_bin_bz2.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_read_format_cpio_bin_gz.$(OBJEXT): \ +libarchive/test/test-test_read_format_cpio_bin_gz.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_read_format_cpio_bin_le.$(OBJEXT): \ +libarchive/test/test-test_read_format_cpio_bin_le.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_read_format_cpio_bin_lzip.$(OBJEXT): \ +libarchive/test/test-test_read_format_cpio_bin_lzip.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_read_format_cpio_bin_lzma.$(OBJEXT): \ +libarchive/test/test-test_read_format_cpio_bin_lzma.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_read_format_cpio_bin_xz.$(OBJEXT): \ +libarchive/test/test-test_read_format_cpio_bin_xz.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_read_format_cpio_filename.$(OBJEXT): \ +libarchive/test/test-test_read_format_cpio_filename.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_read_format_cpio_odc.$(OBJEXT): \ +libarchive/test/test-test_read_format_cpio_odc.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_read_format_cpio_svr4_bzip2_rpm.$(OBJEXT): \ +libarchive/test/test-test_read_format_cpio_svr4_bzip2_rpm.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_read_format_cpio_svr4_gzip.$(OBJEXT): \ +libarchive/test/test-test_read_format_cpio_svr4_gzip.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_read_format_cpio_svr4_gzip_rpm.$(OBJEXT): \ +libarchive/test/test-test_read_format_cpio_svr4_gzip_rpm.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_read_format_cpio_svr4c_Z.$(OBJEXT): \ +libarchive/test/test-test_read_format_cpio_svr4c_Z.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_read_format_empty.$(OBJEXT): \ +libarchive/test/test-test_read_format_empty.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_read_format_gtar_filename.$(OBJEXT): \ +libarchive/test/test-test_read_format_gtar_filename.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_read_format_gtar_gz.$(OBJEXT): \ +libarchive/test/test-test_read_format_gtar_gz.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_read_format_gtar_lzma.$(OBJEXT): \ +libarchive/test/test-test_read_format_gtar_lzma.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_read_format_gtar_sparse.$(OBJEXT): \ +libarchive/test/test-test_read_format_gtar_sparse.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_read_format_gtar_sparse_skip_entry.$(OBJEXT): \ +libarchive/test/test-test_read_format_gtar_sparse_skip_entry.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_read_format_iso_Z.$(OBJEXT): \ +libarchive/test/test-test_read_format_iso_Z.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_read_format_iso_multi_extent.$(OBJEXT): \ +libarchive/test/test-test_read_format_iso_multi_extent.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_read_format_iso_xorriso.$(OBJEXT): \ +libarchive/test/test-test_read_format_iso_xorriso.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_read_format_isojoliet_bz2.$(OBJEXT): \ +libarchive/test/test-test_read_format_isojoliet_bz2.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_read_format_isojoliet_long.$(OBJEXT): \ +libarchive/test/test-test_read_format_isojoliet_long.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_read_format_isojoliet_rr.$(OBJEXT): \ +libarchive/test/test-test_read_format_isojoliet_rr.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_read_format_isojoliet_versioned.$(OBJEXT): \ +libarchive/test/test-test_read_format_isojoliet_versioned.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_read_format_isorr_bz2.$(OBJEXT): \ +libarchive/test/test-test_read_format_isorr_bz2.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_read_format_isorr_ce.$(OBJEXT): \ +libarchive/test/test-test_read_format_isorr_ce.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_read_format_isorr_new_bz2.$(OBJEXT): \ +libarchive/test/test-test_read_format_isorr_new_bz2.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_read_format_isorr_rr_moved.$(OBJEXT): \ +libarchive/test/test-test_read_format_isorr_rr_moved.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_read_format_isozisofs_bz2.$(OBJEXT): \ +libarchive/test/test-test_read_format_isozisofs_bz2.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_read_format_lha.$(OBJEXT): \ +libarchive/test/test-test_read_format_lha.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_read_format_lha_bugfix_0.$(OBJEXT): \ +libarchive/test/test-test_read_format_lha_bugfix_0.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_read_format_lha_filename.$(OBJEXT): \ +libarchive/test/test-test_read_format_lha_filename.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_read_format_lha_filename_utf16.$(OBJEXT): \ +libarchive/test/test-test_read_format_lha_filename_utf16.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_read_format_mtree.$(OBJEXT): \ +libarchive/test/test-test_read_format_mtree.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_read_format_mtree_crash747.$(OBJEXT): \ +libarchive/test/test-test_read_format_mtree_crash747.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_read_format_pax_bz2.$(OBJEXT): \ +libarchive/test/test-test_read_format_pax_bz2.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_read_format_rar.$(OBJEXT): \ +libarchive/test/test-test_read_format_rar.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_read_format_rar_encryption_data.$(OBJEXT): \ +libarchive/test/test-test_read_format_rar_encryption_data.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_read_format_rar_encryption_partially.$(OBJEXT): \ +libarchive/test/test-test_read_format_rar_encryption_partially.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_read_format_rar_encryption_header.$(OBJEXT): \ +libarchive/test/test-test_read_format_rar_encryption_header.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_read_format_rar_invalid1.$(OBJEXT): \ +libarchive/test/test-test_read_format_rar_invalid1.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_read_format_rar5.$(OBJEXT): \ +libarchive/test/test-test_read_format_rar5.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_read_format_raw.$(OBJEXT): \ +libarchive/test/test-test_read_format_raw.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_read_format_tar.$(OBJEXT): \ +libarchive/test/test-test_read_format_tar.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_read_format_tar_concatenated.$(OBJEXT): \ +libarchive/test/test-test_read_format_tar_concatenated.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_read_format_tar_empty_pax.$(OBJEXT): \ +libarchive/test/test-test_read_format_tar_empty_pax.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_read_format_tar_empty_filename.$(OBJEXT): \ +libarchive/test/test-test_read_format_tar_empty_filename.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_read_format_tar_empty_with_gnulabel.$(OBJEXT): \ +libarchive/test/test-test_read_format_tar_empty_with_gnulabel.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_read_format_tar_filename.$(OBJEXT): \ +libarchive/test/test-test_read_format_tar_filename.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_read_format_tbz.$(OBJEXT): \ +libarchive/test/test-test_read_format_tbz.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_read_format_tgz.$(OBJEXT): \ +libarchive/test/test-test_read_format_tgz.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_read_format_tlz.$(OBJEXT): \ +libarchive/test/test-test_read_format_tlz.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_read_format_txz.$(OBJEXT): \ +libarchive/test/test-test_read_format_txz.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_read_format_tz.$(OBJEXT): \ +libarchive/test/test-test_read_format_tz.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_read_format_ustar_filename.$(OBJEXT): \ +libarchive/test/test-test_read_format_ustar_filename.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_read_format_warc.$(OBJEXT): \ +libarchive/test/test-test_read_format_warc.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_read_format_xar.$(OBJEXT): \ +libarchive/test/test-test_read_format_xar.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_read_format_zip.$(OBJEXT): \ +libarchive/test/test-test_read_format_zip.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_read_format_zip_7075_utf8_paths.$(OBJEXT): \ +libarchive/test/test-test_read_format_zip_7075_utf8_paths.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_read_format_zip_comment_stored.$(OBJEXT): \ +libarchive/test/test-test_read_format_zip_comment_stored.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_read_format_zip_encryption_data.$(OBJEXT): \ +libarchive/test/test-test_read_format_zip_encryption_data.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_read_format_zip_encryption_partially.$(OBJEXT): \ +libarchive/test/test-test_read_format_zip_encryption_partially.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_read_format_zip_encryption_header.$(OBJEXT): \ +libarchive/test/test-test_read_format_zip_encryption_header.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_read_format_zip_extra_padding.$(OBJEXT): \ +libarchive/test/test-test_read_format_zip_extra_padding.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_read_format_zip_filename.$(OBJEXT): \ +libarchive/test/test-test_read_format_zip_filename.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_read_format_zip_high_compression.$(OBJEXT): \ +libarchive/test/test-test_read_format_zip_high_compression.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_read_format_zip_jar.$(OBJEXT): \ +libarchive/test/test-test_read_format_zip_jar.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_read_format_zip_mac_metadata.$(OBJEXT): \ +libarchive/test/test-test_read_format_zip_mac_metadata.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_read_format_zip_malformed.$(OBJEXT): \ +libarchive/test/test-test_read_format_zip_malformed.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_read_format_zip_msdos.$(OBJEXT): \ +libarchive/test/test-test_read_format_zip_msdos.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_read_format_zip_nested.$(OBJEXT): \ +libarchive/test/test-test_read_format_zip_nested.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_read_format_zip_nofiletype.$(OBJEXT): \ +libarchive/test/test-test_read_format_zip_nofiletype.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_read_format_zip_padded.$(OBJEXT): \ +libarchive/test/test-test_read_format_zip_padded.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_read_format_zip_sfx.$(OBJEXT): \ +libarchive/test/test-test_read_format_zip_sfx.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_read_format_zip_traditional_encryption_data.$(OBJEXT): \ +libarchive/test/test-test_read_format_zip_traditional_encryption_data.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_read_format_zip_winzip_aes.$(OBJEXT): \ +libarchive/test/test-test_read_format_zip_winzip_aes.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_read_format_zip_winzip_aes_large.$(OBJEXT): \ +libarchive/test/test-test_read_format_zip_winzip_aes_large.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_read_format_zip_zip64.$(OBJEXT): \ +libarchive/test/test-test_read_format_zip_zip64.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_read_format_zip_with_invalid_traditional_eocd.$(OBJEXT): \ +libarchive/test/test-test_read_format_zip_with_invalid_traditional_eocd.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_read_large.$(OBJEXT): \ +libarchive/test/test-test_read_large.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_read_pax_schily_xattr.$(OBJEXT): \ +libarchive/test/test-test_read_pax_xattr_rht_security_selinux.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_read_pax_truncated.$(OBJEXT): \ +libarchive/test/test-test_read_pax_xattr_schily.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_read_position.$(OBJEXT): \ +libarchive/test/test-test_read_pax_truncated.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_read_set_format.$(OBJEXT): \ +libarchive/test/test-test_read_position.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_read_too_many_filters.$(OBJEXT): \ +libarchive/test/test-test_read_set_format.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_read_truncated.$(OBJEXT): \ +libarchive/test/test-test_read_too_many_filters.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_read_truncated_filter.$(OBJEXT): \ +libarchive/test/test-test_read_truncated.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_sparse_basic.$(OBJEXT): \ +libarchive/test/test-test_read_truncated_filter.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_tar_filenames.$(OBJEXT): \ +libarchive/test/test-test_short_writes.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_tar_large.$(OBJEXT): \ +libarchive/test/test-test_sparse_basic.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_ustar_filenames.$(OBJEXT): \ +libarchive/test/test-test_tar_filenames.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_ustar_filename_encoding.$(OBJEXT): \ +libarchive/test/test-test_tar_large.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_warn_missing_hardlink_target.$(OBJEXT): \ +libarchive/test/test-test_ustar_filenames.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_write_disk.$(OBJEXT): \ +libarchive/test/test-test_ustar_filename_encoding.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_write_disk_appledouble.$(OBJEXT): \ +libarchive/test/test-test_warn_missing_hardlink_target.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_write_disk_failures.$(OBJEXT): \ +libarchive/test/test-test_write_disk.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_write_disk_hardlink.$(OBJEXT): \ +libarchive/test/test-test_write_disk_appledouble.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_write_disk_hfs_compression.$(OBJEXT): \ +libarchive/test/test-test_write_disk_failures.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_write_disk_lookup.$(OBJEXT): \ +libarchive/test/test-test_write_disk_fixup.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_write_disk_mac_metadata.$(OBJEXT): \ +libarchive/test/test-test_write_disk_hardlink.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_write_disk_no_hfs_compression.$(OBJEXT): \ +libarchive/test/test-test_write_disk_hfs_compression.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_write_disk_perms.$(OBJEXT): \ +libarchive/test/test-test_write_disk_lookup.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_write_disk_secure.$(OBJEXT): \ +libarchive/test/test-test_write_disk_mac_metadata.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_write_disk_secure744.$(OBJEXT): \ +libarchive/test/test-test_write_disk_no_hfs_compression.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_write_disk_secure745.$(OBJEXT): \ +libarchive/test/test-test_write_disk_perms.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_write_disk_secure746.$(OBJEXT): \ +libarchive/test/test-test_write_disk_secure.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_write_disk_sparse.$(OBJEXT): \ +libarchive/test/test-test_write_disk_secure744.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_write_disk_symlink.$(OBJEXT): \ +libarchive/test/test-test_write_disk_secure745.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_write_disk_times.$(OBJEXT): \ +libarchive/test/test-test_write_disk_secure746.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_write_filter_b64encode.$(OBJEXT): \ +libarchive/test/test-test_write_disk_sparse.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_write_filter_bzip2.$(OBJEXT): \ +libarchive/test/test-test_write_disk_symlink.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_write_filter_compress.$(OBJEXT): \ +libarchive/test/test-test_write_disk_times.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_write_filter_gzip.$(OBJEXT): \ +libarchive/test/test-test_write_filter_b64encode.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_write_filter_gzip_timestamp.$(OBJEXT): \ +libarchive/test/test-test_write_filter_bzip2.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_write_filter_lrzip.$(OBJEXT): \ +libarchive/test/test-test_write_filter_compress.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_write_filter_lz4.$(OBJEXT): \ +libarchive/test/test-test_write_filter_gzip.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_write_filter_lzip.$(OBJEXT): \ +libarchive/test/test-test_write_filter_gzip_timestamp.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_write_filter_lzma.$(OBJEXT): \ +libarchive/test/test-test_write_filter_lrzip.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_write_filter_lzop.$(OBJEXT): \ +libarchive/test/test-test_write_filter_lz4.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_write_filter_program.$(OBJEXT): \ +libarchive/test/test-test_write_filter_lzip.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_write_filter_uuencode.$(OBJEXT): \ +libarchive/test/test-test_write_filter_lzma.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_write_filter_xz.$(OBJEXT): \ +libarchive/test/test-test_write_filter_lzop.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_write_filter_zstd.$(OBJEXT): \ +libarchive/test/test-test_write_filter_program.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_write_format_7zip.$(OBJEXT): \ +libarchive/test/test-test_write_filter_uuencode.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_write_format_7zip_empty.$(OBJEXT): \ +libarchive/test/test-test_write_filter_xz.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_write_format_7zip_large.$(OBJEXT): \ +libarchive/test/test-test_write_filter_zstd.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_write_format_ar.$(OBJEXT): \ +libarchive/test/test-test_write_format_7zip.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_write_format_cpio.$(OBJEXT): \ +libarchive/test/test-test_write_format_7zip_empty.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_write_format_cpio_empty.$(OBJEXT): \ +libarchive/test/test-test_write_format_7zip_large.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_write_format_cpio_newc.$(OBJEXT): \ +libarchive/test/test-test_write_format_ar.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_write_format_cpio_odc.$(OBJEXT): \ +libarchive/test/test-test_write_format_cpio.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_write_format_gnutar.$(OBJEXT): \ +libarchive/test/test-test_write_format_cpio_empty.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_write_format_gnutar_filenames.$(OBJEXT): \ +libarchive/test/test-test_write_format_cpio_newc.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_write_format_iso9660.$(OBJEXT): \ +libarchive/test/test-test_write_format_cpio_odc.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_write_format_iso9660_boot.$(OBJEXT): \ +libarchive/test/test-test_write_format_gnutar.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_write_format_iso9660_empty.$(OBJEXT): \ +libarchive/test/test-test_write_format_gnutar_filenames.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_write_format_iso9660_filename.$(OBJEXT): \ +libarchive/test/test-test_write_format_iso9660.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_write_format_iso9660_zisofs.$(OBJEXT): \ +libarchive/test/test-test_write_format_iso9660_boot.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_write_format_mtree.$(OBJEXT): \ +libarchive/test/test-test_write_format_iso9660_empty.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_write_format_mtree_absolute_path.$(OBJEXT): \ +libarchive/test/test-test_write_format_iso9660_filename.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_write_format_mtree_classic.$(OBJEXT): \ +libarchive/test/test-test_write_format_iso9660_zisofs.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_write_format_mtree_classic_indent.$(OBJEXT): \ +libarchive/test/test-test_write_format_mtree.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_write_format_mtree_fflags.$(OBJEXT): \ +libarchive/test/test-test_write_format_mtree_absolute_path.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_write_format_mtree_no_separator.$(OBJEXT): \ +libarchive/test/test-test_write_format_mtree_classic.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_write_format_mtree_quoted_filename.$(OBJEXT): \ +libarchive/test/test-test_write_format_mtree_classic_indent.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_write_format_pax.$(OBJEXT): \ +libarchive/test/test-test_write_format_mtree_fflags.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_write_format_raw.$(OBJEXT): \ +libarchive/test/test-test_write_format_mtree_no_separator.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_write_format_raw_b64.$(OBJEXT): \ +libarchive/test/test-test_write_format_mtree_quoted_filename.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_write_format_shar_empty.$(OBJEXT): \ +libarchive/test/test-test_write_format_pax.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_write_format_tar.$(OBJEXT): \ +libarchive/test/test-test_write_format_raw.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_write_format_tar_empty.$(OBJEXT): \ +libarchive/test/test-test_write_format_raw_b64.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_write_format_tar_sparse.$(OBJEXT): \ +libarchive/test/test-test_write_format_shar_empty.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_write_format_tar_ustar.$(OBJEXT): \ +libarchive/test/test-test_write_format_tar.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_write_format_tar_v7tar.$(OBJEXT): \ +libarchive/test/test-test_write_format_tar_empty.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_write_format_warc.$(OBJEXT): \ +libarchive/test/test-test_write_format_tar_sparse.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_write_format_warc_empty.$(OBJEXT): \ +libarchive/test/test-test_write_format_tar_ustar.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_write_format_xar.$(OBJEXT): \ +libarchive/test/test-test_write_format_tar_v7tar.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_write_format_xar_empty.$(OBJEXT): \ +libarchive/test/test-test_write_format_warc.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_write_format_zip.$(OBJEXT): \ +libarchive/test/test-test_write_format_warc_empty.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_write_format_zip_compression_store.$(OBJEXT): \ +libarchive/test/test-test_write_format_xar.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_write_format_zip_empty.$(OBJEXT): \ +libarchive/test/test-test_write_format_xar_empty.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_write_format_zip_empty_zip64.$(OBJEXT): \ +libarchive/test/test-test_write_format_zip.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_write_format_zip_file.$(OBJEXT): \ +libarchive/test/test-test_write_format_zip_compression_store.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_write_format_zip_file_zip64.$(OBJEXT): \ +libarchive/test/test-test_write_format_zip_empty.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_write_format_zip_large.$(OBJEXT): \ +libarchive/test/test-test_write_format_zip_empty_zip64.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_write_format_zip_zip64.$(OBJEXT): \ +libarchive/test/test-test_write_format_zip_file.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_write_open_memory.$(OBJEXT): \ +libarchive/test/test-test_write_format_zip_file_zip64.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_write_read_format_zip.$(OBJEXT): \ +libarchive/test/test-test_write_format_zip_large.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_xattr_platform.$(OBJEXT): \ +libarchive/test/test-test_write_format_zip_zip64.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) -libarchive/test/libarchive_test-test_zip_filename_encoding.$(OBJEXT): \ +libarchive/test/test-test_write_open_memory.$(OBJEXT): \ + libarchive/test/$(am__dirstamp) \ + libarchive/test/$(DEPDIR)/$(am__dirstamp) +libarchive/test/test-test_write_read_format_zip.$(OBJEXT): \ + libarchive/test/$(am__dirstamp) \ + libarchive/test/$(DEPDIR)/$(am__dirstamp) +libarchive/test/test-test_xattr_platform.$(OBJEXT): \ + libarchive/test/$(am__dirstamp) \ + libarchive/test/$(DEPDIR)/$(am__dirstamp) +libarchive/test/test-test_zip_filename_encoding.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) @@ -5235,691 +5960,706 @@ mostlyclean-compile: distclean-compile: -rm -f *.tab.c -@AMDEP_TRUE@@am__include@ @am__quote@cat/$(DEPDIR)/bsdcat-bsdcat.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@cat/$(DEPDIR)/bsdcat-cmdline.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@cat/test/$(DEPDIR)/bsdcat_test-test_0.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@cat/test/$(DEPDIR)/bsdcat_test-test_empty_gz.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@cat/test/$(DEPDIR)/bsdcat_test-test_empty_lz4.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@cat/test/$(DEPDIR)/bsdcat_test-test_empty_xz.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@cat/test/$(DEPDIR)/bsdcat_test-test_empty_zstd.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@cat/test/$(DEPDIR)/bsdcat_test-test_error.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@cat/test/$(DEPDIR)/bsdcat_test-test_error_mixed.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@cat/test/$(DEPDIR)/bsdcat_test-test_expand_Z.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@cat/test/$(DEPDIR)/bsdcat_test-test_expand_bz2.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@cat/test/$(DEPDIR)/bsdcat_test-test_expand_gz.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@cat/test/$(DEPDIR)/bsdcat_test-test_expand_lz4.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@cat/test/$(DEPDIR)/bsdcat_test-test_expand_mixed.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@cat/test/$(DEPDIR)/bsdcat_test-test_expand_plain.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@cat/test/$(DEPDIR)/bsdcat_test-test_expand_xz.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@cat/test/$(DEPDIR)/bsdcat_test-test_expand_zstd.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@cat/test/$(DEPDIR)/bsdcat_test-test_help.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@cat/test/$(DEPDIR)/bsdcat_test-test_stdin.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@cat/test/$(DEPDIR)/bsdcat_test-test_version.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@cpio/$(DEPDIR)/bsdcpio-cmdline.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@cpio/$(DEPDIR)/bsdcpio-cpio.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@cpio/$(DEPDIR)/bsdcpio-cpio_windows.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@cpio/$(DEPDIR)/bsdcpio_test-cmdline.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@cpio/test/$(DEPDIR)/bsdcpio_test-test_0.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@cpio/test/$(DEPDIR)/bsdcpio_test-test_basic.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@cpio/test/$(DEPDIR)/bsdcpio_test-test_cmdline.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@cpio/test/$(DEPDIR)/bsdcpio_test-test_extract_cpio_Z.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@cpio/test/$(DEPDIR)/bsdcpio_test-test_extract_cpio_bz2.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@cpio/test/$(DEPDIR)/bsdcpio_test-test_extract_cpio_grz.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@cpio/test/$(DEPDIR)/bsdcpio_test-test_extract_cpio_gz.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@cpio/test/$(DEPDIR)/bsdcpio_test-test_extract_cpio_lrz.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@cpio/test/$(DEPDIR)/bsdcpio_test-test_extract_cpio_lz.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@cpio/test/$(DEPDIR)/bsdcpio_test-test_extract_cpio_lz4.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@cpio/test/$(DEPDIR)/bsdcpio_test-test_extract_cpio_lzma.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@cpio/test/$(DEPDIR)/bsdcpio_test-test_extract_cpio_lzo.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@cpio/test/$(DEPDIR)/bsdcpio_test-test_extract_cpio_xz.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@cpio/test/$(DEPDIR)/bsdcpio_test-test_extract_cpio_zstd.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@cpio/test/$(DEPDIR)/bsdcpio_test-test_format_newc.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@cpio/test/$(DEPDIR)/bsdcpio_test-test_gcpio_compat.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@cpio/test/$(DEPDIR)/bsdcpio_test-test_missing_file.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@cpio/test/$(DEPDIR)/bsdcpio_test-test_option_0.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@cpio/test/$(DEPDIR)/bsdcpio_test-test_option_B_upper.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@cpio/test/$(DEPDIR)/bsdcpio_test-test_option_C_upper.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@cpio/test/$(DEPDIR)/bsdcpio_test-test_option_J_upper.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@cpio/test/$(DEPDIR)/bsdcpio_test-test_option_L_upper.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@cpio/test/$(DEPDIR)/bsdcpio_test-test_option_Z_upper.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@cpio/test/$(DEPDIR)/bsdcpio_test-test_option_a.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@cpio/test/$(DEPDIR)/bsdcpio_test-test_option_b64encode.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@cpio/test/$(DEPDIR)/bsdcpio_test-test_option_c.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@cpio/test/$(DEPDIR)/bsdcpio_test-test_option_d.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@cpio/test/$(DEPDIR)/bsdcpio_test-test_option_f.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@cpio/test/$(DEPDIR)/bsdcpio_test-test_option_grzip.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@cpio/test/$(DEPDIR)/bsdcpio_test-test_option_help.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@cpio/test/$(DEPDIR)/bsdcpio_test-test_option_l.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@cpio/test/$(DEPDIR)/bsdcpio_test-test_option_lrzip.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@cpio/test/$(DEPDIR)/bsdcpio_test-test_option_lz4.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@cpio/test/$(DEPDIR)/bsdcpio_test-test_option_lzma.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@cpio/test/$(DEPDIR)/bsdcpio_test-test_option_lzop.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@cpio/test/$(DEPDIR)/bsdcpio_test-test_option_m.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@cpio/test/$(DEPDIR)/bsdcpio_test-test_option_passphrase.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@cpio/test/$(DEPDIR)/bsdcpio_test-test_option_t.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@cpio/test/$(DEPDIR)/bsdcpio_test-test_option_u.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@cpio/test/$(DEPDIR)/bsdcpio_test-test_option_uuencode.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@cpio/test/$(DEPDIR)/bsdcpio_test-test_option_version.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@cpio/test/$(DEPDIR)/bsdcpio_test-test_option_xz.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@cpio/test/$(DEPDIR)/bsdcpio_test-test_option_y.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@cpio/test/$(DEPDIR)/bsdcpio_test-test_option_z.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@cpio/test/$(DEPDIR)/bsdcpio_test-test_option_zstd.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@cpio/test/$(DEPDIR)/bsdcpio_test-test_owner_parse.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@cpio/test/$(DEPDIR)/bsdcpio_test-test_passthrough_dotdot.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@cpio/test/$(DEPDIR)/bsdcpio_test-test_passthrough_reverse.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_acl.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_blake2s_ref.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_blake2sp_ref.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_check_magic.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_cmdline.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_cryptor.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_digest.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_disk_acl_darwin.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_disk_acl_freebsd.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_disk_acl_linux.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_disk_acl_sunos.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_entry.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_entry_copy_bhfi.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_entry_copy_stat.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_entry_link_resolver.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_entry_sparse.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_entry_stat.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_entry_strmode.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_entry_xattr.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_getdate.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_hmac.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_match.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_options.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_pack_dev.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_pathmatch.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_ppmd7.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_ppmd8.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_random.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_rb.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_read.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_read_add_passphrase.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_read_append_filter.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_read_data_into_fd.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_read_disk_entry_from_file.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_read_disk_posix.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_read_disk_set_standard_lookup.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_read_disk_windows.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_read_extract.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_read_extract2.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_read_open_fd.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_read_open_file.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_read_open_filename.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_read_open_memory.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_read_set_format.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_read_set_options.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_read_support_filter_all.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_read_support_filter_bzip2.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_read_support_filter_compress.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_read_support_filter_grzip.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_read_support_filter_gzip.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_read_support_filter_lrzip.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_read_support_filter_lz4.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_read_support_filter_lzop.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_read_support_filter_none.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_read_support_filter_program.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_read_support_filter_rpm.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_read_support_filter_uu.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_read_support_filter_xz.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_read_support_filter_zstd.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_read_support_format_7zip.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_read_support_format_all.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_read_support_format_ar.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_read_support_format_by_code.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_read_support_format_cab.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_read_support_format_cpio.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_read_support_format_empty.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_read_support_format_iso9660.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_read_support_format_lha.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_read_support_format_mtree.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_read_support_format_rar.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_read_support_format_rar5.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_read_support_format_raw.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_read_support_format_tar.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_read_support_format_warc.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_read_support_format_xar.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_read_support_format_zip.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_string.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_string_sprintf.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_util.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_version_details.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_virtual.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_windows.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_write.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_write_add_filter.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_write_add_filter_b64encode.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_write_add_filter_by_name.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_write_add_filter_bzip2.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_write_add_filter_compress.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_write_add_filter_grzip.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_write_add_filter_gzip.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_write_add_filter_lrzip.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_write_add_filter_lz4.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_write_add_filter_lzop.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_write_add_filter_none.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_write_add_filter_program.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_write_add_filter_uuencode.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_write_add_filter_xz.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_write_add_filter_zstd.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_write_disk_posix.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_write_disk_set_standard_lookup.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_write_disk_windows.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_write_open_fd.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_write_open_file.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_write_open_filename.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_write_open_memory.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_write_set_format.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_write_set_format_7zip.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_write_set_format_ar.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_write_set_format_by_name.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_write_set_format_cpio.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_write_set_format_cpio_newc.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_write_set_format_filter_by_ext.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_write_set_format_gnutar.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_write_set_format_iso9660.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_write_set_format_mtree.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_write_set_format_pax.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_write_set_format_raw.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_write_set_format_shar.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_write_set_format_ustar.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_write_set_format_v7tar.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_write_set_format_warc.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_write_set_format_xar.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_write_set_format_zip.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_write_set_options.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_write_set_passphrase.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/filter_fork_posix.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/filter_fork_windows.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/libarchive_test-archive_acl.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/libarchive_test-archive_blake2s_ref.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/libarchive_test-archive_blake2sp_ref.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/libarchive_test-archive_check_magic.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/libarchive_test-archive_cmdline.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/libarchive_test-archive_cryptor.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/libarchive_test-archive_digest.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/libarchive_test-archive_disk_acl_darwin.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/libarchive_test-archive_disk_acl_freebsd.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/libarchive_test-archive_disk_acl_linux.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/libarchive_test-archive_disk_acl_sunos.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/libarchive_test-archive_entry.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/libarchive_test-archive_entry_copy_bhfi.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/libarchive_test-archive_entry_copy_stat.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/libarchive_test-archive_entry_link_resolver.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/libarchive_test-archive_entry_sparse.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/libarchive_test-archive_entry_stat.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/libarchive_test-archive_entry_strmode.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/libarchive_test-archive_entry_xattr.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/libarchive_test-archive_getdate.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/libarchive_test-archive_hmac.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/libarchive_test-archive_match.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/libarchive_test-archive_options.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/libarchive_test-archive_pack_dev.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/libarchive_test-archive_pathmatch.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/libarchive_test-archive_ppmd7.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/libarchive_test-archive_ppmd8.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/libarchive_test-archive_random.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/libarchive_test-archive_rb.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/libarchive_test-archive_read.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/libarchive_test-archive_read_add_passphrase.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/libarchive_test-archive_read_append_filter.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/libarchive_test-archive_read_data_into_fd.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/libarchive_test-archive_read_disk_entry_from_file.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/libarchive_test-archive_read_disk_posix.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/libarchive_test-archive_read_disk_set_standard_lookup.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/libarchive_test-archive_read_disk_windows.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/libarchive_test-archive_read_extract.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/libarchive_test-archive_read_extract2.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/libarchive_test-archive_read_open_fd.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/libarchive_test-archive_read_open_file.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/libarchive_test-archive_read_open_filename.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/libarchive_test-archive_read_open_memory.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/libarchive_test-archive_read_set_format.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/libarchive_test-archive_read_set_options.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/libarchive_test-archive_read_support_filter_all.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/libarchive_test-archive_read_support_filter_bzip2.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/libarchive_test-archive_read_support_filter_compress.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/libarchive_test-archive_read_support_filter_grzip.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/libarchive_test-archive_read_support_filter_gzip.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/libarchive_test-archive_read_support_filter_lrzip.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/libarchive_test-archive_read_support_filter_lz4.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/libarchive_test-archive_read_support_filter_lzop.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/libarchive_test-archive_read_support_filter_none.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/libarchive_test-archive_read_support_filter_program.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/libarchive_test-archive_read_support_filter_rpm.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/libarchive_test-archive_read_support_filter_uu.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/libarchive_test-archive_read_support_filter_xz.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/libarchive_test-archive_read_support_filter_zstd.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/libarchive_test-archive_read_support_format_7zip.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/libarchive_test-archive_read_support_format_all.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/libarchive_test-archive_read_support_format_ar.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/libarchive_test-archive_read_support_format_by_code.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/libarchive_test-archive_read_support_format_cab.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/libarchive_test-archive_read_support_format_cpio.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/libarchive_test-archive_read_support_format_empty.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/libarchive_test-archive_read_support_format_iso9660.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/libarchive_test-archive_read_support_format_lha.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/libarchive_test-archive_read_support_format_mtree.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/libarchive_test-archive_read_support_format_rar.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/libarchive_test-archive_read_support_format_rar5.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/libarchive_test-archive_read_support_format_raw.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/libarchive_test-archive_read_support_format_tar.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/libarchive_test-archive_read_support_format_warc.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/libarchive_test-archive_read_support_format_xar.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/libarchive_test-archive_read_support_format_zip.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/libarchive_test-archive_string.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/libarchive_test-archive_string_sprintf.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/libarchive_test-archive_util.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/libarchive_test-archive_version_details.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/libarchive_test-archive_virtual.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/libarchive_test-archive_windows.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/libarchive_test-archive_write.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/libarchive_test-archive_write_add_filter.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/libarchive_test-archive_write_add_filter_b64encode.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/libarchive_test-archive_write_add_filter_by_name.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/libarchive_test-archive_write_add_filter_bzip2.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/libarchive_test-archive_write_add_filter_compress.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/libarchive_test-archive_write_add_filter_grzip.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/libarchive_test-archive_write_add_filter_gzip.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/libarchive_test-archive_write_add_filter_lrzip.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/libarchive_test-archive_write_add_filter_lz4.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/libarchive_test-archive_write_add_filter_lzop.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/libarchive_test-archive_write_add_filter_none.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/libarchive_test-archive_write_add_filter_program.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/libarchive_test-archive_write_add_filter_uuencode.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/libarchive_test-archive_write_add_filter_xz.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/libarchive_test-archive_write_add_filter_zstd.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/libarchive_test-archive_write_disk_posix.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/libarchive_test-archive_write_disk_set_standard_lookup.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/libarchive_test-archive_write_disk_windows.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/libarchive_test-archive_write_open_fd.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/libarchive_test-archive_write_open_file.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/libarchive_test-archive_write_open_filename.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/libarchive_test-archive_write_open_memory.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/libarchive_test-archive_write_set_format.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/libarchive_test-archive_write_set_format_7zip.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/libarchive_test-archive_write_set_format_ar.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/libarchive_test-archive_write_set_format_by_name.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/libarchive_test-archive_write_set_format_cpio.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/libarchive_test-archive_write_set_format_cpio_newc.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/libarchive_test-archive_write_set_format_filter_by_ext.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/libarchive_test-archive_write_set_format_gnutar.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/libarchive_test-archive_write_set_format_iso9660.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/libarchive_test-archive_write_set_format_mtree.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/libarchive_test-archive_write_set_format_pax.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/libarchive_test-archive_write_set_format_raw.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/libarchive_test-archive_write_set_format_shar.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/libarchive_test-archive_write_set_format_ustar.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/libarchive_test-archive_write_set_format_v7tar.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/libarchive_test-archive_write_set_format_warc.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/libarchive_test-archive_write_set_format_xar.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/libarchive_test-archive_write_set_format_zip.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/libarchive_test-archive_write_set_options.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/libarchive_test-archive_write_set_passphrase.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/libarchive_test-filter_fork_posix.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/libarchive_test-filter_fork_windows.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/libarchive_test-xxhash.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/xxhash.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-read_open_memory.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_acl_nfs4.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_acl_pax.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_acl_platform_nfs4.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_acl_platform_posix1e.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_acl_posix1e.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_acl_text.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_archive_api_feature.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_archive_clear_error.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_archive_cmdline.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_archive_digest.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_archive_getdate.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_archive_match_owner.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_archive_match_path.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_archive_match_time.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_archive_pathmatch.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_archive_read_add_passphrase.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_archive_read_close_twice.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_archive_read_close_twice_open_fd.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_archive_read_close_twice_open_filename.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_archive_read_multiple_data_objects.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_archive_read_next_header_empty.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_archive_read_next_header_raw.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_archive_read_open2.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_archive_read_set_filter_option.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_archive_read_set_format_option.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_archive_read_set_option.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_archive_read_set_options.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_archive_read_support.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_archive_set_error.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_archive_string.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_archive_string_conversion.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_archive_write_add_filter_by_name.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_archive_write_set_filter_option.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_archive_write_set_format_by_name.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_archive_write_set_format_filter_by_ext.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_archive_write_set_format_option.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_archive_write_set_option.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_archive_write_set_options.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_archive_write_set_passphrase.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_bad_fd.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_compat_bzip2.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_compat_cpio.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_compat_gtar.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_compat_gzip.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_compat_lz4.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_compat_lzip.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_compat_lzma.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_compat_lzop.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_compat_mac.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_compat_perl_archive_tar.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_compat_plexus_archiver_tar.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_compat_solaris_pax_sparse.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_compat_solaris_tar_acl.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_compat_star_acl.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_compat_tar_hardlink.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_compat_uudecode.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_compat_uudecode_large.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_compat_xz.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_compat_zip.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_compat_zstd.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_empty_write.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_entry.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_entry_strmode.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_extattr_freebsd.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_filter_count.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_fuzz.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_gnutar_filename_encoding.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_link_resolver.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_open_failure.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_open_fd.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_open_file.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_open_filename.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_pax_filename_encoding.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_pax_xattr_header.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_read_data_large.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_read_disk.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_read_disk_directory_traversals.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_read_disk_entry_from_file.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_read_extract.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_read_file_nonexistent.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_read_filter_compress.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_read_filter_grzip.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_read_filter_lrzip.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_read_filter_lzop.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_read_filter_lzop_multiple_parts.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_read_filter_program.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_read_filter_program_signature.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_read_filter_uudecode.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_7zip.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_7zip_encryption_data.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_7zip_encryption_header.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_7zip_encryption_partially.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_7zip_malformed.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_7zip_packinfo_digests.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_ar.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_cab.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_cab_filename.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_cpio_afio.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_cpio_bin.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_cpio_bin_Z.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_cpio_bin_be.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_cpio_bin_bz2.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_cpio_bin_gz.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_cpio_bin_le.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_cpio_bin_lzip.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_cpio_bin_lzma.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_cpio_bin_xz.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_cpio_filename.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_cpio_odc.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_cpio_svr4_bzip2_rpm.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_cpio_svr4_gzip.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_cpio_svr4_gzip_rpm.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_cpio_svr4c_Z.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_empty.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_gtar_filename.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_gtar_gz.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_gtar_lzma.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_gtar_sparse.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_gtar_sparse_skip_entry.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_iso_Z.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_iso_multi_extent.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_iso_xorriso.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_isojoliet_bz2.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_isojoliet_long.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_isojoliet_rr.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_isojoliet_versioned.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_isorr_bz2.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_isorr_ce.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_isorr_new_bz2.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_isorr_rr_moved.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_isozisofs_bz2.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_lha.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_lha_bugfix_0.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_lha_filename.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_lha_filename_utf16.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_mtree.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_mtree_crash747.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_pax_bz2.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_rar.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_rar5.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_rar_encryption_data.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_rar_encryption_header.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_rar_encryption_partially.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_rar_invalid1.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_raw.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_tar.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_tar_concatenated.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_tar_empty_filename.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_tar_empty_pax.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_tar_empty_with_gnulabel.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_tar_filename.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_tbz.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_tgz.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_tlz.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_txz.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_tz.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_ustar_filename.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_warc.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_xar.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_7075_utf8_paths.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_comment_stored.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_encryption_data.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_encryption_header.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_encryption_partially.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_extra_padding.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_filename.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_high_compression.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_jar.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_mac_metadata.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_malformed.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_msdos.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_nested.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_nofiletype.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_padded.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_sfx.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_traditional_encryption_data.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_winzip_aes.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_winzip_aes_large.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_with_invalid_traditional_eocd.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_zip64.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_read_large.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_read_pax_schily_xattr.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_read_pax_truncated.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_read_position.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_read_set_format.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_read_too_many_filters.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_read_truncated.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_read_truncated_filter.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_sparse_basic.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_tar_filenames.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_tar_large.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_ustar_filename_encoding.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_ustar_filenames.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_warn_missing_hardlink_target.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_write_disk.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_write_disk_appledouble.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_write_disk_failures.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_write_disk_hardlink.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_write_disk_hfs_compression.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_write_disk_lookup.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_write_disk_mac_metadata.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_write_disk_no_hfs_compression.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_write_disk_perms.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_write_disk_secure.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_write_disk_secure744.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_write_disk_secure745.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_write_disk_secure746.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_write_disk_sparse.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_write_disk_symlink.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_write_disk_times.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_write_filter_b64encode.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_write_filter_bzip2.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_write_filter_compress.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_write_filter_gzip.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_write_filter_gzip_timestamp.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_write_filter_lrzip.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_write_filter_lz4.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_write_filter_lzip.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_write_filter_lzma.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_write_filter_lzop.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_write_filter_program.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_write_filter_uuencode.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_write_filter_xz.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_write_filter_zstd.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_7zip.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_7zip_empty.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_7zip_large.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_ar.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_cpio.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_cpio_empty.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_cpio_newc.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_cpio_odc.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_gnutar.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_gnutar_filenames.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_iso9660.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_iso9660_boot.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_iso9660_empty.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_iso9660_filename.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_iso9660_zisofs.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_mtree.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_mtree_absolute_path.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_mtree_classic.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_mtree_classic_indent.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_mtree_fflags.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_mtree_no_separator.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_mtree_quoted_filename.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_pax.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_raw.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_raw_b64.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_shar_empty.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_tar.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_tar_empty.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_tar_sparse.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_tar_ustar.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_tar_v7tar.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_warc.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_warc_empty.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_xar.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_xar_empty.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_zip.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_zip_compression_store.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_zip_empty.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_zip_empty_zip64.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_zip_file.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_zip_file_zip64.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_zip_large.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_zip_zip64.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_write_open_memory.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_write_read_format_zip.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_xattr_platform.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_zip_filename_encoding.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive_fe/$(DEPDIR)/libarchive_fe_la-err.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive_fe/$(DEPDIR)/libarchive_fe_la-line_reader.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libarchive_fe/$(DEPDIR)/libarchive_fe_la-passphrase.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tar/$(DEPDIR)/bsdtar-bsdtar.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tar/$(DEPDIR)/bsdtar-bsdtar_windows.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tar/$(DEPDIR)/bsdtar-cmdline.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tar/$(DEPDIR)/bsdtar-creation_set.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tar/$(DEPDIR)/bsdtar-read.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tar/$(DEPDIR)/bsdtar-subst.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tar/$(DEPDIR)/bsdtar-util.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tar/$(DEPDIR)/bsdtar-write.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_0.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_basic.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_copy.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_empty_mtree.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_extract_tar_Z.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_extract_tar_bz2.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_extract_tar_grz.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_extract_tar_gz.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_extract_tar_lrz.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_extract_tar_lz.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_extract_tar_lz4.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_extract_tar_lzma.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_extract_tar_lzo.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_extract_tar_xz.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_extract_tar_zstd.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_format_newc.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_help.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_leading_slash.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_missing_file.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_option_C_mtree.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_option_C_upper.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_option_H_upper.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_option_L_upper.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_option_O_upper.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_option_T_upper.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_option_U_upper.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_option_X_upper.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_option_a.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_option_acls.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_option_b.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_option_b64encode.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_option_exclude.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_option_exclude_vcs.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_option_fflags.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_option_gid_gname.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_option_grzip.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_option_j.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_option_k.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_option_keep_newer_files.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_option_lrzip.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_option_lz4.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_option_lzma.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_option_lzop.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_option_n.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_option_newer_than.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_option_nodump.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_option_older_than.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_option_passphrase.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_option_q.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_option_r.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_option_s.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_option_safe_writes.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_option_uid_uname.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_option_uuencode.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_option_xattrs.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_option_xz.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_option_z.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_option_zstd.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_patterns.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_print_longpath.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_stdio.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_strip_components.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_symlink_dir.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_version.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_windows.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@test_utils/$(DEPDIR)/bsdcat_test-test_main.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@test_utils/$(DEPDIR)/bsdcat_test-test_utils.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@test_utils/$(DEPDIR)/bsdcpio_test-test_main.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@test_utils/$(DEPDIR)/bsdcpio_test-test_utils.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@test_utils/$(DEPDIR)/bsdtar_test-test_main.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@test_utils/$(DEPDIR)/bsdtar_test-test_utils.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@test_utils/$(DEPDIR)/libarchive_test-test_main.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@test_utils/$(DEPDIR)/libarchive_test-test_utils.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@cat/$(DEPDIR)/bsdcat-bsdcat.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@cat/$(DEPDIR)/bsdcat-cmdline.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@cat/test/$(DEPDIR)/bsdcat_test-test_0.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@cat/test/$(DEPDIR)/bsdcat_test-test_empty_gz.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@cat/test/$(DEPDIR)/bsdcat_test-test_empty_lz4.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@cat/test/$(DEPDIR)/bsdcat_test-test_empty_xz.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@cat/test/$(DEPDIR)/bsdcat_test-test_empty_zstd.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@cat/test/$(DEPDIR)/bsdcat_test-test_error.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@cat/test/$(DEPDIR)/bsdcat_test-test_error_mixed.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@cat/test/$(DEPDIR)/bsdcat_test-test_expand_Z.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@cat/test/$(DEPDIR)/bsdcat_test-test_expand_bz2.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@cat/test/$(DEPDIR)/bsdcat_test-test_expand_gz.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@cat/test/$(DEPDIR)/bsdcat_test-test_expand_lz4.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@cat/test/$(DEPDIR)/bsdcat_test-test_expand_mixed.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@cat/test/$(DEPDIR)/bsdcat_test-test_expand_plain.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@cat/test/$(DEPDIR)/bsdcat_test-test_expand_xz.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@cat/test/$(DEPDIR)/bsdcat_test-test_expand_zstd.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@cat/test/$(DEPDIR)/bsdcat_test-test_help.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@cat/test/$(DEPDIR)/bsdcat_test-test_stdin.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@cat/test/$(DEPDIR)/bsdcat_test-test_version.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@cpio/$(DEPDIR)/bsdcpio-cmdline.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@cpio/$(DEPDIR)/bsdcpio-cpio.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@cpio/$(DEPDIR)/bsdcpio-cpio_windows.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@cpio/$(DEPDIR)/bsdcpio_test-cmdline.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@cpio/test/$(DEPDIR)/bsdcpio_test-test_0.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@cpio/test/$(DEPDIR)/bsdcpio_test-test_basic.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@cpio/test/$(DEPDIR)/bsdcpio_test-test_cmdline.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@cpio/test/$(DEPDIR)/bsdcpio_test-test_extract_cpio_Z.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@cpio/test/$(DEPDIR)/bsdcpio_test-test_extract_cpio_bz2.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@cpio/test/$(DEPDIR)/bsdcpio_test-test_extract_cpio_grz.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@cpio/test/$(DEPDIR)/bsdcpio_test-test_extract_cpio_gz.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@cpio/test/$(DEPDIR)/bsdcpio_test-test_extract_cpio_lrz.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@cpio/test/$(DEPDIR)/bsdcpio_test-test_extract_cpio_lz.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@cpio/test/$(DEPDIR)/bsdcpio_test-test_extract_cpio_lz4.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@cpio/test/$(DEPDIR)/bsdcpio_test-test_extract_cpio_lzma.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@cpio/test/$(DEPDIR)/bsdcpio_test-test_extract_cpio_lzo.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@cpio/test/$(DEPDIR)/bsdcpio_test-test_extract_cpio_xz.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@cpio/test/$(DEPDIR)/bsdcpio_test-test_extract_cpio_zstd.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@cpio/test/$(DEPDIR)/bsdcpio_test-test_format_newc.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@cpio/test/$(DEPDIR)/bsdcpio_test-test_gcpio_compat.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@cpio/test/$(DEPDIR)/bsdcpio_test-test_missing_file.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@cpio/test/$(DEPDIR)/bsdcpio_test-test_option_0.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@cpio/test/$(DEPDIR)/bsdcpio_test-test_option_B_upper.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@cpio/test/$(DEPDIR)/bsdcpio_test-test_option_C_upper.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@cpio/test/$(DEPDIR)/bsdcpio_test-test_option_J_upper.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@cpio/test/$(DEPDIR)/bsdcpio_test-test_option_L_upper.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@cpio/test/$(DEPDIR)/bsdcpio_test-test_option_Z_upper.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@cpio/test/$(DEPDIR)/bsdcpio_test-test_option_a.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@cpio/test/$(DEPDIR)/bsdcpio_test-test_option_b64encode.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@cpio/test/$(DEPDIR)/bsdcpio_test-test_option_c.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@cpio/test/$(DEPDIR)/bsdcpio_test-test_option_d.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@cpio/test/$(DEPDIR)/bsdcpio_test-test_option_f.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@cpio/test/$(DEPDIR)/bsdcpio_test-test_option_grzip.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@cpio/test/$(DEPDIR)/bsdcpio_test-test_option_help.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@cpio/test/$(DEPDIR)/bsdcpio_test-test_option_l.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@cpio/test/$(DEPDIR)/bsdcpio_test-test_option_lrzip.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@cpio/test/$(DEPDIR)/bsdcpio_test-test_option_lz4.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@cpio/test/$(DEPDIR)/bsdcpio_test-test_option_lzma.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@cpio/test/$(DEPDIR)/bsdcpio_test-test_option_lzop.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@cpio/test/$(DEPDIR)/bsdcpio_test-test_option_m.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@cpio/test/$(DEPDIR)/bsdcpio_test-test_option_passphrase.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@cpio/test/$(DEPDIR)/bsdcpio_test-test_option_t.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@cpio/test/$(DEPDIR)/bsdcpio_test-test_option_u.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@cpio/test/$(DEPDIR)/bsdcpio_test-test_option_uuencode.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@cpio/test/$(DEPDIR)/bsdcpio_test-test_option_version.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@cpio/test/$(DEPDIR)/bsdcpio_test-test_option_xz.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@cpio/test/$(DEPDIR)/bsdcpio_test-test_option_y.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@cpio/test/$(DEPDIR)/bsdcpio_test-test_option_z.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@cpio/test/$(DEPDIR)/bsdcpio_test-test_option_zstd.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@cpio/test/$(DEPDIR)/bsdcpio_test-test_owner_parse.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@cpio/test/$(DEPDIR)/bsdcpio_test-test_passthrough_dotdot.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@cpio/test/$(DEPDIR)/bsdcpio_test-test_passthrough_reverse.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_acl.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_blake2s_ref.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_blake2sp_ref.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_check_magic.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_cmdline.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_cryptor.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_digest.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_disk_acl_darwin.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_disk_acl_freebsd.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_disk_acl_linux.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_disk_acl_sunos.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_entry.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_entry_copy_bhfi.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_entry_copy_stat.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_entry_link_resolver.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_entry_sparse.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_entry_stat.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_entry_strmode.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_entry_xattr.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_getdate.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_hmac.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_match.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_options.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_pack_dev.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_pathmatch.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_ppmd7.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_ppmd8.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_random.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_rb.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_read.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_read_add_passphrase.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_read_append_filter.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_read_data_into_fd.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_read_disk_entry_from_file.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_read_disk_posix.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_read_disk_set_standard_lookup.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_read_disk_windows.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_read_extract.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_read_extract2.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_read_open_fd.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_read_open_file.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_read_open_filename.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_read_open_memory.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_read_set_format.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_read_set_options.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_read_support_filter_all.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_read_support_filter_by_code.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_read_support_filter_bzip2.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_read_support_filter_compress.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_read_support_filter_grzip.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_read_support_filter_gzip.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_read_support_filter_lrzip.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_read_support_filter_lz4.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_read_support_filter_lzop.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_read_support_filter_none.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_read_support_filter_program.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_read_support_filter_rpm.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_read_support_filter_uu.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_read_support_filter_xz.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_read_support_filter_zstd.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_read_support_format_7zip.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_read_support_format_all.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_read_support_format_ar.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_read_support_format_by_code.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_read_support_format_cab.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_read_support_format_cpio.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_read_support_format_empty.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_read_support_format_iso9660.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_read_support_format_lha.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_read_support_format_mtree.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_read_support_format_rar.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_read_support_format_rar5.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_read_support_format_raw.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_read_support_format_tar.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_read_support_format_warc.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_read_support_format_xar.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_read_support_format_zip.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_string.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_string_sprintf.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_util.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_version_details.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_virtual.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_windows.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_write.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_write_add_filter.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_write_add_filter_b64encode.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_write_add_filter_by_name.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_write_add_filter_bzip2.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_write_add_filter_compress.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_write_add_filter_grzip.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_write_add_filter_gzip.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_write_add_filter_lrzip.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_write_add_filter_lz4.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_write_add_filter_lzop.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_write_add_filter_none.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_write_add_filter_program.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_write_add_filter_uuencode.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_write_add_filter_xz.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_write_add_filter_zstd.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_write_disk_posix.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_write_disk_set_standard_lookup.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_write_disk_windows.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_write_open_fd.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_write_open_file.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_write_open_filename.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_write_open_memory.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_write_set_format.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_write_set_format_7zip.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_write_set_format_ar.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_write_set_format_by_name.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_write_set_format_cpio.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_write_set_format_cpio_binary.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_write_set_format_cpio_newc.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_write_set_format_cpio_odc.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_write_set_format_filter_by_ext.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_write_set_format_gnutar.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_write_set_format_iso9660.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_write_set_format_mtree.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_write_set_format_pax.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_write_set_format_raw.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_write_set_format_shar.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_write_set_format_ustar.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_write_set_format_v7tar.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_write_set_format_warc.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_write_set_format_xar.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_write_set_format_zip.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_write_set_options.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/archive_write_set_passphrase.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/filter_fork_posix.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/filter_fork_windows.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/test-archive_acl.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/test-archive_blake2s_ref.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/test-archive_blake2sp_ref.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/test-archive_check_magic.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/test-archive_cmdline.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/test-archive_cryptor.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/test-archive_digest.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/test-archive_disk_acl_darwin.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/test-archive_disk_acl_freebsd.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/test-archive_disk_acl_linux.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/test-archive_disk_acl_sunos.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/test-archive_entry.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/test-archive_entry_copy_bhfi.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/test-archive_entry_copy_stat.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/test-archive_entry_link_resolver.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/test-archive_entry_sparse.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/test-archive_entry_stat.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/test-archive_entry_strmode.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/test-archive_entry_xattr.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/test-archive_getdate.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/test-archive_hmac.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/test-archive_match.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/test-archive_options.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/test-archive_pack_dev.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/test-archive_pathmatch.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/test-archive_ppmd7.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/test-archive_ppmd8.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/test-archive_random.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/test-archive_rb.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/test-archive_read.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/test-archive_read_add_passphrase.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/test-archive_read_append_filter.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/test-archive_read_data_into_fd.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/test-archive_read_disk_entry_from_file.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/test-archive_read_disk_posix.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/test-archive_read_disk_set_standard_lookup.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/test-archive_read_disk_windows.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/test-archive_read_extract.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/test-archive_read_extract2.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/test-archive_read_open_fd.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/test-archive_read_open_file.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/test-archive_read_open_filename.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/test-archive_read_open_memory.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/test-archive_read_set_format.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/test-archive_read_set_options.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/test-archive_read_support_filter_all.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/test-archive_read_support_filter_by_code.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/test-archive_read_support_filter_bzip2.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/test-archive_read_support_filter_compress.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/test-archive_read_support_filter_grzip.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/test-archive_read_support_filter_gzip.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/test-archive_read_support_filter_lrzip.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/test-archive_read_support_filter_lz4.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/test-archive_read_support_filter_lzop.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/test-archive_read_support_filter_none.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/test-archive_read_support_filter_program.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/test-archive_read_support_filter_rpm.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/test-archive_read_support_filter_uu.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/test-archive_read_support_filter_xz.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/test-archive_read_support_filter_zstd.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/test-archive_read_support_format_7zip.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/test-archive_read_support_format_all.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/test-archive_read_support_format_ar.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/test-archive_read_support_format_by_code.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/test-archive_read_support_format_cab.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/test-archive_read_support_format_cpio.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/test-archive_read_support_format_empty.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/test-archive_read_support_format_iso9660.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/test-archive_read_support_format_lha.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/test-archive_read_support_format_mtree.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/test-archive_read_support_format_rar.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/test-archive_read_support_format_rar5.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/test-archive_read_support_format_raw.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/test-archive_read_support_format_tar.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/test-archive_read_support_format_warc.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/test-archive_read_support_format_xar.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/test-archive_read_support_format_zip.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/test-archive_string.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/test-archive_string_sprintf.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/test-archive_util.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/test-archive_version_details.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/test-archive_virtual.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/test-archive_windows.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/test-archive_write.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/test-archive_write_add_filter.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/test-archive_write_add_filter_b64encode.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/test-archive_write_add_filter_by_name.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/test-archive_write_add_filter_bzip2.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/test-archive_write_add_filter_compress.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/test-archive_write_add_filter_grzip.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/test-archive_write_add_filter_gzip.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/test-archive_write_add_filter_lrzip.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/test-archive_write_add_filter_lz4.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/test-archive_write_add_filter_lzop.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/test-archive_write_add_filter_none.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/test-archive_write_add_filter_program.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/test-archive_write_add_filter_uuencode.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/test-archive_write_add_filter_xz.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/test-archive_write_add_filter_zstd.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/test-archive_write_disk_posix.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/test-archive_write_disk_set_standard_lookup.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/test-archive_write_disk_windows.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/test-archive_write_open_fd.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/test-archive_write_open_file.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/test-archive_write_open_filename.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/test-archive_write_open_memory.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/test-archive_write_set_format.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/test-archive_write_set_format_7zip.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/test-archive_write_set_format_ar.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/test-archive_write_set_format_by_name.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/test-archive_write_set_format_cpio.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/test-archive_write_set_format_cpio_binary.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/test-archive_write_set_format_cpio_newc.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/test-archive_write_set_format_cpio_odc.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/test-archive_write_set_format_filter_by_ext.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/test-archive_write_set_format_gnutar.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/test-archive_write_set_format_iso9660.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/test-archive_write_set_format_mtree.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/test-archive_write_set_format_pax.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/test-archive_write_set_format_raw.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/test-archive_write_set_format_shar.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/test-archive_write_set_format_ustar.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/test-archive_write_set_format_v7tar.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/test-archive_write_set_format_warc.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/test-archive_write_set_format_xar.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/test-archive_write_set_format_zip.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/test-archive_write_set_options.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/test-archive_write_set_passphrase.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/test-filter_fork_posix.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/test-filter_fork_windows.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/test-xxhash.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/$(DEPDIR)/xxhash.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-read_open_memory.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_acl_nfs4.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_acl_pax.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_acl_platform_nfs4.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_acl_platform_posix1e.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_acl_posix1e.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_acl_text.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_archive_api_feature.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_archive_clear_error.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_archive_cmdline.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_archive_digest.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_archive_getdate.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_archive_match_owner.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_archive_match_path.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_archive_match_time.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_archive_pathmatch.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_archive_read_add_passphrase.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_archive_read_close_twice.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_archive_read_close_twice_open_fd.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_archive_read_close_twice_open_filename.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_archive_read_multiple_data_objects.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_archive_read_next_header_empty.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_archive_read_next_header_raw.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_archive_read_open2.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_archive_read_set_filter_option.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_archive_read_set_format_option.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_archive_read_set_option.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_archive_read_set_options.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_archive_read_support.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_archive_set_error.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_archive_string.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_archive_string_conversion.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_archive_write_add_filter_by_name.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_archive_write_set_filter_option.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_archive_write_set_format_by_name.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_archive_write_set_format_filter_by_ext.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_archive_write_set_format_option.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_archive_write_set_option.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_archive_write_set_options.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_archive_write_set_passphrase.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_bad_fd.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_compat_bzip2.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_compat_cpio.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_compat_gtar.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_compat_gzip.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_compat_lz4.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_compat_lzip.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_compat_lzma.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_compat_lzop.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_compat_mac.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_compat_perl_archive_tar.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_compat_plexus_archiver_tar.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_compat_solaris_pax_sparse.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_compat_solaris_tar_acl.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_compat_star_acl.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_compat_tar_hardlink.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_compat_uudecode.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_compat_uudecode_large.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_compat_xz.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_compat_zip.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_compat_zstd.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_empty_write.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_entry.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_entry_strmode.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_extattr_freebsd.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_filter_count.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_fuzz.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_gnutar_filename_encoding.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_link_resolver.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_open_failure.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_open_fd.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_open_file.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_open_filename.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_pax_filename_encoding.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_pax_xattr_header.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_data_large.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_disk.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_disk_directory_traversals.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_disk_entry_from_file.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_extract.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_file_nonexistent.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_filter_compress.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_filter_grzip.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_filter_lrzip.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_filter_lzop.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_filter_lzop_multiple_parts.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_filter_program.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_filter_program_signature.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_filter_uudecode.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_7zip.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_7zip_encryption_data.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_7zip_encryption_header.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_7zip_encryption_partially.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_7zip_malformed.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_7zip_packinfo_digests.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_ar.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_cab.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_cab_filename.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_cpio_afio.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_cpio_bin.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_cpio_bin_Z.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_cpio_bin_be.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_cpio_bin_bz2.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_cpio_bin_gz.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_cpio_bin_le.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_cpio_bin_lzip.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_cpio_bin_lzma.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_cpio_bin_xz.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_cpio_filename.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_cpio_odc.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_cpio_svr4_bzip2_rpm.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_cpio_svr4_gzip.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_cpio_svr4_gzip_rpm.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_cpio_svr4c_Z.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_empty.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_gtar_filename.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_gtar_gz.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_gtar_lzma.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_gtar_sparse.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_gtar_sparse_skip_entry.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_iso_Z.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_iso_multi_extent.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_iso_xorriso.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_isojoliet_bz2.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_isojoliet_long.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_isojoliet_rr.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_isojoliet_versioned.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_isorr_bz2.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_isorr_ce.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_isorr_new_bz2.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_isorr_rr_moved.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_isozisofs_bz2.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_lha.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_lha_bugfix_0.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_lha_filename.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_lha_filename_utf16.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_mtree.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_mtree_crash747.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_pax_bz2.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_rar.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_rar5.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_rar_encryption_data.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_rar_encryption_header.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_rar_encryption_partially.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_rar_invalid1.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_raw.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_tar.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_tar_concatenated.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_tar_empty_filename.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_tar_empty_pax.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_tar_empty_with_gnulabel.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_tar_filename.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_tbz.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_tgz.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_tlz.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_txz.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_tz.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_ustar_filename.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_warc.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_xar.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_zip.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_zip_7075_utf8_paths.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_zip_comment_stored.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_zip_encryption_data.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_zip_encryption_header.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_zip_encryption_partially.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_zip_extra_padding.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_zip_filename.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_zip_high_compression.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_zip_jar.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_zip_mac_metadata.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_zip_malformed.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_zip_msdos.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_zip_nested.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_zip_nofiletype.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_zip_padded.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_zip_sfx.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_zip_traditional_encryption_data.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_zip_winzip_aes.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_zip_winzip_aes_large.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_zip_with_invalid_traditional_eocd.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_zip_zip64.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_large.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_pax_truncated.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_pax_xattr_rht_security_selinux.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_pax_xattr_schily.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_position.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_set_format.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_too_many_filters.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_truncated.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_truncated_filter.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_short_writes.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_sparse_basic.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_tar_filenames.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_tar_large.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_ustar_filename_encoding.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_ustar_filenames.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_warn_missing_hardlink_target.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_write_disk.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_write_disk_appledouble.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_write_disk_failures.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_write_disk_fixup.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_write_disk_hardlink.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_write_disk_hfs_compression.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_write_disk_lookup.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_write_disk_mac_metadata.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_write_disk_no_hfs_compression.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_write_disk_perms.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_write_disk_secure.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_write_disk_secure744.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_write_disk_secure745.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_write_disk_secure746.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_write_disk_sparse.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_write_disk_symlink.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_write_disk_times.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_write_filter_b64encode.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_write_filter_bzip2.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_write_filter_compress.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_write_filter_gzip.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_write_filter_gzip_timestamp.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_write_filter_lrzip.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_write_filter_lz4.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_write_filter_lzip.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_write_filter_lzma.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_write_filter_lzop.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_write_filter_program.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_write_filter_uuencode.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_write_filter_xz.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_write_filter_zstd.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_write_format_7zip.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_write_format_7zip_empty.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_write_format_7zip_large.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_write_format_ar.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_write_format_cpio.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_write_format_cpio_empty.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_write_format_cpio_newc.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_write_format_cpio_odc.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_write_format_gnutar.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_write_format_gnutar_filenames.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_write_format_iso9660.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_write_format_iso9660_boot.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_write_format_iso9660_empty.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_write_format_iso9660_filename.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_write_format_iso9660_zisofs.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_write_format_mtree.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_write_format_mtree_absolute_path.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_write_format_mtree_classic.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_write_format_mtree_classic_indent.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_write_format_mtree_fflags.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_write_format_mtree_no_separator.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_write_format_mtree_quoted_filename.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_write_format_pax.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_write_format_raw.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_write_format_raw_b64.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_write_format_shar_empty.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_write_format_tar.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_write_format_tar_empty.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_write_format_tar_sparse.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_write_format_tar_ustar.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_write_format_tar_v7tar.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_write_format_warc.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_write_format_warc_empty.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_write_format_xar.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_write_format_xar_empty.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_write_format_zip.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_write_format_zip_compression_store.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_write_format_zip_empty.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_write_format_zip_empty_zip64.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_write_format_zip_file.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_write_format_zip_file_zip64.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_write_format_zip_large.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_write_format_zip_zip64.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_write_open_memory.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_write_read_format_zip.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_xattr_platform.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_zip_filename_encoding.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive_fe/$(DEPDIR)/la-err.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive_fe/$(DEPDIR)/la-line_reader.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libarchive_fe/$(DEPDIR)/la-passphrase.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@tar/$(DEPDIR)/bsdtar-bsdtar.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@tar/$(DEPDIR)/bsdtar-bsdtar_windows.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@tar/$(DEPDIR)/bsdtar-cmdline.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@tar/$(DEPDIR)/bsdtar-creation_set.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@tar/$(DEPDIR)/bsdtar-read.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@tar/$(DEPDIR)/bsdtar-subst.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@tar/$(DEPDIR)/bsdtar-util.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@tar/$(DEPDIR)/bsdtar-write.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_0.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_basic.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_copy.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_empty_mtree.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_extract_tar_Z.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_extract_tar_bz2.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_extract_tar_grz.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_extract_tar_gz.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_extract_tar_lrz.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_extract_tar_lz.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_extract_tar_lz4.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_extract_tar_lzma.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_extract_tar_lzo.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_extract_tar_xz.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_extract_tar_zstd.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_format_newc.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_help.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_leading_slash.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_missing_file.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_option_C_mtree.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_option_C_upper.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_option_H_upper.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_option_L_upper.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_option_O_upper.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_option_T_upper.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_option_U_upper.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_option_X_upper.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_option_a.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_option_acls.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_option_b.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_option_b64encode.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_option_exclude.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_option_exclude_vcs.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_option_fflags.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_option_gid_gname.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_option_grzip.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_option_j.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_option_k.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_option_keep_newer_files.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_option_lrzip.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_option_lz4.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_option_lzma.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_option_lzop.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_option_n.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_option_newer_than.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_option_nodump.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_option_older_than.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_option_passphrase.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_option_q.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_option_r.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_option_s.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_option_safe_writes.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_option_uid_uname.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_option_uuencode.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_option_xattrs.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_option_xz.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_option_z.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_option_zstd.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_patterns.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_print_longpath.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_stdio.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_strip_components.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_symlink_dir.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_version.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_windows.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@test_utils/$(DEPDIR)/bsdcat_test-test_main.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@test_utils/$(DEPDIR)/bsdcat_test-test_utils.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@test_utils/$(DEPDIR)/bsdcpio_test-test_main.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@test_utils/$(DEPDIR)/bsdcpio_test-test_utils.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@test_utils/$(DEPDIR)/bsdtar_test-test_main.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@test_utils/$(DEPDIR)/bsdtar_test-test_utils.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@test_utils/$(DEPDIR)/libarchive_test-test_main.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@test_utils/$(DEPDIR)/libarchive_test-test_utils.Po@am__quote@ # am--include-marker + +$(am__depfiles_remade): + @$(MKDIR_P) $(@D) + @echo '# dummy' >$@-t && $(am__mv) $@-t $@ + +am--depfiles: $(am__depfiles_remade) .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ @@ -5945,26 +6685,26 @@ distclean-compile: @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< -libarchive_fe/libarchive_fe_la-err.lo: libarchive_fe/err.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_fe_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive_fe/libarchive_fe_la-err.lo -MD -MP -MF libarchive_fe/$(DEPDIR)/libarchive_fe_la-err.Tpo -c -o libarchive_fe/libarchive_fe_la-err.lo `test -f 'libarchive_fe/err.c' || echo '$(srcdir)/'`libarchive_fe/err.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive_fe/$(DEPDIR)/libarchive_fe_la-err.Tpo libarchive_fe/$(DEPDIR)/libarchive_fe_la-err.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive_fe/err.c' object='libarchive_fe/libarchive_fe_la-err.lo' libtool=yes @AMDEPBACKSLASH@ +libarchive_fe/la-err.lo: libarchive_fe/err.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_fe_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive_fe/la-err.lo -MD -MP -MF libarchive_fe/$(DEPDIR)/la-err.Tpo -c -o libarchive_fe/la-err.lo `test -f 'libarchive_fe/err.c' || echo '$(srcdir)/'`libarchive_fe/err.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive_fe/$(DEPDIR)/la-err.Tpo libarchive_fe/$(DEPDIR)/la-err.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive_fe/err.c' object='libarchive_fe/la-err.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_fe_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive_fe/libarchive_fe_la-err.lo `test -f 'libarchive_fe/err.c' || echo '$(srcdir)/'`libarchive_fe/err.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_fe_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive_fe/la-err.lo `test -f 'libarchive_fe/err.c' || echo '$(srcdir)/'`libarchive_fe/err.c -libarchive_fe/libarchive_fe_la-line_reader.lo: libarchive_fe/line_reader.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_fe_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive_fe/libarchive_fe_la-line_reader.lo -MD -MP -MF libarchive_fe/$(DEPDIR)/libarchive_fe_la-line_reader.Tpo -c -o libarchive_fe/libarchive_fe_la-line_reader.lo `test -f 'libarchive_fe/line_reader.c' || echo '$(srcdir)/'`libarchive_fe/line_reader.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive_fe/$(DEPDIR)/libarchive_fe_la-line_reader.Tpo libarchive_fe/$(DEPDIR)/libarchive_fe_la-line_reader.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive_fe/line_reader.c' object='libarchive_fe/libarchive_fe_la-line_reader.lo' libtool=yes @AMDEPBACKSLASH@ +libarchive_fe/la-line_reader.lo: libarchive_fe/line_reader.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_fe_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive_fe/la-line_reader.lo -MD -MP -MF libarchive_fe/$(DEPDIR)/la-line_reader.Tpo -c -o libarchive_fe/la-line_reader.lo `test -f 'libarchive_fe/line_reader.c' || echo '$(srcdir)/'`libarchive_fe/line_reader.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive_fe/$(DEPDIR)/la-line_reader.Tpo libarchive_fe/$(DEPDIR)/la-line_reader.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive_fe/line_reader.c' object='libarchive_fe/la-line_reader.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_fe_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive_fe/libarchive_fe_la-line_reader.lo `test -f 'libarchive_fe/line_reader.c' || echo '$(srcdir)/'`libarchive_fe/line_reader.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_fe_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive_fe/la-line_reader.lo `test -f 'libarchive_fe/line_reader.c' || echo '$(srcdir)/'`libarchive_fe/line_reader.c -libarchive_fe/libarchive_fe_la-passphrase.lo: libarchive_fe/passphrase.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_fe_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive_fe/libarchive_fe_la-passphrase.lo -MD -MP -MF libarchive_fe/$(DEPDIR)/libarchive_fe_la-passphrase.Tpo -c -o libarchive_fe/libarchive_fe_la-passphrase.lo `test -f 'libarchive_fe/passphrase.c' || echo '$(srcdir)/'`libarchive_fe/passphrase.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive_fe/$(DEPDIR)/libarchive_fe_la-passphrase.Tpo libarchive_fe/$(DEPDIR)/libarchive_fe_la-passphrase.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive_fe/passphrase.c' object='libarchive_fe/libarchive_fe_la-passphrase.lo' libtool=yes @AMDEPBACKSLASH@ +libarchive_fe/la-passphrase.lo: libarchive_fe/passphrase.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_fe_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive_fe/la-passphrase.lo -MD -MP -MF libarchive_fe/$(DEPDIR)/la-passphrase.Tpo -c -o libarchive_fe/la-passphrase.lo `test -f 'libarchive_fe/passphrase.c' || echo '$(srcdir)/'`libarchive_fe/passphrase.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive_fe/$(DEPDIR)/la-passphrase.Tpo libarchive_fe/$(DEPDIR)/la-passphrase.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive_fe/passphrase.c' object='libarchive_fe/la-passphrase.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_fe_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive_fe/libarchive_fe_la-passphrase.lo `test -f 'libarchive_fe/passphrase.c' || echo '$(srcdir)/'`libarchive_fe/passphrase.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_fe_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive_fe/la-passphrase.lo `test -f 'libarchive_fe/passphrase.c' || echo '$(srcdir)/'`libarchive_fe/passphrase.c cat/bsdcat-bsdcat.o: cat/bsdcat.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bsdcat_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT cat/bsdcat-bsdcat.o -MD -MP -MF cat/$(DEPDIR)/bsdcat-bsdcat.Tpo -c -o cat/bsdcat-bsdcat.o `test -f 'cat/bsdcat.c' || echo '$(srcdir)/'`cat/bsdcat.c @@ -8080,1797 +8820,1839 @@ tar/test/bsdtar_test-test_windows.obj: tar/test/test_windows.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bsdtar_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o tar/test/bsdtar_test-test_windows.obj `if test -f 'tar/test/test_windows.c'; then $(CYGPATH_W) 'tar/test/test_windows.c'; else $(CYGPATH_W) '$(srcdir)/tar/test/test_windows.c'; fi` -libarchive/libarchive_test-archive_acl.o: libarchive/archive_acl.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_acl.o -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_acl.Tpo -c -o libarchive/libarchive_test-archive_acl.o `test -f 'libarchive/archive_acl.c' || echo '$(srcdir)/'`libarchive/archive_acl.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_acl.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_acl.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_acl.c' object='libarchive/libarchive_test-archive_acl.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_acl.o: libarchive/archive_acl.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_acl.o -MD -MP -MF libarchive/$(DEPDIR)/test-archive_acl.Tpo -c -o libarchive/test-archive_acl.o `test -f 'libarchive/archive_acl.c' || echo '$(srcdir)/'`libarchive/archive_acl.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_acl.Tpo libarchive/$(DEPDIR)/test-archive_acl.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_acl.c' object='libarchive/test-archive_acl.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_acl.o `test -f 'libarchive/archive_acl.c' || echo '$(srcdir)/'`libarchive/archive_acl.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_acl.o `test -f 'libarchive/archive_acl.c' || echo '$(srcdir)/'`libarchive/archive_acl.c -libarchive/libarchive_test-archive_acl.obj: libarchive/archive_acl.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_acl.obj -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_acl.Tpo -c -o libarchive/libarchive_test-archive_acl.obj `if test -f 'libarchive/archive_acl.c'; then $(CYGPATH_W) 'libarchive/archive_acl.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_acl.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_acl.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_acl.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_acl.c' object='libarchive/libarchive_test-archive_acl.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_acl.obj: libarchive/archive_acl.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_acl.obj -MD -MP -MF libarchive/$(DEPDIR)/test-archive_acl.Tpo -c -o libarchive/test-archive_acl.obj `if test -f 'libarchive/archive_acl.c'; then $(CYGPATH_W) 'libarchive/archive_acl.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_acl.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_acl.Tpo libarchive/$(DEPDIR)/test-archive_acl.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_acl.c' object='libarchive/test-archive_acl.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_acl.obj `if test -f 'libarchive/archive_acl.c'; then $(CYGPATH_W) 'libarchive/archive_acl.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_acl.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_acl.obj `if test -f 'libarchive/archive_acl.c'; then $(CYGPATH_W) 'libarchive/archive_acl.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_acl.c'; fi` -libarchive/libarchive_test-archive_check_magic.o: libarchive/archive_check_magic.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_check_magic.o -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_check_magic.Tpo -c -o libarchive/libarchive_test-archive_check_magic.o `test -f 'libarchive/archive_check_magic.c' || echo '$(srcdir)/'`libarchive/archive_check_magic.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_check_magic.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_check_magic.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_check_magic.c' object='libarchive/libarchive_test-archive_check_magic.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_check_magic.o: libarchive/archive_check_magic.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_check_magic.o -MD -MP -MF libarchive/$(DEPDIR)/test-archive_check_magic.Tpo -c -o libarchive/test-archive_check_magic.o `test -f 'libarchive/archive_check_magic.c' || echo '$(srcdir)/'`libarchive/archive_check_magic.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_check_magic.Tpo libarchive/$(DEPDIR)/test-archive_check_magic.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_check_magic.c' object='libarchive/test-archive_check_magic.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_check_magic.o `test -f 'libarchive/archive_check_magic.c' || echo '$(srcdir)/'`libarchive/archive_check_magic.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_check_magic.o `test -f 'libarchive/archive_check_magic.c' || echo '$(srcdir)/'`libarchive/archive_check_magic.c -libarchive/libarchive_test-archive_check_magic.obj: libarchive/archive_check_magic.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_check_magic.obj -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_check_magic.Tpo -c -o libarchive/libarchive_test-archive_check_magic.obj `if test -f 'libarchive/archive_check_magic.c'; then $(CYGPATH_W) 'libarchive/archive_check_magic.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_check_magic.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_check_magic.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_check_magic.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_check_magic.c' object='libarchive/libarchive_test-archive_check_magic.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_check_magic.obj: libarchive/archive_check_magic.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_check_magic.obj -MD -MP -MF libarchive/$(DEPDIR)/test-archive_check_magic.Tpo -c -o libarchive/test-archive_check_magic.obj `if test -f 'libarchive/archive_check_magic.c'; then $(CYGPATH_W) 'libarchive/archive_check_magic.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_check_magic.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_check_magic.Tpo libarchive/$(DEPDIR)/test-archive_check_magic.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_check_magic.c' object='libarchive/test-archive_check_magic.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_check_magic.obj `if test -f 'libarchive/archive_check_magic.c'; then $(CYGPATH_W) 'libarchive/archive_check_magic.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_check_magic.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_check_magic.obj `if test -f 'libarchive/archive_check_magic.c'; then $(CYGPATH_W) 'libarchive/archive_check_magic.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_check_magic.c'; fi` -libarchive/libarchive_test-archive_cmdline.o: libarchive/archive_cmdline.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_cmdline.o -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_cmdline.Tpo -c -o libarchive/libarchive_test-archive_cmdline.o `test -f 'libarchive/archive_cmdline.c' || echo '$(srcdir)/'`libarchive/archive_cmdline.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_cmdline.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_cmdline.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_cmdline.c' object='libarchive/libarchive_test-archive_cmdline.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_cmdline.o: libarchive/archive_cmdline.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_cmdline.o -MD -MP -MF libarchive/$(DEPDIR)/test-archive_cmdline.Tpo -c -o libarchive/test-archive_cmdline.o `test -f 'libarchive/archive_cmdline.c' || echo '$(srcdir)/'`libarchive/archive_cmdline.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_cmdline.Tpo libarchive/$(DEPDIR)/test-archive_cmdline.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_cmdline.c' object='libarchive/test-archive_cmdline.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_cmdline.o `test -f 'libarchive/archive_cmdline.c' || echo '$(srcdir)/'`libarchive/archive_cmdline.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_cmdline.o `test -f 'libarchive/archive_cmdline.c' || echo '$(srcdir)/'`libarchive/archive_cmdline.c -libarchive/libarchive_test-archive_cmdline.obj: libarchive/archive_cmdline.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_cmdline.obj -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_cmdline.Tpo -c -o libarchive/libarchive_test-archive_cmdline.obj `if test -f 'libarchive/archive_cmdline.c'; then $(CYGPATH_W) 'libarchive/archive_cmdline.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_cmdline.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_cmdline.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_cmdline.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_cmdline.c' object='libarchive/libarchive_test-archive_cmdline.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_cmdline.obj: libarchive/archive_cmdline.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_cmdline.obj -MD -MP -MF libarchive/$(DEPDIR)/test-archive_cmdline.Tpo -c -o libarchive/test-archive_cmdline.obj `if test -f 'libarchive/archive_cmdline.c'; then $(CYGPATH_W) 'libarchive/archive_cmdline.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_cmdline.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_cmdline.Tpo libarchive/$(DEPDIR)/test-archive_cmdline.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_cmdline.c' object='libarchive/test-archive_cmdline.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_cmdline.obj `if test -f 'libarchive/archive_cmdline.c'; then $(CYGPATH_W) 'libarchive/archive_cmdline.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_cmdline.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_cmdline.obj `if test -f 'libarchive/archive_cmdline.c'; then $(CYGPATH_W) 'libarchive/archive_cmdline.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_cmdline.c'; fi` -libarchive/libarchive_test-archive_cryptor.o: libarchive/archive_cryptor.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_cryptor.o -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_cryptor.Tpo -c -o libarchive/libarchive_test-archive_cryptor.o `test -f 'libarchive/archive_cryptor.c' || echo '$(srcdir)/'`libarchive/archive_cryptor.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_cryptor.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_cryptor.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_cryptor.c' object='libarchive/libarchive_test-archive_cryptor.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_cryptor.o: libarchive/archive_cryptor.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_cryptor.o -MD -MP -MF libarchive/$(DEPDIR)/test-archive_cryptor.Tpo -c -o libarchive/test-archive_cryptor.o `test -f 'libarchive/archive_cryptor.c' || echo '$(srcdir)/'`libarchive/archive_cryptor.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_cryptor.Tpo libarchive/$(DEPDIR)/test-archive_cryptor.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_cryptor.c' object='libarchive/test-archive_cryptor.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_cryptor.o `test -f 'libarchive/archive_cryptor.c' || echo '$(srcdir)/'`libarchive/archive_cryptor.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_cryptor.o `test -f 'libarchive/archive_cryptor.c' || echo '$(srcdir)/'`libarchive/archive_cryptor.c -libarchive/libarchive_test-archive_cryptor.obj: libarchive/archive_cryptor.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_cryptor.obj -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_cryptor.Tpo -c -o libarchive/libarchive_test-archive_cryptor.obj `if test -f 'libarchive/archive_cryptor.c'; then $(CYGPATH_W) 'libarchive/archive_cryptor.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_cryptor.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_cryptor.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_cryptor.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_cryptor.c' object='libarchive/libarchive_test-archive_cryptor.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_cryptor.obj: libarchive/archive_cryptor.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_cryptor.obj -MD -MP -MF libarchive/$(DEPDIR)/test-archive_cryptor.Tpo -c -o libarchive/test-archive_cryptor.obj `if test -f 'libarchive/archive_cryptor.c'; then $(CYGPATH_W) 'libarchive/archive_cryptor.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_cryptor.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_cryptor.Tpo libarchive/$(DEPDIR)/test-archive_cryptor.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_cryptor.c' object='libarchive/test-archive_cryptor.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_cryptor.obj `if test -f 'libarchive/archive_cryptor.c'; then $(CYGPATH_W) 'libarchive/archive_cryptor.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_cryptor.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_cryptor.obj `if test -f 'libarchive/archive_cryptor.c'; then $(CYGPATH_W) 'libarchive/archive_cryptor.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_cryptor.c'; fi` -libarchive/libarchive_test-archive_digest.o: libarchive/archive_digest.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_digest.o -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_digest.Tpo -c -o libarchive/libarchive_test-archive_digest.o `test -f 'libarchive/archive_digest.c' || echo '$(srcdir)/'`libarchive/archive_digest.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_digest.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_digest.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_digest.c' object='libarchive/libarchive_test-archive_digest.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_digest.o: libarchive/archive_digest.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_digest.o -MD -MP -MF libarchive/$(DEPDIR)/test-archive_digest.Tpo -c -o libarchive/test-archive_digest.o `test -f 'libarchive/archive_digest.c' || echo '$(srcdir)/'`libarchive/archive_digest.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_digest.Tpo libarchive/$(DEPDIR)/test-archive_digest.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_digest.c' object='libarchive/test-archive_digest.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_digest.o `test -f 'libarchive/archive_digest.c' || echo '$(srcdir)/'`libarchive/archive_digest.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_digest.o `test -f 'libarchive/archive_digest.c' || echo '$(srcdir)/'`libarchive/archive_digest.c -libarchive/libarchive_test-archive_digest.obj: libarchive/archive_digest.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_digest.obj -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_digest.Tpo -c -o libarchive/libarchive_test-archive_digest.obj `if test -f 'libarchive/archive_digest.c'; then $(CYGPATH_W) 'libarchive/archive_digest.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_digest.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_digest.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_digest.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_digest.c' object='libarchive/libarchive_test-archive_digest.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_digest.obj: libarchive/archive_digest.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_digest.obj -MD -MP -MF libarchive/$(DEPDIR)/test-archive_digest.Tpo -c -o libarchive/test-archive_digest.obj `if test -f 'libarchive/archive_digest.c'; then $(CYGPATH_W) 'libarchive/archive_digest.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_digest.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_digest.Tpo libarchive/$(DEPDIR)/test-archive_digest.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_digest.c' object='libarchive/test-archive_digest.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_digest.obj `if test -f 'libarchive/archive_digest.c'; then $(CYGPATH_W) 'libarchive/archive_digest.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_digest.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_digest.obj `if test -f 'libarchive/archive_digest.c'; then $(CYGPATH_W) 'libarchive/archive_digest.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_digest.c'; fi` -libarchive/libarchive_test-archive_entry.o: libarchive/archive_entry.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_entry.o -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_entry.Tpo -c -o libarchive/libarchive_test-archive_entry.o `test -f 'libarchive/archive_entry.c' || echo '$(srcdir)/'`libarchive/archive_entry.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_entry.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_entry.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_entry.c' object='libarchive/libarchive_test-archive_entry.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_entry.o: libarchive/archive_entry.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_entry.o -MD -MP -MF libarchive/$(DEPDIR)/test-archive_entry.Tpo -c -o libarchive/test-archive_entry.o `test -f 'libarchive/archive_entry.c' || echo '$(srcdir)/'`libarchive/archive_entry.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_entry.Tpo libarchive/$(DEPDIR)/test-archive_entry.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_entry.c' object='libarchive/test-archive_entry.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_entry.o `test -f 'libarchive/archive_entry.c' || echo '$(srcdir)/'`libarchive/archive_entry.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_entry.o `test -f 'libarchive/archive_entry.c' || echo '$(srcdir)/'`libarchive/archive_entry.c -libarchive/libarchive_test-archive_entry.obj: libarchive/archive_entry.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_entry.obj -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_entry.Tpo -c -o libarchive/libarchive_test-archive_entry.obj `if test -f 'libarchive/archive_entry.c'; then $(CYGPATH_W) 'libarchive/archive_entry.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_entry.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_entry.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_entry.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_entry.c' object='libarchive/libarchive_test-archive_entry.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_entry.obj: libarchive/archive_entry.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_entry.obj -MD -MP -MF libarchive/$(DEPDIR)/test-archive_entry.Tpo -c -o libarchive/test-archive_entry.obj `if test -f 'libarchive/archive_entry.c'; then $(CYGPATH_W) 'libarchive/archive_entry.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_entry.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_entry.Tpo libarchive/$(DEPDIR)/test-archive_entry.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_entry.c' object='libarchive/test-archive_entry.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_entry.obj `if test -f 'libarchive/archive_entry.c'; then $(CYGPATH_W) 'libarchive/archive_entry.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_entry.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_entry.obj `if test -f 'libarchive/archive_entry.c'; then $(CYGPATH_W) 'libarchive/archive_entry.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_entry.c'; fi` -libarchive/libarchive_test-archive_entry_copy_stat.o: libarchive/archive_entry_copy_stat.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_entry_copy_stat.o -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_entry_copy_stat.Tpo -c -o libarchive/libarchive_test-archive_entry_copy_stat.o `test -f 'libarchive/archive_entry_copy_stat.c' || echo '$(srcdir)/'`libarchive/archive_entry_copy_stat.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_entry_copy_stat.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_entry_copy_stat.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_entry_copy_stat.c' object='libarchive/libarchive_test-archive_entry_copy_stat.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_entry_copy_stat.o: libarchive/archive_entry_copy_stat.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_entry_copy_stat.o -MD -MP -MF libarchive/$(DEPDIR)/test-archive_entry_copy_stat.Tpo -c -o libarchive/test-archive_entry_copy_stat.o `test -f 'libarchive/archive_entry_copy_stat.c' || echo '$(srcdir)/'`libarchive/archive_entry_copy_stat.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_entry_copy_stat.Tpo libarchive/$(DEPDIR)/test-archive_entry_copy_stat.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_entry_copy_stat.c' object='libarchive/test-archive_entry_copy_stat.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_entry_copy_stat.o `test -f 'libarchive/archive_entry_copy_stat.c' || echo '$(srcdir)/'`libarchive/archive_entry_copy_stat.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_entry_copy_stat.o `test -f 'libarchive/archive_entry_copy_stat.c' || echo '$(srcdir)/'`libarchive/archive_entry_copy_stat.c -libarchive/libarchive_test-archive_entry_copy_stat.obj: libarchive/archive_entry_copy_stat.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_entry_copy_stat.obj -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_entry_copy_stat.Tpo -c -o libarchive/libarchive_test-archive_entry_copy_stat.obj `if test -f 'libarchive/archive_entry_copy_stat.c'; then $(CYGPATH_W) 'libarchive/archive_entry_copy_stat.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_entry_copy_stat.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_entry_copy_stat.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_entry_copy_stat.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_entry_copy_stat.c' object='libarchive/libarchive_test-archive_entry_copy_stat.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_entry_copy_stat.obj: libarchive/archive_entry_copy_stat.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_entry_copy_stat.obj -MD -MP -MF libarchive/$(DEPDIR)/test-archive_entry_copy_stat.Tpo -c -o libarchive/test-archive_entry_copy_stat.obj `if test -f 'libarchive/archive_entry_copy_stat.c'; then $(CYGPATH_W) 'libarchive/archive_entry_copy_stat.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_entry_copy_stat.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_entry_copy_stat.Tpo libarchive/$(DEPDIR)/test-archive_entry_copy_stat.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_entry_copy_stat.c' object='libarchive/test-archive_entry_copy_stat.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_entry_copy_stat.obj `if test -f 'libarchive/archive_entry_copy_stat.c'; then $(CYGPATH_W) 'libarchive/archive_entry_copy_stat.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_entry_copy_stat.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_entry_copy_stat.obj `if test -f 'libarchive/archive_entry_copy_stat.c'; then $(CYGPATH_W) 'libarchive/archive_entry_copy_stat.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_entry_copy_stat.c'; fi` -libarchive/libarchive_test-archive_entry_link_resolver.o: libarchive/archive_entry_link_resolver.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_entry_link_resolver.o -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_entry_link_resolver.Tpo -c -o libarchive/libarchive_test-archive_entry_link_resolver.o `test -f 'libarchive/archive_entry_link_resolver.c' || echo '$(srcdir)/'`libarchive/archive_entry_link_resolver.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_entry_link_resolver.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_entry_link_resolver.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_entry_link_resolver.c' object='libarchive/libarchive_test-archive_entry_link_resolver.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_entry_link_resolver.o: libarchive/archive_entry_link_resolver.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_entry_link_resolver.o -MD -MP -MF libarchive/$(DEPDIR)/test-archive_entry_link_resolver.Tpo -c -o libarchive/test-archive_entry_link_resolver.o `test -f 'libarchive/archive_entry_link_resolver.c' || echo '$(srcdir)/'`libarchive/archive_entry_link_resolver.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_entry_link_resolver.Tpo libarchive/$(DEPDIR)/test-archive_entry_link_resolver.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_entry_link_resolver.c' object='libarchive/test-archive_entry_link_resolver.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_entry_link_resolver.o `test -f 'libarchive/archive_entry_link_resolver.c' || echo '$(srcdir)/'`libarchive/archive_entry_link_resolver.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_entry_link_resolver.o `test -f 'libarchive/archive_entry_link_resolver.c' || echo '$(srcdir)/'`libarchive/archive_entry_link_resolver.c -libarchive/libarchive_test-archive_entry_link_resolver.obj: libarchive/archive_entry_link_resolver.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_entry_link_resolver.obj -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_entry_link_resolver.Tpo -c -o libarchive/libarchive_test-archive_entry_link_resolver.obj `if test -f 'libarchive/archive_entry_link_resolver.c'; then $(CYGPATH_W) 'libarchive/archive_entry_link_resolver.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_entry_link_resolver.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_entry_link_resolver.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_entry_link_resolver.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_entry_link_resolver.c' object='libarchive/libarchive_test-archive_entry_link_resolver.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_entry_link_resolver.obj: libarchive/archive_entry_link_resolver.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_entry_link_resolver.obj -MD -MP -MF libarchive/$(DEPDIR)/test-archive_entry_link_resolver.Tpo -c -o libarchive/test-archive_entry_link_resolver.obj `if test -f 'libarchive/archive_entry_link_resolver.c'; then $(CYGPATH_W) 'libarchive/archive_entry_link_resolver.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_entry_link_resolver.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_entry_link_resolver.Tpo libarchive/$(DEPDIR)/test-archive_entry_link_resolver.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_entry_link_resolver.c' object='libarchive/test-archive_entry_link_resolver.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_entry_link_resolver.obj `if test -f 'libarchive/archive_entry_link_resolver.c'; then $(CYGPATH_W) 'libarchive/archive_entry_link_resolver.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_entry_link_resolver.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_entry_link_resolver.obj `if test -f 'libarchive/archive_entry_link_resolver.c'; then $(CYGPATH_W) 'libarchive/archive_entry_link_resolver.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_entry_link_resolver.c'; fi` -libarchive/libarchive_test-archive_entry_sparse.o: libarchive/archive_entry_sparse.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_entry_sparse.o -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_entry_sparse.Tpo -c -o libarchive/libarchive_test-archive_entry_sparse.o `test -f 'libarchive/archive_entry_sparse.c' || echo '$(srcdir)/'`libarchive/archive_entry_sparse.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_entry_sparse.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_entry_sparse.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_entry_sparse.c' object='libarchive/libarchive_test-archive_entry_sparse.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_entry_sparse.o: libarchive/archive_entry_sparse.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_entry_sparse.o -MD -MP -MF libarchive/$(DEPDIR)/test-archive_entry_sparse.Tpo -c -o libarchive/test-archive_entry_sparse.o `test -f 'libarchive/archive_entry_sparse.c' || echo '$(srcdir)/'`libarchive/archive_entry_sparse.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_entry_sparse.Tpo libarchive/$(DEPDIR)/test-archive_entry_sparse.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_entry_sparse.c' object='libarchive/test-archive_entry_sparse.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_entry_sparse.o `test -f 'libarchive/archive_entry_sparse.c' || echo '$(srcdir)/'`libarchive/archive_entry_sparse.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_entry_sparse.o `test -f 'libarchive/archive_entry_sparse.c' || echo '$(srcdir)/'`libarchive/archive_entry_sparse.c -libarchive/libarchive_test-archive_entry_sparse.obj: libarchive/archive_entry_sparse.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_entry_sparse.obj -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_entry_sparse.Tpo -c -o libarchive/libarchive_test-archive_entry_sparse.obj `if test -f 'libarchive/archive_entry_sparse.c'; then $(CYGPATH_W) 'libarchive/archive_entry_sparse.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_entry_sparse.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_entry_sparse.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_entry_sparse.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_entry_sparse.c' object='libarchive/libarchive_test-archive_entry_sparse.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_entry_sparse.obj: libarchive/archive_entry_sparse.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_entry_sparse.obj -MD -MP -MF libarchive/$(DEPDIR)/test-archive_entry_sparse.Tpo -c -o libarchive/test-archive_entry_sparse.obj `if test -f 'libarchive/archive_entry_sparse.c'; then $(CYGPATH_W) 'libarchive/archive_entry_sparse.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_entry_sparse.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_entry_sparse.Tpo libarchive/$(DEPDIR)/test-archive_entry_sparse.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_entry_sparse.c' object='libarchive/test-archive_entry_sparse.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_entry_sparse.obj `if test -f 'libarchive/archive_entry_sparse.c'; then $(CYGPATH_W) 'libarchive/archive_entry_sparse.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_entry_sparse.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_entry_sparse.obj `if test -f 'libarchive/archive_entry_sparse.c'; then $(CYGPATH_W) 'libarchive/archive_entry_sparse.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_entry_sparse.c'; fi` -libarchive/libarchive_test-archive_entry_stat.o: libarchive/archive_entry_stat.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_entry_stat.o -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_entry_stat.Tpo -c -o libarchive/libarchive_test-archive_entry_stat.o `test -f 'libarchive/archive_entry_stat.c' || echo '$(srcdir)/'`libarchive/archive_entry_stat.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_entry_stat.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_entry_stat.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_entry_stat.c' object='libarchive/libarchive_test-archive_entry_stat.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_entry_stat.o: libarchive/archive_entry_stat.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_entry_stat.o -MD -MP -MF libarchive/$(DEPDIR)/test-archive_entry_stat.Tpo -c -o libarchive/test-archive_entry_stat.o `test -f 'libarchive/archive_entry_stat.c' || echo '$(srcdir)/'`libarchive/archive_entry_stat.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_entry_stat.Tpo libarchive/$(DEPDIR)/test-archive_entry_stat.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_entry_stat.c' object='libarchive/test-archive_entry_stat.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_entry_stat.o `test -f 'libarchive/archive_entry_stat.c' || echo '$(srcdir)/'`libarchive/archive_entry_stat.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_entry_stat.o `test -f 'libarchive/archive_entry_stat.c' || echo '$(srcdir)/'`libarchive/archive_entry_stat.c -libarchive/libarchive_test-archive_entry_stat.obj: libarchive/archive_entry_stat.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_entry_stat.obj -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_entry_stat.Tpo -c -o libarchive/libarchive_test-archive_entry_stat.obj `if test -f 'libarchive/archive_entry_stat.c'; then $(CYGPATH_W) 'libarchive/archive_entry_stat.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_entry_stat.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_entry_stat.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_entry_stat.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_entry_stat.c' object='libarchive/libarchive_test-archive_entry_stat.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_entry_stat.obj: libarchive/archive_entry_stat.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_entry_stat.obj -MD -MP -MF libarchive/$(DEPDIR)/test-archive_entry_stat.Tpo -c -o libarchive/test-archive_entry_stat.obj `if test -f 'libarchive/archive_entry_stat.c'; then $(CYGPATH_W) 'libarchive/archive_entry_stat.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_entry_stat.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_entry_stat.Tpo libarchive/$(DEPDIR)/test-archive_entry_stat.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_entry_stat.c' object='libarchive/test-archive_entry_stat.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_entry_stat.obj `if test -f 'libarchive/archive_entry_stat.c'; then $(CYGPATH_W) 'libarchive/archive_entry_stat.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_entry_stat.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_entry_stat.obj `if test -f 'libarchive/archive_entry_stat.c'; then $(CYGPATH_W) 'libarchive/archive_entry_stat.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_entry_stat.c'; fi` -libarchive/libarchive_test-archive_entry_strmode.o: libarchive/archive_entry_strmode.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_entry_strmode.o -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_entry_strmode.Tpo -c -o libarchive/libarchive_test-archive_entry_strmode.o `test -f 'libarchive/archive_entry_strmode.c' || echo '$(srcdir)/'`libarchive/archive_entry_strmode.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_entry_strmode.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_entry_strmode.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_entry_strmode.c' object='libarchive/libarchive_test-archive_entry_strmode.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_entry_strmode.o: libarchive/archive_entry_strmode.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_entry_strmode.o -MD -MP -MF libarchive/$(DEPDIR)/test-archive_entry_strmode.Tpo -c -o libarchive/test-archive_entry_strmode.o `test -f 'libarchive/archive_entry_strmode.c' || echo '$(srcdir)/'`libarchive/archive_entry_strmode.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_entry_strmode.Tpo libarchive/$(DEPDIR)/test-archive_entry_strmode.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_entry_strmode.c' object='libarchive/test-archive_entry_strmode.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_entry_strmode.o `test -f 'libarchive/archive_entry_strmode.c' || echo '$(srcdir)/'`libarchive/archive_entry_strmode.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_entry_strmode.o `test -f 'libarchive/archive_entry_strmode.c' || echo '$(srcdir)/'`libarchive/archive_entry_strmode.c -libarchive/libarchive_test-archive_entry_strmode.obj: libarchive/archive_entry_strmode.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_entry_strmode.obj -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_entry_strmode.Tpo -c -o libarchive/libarchive_test-archive_entry_strmode.obj `if test -f 'libarchive/archive_entry_strmode.c'; then $(CYGPATH_W) 'libarchive/archive_entry_strmode.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_entry_strmode.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_entry_strmode.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_entry_strmode.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_entry_strmode.c' object='libarchive/libarchive_test-archive_entry_strmode.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_entry_strmode.obj: libarchive/archive_entry_strmode.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_entry_strmode.obj -MD -MP -MF libarchive/$(DEPDIR)/test-archive_entry_strmode.Tpo -c -o libarchive/test-archive_entry_strmode.obj `if test -f 'libarchive/archive_entry_strmode.c'; then $(CYGPATH_W) 'libarchive/archive_entry_strmode.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_entry_strmode.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_entry_strmode.Tpo libarchive/$(DEPDIR)/test-archive_entry_strmode.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_entry_strmode.c' object='libarchive/test-archive_entry_strmode.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_entry_strmode.obj `if test -f 'libarchive/archive_entry_strmode.c'; then $(CYGPATH_W) 'libarchive/archive_entry_strmode.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_entry_strmode.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_entry_strmode.obj `if test -f 'libarchive/archive_entry_strmode.c'; then $(CYGPATH_W) 'libarchive/archive_entry_strmode.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_entry_strmode.c'; fi` -libarchive/libarchive_test-archive_entry_xattr.o: libarchive/archive_entry_xattr.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_entry_xattr.o -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_entry_xattr.Tpo -c -o libarchive/libarchive_test-archive_entry_xattr.o `test -f 'libarchive/archive_entry_xattr.c' || echo '$(srcdir)/'`libarchive/archive_entry_xattr.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_entry_xattr.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_entry_xattr.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_entry_xattr.c' object='libarchive/libarchive_test-archive_entry_xattr.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_entry_xattr.o: libarchive/archive_entry_xattr.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_entry_xattr.o -MD -MP -MF libarchive/$(DEPDIR)/test-archive_entry_xattr.Tpo -c -o libarchive/test-archive_entry_xattr.o `test -f 'libarchive/archive_entry_xattr.c' || echo '$(srcdir)/'`libarchive/archive_entry_xattr.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_entry_xattr.Tpo libarchive/$(DEPDIR)/test-archive_entry_xattr.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_entry_xattr.c' object='libarchive/test-archive_entry_xattr.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_entry_xattr.o `test -f 'libarchive/archive_entry_xattr.c' || echo '$(srcdir)/'`libarchive/archive_entry_xattr.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_entry_xattr.o `test -f 'libarchive/archive_entry_xattr.c' || echo '$(srcdir)/'`libarchive/archive_entry_xattr.c -libarchive/libarchive_test-archive_entry_xattr.obj: libarchive/archive_entry_xattr.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_entry_xattr.obj -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_entry_xattr.Tpo -c -o libarchive/libarchive_test-archive_entry_xattr.obj `if test -f 'libarchive/archive_entry_xattr.c'; then $(CYGPATH_W) 'libarchive/archive_entry_xattr.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_entry_xattr.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_entry_xattr.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_entry_xattr.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_entry_xattr.c' object='libarchive/libarchive_test-archive_entry_xattr.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_entry_xattr.obj: libarchive/archive_entry_xattr.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_entry_xattr.obj -MD -MP -MF libarchive/$(DEPDIR)/test-archive_entry_xattr.Tpo -c -o libarchive/test-archive_entry_xattr.obj `if test -f 'libarchive/archive_entry_xattr.c'; then $(CYGPATH_W) 'libarchive/archive_entry_xattr.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_entry_xattr.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_entry_xattr.Tpo libarchive/$(DEPDIR)/test-archive_entry_xattr.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_entry_xattr.c' object='libarchive/test-archive_entry_xattr.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_entry_xattr.obj `if test -f 'libarchive/archive_entry_xattr.c'; then $(CYGPATH_W) 'libarchive/archive_entry_xattr.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_entry_xattr.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_entry_xattr.obj `if test -f 'libarchive/archive_entry_xattr.c'; then $(CYGPATH_W) 'libarchive/archive_entry_xattr.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_entry_xattr.c'; fi` -libarchive/libarchive_test-archive_getdate.o: libarchive/archive_getdate.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_getdate.o -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_getdate.Tpo -c -o libarchive/libarchive_test-archive_getdate.o `test -f 'libarchive/archive_getdate.c' || echo '$(srcdir)/'`libarchive/archive_getdate.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_getdate.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_getdate.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_getdate.c' object='libarchive/libarchive_test-archive_getdate.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_getdate.o: libarchive/archive_getdate.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_getdate.o -MD -MP -MF libarchive/$(DEPDIR)/test-archive_getdate.Tpo -c -o libarchive/test-archive_getdate.o `test -f 'libarchive/archive_getdate.c' || echo '$(srcdir)/'`libarchive/archive_getdate.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_getdate.Tpo libarchive/$(DEPDIR)/test-archive_getdate.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_getdate.c' object='libarchive/test-archive_getdate.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_getdate.o `test -f 'libarchive/archive_getdate.c' || echo '$(srcdir)/'`libarchive/archive_getdate.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_getdate.o `test -f 'libarchive/archive_getdate.c' || echo '$(srcdir)/'`libarchive/archive_getdate.c -libarchive/libarchive_test-archive_getdate.obj: libarchive/archive_getdate.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_getdate.obj -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_getdate.Tpo -c -o libarchive/libarchive_test-archive_getdate.obj `if test -f 'libarchive/archive_getdate.c'; then $(CYGPATH_W) 'libarchive/archive_getdate.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_getdate.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_getdate.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_getdate.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_getdate.c' object='libarchive/libarchive_test-archive_getdate.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_getdate.obj: libarchive/archive_getdate.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_getdate.obj -MD -MP -MF libarchive/$(DEPDIR)/test-archive_getdate.Tpo -c -o libarchive/test-archive_getdate.obj `if test -f 'libarchive/archive_getdate.c'; then $(CYGPATH_W) 'libarchive/archive_getdate.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_getdate.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_getdate.Tpo libarchive/$(DEPDIR)/test-archive_getdate.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_getdate.c' object='libarchive/test-archive_getdate.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_getdate.obj `if test -f 'libarchive/archive_getdate.c'; then $(CYGPATH_W) 'libarchive/archive_getdate.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_getdate.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_getdate.obj `if test -f 'libarchive/archive_getdate.c'; then $(CYGPATH_W) 'libarchive/archive_getdate.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_getdate.c'; fi` -libarchive/libarchive_test-archive_hmac.o: libarchive/archive_hmac.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_hmac.o -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_hmac.Tpo -c -o libarchive/libarchive_test-archive_hmac.o `test -f 'libarchive/archive_hmac.c' || echo '$(srcdir)/'`libarchive/archive_hmac.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_hmac.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_hmac.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_hmac.c' object='libarchive/libarchive_test-archive_hmac.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_hmac.o: libarchive/archive_hmac.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_hmac.o -MD -MP -MF libarchive/$(DEPDIR)/test-archive_hmac.Tpo -c -o libarchive/test-archive_hmac.o `test -f 'libarchive/archive_hmac.c' || echo '$(srcdir)/'`libarchive/archive_hmac.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_hmac.Tpo libarchive/$(DEPDIR)/test-archive_hmac.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_hmac.c' object='libarchive/test-archive_hmac.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_hmac.o `test -f 'libarchive/archive_hmac.c' || echo '$(srcdir)/'`libarchive/archive_hmac.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_hmac.o `test -f 'libarchive/archive_hmac.c' || echo '$(srcdir)/'`libarchive/archive_hmac.c -libarchive/libarchive_test-archive_hmac.obj: libarchive/archive_hmac.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_hmac.obj -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_hmac.Tpo -c -o libarchive/libarchive_test-archive_hmac.obj `if test -f 'libarchive/archive_hmac.c'; then $(CYGPATH_W) 'libarchive/archive_hmac.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_hmac.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_hmac.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_hmac.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_hmac.c' object='libarchive/libarchive_test-archive_hmac.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_hmac.obj: libarchive/archive_hmac.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_hmac.obj -MD -MP -MF libarchive/$(DEPDIR)/test-archive_hmac.Tpo -c -o libarchive/test-archive_hmac.obj `if test -f 'libarchive/archive_hmac.c'; then $(CYGPATH_W) 'libarchive/archive_hmac.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_hmac.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_hmac.Tpo libarchive/$(DEPDIR)/test-archive_hmac.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_hmac.c' object='libarchive/test-archive_hmac.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_hmac.obj `if test -f 'libarchive/archive_hmac.c'; then $(CYGPATH_W) 'libarchive/archive_hmac.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_hmac.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_hmac.obj `if test -f 'libarchive/archive_hmac.c'; then $(CYGPATH_W) 'libarchive/archive_hmac.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_hmac.c'; fi` -libarchive/libarchive_test-archive_match.o: libarchive/archive_match.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_match.o -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_match.Tpo -c -o libarchive/libarchive_test-archive_match.o `test -f 'libarchive/archive_match.c' || echo '$(srcdir)/'`libarchive/archive_match.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_match.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_match.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_match.c' object='libarchive/libarchive_test-archive_match.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_match.o: libarchive/archive_match.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_match.o -MD -MP -MF libarchive/$(DEPDIR)/test-archive_match.Tpo -c -o libarchive/test-archive_match.o `test -f 'libarchive/archive_match.c' || echo '$(srcdir)/'`libarchive/archive_match.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_match.Tpo libarchive/$(DEPDIR)/test-archive_match.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_match.c' object='libarchive/test-archive_match.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_match.o `test -f 'libarchive/archive_match.c' || echo '$(srcdir)/'`libarchive/archive_match.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_match.o `test -f 'libarchive/archive_match.c' || echo '$(srcdir)/'`libarchive/archive_match.c -libarchive/libarchive_test-archive_match.obj: libarchive/archive_match.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_match.obj -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_match.Tpo -c -o libarchive/libarchive_test-archive_match.obj `if test -f 'libarchive/archive_match.c'; then $(CYGPATH_W) 'libarchive/archive_match.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_match.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_match.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_match.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_match.c' object='libarchive/libarchive_test-archive_match.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_match.obj: libarchive/archive_match.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_match.obj -MD -MP -MF libarchive/$(DEPDIR)/test-archive_match.Tpo -c -o libarchive/test-archive_match.obj `if test -f 'libarchive/archive_match.c'; then $(CYGPATH_W) 'libarchive/archive_match.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_match.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_match.Tpo libarchive/$(DEPDIR)/test-archive_match.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_match.c' object='libarchive/test-archive_match.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_match.obj `if test -f 'libarchive/archive_match.c'; then $(CYGPATH_W) 'libarchive/archive_match.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_match.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_match.obj `if test -f 'libarchive/archive_match.c'; then $(CYGPATH_W) 'libarchive/archive_match.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_match.c'; fi` -libarchive/libarchive_test-archive_options.o: libarchive/archive_options.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_options.o -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_options.Tpo -c -o libarchive/libarchive_test-archive_options.o `test -f 'libarchive/archive_options.c' || echo '$(srcdir)/'`libarchive/archive_options.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_options.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_options.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_options.c' object='libarchive/libarchive_test-archive_options.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_options.o: libarchive/archive_options.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_options.o -MD -MP -MF libarchive/$(DEPDIR)/test-archive_options.Tpo -c -o libarchive/test-archive_options.o `test -f 'libarchive/archive_options.c' || echo '$(srcdir)/'`libarchive/archive_options.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_options.Tpo libarchive/$(DEPDIR)/test-archive_options.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_options.c' object='libarchive/test-archive_options.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_options.o `test -f 'libarchive/archive_options.c' || echo '$(srcdir)/'`libarchive/archive_options.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_options.o `test -f 'libarchive/archive_options.c' || echo '$(srcdir)/'`libarchive/archive_options.c -libarchive/libarchive_test-archive_options.obj: libarchive/archive_options.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_options.obj -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_options.Tpo -c -o libarchive/libarchive_test-archive_options.obj `if test -f 'libarchive/archive_options.c'; then $(CYGPATH_W) 'libarchive/archive_options.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_options.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_options.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_options.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_options.c' object='libarchive/libarchive_test-archive_options.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_options.obj: libarchive/archive_options.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_options.obj -MD -MP -MF libarchive/$(DEPDIR)/test-archive_options.Tpo -c -o libarchive/test-archive_options.obj `if test -f 'libarchive/archive_options.c'; then $(CYGPATH_W) 'libarchive/archive_options.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_options.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_options.Tpo libarchive/$(DEPDIR)/test-archive_options.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_options.c' object='libarchive/test-archive_options.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_options.obj `if test -f 'libarchive/archive_options.c'; then $(CYGPATH_W) 'libarchive/archive_options.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_options.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_options.obj `if test -f 'libarchive/archive_options.c'; then $(CYGPATH_W) 'libarchive/archive_options.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_options.c'; fi` -libarchive/libarchive_test-archive_pack_dev.o: libarchive/archive_pack_dev.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_pack_dev.o -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_pack_dev.Tpo -c -o libarchive/libarchive_test-archive_pack_dev.o `test -f 'libarchive/archive_pack_dev.c' || echo '$(srcdir)/'`libarchive/archive_pack_dev.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_pack_dev.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_pack_dev.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_pack_dev.c' object='libarchive/libarchive_test-archive_pack_dev.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_pack_dev.o: libarchive/archive_pack_dev.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_pack_dev.o -MD -MP -MF libarchive/$(DEPDIR)/test-archive_pack_dev.Tpo -c -o libarchive/test-archive_pack_dev.o `test -f 'libarchive/archive_pack_dev.c' || echo '$(srcdir)/'`libarchive/archive_pack_dev.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_pack_dev.Tpo libarchive/$(DEPDIR)/test-archive_pack_dev.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_pack_dev.c' object='libarchive/test-archive_pack_dev.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_pack_dev.o `test -f 'libarchive/archive_pack_dev.c' || echo '$(srcdir)/'`libarchive/archive_pack_dev.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_pack_dev.o `test -f 'libarchive/archive_pack_dev.c' || echo '$(srcdir)/'`libarchive/archive_pack_dev.c -libarchive/libarchive_test-archive_pack_dev.obj: libarchive/archive_pack_dev.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_pack_dev.obj -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_pack_dev.Tpo -c -o libarchive/libarchive_test-archive_pack_dev.obj `if test -f 'libarchive/archive_pack_dev.c'; then $(CYGPATH_W) 'libarchive/archive_pack_dev.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_pack_dev.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_pack_dev.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_pack_dev.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_pack_dev.c' object='libarchive/libarchive_test-archive_pack_dev.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_pack_dev.obj: libarchive/archive_pack_dev.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_pack_dev.obj -MD -MP -MF libarchive/$(DEPDIR)/test-archive_pack_dev.Tpo -c -o libarchive/test-archive_pack_dev.obj `if test -f 'libarchive/archive_pack_dev.c'; then $(CYGPATH_W) 'libarchive/archive_pack_dev.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_pack_dev.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_pack_dev.Tpo libarchive/$(DEPDIR)/test-archive_pack_dev.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_pack_dev.c' object='libarchive/test-archive_pack_dev.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_pack_dev.obj `if test -f 'libarchive/archive_pack_dev.c'; then $(CYGPATH_W) 'libarchive/archive_pack_dev.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_pack_dev.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_pack_dev.obj `if test -f 'libarchive/archive_pack_dev.c'; then $(CYGPATH_W) 'libarchive/archive_pack_dev.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_pack_dev.c'; fi` -libarchive/libarchive_test-archive_pathmatch.o: libarchive/archive_pathmatch.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_pathmatch.o -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_pathmatch.Tpo -c -o libarchive/libarchive_test-archive_pathmatch.o `test -f 'libarchive/archive_pathmatch.c' || echo '$(srcdir)/'`libarchive/archive_pathmatch.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_pathmatch.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_pathmatch.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_pathmatch.c' object='libarchive/libarchive_test-archive_pathmatch.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_pathmatch.o: libarchive/archive_pathmatch.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_pathmatch.o -MD -MP -MF libarchive/$(DEPDIR)/test-archive_pathmatch.Tpo -c -o libarchive/test-archive_pathmatch.o `test -f 'libarchive/archive_pathmatch.c' || echo '$(srcdir)/'`libarchive/archive_pathmatch.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_pathmatch.Tpo libarchive/$(DEPDIR)/test-archive_pathmatch.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_pathmatch.c' object='libarchive/test-archive_pathmatch.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_pathmatch.o `test -f 'libarchive/archive_pathmatch.c' || echo '$(srcdir)/'`libarchive/archive_pathmatch.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_pathmatch.o `test -f 'libarchive/archive_pathmatch.c' || echo '$(srcdir)/'`libarchive/archive_pathmatch.c -libarchive/libarchive_test-archive_pathmatch.obj: libarchive/archive_pathmatch.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_pathmatch.obj -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_pathmatch.Tpo -c -o libarchive/libarchive_test-archive_pathmatch.obj `if test -f 'libarchive/archive_pathmatch.c'; then $(CYGPATH_W) 'libarchive/archive_pathmatch.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_pathmatch.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_pathmatch.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_pathmatch.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_pathmatch.c' object='libarchive/libarchive_test-archive_pathmatch.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_pathmatch.obj: libarchive/archive_pathmatch.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_pathmatch.obj -MD -MP -MF libarchive/$(DEPDIR)/test-archive_pathmatch.Tpo -c -o libarchive/test-archive_pathmatch.obj `if test -f 'libarchive/archive_pathmatch.c'; then $(CYGPATH_W) 'libarchive/archive_pathmatch.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_pathmatch.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_pathmatch.Tpo libarchive/$(DEPDIR)/test-archive_pathmatch.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_pathmatch.c' object='libarchive/test-archive_pathmatch.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_pathmatch.obj `if test -f 'libarchive/archive_pathmatch.c'; then $(CYGPATH_W) 'libarchive/archive_pathmatch.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_pathmatch.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_pathmatch.obj `if test -f 'libarchive/archive_pathmatch.c'; then $(CYGPATH_W) 'libarchive/archive_pathmatch.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_pathmatch.c'; fi` -libarchive/libarchive_test-archive_ppmd7.o: libarchive/archive_ppmd7.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_ppmd7.o -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_ppmd7.Tpo -c -o libarchive/libarchive_test-archive_ppmd7.o `test -f 'libarchive/archive_ppmd7.c' || echo '$(srcdir)/'`libarchive/archive_ppmd7.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_ppmd7.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_ppmd7.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_ppmd7.c' object='libarchive/libarchive_test-archive_ppmd7.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_ppmd7.o: libarchive/archive_ppmd7.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_ppmd7.o -MD -MP -MF libarchive/$(DEPDIR)/test-archive_ppmd7.Tpo -c -o libarchive/test-archive_ppmd7.o `test -f 'libarchive/archive_ppmd7.c' || echo '$(srcdir)/'`libarchive/archive_ppmd7.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_ppmd7.Tpo libarchive/$(DEPDIR)/test-archive_ppmd7.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_ppmd7.c' object='libarchive/test-archive_ppmd7.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_ppmd7.o `test -f 'libarchive/archive_ppmd7.c' || echo '$(srcdir)/'`libarchive/archive_ppmd7.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_ppmd7.o `test -f 'libarchive/archive_ppmd7.c' || echo '$(srcdir)/'`libarchive/archive_ppmd7.c -libarchive/libarchive_test-archive_ppmd7.obj: libarchive/archive_ppmd7.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_ppmd7.obj -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_ppmd7.Tpo -c -o libarchive/libarchive_test-archive_ppmd7.obj `if test -f 'libarchive/archive_ppmd7.c'; then $(CYGPATH_W) 'libarchive/archive_ppmd7.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_ppmd7.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_ppmd7.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_ppmd7.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_ppmd7.c' object='libarchive/libarchive_test-archive_ppmd7.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_ppmd7.obj: libarchive/archive_ppmd7.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_ppmd7.obj -MD -MP -MF libarchive/$(DEPDIR)/test-archive_ppmd7.Tpo -c -o libarchive/test-archive_ppmd7.obj `if test -f 'libarchive/archive_ppmd7.c'; then $(CYGPATH_W) 'libarchive/archive_ppmd7.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_ppmd7.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_ppmd7.Tpo libarchive/$(DEPDIR)/test-archive_ppmd7.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_ppmd7.c' object='libarchive/test-archive_ppmd7.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_ppmd7.obj `if test -f 'libarchive/archive_ppmd7.c'; then $(CYGPATH_W) 'libarchive/archive_ppmd7.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_ppmd7.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_ppmd7.obj `if test -f 'libarchive/archive_ppmd7.c'; then $(CYGPATH_W) 'libarchive/archive_ppmd7.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_ppmd7.c'; fi` -libarchive/libarchive_test-archive_ppmd8.o: libarchive/archive_ppmd8.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_ppmd8.o -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_ppmd8.Tpo -c -o libarchive/libarchive_test-archive_ppmd8.o `test -f 'libarchive/archive_ppmd8.c' || echo '$(srcdir)/'`libarchive/archive_ppmd8.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_ppmd8.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_ppmd8.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_ppmd8.c' object='libarchive/libarchive_test-archive_ppmd8.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_ppmd8.o: libarchive/archive_ppmd8.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_ppmd8.o -MD -MP -MF libarchive/$(DEPDIR)/test-archive_ppmd8.Tpo -c -o libarchive/test-archive_ppmd8.o `test -f 'libarchive/archive_ppmd8.c' || echo '$(srcdir)/'`libarchive/archive_ppmd8.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_ppmd8.Tpo libarchive/$(DEPDIR)/test-archive_ppmd8.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_ppmd8.c' object='libarchive/test-archive_ppmd8.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_ppmd8.o `test -f 'libarchive/archive_ppmd8.c' || echo '$(srcdir)/'`libarchive/archive_ppmd8.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_ppmd8.o `test -f 'libarchive/archive_ppmd8.c' || echo '$(srcdir)/'`libarchive/archive_ppmd8.c -libarchive/libarchive_test-archive_ppmd8.obj: libarchive/archive_ppmd8.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_ppmd8.obj -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_ppmd8.Tpo -c -o libarchive/libarchive_test-archive_ppmd8.obj `if test -f 'libarchive/archive_ppmd8.c'; then $(CYGPATH_W) 'libarchive/archive_ppmd8.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_ppmd8.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_ppmd8.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_ppmd8.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_ppmd8.c' object='libarchive/libarchive_test-archive_ppmd8.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_ppmd8.obj: libarchive/archive_ppmd8.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_ppmd8.obj -MD -MP -MF libarchive/$(DEPDIR)/test-archive_ppmd8.Tpo -c -o libarchive/test-archive_ppmd8.obj `if test -f 'libarchive/archive_ppmd8.c'; then $(CYGPATH_W) 'libarchive/archive_ppmd8.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_ppmd8.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_ppmd8.Tpo libarchive/$(DEPDIR)/test-archive_ppmd8.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_ppmd8.c' object='libarchive/test-archive_ppmd8.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_ppmd8.obj `if test -f 'libarchive/archive_ppmd8.c'; then $(CYGPATH_W) 'libarchive/archive_ppmd8.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_ppmd8.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_ppmd8.obj `if test -f 'libarchive/archive_ppmd8.c'; then $(CYGPATH_W) 'libarchive/archive_ppmd8.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_ppmd8.c'; fi` -libarchive/libarchive_test-archive_random.o: libarchive/archive_random.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_random.o -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_random.Tpo -c -o libarchive/libarchive_test-archive_random.o `test -f 'libarchive/archive_random.c' || echo '$(srcdir)/'`libarchive/archive_random.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_random.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_random.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_random.c' object='libarchive/libarchive_test-archive_random.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_random.o: libarchive/archive_random.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_random.o -MD -MP -MF libarchive/$(DEPDIR)/test-archive_random.Tpo -c -o libarchive/test-archive_random.o `test -f 'libarchive/archive_random.c' || echo '$(srcdir)/'`libarchive/archive_random.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_random.Tpo libarchive/$(DEPDIR)/test-archive_random.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_random.c' object='libarchive/test-archive_random.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_random.o `test -f 'libarchive/archive_random.c' || echo '$(srcdir)/'`libarchive/archive_random.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_random.o `test -f 'libarchive/archive_random.c' || echo '$(srcdir)/'`libarchive/archive_random.c -libarchive/libarchive_test-archive_random.obj: libarchive/archive_random.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_random.obj -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_random.Tpo -c -o libarchive/libarchive_test-archive_random.obj `if test -f 'libarchive/archive_random.c'; then $(CYGPATH_W) 'libarchive/archive_random.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_random.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_random.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_random.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_random.c' object='libarchive/libarchive_test-archive_random.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_random.obj: libarchive/archive_random.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_random.obj -MD -MP -MF libarchive/$(DEPDIR)/test-archive_random.Tpo -c -o libarchive/test-archive_random.obj `if test -f 'libarchive/archive_random.c'; then $(CYGPATH_W) 'libarchive/archive_random.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_random.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_random.Tpo libarchive/$(DEPDIR)/test-archive_random.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_random.c' object='libarchive/test-archive_random.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_random.obj `if test -f 'libarchive/archive_random.c'; then $(CYGPATH_W) 'libarchive/archive_random.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_random.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_random.obj `if test -f 'libarchive/archive_random.c'; then $(CYGPATH_W) 'libarchive/archive_random.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_random.c'; fi` -libarchive/libarchive_test-archive_rb.o: libarchive/archive_rb.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_rb.o -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_rb.Tpo -c -o libarchive/libarchive_test-archive_rb.o `test -f 'libarchive/archive_rb.c' || echo '$(srcdir)/'`libarchive/archive_rb.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_rb.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_rb.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_rb.c' object='libarchive/libarchive_test-archive_rb.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_rb.o: libarchive/archive_rb.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_rb.o -MD -MP -MF libarchive/$(DEPDIR)/test-archive_rb.Tpo -c -o libarchive/test-archive_rb.o `test -f 'libarchive/archive_rb.c' || echo '$(srcdir)/'`libarchive/archive_rb.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_rb.Tpo libarchive/$(DEPDIR)/test-archive_rb.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_rb.c' object='libarchive/test-archive_rb.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_rb.o `test -f 'libarchive/archive_rb.c' || echo '$(srcdir)/'`libarchive/archive_rb.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_rb.o `test -f 'libarchive/archive_rb.c' || echo '$(srcdir)/'`libarchive/archive_rb.c -libarchive/libarchive_test-archive_rb.obj: libarchive/archive_rb.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_rb.obj -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_rb.Tpo -c -o libarchive/libarchive_test-archive_rb.obj `if test -f 'libarchive/archive_rb.c'; then $(CYGPATH_W) 'libarchive/archive_rb.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_rb.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_rb.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_rb.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_rb.c' object='libarchive/libarchive_test-archive_rb.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_rb.obj: libarchive/archive_rb.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_rb.obj -MD -MP -MF libarchive/$(DEPDIR)/test-archive_rb.Tpo -c -o libarchive/test-archive_rb.obj `if test -f 'libarchive/archive_rb.c'; then $(CYGPATH_W) 'libarchive/archive_rb.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_rb.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_rb.Tpo libarchive/$(DEPDIR)/test-archive_rb.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_rb.c' object='libarchive/test-archive_rb.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_rb.obj `if test -f 'libarchive/archive_rb.c'; then $(CYGPATH_W) 'libarchive/archive_rb.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_rb.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_rb.obj `if test -f 'libarchive/archive_rb.c'; then $(CYGPATH_W) 'libarchive/archive_rb.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_rb.c'; fi` -libarchive/libarchive_test-archive_read.o: libarchive/archive_read.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_read.o -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_read.Tpo -c -o libarchive/libarchive_test-archive_read.o `test -f 'libarchive/archive_read.c' || echo '$(srcdir)/'`libarchive/archive_read.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_read.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_read.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read.c' object='libarchive/libarchive_test-archive_read.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_read.o: libarchive/archive_read.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_read.o -MD -MP -MF libarchive/$(DEPDIR)/test-archive_read.Tpo -c -o libarchive/test-archive_read.o `test -f 'libarchive/archive_read.c' || echo '$(srcdir)/'`libarchive/archive_read.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_read.Tpo libarchive/$(DEPDIR)/test-archive_read.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read.c' object='libarchive/test-archive_read.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_read.o `test -f 'libarchive/archive_read.c' || echo '$(srcdir)/'`libarchive/archive_read.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_read.o `test -f 'libarchive/archive_read.c' || echo '$(srcdir)/'`libarchive/archive_read.c -libarchive/libarchive_test-archive_read.obj: libarchive/archive_read.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_read.obj -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_read.Tpo -c -o libarchive/libarchive_test-archive_read.obj `if test -f 'libarchive/archive_read.c'; then $(CYGPATH_W) 'libarchive/archive_read.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_read.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_read.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read.c' object='libarchive/libarchive_test-archive_read.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_read.obj: libarchive/archive_read.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_read.obj -MD -MP -MF libarchive/$(DEPDIR)/test-archive_read.Tpo -c -o libarchive/test-archive_read.obj `if test -f 'libarchive/archive_read.c'; then $(CYGPATH_W) 'libarchive/archive_read.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_read.Tpo libarchive/$(DEPDIR)/test-archive_read.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read.c' object='libarchive/test-archive_read.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_read.obj `if test -f 'libarchive/archive_read.c'; then $(CYGPATH_W) 'libarchive/archive_read.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_read.obj `if test -f 'libarchive/archive_read.c'; then $(CYGPATH_W) 'libarchive/archive_read.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read.c'; fi` -libarchive/libarchive_test-archive_read_add_passphrase.o: libarchive/archive_read_add_passphrase.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_read_add_passphrase.o -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_read_add_passphrase.Tpo -c -o libarchive/libarchive_test-archive_read_add_passphrase.o `test -f 'libarchive/archive_read_add_passphrase.c' || echo '$(srcdir)/'`libarchive/archive_read_add_passphrase.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_read_add_passphrase.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_read_add_passphrase.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_add_passphrase.c' object='libarchive/libarchive_test-archive_read_add_passphrase.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_read_add_passphrase.o: libarchive/archive_read_add_passphrase.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_read_add_passphrase.o -MD -MP -MF libarchive/$(DEPDIR)/test-archive_read_add_passphrase.Tpo -c -o libarchive/test-archive_read_add_passphrase.o `test -f 'libarchive/archive_read_add_passphrase.c' || echo '$(srcdir)/'`libarchive/archive_read_add_passphrase.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_read_add_passphrase.Tpo libarchive/$(DEPDIR)/test-archive_read_add_passphrase.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_add_passphrase.c' object='libarchive/test-archive_read_add_passphrase.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_read_add_passphrase.o `test -f 'libarchive/archive_read_add_passphrase.c' || echo '$(srcdir)/'`libarchive/archive_read_add_passphrase.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_read_add_passphrase.o `test -f 'libarchive/archive_read_add_passphrase.c' || echo '$(srcdir)/'`libarchive/archive_read_add_passphrase.c -libarchive/libarchive_test-archive_read_add_passphrase.obj: libarchive/archive_read_add_passphrase.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_read_add_passphrase.obj -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_read_add_passphrase.Tpo -c -o libarchive/libarchive_test-archive_read_add_passphrase.obj `if test -f 'libarchive/archive_read_add_passphrase.c'; then $(CYGPATH_W) 'libarchive/archive_read_add_passphrase.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_add_passphrase.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_read_add_passphrase.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_read_add_passphrase.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_add_passphrase.c' object='libarchive/libarchive_test-archive_read_add_passphrase.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_read_add_passphrase.obj: libarchive/archive_read_add_passphrase.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_read_add_passphrase.obj -MD -MP -MF libarchive/$(DEPDIR)/test-archive_read_add_passphrase.Tpo -c -o libarchive/test-archive_read_add_passphrase.obj `if test -f 'libarchive/archive_read_add_passphrase.c'; then $(CYGPATH_W) 'libarchive/archive_read_add_passphrase.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_add_passphrase.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_read_add_passphrase.Tpo libarchive/$(DEPDIR)/test-archive_read_add_passphrase.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_add_passphrase.c' object='libarchive/test-archive_read_add_passphrase.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_read_add_passphrase.obj `if test -f 'libarchive/archive_read_add_passphrase.c'; then $(CYGPATH_W) 'libarchive/archive_read_add_passphrase.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_add_passphrase.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_read_add_passphrase.obj `if test -f 'libarchive/archive_read_add_passphrase.c'; then $(CYGPATH_W) 'libarchive/archive_read_add_passphrase.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_add_passphrase.c'; fi` -libarchive/libarchive_test-archive_read_append_filter.o: libarchive/archive_read_append_filter.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_read_append_filter.o -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_read_append_filter.Tpo -c -o libarchive/libarchive_test-archive_read_append_filter.o `test -f 'libarchive/archive_read_append_filter.c' || echo '$(srcdir)/'`libarchive/archive_read_append_filter.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_read_append_filter.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_read_append_filter.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_append_filter.c' object='libarchive/libarchive_test-archive_read_append_filter.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_read_append_filter.o: libarchive/archive_read_append_filter.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_read_append_filter.o -MD -MP -MF libarchive/$(DEPDIR)/test-archive_read_append_filter.Tpo -c -o libarchive/test-archive_read_append_filter.o `test -f 'libarchive/archive_read_append_filter.c' || echo '$(srcdir)/'`libarchive/archive_read_append_filter.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_read_append_filter.Tpo libarchive/$(DEPDIR)/test-archive_read_append_filter.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_append_filter.c' object='libarchive/test-archive_read_append_filter.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_read_append_filter.o `test -f 'libarchive/archive_read_append_filter.c' || echo '$(srcdir)/'`libarchive/archive_read_append_filter.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_read_append_filter.o `test -f 'libarchive/archive_read_append_filter.c' || echo '$(srcdir)/'`libarchive/archive_read_append_filter.c -libarchive/libarchive_test-archive_read_append_filter.obj: libarchive/archive_read_append_filter.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_read_append_filter.obj -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_read_append_filter.Tpo -c -o libarchive/libarchive_test-archive_read_append_filter.obj `if test -f 'libarchive/archive_read_append_filter.c'; then $(CYGPATH_W) 'libarchive/archive_read_append_filter.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_append_filter.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_read_append_filter.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_read_append_filter.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_append_filter.c' object='libarchive/libarchive_test-archive_read_append_filter.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_read_append_filter.obj: libarchive/archive_read_append_filter.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_read_append_filter.obj -MD -MP -MF libarchive/$(DEPDIR)/test-archive_read_append_filter.Tpo -c -o libarchive/test-archive_read_append_filter.obj `if test -f 'libarchive/archive_read_append_filter.c'; then $(CYGPATH_W) 'libarchive/archive_read_append_filter.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_append_filter.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_read_append_filter.Tpo libarchive/$(DEPDIR)/test-archive_read_append_filter.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_append_filter.c' object='libarchive/test-archive_read_append_filter.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_read_append_filter.obj `if test -f 'libarchive/archive_read_append_filter.c'; then $(CYGPATH_W) 'libarchive/archive_read_append_filter.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_append_filter.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_read_append_filter.obj `if test -f 'libarchive/archive_read_append_filter.c'; then $(CYGPATH_W) 'libarchive/archive_read_append_filter.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_append_filter.c'; fi` -libarchive/libarchive_test-archive_read_data_into_fd.o: libarchive/archive_read_data_into_fd.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_read_data_into_fd.o -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_read_data_into_fd.Tpo -c -o libarchive/libarchive_test-archive_read_data_into_fd.o `test -f 'libarchive/archive_read_data_into_fd.c' || echo '$(srcdir)/'`libarchive/archive_read_data_into_fd.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_read_data_into_fd.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_read_data_into_fd.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_data_into_fd.c' object='libarchive/libarchive_test-archive_read_data_into_fd.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_read_data_into_fd.o: libarchive/archive_read_data_into_fd.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_read_data_into_fd.o -MD -MP -MF libarchive/$(DEPDIR)/test-archive_read_data_into_fd.Tpo -c -o libarchive/test-archive_read_data_into_fd.o `test -f 'libarchive/archive_read_data_into_fd.c' || echo '$(srcdir)/'`libarchive/archive_read_data_into_fd.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_read_data_into_fd.Tpo libarchive/$(DEPDIR)/test-archive_read_data_into_fd.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_data_into_fd.c' object='libarchive/test-archive_read_data_into_fd.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_read_data_into_fd.o `test -f 'libarchive/archive_read_data_into_fd.c' || echo '$(srcdir)/'`libarchive/archive_read_data_into_fd.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_read_data_into_fd.o `test -f 'libarchive/archive_read_data_into_fd.c' || echo '$(srcdir)/'`libarchive/archive_read_data_into_fd.c -libarchive/libarchive_test-archive_read_data_into_fd.obj: libarchive/archive_read_data_into_fd.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_read_data_into_fd.obj -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_read_data_into_fd.Tpo -c -o libarchive/libarchive_test-archive_read_data_into_fd.obj `if test -f 'libarchive/archive_read_data_into_fd.c'; then $(CYGPATH_W) 'libarchive/archive_read_data_into_fd.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_data_into_fd.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_read_data_into_fd.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_read_data_into_fd.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_data_into_fd.c' object='libarchive/libarchive_test-archive_read_data_into_fd.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_read_data_into_fd.obj: libarchive/archive_read_data_into_fd.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_read_data_into_fd.obj -MD -MP -MF libarchive/$(DEPDIR)/test-archive_read_data_into_fd.Tpo -c -o libarchive/test-archive_read_data_into_fd.obj `if test -f 'libarchive/archive_read_data_into_fd.c'; then $(CYGPATH_W) 'libarchive/archive_read_data_into_fd.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_data_into_fd.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_read_data_into_fd.Tpo libarchive/$(DEPDIR)/test-archive_read_data_into_fd.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_data_into_fd.c' object='libarchive/test-archive_read_data_into_fd.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_read_data_into_fd.obj `if test -f 'libarchive/archive_read_data_into_fd.c'; then $(CYGPATH_W) 'libarchive/archive_read_data_into_fd.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_data_into_fd.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_read_data_into_fd.obj `if test -f 'libarchive/archive_read_data_into_fd.c'; then $(CYGPATH_W) 'libarchive/archive_read_data_into_fd.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_data_into_fd.c'; fi` -libarchive/libarchive_test-archive_read_disk_entry_from_file.o: libarchive/archive_read_disk_entry_from_file.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_read_disk_entry_from_file.o -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_read_disk_entry_from_file.Tpo -c -o libarchive/libarchive_test-archive_read_disk_entry_from_file.o `test -f 'libarchive/archive_read_disk_entry_from_file.c' || echo '$(srcdir)/'`libarchive/archive_read_disk_entry_from_file.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_read_disk_entry_from_file.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_read_disk_entry_from_file.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_disk_entry_from_file.c' object='libarchive/libarchive_test-archive_read_disk_entry_from_file.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_read_disk_entry_from_file.o: libarchive/archive_read_disk_entry_from_file.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_read_disk_entry_from_file.o -MD -MP -MF libarchive/$(DEPDIR)/test-archive_read_disk_entry_from_file.Tpo -c -o libarchive/test-archive_read_disk_entry_from_file.o `test -f 'libarchive/archive_read_disk_entry_from_file.c' || echo '$(srcdir)/'`libarchive/archive_read_disk_entry_from_file.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_read_disk_entry_from_file.Tpo libarchive/$(DEPDIR)/test-archive_read_disk_entry_from_file.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_disk_entry_from_file.c' object='libarchive/test-archive_read_disk_entry_from_file.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_read_disk_entry_from_file.o `test -f 'libarchive/archive_read_disk_entry_from_file.c' || echo '$(srcdir)/'`libarchive/archive_read_disk_entry_from_file.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_read_disk_entry_from_file.o `test -f 'libarchive/archive_read_disk_entry_from_file.c' || echo '$(srcdir)/'`libarchive/archive_read_disk_entry_from_file.c -libarchive/libarchive_test-archive_read_disk_entry_from_file.obj: libarchive/archive_read_disk_entry_from_file.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_read_disk_entry_from_file.obj -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_read_disk_entry_from_file.Tpo -c -o libarchive/libarchive_test-archive_read_disk_entry_from_file.obj `if test -f 'libarchive/archive_read_disk_entry_from_file.c'; then $(CYGPATH_W) 'libarchive/archive_read_disk_entry_from_file.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_disk_entry_from_file.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_read_disk_entry_from_file.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_read_disk_entry_from_file.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_disk_entry_from_file.c' object='libarchive/libarchive_test-archive_read_disk_entry_from_file.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_read_disk_entry_from_file.obj: libarchive/archive_read_disk_entry_from_file.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_read_disk_entry_from_file.obj -MD -MP -MF libarchive/$(DEPDIR)/test-archive_read_disk_entry_from_file.Tpo -c -o libarchive/test-archive_read_disk_entry_from_file.obj `if test -f 'libarchive/archive_read_disk_entry_from_file.c'; then $(CYGPATH_W) 'libarchive/archive_read_disk_entry_from_file.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_disk_entry_from_file.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_read_disk_entry_from_file.Tpo libarchive/$(DEPDIR)/test-archive_read_disk_entry_from_file.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_disk_entry_from_file.c' object='libarchive/test-archive_read_disk_entry_from_file.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_read_disk_entry_from_file.obj `if test -f 'libarchive/archive_read_disk_entry_from_file.c'; then $(CYGPATH_W) 'libarchive/archive_read_disk_entry_from_file.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_disk_entry_from_file.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_read_disk_entry_from_file.obj `if test -f 'libarchive/archive_read_disk_entry_from_file.c'; then $(CYGPATH_W) 'libarchive/archive_read_disk_entry_from_file.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_disk_entry_from_file.c'; fi` -libarchive/libarchive_test-archive_read_disk_posix.o: libarchive/archive_read_disk_posix.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_read_disk_posix.o -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_read_disk_posix.Tpo -c -o libarchive/libarchive_test-archive_read_disk_posix.o `test -f 'libarchive/archive_read_disk_posix.c' || echo '$(srcdir)/'`libarchive/archive_read_disk_posix.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_read_disk_posix.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_read_disk_posix.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_disk_posix.c' object='libarchive/libarchive_test-archive_read_disk_posix.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_read_disk_posix.o: libarchive/archive_read_disk_posix.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_read_disk_posix.o -MD -MP -MF libarchive/$(DEPDIR)/test-archive_read_disk_posix.Tpo -c -o libarchive/test-archive_read_disk_posix.o `test -f 'libarchive/archive_read_disk_posix.c' || echo '$(srcdir)/'`libarchive/archive_read_disk_posix.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_read_disk_posix.Tpo libarchive/$(DEPDIR)/test-archive_read_disk_posix.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_disk_posix.c' object='libarchive/test-archive_read_disk_posix.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_read_disk_posix.o `test -f 'libarchive/archive_read_disk_posix.c' || echo '$(srcdir)/'`libarchive/archive_read_disk_posix.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_read_disk_posix.o `test -f 'libarchive/archive_read_disk_posix.c' || echo '$(srcdir)/'`libarchive/archive_read_disk_posix.c -libarchive/libarchive_test-archive_read_disk_posix.obj: libarchive/archive_read_disk_posix.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_read_disk_posix.obj -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_read_disk_posix.Tpo -c -o libarchive/libarchive_test-archive_read_disk_posix.obj `if test -f 'libarchive/archive_read_disk_posix.c'; then $(CYGPATH_W) 'libarchive/archive_read_disk_posix.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_disk_posix.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_read_disk_posix.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_read_disk_posix.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_disk_posix.c' object='libarchive/libarchive_test-archive_read_disk_posix.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_read_disk_posix.obj: libarchive/archive_read_disk_posix.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_read_disk_posix.obj -MD -MP -MF libarchive/$(DEPDIR)/test-archive_read_disk_posix.Tpo -c -o libarchive/test-archive_read_disk_posix.obj `if test -f 'libarchive/archive_read_disk_posix.c'; then $(CYGPATH_W) 'libarchive/archive_read_disk_posix.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_disk_posix.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_read_disk_posix.Tpo libarchive/$(DEPDIR)/test-archive_read_disk_posix.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_disk_posix.c' object='libarchive/test-archive_read_disk_posix.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_read_disk_posix.obj `if test -f 'libarchive/archive_read_disk_posix.c'; then $(CYGPATH_W) 'libarchive/archive_read_disk_posix.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_disk_posix.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_read_disk_posix.obj `if test -f 'libarchive/archive_read_disk_posix.c'; then $(CYGPATH_W) 'libarchive/archive_read_disk_posix.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_disk_posix.c'; fi` -libarchive/libarchive_test-archive_read_disk_set_standard_lookup.o: libarchive/archive_read_disk_set_standard_lookup.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_read_disk_set_standard_lookup.o -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_read_disk_set_standard_lookup.Tpo -c -o libarchive/libarchive_test-archive_read_disk_set_standard_lookup.o `test -f 'libarchive/archive_read_disk_set_standard_lookup.c' || echo '$(srcdir)/'`libarchive/archive_read_disk_set_standard_lookup.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_read_disk_set_standard_lookup.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_read_disk_set_standard_lookup.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_disk_set_standard_lookup.c' object='libarchive/libarchive_test-archive_read_disk_set_standard_lookup.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_read_disk_set_standard_lookup.o: libarchive/archive_read_disk_set_standard_lookup.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_read_disk_set_standard_lookup.o -MD -MP -MF libarchive/$(DEPDIR)/test-archive_read_disk_set_standard_lookup.Tpo -c -o libarchive/test-archive_read_disk_set_standard_lookup.o `test -f 'libarchive/archive_read_disk_set_standard_lookup.c' || echo '$(srcdir)/'`libarchive/archive_read_disk_set_standard_lookup.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_read_disk_set_standard_lookup.Tpo libarchive/$(DEPDIR)/test-archive_read_disk_set_standard_lookup.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_disk_set_standard_lookup.c' object='libarchive/test-archive_read_disk_set_standard_lookup.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_read_disk_set_standard_lookup.o `test -f 'libarchive/archive_read_disk_set_standard_lookup.c' || echo '$(srcdir)/'`libarchive/archive_read_disk_set_standard_lookup.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_read_disk_set_standard_lookup.o `test -f 'libarchive/archive_read_disk_set_standard_lookup.c' || echo '$(srcdir)/'`libarchive/archive_read_disk_set_standard_lookup.c -libarchive/libarchive_test-archive_read_disk_set_standard_lookup.obj: libarchive/archive_read_disk_set_standard_lookup.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_read_disk_set_standard_lookup.obj -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_read_disk_set_standard_lookup.Tpo -c -o libarchive/libarchive_test-archive_read_disk_set_standard_lookup.obj `if test -f 'libarchive/archive_read_disk_set_standard_lookup.c'; then $(CYGPATH_W) 'libarchive/archive_read_disk_set_standard_lookup.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_disk_set_standard_lookup.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_read_disk_set_standard_lookup.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_read_disk_set_standard_lookup.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_disk_set_standard_lookup.c' object='libarchive/libarchive_test-archive_read_disk_set_standard_lookup.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_read_disk_set_standard_lookup.obj: libarchive/archive_read_disk_set_standard_lookup.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_read_disk_set_standard_lookup.obj -MD -MP -MF libarchive/$(DEPDIR)/test-archive_read_disk_set_standard_lookup.Tpo -c -o libarchive/test-archive_read_disk_set_standard_lookup.obj `if test -f 'libarchive/archive_read_disk_set_standard_lookup.c'; then $(CYGPATH_W) 'libarchive/archive_read_disk_set_standard_lookup.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_disk_set_standard_lookup.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_read_disk_set_standard_lookup.Tpo libarchive/$(DEPDIR)/test-archive_read_disk_set_standard_lookup.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_disk_set_standard_lookup.c' object='libarchive/test-archive_read_disk_set_standard_lookup.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_read_disk_set_standard_lookup.obj `if test -f 'libarchive/archive_read_disk_set_standard_lookup.c'; then $(CYGPATH_W) 'libarchive/archive_read_disk_set_standard_lookup.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_disk_set_standard_lookup.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_read_disk_set_standard_lookup.obj `if test -f 'libarchive/archive_read_disk_set_standard_lookup.c'; then $(CYGPATH_W) 'libarchive/archive_read_disk_set_standard_lookup.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_disk_set_standard_lookup.c'; fi` -libarchive/libarchive_test-archive_read_extract.o: libarchive/archive_read_extract.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_read_extract.o -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_read_extract.Tpo -c -o libarchive/libarchive_test-archive_read_extract.o `test -f 'libarchive/archive_read_extract.c' || echo '$(srcdir)/'`libarchive/archive_read_extract.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_read_extract.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_read_extract.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_extract.c' object='libarchive/libarchive_test-archive_read_extract.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_read_extract.o: libarchive/archive_read_extract.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_read_extract.o -MD -MP -MF libarchive/$(DEPDIR)/test-archive_read_extract.Tpo -c -o libarchive/test-archive_read_extract.o `test -f 'libarchive/archive_read_extract.c' || echo '$(srcdir)/'`libarchive/archive_read_extract.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_read_extract.Tpo libarchive/$(DEPDIR)/test-archive_read_extract.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_extract.c' object='libarchive/test-archive_read_extract.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_read_extract.o `test -f 'libarchive/archive_read_extract.c' || echo '$(srcdir)/'`libarchive/archive_read_extract.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_read_extract.o `test -f 'libarchive/archive_read_extract.c' || echo '$(srcdir)/'`libarchive/archive_read_extract.c -libarchive/libarchive_test-archive_read_extract.obj: libarchive/archive_read_extract.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_read_extract.obj -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_read_extract.Tpo -c -o libarchive/libarchive_test-archive_read_extract.obj `if test -f 'libarchive/archive_read_extract.c'; then $(CYGPATH_W) 'libarchive/archive_read_extract.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_extract.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_read_extract.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_read_extract.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_extract.c' object='libarchive/libarchive_test-archive_read_extract.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_read_extract.obj: libarchive/archive_read_extract.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_read_extract.obj -MD -MP -MF libarchive/$(DEPDIR)/test-archive_read_extract.Tpo -c -o libarchive/test-archive_read_extract.obj `if test -f 'libarchive/archive_read_extract.c'; then $(CYGPATH_W) 'libarchive/archive_read_extract.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_extract.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_read_extract.Tpo libarchive/$(DEPDIR)/test-archive_read_extract.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_extract.c' object='libarchive/test-archive_read_extract.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_read_extract.obj `if test -f 'libarchive/archive_read_extract.c'; then $(CYGPATH_W) 'libarchive/archive_read_extract.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_extract.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_read_extract.obj `if test -f 'libarchive/archive_read_extract.c'; then $(CYGPATH_W) 'libarchive/archive_read_extract.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_extract.c'; fi` -libarchive/libarchive_test-archive_read_extract2.o: libarchive/archive_read_extract2.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_read_extract2.o -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_read_extract2.Tpo -c -o libarchive/libarchive_test-archive_read_extract2.o `test -f 'libarchive/archive_read_extract2.c' || echo '$(srcdir)/'`libarchive/archive_read_extract2.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_read_extract2.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_read_extract2.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_extract2.c' object='libarchive/libarchive_test-archive_read_extract2.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_read_extract2.o: libarchive/archive_read_extract2.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_read_extract2.o -MD -MP -MF libarchive/$(DEPDIR)/test-archive_read_extract2.Tpo -c -o libarchive/test-archive_read_extract2.o `test -f 'libarchive/archive_read_extract2.c' || echo '$(srcdir)/'`libarchive/archive_read_extract2.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_read_extract2.Tpo libarchive/$(DEPDIR)/test-archive_read_extract2.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_extract2.c' object='libarchive/test-archive_read_extract2.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_read_extract2.o `test -f 'libarchive/archive_read_extract2.c' || echo '$(srcdir)/'`libarchive/archive_read_extract2.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_read_extract2.o `test -f 'libarchive/archive_read_extract2.c' || echo '$(srcdir)/'`libarchive/archive_read_extract2.c -libarchive/libarchive_test-archive_read_extract2.obj: libarchive/archive_read_extract2.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_read_extract2.obj -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_read_extract2.Tpo -c -o libarchive/libarchive_test-archive_read_extract2.obj `if test -f 'libarchive/archive_read_extract2.c'; then $(CYGPATH_W) 'libarchive/archive_read_extract2.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_extract2.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_read_extract2.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_read_extract2.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_extract2.c' object='libarchive/libarchive_test-archive_read_extract2.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_read_extract2.obj: libarchive/archive_read_extract2.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_read_extract2.obj -MD -MP -MF libarchive/$(DEPDIR)/test-archive_read_extract2.Tpo -c -o libarchive/test-archive_read_extract2.obj `if test -f 'libarchive/archive_read_extract2.c'; then $(CYGPATH_W) 'libarchive/archive_read_extract2.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_extract2.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_read_extract2.Tpo libarchive/$(DEPDIR)/test-archive_read_extract2.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_extract2.c' object='libarchive/test-archive_read_extract2.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_read_extract2.obj `if test -f 'libarchive/archive_read_extract2.c'; then $(CYGPATH_W) 'libarchive/archive_read_extract2.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_extract2.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_read_extract2.obj `if test -f 'libarchive/archive_read_extract2.c'; then $(CYGPATH_W) 'libarchive/archive_read_extract2.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_extract2.c'; fi` -libarchive/libarchive_test-archive_read_open_fd.o: libarchive/archive_read_open_fd.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_read_open_fd.o -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_read_open_fd.Tpo -c -o libarchive/libarchive_test-archive_read_open_fd.o `test -f 'libarchive/archive_read_open_fd.c' || echo '$(srcdir)/'`libarchive/archive_read_open_fd.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_read_open_fd.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_read_open_fd.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_open_fd.c' object='libarchive/libarchive_test-archive_read_open_fd.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_read_open_fd.o: libarchive/archive_read_open_fd.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_read_open_fd.o -MD -MP -MF libarchive/$(DEPDIR)/test-archive_read_open_fd.Tpo -c -o libarchive/test-archive_read_open_fd.o `test -f 'libarchive/archive_read_open_fd.c' || echo '$(srcdir)/'`libarchive/archive_read_open_fd.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_read_open_fd.Tpo libarchive/$(DEPDIR)/test-archive_read_open_fd.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_open_fd.c' object='libarchive/test-archive_read_open_fd.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_read_open_fd.o `test -f 'libarchive/archive_read_open_fd.c' || echo '$(srcdir)/'`libarchive/archive_read_open_fd.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_read_open_fd.o `test -f 'libarchive/archive_read_open_fd.c' || echo '$(srcdir)/'`libarchive/archive_read_open_fd.c -libarchive/libarchive_test-archive_read_open_fd.obj: libarchive/archive_read_open_fd.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_read_open_fd.obj -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_read_open_fd.Tpo -c -o libarchive/libarchive_test-archive_read_open_fd.obj `if test -f 'libarchive/archive_read_open_fd.c'; then $(CYGPATH_W) 'libarchive/archive_read_open_fd.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_open_fd.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_read_open_fd.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_read_open_fd.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_open_fd.c' object='libarchive/libarchive_test-archive_read_open_fd.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_read_open_fd.obj: libarchive/archive_read_open_fd.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_read_open_fd.obj -MD -MP -MF libarchive/$(DEPDIR)/test-archive_read_open_fd.Tpo -c -o libarchive/test-archive_read_open_fd.obj `if test -f 'libarchive/archive_read_open_fd.c'; then $(CYGPATH_W) 'libarchive/archive_read_open_fd.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_open_fd.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_read_open_fd.Tpo libarchive/$(DEPDIR)/test-archive_read_open_fd.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_open_fd.c' object='libarchive/test-archive_read_open_fd.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_read_open_fd.obj `if test -f 'libarchive/archive_read_open_fd.c'; then $(CYGPATH_W) 'libarchive/archive_read_open_fd.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_open_fd.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_read_open_fd.obj `if test -f 'libarchive/archive_read_open_fd.c'; then $(CYGPATH_W) 'libarchive/archive_read_open_fd.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_open_fd.c'; fi` -libarchive/libarchive_test-archive_read_open_file.o: libarchive/archive_read_open_file.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_read_open_file.o -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_read_open_file.Tpo -c -o libarchive/libarchive_test-archive_read_open_file.o `test -f 'libarchive/archive_read_open_file.c' || echo '$(srcdir)/'`libarchive/archive_read_open_file.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_read_open_file.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_read_open_file.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_open_file.c' object='libarchive/libarchive_test-archive_read_open_file.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_read_open_file.o: libarchive/archive_read_open_file.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_read_open_file.o -MD -MP -MF libarchive/$(DEPDIR)/test-archive_read_open_file.Tpo -c -o libarchive/test-archive_read_open_file.o `test -f 'libarchive/archive_read_open_file.c' || echo '$(srcdir)/'`libarchive/archive_read_open_file.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_read_open_file.Tpo libarchive/$(DEPDIR)/test-archive_read_open_file.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_open_file.c' object='libarchive/test-archive_read_open_file.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_read_open_file.o `test -f 'libarchive/archive_read_open_file.c' || echo '$(srcdir)/'`libarchive/archive_read_open_file.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_read_open_file.o `test -f 'libarchive/archive_read_open_file.c' || echo '$(srcdir)/'`libarchive/archive_read_open_file.c -libarchive/libarchive_test-archive_read_open_file.obj: libarchive/archive_read_open_file.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_read_open_file.obj -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_read_open_file.Tpo -c -o libarchive/libarchive_test-archive_read_open_file.obj `if test -f 'libarchive/archive_read_open_file.c'; then $(CYGPATH_W) 'libarchive/archive_read_open_file.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_open_file.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_read_open_file.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_read_open_file.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_open_file.c' object='libarchive/libarchive_test-archive_read_open_file.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_read_open_file.obj: libarchive/archive_read_open_file.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_read_open_file.obj -MD -MP -MF libarchive/$(DEPDIR)/test-archive_read_open_file.Tpo -c -o libarchive/test-archive_read_open_file.obj `if test -f 'libarchive/archive_read_open_file.c'; then $(CYGPATH_W) 'libarchive/archive_read_open_file.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_open_file.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_read_open_file.Tpo libarchive/$(DEPDIR)/test-archive_read_open_file.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_open_file.c' object='libarchive/test-archive_read_open_file.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_read_open_file.obj `if test -f 'libarchive/archive_read_open_file.c'; then $(CYGPATH_W) 'libarchive/archive_read_open_file.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_open_file.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_read_open_file.obj `if test -f 'libarchive/archive_read_open_file.c'; then $(CYGPATH_W) 'libarchive/archive_read_open_file.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_open_file.c'; fi` -libarchive/libarchive_test-archive_read_open_filename.o: libarchive/archive_read_open_filename.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_read_open_filename.o -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_read_open_filename.Tpo -c -o libarchive/libarchive_test-archive_read_open_filename.o `test -f 'libarchive/archive_read_open_filename.c' || echo '$(srcdir)/'`libarchive/archive_read_open_filename.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_read_open_filename.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_read_open_filename.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_open_filename.c' object='libarchive/libarchive_test-archive_read_open_filename.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_read_open_filename.o: libarchive/archive_read_open_filename.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_read_open_filename.o -MD -MP -MF libarchive/$(DEPDIR)/test-archive_read_open_filename.Tpo -c -o libarchive/test-archive_read_open_filename.o `test -f 'libarchive/archive_read_open_filename.c' || echo '$(srcdir)/'`libarchive/archive_read_open_filename.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_read_open_filename.Tpo libarchive/$(DEPDIR)/test-archive_read_open_filename.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_open_filename.c' object='libarchive/test-archive_read_open_filename.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_read_open_filename.o `test -f 'libarchive/archive_read_open_filename.c' || echo '$(srcdir)/'`libarchive/archive_read_open_filename.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_read_open_filename.o `test -f 'libarchive/archive_read_open_filename.c' || echo '$(srcdir)/'`libarchive/archive_read_open_filename.c -libarchive/libarchive_test-archive_read_open_filename.obj: libarchive/archive_read_open_filename.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_read_open_filename.obj -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_read_open_filename.Tpo -c -o libarchive/libarchive_test-archive_read_open_filename.obj `if test -f 'libarchive/archive_read_open_filename.c'; then $(CYGPATH_W) 'libarchive/archive_read_open_filename.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_open_filename.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_read_open_filename.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_read_open_filename.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_open_filename.c' object='libarchive/libarchive_test-archive_read_open_filename.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_read_open_filename.obj: libarchive/archive_read_open_filename.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_read_open_filename.obj -MD -MP -MF libarchive/$(DEPDIR)/test-archive_read_open_filename.Tpo -c -o libarchive/test-archive_read_open_filename.obj `if test -f 'libarchive/archive_read_open_filename.c'; then $(CYGPATH_W) 'libarchive/archive_read_open_filename.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_open_filename.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_read_open_filename.Tpo libarchive/$(DEPDIR)/test-archive_read_open_filename.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_open_filename.c' object='libarchive/test-archive_read_open_filename.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_read_open_filename.obj `if test -f 'libarchive/archive_read_open_filename.c'; then $(CYGPATH_W) 'libarchive/archive_read_open_filename.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_open_filename.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_read_open_filename.obj `if test -f 'libarchive/archive_read_open_filename.c'; then $(CYGPATH_W) 'libarchive/archive_read_open_filename.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_open_filename.c'; fi` -libarchive/libarchive_test-archive_read_open_memory.o: libarchive/archive_read_open_memory.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_read_open_memory.o -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_read_open_memory.Tpo -c -o libarchive/libarchive_test-archive_read_open_memory.o `test -f 'libarchive/archive_read_open_memory.c' || echo '$(srcdir)/'`libarchive/archive_read_open_memory.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_read_open_memory.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_read_open_memory.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_open_memory.c' object='libarchive/libarchive_test-archive_read_open_memory.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_read_open_memory.o: libarchive/archive_read_open_memory.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_read_open_memory.o -MD -MP -MF libarchive/$(DEPDIR)/test-archive_read_open_memory.Tpo -c -o libarchive/test-archive_read_open_memory.o `test -f 'libarchive/archive_read_open_memory.c' || echo '$(srcdir)/'`libarchive/archive_read_open_memory.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_read_open_memory.Tpo libarchive/$(DEPDIR)/test-archive_read_open_memory.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_open_memory.c' object='libarchive/test-archive_read_open_memory.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_read_open_memory.o `test -f 'libarchive/archive_read_open_memory.c' || echo '$(srcdir)/'`libarchive/archive_read_open_memory.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_read_open_memory.o `test -f 'libarchive/archive_read_open_memory.c' || echo '$(srcdir)/'`libarchive/archive_read_open_memory.c -libarchive/libarchive_test-archive_read_open_memory.obj: libarchive/archive_read_open_memory.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_read_open_memory.obj -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_read_open_memory.Tpo -c -o libarchive/libarchive_test-archive_read_open_memory.obj `if test -f 'libarchive/archive_read_open_memory.c'; then $(CYGPATH_W) 'libarchive/archive_read_open_memory.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_open_memory.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_read_open_memory.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_read_open_memory.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_open_memory.c' object='libarchive/libarchive_test-archive_read_open_memory.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_read_open_memory.obj: libarchive/archive_read_open_memory.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_read_open_memory.obj -MD -MP -MF libarchive/$(DEPDIR)/test-archive_read_open_memory.Tpo -c -o libarchive/test-archive_read_open_memory.obj `if test -f 'libarchive/archive_read_open_memory.c'; then $(CYGPATH_W) 'libarchive/archive_read_open_memory.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_open_memory.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_read_open_memory.Tpo libarchive/$(DEPDIR)/test-archive_read_open_memory.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_open_memory.c' object='libarchive/test-archive_read_open_memory.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_read_open_memory.obj `if test -f 'libarchive/archive_read_open_memory.c'; then $(CYGPATH_W) 'libarchive/archive_read_open_memory.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_open_memory.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_read_open_memory.obj `if test -f 'libarchive/archive_read_open_memory.c'; then $(CYGPATH_W) 'libarchive/archive_read_open_memory.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_open_memory.c'; fi` -libarchive/libarchive_test-archive_read_set_format.o: libarchive/archive_read_set_format.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_read_set_format.o -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_read_set_format.Tpo -c -o libarchive/libarchive_test-archive_read_set_format.o `test -f 'libarchive/archive_read_set_format.c' || echo '$(srcdir)/'`libarchive/archive_read_set_format.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_read_set_format.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_read_set_format.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_set_format.c' object='libarchive/libarchive_test-archive_read_set_format.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_read_set_format.o: libarchive/archive_read_set_format.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_read_set_format.o -MD -MP -MF libarchive/$(DEPDIR)/test-archive_read_set_format.Tpo -c -o libarchive/test-archive_read_set_format.o `test -f 'libarchive/archive_read_set_format.c' || echo '$(srcdir)/'`libarchive/archive_read_set_format.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_read_set_format.Tpo libarchive/$(DEPDIR)/test-archive_read_set_format.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_set_format.c' object='libarchive/test-archive_read_set_format.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_read_set_format.o `test -f 'libarchive/archive_read_set_format.c' || echo '$(srcdir)/'`libarchive/archive_read_set_format.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_read_set_format.o `test -f 'libarchive/archive_read_set_format.c' || echo '$(srcdir)/'`libarchive/archive_read_set_format.c -libarchive/libarchive_test-archive_read_set_format.obj: libarchive/archive_read_set_format.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_read_set_format.obj -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_read_set_format.Tpo -c -o libarchive/libarchive_test-archive_read_set_format.obj `if test -f 'libarchive/archive_read_set_format.c'; then $(CYGPATH_W) 'libarchive/archive_read_set_format.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_set_format.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_read_set_format.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_read_set_format.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_set_format.c' object='libarchive/libarchive_test-archive_read_set_format.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_read_set_format.obj: libarchive/archive_read_set_format.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_read_set_format.obj -MD -MP -MF libarchive/$(DEPDIR)/test-archive_read_set_format.Tpo -c -o libarchive/test-archive_read_set_format.obj `if test -f 'libarchive/archive_read_set_format.c'; then $(CYGPATH_W) 'libarchive/archive_read_set_format.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_set_format.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_read_set_format.Tpo libarchive/$(DEPDIR)/test-archive_read_set_format.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_set_format.c' object='libarchive/test-archive_read_set_format.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_read_set_format.obj `if test -f 'libarchive/archive_read_set_format.c'; then $(CYGPATH_W) 'libarchive/archive_read_set_format.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_set_format.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_read_set_format.obj `if test -f 'libarchive/archive_read_set_format.c'; then $(CYGPATH_W) 'libarchive/archive_read_set_format.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_set_format.c'; fi` -libarchive/libarchive_test-archive_read_set_options.o: libarchive/archive_read_set_options.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_read_set_options.o -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_read_set_options.Tpo -c -o libarchive/libarchive_test-archive_read_set_options.o `test -f 'libarchive/archive_read_set_options.c' || echo '$(srcdir)/'`libarchive/archive_read_set_options.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_read_set_options.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_read_set_options.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_set_options.c' object='libarchive/libarchive_test-archive_read_set_options.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_read_set_options.o: libarchive/archive_read_set_options.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_read_set_options.o -MD -MP -MF libarchive/$(DEPDIR)/test-archive_read_set_options.Tpo -c -o libarchive/test-archive_read_set_options.o `test -f 'libarchive/archive_read_set_options.c' || echo '$(srcdir)/'`libarchive/archive_read_set_options.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_read_set_options.Tpo libarchive/$(DEPDIR)/test-archive_read_set_options.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_set_options.c' object='libarchive/test-archive_read_set_options.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_read_set_options.o `test -f 'libarchive/archive_read_set_options.c' || echo '$(srcdir)/'`libarchive/archive_read_set_options.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_read_set_options.o `test -f 'libarchive/archive_read_set_options.c' || echo '$(srcdir)/'`libarchive/archive_read_set_options.c -libarchive/libarchive_test-archive_read_set_options.obj: libarchive/archive_read_set_options.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_read_set_options.obj -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_read_set_options.Tpo -c -o libarchive/libarchive_test-archive_read_set_options.obj `if test -f 'libarchive/archive_read_set_options.c'; then $(CYGPATH_W) 'libarchive/archive_read_set_options.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_set_options.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_read_set_options.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_read_set_options.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_set_options.c' object='libarchive/libarchive_test-archive_read_set_options.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_read_set_options.obj: libarchive/archive_read_set_options.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_read_set_options.obj -MD -MP -MF libarchive/$(DEPDIR)/test-archive_read_set_options.Tpo -c -o libarchive/test-archive_read_set_options.obj `if test -f 'libarchive/archive_read_set_options.c'; then $(CYGPATH_W) 'libarchive/archive_read_set_options.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_set_options.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_read_set_options.Tpo libarchive/$(DEPDIR)/test-archive_read_set_options.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_set_options.c' object='libarchive/test-archive_read_set_options.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_read_set_options.obj `if test -f 'libarchive/archive_read_set_options.c'; then $(CYGPATH_W) 'libarchive/archive_read_set_options.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_set_options.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_read_set_options.obj `if test -f 'libarchive/archive_read_set_options.c'; then $(CYGPATH_W) 'libarchive/archive_read_set_options.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_set_options.c'; fi` -libarchive/libarchive_test-archive_read_support_filter_all.o: libarchive/archive_read_support_filter_all.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_read_support_filter_all.o -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_read_support_filter_all.Tpo -c -o libarchive/libarchive_test-archive_read_support_filter_all.o `test -f 'libarchive/archive_read_support_filter_all.c' || echo '$(srcdir)/'`libarchive/archive_read_support_filter_all.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_read_support_filter_all.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_read_support_filter_all.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_support_filter_all.c' object='libarchive/libarchive_test-archive_read_support_filter_all.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_read_support_filter_all.o: libarchive/archive_read_support_filter_all.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_read_support_filter_all.o -MD -MP -MF libarchive/$(DEPDIR)/test-archive_read_support_filter_all.Tpo -c -o libarchive/test-archive_read_support_filter_all.o `test -f 'libarchive/archive_read_support_filter_all.c' || echo '$(srcdir)/'`libarchive/archive_read_support_filter_all.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_read_support_filter_all.Tpo libarchive/$(DEPDIR)/test-archive_read_support_filter_all.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_support_filter_all.c' object='libarchive/test-archive_read_support_filter_all.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_read_support_filter_all.o `test -f 'libarchive/archive_read_support_filter_all.c' || echo '$(srcdir)/'`libarchive/archive_read_support_filter_all.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_read_support_filter_all.o `test -f 'libarchive/archive_read_support_filter_all.c' || echo '$(srcdir)/'`libarchive/archive_read_support_filter_all.c -libarchive/libarchive_test-archive_read_support_filter_all.obj: libarchive/archive_read_support_filter_all.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_read_support_filter_all.obj -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_read_support_filter_all.Tpo -c -o libarchive/libarchive_test-archive_read_support_filter_all.obj `if test -f 'libarchive/archive_read_support_filter_all.c'; then $(CYGPATH_W) 'libarchive/archive_read_support_filter_all.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_support_filter_all.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_read_support_filter_all.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_read_support_filter_all.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_support_filter_all.c' object='libarchive/libarchive_test-archive_read_support_filter_all.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_read_support_filter_all.obj: libarchive/archive_read_support_filter_all.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_read_support_filter_all.obj -MD -MP -MF libarchive/$(DEPDIR)/test-archive_read_support_filter_all.Tpo -c -o libarchive/test-archive_read_support_filter_all.obj `if test -f 'libarchive/archive_read_support_filter_all.c'; then $(CYGPATH_W) 'libarchive/archive_read_support_filter_all.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_support_filter_all.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_read_support_filter_all.Tpo libarchive/$(DEPDIR)/test-archive_read_support_filter_all.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_support_filter_all.c' object='libarchive/test-archive_read_support_filter_all.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_read_support_filter_all.obj `if test -f 'libarchive/archive_read_support_filter_all.c'; then $(CYGPATH_W) 'libarchive/archive_read_support_filter_all.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_support_filter_all.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_read_support_filter_all.obj `if test -f 'libarchive/archive_read_support_filter_all.c'; then $(CYGPATH_W) 'libarchive/archive_read_support_filter_all.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_support_filter_all.c'; fi` -libarchive/libarchive_test-archive_read_support_filter_bzip2.o: libarchive/archive_read_support_filter_bzip2.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_read_support_filter_bzip2.o -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_read_support_filter_bzip2.Tpo -c -o libarchive/libarchive_test-archive_read_support_filter_bzip2.o `test -f 'libarchive/archive_read_support_filter_bzip2.c' || echo '$(srcdir)/'`libarchive/archive_read_support_filter_bzip2.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_read_support_filter_bzip2.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_read_support_filter_bzip2.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_support_filter_bzip2.c' object='libarchive/libarchive_test-archive_read_support_filter_bzip2.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_read_support_filter_bzip2.o: libarchive/archive_read_support_filter_bzip2.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_read_support_filter_bzip2.o -MD -MP -MF libarchive/$(DEPDIR)/test-archive_read_support_filter_bzip2.Tpo -c -o libarchive/test-archive_read_support_filter_bzip2.o `test -f 'libarchive/archive_read_support_filter_bzip2.c' || echo '$(srcdir)/'`libarchive/archive_read_support_filter_bzip2.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_read_support_filter_bzip2.Tpo libarchive/$(DEPDIR)/test-archive_read_support_filter_bzip2.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_support_filter_bzip2.c' object='libarchive/test-archive_read_support_filter_bzip2.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_read_support_filter_bzip2.o `test -f 'libarchive/archive_read_support_filter_bzip2.c' || echo '$(srcdir)/'`libarchive/archive_read_support_filter_bzip2.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_read_support_filter_bzip2.o `test -f 'libarchive/archive_read_support_filter_bzip2.c' || echo '$(srcdir)/'`libarchive/archive_read_support_filter_bzip2.c -libarchive/libarchive_test-archive_read_support_filter_bzip2.obj: libarchive/archive_read_support_filter_bzip2.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_read_support_filter_bzip2.obj -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_read_support_filter_bzip2.Tpo -c -o libarchive/libarchive_test-archive_read_support_filter_bzip2.obj `if test -f 'libarchive/archive_read_support_filter_bzip2.c'; then $(CYGPATH_W) 'libarchive/archive_read_support_filter_bzip2.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_support_filter_bzip2.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_read_support_filter_bzip2.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_read_support_filter_bzip2.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_support_filter_bzip2.c' object='libarchive/libarchive_test-archive_read_support_filter_bzip2.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_read_support_filter_bzip2.obj: libarchive/archive_read_support_filter_bzip2.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_read_support_filter_bzip2.obj -MD -MP -MF libarchive/$(DEPDIR)/test-archive_read_support_filter_bzip2.Tpo -c -o libarchive/test-archive_read_support_filter_bzip2.obj `if test -f 'libarchive/archive_read_support_filter_bzip2.c'; then $(CYGPATH_W) 'libarchive/archive_read_support_filter_bzip2.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_support_filter_bzip2.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_read_support_filter_bzip2.Tpo libarchive/$(DEPDIR)/test-archive_read_support_filter_bzip2.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_support_filter_bzip2.c' object='libarchive/test-archive_read_support_filter_bzip2.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_read_support_filter_bzip2.obj `if test -f 'libarchive/archive_read_support_filter_bzip2.c'; then $(CYGPATH_W) 'libarchive/archive_read_support_filter_bzip2.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_support_filter_bzip2.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_read_support_filter_bzip2.obj `if test -f 'libarchive/archive_read_support_filter_bzip2.c'; then $(CYGPATH_W) 'libarchive/archive_read_support_filter_bzip2.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_support_filter_bzip2.c'; fi` -libarchive/libarchive_test-archive_read_support_filter_compress.o: libarchive/archive_read_support_filter_compress.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_read_support_filter_compress.o -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_read_support_filter_compress.Tpo -c -o libarchive/libarchive_test-archive_read_support_filter_compress.o `test -f 'libarchive/archive_read_support_filter_compress.c' || echo '$(srcdir)/'`libarchive/archive_read_support_filter_compress.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_read_support_filter_compress.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_read_support_filter_compress.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_support_filter_compress.c' object='libarchive/libarchive_test-archive_read_support_filter_compress.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_read_support_filter_by_code.o: libarchive/archive_read_support_filter_by_code.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_read_support_filter_by_code.o -MD -MP -MF libarchive/$(DEPDIR)/test-archive_read_support_filter_by_code.Tpo -c -o libarchive/test-archive_read_support_filter_by_code.o `test -f 'libarchive/archive_read_support_filter_by_code.c' || echo '$(srcdir)/'`libarchive/archive_read_support_filter_by_code.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_read_support_filter_by_code.Tpo libarchive/$(DEPDIR)/test-archive_read_support_filter_by_code.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_support_filter_by_code.c' object='libarchive/test-archive_read_support_filter_by_code.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_read_support_filter_compress.o `test -f 'libarchive/archive_read_support_filter_compress.c' || echo '$(srcdir)/'`libarchive/archive_read_support_filter_compress.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_read_support_filter_by_code.o `test -f 'libarchive/archive_read_support_filter_by_code.c' || echo '$(srcdir)/'`libarchive/archive_read_support_filter_by_code.c -libarchive/libarchive_test-archive_read_support_filter_compress.obj: libarchive/archive_read_support_filter_compress.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_read_support_filter_compress.obj -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_read_support_filter_compress.Tpo -c -o libarchive/libarchive_test-archive_read_support_filter_compress.obj `if test -f 'libarchive/archive_read_support_filter_compress.c'; then $(CYGPATH_W) 'libarchive/archive_read_support_filter_compress.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_support_filter_compress.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_read_support_filter_compress.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_read_support_filter_compress.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_support_filter_compress.c' object='libarchive/libarchive_test-archive_read_support_filter_compress.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_read_support_filter_by_code.obj: libarchive/archive_read_support_filter_by_code.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_read_support_filter_by_code.obj -MD -MP -MF libarchive/$(DEPDIR)/test-archive_read_support_filter_by_code.Tpo -c -o libarchive/test-archive_read_support_filter_by_code.obj `if test -f 'libarchive/archive_read_support_filter_by_code.c'; then $(CYGPATH_W) 'libarchive/archive_read_support_filter_by_code.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_support_filter_by_code.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_read_support_filter_by_code.Tpo libarchive/$(DEPDIR)/test-archive_read_support_filter_by_code.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_support_filter_by_code.c' object='libarchive/test-archive_read_support_filter_by_code.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_read_support_filter_compress.obj `if test -f 'libarchive/archive_read_support_filter_compress.c'; then $(CYGPATH_W) 'libarchive/archive_read_support_filter_compress.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_support_filter_compress.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_read_support_filter_by_code.obj `if test -f 'libarchive/archive_read_support_filter_by_code.c'; then $(CYGPATH_W) 'libarchive/archive_read_support_filter_by_code.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_support_filter_by_code.c'; fi` -libarchive/libarchive_test-archive_read_support_filter_grzip.o: libarchive/archive_read_support_filter_grzip.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_read_support_filter_grzip.o -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_read_support_filter_grzip.Tpo -c -o libarchive/libarchive_test-archive_read_support_filter_grzip.o `test -f 'libarchive/archive_read_support_filter_grzip.c' || echo '$(srcdir)/'`libarchive/archive_read_support_filter_grzip.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_read_support_filter_grzip.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_read_support_filter_grzip.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_support_filter_grzip.c' object='libarchive/libarchive_test-archive_read_support_filter_grzip.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_read_support_filter_compress.o: libarchive/archive_read_support_filter_compress.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_read_support_filter_compress.o -MD -MP -MF libarchive/$(DEPDIR)/test-archive_read_support_filter_compress.Tpo -c -o libarchive/test-archive_read_support_filter_compress.o `test -f 'libarchive/archive_read_support_filter_compress.c' || echo '$(srcdir)/'`libarchive/archive_read_support_filter_compress.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_read_support_filter_compress.Tpo libarchive/$(DEPDIR)/test-archive_read_support_filter_compress.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_support_filter_compress.c' object='libarchive/test-archive_read_support_filter_compress.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_read_support_filter_grzip.o `test -f 'libarchive/archive_read_support_filter_grzip.c' || echo '$(srcdir)/'`libarchive/archive_read_support_filter_grzip.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_read_support_filter_compress.o `test -f 'libarchive/archive_read_support_filter_compress.c' || echo '$(srcdir)/'`libarchive/archive_read_support_filter_compress.c -libarchive/libarchive_test-archive_read_support_filter_grzip.obj: libarchive/archive_read_support_filter_grzip.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_read_support_filter_grzip.obj -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_read_support_filter_grzip.Tpo -c -o libarchive/libarchive_test-archive_read_support_filter_grzip.obj `if test -f 'libarchive/archive_read_support_filter_grzip.c'; then $(CYGPATH_W) 'libarchive/archive_read_support_filter_grzip.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_support_filter_grzip.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_read_support_filter_grzip.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_read_support_filter_grzip.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_support_filter_grzip.c' object='libarchive/libarchive_test-archive_read_support_filter_grzip.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_read_support_filter_compress.obj: libarchive/archive_read_support_filter_compress.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_read_support_filter_compress.obj -MD -MP -MF libarchive/$(DEPDIR)/test-archive_read_support_filter_compress.Tpo -c -o libarchive/test-archive_read_support_filter_compress.obj `if test -f 'libarchive/archive_read_support_filter_compress.c'; then $(CYGPATH_W) 'libarchive/archive_read_support_filter_compress.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_support_filter_compress.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_read_support_filter_compress.Tpo libarchive/$(DEPDIR)/test-archive_read_support_filter_compress.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_support_filter_compress.c' object='libarchive/test-archive_read_support_filter_compress.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_read_support_filter_grzip.obj `if test -f 'libarchive/archive_read_support_filter_grzip.c'; then $(CYGPATH_W) 'libarchive/archive_read_support_filter_grzip.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_support_filter_grzip.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_read_support_filter_compress.obj `if test -f 'libarchive/archive_read_support_filter_compress.c'; then $(CYGPATH_W) 'libarchive/archive_read_support_filter_compress.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_support_filter_compress.c'; fi` -libarchive/libarchive_test-archive_read_support_filter_gzip.o: libarchive/archive_read_support_filter_gzip.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_read_support_filter_gzip.o -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_read_support_filter_gzip.Tpo -c -o libarchive/libarchive_test-archive_read_support_filter_gzip.o `test -f 'libarchive/archive_read_support_filter_gzip.c' || echo '$(srcdir)/'`libarchive/archive_read_support_filter_gzip.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_read_support_filter_gzip.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_read_support_filter_gzip.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_support_filter_gzip.c' object='libarchive/libarchive_test-archive_read_support_filter_gzip.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_read_support_filter_grzip.o: libarchive/archive_read_support_filter_grzip.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_read_support_filter_grzip.o -MD -MP -MF libarchive/$(DEPDIR)/test-archive_read_support_filter_grzip.Tpo -c -o libarchive/test-archive_read_support_filter_grzip.o `test -f 'libarchive/archive_read_support_filter_grzip.c' || echo '$(srcdir)/'`libarchive/archive_read_support_filter_grzip.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_read_support_filter_grzip.Tpo libarchive/$(DEPDIR)/test-archive_read_support_filter_grzip.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_support_filter_grzip.c' object='libarchive/test-archive_read_support_filter_grzip.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_read_support_filter_gzip.o `test -f 'libarchive/archive_read_support_filter_gzip.c' || echo '$(srcdir)/'`libarchive/archive_read_support_filter_gzip.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_read_support_filter_grzip.o `test -f 'libarchive/archive_read_support_filter_grzip.c' || echo '$(srcdir)/'`libarchive/archive_read_support_filter_grzip.c -libarchive/libarchive_test-archive_read_support_filter_gzip.obj: libarchive/archive_read_support_filter_gzip.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_read_support_filter_gzip.obj -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_read_support_filter_gzip.Tpo -c -o libarchive/libarchive_test-archive_read_support_filter_gzip.obj `if test -f 'libarchive/archive_read_support_filter_gzip.c'; then $(CYGPATH_W) 'libarchive/archive_read_support_filter_gzip.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_support_filter_gzip.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_read_support_filter_gzip.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_read_support_filter_gzip.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_support_filter_gzip.c' object='libarchive/libarchive_test-archive_read_support_filter_gzip.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_read_support_filter_grzip.obj: libarchive/archive_read_support_filter_grzip.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_read_support_filter_grzip.obj -MD -MP -MF libarchive/$(DEPDIR)/test-archive_read_support_filter_grzip.Tpo -c -o libarchive/test-archive_read_support_filter_grzip.obj `if test -f 'libarchive/archive_read_support_filter_grzip.c'; then $(CYGPATH_W) 'libarchive/archive_read_support_filter_grzip.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_support_filter_grzip.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_read_support_filter_grzip.Tpo libarchive/$(DEPDIR)/test-archive_read_support_filter_grzip.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_support_filter_grzip.c' object='libarchive/test-archive_read_support_filter_grzip.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_read_support_filter_gzip.obj `if test -f 'libarchive/archive_read_support_filter_gzip.c'; then $(CYGPATH_W) 'libarchive/archive_read_support_filter_gzip.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_support_filter_gzip.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_read_support_filter_grzip.obj `if test -f 'libarchive/archive_read_support_filter_grzip.c'; then $(CYGPATH_W) 'libarchive/archive_read_support_filter_grzip.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_support_filter_grzip.c'; fi` -libarchive/libarchive_test-archive_read_support_filter_lrzip.o: libarchive/archive_read_support_filter_lrzip.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_read_support_filter_lrzip.o -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_read_support_filter_lrzip.Tpo -c -o libarchive/libarchive_test-archive_read_support_filter_lrzip.o `test -f 'libarchive/archive_read_support_filter_lrzip.c' || echo '$(srcdir)/'`libarchive/archive_read_support_filter_lrzip.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_read_support_filter_lrzip.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_read_support_filter_lrzip.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_support_filter_lrzip.c' object='libarchive/libarchive_test-archive_read_support_filter_lrzip.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_read_support_filter_gzip.o: libarchive/archive_read_support_filter_gzip.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_read_support_filter_gzip.o -MD -MP -MF libarchive/$(DEPDIR)/test-archive_read_support_filter_gzip.Tpo -c -o libarchive/test-archive_read_support_filter_gzip.o `test -f 'libarchive/archive_read_support_filter_gzip.c' || echo '$(srcdir)/'`libarchive/archive_read_support_filter_gzip.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_read_support_filter_gzip.Tpo libarchive/$(DEPDIR)/test-archive_read_support_filter_gzip.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_support_filter_gzip.c' object='libarchive/test-archive_read_support_filter_gzip.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_read_support_filter_lrzip.o `test -f 'libarchive/archive_read_support_filter_lrzip.c' || echo '$(srcdir)/'`libarchive/archive_read_support_filter_lrzip.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_read_support_filter_gzip.o `test -f 'libarchive/archive_read_support_filter_gzip.c' || echo '$(srcdir)/'`libarchive/archive_read_support_filter_gzip.c -libarchive/libarchive_test-archive_read_support_filter_lrzip.obj: libarchive/archive_read_support_filter_lrzip.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_read_support_filter_lrzip.obj -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_read_support_filter_lrzip.Tpo -c -o libarchive/libarchive_test-archive_read_support_filter_lrzip.obj `if test -f 'libarchive/archive_read_support_filter_lrzip.c'; then $(CYGPATH_W) 'libarchive/archive_read_support_filter_lrzip.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_support_filter_lrzip.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_read_support_filter_lrzip.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_read_support_filter_lrzip.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_support_filter_lrzip.c' object='libarchive/libarchive_test-archive_read_support_filter_lrzip.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_read_support_filter_gzip.obj: libarchive/archive_read_support_filter_gzip.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_read_support_filter_gzip.obj -MD -MP -MF libarchive/$(DEPDIR)/test-archive_read_support_filter_gzip.Tpo -c -o libarchive/test-archive_read_support_filter_gzip.obj `if test -f 'libarchive/archive_read_support_filter_gzip.c'; then $(CYGPATH_W) 'libarchive/archive_read_support_filter_gzip.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_support_filter_gzip.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_read_support_filter_gzip.Tpo libarchive/$(DEPDIR)/test-archive_read_support_filter_gzip.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_support_filter_gzip.c' object='libarchive/test-archive_read_support_filter_gzip.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_read_support_filter_lrzip.obj `if test -f 'libarchive/archive_read_support_filter_lrzip.c'; then $(CYGPATH_W) 'libarchive/archive_read_support_filter_lrzip.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_support_filter_lrzip.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_read_support_filter_gzip.obj `if test -f 'libarchive/archive_read_support_filter_gzip.c'; then $(CYGPATH_W) 'libarchive/archive_read_support_filter_gzip.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_support_filter_gzip.c'; fi` -libarchive/libarchive_test-archive_read_support_filter_lz4.o: libarchive/archive_read_support_filter_lz4.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_read_support_filter_lz4.o -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_read_support_filter_lz4.Tpo -c -o libarchive/libarchive_test-archive_read_support_filter_lz4.o `test -f 'libarchive/archive_read_support_filter_lz4.c' || echo '$(srcdir)/'`libarchive/archive_read_support_filter_lz4.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_read_support_filter_lz4.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_read_support_filter_lz4.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_support_filter_lz4.c' object='libarchive/libarchive_test-archive_read_support_filter_lz4.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_read_support_filter_lrzip.o: libarchive/archive_read_support_filter_lrzip.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_read_support_filter_lrzip.o -MD -MP -MF libarchive/$(DEPDIR)/test-archive_read_support_filter_lrzip.Tpo -c -o libarchive/test-archive_read_support_filter_lrzip.o `test -f 'libarchive/archive_read_support_filter_lrzip.c' || echo '$(srcdir)/'`libarchive/archive_read_support_filter_lrzip.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_read_support_filter_lrzip.Tpo libarchive/$(DEPDIR)/test-archive_read_support_filter_lrzip.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_support_filter_lrzip.c' object='libarchive/test-archive_read_support_filter_lrzip.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_read_support_filter_lz4.o `test -f 'libarchive/archive_read_support_filter_lz4.c' || echo '$(srcdir)/'`libarchive/archive_read_support_filter_lz4.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_read_support_filter_lrzip.o `test -f 'libarchive/archive_read_support_filter_lrzip.c' || echo '$(srcdir)/'`libarchive/archive_read_support_filter_lrzip.c -libarchive/libarchive_test-archive_read_support_filter_lz4.obj: libarchive/archive_read_support_filter_lz4.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_read_support_filter_lz4.obj -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_read_support_filter_lz4.Tpo -c -o libarchive/libarchive_test-archive_read_support_filter_lz4.obj `if test -f 'libarchive/archive_read_support_filter_lz4.c'; then $(CYGPATH_W) 'libarchive/archive_read_support_filter_lz4.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_support_filter_lz4.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_read_support_filter_lz4.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_read_support_filter_lz4.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_support_filter_lz4.c' object='libarchive/libarchive_test-archive_read_support_filter_lz4.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_read_support_filter_lrzip.obj: libarchive/archive_read_support_filter_lrzip.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_read_support_filter_lrzip.obj -MD -MP -MF libarchive/$(DEPDIR)/test-archive_read_support_filter_lrzip.Tpo -c -o libarchive/test-archive_read_support_filter_lrzip.obj `if test -f 'libarchive/archive_read_support_filter_lrzip.c'; then $(CYGPATH_W) 'libarchive/archive_read_support_filter_lrzip.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_support_filter_lrzip.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_read_support_filter_lrzip.Tpo libarchive/$(DEPDIR)/test-archive_read_support_filter_lrzip.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_support_filter_lrzip.c' object='libarchive/test-archive_read_support_filter_lrzip.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_read_support_filter_lz4.obj `if test -f 'libarchive/archive_read_support_filter_lz4.c'; then $(CYGPATH_W) 'libarchive/archive_read_support_filter_lz4.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_support_filter_lz4.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_read_support_filter_lrzip.obj `if test -f 'libarchive/archive_read_support_filter_lrzip.c'; then $(CYGPATH_W) 'libarchive/archive_read_support_filter_lrzip.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_support_filter_lrzip.c'; fi` -libarchive/libarchive_test-archive_read_support_filter_lzop.o: libarchive/archive_read_support_filter_lzop.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_read_support_filter_lzop.o -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_read_support_filter_lzop.Tpo -c -o libarchive/libarchive_test-archive_read_support_filter_lzop.o `test -f 'libarchive/archive_read_support_filter_lzop.c' || echo '$(srcdir)/'`libarchive/archive_read_support_filter_lzop.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_read_support_filter_lzop.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_read_support_filter_lzop.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_support_filter_lzop.c' object='libarchive/libarchive_test-archive_read_support_filter_lzop.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_read_support_filter_lz4.o: libarchive/archive_read_support_filter_lz4.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_read_support_filter_lz4.o -MD -MP -MF libarchive/$(DEPDIR)/test-archive_read_support_filter_lz4.Tpo -c -o libarchive/test-archive_read_support_filter_lz4.o `test -f 'libarchive/archive_read_support_filter_lz4.c' || echo '$(srcdir)/'`libarchive/archive_read_support_filter_lz4.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_read_support_filter_lz4.Tpo libarchive/$(DEPDIR)/test-archive_read_support_filter_lz4.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_support_filter_lz4.c' object='libarchive/test-archive_read_support_filter_lz4.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_read_support_filter_lzop.o `test -f 'libarchive/archive_read_support_filter_lzop.c' || echo '$(srcdir)/'`libarchive/archive_read_support_filter_lzop.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_read_support_filter_lz4.o `test -f 'libarchive/archive_read_support_filter_lz4.c' || echo '$(srcdir)/'`libarchive/archive_read_support_filter_lz4.c -libarchive/libarchive_test-archive_read_support_filter_lzop.obj: libarchive/archive_read_support_filter_lzop.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_read_support_filter_lzop.obj -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_read_support_filter_lzop.Tpo -c -o libarchive/libarchive_test-archive_read_support_filter_lzop.obj `if test -f 'libarchive/archive_read_support_filter_lzop.c'; then $(CYGPATH_W) 'libarchive/archive_read_support_filter_lzop.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_support_filter_lzop.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_read_support_filter_lzop.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_read_support_filter_lzop.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_support_filter_lzop.c' object='libarchive/libarchive_test-archive_read_support_filter_lzop.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_read_support_filter_lz4.obj: libarchive/archive_read_support_filter_lz4.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_read_support_filter_lz4.obj -MD -MP -MF libarchive/$(DEPDIR)/test-archive_read_support_filter_lz4.Tpo -c -o libarchive/test-archive_read_support_filter_lz4.obj `if test -f 'libarchive/archive_read_support_filter_lz4.c'; then $(CYGPATH_W) 'libarchive/archive_read_support_filter_lz4.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_support_filter_lz4.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_read_support_filter_lz4.Tpo libarchive/$(DEPDIR)/test-archive_read_support_filter_lz4.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_support_filter_lz4.c' object='libarchive/test-archive_read_support_filter_lz4.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_read_support_filter_lzop.obj `if test -f 'libarchive/archive_read_support_filter_lzop.c'; then $(CYGPATH_W) 'libarchive/archive_read_support_filter_lzop.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_support_filter_lzop.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_read_support_filter_lz4.obj `if test -f 'libarchive/archive_read_support_filter_lz4.c'; then $(CYGPATH_W) 'libarchive/archive_read_support_filter_lz4.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_support_filter_lz4.c'; fi` -libarchive/libarchive_test-archive_read_support_filter_none.o: libarchive/archive_read_support_filter_none.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_read_support_filter_none.o -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_read_support_filter_none.Tpo -c -o libarchive/libarchive_test-archive_read_support_filter_none.o `test -f 'libarchive/archive_read_support_filter_none.c' || echo '$(srcdir)/'`libarchive/archive_read_support_filter_none.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_read_support_filter_none.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_read_support_filter_none.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_support_filter_none.c' object='libarchive/libarchive_test-archive_read_support_filter_none.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_read_support_filter_lzop.o: libarchive/archive_read_support_filter_lzop.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_read_support_filter_lzop.o -MD -MP -MF libarchive/$(DEPDIR)/test-archive_read_support_filter_lzop.Tpo -c -o libarchive/test-archive_read_support_filter_lzop.o `test -f 'libarchive/archive_read_support_filter_lzop.c' || echo '$(srcdir)/'`libarchive/archive_read_support_filter_lzop.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_read_support_filter_lzop.Tpo libarchive/$(DEPDIR)/test-archive_read_support_filter_lzop.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_support_filter_lzop.c' object='libarchive/test-archive_read_support_filter_lzop.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_read_support_filter_none.o `test -f 'libarchive/archive_read_support_filter_none.c' || echo '$(srcdir)/'`libarchive/archive_read_support_filter_none.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_read_support_filter_lzop.o `test -f 'libarchive/archive_read_support_filter_lzop.c' || echo '$(srcdir)/'`libarchive/archive_read_support_filter_lzop.c -libarchive/libarchive_test-archive_read_support_filter_none.obj: libarchive/archive_read_support_filter_none.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_read_support_filter_none.obj -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_read_support_filter_none.Tpo -c -o libarchive/libarchive_test-archive_read_support_filter_none.obj `if test -f 'libarchive/archive_read_support_filter_none.c'; then $(CYGPATH_W) 'libarchive/archive_read_support_filter_none.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_support_filter_none.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_read_support_filter_none.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_read_support_filter_none.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_support_filter_none.c' object='libarchive/libarchive_test-archive_read_support_filter_none.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_read_support_filter_lzop.obj: libarchive/archive_read_support_filter_lzop.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_read_support_filter_lzop.obj -MD -MP -MF libarchive/$(DEPDIR)/test-archive_read_support_filter_lzop.Tpo -c -o libarchive/test-archive_read_support_filter_lzop.obj `if test -f 'libarchive/archive_read_support_filter_lzop.c'; then $(CYGPATH_W) 'libarchive/archive_read_support_filter_lzop.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_support_filter_lzop.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_read_support_filter_lzop.Tpo libarchive/$(DEPDIR)/test-archive_read_support_filter_lzop.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_support_filter_lzop.c' object='libarchive/test-archive_read_support_filter_lzop.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_read_support_filter_none.obj `if test -f 'libarchive/archive_read_support_filter_none.c'; then $(CYGPATH_W) 'libarchive/archive_read_support_filter_none.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_support_filter_none.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_read_support_filter_lzop.obj `if test -f 'libarchive/archive_read_support_filter_lzop.c'; then $(CYGPATH_W) 'libarchive/archive_read_support_filter_lzop.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_support_filter_lzop.c'; fi` -libarchive/libarchive_test-archive_read_support_filter_program.o: libarchive/archive_read_support_filter_program.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_read_support_filter_program.o -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_read_support_filter_program.Tpo -c -o libarchive/libarchive_test-archive_read_support_filter_program.o `test -f 'libarchive/archive_read_support_filter_program.c' || echo '$(srcdir)/'`libarchive/archive_read_support_filter_program.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_read_support_filter_program.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_read_support_filter_program.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_support_filter_program.c' object='libarchive/libarchive_test-archive_read_support_filter_program.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_read_support_filter_none.o: libarchive/archive_read_support_filter_none.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_read_support_filter_none.o -MD -MP -MF libarchive/$(DEPDIR)/test-archive_read_support_filter_none.Tpo -c -o libarchive/test-archive_read_support_filter_none.o `test -f 'libarchive/archive_read_support_filter_none.c' || echo '$(srcdir)/'`libarchive/archive_read_support_filter_none.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_read_support_filter_none.Tpo libarchive/$(DEPDIR)/test-archive_read_support_filter_none.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_support_filter_none.c' object='libarchive/test-archive_read_support_filter_none.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_read_support_filter_program.o `test -f 'libarchive/archive_read_support_filter_program.c' || echo '$(srcdir)/'`libarchive/archive_read_support_filter_program.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_read_support_filter_none.o `test -f 'libarchive/archive_read_support_filter_none.c' || echo '$(srcdir)/'`libarchive/archive_read_support_filter_none.c -libarchive/libarchive_test-archive_read_support_filter_program.obj: libarchive/archive_read_support_filter_program.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_read_support_filter_program.obj -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_read_support_filter_program.Tpo -c -o libarchive/libarchive_test-archive_read_support_filter_program.obj `if test -f 'libarchive/archive_read_support_filter_program.c'; then $(CYGPATH_W) 'libarchive/archive_read_support_filter_program.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_support_filter_program.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_read_support_filter_program.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_read_support_filter_program.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_support_filter_program.c' object='libarchive/libarchive_test-archive_read_support_filter_program.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_read_support_filter_none.obj: libarchive/archive_read_support_filter_none.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_read_support_filter_none.obj -MD -MP -MF libarchive/$(DEPDIR)/test-archive_read_support_filter_none.Tpo -c -o libarchive/test-archive_read_support_filter_none.obj `if test -f 'libarchive/archive_read_support_filter_none.c'; then $(CYGPATH_W) 'libarchive/archive_read_support_filter_none.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_support_filter_none.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_read_support_filter_none.Tpo libarchive/$(DEPDIR)/test-archive_read_support_filter_none.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_support_filter_none.c' object='libarchive/test-archive_read_support_filter_none.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_read_support_filter_program.obj `if test -f 'libarchive/archive_read_support_filter_program.c'; then $(CYGPATH_W) 'libarchive/archive_read_support_filter_program.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_support_filter_program.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_read_support_filter_none.obj `if test -f 'libarchive/archive_read_support_filter_none.c'; then $(CYGPATH_W) 'libarchive/archive_read_support_filter_none.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_support_filter_none.c'; fi` -libarchive/libarchive_test-archive_read_support_filter_rpm.o: libarchive/archive_read_support_filter_rpm.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_read_support_filter_rpm.o -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_read_support_filter_rpm.Tpo -c -o libarchive/libarchive_test-archive_read_support_filter_rpm.o `test -f 'libarchive/archive_read_support_filter_rpm.c' || echo '$(srcdir)/'`libarchive/archive_read_support_filter_rpm.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_read_support_filter_rpm.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_read_support_filter_rpm.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_support_filter_rpm.c' object='libarchive/libarchive_test-archive_read_support_filter_rpm.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_read_support_filter_program.o: libarchive/archive_read_support_filter_program.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_read_support_filter_program.o -MD -MP -MF libarchive/$(DEPDIR)/test-archive_read_support_filter_program.Tpo -c -o libarchive/test-archive_read_support_filter_program.o `test -f 'libarchive/archive_read_support_filter_program.c' || echo '$(srcdir)/'`libarchive/archive_read_support_filter_program.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_read_support_filter_program.Tpo libarchive/$(DEPDIR)/test-archive_read_support_filter_program.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_support_filter_program.c' object='libarchive/test-archive_read_support_filter_program.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_read_support_filter_rpm.o `test -f 'libarchive/archive_read_support_filter_rpm.c' || echo '$(srcdir)/'`libarchive/archive_read_support_filter_rpm.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_read_support_filter_program.o `test -f 'libarchive/archive_read_support_filter_program.c' || echo '$(srcdir)/'`libarchive/archive_read_support_filter_program.c -libarchive/libarchive_test-archive_read_support_filter_rpm.obj: libarchive/archive_read_support_filter_rpm.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_read_support_filter_rpm.obj -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_read_support_filter_rpm.Tpo -c -o libarchive/libarchive_test-archive_read_support_filter_rpm.obj `if test -f 'libarchive/archive_read_support_filter_rpm.c'; then $(CYGPATH_W) 'libarchive/archive_read_support_filter_rpm.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_support_filter_rpm.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_read_support_filter_rpm.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_read_support_filter_rpm.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_support_filter_rpm.c' object='libarchive/libarchive_test-archive_read_support_filter_rpm.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_read_support_filter_program.obj: libarchive/archive_read_support_filter_program.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_read_support_filter_program.obj -MD -MP -MF libarchive/$(DEPDIR)/test-archive_read_support_filter_program.Tpo -c -o libarchive/test-archive_read_support_filter_program.obj `if test -f 'libarchive/archive_read_support_filter_program.c'; then $(CYGPATH_W) 'libarchive/archive_read_support_filter_program.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_support_filter_program.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_read_support_filter_program.Tpo libarchive/$(DEPDIR)/test-archive_read_support_filter_program.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_support_filter_program.c' object='libarchive/test-archive_read_support_filter_program.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_read_support_filter_rpm.obj `if test -f 'libarchive/archive_read_support_filter_rpm.c'; then $(CYGPATH_W) 'libarchive/archive_read_support_filter_rpm.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_support_filter_rpm.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_read_support_filter_program.obj `if test -f 'libarchive/archive_read_support_filter_program.c'; then $(CYGPATH_W) 'libarchive/archive_read_support_filter_program.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_support_filter_program.c'; fi` -libarchive/libarchive_test-archive_read_support_filter_uu.o: libarchive/archive_read_support_filter_uu.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_read_support_filter_uu.o -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_read_support_filter_uu.Tpo -c -o libarchive/libarchive_test-archive_read_support_filter_uu.o `test -f 'libarchive/archive_read_support_filter_uu.c' || echo '$(srcdir)/'`libarchive/archive_read_support_filter_uu.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_read_support_filter_uu.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_read_support_filter_uu.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_support_filter_uu.c' object='libarchive/libarchive_test-archive_read_support_filter_uu.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_read_support_filter_rpm.o: libarchive/archive_read_support_filter_rpm.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_read_support_filter_rpm.o -MD -MP -MF libarchive/$(DEPDIR)/test-archive_read_support_filter_rpm.Tpo -c -o libarchive/test-archive_read_support_filter_rpm.o `test -f 'libarchive/archive_read_support_filter_rpm.c' || echo '$(srcdir)/'`libarchive/archive_read_support_filter_rpm.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_read_support_filter_rpm.Tpo libarchive/$(DEPDIR)/test-archive_read_support_filter_rpm.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_support_filter_rpm.c' object='libarchive/test-archive_read_support_filter_rpm.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_read_support_filter_uu.o `test -f 'libarchive/archive_read_support_filter_uu.c' || echo '$(srcdir)/'`libarchive/archive_read_support_filter_uu.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_read_support_filter_rpm.o `test -f 'libarchive/archive_read_support_filter_rpm.c' || echo '$(srcdir)/'`libarchive/archive_read_support_filter_rpm.c -libarchive/libarchive_test-archive_read_support_filter_uu.obj: libarchive/archive_read_support_filter_uu.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_read_support_filter_uu.obj -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_read_support_filter_uu.Tpo -c -o libarchive/libarchive_test-archive_read_support_filter_uu.obj `if test -f 'libarchive/archive_read_support_filter_uu.c'; then $(CYGPATH_W) 'libarchive/archive_read_support_filter_uu.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_support_filter_uu.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_read_support_filter_uu.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_read_support_filter_uu.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_support_filter_uu.c' object='libarchive/libarchive_test-archive_read_support_filter_uu.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_read_support_filter_rpm.obj: libarchive/archive_read_support_filter_rpm.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_read_support_filter_rpm.obj -MD -MP -MF libarchive/$(DEPDIR)/test-archive_read_support_filter_rpm.Tpo -c -o libarchive/test-archive_read_support_filter_rpm.obj `if test -f 'libarchive/archive_read_support_filter_rpm.c'; then $(CYGPATH_W) 'libarchive/archive_read_support_filter_rpm.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_support_filter_rpm.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_read_support_filter_rpm.Tpo libarchive/$(DEPDIR)/test-archive_read_support_filter_rpm.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_support_filter_rpm.c' object='libarchive/test-archive_read_support_filter_rpm.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_read_support_filter_uu.obj `if test -f 'libarchive/archive_read_support_filter_uu.c'; then $(CYGPATH_W) 'libarchive/archive_read_support_filter_uu.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_support_filter_uu.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_read_support_filter_rpm.obj `if test -f 'libarchive/archive_read_support_filter_rpm.c'; then $(CYGPATH_W) 'libarchive/archive_read_support_filter_rpm.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_support_filter_rpm.c'; fi` -libarchive/libarchive_test-archive_read_support_filter_xz.o: libarchive/archive_read_support_filter_xz.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_read_support_filter_xz.o -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_read_support_filter_xz.Tpo -c -o libarchive/libarchive_test-archive_read_support_filter_xz.o `test -f 'libarchive/archive_read_support_filter_xz.c' || echo '$(srcdir)/'`libarchive/archive_read_support_filter_xz.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_read_support_filter_xz.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_read_support_filter_xz.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_support_filter_xz.c' object='libarchive/libarchive_test-archive_read_support_filter_xz.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_read_support_filter_uu.o: libarchive/archive_read_support_filter_uu.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_read_support_filter_uu.o -MD -MP -MF libarchive/$(DEPDIR)/test-archive_read_support_filter_uu.Tpo -c -o libarchive/test-archive_read_support_filter_uu.o `test -f 'libarchive/archive_read_support_filter_uu.c' || echo '$(srcdir)/'`libarchive/archive_read_support_filter_uu.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_read_support_filter_uu.Tpo libarchive/$(DEPDIR)/test-archive_read_support_filter_uu.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_support_filter_uu.c' object='libarchive/test-archive_read_support_filter_uu.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_read_support_filter_xz.o `test -f 'libarchive/archive_read_support_filter_xz.c' || echo '$(srcdir)/'`libarchive/archive_read_support_filter_xz.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_read_support_filter_uu.o `test -f 'libarchive/archive_read_support_filter_uu.c' || echo '$(srcdir)/'`libarchive/archive_read_support_filter_uu.c -libarchive/libarchive_test-archive_read_support_filter_xz.obj: libarchive/archive_read_support_filter_xz.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_read_support_filter_xz.obj -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_read_support_filter_xz.Tpo -c -o libarchive/libarchive_test-archive_read_support_filter_xz.obj `if test -f 'libarchive/archive_read_support_filter_xz.c'; then $(CYGPATH_W) 'libarchive/archive_read_support_filter_xz.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_support_filter_xz.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_read_support_filter_xz.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_read_support_filter_xz.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_support_filter_xz.c' object='libarchive/libarchive_test-archive_read_support_filter_xz.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_read_support_filter_uu.obj: libarchive/archive_read_support_filter_uu.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_read_support_filter_uu.obj -MD -MP -MF libarchive/$(DEPDIR)/test-archive_read_support_filter_uu.Tpo -c -o libarchive/test-archive_read_support_filter_uu.obj `if test -f 'libarchive/archive_read_support_filter_uu.c'; then $(CYGPATH_W) 'libarchive/archive_read_support_filter_uu.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_support_filter_uu.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_read_support_filter_uu.Tpo libarchive/$(DEPDIR)/test-archive_read_support_filter_uu.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_support_filter_uu.c' object='libarchive/test-archive_read_support_filter_uu.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_read_support_filter_xz.obj `if test -f 'libarchive/archive_read_support_filter_xz.c'; then $(CYGPATH_W) 'libarchive/archive_read_support_filter_xz.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_support_filter_xz.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_read_support_filter_uu.obj `if test -f 'libarchive/archive_read_support_filter_uu.c'; then $(CYGPATH_W) 'libarchive/archive_read_support_filter_uu.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_support_filter_uu.c'; fi` -libarchive/libarchive_test-archive_read_support_filter_zstd.o: libarchive/archive_read_support_filter_zstd.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_read_support_filter_zstd.o -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_read_support_filter_zstd.Tpo -c -o libarchive/libarchive_test-archive_read_support_filter_zstd.o `test -f 'libarchive/archive_read_support_filter_zstd.c' || echo '$(srcdir)/'`libarchive/archive_read_support_filter_zstd.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_read_support_filter_zstd.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_read_support_filter_zstd.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_support_filter_zstd.c' object='libarchive/libarchive_test-archive_read_support_filter_zstd.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_read_support_filter_xz.o: libarchive/archive_read_support_filter_xz.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_read_support_filter_xz.o -MD -MP -MF libarchive/$(DEPDIR)/test-archive_read_support_filter_xz.Tpo -c -o libarchive/test-archive_read_support_filter_xz.o `test -f 'libarchive/archive_read_support_filter_xz.c' || echo '$(srcdir)/'`libarchive/archive_read_support_filter_xz.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_read_support_filter_xz.Tpo libarchive/$(DEPDIR)/test-archive_read_support_filter_xz.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_support_filter_xz.c' object='libarchive/test-archive_read_support_filter_xz.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_read_support_filter_zstd.o `test -f 'libarchive/archive_read_support_filter_zstd.c' || echo '$(srcdir)/'`libarchive/archive_read_support_filter_zstd.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_read_support_filter_xz.o `test -f 'libarchive/archive_read_support_filter_xz.c' || echo '$(srcdir)/'`libarchive/archive_read_support_filter_xz.c -libarchive/libarchive_test-archive_read_support_filter_zstd.obj: libarchive/archive_read_support_filter_zstd.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_read_support_filter_zstd.obj -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_read_support_filter_zstd.Tpo -c -o libarchive/libarchive_test-archive_read_support_filter_zstd.obj `if test -f 'libarchive/archive_read_support_filter_zstd.c'; then $(CYGPATH_W) 'libarchive/archive_read_support_filter_zstd.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_support_filter_zstd.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_read_support_filter_zstd.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_read_support_filter_zstd.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_support_filter_zstd.c' object='libarchive/libarchive_test-archive_read_support_filter_zstd.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_read_support_filter_xz.obj: libarchive/archive_read_support_filter_xz.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_read_support_filter_xz.obj -MD -MP -MF libarchive/$(DEPDIR)/test-archive_read_support_filter_xz.Tpo -c -o libarchive/test-archive_read_support_filter_xz.obj `if test -f 'libarchive/archive_read_support_filter_xz.c'; then $(CYGPATH_W) 'libarchive/archive_read_support_filter_xz.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_support_filter_xz.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_read_support_filter_xz.Tpo libarchive/$(DEPDIR)/test-archive_read_support_filter_xz.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_support_filter_xz.c' object='libarchive/test-archive_read_support_filter_xz.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_read_support_filter_zstd.obj `if test -f 'libarchive/archive_read_support_filter_zstd.c'; then $(CYGPATH_W) 'libarchive/archive_read_support_filter_zstd.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_support_filter_zstd.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_read_support_filter_xz.obj `if test -f 'libarchive/archive_read_support_filter_xz.c'; then $(CYGPATH_W) 'libarchive/archive_read_support_filter_xz.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_support_filter_xz.c'; fi` -libarchive/libarchive_test-archive_read_support_format_7zip.o: libarchive/archive_read_support_format_7zip.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_read_support_format_7zip.o -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_read_support_format_7zip.Tpo -c -o libarchive/libarchive_test-archive_read_support_format_7zip.o `test -f 'libarchive/archive_read_support_format_7zip.c' || echo '$(srcdir)/'`libarchive/archive_read_support_format_7zip.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_read_support_format_7zip.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_read_support_format_7zip.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_support_format_7zip.c' object='libarchive/libarchive_test-archive_read_support_format_7zip.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_read_support_filter_zstd.o: libarchive/archive_read_support_filter_zstd.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_read_support_filter_zstd.o -MD -MP -MF libarchive/$(DEPDIR)/test-archive_read_support_filter_zstd.Tpo -c -o libarchive/test-archive_read_support_filter_zstd.o `test -f 'libarchive/archive_read_support_filter_zstd.c' || echo '$(srcdir)/'`libarchive/archive_read_support_filter_zstd.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_read_support_filter_zstd.Tpo libarchive/$(DEPDIR)/test-archive_read_support_filter_zstd.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_support_filter_zstd.c' object='libarchive/test-archive_read_support_filter_zstd.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_read_support_format_7zip.o `test -f 'libarchive/archive_read_support_format_7zip.c' || echo '$(srcdir)/'`libarchive/archive_read_support_format_7zip.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_read_support_filter_zstd.o `test -f 'libarchive/archive_read_support_filter_zstd.c' || echo '$(srcdir)/'`libarchive/archive_read_support_filter_zstd.c -libarchive/libarchive_test-archive_read_support_format_7zip.obj: libarchive/archive_read_support_format_7zip.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_read_support_format_7zip.obj -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_read_support_format_7zip.Tpo -c -o libarchive/libarchive_test-archive_read_support_format_7zip.obj `if test -f 'libarchive/archive_read_support_format_7zip.c'; then $(CYGPATH_W) 'libarchive/archive_read_support_format_7zip.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_support_format_7zip.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_read_support_format_7zip.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_read_support_format_7zip.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_support_format_7zip.c' object='libarchive/libarchive_test-archive_read_support_format_7zip.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_read_support_filter_zstd.obj: libarchive/archive_read_support_filter_zstd.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_read_support_filter_zstd.obj -MD -MP -MF libarchive/$(DEPDIR)/test-archive_read_support_filter_zstd.Tpo -c -o libarchive/test-archive_read_support_filter_zstd.obj `if test -f 'libarchive/archive_read_support_filter_zstd.c'; then $(CYGPATH_W) 'libarchive/archive_read_support_filter_zstd.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_support_filter_zstd.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_read_support_filter_zstd.Tpo libarchive/$(DEPDIR)/test-archive_read_support_filter_zstd.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_support_filter_zstd.c' object='libarchive/test-archive_read_support_filter_zstd.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_read_support_format_7zip.obj `if test -f 'libarchive/archive_read_support_format_7zip.c'; then $(CYGPATH_W) 'libarchive/archive_read_support_format_7zip.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_support_format_7zip.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_read_support_filter_zstd.obj `if test -f 'libarchive/archive_read_support_filter_zstd.c'; then $(CYGPATH_W) 'libarchive/archive_read_support_filter_zstd.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_support_filter_zstd.c'; fi` -libarchive/libarchive_test-archive_read_support_format_all.o: libarchive/archive_read_support_format_all.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_read_support_format_all.o -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_read_support_format_all.Tpo -c -o libarchive/libarchive_test-archive_read_support_format_all.o `test -f 'libarchive/archive_read_support_format_all.c' || echo '$(srcdir)/'`libarchive/archive_read_support_format_all.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_read_support_format_all.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_read_support_format_all.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_support_format_all.c' object='libarchive/libarchive_test-archive_read_support_format_all.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_read_support_format_7zip.o: libarchive/archive_read_support_format_7zip.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_read_support_format_7zip.o -MD -MP -MF libarchive/$(DEPDIR)/test-archive_read_support_format_7zip.Tpo -c -o libarchive/test-archive_read_support_format_7zip.o `test -f 'libarchive/archive_read_support_format_7zip.c' || echo '$(srcdir)/'`libarchive/archive_read_support_format_7zip.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_read_support_format_7zip.Tpo libarchive/$(DEPDIR)/test-archive_read_support_format_7zip.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_support_format_7zip.c' object='libarchive/test-archive_read_support_format_7zip.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_read_support_format_all.o `test -f 'libarchive/archive_read_support_format_all.c' || echo '$(srcdir)/'`libarchive/archive_read_support_format_all.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_read_support_format_7zip.o `test -f 'libarchive/archive_read_support_format_7zip.c' || echo '$(srcdir)/'`libarchive/archive_read_support_format_7zip.c -libarchive/libarchive_test-archive_read_support_format_all.obj: libarchive/archive_read_support_format_all.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_read_support_format_all.obj -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_read_support_format_all.Tpo -c -o libarchive/libarchive_test-archive_read_support_format_all.obj `if test -f 'libarchive/archive_read_support_format_all.c'; then $(CYGPATH_W) 'libarchive/archive_read_support_format_all.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_support_format_all.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_read_support_format_all.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_read_support_format_all.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_support_format_all.c' object='libarchive/libarchive_test-archive_read_support_format_all.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_read_support_format_7zip.obj: libarchive/archive_read_support_format_7zip.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_read_support_format_7zip.obj -MD -MP -MF libarchive/$(DEPDIR)/test-archive_read_support_format_7zip.Tpo -c -o libarchive/test-archive_read_support_format_7zip.obj `if test -f 'libarchive/archive_read_support_format_7zip.c'; then $(CYGPATH_W) 'libarchive/archive_read_support_format_7zip.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_support_format_7zip.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_read_support_format_7zip.Tpo libarchive/$(DEPDIR)/test-archive_read_support_format_7zip.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_support_format_7zip.c' object='libarchive/test-archive_read_support_format_7zip.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_read_support_format_all.obj `if test -f 'libarchive/archive_read_support_format_all.c'; then $(CYGPATH_W) 'libarchive/archive_read_support_format_all.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_support_format_all.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_read_support_format_7zip.obj `if test -f 'libarchive/archive_read_support_format_7zip.c'; then $(CYGPATH_W) 'libarchive/archive_read_support_format_7zip.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_support_format_7zip.c'; fi` -libarchive/libarchive_test-archive_read_support_format_ar.o: libarchive/archive_read_support_format_ar.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_read_support_format_ar.o -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_read_support_format_ar.Tpo -c -o libarchive/libarchive_test-archive_read_support_format_ar.o `test -f 'libarchive/archive_read_support_format_ar.c' || echo '$(srcdir)/'`libarchive/archive_read_support_format_ar.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_read_support_format_ar.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_read_support_format_ar.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_support_format_ar.c' object='libarchive/libarchive_test-archive_read_support_format_ar.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_read_support_format_all.o: libarchive/archive_read_support_format_all.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_read_support_format_all.o -MD -MP -MF libarchive/$(DEPDIR)/test-archive_read_support_format_all.Tpo -c -o libarchive/test-archive_read_support_format_all.o `test -f 'libarchive/archive_read_support_format_all.c' || echo '$(srcdir)/'`libarchive/archive_read_support_format_all.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_read_support_format_all.Tpo libarchive/$(DEPDIR)/test-archive_read_support_format_all.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_support_format_all.c' object='libarchive/test-archive_read_support_format_all.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_read_support_format_ar.o `test -f 'libarchive/archive_read_support_format_ar.c' || echo '$(srcdir)/'`libarchive/archive_read_support_format_ar.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_read_support_format_all.o `test -f 'libarchive/archive_read_support_format_all.c' || echo '$(srcdir)/'`libarchive/archive_read_support_format_all.c -libarchive/libarchive_test-archive_read_support_format_ar.obj: libarchive/archive_read_support_format_ar.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_read_support_format_ar.obj -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_read_support_format_ar.Tpo -c -o libarchive/libarchive_test-archive_read_support_format_ar.obj `if test -f 'libarchive/archive_read_support_format_ar.c'; then $(CYGPATH_W) 'libarchive/archive_read_support_format_ar.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_support_format_ar.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_read_support_format_ar.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_read_support_format_ar.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_support_format_ar.c' object='libarchive/libarchive_test-archive_read_support_format_ar.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_read_support_format_all.obj: libarchive/archive_read_support_format_all.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_read_support_format_all.obj -MD -MP -MF libarchive/$(DEPDIR)/test-archive_read_support_format_all.Tpo -c -o libarchive/test-archive_read_support_format_all.obj `if test -f 'libarchive/archive_read_support_format_all.c'; then $(CYGPATH_W) 'libarchive/archive_read_support_format_all.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_support_format_all.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_read_support_format_all.Tpo libarchive/$(DEPDIR)/test-archive_read_support_format_all.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_support_format_all.c' object='libarchive/test-archive_read_support_format_all.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_read_support_format_ar.obj `if test -f 'libarchive/archive_read_support_format_ar.c'; then $(CYGPATH_W) 'libarchive/archive_read_support_format_ar.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_support_format_ar.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_read_support_format_all.obj `if test -f 'libarchive/archive_read_support_format_all.c'; then $(CYGPATH_W) 'libarchive/archive_read_support_format_all.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_support_format_all.c'; fi` -libarchive/libarchive_test-archive_read_support_format_by_code.o: libarchive/archive_read_support_format_by_code.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_read_support_format_by_code.o -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_read_support_format_by_code.Tpo -c -o libarchive/libarchive_test-archive_read_support_format_by_code.o `test -f 'libarchive/archive_read_support_format_by_code.c' || echo '$(srcdir)/'`libarchive/archive_read_support_format_by_code.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_read_support_format_by_code.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_read_support_format_by_code.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_support_format_by_code.c' object='libarchive/libarchive_test-archive_read_support_format_by_code.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_read_support_format_ar.o: libarchive/archive_read_support_format_ar.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_read_support_format_ar.o -MD -MP -MF libarchive/$(DEPDIR)/test-archive_read_support_format_ar.Tpo -c -o libarchive/test-archive_read_support_format_ar.o `test -f 'libarchive/archive_read_support_format_ar.c' || echo '$(srcdir)/'`libarchive/archive_read_support_format_ar.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_read_support_format_ar.Tpo libarchive/$(DEPDIR)/test-archive_read_support_format_ar.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_support_format_ar.c' object='libarchive/test-archive_read_support_format_ar.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_read_support_format_by_code.o `test -f 'libarchive/archive_read_support_format_by_code.c' || echo '$(srcdir)/'`libarchive/archive_read_support_format_by_code.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_read_support_format_ar.o `test -f 'libarchive/archive_read_support_format_ar.c' || echo '$(srcdir)/'`libarchive/archive_read_support_format_ar.c -libarchive/libarchive_test-archive_read_support_format_by_code.obj: libarchive/archive_read_support_format_by_code.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_read_support_format_by_code.obj -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_read_support_format_by_code.Tpo -c -o libarchive/libarchive_test-archive_read_support_format_by_code.obj `if test -f 'libarchive/archive_read_support_format_by_code.c'; then $(CYGPATH_W) 'libarchive/archive_read_support_format_by_code.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_support_format_by_code.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_read_support_format_by_code.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_read_support_format_by_code.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_support_format_by_code.c' object='libarchive/libarchive_test-archive_read_support_format_by_code.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_read_support_format_ar.obj: libarchive/archive_read_support_format_ar.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_read_support_format_ar.obj -MD -MP -MF libarchive/$(DEPDIR)/test-archive_read_support_format_ar.Tpo -c -o libarchive/test-archive_read_support_format_ar.obj `if test -f 'libarchive/archive_read_support_format_ar.c'; then $(CYGPATH_W) 'libarchive/archive_read_support_format_ar.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_support_format_ar.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_read_support_format_ar.Tpo libarchive/$(DEPDIR)/test-archive_read_support_format_ar.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_support_format_ar.c' object='libarchive/test-archive_read_support_format_ar.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_read_support_format_by_code.obj `if test -f 'libarchive/archive_read_support_format_by_code.c'; then $(CYGPATH_W) 'libarchive/archive_read_support_format_by_code.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_support_format_by_code.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_read_support_format_ar.obj `if test -f 'libarchive/archive_read_support_format_ar.c'; then $(CYGPATH_W) 'libarchive/archive_read_support_format_ar.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_support_format_ar.c'; fi` -libarchive/libarchive_test-archive_read_support_format_cab.o: libarchive/archive_read_support_format_cab.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_read_support_format_cab.o -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_read_support_format_cab.Tpo -c -o libarchive/libarchive_test-archive_read_support_format_cab.o `test -f 'libarchive/archive_read_support_format_cab.c' || echo '$(srcdir)/'`libarchive/archive_read_support_format_cab.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_read_support_format_cab.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_read_support_format_cab.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_support_format_cab.c' object='libarchive/libarchive_test-archive_read_support_format_cab.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_read_support_format_by_code.o: libarchive/archive_read_support_format_by_code.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_read_support_format_by_code.o -MD -MP -MF libarchive/$(DEPDIR)/test-archive_read_support_format_by_code.Tpo -c -o libarchive/test-archive_read_support_format_by_code.o `test -f 'libarchive/archive_read_support_format_by_code.c' || echo '$(srcdir)/'`libarchive/archive_read_support_format_by_code.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_read_support_format_by_code.Tpo libarchive/$(DEPDIR)/test-archive_read_support_format_by_code.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_support_format_by_code.c' object='libarchive/test-archive_read_support_format_by_code.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_read_support_format_cab.o `test -f 'libarchive/archive_read_support_format_cab.c' || echo '$(srcdir)/'`libarchive/archive_read_support_format_cab.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_read_support_format_by_code.o `test -f 'libarchive/archive_read_support_format_by_code.c' || echo '$(srcdir)/'`libarchive/archive_read_support_format_by_code.c -libarchive/libarchive_test-archive_read_support_format_cab.obj: libarchive/archive_read_support_format_cab.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_read_support_format_cab.obj -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_read_support_format_cab.Tpo -c -o libarchive/libarchive_test-archive_read_support_format_cab.obj `if test -f 'libarchive/archive_read_support_format_cab.c'; then $(CYGPATH_W) 'libarchive/archive_read_support_format_cab.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_support_format_cab.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_read_support_format_cab.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_read_support_format_cab.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_support_format_cab.c' object='libarchive/libarchive_test-archive_read_support_format_cab.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_read_support_format_by_code.obj: libarchive/archive_read_support_format_by_code.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_read_support_format_by_code.obj -MD -MP -MF libarchive/$(DEPDIR)/test-archive_read_support_format_by_code.Tpo -c -o libarchive/test-archive_read_support_format_by_code.obj `if test -f 'libarchive/archive_read_support_format_by_code.c'; then $(CYGPATH_W) 'libarchive/archive_read_support_format_by_code.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_support_format_by_code.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_read_support_format_by_code.Tpo libarchive/$(DEPDIR)/test-archive_read_support_format_by_code.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_support_format_by_code.c' object='libarchive/test-archive_read_support_format_by_code.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_read_support_format_cab.obj `if test -f 'libarchive/archive_read_support_format_cab.c'; then $(CYGPATH_W) 'libarchive/archive_read_support_format_cab.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_support_format_cab.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_read_support_format_by_code.obj `if test -f 'libarchive/archive_read_support_format_by_code.c'; then $(CYGPATH_W) 'libarchive/archive_read_support_format_by_code.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_support_format_by_code.c'; fi` -libarchive/libarchive_test-archive_read_support_format_cpio.o: libarchive/archive_read_support_format_cpio.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_read_support_format_cpio.o -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_read_support_format_cpio.Tpo -c -o libarchive/libarchive_test-archive_read_support_format_cpio.o `test -f 'libarchive/archive_read_support_format_cpio.c' || echo '$(srcdir)/'`libarchive/archive_read_support_format_cpio.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_read_support_format_cpio.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_read_support_format_cpio.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_support_format_cpio.c' object='libarchive/libarchive_test-archive_read_support_format_cpio.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_read_support_format_cab.o: libarchive/archive_read_support_format_cab.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_read_support_format_cab.o -MD -MP -MF libarchive/$(DEPDIR)/test-archive_read_support_format_cab.Tpo -c -o libarchive/test-archive_read_support_format_cab.o `test -f 'libarchive/archive_read_support_format_cab.c' || echo '$(srcdir)/'`libarchive/archive_read_support_format_cab.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_read_support_format_cab.Tpo libarchive/$(DEPDIR)/test-archive_read_support_format_cab.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_support_format_cab.c' object='libarchive/test-archive_read_support_format_cab.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_read_support_format_cpio.o `test -f 'libarchive/archive_read_support_format_cpio.c' || echo '$(srcdir)/'`libarchive/archive_read_support_format_cpio.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_read_support_format_cab.o `test -f 'libarchive/archive_read_support_format_cab.c' || echo '$(srcdir)/'`libarchive/archive_read_support_format_cab.c -libarchive/libarchive_test-archive_read_support_format_cpio.obj: libarchive/archive_read_support_format_cpio.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_read_support_format_cpio.obj -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_read_support_format_cpio.Tpo -c -o libarchive/libarchive_test-archive_read_support_format_cpio.obj `if test -f 'libarchive/archive_read_support_format_cpio.c'; then $(CYGPATH_W) 'libarchive/archive_read_support_format_cpio.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_support_format_cpio.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_read_support_format_cpio.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_read_support_format_cpio.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_support_format_cpio.c' object='libarchive/libarchive_test-archive_read_support_format_cpio.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_read_support_format_cab.obj: libarchive/archive_read_support_format_cab.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_read_support_format_cab.obj -MD -MP -MF libarchive/$(DEPDIR)/test-archive_read_support_format_cab.Tpo -c -o libarchive/test-archive_read_support_format_cab.obj `if test -f 'libarchive/archive_read_support_format_cab.c'; then $(CYGPATH_W) 'libarchive/archive_read_support_format_cab.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_support_format_cab.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_read_support_format_cab.Tpo libarchive/$(DEPDIR)/test-archive_read_support_format_cab.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_support_format_cab.c' object='libarchive/test-archive_read_support_format_cab.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_read_support_format_cpio.obj `if test -f 'libarchive/archive_read_support_format_cpio.c'; then $(CYGPATH_W) 'libarchive/archive_read_support_format_cpio.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_support_format_cpio.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_read_support_format_cab.obj `if test -f 'libarchive/archive_read_support_format_cab.c'; then $(CYGPATH_W) 'libarchive/archive_read_support_format_cab.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_support_format_cab.c'; fi` -libarchive/libarchive_test-archive_read_support_format_empty.o: libarchive/archive_read_support_format_empty.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_read_support_format_empty.o -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_read_support_format_empty.Tpo -c -o libarchive/libarchive_test-archive_read_support_format_empty.o `test -f 'libarchive/archive_read_support_format_empty.c' || echo '$(srcdir)/'`libarchive/archive_read_support_format_empty.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_read_support_format_empty.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_read_support_format_empty.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_support_format_empty.c' object='libarchive/libarchive_test-archive_read_support_format_empty.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_read_support_format_cpio.o: libarchive/archive_read_support_format_cpio.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_read_support_format_cpio.o -MD -MP -MF libarchive/$(DEPDIR)/test-archive_read_support_format_cpio.Tpo -c -o libarchive/test-archive_read_support_format_cpio.o `test -f 'libarchive/archive_read_support_format_cpio.c' || echo '$(srcdir)/'`libarchive/archive_read_support_format_cpio.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_read_support_format_cpio.Tpo libarchive/$(DEPDIR)/test-archive_read_support_format_cpio.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_support_format_cpio.c' object='libarchive/test-archive_read_support_format_cpio.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_read_support_format_empty.o `test -f 'libarchive/archive_read_support_format_empty.c' || echo '$(srcdir)/'`libarchive/archive_read_support_format_empty.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_read_support_format_cpio.o `test -f 'libarchive/archive_read_support_format_cpio.c' || echo '$(srcdir)/'`libarchive/archive_read_support_format_cpio.c -libarchive/libarchive_test-archive_read_support_format_empty.obj: libarchive/archive_read_support_format_empty.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_read_support_format_empty.obj -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_read_support_format_empty.Tpo -c -o libarchive/libarchive_test-archive_read_support_format_empty.obj `if test -f 'libarchive/archive_read_support_format_empty.c'; then $(CYGPATH_W) 'libarchive/archive_read_support_format_empty.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_support_format_empty.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_read_support_format_empty.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_read_support_format_empty.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_support_format_empty.c' object='libarchive/libarchive_test-archive_read_support_format_empty.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_read_support_format_cpio.obj: libarchive/archive_read_support_format_cpio.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_read_support_format_cpio.obj -MD -MP -MF libarchive/$(DEPDIR)/test-archive_read_support_format_cpio.Tpo -c -o libarchive/test-archive_read_support_format_cpio.obj `if test -f 'libarchive/archive_read_support_format_cpio.c'; then $(CYGPATH_W) 'libarchive/archive_read_support_format_cpio.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_support_format_cpio.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_read_support_format_cpio.Tpo libarchive/$(DEPDIR)/test-archive_read_support_format_cpio.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_support_format_cpio.c' object='libarchive/test-archive_read_support_format_cpio.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_read_support_format_empty.obj `if test -f 'libarchive/archive_read_support_format_empty.c'; then $(CYGPATH_W) 'libarchive/archive_read_support_format_empty.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_support_format_empty.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_read_support_format_cpio.obj `if test -f 'libarchive/archive_read_support_format_cpio.c'; then $(CYGPATH_W) 'libarchive/archive_read_support_format_cpio.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_support_format_cpio.c'; fi` -libarchive/libarchive_test-archive_read_support_format_iso9660.o: libarchive/archive_read_support_format_iso9660.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_read_support_format_iso9660.o -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_read_support_format_iso9660.Tpo -c -o libarchive/libarchive_test-archive_read_support_format_iso9660.o `test -f 'libarchive/archive_read_support_format_iso9660.c' || echo '$(srcdir)/'`libarchive/archive_read_support_format_iso9660.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_read_support_format_iso9660.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_read_support_format_iso9660.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_support_format_iso9660.c' object='libarchive/libarchive_test-archive_read_support_format_iso9660.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_read_support_format_empty.o: libarchive/archive_read_support_format_empty.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_read_support_format_empty.o -MD -MP -MF libarchive/$(DEPDIR)/test-archive_read_support_format_empty.Tpo -c -o libarchive/test-archive_read_support_format_empty.o `test -f 'libarchive/archive_read_support_format_empty.c' || echo '$(srcdir)/'`libarchive/archive_read_support_format_empty.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_read_support_format_empty.Tpo libarchive/$(DEPDIR)/test-archive_read_support_format_empty.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_support_format_empty.c' object='libarchive/test-archive_read_support_format_empty.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_read_support_format_iso9660.o `test -f 'libarchive/archive_read_support_format_iso9660.c' || echo '$(srcdir)/'`libarchive/archive_read_support_format_iso9660.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_read_support_format_empty.o `test -f 'libarchive/archive_read_support_format_empty.c' || echo '$(srcdir)/'`libarchive/archive_read_support_format_empty.c -libarchive/libarchive_test-archive_read_support_format_iso9660.obj: libarchive/archive_read_support_format_iso9660.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_read_support_format_iso9660.obj -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_read_support_format_iso9660.Tpo -c -o libarchive/libarchive_test-archive_read_support_format_iso9660.obj `if test -f 'libarchive/archive_read_support_format_iso9660.c'; then $(CYGPATH_W) 'libarchive/archive_read_support_format_iso9660.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_support_format_iso9660.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_read_support_format_iso9660.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_read_support_format_iso9660.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_support_format_iso9660.c' object='libarchive/libarchive_test-archive_read_support_format_iso9660.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_read_support_format_empty.obj: libarchive/archive_read_support_format_empty.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_read_support_format_empty.obj -MD -MP -MF libarchive/$(DEPDIR)/test-archive_read_support_format_empty.Tpo -c -o libarchive/test-archive_read_support_format_empty.obj `if test -f 'libarchive/archive_read_support_format_empty.c'; then $(CYGPATH_W) 'libarchive/archive_read_support_format_empty.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_support_format_empty.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_read_support_format_empty.Tpo libarchive/$(DEPDIR)/test-archive_read_support_format_empty.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_support_format_empty.c' object='libarchive/test-archive_read_support_format_empty.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_read_support_format_iso9660.obj `if test -f 'libarchive/archive_read_support_format_iso9660.c'; then $(CYGPATH_W) 'libarchive/archive_read_support_format_iso9660.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_support_format_iso9660.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_read_support_format_empty.obj `if test -f 'libarchive/archive_read_support_format_empty.c'; then $(CYGPATH_W) 'libarchive/archive_read_support_format_empty.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_support_format_empty.c'; fi` -libarchive/libarchive_test-archive_read_support_format_lha.o: libarchive/archive_read_support_format_lha.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_read_support_format_lha.o -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_read_support_format_lha.Tpo -c -o libarchive/libarchive_test-archive_read_support_format_lha.o `test -f 'libarchive/archive_read_support_format_lha.c' || echo '$(srcdir)/'`libarchive/archive_read_support_format_lha.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_read_support_format_lha.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_read_support_format_lha.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_support_format_lha.c' object='libarchive/libarchive_test-archive_read_support_format_lha.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_read_support_format_iso9660.o: libarchive/archive_read_support_format_iso9660.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_read_support_format_iso9660.o -MD -MP -MF libarchive/$(DEPDIR)/test-archive_read_support_format_iso9660.Tpo -c -o libarchive/test-archive_read_support_format_iso9660.o `test -f 'libarchive/archive_read_support_format_iso9660.c' || echo '$(srcdir)/'`libarchive/archive_read_support_format_iso9660.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_read_support_format_iso9660.Tpo libarchive/$(DEPDIR)/test-archive_read_support_format_iso9660.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_support_format_iso9660.c' object='libarchive/test-archive_read_support_format_iso9660.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_read_support_format_lha.o `test -f 'libarchive/archive_read_support_format_lha.c' || echo '$(srcdir)/'`libarchive/archive_read_support_format_lha.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_read_support_format_iso9660.o `test -f 'libarchive/archive_read_support_format_iso9660.c' || echo '$(srcdir)/'`libarchive/archive_read_support_format_iso9660.c -libarchive/libarchive_test-archive_read_support_format_lha.obj: libarchive/archive_read_support_format_lha.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_read_support_format_lha.obj -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_read_support_format_lha.Tpo -c -o libarchive/libarchive_test-archive_read_support_format_lha.obj `if test -f 'libarchive/archive_read_support_format_lha.c'; then $(CYGPATH_W) 'libarchive/archive_read_support_format_lha.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_support_format_lha.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_read_support_format_lha.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_read_support_format_lha.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_support_format_lha.c' object='libarchive/libarchive_test-archive_read_support_format_lha.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_read_support_format_iso9660.obj: libarchive/archive_read_support_format_iso9660.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_read_support_format_iso9660.obj -MD -MP -MF libarchive/$(DEPDIR)/test-archive_read_support_format_iso9660.Tpo -c -o libarchive/test-archive_read_support_format_iso9660.obj `if test -f 'libarchive/archive_read_support_format_iso9660.c'; then $(CYGPATH_W) 'libarchive/archive_read_support_format_iso9660.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_support_format_iso9660.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_read_support_format_iso9660.Tpo libarchive/$(DEPDIR)/test-archive_read_support_format_iso9660.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_support_format_iso9660.c' object='libarchive/test-archive_read_support_format_iso9660.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_read_support_format_lha.obj `if test -f 'libarchive/archive_read_support_format_lha.c'; then $(CYGPATH_W) 'libarchive/archive_read_support_format_lha.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_support_format_lha.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_read_support_format_iso9660.obj `if test -f 'libarchive/archive_read_support_format_iso9660.c'; then $(CYGPATH_W) 'libarchive/archive_read_support_format_iso9660.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_support_format_iso9660.c'; fi` -libarchive/libarchive_test-archive_read_support_format_mtree.o: libarchive/archive_read_support_format_mtree.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_read_support_format_mtree.o -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_read_support_format_mtree.Tpo -c -o libarchive/libarchive_test-archive_read_support_format_mtree.o `test -f 'libarchive/archive_read_support_format_mtree.c' || echo '$(srcdir)/'`libarchive/archive_read_support_format_mtree.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_read_support_format_mtree.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_read_support_format_mtree.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_support_format_mtree.c' object='libarchive/libarchive_test-archive_read_support_format_mtree.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_read_support_format_lha.o: libarchive/archive_read_support_format_lha.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_read_support_format_lha.o -MD -MP -MF libarchive/$(DEPDIR)/test-archive_read_support_format_lha.Tpo -c -o libarchive/test-archive_read_support_format_lha.o `test -f 'libarchive/archive_read_support_format_lha.c' || echo '$(srcdir)/'`libarchive/archive_read_support_format_lha.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_read_support_format_lha.Tpo libarchive/$(DEPDIR)/test-archive_read_support_format_lha.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_support_format_lha.c' object='libarchive/test-archive_read_support_format_lha.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_read_support_format_mtree.o `test -f 'libarchive/archive_read_support_format_mtree.c' || echo '$(srcdir)/'`libarchive/archive_read_support_format_mtree.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_read_support_format_lha.o `test -f 'libarchive/archive_read_support_format_lha.c' || echo '$(srcdir)/'`libarchive/archive_read_support_format_lha.c -libarchive/libarchive_test-archive_read_support_format_mtree.obj: libarchive/archive_read_support_format_mtree.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_read_support_format_mtree.obj -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_read_support_format_mtree.Tpo -c -o libarchive/libarchive_test-archive_read_support_format_mtree.obj `if test -f 'libarchive/archive_read_support_format_mtree.c'; then $(CYGPATH_W) 'libarchive/archive_read_support_format_mtree.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_support_format_mtree.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_read_support_format_mtree.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_read_support_format_mtree.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_support_format_mtree.c' object='libarchive/libarchive_test-archive_read_support_format_mtree.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_read_support_format_lha.obj: libarchive/archive_read_support_format_lha.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_read_support_format_lha.obj -MD -MP -MF libarchive/$(DEPDIR)/test-archive_read_support_format_lha.Tpo -c -o libarchive/test-archive_read_support_format_lha.obj `if test -f 'libarchive/archive_read_support_format_lha.c'; then $(CYGPATH_W) 'libarchive/archive_read_support_format_lha.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_support_format_lha.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_read_support_format_lha.Tpo libarchive/$(DEPDIR)/test-archive_read_support_format_lha.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_support_format_lha.c' object='libarchive/test-archive_read_support_format_lha.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_read_support_format_mtree.obj `if test -f 'libarchive/archive_read_support_format_mtree.c'; then $(CYGPATH_W) 'libarchive/archive_read_support_format_mtree.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_support_format_mtree.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_read_support_format_lha.obj `if test -f 'libarchive/archive_read_support_format_lha.c'; then $(CYGPATH_W) 'libarchive/archive_read_support_format_lha.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_support_format_lha.c'; fi` -libarchive/libarchive_test-archive_read_support_format_rar.o: libarchive/archive_read_support_format_rar.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_read_support_format_rar.o -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_read_support_format_rar.Tpo -c -o libarchive/libarchive_test-archive_read_support_format_rar.o `test -f 'libarchive/archive_read_support_format_rar.c' || echo '$(srcdir)/'`libarchive/archive_read_support_format_rar.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_read_support_format_rar.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_read_support_format_rar.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_support_format_rar.c' object='libarchive/libarchive_test-archive_read_support_format_rar.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_read_support_format_mtree.o: libarchive/archive_read_support_format_mtree.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_read_support_format_mtree.o -MD -MP -MF libarchive/$(DEPDIR)/test-archive_read_support_format_mtree.Tpo -c -o libarchive/test-archive_read_support_format_mtree.o `test -f 'libarchive/archive_read_support_format_mtree.c' || echo '$(srcdir)/'`libarchive/archive_read_support_format_mtree.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_read_support_format_mtree.Tpo libarchive/$(DEPDIR)/test-archive_read_support_format_mtree.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_support_format_mtree.c' object='libarchive/test-archive_read_support_format_mtree.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_read_support_format_rar.o `test -f 'libarchive/archive_read_support_format_rar.c' || echo '$(srcdir)/'`libarchive/archive_read_support_format_rar.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_read_support_format_mtree.o `test -f 'libarchive/archive_read_support_format_mtree.c' || echo '$(srcdir)/'`libarchive/archive_read_support_format_mtree.c -libarchive/libarchive_test-archive_read_support_format_rar.obj: libarchive/archive_read_support_format_rar.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_read_support_format_rar.obj -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_read_support_format_rar.Tpo -c -o libarchive/libarchive_test-archive_read_support_format_rar.obj `if test -f 'libarchive/archive_read_support_format_rar.c'; then $(CYGPATH_W) 'libarchive/archive_read_support_format_rar.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_support_format_rar.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_read_support_format_rar.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_read_support_format_rar.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_support_format_rar.c' object='libarchive/libarchive_test-archive_read_support_format_rar.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_read_support_format_mtree.obj: libarchive/archive_read_support_format_mtree.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_read_support_format_mtree.obj -MD -MP -MF libarchive/$(DEPDIR)/test-archive_read_support_format_mtree.Tpo -c -o libarchive/test-archive_read_support_format_mtree.obj `if test -f 'libarchive/archive_read_support_format_mtree.c'; then $(CYGPATH_W) 'libarchive/archive_read_support_format_mtree.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_support_format_mtree.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_read_support_format_mtree.Tpo libarchive/$(DEPDIR)/test-archive_read_support_format_mtree.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_support_format_mtree.c' object='libarchive/test-archive_read_support_format_mtree.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_read_support_format_rar.obj `if test -f 'libarchive/archive_read_support_format_rar.c'; then $(CYGPATH_W) 'libarchive/archive_read_support_format_rar.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_support_format_rar.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_read_support_format_mtree.obj `if test -f 'libarchive/archive_read_support_format_mtree.c'; then $(CYGPATH_W) 'libarchive/archive_read_support_format_mtree.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_support_format_mtree.c'; fi` -libarchive/libarchive_test-archive_read_support_format_rar5.o: libarchive/archive_read_support_format_rar5.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_read_support_format_rar5.o -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_read_support_format_rar5.Tpo -c -o libarchive/libarchive_test-archive_read_support_format_rar5.o `test -f 'libarchive/archive_read_support_format_rar5.c' || echo '$(srcdir)/'`libarchive/archive_read_support_format_rar5.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_read_support_format_rar5.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_read_support_format_rar5.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_support_format_rar5.c' object='libarchive/libarchive_test-archive_read_support_format_rar5.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_read_support_format_rar.o: libarchive/archive_read_support_format_rar.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_read_support_format_rar.o -MD -MP -MF libarchive/$(DEPDIR)/test-archive_read_support_format_rar.Tpo -c -o libarchive/test-archive_read_support_format_rar.o `test -f 'libarchive/archive_read_support_format_rar.c' || echo '$(srcdir)/'`libarchive/archive_read_support_format_rar.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_read_support_format_rar.Tpo libarchive/$(DEPDIR)/test-archive_read_support_format_rar.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_support_format_rar.c' object='libarchive/test-archive_read_support_format_rar.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_read_support_format_rar5.o `test -f 'libarchive/archive_read_support_format_rar5.c' || echo '$(srcdir)/'`libarchive/archive_read_support_format_rar5.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_read_support_format_rar.o `test -f 'libarchive/archive_read_support_format_rar.c' || echo '$(srcdir)/'`libarchive/archive_read_support_format_rar.c -libarchive/libarchive_test-archive_read_support_format_rar5.obj: libarchive/archive_read_support_format_rar5.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_read_support_format_rar5.obj -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_read_support_format_rar5.Tpo -c -o libarchive/libarchive_test-archive_read_support_format_rar5.obj `if test -f 'libarchive/archive_read_support_format_rar5.c'; then $(CYGPATH_W) 'libarchive/archive_read_support_format_rar5.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_support_format_rar5.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_read_support_format_rar5.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_read_support_format_rar5.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_support_format_rar5.c' object='libarchive/libarchive_test-archive_read_support_format_rar5.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_read_support_format_rar.obj: libarchive/archive_read_support_format_rar.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_read_support_format_rar.obj -MD -MP -MF libarchive/$(DEPDIR)/test-archive_read_support_format_rar.Tpo -c -o libarchive/test-archive_read_support_format_rar.obj `if test -f 'libarchive/archive_read_support_format_rar.c'; then $(CYGPATH_W) 'libarchive/archive_read_support_format_rar.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_support_format_rar.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_read_support_format_rar.Tpo libarchive/$(DEPDIR)/test-archive_read_support_format_rar.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_support_format_rar.c' object='libarchive/test-archive_read_support_format_rar.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_read_support_format_rar5.obj `if test -f 'libarchive/archive_read_support_format_rar5.c'; then $(CYGPATH_W) 'libarchive/archive_read_support_format_rar5.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_support_format_rar5.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_read_support_format_rar.obj `if test -f 'libarchive/archive_read_support_format_rar.c'; then $(CYGPATH_W) 'libarchive/archive_read_support_format_rar.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_support_format_rar.c'; fi` -libarchive/libarchive_test-archive_read_support_format_raw.o: libarchive/archive_read_support_format_raw.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_read_support_format_raw.o -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_read_support_format_raw.Tpo -c -o libarchive/libarchive_test-archive_read_support_format_raw.o `test -f 'libarchive/archive_read_support_format_raw.c' || echo '$(srcdir)/'`libarchive/archive_read_support_format_raw.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_read_support_format_raw.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_read_support_format_raw.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_support_format_raw.c' object='libarchive/libarchive_test-archive_read_support_format_raw.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_read_support_format_rar5.o: libarchive/archive_read_support_format_rar5.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_read_support_format_rar5.o -MD -MP -MF libarchive/$(DEPDIR)/test-archive_read_support_format_rar5.Tpo -c -o libarchive/test-archive_read_support_format_rar5.o `test -f 'libarchive/archive_read_support_format_rar5.c' || echo '$(srcdir)/'`libarchive/archive_read_support_format_rar5.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_read_support_format_rar5.Tpo libarchive/$(DEPDIR)/test-archive_read_support_format_rar5.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_support_format_rar5.c' object='libarchive/test-archive_read_support_format_rar5.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_read_support_format_raw.o `test -f 'libarchive/archive_read_support_format_raw.c' || echo '$(srcdir)/'`libarchive/archive_read_support_format_raw.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_read_support_format_rar5.o `test -f 'libarchive/archive_read_support_format_rar5.c' || echo '$(srcdir)/'`libarchive/archive_read_support_format_rar5.c -libarchive/libarchive_test-archive_read_support_format_raw.obj: libarchive/archive_read_support_format_raw.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_read_support_format_raw.obj -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_read_support_format_raw.Tpo -c -o libarchive/libarchive_test-archive_read_support_format_raw.obj `if test -f 'libarchive/archive_read_support_format_raw.c'; then $(CYGPATH_W) 'libarchive/archive_read_support_format_raw.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_support_format_raw.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_read_support_format_raw.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_read_support_format_raw.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_support_format_raw.c' object='libarchive/libarchive_test-archive_read_support_format_raw.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_read_support_format_rar5.obj: libarchive/archive_read_support_format_rar5.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_read_support_format_rar5.obj -MD -MP -MF libarchive/$(DEPDIR)/test-archive_read_support_format_rar5.Tpo -c -o libarchive/test-archive_read_support_format_rar5.obj `if test -f 'libarchive/archive_read_support_format_rar5.c'; then $(CYGPATH_W) 'libarchive/archive_read_support_format_rar5.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_support_format_rar5.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_read_support_format_rar5.Tpo libarchive/$(DEPDIR)/test-archive_read_support_format_rar5.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_support_format_rar5.c' object='libarchive/test-archive_read_support_format_rar5.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_read_support_format_raw.obj `if test -f 'libarchive/archive_read_support_format_raw.c'; then $(CYGPATH_W) 'libarchive/archive_read_support_format_raw.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_support_format_raw.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_read_support_format_rar5.obj `if test -f 'libarchive/archive_read_support_format_rar5.c'; then $(CYGPATH_W) 'libarchive/archive_read_support_format_rar5.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_support_format_rar5.c'; fi` -libarchive/libarchive_test-archive_read_support_format_tar.o: libarchive/archive_read_support_format_tar.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_read_support_format_tar.o -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_read_support_format_tar.Tpo -c -o libarchive/libarchive_test-archive_read_support_format_tar.o `test -f 'libarchive/archive_read_support_format_tar.c' || echo '$(srcdir)/'`libarchive/archive_read_support_format_tar.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_read_support_format_tar.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_read_support_format_tar.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_support_format_tar.c' object='libarchive/libarchive_test-archive_read_support_format_tar.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_read_support_format_raw.o: libarchive/archive_read_support_format_raw.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_read_support_format_raw.o -MD -MP -MF libarchive/$(DEPDIR)/test-archive_read_support_format_raw.Tpo -c -o libarchive/test-archive_read_support_format_raw.o `test -f 'libarchive/archive_read_support_format_raw.c' || echo '$(srcdir)/'`libarchive/archive_read_support_format_raw.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_read_support_format_raw.Tpo libarchive/$(DEPDIR)/test-archive_read_support_format_raw.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_support_format_raw.c' object='libarchive/test-archive_read_support_format_raw.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_read_support_format_tar.o `test -f 'libarchive/archive_read_support_format_tar.c' || echo '$(srcdir)/'`libarchive/archive_read_support_format_tar.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_read_support_format_raw.o `test -f 'libarchive/archive_read_support_format_raw.c' || echo '$(srcdir)/'`libarchive/archive_read_support_format_raw.c -libarchive/libarchive_test-archive_read_support_format_tar.obj: libarchive/archive_read_support_format_tar.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_read_support_format_tar.obj -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_read_support_format_tar.Tpo -c -o libarchive/libarchive_test-archive_read_support_format_tar.obj `if test -f 'libarchive/archive_read_support_format_tar.c'; then $(CYGPATH_W) 'libarchive/archive_read_support_format_tar.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_support_format_tar.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_read_support_format_tar.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_read_support_format_tar.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_support_format_tar.c' object='libarchive/libarchive_test-archive_read_support_format_tar.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_read_support_format_raw.obj: libarchive/archive_read_support_format_raw.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_read_support_format_raw.obj -MD -MP -MF libarchive/$(DEPDIR)/test-archive_read_support_format_raw.Tpo -c -o libarchive/test-archive_read_support_format_raw.obj `if test -f 'libarchive/archive_read_support_format_raw.c'; then $(CYGPATH_W) 'libarchive/archive_read_support_format_raw.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_support_format_raw.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_read_support_format_raw.Tpo libarchive/$(DEPDIR)/test-archive_read_support_format_raw.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_support_format_raw.c' object='libarchive/test-archive_read_support_format_raw.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_read_support_format_tar.obj `if test -f 'libarchive/archive_read_support_format_tar.c'; then $(CYGPATH_W) 'libarchive/archive_read_support_format_tar.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_support_format_tar.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_read_support_format_raw.obj `if test -f 'libarchive/archive_read_support_format_raw.c'; then $(CYGPATH_W) 'libarchive/archive_read_support_format_raw.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_support_format_raw.c'; fi` -libarchive/libarchive_test-archive_read_support_format_warc.o: libarchive/archive_read_support_format_warc.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_read_support_format_warc.o -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_read_support_format_warc.Tpo -c -o libarchive/libarchive_test-archive_read_support_format_warc.o `test -f 'libarchive/archive_read_support_format_warc.c' || echo '$(srcdir)/'`libarchive/archive_read_support_format_warc.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_read_support_format_warc.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_read_support_format_warc.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_support_format_warc.c' object='libarchive/libarchive_test-archive_read_support_format_warc.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_read_support_format_tar.o: libarchive/archive_read_support_format_tar.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_read_support_format_tar.o -MD -MP -MF libarchive/$(DEPDIR)/test-archive_read_support_format_tar.Tpo -c -o libarchive/test-archive_read_support_format_tar.o `test -f 'libarchive/archive_read_support_format_tar.c' || echo '$(srcdir)/'`libarchive/archive_read_support_format_tar.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_read_support_format_tar.Tpo libarchive/$(DEPDIR)/test-archive_read_support_format_tar.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_support_format_tar.c' object='libarchive/test-archive_read_support_format_tar.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_read_support_format_warc.o `test -f 'libarchive/archive_read_support_format_warc.c' || echo '$(srcdir)/'`libarchive/archive_read_support_format_warc.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_read_support_format_tar.o `test -f 'libarchive/archive_read_support_format_tar.c' || echo '$(srcdir)/'`libarchive/archive_read_support_format_tar.c -libarchive/libarchive_test-archive_read_support_format_warc.obj: libarchive/archive_read_support_format_warc.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_read_support_format_warc.obj -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_read_support_format_warc.Tpo -c -o libarchive/libarchive_test-archive_read_support_format_warc.obj `if test -f 'libarchive/archive_read_support_format_warc.c'; then $(CYGPATH_W) 'libarchive/archive_read_support_format_warc.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_support_format_warc.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_read_support_format_warc.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_read_support_format_warc.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_support_format_warc.c' object='libarchive/libarchive_test-archive_read_support_format_warc.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_read_support_format_tar.obj: libarchive/archive_read_support_format_tar.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_read_support_format_tar.obj -MD -MP -MF libarchive/$(DEPDIR)/test-archive_read_support_format_tar.Tpo -c -o libarchive/test-archive_read_support_format_tar.obj `if test -f 'libarchive/archive_read_support_format_tar.c'; then $(CYGPATH_W) 'libarchive/archive_read_support_format_tar.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_support_format_tar.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_read_support_format_tar.Tpo libarchive/$(DEPDIR)/test-archive_read_support_format_tar.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_support_format_tar.c' object='libarchive/test-archive_read_support_format_tar.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_read_support_format_warc.obj `if test -f 'libarchive/archive_read_support_format_warc.c'; then $(CYGPATH_W) 'libarchive/archive_read_support_format_warc.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_support_format_warc.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_read_support_format_tar.obj `if test -f 'libarchive/archive_read_support_format_tar.c'; then $(CYGPATH_W) 'libarchive/archive_read_support_format_tar.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_support_format_tar.c'; fi` -libarchive/libarchive_test-archive_read_support_format_xar.o: libarchive/archive_read_support_format_xar.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_read_support_format_xar.o -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_read_support_format_xar.Tpo -c -o libarchive/libarchive_test-archive_read_support_format_xar.o `test -f 'libarchive/archive_read_support_format_xar.c' || echo '$(srcdir)/'`libarchive/archive_read_support_format_xar.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_read_support_format_xar.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_read_support_format_xar.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_support_format_xar.c' object='libarchive/libarchive_test-archive_read_support_format_xar.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_read_support_format_warc.o: libarchive/archive_read_support_format_warc.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_read_support_format_warc.o -MD -MP -MF libarchive/$(DEPDIR)/test-archive_read_support_format_warc.Tpo -c -o libarchive/test-archive_read_support_format_warc.o `test -f 'libarchive/archive_read_support_format_warc.c' || echo '$(srcdir)/'`libarchive/archive_read_support_format_warc.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_read_support_format_warc.Tpo libarchive/$(DEPDIR)/test-archive_read_support_format_warc.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_support_format_warc.c' object='libarchive/test-archive_read_support_format_warc.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_read_support_format_xar.o `test -f 'libarchive/archive_read_support_format_xar.c' || echo '$(srcdir)/'`libarchive/archive_read_support_format_xar.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_read_support_format_warc.o `test -f 'libarchive/archive_read_support_format_warc.c' || echo '$(srcdir)/'`libarchive/archive_read_support_format_warc.c -libarchive/libarchive_test-archive_read_support_format_xar.obj: libarchive/archive_read_support_format_xar.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_read_support_format_xar.obj -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_read_support_format_xar.Tpo -c -o libarchive/libarchive_test-archive_read_support_format_xar.obj `if test -f 'libarchive/archive_read_support_format_xar.c'; then $(CYGPATH_W) 'libarchive/archive_read_support_format_xar.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_support_format_xar.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_read_support_format_xar.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_read_support_format_xar.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_support_format_xar.c' object='libarchive/libarchive_test-archive_read_support_format_xar.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_read_support_format_warc.obj: libarchive/archive_read_support_format_warc.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_read_support_format_warc.obj -MD -MP -MF libarchive/$(DEPDIR)/test-archive_read_support_format_warc.Tpo -c -o libarchive/test-archive_read_support_format_warc.obj `if test -f 'libarchive/archive_read_support_format_warc.c'; then $(CYGPATH_W) 'libarchive/archive_read_support_format_warc.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_support_format_warc.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_read_support_format_warc.Tpo libarchive/$(DEPDIR)/test-archive_read_support_format_warc.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_support_format_warc.c' object='libarchive/test-archive_read_support_format_warc.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_read_support_format_xar.obj `if test -f 'libarchive/archive_read_support_format_xar.c'; then $(CYGPATH_W) 'libarchive/archive_read_support_format_xar.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_support_format_xar.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_read_support_format_warc.obj `if test -f 'libarchive/archive_read_support_format_warc.c'; then $(CYGPATH_W) 'libarchive/archive_read_support_format_warc.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_support_format_warc.c'; fi` -libarchive/libarchive_test-archive_read_support_format_zip.o: libarchive/archive_read_support_format_zip.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_read_support_format_zip.o -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_read_support_format_zip.Tpo -c -o libarchive/libarchive_test-archive_read_support_format_zip.o `test -f 'libarchive/archive_read_support_format_zip.c' || echo '$(srcdir)/'`libarchive/archive_read_support_format_zip.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_read_support_format_zip.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_read_support_format_zip.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_support_format_zip.c' object='libarchive/libarchive_test-archive_read_support_format_zip.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_read_support_format_xar.o: libarchive/archive_read_support_format_xar.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_read_support_format_xar.o -MD -MP -MF libarchive/$(DEPDIR)/test-archive_read_support_format_xar.Tpo -c -o libarchive/test-archive_read_support_format_xar.o `test -f 'libarchive/archive_read_support_format_xar.c' || echo '$(srcdir)/'`libarchive/archive_read_support_format_xar.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_read_support_format_xar.Tpo libarchive/$(DEPDIR)/test-archive_read_support_format_xar.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_support_format_xar.c' object='libarchive/test-archive_read_support_format_xar.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_read_support_format_zip.o `test -f 'libarchive/archive_read_support_format_zip.c' || echo '$(srcdir)/'`libarchive/archive_read_support_format_zip.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_read_support_format_xar.o `test -f 'libarchive/archive_read_support_format_xar.c' || echo '$(srcdir)/'`libarchive/archive_read_support_format_xar.c -libarchive/libarchive_test-archive_read_support_format_zip.obj: libarchive/archive_read_support_format_zip.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_read_support_format_zip.obj -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_read_support_format_zip.Tpo -c -o libarchive/libarchive_test-archive_read_support_format_zip.obj `if test -f 'libarchive/archive_read_support_format_zip.c'; then $(CYGPATH_W) 'libarchive/archive_read_support_format_zip.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_support_format_zip.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_read_support_format_zip.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_read_support_format_zip.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_support_format_zip.c' object='libarchive/libarchive_test-archive_read_support_format_zip.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_read_support_format_xar.obj: libarchive/archive_read_support_format_xar.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_read_support_format_xar.obj -MD -MP -MF libarchive/$(DEPDIR)/test-archive_read_support_format_xar.Tpo -c -o libarchive/test-archive_read_support_format_xar.obj `if test -f 'libarchive/archive_read_support_format_xar.c'; then $(CYGPATH_W) 'libarchive/archive_read_support_format_xar.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_support_format_xar.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_read_support_format_xar.Tpo libarchive/$(DEPDIR)/test-archive_read_support_format_xar.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_support_format_xar.c' object='libarchive/test-archive_read_support_format_xar.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_read_support_format_zip.obj `if test -f 'libarchive/archive_read_support_format_zip.c'; then $(CYGPATH_W) 'libarchive/archive_read_support_format_zip.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_support_format_zip.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_read_support_format_xar.obj `if test -f 'libarchive/archive_read_support_format_xar.c'; then $(CYGPATH_W) 'libarchive/archive_read_support_format_xar.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_support_format_xar.c'; fi` -libarchive/libarchive_test-archive_string.o: libarchive/archive_string.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_string.o -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_string.Tpo -c -o libarchive/libarchive_test-archive_string.o `test -f 'libarchive/archive_string.c' || echo '$(srcdir)/'`libarchive/archive_string.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_string.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_string.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_string.c' object='libarchive/libarchive_test-archive_string.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_read_support_format_zip.o: libarchive/archive_read_support_format_zip.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_read_support_format_zip.o -MD -MP -MF libarchive/$(DEPDIR)/test-archive_read_support_format_zip.Tpo -c -o libarchive/test-archive_read_support_format_zip.o `test -f 'libarchive/archive_read_support_format_zip.c' || echo '$(srcdir)/'`libarchive/archive_read_support_format_zip.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_read_support_format_zip.Tpo libarchive/$(DEPDIR)/test-archive_read_support_format_zip.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_support_format_zip.c' object='libarchive/test-archive_read_support_format_zip.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_string.o `test -f 'libarchive/archive_string.c' || echo '$(srcdir)/'`libarchive/archive_string.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_read_support_format_zip.o `test -f 'libarchive/archive_read_support_format_zip.c' || echo '$(srcdir)/'`libarchive/archive_read_support_format_zip.c -libarchive/libarchive_test-archive_string.obj: libarchive/archive_string.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_string.obj -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_string.Tpo -c -o libarchive/libarchive_test-archive_string.obj `if test -f 'libarchive/archive_string.c'; then $(CYGPATH_W) 'libarchive/archive_string.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_string.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_string.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_string.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_string.c' object='libarchive/libarchive_test-archive_string.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_read_support_format_zip.obj: libarchive/archive_read_support_format_zip.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_read_support_format_zip.obj -MD -MP -MF libarchive/$(DEPDIR)/test-archive_read_support_format_zip.Tpo -c -o libarchive/test-archive_read_support_format_zip.obj `if test -f 'libarchive/archive_read_support_format_zip.c'; then $(CYGPATH_W) 'libarchive/archive_read_support_format_zip.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_support_format_zip.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_read_support_format_zip.Tpo libarchive/$(DEPDIR)/test-archive_read_support_format_zip.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_support_format_zip.c' object='libarchive/test-archive_read_support_format_zip.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_string.obj `if test -f 'libarchive/archive_string.c'; then $(CYGPATH_W) 'libarchive/archive_string.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_string.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_read_support_format_zip.obj `if test -f 'libarchive/archive_read_support_format_zip.c'; then $(CYGPATH_W) 'libarchive/archive_read_support_format_zip.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_support_format_zip.c'; fi` -libarchive/libarchive_test-archive_string_sprintf.o: libarchive/archive_string_sprintf.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_string_sprintf.o -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_string_sprintf.Tpo -c -o libarchive/libarchive_test-archive_string_sprintf.o `test -f 'libarchive/archive_string_sprintf.c' || echo '$(srcdir)/'`libarchive/archive_string_sprintf.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_string_sprintf.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_string_sprintf.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_string_sprintf.c' object='libarchive/libarchive_test-archive_string_sprintf.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_string.o: libarchive/archive_string.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_string.o -MD -MP -MF libarchive/$(DEPDIR)/test-archive_string.Tpo -c -o libarchive/test-archive_string.o `test -f 'libarchive/archive_string.c' || echo '$(srcdir)/'`libarchive/archive_string.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_string.Tpo libarchive/$(DEPDIR)/test-archive_string.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_string.c' object='libarchive/test-archive_string.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_string_sprintf.o `test -f 'libarchive/archive_string_sprintf.c' || echo '$(srcdir)/'`libarchive/archive_string_sprintf.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_string.o `test -f 'libarchive/archive_string.c' || echo '$(srcdir)/'`libarchive/archive_string.c -libarchive/libarchive_test-archive_string_sprintf.obj: libarchive/archive_string_sprintf.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_string_sprintf.obj -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_string_sprintf.Tpo -c -o libarchive/libarchive_test-archive_string_sprintf.obj `if test -f 'libarchive/archive_string_sprintf.c'; then $(CYGPATH_W) 'libarchive/archive_string_sprintf.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_string_sprintf.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_string_sprintf.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_string_sprintf.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_string_sprintf.c' object='libarchive/libarchive_test-archive_string_sprintf.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_string.obj: libarchive/archive_string.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_string.obj -MD -MP -MF libarchive/$(DEPDIR)/test-archive_string.Tpo -c -o libarchive/test-archive_string.obj `if test -f 'libarchive/archive_string.c'; then $(CYGPATH_W) 'libarchive/archive_string.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_string.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_string.Tpo libarchive/$(DEPDIR)/test-archive_string.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_string.c' object='libarchive/test-archive_string.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_string_sprintf.obj `if test -f 'libarchive/archive_string_sprintf.c'; then $(CYGPATH_W) 'libarchive/archive_string_sprintf.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_string_sprintf.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_string.obj `if test -f 'libarchive/archive_string.c'; then $(CYGPATH_W) 'libarchive/archive_string.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_string.c'; fi` -libarchive/libarchive_test-archive_util.o: libarchive/archive_util.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_util.o -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_util.Tpo -c -o libarchive/libarchive_test-archive_util.o `test -f 'libarchive/archive_util.c' || echo '$(srcdir)/'`libarchive/archive_util.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_util.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_util.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_util.c' object='libarchive/libarchive_test-archive_util.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_string_sprintf.o: libarchive/archive_string_sprintf.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_string_sprintf.o -MD -MP -MF libarchive/$(DEPDIR)/test-archive_string_sprintf.Tpo -c -o libarchive/test-archive_string_sprintf.o `test -f 'libarchive/archive_string_sprintf.c' || echo '$(srcdir)/'`libarchive/archive_string_sprintf.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_string_sprintf.Tpo libarchive/$(DEPDIR)/test-archive_string_sprintf.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_string_sprintf.c' object='libarchive/test-archive_string_sprintf.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_util.o `test -f 'libarchive/archive_util.c' || echo '$(srcdir)/'`libarchive/archive_util.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_string_sprintf.o `test -f 'libarchive/archive_string_sprintf.c' || echo '$(srcdir)/'`libarchive/archive_string_sprintf.c -libarchive/libarchive_test-archive_util.obj: libarchive/archive_util.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_util.obj -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_util.Tpo -c -o libarchive/libarchive_test-archive_util.obj `if test -f 'libarchive/archive_util.c'; then $(CYGPATH_W) 'libarchive/archive_util.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_util.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_util.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_util.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_util.c' object='libarchive/libarchive_test-archive_util.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_string_sprintf.obj: libarchive/archive_string_sprintf.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_string_sprintf.obj -MD -MP -MF libarchive/$(DEPDIR)/test-archive_string_sprintf.Tpo -c -o libarchive/test-archive_string_sprintf.obj `if test -f 'libarchive/archive_string_sprintf.c'; then $(CYGPATH_W) 'libarchive/archive_string_sprintf.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_string_sprintf.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_string_sprintf.Tpo libarchive/$(DEPDIR)/test-archive_string_sprintf.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_string_sprintf.c' object='libarchive/test-archive_string_sprintf.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_util.obj `if test -f 'libarchive/archive_util.c'; then $(CYGPATH_W) 'libarchive/archive_util.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_util.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_string_sprintf.obj `if test -f 'libarchive/archive_string_sprintf.c'; then $(CYGPATH_W) 'libarchive/archive_string_sprintf.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_string_sprintf.c'; fi` -libarchive/libarchive_test-archive_version_details.o: libarchive/archive_version_details.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_version_details.o -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_version_details.Tpo -c -o libarchive/libarchive_test-archive_version_details.o `test -f 'libarchive/archive_version_details.c' || echo '$(srcdir)/'`libarchive/archive_version_details.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_version_details.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_version_details.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_version_details.c' object='libarchive/libarchive_test-archive_version_details.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_util.o: libarchive/archive_util.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_util.o -MD -MP -MF libarchive/$(DEPDIR)/test-archive_util.Tpo -c -o libarchive/test-archive_util.o `test -f 'libarchive/archive_util.c' || echo '$(srcdir)/'`libarchive/archive_util.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_util.Tpo libarchive/$(DEPDIR)/test-archive_util.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_util.c' object='libarchive/test-archive_util.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_version_details.o `test -f 'libarchive/archive_version_details.c' || echo '$(srcdir)/'`libarchive/archive_version_details.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_util.o `test -f 'libarchive/archive_util.c' || echo '$(srcdir)/'`libarchive/archive_util.c -libarchive/libarchive_test-archive_version_details.obj: libarchive/archive_version_details.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_version_details.obj -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_version_details.Tpo -c -o libarchive/libarchive_test-archive_version_details.obj `if test -f 'libarchive/archive_version_details.c'; then $(CYGPATH_W) 'libarchive/archive_version_details.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_version_details.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_version_details.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_version_details.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_version_details.c' object='libarchive/libarchive_test-archive_version_details.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_util.obj: libarchive/archive_util.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_util.obj -MD -MP -MF libarchive/$(DEPDIR)/test-archive_util.Tpo -c -o libarchive/test-archive_util.obj `if test -f 'libarchive/archive_util.c'; then $(CYGPATH_W) 'libarchive/archive_util.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_util.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_util.Tpo libarchive/$(DEPDIR)/test-archive_util.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_util.c' object='libarchive/test-archive_util.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_version_details.obj `if test -f 'libarchive/archive_version_details.c'; then $(CYGPATH_W) 'libarchive/archive_version_details.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_version_details.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_util.obj `if test -f 'libarchive/archive_util.c'; then $(CYGPATH_W) 'libarchive/archive_util.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_util.c'; fi` -libarchive/libarchive_test-archive_virtual.o: libarchive/archive_virtual.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_virtual.o -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_virtual.Tpo -c -o libarchive/libarchive_test-archive_virtual.o `test -f 'libarchive/archive_virtual.c' || echo '$(srcdir)/'`libarchive/archive_virtual.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_virtual.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_virtual.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_virtual.c' object='libarchive/libarchive_test-archive_virtual.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_version_details.o: libarchive/archive_version_details.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_version_details.o -MD -MP -MF libarchive/$(DEPDIR)/test-archive_version_details.Tpo -c -o libarchive/test-archive_version_details.o `test -f 'libarchive/archive_version_details.c' || echo '$(srcdir)/'`libarchive/archive_version_details.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_version_details.Tpo libarchive/$(DEPDIR)/test-archive_version_details.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_version_details.c' object='libarchive/test-archive_version_details.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_virtual.o `test -f 'libarchive/archive_virtual.c' || echo '$(srcdir)/'`libarchive/archive_virtual.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_version_details.o `test -f 'libarchive/archive_version_details.c' || echo '$(srcdir)/'`libarchive/archive_version_details.c -libarchive/libarchive_test-archive_virtual.obj: libarchive/archive_virtual.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_virtual.obj -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_virtual.Tpo -c -o libarchive/libarchive_test-archive_virtual.obj `if test -f 'libarchive/archive_virtual.c'; then $(CYGPATH_W) 'libarchive/archive_virtual.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_virtual.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_virtual.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_virtual.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_virtual.c' object='libarchive/libarchive_test-archive_virtual.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_version_details.obj: libarchive/archive_version_details.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_version_details.obj -MD -MP -MF libarchive/$(DEPDIR)/test-archive_version_details.Tpo -c -o libarchive/test-archive_version_details.obj `if test -f 'libarchive/archive_version_details.c'; then $(CYGPATH_W) 'libarchive/archive_version_details.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_version_details.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_version_details.Tpo libarchive/$(DEPDIR)/test-archive_version_details.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_version_details.c' object='libarchive/test-archive_version_details.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_virtual.obj `if test -f 'libarchive/archive_virtual.c'; then $(CYGPATH_W) 'libarchive/archive_virtual.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_virtual.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_version_details.obj `if test -f 'libarchive/archive_version_details.c'; then $(CYGPATH_W) 'libarchive/archive_version_details.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_version_details.c'; fi` -libarchive/libarchive_test-archive_write.o: libarchive/archive_write.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_write.o -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_write.Tpo -c -o libarchive/libarchive_test-archive_write.o `test -f 'libarchive/archive_write.c' || echo '$(srcdir)/'`libarchive/archive_write.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_write.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_write.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write.c' object='libarchive/libarchive_test-archive_write.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_virtual.o: libarchive/archive_virtual.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_virtual.o -MD -MP -MF libarchive/$(DEPDIR)/test-archive_virtual.Tpo -c -o libarchive/test-archive_virtual.o `test -f 'libarchive/archive_virtual.c' || echo '$(srcdir)/'`libarchive/archive_virtual.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_virtual.Tpo libarchive/$(DEPDIR)/test-archive_virtual.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_virtual.c' object='libarchive/test-archive_virtual.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_write.o `test -f 'libarchive/archive_write.c' || echo '$(srcdir)/'`libarchive/archive_write.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_virtual.o `test -f 'libarchive/archive_virtual.c' || echo '$(srcdir)/'`libarchive/archive_virtual.c -libarchive/libarchive_test-archive_write.obj: libarchive/archive_write.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_write.obj -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_write.Tpo -c -o libarchive/libarchive_test-archive_write.obj `if test -f 'libarchive/archive_write.c'; then $(CYGPATH_W) 'libarchive/archive_write.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_write.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_write.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write.c' object='libarchive/libarchive_test-archive_write.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_virtual.obj: libarchive/archive_virtual.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_virtual.obj -MD -MP -MF libarchive/$(DEPDIR)/test-archive_virtual.Tpo -c -o libarchive/test-archive_virtual.obj `if test -f 'libarchive/archive_virtual.c'; then $(CYGPATH_W) 'libarchive/archive_virtual.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_virtual.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_virtual.Tpo libarchive/$(DEPDIR)/test-archive_virtual.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_virtual.c' object='libarchive/test-archive_virtual.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_write.obj `if test -f 'libarchive/archive_write.c'; then $(CYGPATH_W) 'libarchive/archive_write.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_virtual.obj `if test -f 'libarchive/archive_virtual.c'; then $(CYGPATH_W) 'libarchive/archive_virtual.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_virtual.c'; fi` -libarchive/libarchive_test-archive_write_disk_posix.o: libarchive/archive_write_disk_posix.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_write_disk_posix.o -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_write_disk_posix.Tpo -c -o libarchive/libarchive_test-archive_write_disk_posix.o `test -f 'libarchive/archive_write_disk_posix.c' || echo '$(srcdir)/'`libarchive/archive_write_disk_posix.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_write_disk_posix.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_write_disk_posix.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_disk_posix.c' object='libarchive/libarchive_test-archive_write_disk_posix.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_write.o: libarchive/archive_write.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_write.o -MD -MP -MF libarchive/$(DEPDIR)/test-archive_write.Tpo -c -o libarchive/test-archive_write.o `test -f 'libarchive/archive_write.c' || echo '$(srcdir)/'`libarchive/archive_write.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_write.Tpo libarchive/$(DEPDIR)/test-archive_write.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write.c' object='libarchive/test-archive_write.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_write_disk_posix.o `test -f 'libarchive/archive_write_disk_posix.c' || echo '$(srcdir)/'`libarchive/archive_write_disk_posix.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_write.o `test -f 'libarchive/archive_write.c' || echo '$(srcdir)/'`libarchive/archive_write.c -libarchive/libarchive_test-archive_write_disk_posix.obj: libarchive/archive_write_disk_posix.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_write_disk_posix.obj -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_write_disk_posix.Tpo -c -o libarchive/libarchive_test-archive_write_disk_posix.obj `if test -f 'libarchive/archive_write_disk_posix.c'; then $(CYGPATH_W) 'libarchive/archive_write_disk_posix.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_disk_posix.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_write_disk_posix.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_write_disk_posix.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_disk_posix.c' object='libarchive/libarchive_test-archive_write_disk_posix.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_write.obj: libarchive/archive_write.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_write.obj -MD -MP -MF libarchive/$(DEPDIR)/test-archive_write.Tpo -c -o libarchive/test-archive_write.obj `if test -f 'libarchive/archive_write.c'; then $(CYGPATH_W) 'libarchive/archive_write.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_write.Tpo libarchive/$(DEPDIR)/test-archive_write.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write.c' object='libarchive/test-archive_write.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_write_disk_posix.obj `if test -f 'libarchive/archive_write_disk_posix.c'; then $(CYGPATH_W) 'libarchive/archive_write_disk_posix.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_disk_posix.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_write.obj `if test -f 'libarchive/archive_write.c'; then $(CYGPATH_W) 'libarchive/archive_write.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write.c'; fi` -libarchive/libarchive_test-archive_write_disk_set_standard_lookup.o: libarchive/archive_write_disk_set_standard_lookup.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_write_disk_set_standard_lookup.o -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_write_disk_set_standard_lookup.Tpo -c -o libarchive/libarchive_test-archive_write_disk_set_standard_lookup.o `test -f 'libarchive/archive_write_disk_set_standard_lookup.c' || echo '$(srcdir)/'`libarchive/archive_write_disk_set_standard_lookup.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_write_disk_set_standard_lookup.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_write_disk_set_standard_lookup.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_disk_set_standard_lookup.c' object='libarchive/libarchive_test-archive_write_disk_set_standard_lookup.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_write_disk_posix.o: libarchive/archive_write_disk_posix.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_write_disk_posix.o -MD -MP -MF libarchive/$(DEPDIR)/test-archive_write_disk_posix.Tpo -c -o libarchive/test-archive_write_disk_posix.o `test -f 'libarchive/archive_write_disk_posix.c' || echo '$(srcdir)/'`libarchive/archive_write_disk_posix.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_write_disk_posix.Tpo libarchive/$(DEPDIR)/test-archive_write_disk_posix.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_disk_posix.c' object='libarchive/test-archive_write_disk_posix.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_write_disk_set_standard_lookup.o `test -f 'libarchive/archive_write_disk_set_standard_lookup.c' || echo '$(srcdir)/'`libarchive/archive_write_disk_set_standard_lookup.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_write_disk_posix.o `test -f 'libarchive/archive_write_disk_posix.c' || echo '$(srcdir)/'`libarchive/archive_write_disk_posix.c -libarchive/libarchive_test-archive_write_disk_set_standard_lookup.obj: libarchive/archive_write_disk_set_standard_lookup.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_write_disk_set_standard_lookup.obj -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_write_disk_set_standard_lookup.Tpo -c -o libarchive/libarchive_test-archive_write_disk_set_standard_lookup.obj `if test -f 'libarchive/archive_write_disk_set_standard_lookup.c'; then $(CYGPATH_W) 'libarchive/archive_write_disk_set_standard_lookup.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_disk_set_standard_lookup.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_write_disk_set_standard_lookup.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_write_disk_set_standard_lookup.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_disk_set_standard_lookup.c' object='libarchive/libarchive_test-archive_write_disk_set_standard_lookup.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_write_disk_posix.obj: libarchive/archive_write_disk_posix.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_write_disk_posix.obj -MD -MP -MF libarchive/$(DEPDIR)/test-archive_write_disk_posix.Tpo -c -o libarchive/test-archive_write_disk_posix.obj `if test -f 'libarchive/archive_write_disk_posix.c'; then $(CYGPATH_W) 'libarchive/archive_write_disk_posix.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_disk_posix.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_write_disk_posix.Tpo libarchive/$(DEPDIR)/test-archive_write_disk_posix.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_disk_posix.c' object='libarchive/test-archive_write_disk_posix.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_write_disk_set_standard_lookup.obj `if test -f 'libarchive/archive_write_disk_set_standard_lookup.c'; then $(CYGPATH_W) 'libarchive/archive_write_disk_set_standard_lookup.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_disk_set_standard_lookup.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_write_disk_posix.obj `if test -f 'libarchive/archive_write_disk_posix.c'; then $(CYGPATH_W) 'libarchive/archive_write_disk_posix.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_disk_posix.c'; fi` -libarchive/libarchive_test-archive_write_open_fd.o: libarchive/archive_write_open_fd.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_write_open_fd.o -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_write_open_fd.Tpo -c -o libarchive/libarchive_test-archive_write_open_fd.o `test -f 'libarchive/archive_write_open_fd.c' || echo '$(srcdir)/'`libarchive/archive_write_open_fd.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_write_open_fd.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_write_open_fd.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_open_fd.c' object='libarchive/libarchive_test-archive_write_open_fd.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_write_disk_set_standard_lookup.o: libarchive/archive_write_disk_set_standard_lookup.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_write_disk_set_standard_lookup.o -MD -MP -MF libarchive/$(DEPDIR)/test-archive_write_disk_set_standard_lookup.Tpo -c -o libarchive/test-archive_write_disk_set_standard_lookup.o `test -f 'libarchive/archive_write_disk_set_standard_lookup.c' || echo '$(srcdir)/'`libarchive/archive_write_disk_set_standard_lookup.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_write_disk_set_standard_lookup.Tpo libarchive/$(DEPDIR)/test-archive_write_disk_set_standard_lookup.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_disk_set_standard_lookup.c' object='libarchive/test-archive_write_disk_set_standard_lookup.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_write_open_fd.o `test -f 'libarchive/archive_write_open_fd.c' || echo '$(srcdir)/'`libarchive/archive_write_open_fd.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_write_disk_set_standard_lookup.o `test -f 'libarchive/archive_write_disk_set_standard_lookup.c' || echo '$(srcdir)/'`libarchive/archive_write_disk_set_standard_lookup.c -libarchive/libarchive_test-archive_write_open_fd.obj: libarchive/archive_write_open_fd.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_write_open_fd.obj -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_write_open_fd.Tpo -c -o libarchive/libarchive_test-archive_write_open_fd.obj `if test -f 'libarchive/archive_write_open_fd.c'; then $(CYGPATH_W) 'libarchive/archive_write_open_fd.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_open_fd.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_write_open_fd.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_write_open_fd.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_open_fd.c' object='libarchive/libarchive_test-archive_write_open_fd.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_write_disk_set_standard_lookup.obj: libarchive/archive_write_disk_set_standard_lookup.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_write_disk_set_standard_lookup.obj -MD -MP -MF libarchive/$(DEPDIR)/test-archive_write_disk_set_standard_lookup.Tpo -c -o libarchive/test-archive_write_disk_set_standard_lookup.obj `if test -f 'libarchive/archive_write_disk_set_standard_lookup.c'; then $(CYGPATH_W) 'libarchive/archive_write_disk_set_standard_lookup.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_disk_set_standard_lookup.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_write_disk_set_standard_lookup.Tpo libarchive/$(DEPDIR)/test-archive_write_disk_set_standard_lookup.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_disk_set_standard_lookup.c' object='libarchive/test-archive_write_disk_set_standard_lookup.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_write_open_fd.obj `if test -f 'libarchive/archive_write_open_fd.c'; then $(CYGPATH_W) 'libarchive/archive_write_open_fd.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_open_fd.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_write_disk_set_standard_lookup.obj `if test -f 'libarchive/archive_write_disk_set_standard_lookup.c'; then $(CYGPATH_W) 'libarchive/archive_write_disk_set_standard_lookup.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_disk_set_standard_lookup.c'; fi` -libarchive/libarchive_test-archive_write_open_file.o: libarchive/archive_write_open_file.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_write_open_file.o -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_write_open_file.Tpo -c -o libarchive/libarchive_test-archive_write_open_file.o `test -f 'libarchive/archive_write_open_file.c' || echo '$(srcdir)/'`libarchive/archive_write_open_file.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_write_open_file.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_write_open_file.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_open_file.c' object='libarchive/libarchive_test-archive_write_open_file.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_write_open_fd.o: libarchive/archive_write_open_fd.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_write_open_fd.o -MD -MP -MF libarchive/$(DEPDIR)/test-archive_write_open_fd.Tpo -c -o libarchive/test-archive_write_open_fd.o `test -f 'libarchive/archive_write_open_fd.c' || echo '$(srcdir)/'`libarchive/archive_write_open_fd.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_write_open_fd.Tpo libarchive/$(DEPDIR)/test-archive_write_open_fd.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_open_fd.c' object='libarchive/test-archive_write_open_fd.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_write_open_file.o `test -f 'libarchive/archive_write_open_file.c' || echo '$(srcdir)/'`libarchive/archive_write_open_file.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_write_open_fd.o `test -f 'libarchive/archive_write_open_fd.c' || echo '$(srcdir)/'`libarchive/archive_write_open_fd.c -libarchive/libarchive_test-archive_write_open_file.obj: libarchive/archive_write_open_file.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_write_open_file.obj -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_write_open_file.Tpo -c -o libarchive/libarchive_test-archive_write_open_file.obj `if test -f 'libarchive/archive_write_open_file.c'; then $(CYGPATH_W) 'libarchive/archive_write_open_file.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_open_file.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_write_open_file.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_write_open_file.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_open_file.c' object='libarchive/libarchive_test-archive_write_open_file.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_write_open_fd.obj: libarchive/archive_write_open_fd.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_write_open_fd.obj -MD -MP -MF libarchive/$(DEPDIR)/test-archive_write_open_fd.Tpo -c -o libarchive/test-archive_write_open_fd.obj `if test -f 'libarchive/archive_write_open_fd.c'; then $(CYGPATH_W) 'libarchive/archive_write_open_fd.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_open_fd.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_write_open_fd.Tpo libarchive/$(DEPDIR)/test-archive_write_open_fd.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_open_fd.c' object='libarchive/test-archive_write_open_fd.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_write_open_file.obj `if test -f 'libarchive/archive_write_open_file.c'; then $(CYGPATH_W) 'libarchive/archive_write_open_file.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_open_file.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_write_open_fd.obj `if test -f 'libarchive/archive_write_open_fd.c'; then $(CYGPATH_W) 'libarchive/archive_write_open_fd.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_open_fd.c'; fi` -libarchive/libarchive_test-archive_write_open_filename.o: libarchive/archive_write_open_filename.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_write_open_filename.o -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_write_open_filename.Tpo -c -o libarchive/libarchive_test-archive_write_open_filename.o `test -f 'libarchive/archive_write_open_filename.c' || echo '$(srcdir)/'`libarchive/archive_write_open_filename.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_write_open_filename.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_write_open_filename.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_open_filename.c' object='libarchive/libarchive_test-archive_write_open_filename.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_write_open_file.o: libarchive/archive_write_open_file.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_write_open_file.o -MD -MP -MF libarchive/$(DEPDIR)/test-archive_write_open_file.Tpo -c -o libarchive/test-archive_write_open_file.o `test -f 'libarchive/archive_write_open_file.c' || echo '$(srcdir)/'`libarchive/archive_write_open_file.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_write_open_file.Tpo libarchive/$(DEPDIR)/test-archive_write_open_file.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_open_file.c' object='libarchive/test-archive_write_open_file.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_write_open_filename.o `test -f 'libarchive/archive_write_open_filename.c' || echo '$(srcdir)/'`libarchive/archive_write_open_filename.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_write_open_file.o `test -f 'libarchive/archive_write_open_file.c' || echo '$(srcdir)/'`libarchive/archive_write_open_file.c -libarchive/libarchive_test-archive_write_open_filename.obj: libarchive/archive_write_open_filename.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_write_open_filename.obj -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_write_open_filename.Tpo -c -o libarchive/libarchive_test-archive_write_open_filename.obj `if test -f 'libarchive/archive_write_open_filename.c'; then $(CYGPATH_W) 'libarchive/archive_write_open_filename.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_open_filename.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_write_open_filename.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_write_open_filename.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_open_filename.c' object='libarchive/libarchive_test-archive_write_open_filename.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_write_open_file.obj: libarchive/archive_write_open_file.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_write_open_file.obj -MD -MP -MF libarchive/$(DEPDIR)/test-archive_write_open_file.Tpo -c -o libarchive/test-archive_write_open_file.obj `if test -f 'libarchive/archive_write_open_file.c'; then $(CYGPATH_W) 'libarchive/archive_write_open_file.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_open_file.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_write_open_file.Tpo libarchive/$(DEPDIR)/test-archive_write_open_file.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_open_file.c' object='libarchive/test-archive_write_open_file.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_write_open_filename.obj `if test -f 'libarchive/archive_write_open_filename.c'; then $(CYGPATH_W) 'libarchive/archive_write_open_filename.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_open_filename.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_write_open_file.obj `if test -f 'libarchive/archive_write_open_file.c'; then $(CYGPATH_W) 'libarchive/archive_write_open_file.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_open_file.c'; fi` -libarchive/libarchive_test-archive_write_open_memory.o: libarchive/archive_write_open_memory.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_write_open_memory.o -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_write_open_memory.Tpo -c -o libarchive/libarchive_test-archive_write_open_memory.o `test -f 'libarchive/archive_write_open_memory.c' || echo '$(srcdir)/'`libarchive/archive_write_open_memory.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_write_open_memory.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_write_open_memory.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_open_memory.c' object='libarchive/libarchive_test-archive_write_open_memory.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_write_open_filename.o: libarchive/archive_write_open_filename.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_write_open_filename.o -MD -MP -MF libarchive/$(DEPDIR)/test-archive_write_open_filename.Tpo -c -o libarchive/test-archive_write_open_filename.o `test -f 'libarchive/archive_write_open_filename.c' || echo '$(srcdir)/'`libarchive/archive_write_open_filename.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_write_open_filename.Tpo libarchive/$(DEPDIR)/test-archive_write_open_filename.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_open_filename.c' object='libarchive/test-archive_write_open_filename.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_write_open_memory.o `test -f 'libarchive/archive_write_open_memory.c' || echo '$(srcdir)/'`libarchive/archive_write_open_memory.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_write_open_filename.o `test -f 'libarchive/archive_write_open_filename.c' || echo '$(srcdir)/'`libarchive/archive_write_open_filename.c -libarchive/libarchive_test-archive_write_open_memory.obj: libarchive/archive_write_open_memory.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_write_open_memory.obj -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_write_open_memory.Tpo -c -o libarchive/libarchive_test-archive_write_open_memory.obj `if test -f 'libarchive/archive_write_open_memory.c'; then $(CYGPATH_W) 'libarchive/archive_write_open_memory.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_open_memory.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_write_open_memory.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_write_open_memory.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_open_memory.c' object='libarchive/libarchive_test-archive_write_open_memory.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_write_open_filename.obj: libarchive/archive_write_open_filename.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_write_open_filename.obj -MD -MP -MF libarchive/$(DEPDIR)/test-archive_write_open_filename.Tpo -c -o libarchive/test-archive_write_open_filename.obj `if test -f 'libarchive/archive_write_open_filename.c'; then $(CYGPATH_W) 'libarchive/archive_write_open_filename.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_open_filename.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_write_open_filename.Tpo libarchive/$(DEPDIR)/test-archive_write_open_filename.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_open_filename.c' object='libarchive/test-archive_write_open_filename.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_write_open_memory.obj `if test -f 'libarchive/archive_write_open_memory.c'; then $(CYGPATH_W) 'libarchive/archive_write_open_memory.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_open_memory.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_write_open_filename.obj `if test -f 'libarchive/archive_write_open_filename.c'; then $(CYGPATH_W) 'libarchive/archive_write_open_filename.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_open_filename.c'; fi` -libarchive/libarchive_test-archive_write_add_filter.o: libarchive/archive_write_add_filter.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_write_add_filter.o -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_write_add_filter.Tpo -c -o libarchive/libarchive_test-archive_write_add_filter.o `test -f 'libarchive/archive_write_add_filter.c' || echo '$(srcdir)/'`libarchive/archive_write_add_filter.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_write_add_filter.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_write_add_filter.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_add_filter.c' object='libarchive/libarchive_test-archive_write_add_filter.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_write_open_memory.o: libarchive/archive_write_open_memory.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_write_open_memory.o -MD -MP -MF libarchive/$(DEPDIR)/test-archive_write_open_memory.Tpo -c -o libarchive/test-archive_write_open_memory.o `test -f 'libarchive/archive_write_open_memory.c' || echo '$(srcdir)/'`libarchive/archive_write_open_memory.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_write_open_memory.Tpo libarchive/$(DEPDIR)/test-archive_write_open_memory.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_open_memory.c' object='libarchive/test-archive_write_open_memory.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_write_add_filter.o `test -f 'libarchive/archive_write_add_filter.c' || echo '$(srcdir)/'`libarchive/archive_write_add_filter.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_write_open_memory.o `test -f 'libarchive/archive_write_open_memory.c' || echo '$(srcdir)/'`libarchive/archive_write_open_memory.c -libarchive/libarchive_test-archive_write_add_filter.obj: libarchive/archive_write_add_filter.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_write_add_filter.obj -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_write_add_filter.Tpo -c -o libarchive/libarchive_test-archive_write_add_filter.obj `if test -f 'libarchive/archive_write_add_filter.c'; then $(CYGPATH_W) 'libarchive/archive_write_add_filter.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_add_filter.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_write_add_filter.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_write_add_filter.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_add_filter.c' object='libarchive/libarchive_test-archive_write_add_filter.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_write_open_memory.obj: libarchive/archive_write_open_memory.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_write_open_memory.obj -MD -MP -MF libarchive/$(DEPDIR)/test-archive_write_open_memory.Tpo -c -o libarchive/test-archive_write_open_memory.obj `if test -f 'libarchive/archive_write_open_memory.c'; then $(CYGPATH_W) 'libarchive/archive_write_open_memory.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_open_memory.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_write_open_memory.Tpo libarchive/$(DEPDIR)/test-archive_write_open_memory.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_open_memory.c' object='libarchive/test-archive_write_open_memory.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_write_add_filter.obj `if test -f 'libarchive/archive_write_add_filter.c'; then $(CYGPATH_W) 'libarchive/archive_write_add_filter.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_add_filter.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_write_open_memory.obj `if test -f 'libarchive/archive_write_open_memory.c'; then $(CYGPATH_W) 'libarchive/archive_write_open_memory.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_open_memory.c'; fi` -libarchive/libarchive_test-archive_write_add_filter_b64encode.o: libarchive/archive_write_add_filter_b64encode.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_write_add_filter_b64encode.o -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_write_add_filter_b64encode.Tpo -c -o libarchive/libarchive_test-archive_write_add_filter_b64encode.o `test -f 'libarchive/archive_write_add_filter_b64encode.c' || echo '$(srcdir)/'`libarchive/archive_write_add_filter_b64encode.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_write_add_filter_b64encode.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_write_add_filter_b64encode.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_add_filter_b64encode.c' object='libarchive/libarchive_test-archive_write_add_filter_b64encode.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_write_add_filter.o: libarchive/archive_write_add_filter.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_write_add_filter.o -MD -MP -MF libarchive/$(DEPDIR)/test-archive_write_add_filter.Tpo -c -o libarchive/test-archive_write_add_filter.o `test -f 'libarchive/archive_write_add_filter.c' || echo '$(srcdir)/'`libarchive/archive_write_add_filter.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_write_add_filter.Tpo libarchive/$(DEPDIR)/test-archive_write_add_filter.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_add_filter.c' object='libarchive/test-archive_write_add_filter.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_write_add_filter_b64encode.o `test -f 'libarchive/archive_write_add_filter_b64encode.c' || echo '$(srcdir)/'`libarchive/archive_write_add_filter_b64encode.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_write_add_filter.o `test -f 'libarchive/archive_write_add_filter.c' || echo '$(srcdir)/'`libarchive/archive_write_add_filter.c -libarchive/libarchive_test-archive_write_add_filter_b64encode.obj: libarchive/archive_write_add_filter_b64encode.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_write_add_filter_b64encode.obj -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_write_add_filter_b64encode.Tpo -c -o libarchive/libarchive_test-archive_write_add_filter_b64encode.obj `if test -f 'libarchive/archive_write_add_filter_b64encode.c'; then $(CYGPATH_W) 'libarchive/archive_write_add_filter_b64encode.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_add_filter_b64encode.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_write_add_filter_b64encode.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_write_add_filter_b64encode.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_add_filter_b64encode.c' object='libarchive/libarchive_test-archive_write_add_filter_b64encode.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_write_add_filter.obj: libarchive/archive_write_add_filter.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_write_add_filter.obj -MD -MP -MF libarchive/$(DEPDIR)/test-archive_write_add_filter.Tpo -c -o libarchive/test-archive_write_add_filter.obj `if test -f 'libarchive/archive_write_add_filter.c'; then $(CYGPATH_W) 'libarchive/archive_write_add_filter.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_add_filter.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_write_add_filter.Tpo libarchive/$(DEPDIR)/test-archive_write_add_filter.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_add_filter.c' object='libarchive/test-archive_write_add_filter.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_write_add_filter_b64encode.obj `if test -f 'libarchive/archive_write_add_filter_b64encode.c'; then $(CYGPATH_W) 'libarchive/archive_write_add_filter_b64encode.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_add_filter_b64encode.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_write_add_filter.obj `if test -f 'libarchive/archive_write_add_filter.c'; then $(CYGPATH_W) 'libarchive/archive_write_add_filter.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_add_filter.c'; fi` -libarchive/libarchive_test-archive_write_add_filter_by_name.o: libarchive/archive_write_add_filter_by_name.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_write_add_filter_by_name.o -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_write_add_filter_by_name.Tpo -c -o libarchive/libarchive_test-archive_write_add_filter_by_name.o `test -f 'libarchive/archive_write_add_filter_by_name.c' || echo '$(srcdir)/'`libarchive/archive_write_add_filter_by_name.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_write_add_filter_by_name.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_write_add_filter_by_name.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_add_filter_by_name.c' object='libarchive/libarchive_test-archive_write_add_filter_by_name.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_write_add_filter_b64encode.o: libarchive/archive_write_add_filter_b64encode.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_write_add_filter_b64encode.o -MD -MP -MF libarchive/$(DEPDIR)/test-archive_write_add_filter_b64encode.Tpo -c -o libarchive/test-archive_write_add_filter_b64encode.o `test -f 'libarchive/archive_write_add_filter_b64encode.c' || echo '$(srcdir)/'`libarchive/archive_write_add_filter_b64encode.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_write_add_filter_b64encode.Tpo libarchive/$(DEPDIR)/test-archive_write_add_filter_b64encode.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_add_filter_b64encode.c' object='libarchive/test-archive_write_add_filter_b64encode.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_write_add_filter_by_name.o `test -f 'libarchive/archive_write_add_filter_by_name.c' || echo '$(srcdir)/'`libarchive/archive_write_add_filter_by_name.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_write_add_filter_b64encode.o `test -f 'libarchive/archive_write_add_filter_b64encode.c' || echo '$(srcdir)/'`libarchive/archive_write_add_filter_b64encode.c -libarchive/libarchive_test-archive_write_add_filter_by_name.obj: libarchive/archive_write_add_filter_by_name.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_write_add_filter_by_name.obj -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_write_add_filter_by_name.Tpo -c -o libarchive/libarchive_test-archive_write_add_filter_by_name.obj `if test -f 'libarchive/archive_write_add_filter_by_name.c'; then $(CYGPATH_W) 'libarchive/archive_write_add_filter_by_name.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_add_filter_by_name.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_write_add_filter_by_name.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_write_add_filter_by_name.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_add_filter_by_name.c' object='libarchive/libarchive_test-archive_write_add_filter_by_name.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_write_add_filter_b64encode.obj: libarchive/archive_write_add_filter_b64encode.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_write_add_filter_b64encode.obj -MD -MP -MF libarchive/$(DEPDIR)/test-archive_write_add_filter_b64encode.Tpo -c -o libarchive/test-archive_write_add_filter_b64encode.obj `if test -f 'libarchive/archive_write_add_filter_b64encode.c'; then $(CYGPATH_W) 'libarchive/archive_write_add_filter_b64encode.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_add_filter_b64encode.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_write_add_filter_b64encode.Tpo libarchive/$(DEPDIR)/test-archive_write_add_filter_b64encode.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_add_filter_b64encode.c' object='libarchive/test-archive_write_add_filter_b64encode.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_write_add_filter_by_name.obj `if test -f 'libarchive/archive_write_add_filter_by_name.c'; then $(CYGPATH_W) 'libarchive/archive_write_add_filter_by_name.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_add_filter_by_name.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_write_add_filter_b64encode.obj `if test -f 'libarchive/archive_write_add_filter_b64encode.c'; then $(CYGPATH_W) 'libarchive/archive_write_add_filter_b64encode.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_add_filter_b64encode.c'; fi` -libarchive/libarchive_test-archive_write_add_filter_bzip2.o: libarchive/archive_write_add_filter_bzip2.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_write_add_filter_bzip2.o -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_write_add_filter_bzip2.Tpo -c -o libarchive/libarchive_test-archive_write_add_filter_bzip2.o `test -f 'libarchive/archive_write_add_filter_bzip2.c' || echo '$(srcdir)/'`libarchive/archive_write_add_filter_bzip2.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_write_add_filter_bzip2.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_write_add_filter_bzip2.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_add_filter_bzip2.c' object='libarchive/libarchive_test-archive_write_add_filter_bzip2.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_write_add_filter_by_name.o: libarchive/archive_write_add_filter_by_name.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_write_add_filter_by_name.o -MD -MP -MF libarchive/$(DEPDIR)/test-archive_write_add_filter_by_name.Tpo -c -o libarchive/test-archive_write_add_filter_by_name.o `test -f 'libarchive/archive_write_add_filter_by_name.c' || echo '$(srcdir)/'`libarchive/archive_write_add_filter_by_name.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_write_add_filter_by_name.Tpo libarchive/$(DEPDIR)/test-archive_write_add_filter_by_name.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_add_filter_by_name.c' object='libarchive/test-archive_write_add_filter_by_name.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_write_add_filter_bzip2.o `test -f 'libarchive/archive_write_add_filter_bzip2.c' || echo '$(srcdir)/'`libarchive/archive_write_add_filter_bzip2.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_write_add_filter_by_name.o `test -f 'libarchive/archive_write_add_filter_by_name.c' || echo '$(srcdir)/'`libarchive/archive_write_add_filter_by_name.c -libarchive/libarchive_test-archive_write_add_filter_bzip2.obj: libarchive/archive_write_add_filter_bzip2.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_write_add_filter_bzip2.obj -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_write_add_filter_bzip2.Tpo -c -o libarchive/libarchive_test-archive_write_add_filter_bzip2.obj `if test -f 'libarchive/archive_write_add_filter_bzip2.c'; then $(CYGPATH_W) 'libarchive/archive_write_add_filter_bzip2.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_add_filter_bzip2.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_write_add_filter_bzip2.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_write_add_filter_bzip2.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_add_filter_bzip2.c' object='libarchive/libarchive_test-archive_write_add_filter_bzip2.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_write_add_filter_by_name.obj: libarchive/archive_write_add_filter_by_name.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_write_add_filter_by_name.obj -MD -MP -MF libarchive/$(DEPDIR)/test-archive_write_add_filter_by_name.Tpo -c -o libarchive/test-archive_write_add_filter_by_name.obj `if test -f 'libarchive/archive_write_add_filter_by_name.c'; then $(CYGPATH_W) 'libarchive/archive_write_add_filter_by_name.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_add_filter_by_name.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_write_add_filter_by_name.Tpo libarchive/$(DEPDIR)/test-archive_write_add_filter_by_name.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_add_filter_by_name.c' object='libarchive/test-archive_write_add_filter_by_name.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_write_add_filter_bzip2.obj `if test -f 'libarchive/archive_write_add_filter_bzip2.c'; then $(CYGPATH_W) 'libarchive/archive_write_add_filter_bzip2.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_add_filter_bzip2.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_write_add_filter_by_name.obj `if test -f 'libarchive/archive_write_add_filter_by_name.c'; then $(CYGPATH_W) 'libarchive/archive_write_add_filter_by_name.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_add_filter_by_name.c'; fi` -libarchive/libarchive_test-archive_write_add_filter_compress.o: libarchive/archive_write_add_filter_compress.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_write_add_filter_compress.o -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_write_add_filter_compress.Tpo -c -o libarchive/libarchive_test-archive_write_add_filter_compress.o `test -f 'libarchive/archive_write_add_filter_compress.c' || echo '$(srcdir)/'`libarchive/archive_write_add_filter_compress.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_write_add_filter_compress.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_write_add_filter_compress.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_add_filter_compress.c' object='libarchive/libarchive_test-archive_write_add_filter_compress.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_write_add_filter_bzip2.o: libarchive/archive_write_add_filter_bzip2.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_write_add_filter_bzip2.o -MD -MP -MF libarchive/$(DEPDIR)/test-archive_write_add_filter_bzip2.Tpo -c -o libarchive/test-archive_write_add_filter_bzip2.o `test -f 'libarchive/archive_write_add_filter_bzip2.c' || echo '$(srcdir)/'`libarchive/archive_write_add_filter_bzip2.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_write_add_filter_bzip2.Tpo libarchive/$(DEPDIR)/test-archive_write_add_filter_bzip2.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_add_filter_bzip2.c' object='libarchive/test-archive_write_add_filter_bzip2.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_write_add_filter_compress.o `test -f 'libarchive/archive_write_add_filter_compress.c' || echo '$(srcdir)/'`libarchive/archive_write_add_filter_compress.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_write_add_filter_bzip2.o `test -f 'libarchive/archive_write_add_filter_bzip2.c' || echo '$(srcdir)/'`libarchive/archive_write_add_filter_bzip2.c -libarchive/libarchive_test-archive_write_add_filter_compress.obj: libarchive/archive_write_add_filter_compress.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_write_add_filter_compress.obj -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_write_add_filter_compress.Tpo -c -o libarchive/libarchive_test-archive_write_add_filter_compress.obj `if test -f 'libarchive/archive_write_add_filter_compress.c'; then $(CYGPATH_W) 'libarchive/archive_write_add_filter_compress.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_add_filter_compress.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_write_add_filter_compress.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_write_add_filter_compress.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_add_filter_compress.c' object='libarchive/libarchive_test-archive_write_add_filter_compress.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_write_add_filter_bzip2.obj: libarchive/archive_write_add_filter_bzip2.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_write_add_filter_bzip2.obj -MD -MP -MF libarchive/$(DEPDIR)/test-archive_write_add_filter_bzip2.Tpo -c -o libarchive/test-archive_write_add_filter_bzip2.obj `if test -f 'libarchive/archive_write_add_filter_bzip2.c'; then $(CYGPATH_W) 'libarchive/archive_write_add_filter_bzip2.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_add_filter_bzip2.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_write_add_filter_bzip2.Tpo libarchive/$(DEPDIR)/test-archive_write_add_filter_bzip2.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_add_filter_bzip2.c' object='libarchive/test-archive_write_add_filter_bzip2.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_write_add_filter_compress.obj `if test -f 'libarchive/archive_write_add_filter_compress.c'; then $(CYGPATH_W) 'libarchive/archive_write_add_filter_compress.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_add_filter_compress.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_write_add_filter_bzip2.obj `if test -f 'libarchive/archive_write_add_filter_bzip2.c'; then $(CYGPATH_W) 'libarchive/archive_write_add_filter_bzip2.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_add_filter_bzip2.c'; fi` -libarchive/libarchive_test-archive_write_add_filter_grzip.o: libarchive/archive_write_add_filter_grzip.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_write_add_filter_grzip.o -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_write_add_filter_grzip.Tpo -c -o libarchive/libarchive_test-archive_write_add_filter_grzip.o `test -f 'libarchive/archive_write_add_filter_grzip.c' || echo '$(srcdir)/'`libarchive/archive_write_add_filter_grzip.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_write_add_filter_grzip.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_write_add_filter_grzip.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_add_filter_grzip.c' object='libarchive/libarchive_test-archive_write_add_filter_grzip.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_write_add_filter_compress.o: libarchive/archive_write_add_filter_compress.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_write_add_filter_compress.o -MD -MP -MF libarchive/$(DEPDIR)/test-archive_write_add_filter_compress.Tpo -c -o libarchive/test-archive_write_add_filter_compress.o `test -f 'libarchive/archive_write_add_filter_compress.c' || echo '$(srcdir)/'`libarchive/archive_write_add_filter_compress.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_write_add_filter_compress.Tpo libarchive/$(DEPDIR)/test-archive_write_add_filter_compress.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_add_filter_compress.c' object='libarchive/test-archive_write_add_filter_compress.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_write_add_filter_grzip.o `test -f 'libarchive/archive_write_add_filter_grzip.c' || echo '$(srcdir)/'`libarchive/archive_write_add_filter_grzip.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_write_add_filter_compress.o `test -f 'libarchive/archive_write_add_filter_compress.c' || echo '$(srcdir)/'`libarchive/archive_write_add_filter_compress.c -libarchive/libarchive_test-archive_write_add_filter_grzip.obj: libarchive/archive_write_add_filter_grzip.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_write_add_filter_grzip.obj -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_write_add_filter_grzip.Tpo -c -o libarchive/libarchive_test-archive_write_add_filter_grzip.obj `if test -f 'libarchive/archive_write_add_filter_grzip.c'; then $(CYGPATH_W) 'libarchive/archive_write_add_filter_grzip.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_add_filter_grzip.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_write_add_filter_grzip.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_write_add_filter_grzip.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_add_filter_grzip.c' object='libarchive/libarchive_test-archive_write_add_filter_grzip.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_write_add_filter_compress.obj: libarchive/archive_write_add_filter_compress.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_write_add_filter_compress.obj -MD -MP -MF libarchive/$(DEPDIR)/test-archive_write_add_filter_compress.Tpo -c -o libarchive/test-archive_write_add_filter_compress.obj `if test -f 'libarchive/archive_write_add_filter_compress.c'; then $(CYGPATH_W) 'libarchive/archive_write_add_filter_compress.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_add_filter_compress.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_write_add_filter_compress.Tpo libarchive/$(DEPDIR)/test-archive_write_add_filter_compress.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_add_filter_compress.c' object='libarchive/test-archive_write_add_filter_compress.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_write_add_filter_grzip.obj `if test -f 'libarchive/archive_write_add_filter_grzip.c'; then $(CYGPATH_W) 'libarchive/archive_write_add_filter_grzip.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_add_filter_grzip.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_write_add_filter_compress.obj `if test -f 'libarchive/archive_write_add_filter_compress.c'; then $(CYGPATH_W) 'libarchive/archive_write_add_filter_compress.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_add_filter_compress.c'; fi` -libarchive/libarchive_test-archive_write_add_filter_gzip.o: libarchive/archive_write_add_filter_gzip.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_write_add_filter_gzip.o -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_write_add_filter_gzip.Tpo -c -o libarchive/libarchive_test-archive_write_add_filter_gzip.o `test -f 'libarchive/archive_write_add_filter_gzip.c' || echo '$(srcdir)/'`libarchive/archive_write_add_filter_gzip.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_write_add_filter_gzip.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_write_add_filter_gzip.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_add_filter_gzip.c' object='libarchive/libarchive_test-archive_write_add_filter_gzip.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_write_add_filter_grzip.o: libarchive/archive_write_add_filter_grzip.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_write_add_filter_grzip.o -MD -MP -MF libarchive/$(DEPDIR)/test-archive_write_add_filter_grzip.Tpo -c -o libarchive/test-archive_write_add_filter_grzip.o `test -f 'libarchive/archive_write_add_filter_grzip.c' || echo '$(srcdir)/'`libarchive/archive_write_add_filter_grzip.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_write_add_filter_grzip.Tpo libarchive/$(DEPDIR)/test-archive_write_add_filter_grzip.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_add_filter_grzip.c' object='libarchive/test-archive_write_add_filter_grzip.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_write_add_filter_gzip.o `test -f 'libarchive/archive_write_add_filter_gzip.c' || echo '$(srcdir)/'`libarchive/archive_write_add_filter_gzip.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_write_add_filter_grzip.o `test -f 'libarchive/archive_write_add_filter_grzip.c' || echo '$(srcdir)/'`libarchive/archive_write_add_filter_grzip.c -libarchive/libarchive_test-archive_write_add_filter_gzip.obj: libarchive/archive_write_add_filter_gzip.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_write_add_filter_gzip.obj -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_write_add_filter_gzip.Tpo -c -o libarchive/libarchive_test-archive_write_add_filter_gzip.obj `if test -f 'libarchive/archive_write_add_filter_gzip.c'; then $(CYGPATH_W) 'libarchive/archive_write_add_filter_gzip.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_add_filter_gzip.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_write_add_filter_gzip.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_write_add_filter_gzip.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_add_filter_gzip.c' object='libarchive/libarchive_test-archive_write_add_filter_gzip.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_write_add_filter_grzip.obj: libarchive/archive_write_add_filter_grzip.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_write_add_filter_grzip.obj -MD -MP -MF libarchive/$(DEPDIR)/test-archive_write_add_filter_grzip.Tpo -c -o libarchive/test-archive_write_add_filter_grzip.obj `if test -f 'libarchive/archive_write_add_filter_grzip.c'; then $(CYGPATH_W) 'libarchive/archive_write_add_filter_grzip.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_add_filter_grzip.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_write_add_filter_grzip.Tpo libarchive/$(DEPDIR)/test-archive_write_add_filter_grzip.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_add_filter_grzip.c' object='libarchive/test-archive_write_add_filter_grzip.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_write_add_filter_gzip.obj `if test -f 'libarchive/archive_write_add_filter_gzip.c'; then $(CYGPATH_W) 'libarchive/archive_write_add_filter_gzip.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_add_filter_gzip.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_write_add_filter_grzip.obj `if test -f 'libarchive/archive_write_add_filter_grzip.c'; then $(CYGPATH_W) 'libarchive/archive_write_add_filter_grzip.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_add_filter_grzip.c'; fi` -libarchive/libarchive_test-archive_write_add_filter_lrzip.o: libarchive/archive_write_add_filter_lrzip.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_write_add_filter_lrzip.o -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_write_add_filter_lrzip.Tpo -c -o libarchive/libarchive_test-archive_write_add_filter_lrzip.o `test -f 'libarchive/archive_write_add_filter_lrzip.c' || echo '$(srcdir)/'`libarchive/archive_write_add_filter_lrzip.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_write_add_filter_lrzip.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_write_add_filter_lrzip.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_add_filter_lrzip.c' object='libarchive/libarchive_test-archive_write_add_filter_lrzip.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_write_add_filter_gzip.o: libarchive/archive_write_add_filter_gzip.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_write_add_filter_gzip.o -MD -MP -MF libarchive/$(DEPDIR)/test-archive_write_add_filter_gzip.Tpo -c -o libarchive/test-archive_write_add_filter_gzip.o `test -f 'libarchive/archive_write_add_filter_gzip.c' || echo '$(srcdir)/'`libarchive/archive_write_add_filter_gzip.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_write_add_filter_gzip.Tpo libarchive/$(DEPDIR)/test-archive_write_add_filter_gzip.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_add_filter_gzip.c' object='libarchive/test-archive_write_add_filter_gzip.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_write_add_filter_lrzip.o `test -f 'libarchive/archive_write_add_filter_lrzip.c' || echo '$(srcdir)/'`libarchive/archive_write_add_filter_lrzip.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_write_add_filter_gzip.o `test -f 'libarchive/archive_write_add_filter_gzip.c' || echo '$(srcdir)/'`libarchive/archive_write_add_filter_gzip.c -libarchive/libarchive_test-archive_write_add_filter_lrzip.obj: libarchive/archive_write_add_filter_lrzip.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_write_add_filter_lrzip.obj -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_write_add_filter_lrzip.Tpo -c -o libarchive/libarchive_test-archive_write_add_filter_lrzip.obj `if test -f 'libarchive/archive_write_add_filter_lrzip.c'; then $(CYGPATH_W) 'libarchive/archive_write_add_filter_lrzip.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_add_filter_lrzip.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_write_add_filter_lrzip.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_write_add_filter_lrzip.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_add_filter_lrzip.c' object='libarchive/libarchive_test-archive_write_add_filter_lrzip.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_write_add_filter_gzip.obj: libarchive/archive_write_add_filter_gzip.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_write_add_filter_gzip.obj -MD -MP -MF libarchive/$(DEPDIR)/test-archive_write_add_filter_gzip.Tpo -c -o libarchive/test-archive_write_add_filter_gzip.obj `if test -f 'libarchive/archive_write_add_filter_gzip.c'; then $(CYGPATH_W) 'libarchive/archive_write_add_filter_gzip.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_add_filter_gzip.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_write_add_filter_gzip.Tpo libarchive/$(DEPDIR)/test-archive_write_add_filter_gzip.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_add_filter_gzip.c' object='libarchive/test-archive_write_add_filter_gzip.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_write_add_filter_lrzip.obj `if test -f 'libarchive/archive_write_add_filter_lrzip.c'; then $(CYGPATH_W) 'libarchive/archive_write_add_filter_lrzip.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_add_filter_lrzip.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_write_add_filter_gzip.obj `if test -f 'libarchive/archive_write_add_filter_gzip.c'; then $(CYGPATH_W) 'libarchive/archive_write_add_filter_gzip.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_add_filter_gzip.c'; fi` -libarchive/libarchive_test-archive_write_add_filter_lz4.o: libarchive/archive_write_add_filter_lz4.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_write_add_filter_lz4.o -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_write_add_filter_lz4.Tpo -c -o libarchive/libarchive_test-archive_write_add_filter_lz4.o `test -f 'libarchive/archive_write_add_filter_lz4.c' || echo '$(srcdir)/'`libarchive/archive_write_add_filter_lz4.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_write_add_filter_lz4.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_write_add_filter_lz4.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_add_filter_lz4.c' object='libarchive/libarchive_test-archive_write_add_filter_lz4.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_write_add_filter_lrzip.o: libarchive/archive_write_add_filter_lrzip.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_write_add_filter_lrzip.o -MD -MP -MF libarchive/$(DEPDIR)/test-archive_write_add_filter_lrzip.Tpo -c -o libarchive/test-archive_write_add_filter_lrzip.o `test -f 'libarchive/archive_write_add_filter_lrzip.c' || echo '$(srcdir)/'`libarchive/archive_write_add_filter_lrzip.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_write_add_filter_lrzip.Tpo libarchive/$(DEPDIR)/test-archive_write_add_filter_lrzip.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_add_filter_lrzip.c' object='libarchive/test-archive_write_add_filter_lrzip.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_write_add_filter_lz4.o `test -f 'libarchive/archive_write_add_filter_lz4.c' || echo '$(srcdir)/'`libarchive/archive_write_add_filter_lz4.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_write_add_filter_lrzip.o `test -f 'libarchive/archive_write_add_filter_lrzip.c' || echo '$(srcdir)/'`libarchive/archive_write_add_filter_lrzip.c -libarchive/libarchive_test-archive_write_add_filter_lz4.obj: libarchive/archive_write_add_filter_lz4.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_write_add_filter_lz4.obj -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_write_add_filter_lz4.Tpo -c -o libarchive/libarchive_test-archive_write_add_filter_lz4.obj `if test -f 'libarchive/archive_write_add_filter_lz4.c'; then $(CYGPATH_W) 'libarchive/archive_write_add_filter_lz4.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_add_filter_lz4.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_write_add_filter_lz4.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_write_add_filter_lz4.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_add_filter_lz4.c' object='libarchive/libarchive_test-archive_write_add_filter_lz4.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_write_add_filter_lrzip.obj: libarchive/archive_write_add_filter_lrzip.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_write_add_filter_lrzip.obj -MD -MP -MF libarchive/$(DEPDIR)/test-archive_write_add_filter_lrzip.Tpo -c -o libarchive/test-archive_write_add_filter_lrzip.obj `if test -f 'libarchive/archive_write_add_filter_lrzip.c'; then $(CYGPATH_W) 'libarchive/archive_write_add_filter_lrzip.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_add_filter_lrzip.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_write_add_filter_lrzip.Tpo libarchive/$(DEPDIR)/test-archive_write_add_filter_lrzip.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_add_filter_lrzip.c' object='libarchive/test-archive_write_add_filter_lrzip.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_write_add_filter_lz4.obj `if test -f 'libarchive/archive_write_add_filter_lz4.c'; then $(CYGPATH_W) 'libarchive/archive_write_add_filter_lz4.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_add_filter_lz4.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_write_add_filter_lrzip.obj `if test -f 'libarchive/archive_write_add_filter_lrzip.c'; then $(CYGPATH_W) 'libarchive/archive_write_add_filter_lrzip.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_add_filter_lrzip.c'; fi` -libarchive/libarchive_test-archive_write_add_filter_lzop.o: libarchive/archive_write_add_filter_lzop.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_write_add_filter_lzop.o -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_write_add_filter_lzop.Tpo -c -o libarchive/libarchive_test-archive_write_add_filter_lzop.o `test -f 'libarchive/archive_write_add_filter_lzop.c' || echo '$(srcdir)/'`libarchive/archive_write_add_filter_lzop.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_write_add_filter_lzop.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_write_add_filter_lzop.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_add_filter_lzop.c' object='libarchive/libarchive_test-archive_write_add_filter_lzop.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_write_add_filter_lz4.o: libarchive/archive_write_add_filter_lz4.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_write_add_filter_lz4.o -MD -MP -MF libarchive/$(DEPDIR)/test-archive_write_add_filter_lz4.Tpo -c -o libarchive/test-archive_write_add_filter_lz4.o `test -f 'libarchive/archive_write_add_filter_lz4.c' || echo '$(srcdir)/'`libarchive/archive_write_add_filter_lz4.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_write_add_filter_lz4.Tpo libarchive/$(DEPDIR)/test-archive_write_add_filter_lz4.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_add_filter_lz4.c' object='libarchive/test-archive_write_add_filter_lz4.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_write_add_filter_lzop.o `test -f 'libarchive/archive_write_add_filter_lzop.c' || echo '$(srcdir)/'`libarchive/archive_write_add_filter_lzop.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_write_add_filter_lz4.o `test -f 'libarchive/archive_write_add_filter_lz4.c' || echo '$(srcdir)/'`libarchive/archive_write_add_filter_lz4.c -libarchive/libarchive_test-archive_write_add_filter_lzop.obj: libarchive/archive_write_add_filter_lzop.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_write_add_filter_lzop.obj -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_write_add_filter_lzop.Tpo -c -o libarchive/libarchive_test-archive_write_add_filter_lzop.obj `if test -f 'libarchive/archive_write_add_filter_lzop.c'; then $(CYGPATH_W) 'libarchive/archive_write_add_filter_lzop.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_add_filter_lzop.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_write_add_filter_lzop.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_write_add_filter_lzop.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_add_filter_lzop.c' object='libarchive/libarchive_test-archive_write_add_filter_lzop.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_write_add_filter_lz4.obj: libarchive/archive_write_add_filter_lz4.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_write_add_filter_lz4.obj -MD -MP -MF libarchive/$(DEPDIR)/test-archive_write_add_filter_lz4.Tpo -c -o libarchive/test-archive_write_add_filter_lz4.obj `if test -f 'libarchive/archive_write_add_filter_lz4.c'; then $(CYGPATH_W) 'libarchive/archive_write_add_filter_lz4.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_add_filter_lz4.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_write_add_filter_lz4.Tpo libarchive/$(DEPDIR)/test-archive_write_add_filter_lz4.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_add_filter_lz4.c' object='libarchive/test-archive_write_add_filter_lz4.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_write_add_filter_lzop.obj `if test -f 'libarchive/archive_write_add_filter_lzop.c'; then $(CYGPATH_W) 'libarchive/archive_write_add_filter_lzop.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_add_filter_lzop.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_write_add_filter_lz4.obj `if test -f 'libarchive/archive_write_add_filter_lz4.c'; then $(CYGPATH_W) 'libarchive/archive_write_add_filter_lz4.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_add_filter_lz4.c'; fi` -libarchive/libarchive_test-archive_write_add_filter_none.o: libarchive/archive_write_add_filter_none.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_write_add_filter_none.o -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_write_add_filter_none.Tpo -c -o libarchive/libarchive_test-archive_write_add_filter_none.o `test -f 'libarchive/archive_write_add_filter_none.c' || echo '$(srcdir)/'`libarchive/archive_write_add_filter_none.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_write_add_filter_none.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_write_add_filter_none.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_add_filter_none.c' object='libarchive/libarchive_test-archive_write_add_filter_none.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_write_add_filter_lzop.o: libarchive/archive_write_add_filter_lzop.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_write_add_filter_lzop.o -MD -MP -MF libarchive/$(DEPDIR)/test-archive_write_add_filter_lzop.Tpo -c -o libarchive/test-archive_write_add_filter_lzop.o `test -f 'libarchive/archive_write_add_filter_lzop.c' || echo '$(srcdir)/'`libarchive/archive_write_add_filter_lzop.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_write_add_filter_lzop.Tpo libarchive/$(DEPDIR)/test-archive_write_add_filter_lzop.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_add_filter_lzop.c' object='libarchive/test-archive_write_add_filter_lzop.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_write_add_filter_none.o `test -f 'libarchive/archive_write_add_filter_none.c' || echo '$(srcdir)/'`libarchive/archive_write_add_filter_none.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_write_add_filter_lzop.o `test -f 'libarchive/archive_write_add_filter_lzop.c' || echo '$(srcdir)/'`libarchive/archive_write_add_filter_lzop.c -libarchive/libarchive_test-archive_write_add_filter_none.obj: libarchive/archive_write_add_filter_none.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_write_add_filter_none.obj -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_write_add_filter_none.Tpo -c -o libarchive/libarchive_test-archive_write_add_filter_none.obj `if test -f 'libarchive/archive_write_add_filter_none.c'; then $(CYGPATH_W) 'libarchive/archive_write_add_filter_none.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_add_filter_none.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_write_add_filter_none.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_write_add_filter_none.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_add_filter_none.c' object='libarchive/libarchive_test-archive_write_add_filter_none.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_write_add_filter_lzop.obj: libarchive/archive_write_add_filter_lzop.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_write_add_filter_lzop.obj -MD -MP -MF libarchive/$(DEPDIR)/test-archive_write_add_filter_lzop.Tpo -c -o libarchive/test-archive_write_add_filter_lzop.obj `if test -f 'libarchive/archive_write_add_filter_lzop.c'; then $(CYGPATH_W) 'libarchive/archive_write_add_filter_lzop.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_add_filter_lzop.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_write_add_filter_lzop.Tpo libarchive/$(DEPDIR)/test-archive_write_add_filter_lzop.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_add_filter_lzop.c' object='libarchive/test-archive_write_add_filter_lzop.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_write_add_filter_none.obj `if test -f 'libarchive/archive_write_add_filter_none.c'; then $(CYGPATH_W) 'libarchive/archive_write_add_filter_none.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_add_filter_none.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_write_add_filter_lzop.obj `if test -f 'libarchive/archive_write_add_filter_lzop.c'; then $(CYGPATH_W) 'libarchive/archive_write_add_filter_lzop.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_add_filter_lzop.c'; fi` -libarchive/libarchive_test-archive_write_add_filter_program.o: libarchive/archive_write_add_filter_program.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_write_add_filter_program.o -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_write_add_filter_program.Tpo -c -o libarchive/libarchive_test-archive_write_add_filter_program.o `test -f 'libarchive/archive_write_add_filter_program.c' || echo '$(srcdir)/'`libarchive/archive_write_add_filter_program.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_write_add_filter_program.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_write_add_filter_program.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_add_filter_program.c' object='libarchive/libarchive_test-archive_write_add_filter_program.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_write_add_filter_none.o: libarchive/archive_write_add_filter_none.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_write_add_filter_none.o -MD -MP -MF libarchive/$(DEPDIR)/test-archive_write_add_filter_none.Tpo -c -o libarchive/test-archive_write_add_filter_none.o `test -f 'libarchive/archive_write_add_filter_none.c' || echo '$(srcdir)/'`libarchive/archive_write_add_filter_none.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_write_add_filter_none.Tpo libarchive/$(DEPDIR)/test-archive_write_add_filter_none.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_add_filter_none.c' object='libarchive/test-archive_write_add_filter_none.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_write_add_filter_program.o `test -f 'libarchive/archive_write_add_filter_program.c' || echo '$(srcdir)/'`libarchive/archive_write_add_filter_program.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_write_add_filter_none.o `test -f 'libarchive/archive_write_add_filter_none.c' || echo '$(srcdir)/'`libarchive/archive_write_add_filter_none.c -libarchive/libarchive_test-archive_write_add_filter_program.obj: libarchive/archive_write_add_filter_program.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_write_add_filter_program.obj -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_write_add_filter_program.Tpo -c -o libarchive/libarchive_test-archive_write_add_filter_program.obj `if test -f 'libarchive/archive_write_add_filter_program.c'; then $(CYGPATH_W) 'libarchive/archive_write_add_filter_program.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_add_filter_program.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_write_add_filter_program.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_write_add_filter_program.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_add_filter_program.c' object='libarchive/libarchive_test-archive_write_add_filter_program.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_write_add_filter_none.obj: libarchive/archive_write_add_filter_none.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_write_add_filter_none.obj -MD -MP -MF libarchive/$(DEPDIR)/test-archive_write_add_filter_none.Tpo -c -o libarchive/test-archive_write_add_filter_none.obj `if test -f 'libarchive/archive_write_add_filter_none.c'; then $(CYGPATH_W) 'libarchive/archive_write_add_filter_none.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_add_filter_none.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_write_add_filter_none.Tpo libarchive/$(DEPDIR)/test-archive_write_add_filter_none.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_add_filter_none.c' object='libarchive/test-archive_write_add_filter_none.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_write_add_filter_program.obj `if test -f 'libarchive/archive_write_add_filter_program.c'; then $(CYGPATH_W) 'libarchive/archive_write_add_filter_program.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_add_filter_program.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_write_add_filter_none.obj `if test -f 'libarchive/archive_write_add_filter_none.c'; then $(CYGPATH_W) 'libarchive/archive_write_add_filter_none.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_add_filter_none.c'; fi` -libarchive/libarchive_test-archive_write_add_filter_uuencode.o: libarchive/archive_write_add_filter_uuencode.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_write_add_filter_uuencode.o -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_write_add_filter_uuencode.Tpo -c -o libarchive/libarchive_test-archive_write_add_filter_uuencode.o `test -f 'libarchive/archive_write_add_filter_uuencode.c' || echo '$(srcdir)/'`libarchive/archive_write_add_filter_uuencode.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_write_add_filter_uuencode.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_write_add_filter_uuencode.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_add_filter_uuencode.c' object='libarchive/libarchive_test-archive_write_add_filter_uuencode.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_write_add_filter_program.o: libarchive/archive_write_add_filter_program.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_write_add_filter_program.o -MD -MP -MF libarchive/$(DEPDIR)/test-archive_write_add_filter_program.Tpo -c -o libarchive/test-archive_write_add_filter_program.o `test -f 'libarchive/archive_write_add_filter_program.c' || echo '$(srcdir)/'`libarchive/archive_write_add_filter_program.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_write_add_filter_program.Tpo libarchive/$(DEPDIR)/test-archive_write_add_filter_program.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_add_filter_program.c' object='libarchive/test-archive_write_add_filter_program.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_write_add_filter_uuencode.o `test -f 'libarchive/archive_write_add_filter_uuencode.c' || echo '$(srcdir)/'`libarchive/archive_write_add_filter_uuencode.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_write_add_filter_program.o `test -f 'libarchive/archive_write_add_filter_program.c' || echo '$(srcdir)/'`libarchive/archive_write_add_filter_program.c -libarchive/libarchive_test-archive_write_add_filter_uuencode.obj: libarchive/archive_write_add_filter_uuencode.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_write_add_filter_uuencode.obj -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_write_add_filter_uuencode.Tpo -c -o libarchive/libarchive_test-archive_write_add_filter_uuencode.obj `if test -f 'libarchive/archive_write_add_filter_uuencode.c'; then $(CYGPATH_W) 'libarchive/archive_write_add_filter_uuencode.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_add_filter_uuencode.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_write_add_filter_uuencode.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_write_add_filter_uuencode.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_add_filter_uuencode.c' object='libarchive/libarchive_test-archive_write_add_filter_uuencode.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_write_add_filter_program.obj: libarchive/archive_write_add_filter_program.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_write_add_filter_program.obj -MD -MP -MF libarchive/$(DEPDIR)/test-archive_write_add_filter_program.Tpo -c -o libarchive/test-archive_write_add_filter_program.obj `if test -f 'libarchive/archive_write_add_filter_program.c'; then $(CYGPATH_W) 'libarchive/archive_write_add_filter_program.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_add_filter_program.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_write_add_filter_program.Tpo libarchive/$(DEPDIR)/test-archive_write_add_filter_program.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_add_filter_program.c' object='libarchive/test-archive_write_add_filter_program.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_write_add_filter_uuencode.obj `if test -f 'libarchive/archive_write_add_filter_uuencode.c'; then $(CYGPATH_W) 'libarchive/archive_write_add_filter_uuencode.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_add_filter_uuencode.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_write_add_filter_program.obj `if test -f 'libarchive/archive_write_add_filter_program.c'; then $(CYGPATH_W) 'libarchive/archive_write_add_filter_program.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_add_filter_program.c'; fi` -libarchive/libarchive_test-archive_write_add_filter_xz.o: libarchive/archive_write_add_filter_xz.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_write_add_filter_xz.o -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_write_add_filter_xz.Tpo -c -o libarchive/libarchive_test-archive_write_add_filter_xz.o `test -f 'libarchive/archive_write_add_filter_xz.c' || echo '$(srcdir)/'`libarchive/archive_write_add_filter_xz.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_write_add_filter_xz.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_write_add_filter_xz.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_add_filter_xz.c' object='libarchive/libarchive_test-archive_write_add_filter_xz.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_write_add_filter_uuencode.o: libarchive/archive_write_add_filter_uuencode.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_write_add_filter_uuencode.o -MD -MP -MF libarchive/$(DEPDIR)/test-archive_write_add_filter_uuencode.Tpo -c -o libarchive/test-archive_write_add_filter_uuencode.o `test -f 'libarchive/archive_write_add_filter_uuencode.c' || echo '$(srcdir)/'`libarchive/archive_write_add_filter_uuencode.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_write_add_filter_uuencode.Tpo libarchive/$(DEPDIR)/test-archive_write_add_filter_uuencode.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_add_filter_uuencode.c' object='libarchive/test-archive_write_add_filter_uuencode.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_write_add_filter_xz.o `test -f 'libarchive/archive_write_add_filter_xz.c' || echo '$(srcdir)/'`libarchive/archive_write_add_filter_xz.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_write_add_filter_uuencode.o `test -f 'libarchive/archive_write_add_filter_uuencode.c' || echo '$(srcdir)/'`libarchive/archive_write_add_filter_uuencode.c -libarchive/libarchive_test-archive_write_add_filter_xz.obj: libarchive/archive_write_add_filter_xz.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_write_add_filter_xz.obj -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_write_add_filter_xz.Tpo -c -o libarchive/libarchive_test-archive_write_add_filter_xz.obj `if test -f 'libarchive/archive_write_add_filter_xz.c'; then $(CYGPATH_W) 'libarchive/archive_write_add_filter_xz.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_add_filter_xz.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_write_add_filter_xz.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_write_add_filter_xz.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_add_filter_xz.c' object='libarchive/libarchive_test-archive_write_add_filter_xz.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_write_add_filter_uuencode.obj: libarchive/archive_write_add_filter_uuencode.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_write_add_filter_uuencode.obj -MD -MP -MF libarchive/$(DEPDIR)/test-archive_write_add_filter_uuencode.Tpo -c -o libarchive/test-archive_write_add_filter_uuencode.obj `if test -f 'libarchive/archive_write_add_filter_uuencode.c'; then $(CYGPATH_W) 'libarchive/archive_write_add_filter_uuencode.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_add_filter_uuencode.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_write_add_filter_uuencode.Tpo libarchive/$(DEPDIR)/test-archive_write_add_filter_uuencode.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_add_filter_uuencode.c' object='libarchive/test-archive_write_add_filter_uuencode.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_write_add_filter_xz.obj `if test -f 'libarchive/archive_write_add_filter_xz.c'; then $(CYGPATH_W) 'libarchive/archive_write_add_filter_xz.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_add_filter_xz.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_write_add_filter_uuencode.obj `if test -f 'libarchive/archive_write_add_filter_uuencode.c'; then $(CYGPATH_W) 'libarchive/archive_write_add_filter_uuencode.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_add_filter_uuencode.c'; fi` -libarchive/libarchive_test-archive_write_add_filter_zstd.o: libarchive/archive_write_add_filter_zstd.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_write_add_filter_zstd.o -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_write_add_filter_zstd.Tpo -c -o libarchive/libarchive_test-archive_write_add_filter_zstd.o `test -f 'libarchive/archive_write_add_filter_zstd.c' || echo '$(srcdir)/'`libarchive/archive_write_add_filter_zstd.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_write_add_filter_zstd.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_write_add_filter_zstd.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_add_filter_zstd.c' object='libarchive/libarchive_test-archive_write_add_filter_zstd.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_write_add_filter_xz.o: libarchive/archive_write_add_filter_xz.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_write_add_filter_xz.o -MD -MP -MF libarchive/$(DEPDIR)/test-archive_write_add_filter_xz.Tpo -c -o libarchive/test-archive_write_add_filter_xz.o `test -f 'libarchive/archive_write_add_filter_xz.c' || echo '$(srcdir)/'`libarchive/archive_write_add_filter_xz.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_write_add_filter_xz.Tpo libarchive/$(DEPDIR)/test-archive_write_add_filter_xz.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_add_filter_xz.c' object='libarchive/test-archive_write_add_filter_xz.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_write_add_filter_zstd.o `test -f 'libarchive/archive_write_add_filter_zstd.c' || echo '$(srcdir)/'`libarchive/archive_write_add_filter_zstd.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_write_add_filter_xz.o `test -f 'libarchive/archive_write_add_filter_xz.c' || echo '$(srcdir)/'`libarchive/archive_write_add_filter_xz.c -libarchive/libarchive_test-archive_write_add_filter_zstd.obj: libarchive/archive_write_add_filter_zstd.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_write_add_filter_zstd.obj -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_write_add_filter_zstd.Tpo -c -o libarchive/libarchive_test-archive_write_add_filter_zstd.obj `if test -f 'libarchive/archive_write_add_filter_zstd.c'; then $(CYGPATH_W) 'libarchive/archive_write_add_filter_zstd.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_add_filter_zstd.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_write_add_filter_zstd.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_write_add_filter_zstd.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_add_filter_zstd.c' object='libarchive/libarchive_test-archive_write_add_filter_zstd.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_write_add_filter_xz.obj: libarchive/archive_write_add_filter_xz.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_write_add_filter_xz.obj -MD -MP -MF libarchive/$(DEPDIR)/test-archive_write_add_filter_xz.Tpo -c -o libarchive/test-archive_write_add_filter_xz.obj `if test -f 'libarchive/archive_write_add_filter_xz.c'; then $(CYGPATH_W) 'libarchive/archive_write_add_filter_xz.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_add_filter_xz.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_write_add_filter_xz.Tpo libarchive/$(DEPDIR)/test-archive_write_add_filter_xz.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_add_filter_xz.c' object='libarchive/test-archive_write_add_filter_xz.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_write_add_filter_zstd.obj `if test -f 'libarchive/archive_write_add_filter_zstd.c'; then $(CYGPATH_W) 'libarchive/archive_write_add_filter_zstd.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_add_filter_zstd.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_write_add_filter_xz.obj `if test -f 'libarchive/archive_write_add_filter_xz.c'; then $(CYGPATH_W) 'libarchive/archive_write_add_filter_xz.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_add_filter_xz.c'; fi` -libarchive/libarchive_test-archive_write_set_format.o: libarchive/archive_write_set_format.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_write_set_format.o -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_write_set_format.Tpo -c -o libarchive/libarchive_test-archive_write_set_format.o `test -f 'libarchive/archive_write_set_format.c' || echo '$(srcdir)/'`libarchive/archive_write_set_format.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_write_set_format.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_write_set_format.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_set_format.c' object='libarchive/libarchive_test-archive_write_set_format.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_write_add_filter_zstd.o: libarchive/archive_write_add_filter_zstd.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_write_add_filter_zstd.o -MD -MP -MF libarchive/$(DEPDIR)/test-archive_write_add_filter_zstd.Tpo -c -o libarchive/test-archive_write_add_filter_zstd.o `test -f 'libarchive/archive_write_add_filter_zstd.c' || echo '$(srcdir)/'`libarchive/archive_write_add_filter_zstd.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_write_add_filter_zstd.Tpo libarchive/$(DEPDIR)/test-archive_write_add_filter_zstd.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_add_filter_zstd.c' object='libarchive/test-archive_write_add_filter_zstd.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_write_set_format.o `test -f 'libarchive/archive_write_set_format.c' || echo '$(srcdir)/'`libarchive/archive_write_set_format.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_write_add_filter_zstd.o `test -f 'libarchive/archive_write_add_filter_zstd.c' || echo '$(srcdir)/'`libarchive/archive_write_add_filter_zstd.c -libarchive/libarchive_test-archive_write_set_format.obj: libarchive/archive_write_set_format.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_write_set_format.obj -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_write_set_format.Tpo -c -o libarchive/libarchive_test-archive_write_set_format.obj `if test -f 'libarchive/archive_write_set_format.c'; then $(CYGPATH_W) 'libarchive/archive_write_set_format.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_set_format.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_write_set_format.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_write_set_format.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_set_format.c' object='libarchive/libarchive_test-archive_write_set_format.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_write_add_filter_zstd.obj: libarchive/archive_write_add_filter_zstd.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_write_add_filter_zstd.obj -MD -MP -MF libarchive/$(DEPDIR)/test-archive_write_add_filter_zstd.Tpo -c -o libarchive/test-archive_write_add_filter_zstd.obj `if test -f 'libarchive/archive_write_add_filter_zstd.c'; then $(CYGPATH_W) 'libarchive/archive_write_add_filter_zstd.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_add_filter_zstd.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_write_add_filter_zstd.Tpo libarchive/$(DEPDIR)/test-archive_write_add_filter_zstd.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_add_filter_zstd.c' object='libarchive/test-archive_write_add_filter_zstd.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_write_set_format.obj `if test -f 'libarchive/archive_write_set_format.c'; then $(CYGPATH_W) 'libarchive/archive_write_set_format.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_set_format.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_write_add_filter_zstd.obj `if test -f 'libarchive/archive_write_add_filter_zstd.c'; then $(CYGPATH_W) 'libarchive/archive_write_add_filter_zstd.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_add_filter_zstd.c'; fi` -libarchive/libarchive_test-archive_write_set_format_7zip.o: libarchive/archive_write_set_format_7zip.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_write_set_format_7zip.o -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_write_set_format_7zip.Tpo -c -o libarchive/libarchive_test-archive_write_set_format_7zip.o `test -f 'libarchive/archive_write_set_format_7zip.c' || echo '$(srcdir)/'`libarchive/archive_write_set_format_7zip.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_write_set_format_7zip.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_write_set_format_7zip.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_set_format_7zip.c' object='libarchive/libarchive_test-archive_write_set_format_7zip.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_write_set_format.o: libarchive/archive_write_set_format.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_write_set_format.o -MD -MP -MF libarchive/$(DEPDIR)/test-archive_write_set_format.Tpo -c -o libarchive/test-archive_write_set_format.o `test -f 'libarchive/archive_write_set_format.c' || echo '$(srcdir)/'`libarchive/archive_write_set_format.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_write_set_format.Tpo libarchive/$(DEPDIR)/test-archive_write_set_format.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_set_format.c' object='libarchive/test-archive_write_set_format.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_write_set_format_7zip.o `test -f 'libarchive/archive_write_set_format_7zip.c' || echo '$(srcdir)/'`libarchive/archive_write_set_format_7zip.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_write_set_format.o `test -f 'libarchive/archive_write_set_format.c' || echo '$(srcdir)/'`libarchive/archive_write_set_format.c -libarchive/libarchive_test-archive_write_set_format_7zip.obj: libarchive/archive_write_set_format_7zip.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_write_set_format_7zip.obj -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_write_set_format_7zip.Tpo -c -o libarchive/libarchive_test-archive_write_set_format_7zip.obj `if test -f 'libarchive/archive_write_set_format_7zip.c'; then $(CYGPATH_W) 'libarchive/archive_write_set_format_7zip.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_set_format_7zip.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_write_set_format_7zip.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_write_set_format_7zip.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_set_format_7zip.c' object='libarchive/libarchive_test-archive_write_set_format_7zip.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_write_set_format.obj: libarchive/archive_write_set_format.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_write_set_format.obj -MD -MP -MF libarchive/$(DEPDIR)/test-archive_write_set_format.Tpo -c -o libarchive/test-archive_write_set_format.obj `if test -f 'libarchive/archive_write_set_format.c'; then $(CYGPATH_W) 'libarchive/archive_write_set_format.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_set_format.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_write_set_format.Tpo libarchive/$(DEPDIR)/test-archive_write_set_format.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_set_format.c' object='libarchive/test-archive_write_set_format.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_write_set_format_7zip.obj `if test -f 'libarchive/archive_write_set_format_7zip.c'; then $(CYGPATH_W) 'libarchive/archive_write_set_format_7zip.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_set_format_7zip.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_write_set_format.obj `if test -f 'libarchive/archive_write_set_format.c'; then $(CYGPATH_W) 'libarchive/archive_write_set_format.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_set_format.c'; fi` -libarchive/libarchive_test-archive_write_set_format_ar.o: libarchive/archive_write_set_format_ar.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_write_set_format_ar.o -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_write_set_format_ar.Tpo -c -o libarchive/libarchive_test-archive_write_set_format_ar.o `test -f 'libarchive/archive_write_set_format_ar.c' || echo '$(srcdir)/'`libarchive/archive_write_set_format_ar.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_write_set_format_ar.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_write_set_format_ar.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_set_format_ar.c' object='libarchive/libarchive_test-archive_write_set_format_ar.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_write_set_format_7zip.o: libarchive/archive_write_set_format_7zip.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_write_set_format_7zip.o -MD -MP -MF libarchive/$(DEPDIR)/test-archive_write_set_format_7zip.Tpo -c -o libarchive/test-archive_write_set_format_7zip.o `test -f 'libarchive/archive_write_set_format_7zip.c' || echo '$(srcdir)/'`libarchive/archive_write_set_format_7zip.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_write_set_format_7zip.Tpo libarchive/$(DEPDIR)/test-archive_write_set_format_7zip.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_set_format_7zip.c' object='libarchive/test-archive_write_set_format_7zip.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_write_set_format_ar.o `test -f 'libarchive/archive_write_set_format_ar.c' || echo '$(srcdir)/'`libarchive/archive_write_set_format_ar.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_write_set_format_7zip.o `test -f 'libarchive/archive_write_set_format_7zip.c' || echo '$(srcdir)/'`libarchive/archive_write_set_format_7zip.c -libarchive/libarchive_test-archive_write_set_format_ar.obj: libarchive/archive_write_set_format_ar.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_write_set_format_ar.obj -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_write_set_format_ar.Tpo -c -o libarchive/libarchive_test-archive_write_set_format_ar.obj `if test -f 'libarchive/archive_write_set_format_ar.c'; then $(CYGPATH_W) 'libarchive/archive_write_set_format_ar.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_set_format_ar.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_write_set_format_ar.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_write_set_format_ar.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_set_format_ar.c' object='libarchive/libarchive_test-archive_write_set_format_ar.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_write_set_format_7zip.obj: libarchive/archive_write_set_format_7zip.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_write_set_format_7zip.obj -MD -MP -MF libarchive/$(DEPDIR)/test-archive_write_set_format_7zip.Tpo -c -o libarchive/test-archive_write_set_format_7zip.obj `if test -f 'libarchive/archive_write_set_format_7zip.c'; then $(CYGPATH_W) 'libarchive/archive_write_set_format_7zip.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_set_format_7zip.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_write_set_format_7zip.Tpo libarchive/$(DEPDIR)/test-archive_write_set_format_7zip.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_set_format_7zip.c' object='libarchive/test-archive_write_set_format_7zip.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_write_set_format_ar.obj `if test -f 'libarchive/archive_write_set_format_ar.c'; then $(CYGPATH_W) 'libarchive/archive_write_set_format_ar.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_set_format_ar.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_write_set_format_7zip.obj `if test -f 'libarchive/archive_write_set_format_7zip.c'; then $(CYGPATH_W) 'libarchive/archive_write_set_format_7zip.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_set_format_7zip.c'; fi` -libarchive/libarchive_test-archive_write_set_format_by_name.o: libarchive/archive_write_set_format_by_name.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_write_set_format_by_name.o -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_write_set_format_by_name.Tpo -c -o libarchive/libarchive_test-archive_write_set_format_by_name.o `test -f 'libarchive/archive_write_set_format_by_name.c' || echo '$(srcdir)/'`libarchive/archive_write_set_format_by_name.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_write_set_format_by_name.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_write_set_format_by_name.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_set_format_by_name.c' object='libarchive/libarchive_test-archive_write_set_format_by_name.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_write_set_format_ar.o: libarchive/archive_write_set_format_ar.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_write_set_format_ar.o -MD -MP -MF libarchive/$(DEPDIR)/test-archive_write_set_format_ar.Tpo -c -o libarchive/test-archive_write_set_format_ar.o `test -f 'libarchive/archive_write_set_format_ar.c' || echo '$(srcdir)/'`libarchive/archive_write_set_format_ar.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_write_set_format_ar.Tpo libarchive/$(DEPDIR)/test-archive_write_set_format_ar.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_set_format_ar.c' object='libarchive/test-archive_write_set_format_ar.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_write_set_format_by_name.o `test -f 'libarchive/archive_write_set_format_by_name.c' || echo '$(srcdir)/'`libarchive/archive_write_set_format_by_name.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_write_set_format_ar.o `test -f 'libarchive/archive_write_set_format_ar.c' || echo '$(srcdir)/'`libarchive/archive_write_set_format_ar.c -libarchive/libarchive_test-archive_write_set_format_by_name.obj: libarchive/archive_write_set_format_by_name.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_write_set_format_by_name.obj -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_write_set_format_by_name.Tpo -c -o libarchive/libarchive_test-archive_write_set_format_by_name.obj `if test -f 'libarchive/archive_write_set_format_by_name.c'; then $(CYGPATH_W) 'libarchive/archive_write_set_format_by_name.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_set_format_by_name.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_write_set_format_by_name.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_write_set_format_by_name.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_set_format_by_name.c' object='libarchive/libarchive_test-archive_write_set_format_by_name.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_write_set_format_ar.obj: libarchive/archive_write_set_format_ar.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_write_set_format_ar.obj -MD -MP -MF libarchive/$(DEPDIR)/test-archive_write_set_format_ar.Tpo -c -o libarchive/test-archive_write_set_format_ar.obj `if test -f 'libarchive/archive_write_set_format_ar.c'; then $(CYGPATH_W) 'libarchive/archive_write_set_format_ar.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_set_format_ar.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_write_set_format_ar.Tpo libarchive/$(DEPDIR)/test-archive_write_set_format_ar.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_set_format_ar.c' object='libarchive/test-archive_write_set_format_ar.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_write_set_format_by_name.obj `if test -f 'libarchive/archive_write_set_format_by_name.c'; then $(CYGPATH_W) 'libarchive/archive_write_set_format_by_name.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_set_format_by_name.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_write_set_format_ar.obj `if test -f 'libarchive/archive_write_set_format_ar.c'; then $(CYGPATH_W) 'libarchive/archive_write_set_format_ar.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_set_format_ar.c'; fi` -libarchive/libarchive_test-archive_write_set_format_cpio.o: libarchive/archive_write_set_format_cpio.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_write_set_format_cpio.o -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_write_set_format_cpio.Tpo -c -o libarchive/libarchive_test-archive_write_set_format_cpio.o `test -f 'libarchive/archive_write_set_format_cpio.c' || echo '$(srcdir)/'`libarchive/archive_write_set_format_cpio.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_write_set_format_cpio.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_write_set_format_cpio.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_set_format_cpio.c' object='libarchive/libarchive_test-archive_write_set_format_cpio.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_write_set_format_by_name.o: libarchive/archive_write_set_format_by_name.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_write_set_format_by_name.o -MD -MP -MF libarchive/$(DEPDIR)/test-archive_write_set_format_by_name.Tpo -c -o libarchive/test-archive_write_set_format_by_name.o `test -f 'libarchive/archive_write_set_format_by_name.c' || echo '$(srcdir)/'`libarchive/archive_write_set_format_by_name.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_write_set_format_by_name.Tpo libarchive/$(DEPDIR)/test-archive_write_set_format_by_name.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_set_format_by_name.c' object='libarchive/test-archive_write_set_format_by_name.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_write_set_format_cpio.o `test -f 'libarchive/archive_write_set_format_cpio.c' || echo '$(srcdir)/'`libarchive/archive_write_set_format_cpio.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_write_set_format_by_name.o `test -f 'libarchive/archive_write_set_format_by_name.c' || echo '$(srcdir)/'`libarchive/archive_write_set_format_by_name.c -libarchive/libarchive_test-archive_write_set_format_cpio.obj: libarchive/archive_write_set_format_cpio.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_write_set_format_cpio.obj -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_write_set_format_cpio.Tpo -c -o libarchive/libarchive_test-archive_write_set_format_cpio.obj `if test -f 'libarchive/archive_write_set_format_cpio.c'; then $(CYGPATH_W) 'libarchive/archive_write_set_format_cpio.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_set_format_cpio.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_write_set_format_cpio.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_write_set_format_cpio.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_set_format_cpio.c' object='libarchive/libarchive_test-archive_write_set_format_cpio.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_write_set_format_by_name.obj: libarchive/archive_write_set_format_by_name.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_write_set_format_by_name.obj -MD -MP -MF libarchive/$(DEPDIR)/test-archive_write_set_format_by_name.Tpo -c -o libarchive/test-archive_write_set_format_by_name.obj `if test -f 'libarchive/archive_write_set_format_by_name.c'; then $(CYGPATH_W) 'libarchive/archive_write_set_format_by_name.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_set_format_by_name.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_write_set_format_by_name.Tpo libarchive/$(DEPDIR)/test-archive_write_set_format_by_name.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_set_format_by_name.c' object='libarchive/test-archive_write_set_format_by_name.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_write_set_format_cpio.obj `if test -f 'libarchive/archive_write_set_format_cpio.c'; then $(CYGPATH_W) 'libarchive/archive_write_set_format_cpio.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_set_format_cpio.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_write_set_format_by_name.obj `if test -f 'libarchive/archive_write_set_format_by_name.c'; then $(CYGPATH_W) 'libarchive/archive_write_set_format_by_name.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_set_format_by_name.c'; fi` -libarchive/libarchive_test-archive_write_set_format_cpio_newc.o: libarchive/archive_write_set_format_cpio_newc.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_write_set_format_cpio_newc.o -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_write_set_format_cpio_newc.Tpo -c -o libarchive/libarchive_test-archive_write_set_format_cpio_newc.o `test -f 'libarchive/archive_write_set_format_cpio_newc.c' || echo '$(srcdir)/'`libarchive/archive_write_set_format_cpio_newc.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_write_set_format_cpio_newc.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_write_set_format_cpio_newc.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_set_format_cpio_newc.c' object='libarchive/libarchive_test-archive_write_set_format_cpio_newc.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_write_set_format_cpio.o: libarchive/archive_write_set_format_cpio.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_write_set_format_cpio.o -MD -MP -MF libarchive/$(DEPDIR)/test-archive_write_set_format_cpio.Tpo -c -o libarchive/test-archive_write_set_format_cpio.o `test -f 'libarchive/archive_write_set_format_cpio.c' || echo '$(srcdir)/'`libarchive/archive_write_set_format_cpio.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_write_set_format_cpio.Tpo libarchive/$(DEPDIR)/test-archive_write_set_format_cpio.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_set_format_cpio.c' object='libarchive/test-archive_write_set_format_cpio.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_write_set_format_cpio_newc.o `test -f 'libarchive/archive_write_set_format_cpio_newc.c' || echo '$(srcdir)/'`libarchive/archive_write_set_format_cpio_newc.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_write_set_format_cpio.o `test -f 'libarchive/archive_write_set_format_cpio.c' || echo '$(srcdir)/'`libarchive/archive_write_set_format_cpio.c -libarchive/libarchive_test-archive_write_set_format_cpio_newc.obj: libarchive/archive_write_set_format_cpio_newc.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_write_set_format_cpio_newc.obj -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_write_set_format_cpio_newc.Tpo -c -o libarchive/libarchive_test-archive_write_set_format_cpio_newc.obj `if test -f 'libarchive/archive_write_set_format_cpio_newc.c'; then $(CYGPATH_W) 'libarchive/archive_write_set_format_cpio_newc.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_set_format_cpio_newc.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_write_set_format_cpio_newc.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_write_set_format_cpio_newc.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_set_format_cpio_newc.c' object='libarchive/libarchive_test-archive_write_set_format_cpio_newc.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_write_set_format_cpio.obj: libarchive/archive_write_set_format_cpio.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_write_set_format_cpio.obj -MD -MP -MF libarchive/$(DEPDIR)/test-archive_write_set_format_cpio.Tpo -c -o libarchive/test-archive_write_set_format_cpio.obj `if test -f 'libarchive/archive_write_set_format_cpio.c'; then $(CYGPATH_W) 'libarchive/archive_write_set_format_cpio.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_set_format_cpio.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_write_set_format_cpio.Tpo libarchive/$(DEPDIR)/test-archive_write_set_format_cpio.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_set_format_cpio.c' object='libarchive/test-archive_write_set_format_cpio.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_write_set_format_cpio_newc.obj `if test -f 'libarchive/archive_write_set_format_cpio_newc.c'; then $(CYGPATH_W) 'libarchive/archive_write_set_format_cpio_newc.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_set_format_cpio_newc.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_write_set_format_cpio.obj `if test -f 'libarchive/archive_write_set_format_cpio.c'; then $(CYGPATH_W) 'libarchive/archive_write_set_format_cpio.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_set_format_cpio.c'; fi` -libarchive/libarchive_test-archive_write_set_format_filter_by_ext.o: libarchive/archive_write_set_format_filter_by_ext.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_write_set_format_filter_by_ext.o -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_write_set_format_filter_by_ext.Tpo -c -o libarchive/libarchive_test-archive_write_set_format_filter_by_ext.o `test -f 'libarchive/archive_write_set_format_filter_by_ext.c' || echo '$(srcdir)/'`libarchive/archive_write_set_format_filter_by_ext.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_write_set_format_filter_by_ext.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_write_set_format_filter_by_ext.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_set_format_filter_by_ext.c' object='libarchive/libarchive_test-archive_write_set_format_filter_by_ext.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_write_set_format_cpio_binary.o: libarchive/archive_write_set_format_cpio_binary.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_write_set_format_cpio_binary.o -MD -MP -MF libarchive/$(DEPDIR)/test-archive_write_set_format_cpio_binary.Tpo -c -o libarchive/test-archive_write_set_format_cpio_binary.o `test -f 'libarchive/archive_write_set_format_cpio_binary.c' || echo '$(srcdir)/'`libarchive/archive_write_set_format_cpio_binary.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_write_set_format_cpio_binary.Tpo libarchive/$(DEPDIR)/test-archive_write_set_format_cpio_binary.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_set_format_cpio_binary.c' object='libarchive/test-archive_write_set_format_cpio_binary.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_write_set_format_filter_by_ext.o `test -f 'libarchive/archive_write_set_format_filter_by_ext.c' || echo '$(srcdir)/'`libarchive/archive_write_set_format_filter_by_ext.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_write_set_format_cpio_binary.o `test -f 'libarchive/archive_write_set_format_cpio_binary.c' || echo '$(srcdir)/'`libarchive/archive_write_set_format_cpio_binary.c -libarchive/libarchive_test-archive_write_set_format_filter_by_ext.obj: libarchive/archive_write_set_format_filter_by_ext.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_write_set_format_filter_by_ext.obj -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_write_set_format_filter_by_ext.Tpo -c -o libarchive/libarchive_test-archive_write_set_format_filter_by_ext.obj `if test -f 'libarchive/archive_write_set_format_filter_by_ext.c'; then $(CYGPATH_W) 'libarchive/archive_write_set_format_filter_by_ext.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_set_format_filter_by_ext.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_write_set_format_filter_by_ext.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_write_set_format_filter_by_ext.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_set_format_filter_by_ext.c' object='libarchive/libarchive_test-archive_write_set_format_filter_by_ext.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_write_set_format_cpio_binary.obj: libarchive/archive_write_set_format_cpio_binary.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_write_set_format_cpio_binary.obj -MD -MP -MF libarchive/$(DEPDIR)/test-archive_write_set_format_cpio_binary.Tpo -c -o libarchive/test-archive_write_set_format_cpio_binary.obj `if test -f 'libarchive/archive_write_set_format_cpio_binary.c'; then $(CYGPATH_W) 'libarchive/archive_write_set_format_cpio_binary.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_set_format_cpio_binary.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_write_set_format_cpio_binary.Tpo libarchive/$(DEPDIR)/test-archive_write_set_format_cpio_binary.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_set_format_cpio_binary.c' object='libarchive/test-archive_write_set_format_cpio_binary.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_write_set_format_filter_by_ext.obj `if test -f 'libarchive/archive_write_set_format_filter_by_ext.c'; then $(CYGPATH_W) 'libarchive/archive_write_set_format_filter_by_ext.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_set_format_filter_by_ext.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_write_set_format_cpio_binary.obj `if test -f 'libarchive/archive_write_set_format_cpio_binary.c'; then $(CYGPATH_W) 'libarchive/archive_write_set_format_cpio_binary.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_set_format_cpio_binary.c'; fi` -libarchive/libarchive_test-archive_write_set_format_iso9660.o: libarchive/archive_write_set_format_iso9660.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_write_set_format_iso9660.o -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_write_set_format_iso9660.Tpo -c -o libarchive/libarchive_test-archive_write_set_format_iso9660.o `test -f 'libarchive/archive_write_set_format_iso9660.c' || echo '$(srcdir)/'`libarchive/archive_write_set_format_iso9660.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_write_set_format_iso9660.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_write_set_format_iso9660.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_set_format_iso9660.c' object='libarchive/libarchive_test-archive_write_set_format_iso9660.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_write_set_format_cpio_newc.o: libarchive/archive_write_set_format_cpio_newc.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_write_set_format_cpio_newc.o -MD -MP -MF libarchive/$(DEPDIR)/test-archive_write_set_format_cpio_newc.Tpo -c -o libarchive/test-archive_write_set_format_cpio_newc.o `test -f 'libarchive/archive_write_set_format_cpio_newc.c' || echo '$(srcdir)/'`libarchive/archive_write_set_format_cpio_newc.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_write_set_format_cpio_newc.Tpo libarchive/$(DEPDIR)/test-archive_write_set_format_cpio_newc.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_set_format_cpio_newc.c' object='libarchive/test-archive_write_set_format_cpio_newc.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_write_set_format_iso9660.o `test -f 'libarchive/archive_write_set_format_iso9660.c' || echo '$(srcdir)/'`libarchive/archive_write_set_format_iso9660.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_write_set_format_cpio_newc.o `test -f 'libarchive/archive_write_set_format_cpio_newc.c' || echo '$(srcdir)/'`libarchive/archive_write_set_format_cpio_newc.c -libarchive/libarchive_test-archive_write_set_format_iso9660.obj: libarchive/archive_write_set_format_iso9660.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_write_set_format_iso9660.obj -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_write_set_format_iso9660.Tpo -c -o libarchive/libarchive_test-archive_write_set_format_iso9660.obj `if test -f 'libarchive/archive_write_set_format_iso9660.c'; then $(CYGPATH_W) 'libarchive/archive_write_set_format_iso9660.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_set_format_iso9660.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_write_set_format_iso9660.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_write_set_format_iso9660.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_set_format_iso9660.c' object='libarchive/libarchive_test-archive_write_set_format_iso9660.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_write_set_format_cpio_newc.obj: libarchive/archive_write_set_format_cpio_newc.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_write_set_format_cpio_newc.obj -MD -MP -MF libarchive/$(DEPDIR)/test-archive_write_set_format_cpio_newc.Tpo -c -o libarchive/test-archive_write_set_format_cpio_newc.obj `if test -f 'libarchive/archive_write_set_format_cpio_newc.c'; then $(CYGPATH_W) 'libarchive/archive_write_set_format_cpio_newc.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_set_format_cpio_newc.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_write_set_format_cpio_newc.Tpo libarchive/$(DEPDIR)/test-archive_write_set_format_cpio_newc.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_set_format_cpio_newc.c' object='libarchive/test-archive_write_set_format_cpio_newc.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_write_set_format_iso9660.obj `if test -f 'libarchive/archive_write_set_format_iso9660.c'; then $(CYGPATH_W) 'libarchive/archive_write_set_format_iso9660.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_set_format_iso9660.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_write_set_format_cpio_newc.obj `if test -f 'libarchive/archive_write_set_format_cpio_newc.c'; then $(CYGPATH_W) 'libarchive/archive_write_set_format_cpio_newc.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_set_format_cpio_newc.c'; fi` -libarchive/libarchive_test-archive_write_set_format_mtree.o: libarchive/archive_write_set_format_mtree.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_write_set_format_mtree.o -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_write_set_format_mtree.Tpo -c -o libarchive/libarchive_test-archive_write_set_format_mtree.o `test -f 'libarchive/archive_write_set_format_mtree.c' || echo '$(srcdir)/'`libarchive/archive_write_set_format_mtree.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_write_set_format_mtree.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_write_set_format_mtree.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_set_format_mtree.c' object='libarchive/libarchive_test-archive_write_set_format_mtree.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_write_set_format_cpio_odc.o: libarchive/archive_write_set_format_cpio_odc.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_write_set_format_cpio_odc.o -MD -MP -MF libarchive/$(DEPDIR)/test-archive_write_set_format_cpio_odc.Tpo -c -o libarchive/test-archive_write_set_format_cpio_odc.o `test -f 'libarchive/archive_write_set_format_cpio_odc.c' || echo '$(srcdir)/'`libarchive/archive_write_set_format_cpio_odc.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_write_set_format_cpio_odc.Tpo libarchive/$(DEPDIR)/test-archive_write_set_format_cpio_odc.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_set_format_cpio_odc.c' object='libarchive/test-archive_write_set_format_cpio_odc.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_write_set_format_mtree.o `test -f 'libarchive/archive_write_set_format_mtree.c' || echo '$(srcdir)/'`libarchive/archive_write_set_format_mtree.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_write_set_format_cpio_odc.o `test -f 'libarchive/archive_write_set_format_cpio_odc.c' || echo '$(srcdir)/'`libarchive/archive_write_set_format_cpio_odc.c -libarchive/libarchive_test-archive_write_set_format_mtree.obj: libarchive/archive_write_set_format_mtree.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_write_set_format_mtree.obj -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_write_set_format_mtree.Tpo -c -o libarchive/libarchive_test-archive_write_set_format_mtree.obj `if test -f 'libarchive/archive_write_set_format_mtree.c'; then $(CYGPATH_W) 'libarchive/archive_write_set_format_mtree.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_set_format_mtree.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_write_set_format_mtree.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_write_set_format_mtree.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_set_format_mtree.c' object='libarchive/libarchive_test-archive_write_set_format_mtree.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_write_set_format_cpio_odc.obj: libarchive/archive_write_set_format_cpio_odc.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_write_set_format_cpio_odc.obj -MD -MP -MF libarchive/$(DEPDIR)/test-archive_write_set_format_cpio_odc.Tpo -c -o libarchive/test-archive_write_set_format_cpio_odc.obj `if test -f 'libarchive/archive_write_set_format_cpio_odc.c'; then $(CYGPATH_W) 'libarchive/archive_write_set_format_cpio_odc.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_set_format_cpio_odc.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_write_set_format_cpio_odc.Tpo libarchive/$(DEPDIR)/test-archive_write_set_format_cpio_odc.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_set_format_cpio_odc.c' object='libarchive/test-archive_write_set_format_cpio_odc.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_write_set_format_mtree.obj `if test -f 'libarchive/archive_write_set_format_mtree.c'; then $(CYGPATH_W) 'libarchive/archive_write_set_format_mtree.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_set_format_mtree.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_write_set_format_cpio_odc.obj `if test -f 'libarchive/archive_write_set_format_cpio_odc.c'; then $(CYGPATH_W) 'libarchive/archive_write_set_format_cpio_odc.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_set_format_cpio_odc.c'; fi` -libarchive/libarchive_test-archive_write_set_format_pax.o: libarchive/archive_write_set_format_pax.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_write_set_format_pax.o -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_write_set_format_pax.Tpo -c -o libarchive/libarchive_test-archive_write_set_format_pax.o `test -f 'libarchive/archive_write_set_format_pax.c' || echo '$(srcdir)/'`libarchive/archive_write_set_format_pax.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_write_set_format_pax.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_write_set_format_pax.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_set_format_pax.c' object='libarchive/libarchive_test-archive_write_set_format_pax.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_write_set_format_filter_by_ext.o: libarchive/archive_write_set_format_filter_by_ext.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_write_set_format_filter_by_ext.o -MD -MP -MF libarchive/$(DEPDIR)/test-archive_write_set_format_filter_by_ext.Tpo -c -o libarchive/test-archive_write_set_format_filter_by_ext.o `test -f 'libarchive/archive_write_set_format_filter_by_ext.c' || echo '$(srcdir)/'`libarchive/archive_write_set_format_filter_by_ext.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_write_set_format_filter_by_ext.Tpo libarchive/$(DEPDIR)/test-archive_write_set_format_filter_by_ext.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_set_format_filter_by_ext.c' object='libarchive/test-archive_write_set_format_filter_by_ext.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_write_set_format_pax.o `test -f 'libarchive/archive_write_set_format_pax.c' || echo '$(srcdir)/'`libarchive/archive_write_set_format_pax.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_write_set_format_filter_by_ext.o `test -f 'libarchive/archive_write_set_format_filter_by_ext.c' || echo '$(srcdir)/'`libarchive/archive_write_set_format_filter_by_ext.c -libarchive/libarchive_test-archive_write_set_format_pax.obj: libarchive/archive_write_set_format_pax.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_write_set_format_pax.obj -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_write_set_format_pax.Tpo -c -o libarchive/libarchive_test-archive_write_set_format_pax.obj `if test -f 'libarchive/archive_write_set_format_pax.c'; then $(CYGPATH_W) 'libarchive/archive_write_set_format_pax.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_set_format_pax.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_write_set_format_pax.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_write_set_format_pax.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_set_format_pax.c' object='libarchive/libarchive_test-archive_write_set_format_pax.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_write_set_format_filter_by_ext.obj: libarchive/archive_write_set_format_filter_by_ext.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_write_set_format_filter_by_ext.obj -MD -MP -MF libarchive/$(DEPDIR)/test-archive_write_set_format_filter_by_ext.Tpo -c -o libarchive/test-archive_write_set_format_filter_by_ext.obj `if test -f 'libarchive/archive_write_set_format_filter_by_ext.c'; then $(CYGPATH_W) 'libarchive/archive_write_set_format_filter_by_ext.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_set_format_filter_by_ext.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_write_set_format_filter_by_ext.Tpo libarchive/$(DEPDIR)/test-archive_write_set_format_filter_by_ext.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_set_format_filter_by_ext.c' object='libarchive/test-archive_write_set_format_filter_by_ext.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_write_set_format_pax.obj `if test -f 'libarchive/archive_write_set_format_pax.c'; then $(CYGPATH_W) 'libarchive/archive_write_set_format_pax.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_set_format_pax.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_write_set_format_filter_by_ext.obj `if test -f 'libarchive/archive_write_set_format_filter_by_ext.c'; then $(CYGPATH_W) 'libarchive/archive_write_set_format_filter_by_ext.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_set_format_filter_by_ext.c'; fi` -libarchive/libarchive_test-archive_write_set_format_raw.o: libarchive/archive_write_set_format_raw.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_write_set_format_raw.o -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_write_set_format_raw.Tpo -c -o libarchive/libarchive_test-archive_write_set_format_raw.o `test -f 'libarchive/archive_write_set_format_raw.c' || echo '$(srcdir)/'`libarchive/archive_write_set_format_raw.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_write_set_format_raw.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_write_set_format_raw.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_set_format_raw.c' object='libarchive/libarchive_test-archive_write_set_format_raw.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_write_set_format_iso9660.o: libarchive/archive_write_set_format_iso9660.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_write_set_format_iso9660.o -MD -MP -MF libarchive/$(DEPDIR)/test-archive_write_set_format_iso9660.Tpo -c -o libarchive/test-archive_write_set_format_iso9660.o `test -f 'libarchive/archive_write_set_format_iso9660.c' || echo '$(srcdir)/'`libarchive/archive_write_set_format_iso9660.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_write_set_format_iso9660.Tpo libarchive/$(DEPDIR)/test-archive_write_set_format_iso9660.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_set_format_iso9660.c' object='libarchive/test-archive_write_set_format_iso9660.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_write_set_format_raw.o `test -f 'libarchive/archive_write_set_format_raw.c' || echo '$(srcdir)/'`libarchive/archive_write_set_format_raw.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_write_set_format_iso9660.o `test -f 'libarchive/archive_write_set_format_iso9660.c' || echo '$(srcdir)/'`libarchive/archive_write_set_format_iso9660.c -libarchive/libarchive_test-archive_write_set_format_raw.obj: libarchive/archive_write_set_format_raw.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_write_set_format_raw.obj -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_write_set_format_raw.Tpo -c -o libarchive/libarchive_test-archive_write_set_format_raw.obj `if test -f 'libarchive/archive_write_set_format_raw.c'; then $(CYGPATH_W) 'libarchive/archive_write_set_format_raw.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_set_format_raw.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_write_set_format_raw.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_write_set_format_raw.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_set_format_raw.c' object='libarchive/libarchive_test-archive_write_set_format_raw.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_write_set_format_iso9660.obj: libarchive/archive_write_set_format_iso9660.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_write_set_format_iso9660.obj -MD -MP -MF libarchive/$(DEPDIR)/test-archive_write_set_format_iso9660.Tpo -c -o libarchive/test-archive_write_set_format_iso9660.obj `if test -f 'libarchive/archive_write_set_format_iso9660.c'; then $(CYGPATH_W) 'libarchive/archive_write_set_format_iso9660.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_set_format_iso9660.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_write_set_format_iso9660.Tpo libarchive/$(DEPDIR)/test-archive_write_set_format_iso9660.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_set_format_iso9660.c' object='libarchive/test-archive_write_set_format_iso9660.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_write_set_format_raw.obj `if test -f 'libarchive/archive_write_set_format_raw.c'; then $(CYGPATH_W) 'libarchive/archive_write_set_format_raw.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_set_format_raw.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_write_set_format_iso9660.obj `if test -f 'libarchive/archive_write_set_format_iso9660.c'; then $(CYGPATH_W) 'libarchive/archive_write_set_format_iso9660.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_set_format_iso9660.c'; fi` -libarchive/libarchive_test-archive_write_set_format_shar.o: libarchive/archive_write_set_format_shar.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_write_set_format_shar.o -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_write_set_format_shar.Tpo -c -o libarchive/libarchive_test-archive_write_set_format_shar.o `test -f 'libarchive/archive_write_set_format_shar.c' || echo '$(srcdir)/'`libarchive/archive_write_set_format_shar.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_write_set_format_shar.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_write_set_format_shar.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_set_format_shar.c' object='libarchive/libarchive_test-archive_write_set_format_shar.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_write_set_format_mtree.o: libarchive/archive_write_set_format_mtree.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_write_set_format_mtree.o -MD -MP -MF libarchive/$(DEPDIR)/test-archive_write_set_format_mtree.Tpo -c -o libarchive/test-archive_write_set_format_mtree.o `test -f 'libarchive/archive_write_set_format_mtree.c' || echo '$(srcdir)/'`libarchive/archive_write_set_format_mtree.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_write_set_format_mtree.Tpo libarchive/$(DEPDIR)/test-archive_write_set_format_mtree.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_set_format_mtree.c' object='libarchive/test-archive_write_set_format_mtree.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_write_set_format_shar.o `test -f 'libarchive/archive_write_set_format_shar.c' || echo '$(srcdir)/'`libarchive/archive_write_set_format_shar.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_write_set_format_mtree.o `test -f 'libarchive/archive_write_set_format_mtree.c' || echo '$(srcdir)/'`libarchive/archive_write_set_format_mtree.c -libarchive/libarchive_test-archive_write_set_format_shar.obj: libarchive/archive_write_set_format_shar.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_write_set_format_shar.obj -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_write_set_format_shar.Tpo -c -o libarchive/libarchive_test-archive_write_set_format_shar.obj `if test -f 'libarchive/archive_write_set_format_shar.c'; then $(CYGPATH_W) 'libarchive/archive_write_set_format_shar.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_set_format_shar.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_write_set_format_shar.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_write_set_format_shar.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_set_format_shar.c' object='libarchive/libarchive_test-archive_write_set_format_shar.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_write_set_format_mtree.obj: libarchive/archive_write_set_format_mtree.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_write_set_format_mtree.obj -MD -MP -MF libarchive/$(DEPDIR)/test-archive_write_set_format_mtree.Tpo -c -o libarchive/test-archive_write_set_format_mtree.obj `if test -f 'libarchive/archive_write_set_format_mtree.c'; then $(CYGPATH_W) 'libarchive/archive_write_set_format_mtree.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_set_format_mtree.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_write_set_format_mtree.Tpo libarchive/$(DEPDIR)/test-archive_write_set_format_mtree.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_set_format_mtree.c' object='libarchive/test-archive_write_set_format_mtree.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_write_set_format_shar.obj `if test -f 'libarchive/archive_write_set_format_shar.c'; then $(CYGPATH_W) 'libarchive/archive_write_set_format_shar.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_set_format_shar.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_write_set_format_mtree.obj `if test -f 'libarchive/archive_write_set_format_mtree.c'; then $(CYGPATH_W) 'libarchive/archive_write_set_format_mtree.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_set_format_mtree.c'; fi` -libarchive/libarchive_test-archive_write_set_format_ustar.o: libarchive/archive_write_set_format_ustar.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_write_set_format_ustar.o -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_write_set_format_ustar.Tpo -c -o libarchive/libarchive_test-archive_write_set_format_ustar.o `test -f 'libarchive/archive_write_set_format_ustar.c' || echo '$(srcdir)/'`libarchive/archive_write_set_format_ustar.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_write_set_format_ustar.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_write_set_format_ustar.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_set_format_ustar.c' object='libarchive/libarchive_test-archive_write_set_format_ustar.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_write_set_format_pax.o: libarchive/archive_write_set_format_pax.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_write_set_format_pax.o -MD -MP -MF libarchive/$(DEPDIR)/test-archive_write_set_format_pax.Tpo -c -o libarchive/test-archive_write_set_format_pax.o `test -f 'libarchive/archive_write_set_format_pax.c' || echo '$(srcdir)/'`libarchive/archive_write_set_format_pax.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_write_set_format_pax.Tpo libarchive/$(DEPDIR)/test-archive_write_set_format_pax.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_set_format_pax.c' object='libarchive/test-archive_write_set_format_pax.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_write_set_format_ustar.o `test -f 'libarchive/archive_write_set_format_ustar.c' || echo '$(srcdir)/'`libarchive/archive_write_set_format_ustar.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_write_set_format_pax.o `test -f 'libarchive/archive_write_set_format_pax.c' || echo '$(srcdir)/'`libarchive/archive_write_set_format_pax.c -libarchive/libarchive_test-archive_write_set_format_ustar.obj: libarchive/archive_write_set_format_ustar.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_write_set_format_ustar.obj -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_write_set_format_ustar.Tpo -c -o libarchive/libarchive_test-archive_write_set_format_ustar.obj `if test -f 'libarchive/archive_write_set_format_ustar.c'; then $(CYGPATH_W) 'libarchive/archive_write_set_format_ustar.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_set_format_ustar.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_write_set_format_ustar.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_write_set_format_ustar.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_set_format_ustar.c' object='libarchive/libarchive_test-archive_write_set_format_ustar.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_write_set_format_pax.obj: libarchive/archive_write_set_format_pax.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_write_set_format_pax.obj -MD -MP -MF libarchive/$(DEPDIR)/test-archive_write_set_format_pax.Tpo -c -o libarchive/test-archive_write_set_format_pax.obj `if test -f 'libarchive/archive_write_set_format_pax.c'; then $(CYGPATH_W) 'libarchive/archive_write_set_format_pax.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_set_format_pax.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_write_set_format_pax.Tpo libarchive/$(DEPDIR)/test-archive_write_set_format_pax.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_set_format_pax.c' object='libarchive/test-archive_write_set_format_pax.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_write_set_format_ustar.obj `if test -f 'libarchive/archive_write_set_format_ustar.c'; then $(CYGPATH_W) 'libarchive/archive_write_set_format_ustar.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_set_format_ustar.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_write_set_format_pax.obj `if test -f 'libarchive/archive_write_set_format_pax.c'; then $(CYGPATH_W) 'libarchive/archive_write_set_format_pax.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_set_format_pax.c'; fi` -libarchive/libarchive_test-archive_write_set_format_v7tar.o: libarchive/archive_write_set_format_v7tar.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_write_set_format_v7tar.o -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_write_set_format_v7tar.Tpo -c -o libarchive/libarchive_test-archive_write_set_format_v7tar.o `test -f 'libarchive/archive_write_set_format_v7tar.c' || echo '$(srcdir)/'`libarchive/archive_write_set_format_v7tar.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_write_set_format_v7tar.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_write_set_format_v7tar.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_set_format_v7tar.c' object='libarchive/libarchive_test-archive_write_set_format_v7tar.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_write_set_format_raw.o: libarchive/archive_write_set_format_raw.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_write_set_format_raw.o -MD -MP -MF libarchive/$(DEPDIR)/test-archive_write_set_format_raw.Tpo -c -o libarchive/test-archive_write_set_format_raw.o `test -f 'libarchive/archive_write_set_format_raw.c' || echo '$(srcdir)/'`libarchive/archive_write_set_format_raw.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_write_set_format_raw.Tpo libarchive/$(DEPDIR)/test-archive_write_set_format_raw.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_set_format_raw.c' object='libarchive/test-archive_write_set_format_raw.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_write_set_format_v7tar.o `test -f 'libarchive/archive_write_set_format_v7tar.c' || echo '$(srcdir)/'`libarchive/archive_write_set_format_v7tar.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_write_set_format_raw.o `test -f 'libarchive/archive_write_set_format_raw.c' || echo '$(srcdir)/'`libarchive/archive_write_set_format_raw.c -libarchive/libarchive_test-archive_write_set_format_v7tar.obj: libarchive/archive_write_set_format_v7tar.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_write_set_format_v7tar.obj -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_write_set_format_v7tar.Tpo -c -o libarchive/libarchive_test-archive_write_set_format_v7tar.obj `if test -f 'libarchive/archive_write_set_format_v7tar.c'; then $(CYGPATH_W) 'libarchive/archive_write_set_format_v7tar.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_set_format_v7tar.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_write_set_format_v7tar.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_write_set_format_v7tar.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_set_format_v7tar.c' object='libarchive/libarchive_test-archive_write_set_format_v7tar.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_write_set_format_raw.obj: libarchive/archive_write_set_format_raw.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_write_set_format_raw.obj -MD -MP -MF libarchive/$(DEPDIR)/test-archive_write_set_format_raw.Tpo -c -o libarchive/test-archive_write_set_format_raw.obj `if test -f 'libarchive/archive_write_set_format_raw.c'; then $(CYGPATH_W) 'libarchive/archive_write_set_format_raw.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_set_format_raw.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_write_set_format_raw.Tpo libarchive/$(DEPDIR)/test-archive_write_set_format_raw.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_set_format_raw.c' object='libarchive/test-archive_write_set_format_raw.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_write_set_format_v7tar.obj `if test -f 'libarchive/archive_write_set_format_v7tar.c'; then $(CYGPATH_W) 'libarchive/archive_write_set_format_v7tar.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_set_format_v7tar.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_write_set_format_raw.obj `if test -f 'libarchive/archive_write_set_format_raw.c'; then $(CYGPATH_W) 'libarchive/archive_write_set_format_raw.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_set_format_raw.c'; fi` -libarchive/libarchive_test-archive_write_set_format_gnutar.o: libarchive/archive_write_set_format_gnutar.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_write_set_format_gnutar.o -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_write_set_format_gnutar.Tpo -c -o libarchive/libarchive_test-archive_write_set_format_gnutar.o `test -f 'libarchive/archive_write_set_format_gnutar.c' || echo '$(srcdir)/'`libarchive/archive_write_set_format_gnutar.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_write_set_format_gnutar.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_write_set_format_gnutar.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_set_format_gnutar.c' object='libarchive/libarchive_test-archive_write_set_format_gnutar.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_write_set_format_shar.o: libarchive/archive_write_set_format_shar.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_write_set_format_shar.o -MD -MP -MF libarchive/$(DEPDIR)/test-archive_write_set_format_shar.Tpo -c -o libarchive/test-archive_write_set_format_shar.o `test -f 'libarchive/archive_write_set_format_shar.c' || echo '$(srcdir)/'`libarchive/archive_write_set_format_shar.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_write_set_format_shar.Tpo libarchive/$(DEPDIR)/test-archive_write_set_format_shar.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_set_format_shar.c' object='libarchive/test-archive_write_set_format_shar.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_write_set_format_gnutar.o `test -f 'libarchive/archive_write_set_format_gnutar.c' || echo '$(srcdir)/'`libarchive/archive_write_set_format_gnutar.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_write_set_format_shar.o `test -f 'libarchive/archive_write_set_format_shar.c' || echo '$(srcdir)/'`libarchive/archive_write_set_format_shar.c -libarchive/libarchive_test-archive_write_set_format_gnutar.obj: libarchive/archive_write_set_format_gnutar.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_write_set_format_gnutar.obj -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_write_set_format_gnutar.Tpo -c -o libarchive/libarchive_test-archive_write_set_format_gnutar.obj `if test -f 'libarchive/archive_write_set_format_gnutar.c'; then $(CYGPATH_W) 'libarchive/archive_write_set_format_gnutar.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_set_format_gnutar.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_write_set_format_gnutar.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_write_set_format_gnutar.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_set_format_gnutar.c' object='libarchive/libarchive_test-archive_write_set_format_gnutar.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_write_set_format_shar.obj: libarchive/archive_write_set_format_shar.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_write_set_format_shar.obj -MD -MP -MF libarchive/$(DEPDIR)/test-archive_write_set_format_shar.Tpo -c -o libarchive/test-archive_write_set_format_shar.obj `if test -f 'libarchive/archive_write_set_format_shar.c'; then $(CYGPATH_W) 'libarchive/archive_write_set_format_shar.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_set_format_shar.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_write_set_format_shar.Tpo libarchive/$(DEPDIR)/test-archive_write_set_format_shar.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_set_format_shar.c' object='libarchive/test-archive_write_set_format_shar.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_write_set_format_gnutar.obj `if test -f 'libarchive/archive_write_set_format_gnutar.c'; then $(CYGPATH_W) 'libarchive/archive_write_set_format_gnutar.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_set_format_gnutar.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_write_set_format_shar.obj `if test -f 'libarchive/archive_write_set_format_shar.c'; then $(CYGPATH_W) 'libarchive/archive_write_set_format_shar.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_set_format_shar.c'; fi` -libarchive/libarchive_test-archive_write_set_format_warc.o: libarchive/archive_write_set_format_warc.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_write_set_format_warc.o -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_write_set_format_warc.Tpo -c -o libarchive/libarchive_test-archive_write_set_format_warc.o `test -f 'libarchive/archive_write_set_format_warc.c' || echo '$(srcdir)/'`libarchive/archive_write_set_format_warc.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_write_set_format_warc.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_write_set_format_warc.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_set_format_warc.c' object='libarchive/libarchive_test-archive_write_set_format_warc.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_write_set_format_ustar.o: libarchive/archive_write_set_format_ustar.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_write_set_format_ustar.o -MD -MP -MF libarchive/$(DEPDIR)/test-archive_write_set_format_ustar.Tpo -c -o libarchive/test-archive_write_set_format_ustar.o `test -f 'libarchive/archive_write_set_format_ustar.c' || echo '$(srcdir)/'`libarchive/archive_write_set_format_ustar.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_write_set_format_ustar.Tpo libarchive/$(DEPDIR)/test-archive_write_set_format_ustar.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_set_format_ustar.c' object='libarchive/test-archive_write_set_format_ustar.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_write_set_format_warc.o `test -f 'libarchive/archive_write_set_format_warc.c' || echo '$(srcdir)/'`libarchive/archive_write_set_format_warc.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_write_set_format_ustar.o `test -f 'libarchive/archive_write_set_format_ustar.c' || echo '$(srcdir)/'`libarchive/archive_write_set_format_ustar.c -libarchive/libarchive_test-archive_write_set_format_warc.obj: libarchive/archive_write_set_format_warc.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_write_set_format_warc.obj -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_write_set_format_warc.Tpo -c -o libarchive/libarchive_test-archive_write_set_format_warc.obj `if test -f 'libarchive/archive_write_set_format_warc.c'; then $(CYGPATH_W) 'libarchive/archive_write_set_format_warc.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_set_format_warc.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_write_set_format_warc.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_write_set_format_warc.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_set_format_warc.c' object='libarchive/libarchive_test-archive_write_set_format_warc.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_write_set_format_ustar.obj: libarchive/archive_write_set_format_ustar.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_write_set_format_ustar.obj -MD -MP -MF libarchive/$(DEPDIR)/test-archive_write_set_format_ustar.Tpo -c -o libarchive/test-archive_write_set_format_ustar.obj `if test -f 'libarchive/archive_write_set_format_ustar.c'; then $(CYGPATH_W) 'libarchive/archive_write_set_format_ustar.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_set_format_ustar.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_write_set_format_ustar.Tpo libarchive/$(DEPDIR)/test-archive_write_set_format_ustar.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_set_format_ustar.c' object='libarchive/test-archive_write_set_format_ustar.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_write_set_format_warc.obj `if test -f 'libarchive/archive_write_set_format_warc.c'; then $(CYGPATH_W) 'libarchive/archive_write_set_format_warc.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_set_format_warc.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_write_set_format_ustar.obj `if test -f 'libarchive/archive_write_set_format_ustar.c'; then $(CYGPATH_W) 'libarchive/archive_write_set_format_ustar.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_set_format_ustar.c'; fi` -libarchive/libarchive_test-archive_write_set_format_xar.o: libarchive/archive_write_set_format_xar.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_write_set_format_xar.o -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_write_set_format_xar.Tpo -c -o libarchive/libarchive_test-archive_write_set_format_xar.o `test -f 'libarchive/archive_write_set_format_xar.c' || echo '$(srcdir)/'`libarchive/archive_write_set_format_xar.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_write_set_format_xar.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_write_set_format_xar.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_set_format_xar.c' object='libarchive/libarchive_test-archive_write_set_format_xar.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_write_set_format_v7tar.o: libarchive/archive_write_set_format_v7tar.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_write_set_format_v7tar.o -MD -MP -MF libarchive/$(DEPDIR)/test-archive_write_set_format_v7tar.Tpo -c -o libarchive/test-archive_write_set_format_v7tar.o `test -f 'libarchive/archive_write_set_format_v7tar.c' || echo '$(srcdir)/'`libarchive/archive_write_set_format_v7tar.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_write_set_format_v7tar.Tpo libarchive/$(DEPDIR)/test-archive_write_set_format_v7tar.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_set_format_v7tar.c' object='libarchive/test-archive_write_set_format_v7tar.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_write_set_format_xar.o `test -f 'libarchive/archive_write_set_format_xar.c' || echo '$(srcdir)/'`libarchive/archive_write_set_format_xar.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_write_set_format_v7tar.o `test -f 'libarchive/archive_write_set_format_v7tar.c' || echo '$(srcdir)/'`libarchive/archive_write_set_format_v7tar.c -libarchive/libarchive_test-archive_write_set_format_xar.obj: libarchive/archive_write_set_format_xar.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_write_set_format_xar.obj -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_write_set_format_xar.Tpo -c -o libarchive/libarchive_test-archive_write_set_format_xar.obj `if test -f 'libarchive/archive_write_set_format_xar.c'; then $(CYGPATH_W) 'libarchive/archive_write_set_format_xar.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_set_format_xar.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_write_set_format_xar.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_write_set_format_xar.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_set_format_xar.c' object='libarchive/libarchive_test-archive_write_set_format_xar.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_write_set_format_v7tar.obj: libarchive/archive_write_set_format_v7tar.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_write_set_format_v7tar.obj -MD -MP -MF libarchive/$(DEPDIR)/test-archive_write_set_format_v7tar.Tpo -c -o libarchive/test-archive_write_set_format_v7tar.obj `if test -f 'libarchive/archive_write_set_format_v7tar.c'; then $(CYGPATH_W) 'libarchive/archive_write_set_format_v7tar.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_set_format_v7tar.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_write_set_format_v7tar.Tpo libarchive/$(DEPDIR)/test-archive_write_set_format_v7tar.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_set_format_v7tar.c' object='libarchive/test-archive_write_set_format_v7tar.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_write_set_format_xar.obj `if test -f 'libarchive/archive_write_set_format_xar.c'; then $(CYGPATH_W) 'libarchive/archive_write_set_format_xar.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_set_format_xar.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_write_set_format_v7tar.obj `if test -f 'libarchive/archive_write_set_format_v7tar.c'; then $(CYGPATH_W) 'libarchive/archive_write_set_format_v7tar.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_set_format_v7tar.c'; fi` -libarchive/libarchive_test-archive_write_set_format_zip.o: libarchive/archive_write_set_format_zip.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_write_set_format_zip.o -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_write_set_format_zip.Tpo -c -o libarchive/libarchive_test-archive_write_set_format_zip.o `test -f 'libarchive/archive_write_set_format_zip.c' || echo '$(srcdir)/'`libarchive/archive_write_set_format_zip.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_write_set_format_zip.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_write_set_format_zip.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_set_format_zip.c' object='libarchive/libarchive_test-archive_write_set_format_zip.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_write_set_format_gnutar.o: libarchive/archive_write_set_format_gnutar.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_write_set_format_gnutar.o -MD -MP -MF libarchive/$(DEPDIR)/test-archive_write_set_format_gnutar.Tpo -c -o libarchive/test-archive_write_set_format_gnutar.o `test -f 'libarchive/archive_write_set_format_gnutar.c' || echo '$(srcdir)/'`libarchive/archive_write_set_format_gnutar.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_write_set_format_gnutar.Tpo libarchive/$(DEPDIR)/test-archive_write_set_format_gnutar.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_set_format_gnutar.c' object='libarchive/test-archive_write_set_format_gnutar.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_write_set_format_zip.o `test -f 'libarchive/archive_write_set_format_zip.c' || echo '$(srcdir)/'`libarchive/archive_write_set_format_zip.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_write_set_format_gnutar.o `test -f 'libarchive/archive_write_set_format_gnutar.c' || echo '$(srcdir)/'`libarchive/archive_write_set_format_gnutar.c -libarchive/libarchive_test-archive_write_set_format_zip.obj: libarchive/archive_write_set_format_zip.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_write_set_format_zip.obj -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_write_set_format_zip.Tpo -c -o libarchive/libarchive_test-archive_write_set_format_zip.obj `if test -f 'libarchive/archive_write_set_format_zip.c'; then $(CYGPATH_W) 'libarchive/archive_write_set_format_zip.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_set_format_zip.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_write_set_format_zip.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_write_set_format_zip.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_set_format_zip.c' object='libarchive/libarchive_test-archive_write_set_format_zip.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_write_set_format_gnutar.obj: libarchive/archive_write_set_format_gnutar.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_write_set_format_gnutar.obj -MD -MP -MF libarchive/$(DEPDIR)/test-archive_write_set_format_gnutar.Tpo -c -o libarchive/test-archive_write_set_format_gnutar.obj `if test -f 'libarchive/archive_write_set_format_gnutar.c'; then $(CYGPATH_W) 'libarchive/archive_write_set_format_gnutar.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_set_format_gnutar.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_write_set_format_gnutar.Tpo libarchive/$(DEPDIR)/test-archive_write_set_format_gnutar.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_set_format_gnutar.c' object='libarchive/test-archive_write_set_format_gnutar.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_write_set_format_zip.obj `if test -f 'libarchive/archive_write_set_format_zip.c'; then $(CYGPATH_W) 'libarchive/archive_write_set_format_zip.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_set_format_zip.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_write_set_format_gnutar.obj `if test -f 'libarchive/archive_write_set_format_gnutar.c'; then $(CYGPATH_W) 'libarchive/archive_write_set_format_gnutar.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_set_format_gnutar.c'; fi` -libarchive/libarchive_test-archive_write_set_options.o: libarchive/archive_write_set_options.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_write_set_options.o -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_write_set_options.Tpo -c -o libarchive/libarchive_test-archive_write_set_options.o `test -f 'libarchive/archive_write_set_options.c' || echo '$(srcdir)/'`libarchive/archive_write_set_options.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_write_set_options.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_write_set_options.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_set_options.c' object='libarchive/libarchive_test-archive_write_set_options.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_write_set_format_warc.o: libarchive/archive_write_set_format_warc.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_write_set_format_warc.o -MD -MP -MF libarchive/$(DEPDIR)/test-archive_write_set_format_warc.Tpo -c -o libarchive/test-archive_write_set_format_warc.o `test -f 'libarchive/archive_write_set_format_warc.c' || echo '$(srcdir)/'`libarchive/archive_write_set_format_warc.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_write_set_format_warc.Tpo libarchive/$(DEPDIR)/test-archive_write_set_format_warc.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_set_format_warc.c' object='libarchive/test-archive_write_set_format_warc.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_write_set_options.o `test -f 'libarchive/archive_write_set_options.c' || echo '$(srcdir)/'`libarchive/archive_write_set_options.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_write_set_format_warc.o `test -f 'libarchive/archive_write_set_format_warc.c' || echo '$(srcdir)/'`libarchive/archive_write_set_format_warc.c -libarchive/libarchive_test-archive_write_set_options.obj: libarchive/archive_write_set_options.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_write_set_options.obj -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_write_set_options.Tpo -c -o libarchive/libarchive_test-archive_write_set_options.obj `if test -f 'libarchive/archive_write_set_options.c'; then $(CYGPATH_W) 'libarchive/archive_write_set_options.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_set_options.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_write_set_options.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_write_set_options.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_set_options.c' object='libarchive/libarchive_test-archive_write_set_options.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_write_set_format_warc.obj: libarchive/archive_write_set_format_warc.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_write_set_format_warc.obj -MD -MP -MF libarchive/$(DEPDIR)/test-archive_write_set_format_warc.Tpo -c -o libarchive/test-archive_write_set_format_warc.obj `if test -f 'libarchive/archive_write_set_format_warc.c'; then $(CYGPATH_W) 'libarchive/archive_write_set_format_warc.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_set_format_warc.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_write_set_format_warc.Tpo libarchive/$(DEPDIR)/test-archive_write_set_format_warc.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_set_format_warc.c' object='libarchive/test-archive_write_set_format_warc.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_write_set_options.obj `if test -f 'libarchive/archive_write_set_options.c'; then $(CYGPATH_W) 'libarchive/archive_write_set_options.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_set_options.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_write_set_format_warc.obj `if test -f 'libarchive/archive_write_set_format_warc.c'; then $(CYGPATH_W) 'libarchive/archive_write_set_format_warc.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_set_format_warc.c'; fi` -libarchive/libarchive_test-archive_write_set_passphrase.o: libarchive/archive_write_set_passphrase.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_write_set_passphrase.o -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_write_set_passphrase.Tpo -c -o libarchive/libarchive_test-archive_write_set_passphrase.o `test -f 'libarchive/archive_write_set_passphrase.c' || echo '$(srcdir)/'`libarchive/archive_write_set_passphrase.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_write_set_passphrase.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_write_set_passphrase.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_set_passphrase.c' object='libarchive/libarchive_test-archive_write_set_passphrase.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_write_set_format_xar.o: libarchive/archive_write_set_format_xar.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_write_set_format_xar.o -MD -MP -MF libarchive/$(DEPDIR)/test-archive_write_set_format_xar.Tpo -c -o libarchive/test-archive_write_set_format_xar.o `test -f 'libarchive/archive_write_set_format_xar.c' || echo '$(srcdir)/'`libarchive/archive_write_set_format_xar.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_write_set_format_xar.Tpo libarchive/$(DEPDIR)/test-archive_write_set_format_xar.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_set_format_xar.c' object='libarchive/test-archive_write_set_format_xar.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_write_set_passphrase.o `test -f 'libarchive/archive_write_set_passphrase.c' || echo '$(srcdir)/'`libarchive/archive_write_set_passphrase.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_write_set_format_xar.o `test -f 'libarchive/archive_write_set_format_xar.c' || echo '$(srcdir)/'`libarchive/archive_write_set_format_xar.c -libarchive/libarchive_test-archive_write_set_passphrase.obj: libarchive/archive_write_set_passphrase.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_write_set_passphrase.obj -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_write_set_passphrase.Tpo -c -o libarchive/libarchive_test-archive_write_set_passphrase.obj `if test -f 'libarchive/archive_write_set_passphrase.c'; then $(CYGPATH_W) 'libarchive/archive_write_set_passphrase.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_set_passphrase.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_write_set_passphrase.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_write_set_passphrase.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_set_passphrase.c' object='libarchive/libarchive_test-archive_write_set_passphrase.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_write_set_format_xar.obj: libarchive/archive_write_set_format_xar.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_write_set_format_xar.obj -MD -MP -MF libarchive/$(DEPDIR)/test-archive_write_set_format_xar.Tpo -c -o libarchive/test-archive_write_set_format_xar.obj `if test -f 'libarchive/archive_write_set_format_xar.c'; then $(CYGPATH_W) 'libarchive/archive_write_set_format_xar.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_set_format_xar.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_write_set_format_xar.Tpo libarchive/$(DEPDIR)/test-archive_write_set_format_xar.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_set_format_xar.c' object='libarchive/test-archive_write_set_format_xar.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_write_set_passphrase.obj `if test -f 'libarchive/archive_write_set_passphrase.c'; then $(CYGPATH_W) 'libarchive/archive_write_set_passphrase.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_set_passphrase.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_write_set_format_xar.obj `if test -f 'libarchive/archive_write_set_format_xar.c'; then $(CYGPATH_W) 'libarchive/archive_write_set_format_xar.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_set_format_xar.c'; fi` -libarchive/libarchive_test-filter_fork_posix.o: libarchive/filter_fork_posix.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-filter_fork_posix.o -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-filter_fork_posix.Tpo -c -o libarchive/libarchive_test-filter_fork_posix.o `test -f 'libarchive/filter_fork_posix.c' || echo '$(srcdir)/'`libarchive/filter_fork_posix.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-filter_fork_posix.Tpo libarchive/$(DEPDIR)/libarchive_test-filter_fork_posix.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/filter_fork_posix.c' object='libarchive/libarchive_test-filter_fork_posix.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_write_set_format_zip.o: libarchive/archive_write_set_format_zip.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_write_set_format_zip.o -MD -MP -MF libarchive/$(DEPDIR)/test-archive_write_set_format_zip.Tpo -c -o libarchive/test-archive_write_set_format_zip.o `test -f 'libarchive/archive_write_set_format_zip.c' || echo '$(srcdir)/'`libarchive/archive_write_set_format_zip.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_write_set_format_zip.Tpo libarchive/$(DEPDIR)/test-archive_write_set_format_zip.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_set_format_zip.c' object='libarchive/test-archive_write_set_format_zip.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-filter_fork_posix.o `test -f 'libarchive/filter_fork_posix.c' || echo '$(srcdir)/'`libarchive/filter_fork_posix.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_write_set_format_zip.o `test -f 'libarchive/archive_write_set_format_zip.c' || echo '$(srcdir)/'`libarchive/archive_write_set_format_zip.c -libarchive/libarchive_test-filter_fork_posix.obj: libarchive/filter_fork_posix.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-filter_fork_posix.obj -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-filter_fork_posix.Tpo -c -o libarchive/libarchive_test-filter_fork_posix.obj `if test -f 'libarchive/filter_fork_posix.c'; then $(CYGPATH_W) 'libarchive/filter_fork_posix.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/filter_fork_posix.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-filter_fork_posix.Tpo libarchive/$(DEPDIR)/libarchive_test-filter_fork_posix.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/filter_fork_posix.c' object='libarchive/libarchive_test-filter_fork_posix.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_write_set_format_zip.obj: libarchive/archive_write_set_format_zip.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_write_set_format_zip.obj -MD -MP -MF libarchive/$(DEPDIR)/test-archive_write_set_format_zip.Tpo -c -o libarchive/test-archive_write_set_format_zip.obj `if test -f 'libarchive/archive_write_set_format_zip.c'; then $(CYGPATH_W) 'libarchive/archive_write_set_format_zip.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_set_format_zip.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_write_set_format_zip.Tpo libarchive/$(DEPDIR)/test-archive_write_set_format_zip.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_set_format_zip.c' object='libarchive/test-archive_write_set_format_zip.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-filter_fork_posix.obj `if test -f 'libarchive/filter_fork_posix.c'; then $(CYGPATH_W) 'libarchive/filter_fork_posix.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/filter_fork_posix.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_write_set_format_zip.obj `if test -f 'libarchive/archive_write_set_format_zip.c'; then $(CYGPATH_W) 'libarchive/archive_write_set_format_zip.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_set_format_zip.c'; fi` -libarchive/libarchive_test-xxhash.o: libarchive/xxhash.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-xxhash.o -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-xxhash.Tpo -c -o libarchive/libarchive_test-xxhash.o `test -f 'libarchive/xxhash.c' || echo '$(srcdir)/'`libarchive/xxhash.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-xxhash.Tpo libarchive/$(DEPDIR)/libarchive_test-xxhash.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/xxhash.c' object='libarchive/libarchive_test-xxhash.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_write_set_options.o: libarchive/archive_write_set_options.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_write_set_options.o -MD -MP -MF libarchive/$(DEPDIR)/test-archive_write_set_options.Tpo -c -o libarchive/test-archive_write_set_options.o `test -f 'libarchive/archive_write_set_options.c' || echo '$(srcdir)/'`libarchive/archive_write_set_options.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_write_set_options.Tpo libarchive/$(DEPDIR)/test-archive_write_set_options.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_set_options.c' object='libarchive/test-archive_write_set_options.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-xxhash.o `test -f 'libarchive/xxhash.c' || echo '$(srcdir)/'`libarchive/xxhash.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_write_set_options.o `test -f 'libarchive/archive_write_set_options.c' || echo '$(srcdir)/'`libarchive/archive_write_set_options.c -libarchive/libarchive_test-xxhash.obj: libarchive/xxhash.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-xxhash.obj -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-xxhash.Tpo -c -o libarchive/libarchive_test-xxhash.obj `if test -f 'libarchive/xxhash.c'; then $(CYGPATH_W) 'libarchive/xxhash.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/xxhash.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-xxhash.Tpo libarchive/$(DEPDIR)/libarchive_test-xxhash.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/xxhash.c' object='libarchive/libarchive_test-xxhash.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_write_set_options.obj: libarchive/archive_write_set_options.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_write_set_options.obj -MD -MP -MF libarchive/$(DEPDIR)/test-archive_write_set_options.Tpo -c -o libarchive/test-archive_write_set_options.obj `if test -f 'libarchive/archive_write_set_options.c'; then $(CYGPATH_W) 'libarchive/archive_write_set_options.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_set_options.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_write_set_options.Tpo libarchive/$(DEPDIR)/test-archive_write_set_options.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_set_options.c' object='libarchive/test-archive_write_set_options.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-xxhash.obj `if test -f 'libarchive/xxhash.c'; then $(CYGPATH_W) 'libarchive/xxhash.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/xxhash.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_write_set_options.obj `if test -f 'libarchive/archive_write_set_options.c'; then $(CYGPATH_W) 'libarchive/archive_write_set_options.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_set_options.c'; fi` -libarchive/libarchive_test-archive_entry_copy_bhfi.o: libarchive/archive_entry_copy_bhfi.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_entry_copy_bhfi.o -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_entry_copy_bhfi.Tpo -c -o libarchive/libarchive_test-archive_entry_copy_bhfi.o `test -f 'libarchive/archive_entry_copy_bhfi.c' || echo '$(srcdir)/'`libarchive/archive_entry_copy_bhfi.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_entry_copy_bhfi.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_entry_copy_bhfi.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_entry_copy_bhfi.c' object='libarchive/libarchive_test-archive_entry_copy_bhfi.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_write_set_passphrase.o: libarchive/archive_write_set_passphrase.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_write_set_passphrase.o -MD -MP -MF libarchive/$(DEPDIR)/test-archive_write_set_passphrase.Tpo -c -o libarchive/test-archive_write_set_passphrase.o `test -f 'libarchive/archive_write_set_passphrase.c' || echo '$(srcdir)/'`libarchive/archive_write_set_passphrase.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_write_set_passphrase.Tpo libarchive/$(DEPDIR)/test-archive_write_set_passphrase.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_set_passphrase.c' object='libarchive/test-archive_write_set_passphrase.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_entry_copy_bhfi.o `test -f 'libarchive/archive_entry_copy_bhfi.c' || echo '$(srcdir)/'`libarchive/archive_entry_copy_bhfi.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_write_set_passphrase.o `test -f 'libarchive/archive_write_set_passphrase.c' || echo '$(srcdir)/'`libarchive/archive_write_set_passphrase.c -libarchive/libarchive_test-archive_entry_copy_bhfi.obj: libarchive/archive_entry_copy_bhfi.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_entry_copy_bhfi.obj -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_entry_copy_bhfi.Tpo -c -o libarchive/libarchive_test-archive_entry_copy_bhfi.obj `if test -f 'libarchive/archive_entry_copy_bhfi.c'; then $(CYGPATH_W) 'libarchive/archive_entry_copy_bhfi.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_entry_copy_bhfi.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_entry_copy_bhfi.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_entry_copy_bhfi.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_entry_copy_bhfi.c' object='libarchive/libarchive_test-archive_entry_copy_bhfi.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_write_set_passphrase.obj: libarchive/archive_write_set_passphrase.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_write_set_passphrase.obj -MD -MP -MF libarchive/$(DEPDIR)/test-archive_write_set_passphrase.Tpo -c -o libarchive/test-archive_write_set_passphrase.obj `if test -f 'libarchive/archive_write_set_passphrase.c'; then $(CYGPATH_W) 'libarchive/archive_write_set_passphrase.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_set_passphrase.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_write_set_passphrase.Tpo libarchive/$(DEPDIR)/test-archive_write_set_passphrase.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_set_passphrase.c' object='libarchive/test-archive_write_set_passphrase.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_entry_copy_bhfi.obj `if test -f 'libarchive/archive_entry_copy_bhfi.c'; then $(CYGPATH_W) 'libarchive/archive_entry_copy_bhfi.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_entry_copy_bhfi.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_write_set_passphrase.obj `if test -f 'libarchive/archive_write_set_passphrase.c'; then $(CYGPATH_W) 'libarchive/archive_write_set_passphrase.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_set_passphrase.c'; fi` -libarchive/libarchive_test-archive_read_disk_windows.o: libarchive/archive_read_disk_windows.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_read_disk_windows.o -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_read_disk_windows.Tpo -c -o libarchive/libarchive_test-archive_read_disk_windows.o `test -f 'libarchive/archive_read_disk_windows.c' || echo '$(srcdir)/'`libarchive/archive_read_disk_windows.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_read_disk_windows.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_read_disk_windows.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_disk_windows.c' object='libarchive/libarchive_test-archive_read_disk_windows.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test-filter_fork_posix.o: libarchive/filter_fork_posix.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-filter_fork_posix.o -MD -MP -MF libarchive/$(DEPDIR)/test-filter_fork_posix.Tpo -c -o libarchive/test-filter_fork_posix.o `test -f 'libarchive/filter_fork_posix.c' || echo '$(srcdir)/'`libarchive/filter_fork_posix.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-filter_fork_posix.Tpo libarchive/$(DEPDIR)/test-filter_fork_posix.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/filter_fork_posix.c' object='libarchive/test-filter_fork_posix.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_read_disk_windows.o `test -f 'libarchive/archive_read_disk_windows.c' || echo '$(srcdir)/'`libarchive/archive_read_disk_windows.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-filter_fork_posix.o `test -f 'libarchive/filter_fork_posix.c' || echo '$(srcdir)/'`libarchive/filter_fork_posix.c -libarchive/libarchive_test-archive_read_disk_windows.obj: libarchive/archive_read_disk_windows.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_read_disk_windows.obj -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_read_disk_windows.Tpo -c -o libarchive/libarchive_test-archive_read_disk_windows.obj `if test -f 'libarchive/archive_read_disk_windows.c'; then $(CYGPATH_W) 'libarchive/archive_read_disk_windows.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_disk_windows.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_read_disk_windows.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_read_disk_windows.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_disk_windows.c' object='libarchive/libarchive_test-archive_read_disk_windows.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test-filter_fork_posix.obj: libarchive/filter_fork_posix.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-filter_fork_posix.obj -MD -MP -MF libarchive/$(DEPDIR)/test-filter_fork_posix.Tpo -c -o libarchive/test-filter_fork_posix.obj `if test -f 'libarchive/filter_fork_posix.c'; then $(CYGPATH_W) 'libarchive/filter_fork_posix.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/filter_fork_posix.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-filter_fork_posix.Tpo libarchive/$(DEPDIR)/test-filter_fork_posix.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/filter_fork_posix.c' object='libarchive/test-filter_fork_posix.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_read_disk_windows.obj `if test -f 'libarchive/archive_read_disk_windows.c'; then $(CYGPATH_W) 'libarchive/archive_read_disk_windows.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_disk_windows.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-filter_fork_posix.obj `if test -f 'libarchive/filter_fork_posix.c'; then $(CYGPATH_W) 'libarchive/filter_fork_posix.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/filter_fork_posix.c'; fi` -libarchive/libarchive_test-archive_windows.o: libarchive/archive_windows.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_windows.o -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_windows.Tpo -c -o libarchive/libarchive_test-archive_windows.o `test -f 'libarchive/archive_windows.c' || echo '$(srcdir)/'`libarchive/archive_windows.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_windows.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_windows.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_windows.c' object='libarchive/libarchive_test-archive_windows.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test-xxhash.o: libarchive/xxhash.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-xxhash.o -MD -MP -MF libarchive/$(DEPDIR)/test-xxhash.Tpo -c -o libarchive/test-xxhash.o `test -f 'libarchive/xxhash.c' || echo '$(srcdir)/'`libarchive/xxhash.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-xxhash.Tpo libarchive/$(DEPDIR)/test-xxhash.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/xxhash.c' object='libarchive/test-xxhash.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_windows.o `test -f 'libarchive/archive_windows.c' || echo '$(srcdir)/'`libarchive/archive_windows.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-xxhash.o `test -f 'libarchive/xxhash.c' || echo '$(srcdir)/'`libarchive/xxhash.c -libarchive/libarchive_test-archive_windows.obj: libarchive/archive_windows.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_windows.obj -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_windows.Tpo -c -o libarchive/libarchive_test-archive_windows.obj `if test -f 'libarchive/archive_windows.c'; then $(CYGPATH_W) 'libarchive/archive_windows.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_windows.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_windows.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_windows.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_windows.c' object='libarchive/libarchive_test-archive_windows.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test-xxhash.obj: libarchive/xxhash.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-xxhash.obj -MD -MP -MF libarchive/$(DEPDIR)/test-xxhash.Tpo -c -o libarchive/test-xxhash.obj `if test -f 'libarchive/xxhash.c'; then $(CYGPATH_W) 'libarchive/xxhash.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/xxhash.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-xxhash.Tpo libarchive/$(DEPDIR)/test-xxhash.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/xxhash.c' object='libarchive/test-xxhash.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_windows.obj `if test -f 'libarchive/archive_windows.c'; then $(CYGPATH_W) 'libarchive/archive_windows.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_windows.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-xxhash.obj `if test -f 'libarchive/xxhash.c'; then $(CYGPATH_W) 'libarchive/xxhash.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/xxhash.c'; fi` -libarchive/libarchive_test-archive_write_disk_windows.o: libarchive/archive_write_disk_windows.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_write_disk_windows.o -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_write_disk_windows.Tpo -c -o libarchive/libarchive_test-archive_write_disk_windows.o `test -f 'libarchive/archive_write_disk_windows.c' || echo '$(srcdir)/'`libarchive/archive_write_disk_windows.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_write_disk_windows.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_write_disk_windows.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_disk_windows.c' object='libarchive/libarchive_test-archive_write_disk_windows.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_entry_copy_bhfi.o: libarchive/archive_entry_copy_bhfi.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_entry_copy_bhfi.o -MD -MP -MF libarchive/$(DEPDIR)/test-archive_entry_copy_bhfi.Tpo -c -o libarchive/test-archive_entry_copy_bhfi.o `test -f 'libarchive/archive_entry_copy_bhfi.c' || echo '$(srcdir)/'`libarchive/archive_entry_copy_bhfi.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_entry_copy_bhfi.Tpo libarchive/$(DEPDIR)/test-archive_entry_copy_bhfi.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_entry_copy_bhfi.c' object='libarchive/test-archive_entry_copy_bhfi.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_write_disk_windows.o `test -f 'libarchive/archive_write_disk_windows.c' || echo '$(srcdir)/'`libarchive/archive_write_disk_windows.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_entry_copy_bhfi.o `test -f 'libarchive/archive_entry_copy_bhfi.c' || echo '$(srcdir)/'`libarchive/archive_entry_copy_bhfi.c -libarchive/libarchive_test-archive_write_disk_windows.obj: libarchive/archive_write_disk_windows.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_write_disk_windows.obj -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_write_disk_windows.Tpo -c -o libarchive/libarchive_test-archive_write_disk_windows.obj `if test -f 'libarchive/archive_write_disk_windows.c'; then $(CYGPATH_W) 'libarchive/archive_write_disk_windows.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_disk_windows.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_write_disk_windows.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_write_disk_windows.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_disk_windows.c' object='libarchive/libarchive_test-archive_write_disk_windows.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_entry_copy_bhfi.obj: libarchive/archive_entry_copy_bhfi.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_entry_copy_bhfi.obj -MD -MP -MF libarchive/$(DEPDIR)/test-archive_entry_copy_bhfi.Tpo -c -o libarchive/test-archive_entry_copy_bhfi.obj `if test -f 'libarchive/archive_entry_copy_bhfi.c'; then $(CYGPATH_W) 'libarchive/archive_entry_copy_bhfi.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_entry_copy_bhfi.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_entry_copy_bhfi.Tpo libarchive/$(DEPDIR)/test-archive_entry_copy_bhfi.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_entry_copy_bhfi.c' object='libarchive/test-archive_entry_copy_bhfi.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_write_disk_windows.obj `if test -f 'libarchive/archive_write_disk_windows.c'; then $(CYGPATH_W) 'libarchive/archive_write_disk_windows.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_disk_windows.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_entry_copy_bhfi.obj `if test -f 'libarchive/archive_entry_copy_bhfi.c'; then $(CYGPATH_W) 'libarchive/archive_entry_copy_bhfi.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_entry_copy_bhfi.c'; fi` -libarchive/libarchive_test-filter_fork_windows.o: libarchive/filter_fork_windows.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-filter_fork_windows.o -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-filter_fork_windows.Tpo -c -o libarchive/libarchive_test-filter_fork_windows.o `test -f 'libarchive/filter_fork_windows.c' || echo '$(srcdir)/'`libarchive/filter_fork_windows.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-filter_fork_windows.Tpo libarchive/$(DEPDIR)/libarchive_test-filter_fork_windows.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/filter_fork_windows.c' object='libarchive/libarchive_test-filter_fork_windows.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_read_disk_windows.o: libarchive/archive_read_disk_windows.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_read_disk_windows.o -MD -MP -MF libarchive/$(DEPDIR)/test-archive_read_disk_windows.Tpo -c -o libarchive/test-archive_read_disk_windows.o `test -f 'libarchive/archive_read_disk_windows.c' || echo '$(srcdir)/'`libarchive/archive_read_disk_windows.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_read_disk_windows.Tpo libarchive/$(DEPDIR)/test-archive_read_disk_windows.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_disk_windows.c' object='libarchive/test-archive_read_disk_windows.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-filter_fork_windows.o `test -f 'libarchive/filter_fork_windows.c' || echo '$(srcdir)/'`libarchive/filter_fork_windows.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_read_disk_windows.o `test -f 'libarchive/archive_read_disk_windows.c' || echo '$(srcdir)/'`libarchive/archive_read_disk_windows.c -libarchive/libarchive_test-filter_fork_windows.obj: libarchive/filter_fork_windows.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-filter_fork_windows.obj -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-filter_fork_windows.Tpo -c -o libarchive/libarchive_test-filter_fork_windows.obj `if test -f 'libarchive/filter_fork_windows.c'; then $(CYGPATH_W) 'libarchive/filter_fork_windows.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/filter_fork_windows.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-filter_fork_windows.Tpo libarchive/$(DEPDIR)/libarchive_test-filter_fork_windows.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/filter_fork_windows.c' object='libarchive/libarchive_test-filter_fork_windows.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_read_disk_windows.obj: libarchive/archive_read_disk_windows.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_read_disk_windows.obj -MD -MP -MF libarchive/$(DEPDIR)/test-archive_read_disk_windows.Tpo -c -o libarchive/test-archive_read_disk_windows.obj `if test -f 'libarchive/archive_read_disk_windows.c'; then $(CYGPATH_W) 'libarchive/archive_read_disk_windows.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_disk_windows.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_read_disk_windows.Tpo libarchive/$(DEPDIR)/test-archive_read_disk_windows.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_read_disk_windows.c' object='libarchive/test-archive_read_disk_windows.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-filter_fork_windows.obj `if test -f 'libarchive/filter_fork_windows.c'; then $(CYGPATH_W) 'libarchive/filter_fork_windows.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/filter_fork_windows.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_read_disk_windows.obj `if test -f 'libarchive/archive_read_disk_windows.c'; then $(CYGPATH_W) 'libarchive/archive_read_disk_windows.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_read_disk_windows.c'; fi` -libarchive/libarchive_test-archive_blake2s_ref.o: libarchive/archive_blake2s_ref.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_blake2s_ref.o -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_blake2s_ref.Tpo -c -o libarchive/libarchive_test-archive_blake2s_ref.o `test -f 'libarchive/archive_blake2s_ref.c' || echo '$(srcdir)/'`libarchive/archive_blake2s_ref.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_blake2s_ref.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_blake2s_ref.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_blake2s_ref.c' object='libarchive/libarchive_test-archive_blake2s_ref.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_windows.o: libarchive/archive_windows.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_windows.o -MD -MP -MF libarchive/$(DEPDIR)/test-archive_windows.Tpo -c -o libarchive/test-archive_windows.o `test -f 'libarchive/archive_windows.c' || echo '$(srcdir)/'`libarchive/archive_windows.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_windows.Tpo libarchive/$(DEPDIR)/test-archive_windows.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_windows.c' object='libarchive/test-archive_windows.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_blake2s_ref.o `test -f 'libarchive/archive_blake2s_ref.c' || echo '$(srcdir)/'`libarchive/archive_blake2s_ref.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_windows.o `test -f 'libarchive/archive_windows.c' || echo '$(srcdir)/'`libarchive/archive_windows.c -libarchive/libarchive_test-archive_blake2s_ref.obj: libarchive/archive_blake2s_ref.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_blake2s_ref.obj -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_blake2s_ref.Tpo -c -o libarchive/libarchive_test-archive_blake2s_ref.obj `if test -f 'libarchive/archive_blake2s_ref.c'; then $(CYGPATH_W) 'libarchive/archive_blake2s_ref.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_blake2s_ref.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_blake2s_ref.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_blake2s_ref.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_blake2s_ref.c' object='libarchive/libarchive_test-archive_blake2s_ref.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_windows.obj: libarchive/archive_windows.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_windows.obj -MD -MP -MF libarchive/$(DEPDIR)/test-archive_windows.Tpo -c -o libarchive/test-archive_windows.obj `if test -f 'libarchive/archive_windows.c'; then $(CYGPATH_W) 'libarchive/archive_windows.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_windows.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_windows.Tpo libarchive/$(DEPDIR)/test-archive_windows.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_windows.c' object='libarchive/test-archive_windows.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_blake2s_ref.obj `if test -f 'libarchive/archive_blake2s_ref.c'; then $(CYGPATH_W) 'libarchive/archive_blake2s_ref.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_blake2s_ref.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_windows.obj `if test -f 'libarchive/archive_windows.c'; then $(CYGPATH_W) 'libarchive/archive_windows.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_windows.c'; fi` -libarchive/libarchive_test-archive_blake2sp_ref.o: libarchive/archive_blake2sp_ref.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_blake2sp_ref.o -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_blake2sp_ref.Tpo -c -o libarchive/libarchive_test-archive_blake2sp_ref.o `test -f 'libarchive/archive_blake2sp_ref.c' || echo '$(srcdir)/'`libarchive/archive_blake2sp_ref.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_blake2sp_ref.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_blake2sp_ref.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_blake2sp_ref.c' object='libarchive/libarchive_test-archive_blake2sp_ref.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_write_disk_windows.o: libarchive/archive_write_disk_windows.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_write_disk_windows.o -MD -MP -MF libarchive/$(DEPDIR)/test-archive_write_disk_windows.Tpo -c -o libarchive/test-archive_write_disk_windows.o `test -f 'libarchive/archive_write_disk_windows.c' || echo '$(srcdir)/'`libarchive/archive_write_disk_windows.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_write_disk_windows.Tpo libarchive/$(DEPDIR)/test-archive_write_disk_windows.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_disk_windows.c' object='libarchive/test-archive_write_disk_windows.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_blake2sp_ref.o `test -f 'libarchive/archive_blake2sp_ref.c' || echo '$(srcdir)/'`libarchive/archive_blake2sp_ref.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_write_disk_windows.o `test -f 'libarchive/archive_write_disk_windows.c' || echo '$(srcdir)/'`libarchive/archive_write_disk_windows.c -libarchive/libarchive_test-archive_blake2sp_ref.obj: libarchive/archive_blake2sp_ref.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_blake2sp_ref.obj -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_blake2sp_ref.Tpo -c -o libarchive/libarchive_test-archive_blake2sp_ref.obj `if test -f 'libarchive/archive_blake2sp_ref.c'; then $(CYGPATH_W) 'libarchive/archive_blake2sp_ref.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_blake2sp_ref.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_blake2sp_ref.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_blake2sp_ref.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_blake2sp_ref.c' object='libarchive/libarchive_test-archive_blake2sp_ref.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_write_disk_windows.obj: libarchive/archive_write_disk_windows.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_write_disk_windows.obj -MD -MP -MF libarchive/$(DEPDIR)/test-archive_write_disk_windows.Tpo -c -o libarchive/test-archive_write_disk_windows.obj `if test -f 'libarchive/archive_write_disk_windows.c'; then $(CYGPATH_W) 'libarchive/archive_write_disk_windows.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_disk_windows.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_write_disk_windows.Tpo libarchive/$(DEPDIR)/test-archive_write_disk_windows.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_write_disk_windows.c' object='libarchive/test-archive_write_disk_windows.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_blake2sp_ref.obj `if test -f 'libarchive/archive_blake2sp_ref.c'; then $(CYGPATH_W) 'libarchive/archive_blake2sp_ref.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_blake2sp_ref.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_write_disk_windows.obj `if test -f 'libarchive/archive_write_disk_windows.c'; then $(CYGPATH_W) 'libarchive/archive_write_disk_windows.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_write_disk_windows.c'; fi` -libarchive/libarchive_test-archive_disk_acl_linux.o: libarchive/archive_disk_acl_linux.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_disk_acl_linux.o -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_disk_acl_linux.Tpo -c -o libarchive/libarchive_test-archive_disk_acl_linux.o `test -f 'libarchive/archive_disk_acl_linux.c' || echo '$(srcdir)/'`libarchive/archive_disk_acl_linux.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_disk_acl_linux.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_disk_acl_linux.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_disk_acl_linux.c' object='libarchive/libarchive_test-archive_disk_acl_linux.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test-filter_fork_windows.o: libarchive/filter_fork_windows.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-filter_fork_windows.o -MD -MP -MF libarchive/$(DEPDIR)/test-filter_fork_windows.Tpo -c -o libarchive/test-filter_fork_windows.o `test -f 'libarchive/filter_fork_windows.c' || echo '$(srcdir)/'`libarchive/filter_fork_windows.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-filter_fork_windows.Tpo libarchive/$(DEPDIR)/test-filter_fork_windows.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/filter_fork_windows.c' object='libarchive/test-filter_fork_windows.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_disk_acl_linux.o `test -f 'libarchive/archive_disk_acl_linux.c' || echo '$(srcdir)/'`libarchive/archive_disk_acl_linux.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-filter_fork_windows.o `test -f 'libarchive/filter_fork_windows.c' || echo '$(srcdir)/'`libarchive/filter_fork_windows.c -libarchive/libarchive_test-archive_disk_acl_linux.obj: libarchive/archive_disk_acl_linux.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_disk_acl_linux.obj -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_disk_acl_linux.Tpo -c -o libarchive/libarchive_test-archive_disk_acl_linux.obj `if test -f 'libarchive/archive_disk_acl_linux.c'; then $(CYGPATH_W) 'libarchive/archive_disk_acl_linux.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_disk_acl_linux.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_disk_acl_linux.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_disk_acl_linux.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_disk_acl_linux.c' object='libarchive/libarchive_test-archive_disk_acl_linux.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test-filter_fork_windows.obj: libarchive/filter_fork_windows.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-filter_fork_windows.obj -MD -MP -MF libarchive/$(DEPDIR)/test-filter_fork_windows.Tpo -c -o libarchive/test-filter_fork_windows.obj `if test -f 'libarchive/filter_fork_windows.c'; then $(CYGPATH_W) 'libarchive/filter_fork_windows.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/filter_fork_windows.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-filter_fork_windows.Tpo libarchive/$(DEPDIR)/test-filter_fork_windows.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/filter_fork_windows.c' object='libarchive/test-filter_fork_windows.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_disk_acl_linux.obj `if test -f 'libarchive/archive_disk_acl_linux.c'; then $(CYGPATH_W) 'libarchive/archive_disk_acl_linux.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_disk_acl_linux.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-filter_fork_windows.obj `if test -f 'libarchive/filter_fork_windows.c'; then $(CYGPATH_W) 'libarchive/filter_fork_windows.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/filter_fork_windows.c'; fi` -libarchive/libarchive_test-archive_disk_acl_sunos.o: libarchive/archive_disk_acl_sunos.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_disk_acl_sunos.o -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_disk_acl_sunos.Tpo -c -o libarchive/libarchive_test-archive_disk_acl_sunos.o `test -f 'libarchive/archive_disk_acl_sunos.c' || echo '$(srcdir)/'`libarchive/archive_disk_acl_sunos.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_disk_acl_sunos.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_disk_acl_sunos.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_disk_acl_sunos.c' object='libarchive/libarchive_test-archive_disk_acl_sunos.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_blake2s_ref.o: libarchive/archive_blake2s_ref.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_blake2s_ref.o -MD -MP -MF libarchive/$(DEPDIR)/test-archive_blake2s_ref.Tpo -c -o libarchive/test-archive_blake2s_ref.o `test -f 'libarchive/archive_blake2s_ref.c' || echo '$(srcdir)/'`libarchive/archive_blake2s_ref.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_blake2s_ref.Tpo libarchive/$(DEPDIR)/test-archive_blake2s_ref.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_blake2s_ref.c' object='libarchive/test-archive_blake2s_ref.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_disk_acl_sunos.o `test -f 'libarchive/archive_disk_acl_sunos.c' || echo '$(srcdir)/'`libarchive/archive_disk_acl_sunos.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_blake2s_ref.o `test -f 'libarchive/archive_blake2s_ref.c' || echo '$(srcdir)/'`libarchive/archive_blake2s_ref.c -libarchive/libarchive_test-archive_disk_acl_sunos.obj: libarchive/archive_disk_acl_sunos.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_disk_acl_sunos.obj -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_disk_acl_sunos.Tpo -c -o libarchive/libarchive_test-archive_disk_acl_sunos.obj `if test -f 'libarchive/archive_disk_acl_sunos.c'; then $(CYGPATH_W) 'libarchive/archive_disk_acl_sunos.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_disk_acl_sunos.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_disk_acl_sunos.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_disk_acl_sunos.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_disk_acl_sunos.c' object='libarchive/libarchive_test-archive_disk_acl_sunos.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_blake2s_ref.obj: libarchive/archive_blake2s_ref.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_blake2s_ref.obj -MD -MP -MF libarchive/$(DEPDIR)/test-archive_blake2s_ref.Tpo -c -o libarchive/test-archive_blake2s_ref.obj `if test -f 'libarchive/archive_blake2s_ref.c'; then $(CYGPATH_W) 'libarchive/archive_blake2s_ref.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_blake2s_ref.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_blake2s_ref.Tpo libarchive/$(DEPDIR)/test-archive_blake2s_ref.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_blake2s_ref.c' object='libarchive/test-archive_blake2s_ref.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_disk_acl_sunos.obj `if test -f 'libarchive/archive_disk_acl_sunos.c'; then $(CYGPATH_W) 'libarchive/archive_disk_acl_sunos.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_disk_acl_sunos.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_blake2s_ref.obj `if test -f 'libarchive/archive_blake2s_ref.c'; then $(CYGPATH_W) 'libarchive/archive_blake2s_ref.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_blake2s_ref.c'; fi` -libarchive/libarchive_test-archive_disk_acl_darwin.o: libarchive/archive_disk_acl_darwin.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_disk_acl_darwin.o -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_disk_acl_darwin.Tpo -c -o libarchive/libarchive_test-archive_disk_acl_darwin.o `test -f 'libarchive/archive_disk_acl_darwin.c' || echo '$(srcdir)/'`libarchive/archive_disk_acl_darwin.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_disk_acl_darwin.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_disk_acl_darwin.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_disk_acl_darwin.c' object='libarchive/libarchive_test-archive_disk_acl_darwin.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_blake2sp_ref.o: libarchive/archive_blake2sp_ref.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_blake2sp_ref.o -MD -MP -MF libarchive/$(DEPDIR)/test-archive_blake2sp_ref.Tpo -c -o libarchive/test-archive_blake2sp_ref.o `test -f 'libarchive/archive_blake2sp_ref.c' || echo '$(srcdir)/'`libarchive/archive_blake2sp_ref.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_blake2sp_ref.Tpo libarchive/$(DEPDIR)/test-archive_blake2sp_ref.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_blake2sp_ref.c' object='libarchive/test-archive_blake2sp_ref.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_disk_acl_darwin.o `test -f 'libarchive/archive_disk_acl_darwin.c' || echo '$(srcdir)/'`libarchive/archive_disk_acl_darwin.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_blake2sp_ref.o `test -f 'libarchive/archive_blake2sp_ref.c' || echo '$(srcdir)/'`libarchive/archive_blake2sp_ref.c -libarchive/libarchive_test-archive_disk_acl_darwin.obj: libarchive/archive_disk_acl_darwin.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_disk_acl_darwin.obj -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_disk_acl_darwin.Tpo -c -o libarchive/libarchive_test-archive_disk_acl_darwin.obj `if test -f 'libarchive/archive_disk_acl_darwin.c'; then $(CYGPATH_W) 'libarchive/archive_disk_acl_darwin.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_disk_acl_darwin.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_disk_acl_darwin.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_disk_acl_darwin.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_disk_acl_darwin.c' object='libarchive/libarchive_test-archive_disk_acl_darwin.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_blake2sp_ref.obj: libarchive/archive_blake2sp_ref.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_blake2sp_ref.obj -MD -MP -MF libarchive/$(DEPDIR)/test-archive_blake2sp_ref.Tpo -c -o libarchive/test-archive_blake2sp_ref.obj `if test -f 'libarchive/archive_blake2sp_ref.c'; then $(CYGPATH_W) 'libarchive/archive_blake2sp_ref.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_blake2sp_ref.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_blake2sp_ref.Tpo libarchive/$(DEPDIR)/test-archive_blake2sp_ref.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_blake2sp_ref.c' object='libarchive/test-archive_blake2sp_ref.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_disk_acl_darwin.obj `if test -f 'libarchive/archive_disk_acl_darwin.c'; then $(CYGPATH_W) 'libarchive/archive_disk_acl_darwin.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_disk_acl_darwin.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_blake2sp_ref.obj `if test -f 'libarchive/archive_blake2sp_ref.c'; then $(CYGPATH_W) 'libarchive/archive_blake2sp_ref.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_blake2sp_ref.c'; fi` -libarchive/libarchive_test-archive_disk_acl_freebsd.o: libarchive/archive_disk_acl_freebsd.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_disk_acl_freebsd.o -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_disk_acl_freebsd.Tpo -c -o libarchive/libarchive_test-archive_disk_acl_freebsd.o `test -f 'libarchive/archive_disk_acl_freebsd.c' || echo '$(srcdir)/'`libarchive/archive_disk_acl_freebsd.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_disk_acl_freebsd.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_disk_acl_freebsd.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_disk_acl_freebsd.c' object='libarchive/libarchive_test-archive_disk_acl_freebsd.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_disk_acl_linux.o: libarchive/archive_disk_acl_linux.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_disk_acl_linux.o -MD -MP -MF libarchive/$(DEPDIR)/test-archive_disk_acl_linux.Tpo -c -o libarchive/test-archive_disk_acl_linux.o `test -f 'libarchive/archive_disk_acl_linux.c' || echo '$(srcdir)/'`libarchive/archive_disk_acl_linux.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_disk_acl_linux.Tpo libarchive/$(DEPDIR)/test-archive_disk_acl_linux.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_disk_acl_linux.c' object='libarchive/test-archive_disk_acl_linux.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_disk_acl_freebsd.o `test -f 'libarchive/archive_disk_acl_freebsd.c' || echo '$(srcdir)/'`libarchive/archive_disk_acl_freebsd.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_disk_acl_linux.o `test -f 'libarchive/archive_disk_acl_linux.c' || echo '$(srcdir)/'`libarchive/archive_disk_acl_linux.c -libarchive/libarchive_test-archive_disk_acl_freebsd.obj: libarchive/archive_disk_acl_freebsd.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/libarchive_test-archive_disk_acl_freebsd.obj -MD -MP -MF libarchive/$(DEPDIR)/libarchive_test-archive_disk_acl_freebsd.Tpo -c -o libarchive/libarchive_test-archive_disk_acl_freebsd.obj `if test -f 'libarchive/archive_disk_acl_freebsd.c'; then $(CYGPATH_W) 'libarchive/archive_disk_acl_freebsd.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_disk_acl_freebsd.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/libarchive_test-archive_disk_acl_freebsd.Tpo libarchive/$(DEPDIR)/libarchive_test-archive_disk_acl_freebsd.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_disk_acl_freebsd.c' object='libarchive/libarchive_test-archive_disk_acl_freebsd.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test-archive_disk_acl_linux.obj: libarchive/archive_disk_acl_linux.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_disk_acl_linux.obj -MD -MP -MF libarchive/$(DEPDIR)/test-archive_disk_acl_linux.Tpo -c -o libarchive/test-archive_disk_acl_linux.obj `if test -f 'libarchive/archive_disk_acl_linux.c'; then $(CYGPATH_W) 'libarchive/archive_disk_acl_linux.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_disk_acl_linux.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_disk_acl_linux.Tpo libarchive/$(DEPDIR)/test-archive_disk_acl_linux.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_disk_acl_linux.c' object='libarchive/test-archive_disk_acl_linux.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/libarchive_test-archive_disk_acl_freebsd.obj `if test -f 'libarchive/archive_disk_acl_freebsd.c'; then $(CYGPATH_W) 'libarchive/archive_disk_acl_freebsd.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_disk_acl_freebsd.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_disk_acl_linux.obj `if test -f 'libarchive/archive_disk_acl_linux.c'; then $(CYGPATH_W) 'libarchive/archive_disk_acl_linux.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_disk_acl_linux.c'; fi` + +libarchive/test-archive_disk_acl_sunos.o: libarchive/archive_disk_acl_sunos.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_disk_acl_sunos.o -MD -MP -MF libarchive/$(DEPDIR)/test-archive_disk_acl_sunos.Tpo -c -o libarchive/test-archive_disk_acl_sunos.o `test -f 'libarchive/archive_disk_acl_sunos.c' || echo '$(srcdir)/'`libarchive/archive_disk_acl_sunos.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_disk_acl_sunos.Tpo libarchive/$(DEPDIR)/test-archive_disk_acl_sunos.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_disk_acl_sunos.c' object='libarchive/test-archive_disk_acl_sunos.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_disk_acl_sunos.o `test -f 'libarchive/archive_disk_acl_sunos.c' || echo '$(srcdir)/'`libarchive/archive_disk_acl_sunos.c + +libarchive/test-archive_disk_acl_sunos.obj: libarchive/archive_disk_acl_sunos.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_disk_acl_sunos.obj -MD -MP -MF libarchive/$(DEPDIR)/test-archive_disk_acl_sunos.Tpo -c -o libarchive/test-archive_disk_acl_sunos.obj `if test -f 'libarchive/archive_disk_acl_sunos.c'; then $(CYGPATH_W) 'libarchive/archive_disk_acl_sunos.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_disk_acl_sunos.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_disk_acl_sunos.Tpo libarchive/$(DEPDIR)/test-archive_disk_acl_sunos.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_disk_acl_sunos.c' object='libarchive/test-archive_disk_acl_sunos.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_disk_acl_sunos.obj `if test -f 'libarchive/archive_disk_acl_sunos.c'; then $(CYGPATH_W) 'libarchive/archive_disk_acl_sunos.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_disk_acl_sunos.c'; fi` + +libarchive/test-archive_disk_acl_darwin.o: libarchive/archive_disk_acl_darwin.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_disk_acl_darwin.o -MD -MP -MF libarchive/$(DEPDIR)/test-archive_disk_acl_darwin.Tpo -c -o libarchive/test-archive_disk_acl_darwin.o `test -f 'libarchive/archive_disk_acl_darwin.c' || echo '$(srcdir)/'`libarchive/archive_disk_acl_darwin.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_disk_acl_darwin.Tpo libarchive/$(DEPDIR)/test-archive_disk_acl_darwin.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_disk_acl_darwin.c' object='libarchive/test-archive_disk_acl_darwin.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_disk_acl_darwin.o `test -f 'libarchive/archive_disk_acl_darwin.c' || echo '$(srcdir)/'`libarchive/archive_disk_acl_darwin.c + +libarchive/test-archive_disk_acl_darwin.obj: libarchive/archive_disk_acl_darwin.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_disk_acl_darwin.obj -MD -MP -MF libarchive/$(DEPDIR)/test-archive_disk_acl_darwin.Tpo -c -o libarchive/test-archive_disk_acl_darwin.obj `if test -f 'libarchive/archive_disk_acl_darwin.c'; then $(CYGPATH_W) 'libarchive/archive_disk_acl_darwin.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_disk_acl_darwin.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_disk_acl_darwin.Tpo libarchive/$(DEPDIR)/test-archive_disk_acl_darwin.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_disk_acl_darwin.c' object='libarchive/test-archive_disk_acl_darwin.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_disk_acl_darwin.obj `if test -f 'libarchive/archive_disk_acl_darwin.c'; then $(CYGPATH_W) 'libarchive/archive_disk_acl_darwin.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_disk_acl_darwin.c'; fi` + +libarchive/test-archive_disk_acl_freebsd.o: libarchive/archive_disk_acl_freebsd.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_disk_acl_freebsd.o -MD -MP -MF libarchive/$(DEPDIR)/test-archive_disk_acl_freebsd.Tpo -c -o libarchive/test-archive_disk_acl_freebsd.o `test -f 'libarchive/archive_disk_acl_freebsd.c' || echo '$(srcdir)/'`libarchive/archive_disk_acl_freebsd.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_disk_acl_freebsd.Tpo libarchive/$(DEPDIR)/test-archive_disk_acl_freebsd.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_disk_acl_freebsd.c' object='libarchive/test-archive_disk_acl_freebsd.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_disk_acl_freebsd.o `test -f 'libarchive/archive_disk_acl_freebsd.c' || echo '$(srcdir)/'`libarchive/archive_disk_acl_freebsd.c + +libarchive/test-archive_disk_acl_freebsd.obj: libarchive/archive_disk_acl_freebsd.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test-archive_disk_acl_freebsd.obj -MD -MP -MF libarchive/$(DEPDIR)/test-archive_disk_acl_freebsd.Tpo -c -o libarchive/test-archive_disk_acl_freebsd.obj `if test -f 'libarchive/archive_disk_acl_freebsd.c'; then $(CYGPATH_W) 'libarchive/archive_disk_acl_freebsd.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_disk_acl_freebsd.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/$(DEPDIR)/test-archive_disk_acl_freebsd.Tpo libarchive/$(DEPDIR)/test-archive_disk_acl_freebsd.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/archive_disk_acl_freebsd.c' object='libarchive/test-archive_disk_acl_freebsd.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test-archive_disk_acl_freebsd.obj `if test -f 'libarchive/archive_disk_acl_freebsd.c'; then $(CYGPATH_W) 'libarchive/archive_disk_acl_freebsd.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/archive_disk_acl_freebsd.c'; fi` test_utils/libarchive_test-test_utils.o: test_utils/test_utils.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT test_utils/libarchive_test-test_utils.o -MD -MP -MF test_utils/$(DEPDIR)/libarchive_test-test_utils.Tpo -c -o test_utils/libarchive_test-test_utils.o `test -f 'test_utils/test_utils.c' || echo '$(srcdir)/'`test_utils/test_utils.c @@ -9900,3827 +10682,3869 @@ test_utils/libarchive_test-test_main.obj: test_utils/test_main.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o test_utils/libarchive_test-test_main.obj `if test -f 'test_utils/test_main.c'; then $(CYGPATH_W) 'test_utils/test_main.c'; else $(CYGPATH_W) '$(srcdir)/test_utils/test_main.c'; fi` -libarchive/test/libarchive_test-read_open_memory.o: libarchive/test/read_open_memory.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-read_open_memory.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-read_open_memory.Tpo -c -o libarchive/test/libarchive_test-read_open_memory.o `test -f 'libarchive/test/read_open_memory.c' || echo '$(srcdir)/'`libarchive/test/read_open_memory.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-read_open_memory.Tpo libarchive/test/$(DEPDIR)/libarchive_test-read_open_memory.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/read_open_memory.c' object='libarchive/test/libarchive_test-read_open_memory.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-read_open_memory.o: libarchive/test/read_open_memory.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-read_open_memory.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-read_open_memory.Tpo -c -o libarchive/test/test-read_open_memory.o `test -f 'libarchive/test/read_open_memory.c' || echo '$(srcdir)/'`libarchive/test/read_open_memory.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-read_open_memory.Tpo libarchive/test/$(DEPDIR)/test-read_open_memory.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/read_open_memory.c' object='libarchive/test/test-read_open_memory.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-read_open_memory.o `test -f 'libarchive/test/read_open_memory.c' || echo '$(srcdir)/'`libarchive/test/read_open_memory.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-read_open_memory.o `test -f 'libarchive/test/read_open_memory.c' || echo '$(srcdir)/'`libarchive/test/read_open_memory.c -libarchive/test/libarchive_test-read_open_memory.obj: libarchive/test/read_open_memory.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-read_open_memory.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-read_open_memory.Tpo -c -o libarchive/test/libarchive_test-read_open_memory.obj `if test -f 'libarchive/test/read_open_memory.c'; then $(CYGPATH_W) 'libarchive/test/read_open_memory.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/read_open_memory.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-read_open_memory.Tpo libarchive/test/$(DEPDIR)/libarchive_test-read_open_memory.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/read_open_memory.c' object='libarchive/test/libarchive_test-read_open_memory.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-read_open_memory.obj: libarchive/test/read_open_memory.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-read_open_memory.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-read_open_memory.Tpo -c -o libarchive/test/test-read_open_memory.obj `if test -f 'libarchive/test/read_open_memory.c'; then $(CYGPATH_W) 'libarchive/test/read_open_memory.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/read_open_memory.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-read_open_memory.Tpo libarchive/test/$(DEPDIR)/test-read_open_memory.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/read_open_memory.c' object='libarchive/test/test-read_open_memory.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-read_open_memory.obj `if test -f 'libarchive/test/read_open_memory.c'; then $(CYGPATH_W) 'libarchive/test/read_open_memory.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/read_open_memory.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-read_open_memory.obj `if test -f 'libarchive/test/read_open_memory.c'; then $(CYGPATH_W) 'libarchive/test/read_open_memory.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/read_open_memory.c'; fi` -libarchive/test/libarchive_test-test_acl_nfs4.o: libarchive/test/test_acl_nfs4.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_acl_nfs4.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_acl_nfs4.Tpo -c -o libarchive/test/libarchive_test-test_acl_nfs4.o `test -f 'libarchive/test/test_acl_nfs4.c' || echo '$(srcdir)/'`libarchive/test/test_acl_nfs4.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_acl_nfs4.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_acl_nfs4.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_acl_nfs4.c' object='libarchive/test/libarchive_test-test_acl_nfs4.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_acl_nfs4.o: libarchive/test/test_acl_nfs4.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_acl_nfs4.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_acl_nfs4.Tpo -c -o libarchive/test/test-test_acl_nfs4.o `test -f 'libarchive/test/test_acl_nfs4.c' || echo '$(srcdir)/'`libarchive/test/test_acl_nfs4.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_acl_nfs4.Tpo libarchive/test/$(DEPDIR)/test-test_acl_nfs4.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_acl_nfs4.c' object='libarchive/test/test-test_acl_nfs4.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_acl_nfs4.o `test -f 'libarchive/test/test_acl_nfs4.c' || echo '$(srcdir)/'`libarchive/test/test_acl_nfs4.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_acl_nfs4.o `test -f 'libarchive/test/test_acl_nfs4.c' || echo '$(srcdir)/'`libarchive/test/test_acl_nfs4.c -libarchive/test/libarchive_test-test_acl_nfs4.obj: libarchive/test/test_acl_nfs4.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_acl_nfs4.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_acl_nfs4.Tpo -c -o libarchive/test/libarchive_test-test_acl_nfs4.obj `if test -f 'libarchive/test/test_acl_nfs4.c'; then $(CYGPATH_W) 'libarchive/test/test_acl_nfs4.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_acl_nfs4.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_acl_nfs4.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_acl_nfs4.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_acl_nfs4.c' object='libarchive/test/libarchive_test-test_acl_nfs4.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_acl_nfs4.obj: libarchive/test/test_acl_nfs4.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_acl_nfs4.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_acl_nfs4.Tpo -c -o libarchive/test/test-test_acl_nfs4.obj `if test -f 'libarchive/test/test_acl_nfs4.c'; then $(CYGPATH_W) 'libarchive/test/test_acl_nfs4.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_acl_nfs4.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_acl_nfs4.Tpo libarchive/test/$(DEPDIR)/test-test_acl_nfs4.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_acl_nfs4.c' object='libarchive/test/test-test_acl_nfs4.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_acl_nfs4.obj `if test -f 'libarchive/test/test_acl_nfs4.c'; then $(CYGPATH_W) 'libarchive/test/test_acl_nfs4.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_acl_nfs4.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_acl_nfs4.obj `if test -f 'libarchive/test/test_acl_nfs4.c'; then $(CYGPATH_W) 'libarchive/test/test_acl_nfs4.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_acl_nfs4.c'; fi` -libarchive/test/libarchive_test-test_acl_pax.o: libarchive/test/test_acl_pax.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_acl_pax.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_acl_pax.Tpo -c -o libarchive/test/libarchive_test-test_acl_pax.o `test -f 'libarchive/test/test_acl_pax.c' || echo '$(srcdir)/'`libarchive/test/test_acl_pax.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_acl_pax.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_acl_pax.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_acl_pax.c' object='libarchive/test/libarchive_test-test_acl_pax.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_acl_pax.o: libarchive/test/test_acl_pax.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_acl_pax.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_acl_pax.Tpo -c -o libarchive/test/test-test_acl_pax.o `test -f 'libarchive/test/test_acl_pax.c' || echo '$(srcdir)/'`libarchive/test/test_acl_pax.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_acl_pax.Tpo libarchive/test/$(DEPDIR)/test-test_acl_pax.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_acl_pax.c' object='libarchive/test/test-test_acl_pax.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_acl_pax.o `test -f 'libarchive/test/test_acl_pax.c' || echo '$(srcdir)/'`libarchive/test/test_acl_pax.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_acl_pax.o `test -f 'libarchive/test/test_acl_pax.c' || echo '$(srcdir)/'`libarchive/test/test_acl_pax.c -libarchive/test/libarchive_test-test_acl_pax.obj: libarchive/test/test_acl_pax.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_acl_pax.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_acl_pax.Tpo -c -o libarchive/test/libarchive_test-test_acl_pax.obj `if test -f 'libarchive/test/test_acl_pax.c'; then $(CYGPATH_W) 'libarchive/test/test_acl_pax.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_acl_pax.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_acl_pax.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_acl_pax.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_acl_pax.c' object='libarchive/test/libarchive_test-test_acl_pax.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_acl_pax.obj: libarchive/test/test_acl_pax.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_acl_pax.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_acl_pax.Tpo -c -o libarchive/test/test-test_acl_pax.obj `if test -f 'libarchive/test/test_acl_pax.c'; then $(CYGPATH_W) 'libarchive/test/test_acl_pax.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_acl_pax.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_acl_pax.Tpo libarchive/test/$(DEPDIR)/test-test_acl_pax.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_acl_pax.c' object='libarchive/test/test-test_acl_pax.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_acl_pax.obj `if test -f 'libarchive/test/test_acl_pax.c'; then $(CYGPATH_W) 'libarchive/test/test_acl_pax.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_acl_pax.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_acl_pax.obj `if test -f 'libarchive/test/test_acl_pax.c'; then $(CYGPATH_W) 'libarchive/test/test_acl_pax.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_acl_pax.c'; fi` -libarchive/test/libarchive_test-test_acl_platform_nfs4.o: libarchive/test/test_acl_platform_nfs4.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_acl_platform_nfs4.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_acl_platform_nfs4.Tpo -c -o libarchive/test/libarchive_test-test_acl_platform_nfs4.o `test -f 'libarchive/test/test_acl_platform_nfs4.c' || echo '$(srcdir)/'`libarchive/test/test_acl_platform_nfs4.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_acl_platform_nfs4.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_acl_platform_nfs4.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_acl_platform_nfs4.c' object='libarchive/test/libarchive_test-test_acl_platform_nfs4.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_acl_platform_nfs4.o: libarchive/test/test_acl_platform_nfs4.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_acl_platform_nfs4.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_acl_platform_nfs4.Tpo -c -o libarchive/test/test-test_acl_platform_nfs4.o `test -f 'libarchive/test/test_acl_platform_nfs4.c' || echo '$(srcdir)/'`libarchive/test/test_acl_platform_nfs4.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_acl_platform_nfs4.Tpo libarchive/test/$(DEPDIR)/test-test_acl_platform_nfs4.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_acl_platform_nfs4.c' object='libarchive/test/test-test_acl_platform_nfs4.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_acl_platform_nfs4.o `test -f 'libarchive/test/test_acl_platform_nfs4.c' || echo '$(srcdir)/'`libarchive/test/test_acl_platform_nfs4.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_acl_platform_nfs4.o `test -f 'libarchive/test/test_acl_platform_nfs4.c' || echo '$(srcdir)/'`libarchive/test/test_acl_platform_nfs4.c -libarchive/test/libarchive_test-test_acl_platform_nfs4.obj: libarchive/test/test_acl_platform_nfs4.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_acl_platform_nfs4.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_acl_platform_nfs4.Tpo -c -o libarchive/test/libarchive_test-test_acl_platform_nfs4.obj `if test -f 'libarchive/test/test_acl_platform_nfs4.c'; then $(CYGPATH_W) 'libarchive/test/test_acl_platform_nfs4.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_acl_platform_nfs4.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_acl_platform_nfs4.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_acl_platform_nfs4.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_acl_platform_nfs4.c' object='libarchive/test/libarchive_test-test_acl_platform_nfs4.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_acl_platform_nfs4.obj: libarchive/test/test_acl_platform_nfs4.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_acl_platform_nfs4.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_acl_platform_nfs4.Tpo -c -o libarchive/test/test-test_acl_platform_nfs4.obj `if test -f 'libarchive/test/test_acl_platform_nfs4.c'; then $(CYGPATH_W) 'libarchive/test/test_acl_platform_nfs4.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_acl_platform_nfs4.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_acl_platform_nfs4.Tpo libarchive/test/$(DEPDIR)/test-test_acl_platform_nfs4.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_acl_platform_nfs4.c' object='libarchive/test/test-test_acl_platform_nfs4.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_acl_platform_nfs4.obj `if test -f 'libarchive/test/test_acl_platform_nfs4.c'; then $(CYGPATH_W) 'libarchive/test/test_acl_platform_nfs4.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_acl_platform_nfs4.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_acl_platform_nfs4.obj `if test -f 'libarchive/test/test_acl_platform_nfs4.c'; then $(CYGPATH_W) 'libarchive/test/test_acl_platform_nfs4.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_acl_platform_nfs4.c'; fi` -libarchive/test/libarchive_test-test_acl_platform_posix1e.o: libarchive/test/test_acl_platform_posix1e.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_acl_platform_posix1e.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_acl_platform_posix1e.Tpo -c -o libarchive/test/libarchive_test-test_acl_platform_posix1e.o `test -f 'libarchive/test/test_acl_platform_posix1e.c' || echo '$(srcdir)/'`libarchive/test/test_acl_platform_posix1e.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_acl_platform_posix1e.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_acl_platform_posix1e.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_acl_platform_posix1e.c' object='libarchive/test/libarchive_test-test_acl_platform_posix1e.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_acl_platform_posix1e.o: libarchive/test/test_acl_platform_posix1e.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_acl_platform_posix1e.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_acl_platform_posix1e.Tpo -c -o libarchive/test/test-test_acl_platform_posix1e.o `test -f 'libarchive/test/test_acl_platform_posix1e.c' || echo '$(srcdir)/'`libarchive/test/test_acl_platform_posix1e.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_acl_platform_posix1e.Tpo libarchive/test/$(DEPDIR)/test-test_acl_platform_posix1e.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_acl_platform_posix1e.c' object='libarchive/test/test-test_acl_platform_posix1e.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_acl_platform_posix1e.o `test -f 'libarchive/test/test_acl_platform_posix1e.c' || echo '$(srcdir)/'`libarchive/test/test_acl_platform_posix1e.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_acl_platform_posix1e.o `test -f 'libarchive/test/test_acl_platform_posix1e.c' || echo '$(srcdir)/'`libarchive/test/test_acl_platform_posix1e.c -libarchive/test/libarchive_test-test_acl_platform_posix1e.obj: libarchive/test/test_acl_platform_posix1e.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_acl_platform_posix1e.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_acl_platform_posix1e.Tpo -c -o libarchive/test/libarchive_test-test_acl_platform_posix1e.obj `if test -f 'libarchive/test/test_acl_platform_posix1e.c'; then $(CYGPATH_W) 'libarchive/test/test_acl_platform_posix1e.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_acl_platform_posix1e.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_acl_platform_posix1e.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_acl_platform_posix1e.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_acl_platform_posix1e.c' object='libarchive/test/libarchive_test-test_acl_platform_posix1e.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_acl_platform_posix1e.obj: libarchive/test/test_acl_platform_posix1e.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_acl_platform_posix1e.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_acl_platform_posix1e.Tpo -c -o libarchive/test/test-test_acl_platform_posix1e.obj `if test -f 'libarchive/test/test_acl_platform_posix1e.c'; then $(CYGPATH_W) 'libarchive/test/test_acl_platform_posix1e.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_acl_platform_posix1e.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_acl_platform_posix1e.Tpo libarchive/test/$(DEPDIR)/test-test_acl_platform_posix1e.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_acl_platform_posix1e.c' object='libarchive/test/test-test_acl_platform_posix1e.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_acl_platform_posix1e.obj `if test -f 'libarchive/test/test_acl_platform_posix1e.c'; then $(CYGPATH_W) 'libarchive/test/test_acl_platform_posix1e.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_acl_platform_posix1e.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_acl_platform_posix1e.obj `if test -f 'libarchive/test/test_acl_platform_posix1e.c'; then $(CYGPATH_W) 'libarchive/test/test_acl_platform_posix1e.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_acl_platform_posix1e.c'; fi` -libarchive/test/libarchive_test-test_acl_posix1e.o: libarchive/test/test_acl_posix1e.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_acl_posix1e.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_acl_posix1e.Tpo -c -o libarchive/test/libarchive_test-test_acl_posix1e.o `test -f 'libarchive/test/test_acl_posix1e.c' || echo '$(srcdir)/'`libarchive/test/test_acl_posix1e.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_acl_posix1e.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_acl_posix1e.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_acl_posix1e.c' object='libarchive/test/libarchive_test-test_acl_posix1e.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_acl_posix1e.o: libarchive/test/test_acl_posix1e.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_acl_posix1e.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_acl_posix1e.Tpo -c -o libarchive/test/test-test_acl_posix1e.o `test -f 'libarchive/test/test_acl_posix1e.c' || echo '$(srcdir)/'`libarchive/test/test_acl_posix1e.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_acl_posix1e.Tpo libarchive/test/$(DEPDIR)/test-test_acl_posix1e.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_acl_posix1e.c' object='libarchive/test/test-test_acl_posix1e.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_acl_posix1e.o `test -f 'libarchive/test/test_acl_posix1e.c' || echo '$(srcdir)/'`libarchive/test/test_acl_posix1e.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_acl_posix1e.o `test -f 'libarchive/test/test_acl_posix1e.c' || echo '$(srcdir)/'`libarchive/test/test_acl_posix1e.c -libarchive/test/libarchive_test-test_acl_posix1e.obj: libarchive/test/test_acl_posix1e.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_acl_posix1e.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_acl_posix1e.Tpo -c -o libarchive/test/libarchive_test-test_acl_posix1e.obj `if test -f 'libarchive/test/test_acl_posix1e.c'; then $(CYGPATH_W) 'libarchive/test/test_acl_posix1e.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_acl_posix1e.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_acl_posix1e.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_acl_posix1e.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_acl_posix1e.c' object='libarchive/test/libarchive_test-test_acl_posix1e.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_acl_posix1e.obj: libarchive/test/test_acl_posix1e.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_acl_posix1e.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_acl_posix1e.Tpo -c -o libarchive/test/test-test_acl_posix1e.obj `if test -f 'libarchive/test/test_acl_posix1e.c'; then $(CYGPATH_W) 'libarchive/test/test_acl_posix1e.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_acl_posix1e.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_acl_posix1e.Tpo libarchive/test/$(DEPDIR)/test-test_acl_posix1e.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_acl_posix1e.c' object='libarchive/test/test-test_acl_posix1e.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_acl_posix1e.obj `if test -f 'libarchive/test/test_acl_posix1e.c'; then $(CYGPATH_W) 'libarchive/test/test_acl_posix1e.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_acl_posix1e.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_acl_posix1e.obj `if test -f 'libarchive/test/test_acl_posix1e.c'; then $(CYGPATH_W) 'libarchive/test/test_acl_posix1e.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_acl_posix1e.c'; fi` -libarchive/test/libarchive_test-test_acl_text.o: libarchive/test/test_acl_text.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_acl_text.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_acl_text.Tpo -c -o libarchive/test/libarchive_test-test_acl_text.o `test -f 'libarchive/test/test_acl_text.c' || echo '$(srcdir)/'`libarchive/test/test_acl_text.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_acl_text.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_acl_text.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_acl_text.c' object='libarchive/test/libarchive_test-test_acl_text.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_acl_text.o: libarchive/test/test_acl_text.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_acl_text.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_acl_text.Tpo -c -o libarchive/test/test-test_acl_text.o `test -f 'libarchive/test/test_acl_text.c' || echo '$(srcdir)/'`libarchive/test/test_acl_text.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_acl_text.Tpo libarchive/test/$(DEPDIR)/test-test_acl_text.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_acl_text.c' object='libarchive/test/test-test_acl_text.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_acl_text.o `test -f 'libarchive/test/test_acl_text.c' || echo '$(srcdir)/'`libarchive/test/test_acl_text.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_acl_text.o `test -f 'libarchive/test/test_acl_text.c' || echo '$(srcdir)/'`libarchive/test/test_acl_text.c -libarchive/test/libarchive_test-test_acl_text.obj: libarchive/test/test_acl_text.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_acl_text.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_acl_text.Tpo -c -o libarchive/test/libarchive_test-test_acl_text.obj `if test -f 'libarchive/test/test_acl_text.c'; then $(CYGPATH_W) 'libarchive/test/test_acl_text.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_acl_text.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_acl_text.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_acl_text.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_acl_text.c' object='libarchive/test/libarchive_test-test_acl_text.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_acl_text.obj: libarchive/test/test_acl_text.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_acl_text.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_acl_text.Tpo -c -o libarchive/test/test-test_acl_text.obj `if test -f 'libarchive/test/test_acl_text.c'; then $(CYGPATH_W) 'libarchive/test/test_acl_text.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_acl_text.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_acl_text.Tpo libarchive/test/$(DEPDIR)/test-test_acl_text.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_acl_text.c' object='libarchive/test/test-test_acl_text.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_acl_text.obj `if test -f 'libarchive/test/test_acl_text.c'; then $(CYGPATH_W) 'libarchive/test/test_acl_text.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_acl_text.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_acl_text.obj `if test -f 'libarchive/test/test_acl_text.c'; then $(CYGPATH_W) 'libarchive/test/test_acl_text.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_acl_text.c'; fi` -libarchive/test/libarchive_test-test_archive_api_feature.o: libarchive/test/test_archive_api_feature.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_archive_api_feature.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_archive_api_feature.Tpo -c -o libarchive/test/libarchive_test-test_archive_api_feature.o `test -f 'libarchive/test/test_archive_api_feature.c' || echo '$(srcdir)/'`libarchive/test/test_archive_api_feature.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_archive_api_feature.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_archive_api_feature.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_archive_api_feature.c' object='libarchive/test/libarchive_test-test_archive_api_feature.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_archive_api_feature.o: libarchive/test/test_archive_api_feature.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_archive_api_feature.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_archive_api_feature.Tpo -c -o libarchive/test/test-test_archive_api_feature.o `test -f 'libarchive/test/test_archive_api_feature.c' || echo '$(srcdir)/'`libarchive/test/test_archive_api_feature.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_archive_api_feature.Tpo libarchive/test/$(DEPDIR)/test-test_archive_api_feature.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_archive_api_feature.c' object='libarchive/test/test-test_archive_api_feature.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_archive_api_feature.o `test -f 'libarchive/test/test_archive_api_feature.c' || echo '$(srcdir)/'`libarchive/test/test_archive_api_feature.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_archive_api_feature.o `test -f 'libarchive/test/test_archive_api_feature.c' || echo '$(srcdir)/'`libarchive/test/test_archive_api_feature.c -libarchive/test/libarchive_test-test_archive_api_feature.obj: libarchive/test/test_archive_api_feature.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_archive_api_feature.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_archive_api_feature.Tpo -c -o libarchive/test/libarchive_test-test_archive_api_feature.obj `if test -f 'libarchive/test/test_archive_api_feature.c'; then $(CYGPATH_W) 'libarchive/test/test_archive_api_feature.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_archive_api_feature.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_archive_api_feature.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_archive_api_feature.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_archive_api_feature.c' object='libarchive/test/libarchive_test-test_archive_api_feature.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_archive_api_feature.obj: libarchive/test/test_archive_api_feature.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_archive_api_feature.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_archive_api_feature.Tpo -c -o libarchive/test/test-test_archive_api_feature.obj `if test -f 'libarchive/test/test_archive_api_feature.c'; then $(CYGPATH_W) 'libarchive/test/test_archive_api_feature.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_archive_api_feature.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_archive_api_feature.Tpo libarchive/test/$(DEPDIR)/test-test_archive_api_feature.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_archive_api_feature.c' object='libarchive/test/test-test_archive_api_feature.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_archive_api_feature.obj `if test -f 'libarchive/test/test_archive_api_feature.c'; then $(CYGPATH_W) 'libarchive/test/test_archive_api_feature.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_archive_api_feature.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_archive_api_feature.obj `if test -f 'libarchive/test/test_archive_api_feature.c'; then $(CYGPATH_W) 'libarchive/test/test_archive_api_feature.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_archive_api_feature.c'; fi` -libarchive/test/libarchive_test-test_archive_clear_error.o: libarchive/test/test_archive_clear_error.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_archive_clear_error.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_archive_clear_error.Tpo -c -o libarchive/test/libarchive_test-test_archive_clear_error.o `test -f 'libarchive/test/test_archive_clear_error.c' || echo '$(srcdir)/'`libarchive/test/test_archive_clear_error.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_archive_clear_error.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_archive_clear_error.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_archive_clear_error.c' object='libarchive/test/libarchive_test-test_archive_clear_error.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_archive_clear_error.o: libarchive/test/test_archive_clear_error.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_archive_clear_error.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_archive_clear_error.Tpo -c -o libarchive/test/test-test_archive_clear_error.o `test -f 'libarchive/test/test_archive_clear_error.c' || echo '$(srcdir)/'`libarchive/test/test_archive_clear_error.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_archive_clear_error.Tpo libarchive/test/$(DEPDIR)/test-test_archive_clear_error.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_archive_clear_error.c' object='libarchive/test/test-test_archive_clear_error.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_archive_clear_error.o `test -f 'libarchive/test/test_archive_clear_error.c' || echo '$(srcdir)/'`libarchive/test/test_archive_clear_error.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_archive_clear_error.o `test -f 'libarchive/test/test_archive_clear_error.c' || echo '$(srcdir)/'`libarchive/test/test_archive_clear_error.c -libarchive/test/libarchive_test-test_archive_clear_error.obj: libarchive/test/test_archive_clear_error.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_archive_clear_error.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_archive_clear_error.Tpo -c -o libarchive/test/libarchive_test-test_archive_clear_error.obj `if test -f 'libarchive/test/test_archive_clear_error.c'; then $(CYGPATH_W) 'libarchive/test/test_archive_clear_error.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_archive_clear_error.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_archive_clear_error.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_archive_clear_error.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_archive_clear_error.c' object='libarchive/test/libarchive_test-test_archive_clear_error.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_archive_clear_error.obj: libarchive/test/test_archive_clear_error.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_archive_clear_error.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_archive_clear_error.Tpo -c -o libarchive/test/test-test_archive_clear_error.obj `if test -f 'libarchive/test/test_archive_clear_error.c'; then $(CYGPATH_W) 'libarchive/test/test_archive_clear_error.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_archive_clear_error.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_archive_clear_error.Tpo libarchive/test/$(DEPDIR)/test-test_archive_clear_error.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_archive_clear_error.c' object='libarchive/test/test-test_archive_clear_error.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_archive_clear_error.obj `if test -f 'libarchive/test/test_archive_clear_error.c'; then $(CYGPATH_W) 'libarchive/test/test_archive_clear_error.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_archive_clear_error.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_archive_clear_error.obj `if test -f 'libarchive/test/test_archive_clear_error.c'; then $(CYGPATH_W) 'libarchive/test/test_archive_clear_error.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_archive_clear_error.c'; fi` -libarchive/test/libarchive_test-test_archive_cmdline.o: libarchive/test/test_archive_cmdline.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_archive_cmdline.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_archive_cmdline.Tpo -c -o libarchive/test/libarchive_test-test_archive_cmdline.o `test -f 'libarchive/test/test_archive_cmdline.c' || echo '$(srcdir)/'`libarchive/test/test_archive_cmdline.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_archive_cmdline.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_archive_cmdline.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_archive_cmdline.c' object='libarchive/test/libarchive_test-test_archive_cmdline.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_archive_cmdline.o: libarchive/test/test_archive_cmdline.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_archive_cmdline.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_archive_cmdline.Tpo -c -o libarchive/test/test-test_archive_cmdline.o `test -f 'libarchive/test/test_archive_cmdline.c' || echo '$(srcdir)/'`libarchive/test/test_archive_cmdline.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_archive_cmdline.Tpo libarchive/test/$(DEPDIR)/test-test_archive_cmdline.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_archive_cmdline.c' object='libarchive/test/test-test_archive_cmdline.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_archive_cmdline.o `test -f 'libarchive/test/test_archive_cmdline.c' || echo '$(srcdir)/'`libarchive/test/test_archive_cmdline.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_archive_cmdline.o `test -f 'libarchive/test/test_archive_cmdline.c' || echo '$(srcdir)/'`libarchive/test/test_archive_cmdline.c -libarchive/test/libarchive_test-test_archive_cmdline.obj: libarchive/test/test_archive_cmdline.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_archive_cmdline.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_archive_cmdline.Tpo -c -o libarchive/test/libarchive_test-test_archive_cmdline.obj `if test -f 'libarchive/test/test_archive_cmdline.c'; then $(CYGPATH_W) 'libarchive/test/test_archive_cmdline.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_archive_cmdline.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_archive_cmdline.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_archive_cmdline.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_archive_cmdline.c' object='libarchive/test/libarchive_test-test_archive_cmdline.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_archive_cmdline.obj: libarchive/test/test_archive_cmdline.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_archive_cmdline.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_archive_cmdline.Tpo -c -o libarchive/test/test-test_archive_cmdline.obj `if test -f 'libarchive/test/test_archive_cmdline.c'; then $(CYGPATH_W) 'libarchive/test/test_archive_cmdline.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_archive_cmdline.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_archive_cmdline.Tpo libarchive/test/$(DEPDIR)/test-test_archive_cmdline.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_archive_cmdline.c' object='libarchive/test/test-test_archive_cmdline.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_archive_cmdline.obj `if test -f 'libarchive/test/test_archive_cmdline.c'; then $(CYGPATH_W) 'libarchive/test/test_archive_cmdline.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_archive_cmdline.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_archive_cmdline.obj `if test -f 'libarchive/test/test_archive_cmdline.c'; then $(CYGPATH_W) 'libarchive/test/test_archive_cmdline.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_archive_cmdline.c'; fi` -libarchive/test/libarchive_test-test_archive_digest.o: libarchive/test/test_archive_digest.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_archive_digest.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_archive_digest.Tpo -c -o libarchive/test/libarchive_test-test_archive_digest.o `test -f 'libarchive/test/test_archive_digest.c' || echo '$(srcdir)/'`libarchive/test/test_archive_digest.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_archive_digest.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_archive_digest.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_archive_digest.c' object='libarchive/test/libarchive_test-test_archive_digest.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_archive_digest.o: libarchive/test/test_archive_digest.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_archive_digest.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_archive_digest.Tpo -c -o libarchive/test/test-test_archive_digest.o `test -f 'libarchive/test/test_archive_digest.c' || echo '$(srcdir)/'`libarchive/test/test_archive_digest.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_archive_digest.Tpo libarchive/test/$(DEPDIR)/test-test_archive_digest.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_archive_digest.c' object='libarchive/test/test-test_archive_digest.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_archive_digest.o `test -f 'libarchive/test/test_archive_digest.c' || echo '$(srcdir)/'`libarchive/test/test_archive_digest.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_archive_digest.o `test -f 'libarchive/test/test_archive_digest.c' || echo '$(srcdir)/'`libarchive/test/test_archive_digest.c -libarchive/test/libarchive_test-test_archive_digest.obj: libarchive/test/test_archive_digest.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_archive_digest.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_archive_digest.Tpo -c -o libarchive/test/libarchive_test-test_archive_digest.obj `if test -f 'libarchive/test/test_archive_digest.c'; then $(CYGPATH_W) 'libarchive/test/test_archive_digest.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_archive_digest.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_archive_digest.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_archive_digest.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_archive_digest.c' object='libarchive/test/libarchive_test-test_archive_digest.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_archive_digest.obj: libarchive/test/test_archive_digest.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_archive_digest.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_archive_digest.Tpo -c -o libarchive/test/test-test_archive_digest.obj `if test -f 'libarchive/test/test_archive_digest.c'; then $(CYGPATH_W) 'libarchive/test/test_archive_digest.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_archive_digest.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_archive_digest.Tpo libarchive/test/$(DEPDIR)/test-test_archive_digest.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_archive_digest.c' object='libarchive/test/test-test_archive_digest.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_archive_digest.obj `if test -f 'libarchive/test/test_archive_digest.c'; then $(CYGPATH_W) 'libarchive/test/test_archive_digest.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_archive_digest.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_archive_digest.obj `if test -f 'libarchive/test/test_archive_digest.c'; then $(CYGPATH_W) 'libarchive/test/test_archive_digest.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_archive_digest.c'; fi` -libarchive/test/libarchive_test-test_archive_getdate.o: libarchive/test/test_archive_getdate.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_archive_getdate.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_archive_getdate.Tpo -c -o libarchive/test/libarchive_test-test_archive_getdate.o `test -f 'libarchive/test/test_archive_getdate.c' || echo '$(srcdir)/'`libarchive/test/test_archive_getdate.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_archive_getdate.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_archive_getdate.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_archive_getdate.c' object='libarchive/test/libarchive_test-test_archive_getdate.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_archive_getdate.o: libarchive/test/test_archive_getdate.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_archive_getdate.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_archive_getdate.Tpo -c -o libarchive/test/test-test_archive_getdate.o `test -f 'libarchive/test/test_archive_getdate.c' || echo '$(srcdir)/'`libarchive/test/test_archive_getdate.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_archive_getdate.Tpo libarchive/test/$(DEPDIR)/test-test_archive_getdate.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_archive_getdate.c' object='libarchive/test/test-test_archive_getdate.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_archive_getdate.o `test -f 'libarchive/test/test_archive_getdate.c' || echo '$(srcdir)/'`libarchive/test/test_archive_getdate.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_archive_getdate.o `test -f 'libarchive/test/test_archive_getdate.c' || echo '$(srcdir)/'`libarchive/test/test_archive_getdate.c -libarchive/test/libarchive_test-test_archive_getdate.obj: libarchive/test/test_archive_getdate.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_archive_getdate.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_archive_getdate.Tpo -c -o libarchive/test/libarchive_test-test_archive_getdate.obj `if test -f 'libarchive/test/test_archive_getdate.c'; then $(CYGPATH_W) 'libarchive/test/test_archive_getdate.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_archive_getdate.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_archive_getdate.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_archive_getdate.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_archive_getdate.c' object='libarchive/test/libarchive_test-test_archive_getdate.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_archive_getdate.obj: libarchive/test/test_archive_getdate.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_archive_getdate.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_archive_getdate.Tpo -c -o libarchive/test/test-test_archive_getdate.obj `if test -f 'libarchive/test/test_archive_getdate.c'; then $(CYGPATH_W) 'libarchive/test/test_archive_getdate.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_archive_getdate.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_archive_getdate.Tpo libarchive/test/$(DEPDIR)/test-test_archive_getdate.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_archive_getdate.c' object='libarchive/test/test-test_archive_getdate.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_archive_getdate.obj `if test -f 'libarchive/test/test_archive_getdate.c'; then $(CYGPATH_W) 'libarchive/test/test_archive_getdate.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_archive_getdate.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_archive_getdate.obj `if test -f 'libarchive/test/test_archive_getdate.c'; then $(CYGPATH_W) 'libarchive/test/test_archive_getdate.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_archive_getdate.c'; fi` -libarchive/test/libarchive_test-test_archive_match_owner.o: libarchive/test/test_archive_match_owner.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_archive_match_owner.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_archive_match_owner.Tpo -c -o libarchive/test/libarchive_test-test_archive_match_owner.o `test -f 'libarchive/test/test_archive_match_owner.c' || echo '$(srcdir)/'`libarchive/test/test_archive_match_owner.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_archive_match_owner.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_archive_match_owner.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_archive_match_owner.c' object='libarchive/test/libarchive_test-test_archive_match_owner.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_archive_match_owner.o: libarchive/test/test_archive_match_owner.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_archive_match_owner.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_archive_match_owner.Tpo -c -o libarchive/test/test-test_archive_match_owner.o `test -f 'libarchive/test/test_archive_match_owner.c' || echo '$(srcdir)/'`libarchive/test/test_archive_match_owner.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_archive_match_owner.Tpo libarchive/test/$(DEPDIR)/test-test_archive_match_owner.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_archive_match_owner.c' object='libarchive/test/test-test_archive_match_owner.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_archive_match_owner.o `test -f 'libarchive/test/test_archive_match_owner.c' || echo '$(srcdir)/'`libarchive/test/test_archive_match_owner.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_archive_match_owner.o `test -f 'libarchive/test/test_archive_match_owner.c' || echo '$(srcdir)/'`libarchive/test/test_archive_match_owner.c -libarchive/test/libarchive_test-test_archive_match_owner.obj: libarchive/test/test_archive_match_owner.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_archive_match_owner.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_archive_match_owner.Tpo -c -o libarchive/test/libarchive_test-test_archive_match_owner.obj `if test -f 'libarchive/test/test_archive_match_owner.c'; then $(CYGPATH_W) 'libarchive/test/test_archive_match_owner.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_archive_match_owner.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_archive_match_owner.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_archive_match_owner.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_archive_match_owner.c' object='libarchive/test/libarchive_test-test_archive_match_owner.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_archive_match_owner.obj: libarchive/test/test_archive_match_owner.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_archive_match_owner.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_archive_match_owner.Tpo -c -o libarchive/test/test-test_archive_match_owner.obj `if test -f 'libarchive/test/test_archive_match_owner.c'; then $(CYGPATH_W) 'libarchive/test/test_archive_match_owner.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_archive_match_owner.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_archive_match_owner.Tpo libarchive/test/$(DEPDIR)/test-test_archive_match_owner.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_archive_match_owner.c' object='libarchive/test/test-test_archive_match_owner.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_archive_match_owner.obj `if test -f 'libarchive/test/test_archive_match_owner.c'; then $(CYGPATH_W) 'libarchive/test/test_archive_match_owner.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_archive_match_owner.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_archive_match_owner.obj `if test -f 'libarchive/test/test_archive_match_owner.c'; then $(CYGPATH_W) 'libarchive/test/test_archive_match_owner.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_archive_match_owner.c'; fi` -libarchive/test/libarchive_test-test_archive_match_path.o: libarchive/test/test_archive_match_path.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_archive_match_path.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_archive_match_path.Tpo -c -o libarchive/test/libarchive_test-test_archive_match_path.o `test -f 'libarchive/test/test_archive_match_path.c' || echo '$(srcdir)/'`libarchive/test/test_archive_match_path.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_archive_match_path.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_archive_match_path.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_archive_match_path.c' object='libarchive/test/libarchive_test-test_archive_match_path.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_archive_match_path.o: libarchive/test/test_archive_match_path.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_archive_match_path.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_archive_match_path.Tpo -c -o libarchive/test/test-test_archive_match_path.o `test -f 'libarchive/test/test_archive_match_path.c' || echo '$(srcdir)/'`libarchive/test/test_archive_match_path.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_archive_match_path.Tpo libarchive/test/$(DEPDIR)/test-test_archive_match_path.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_archive_match_path.c' object='libarchive/test/test-test_archive_match_path.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_archive_match_path.o `test -f 'libarchive/test/test_archive_match_path.c' || echo '$(srcdir)/'`libarchive/test/test_archive_match_path.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_archive_match_path.o `test -f 'libarchive/test/test_archive_match_path.c' || echo '$(srcdir)/'`libarchive/test/test_archive_match_path.c -libarchive/test/libarchive_test-test_archive_match_path.obj: libarchive/test/test_archive_match_path.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_archive_match_path.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_archive_match_path.Tpo -c -o libarchive/test/libarchive_test-test_archive_match_path.obj `if test -f 'libarchive/test/test_archive_match_path.c'; then $(CYGPATH_W) 'libarchive/test/test_archive_match_path.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_archive_match_path.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_archive_match_path.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_archive_match_path.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_archive_match_path.c' object='libarchive/test/libarchive_test-test_archive_match_path.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_archive_match_path.obj: libarchive/test/test_archive_match_path.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_archive_match_path.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_archive_match_path.Tpo -c -o libarchive/test/test-test_archive_match_path.obj `if test -f 'libarchive/test/test_archive_match_path.c'; then $(CYGPATH_W) 'libarchive/test/test_archive_match_path.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_archive_match_path.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_archive_match_path.Tpo libarchive/test/$(DEPDIR)/test-test_archive_match_path.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_archive_match_path.c' object='libarchive/test/test-test_archive_match_path.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_archive_match_path.obj `if test -f 'libarchive/test/test_archive_match_path.c'; then $(CYGPATH_W) 'libarchive/test/test_archive_match_path.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_archive_match_path.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_archive_match_path.obj `if test -f 'libarchive/test/test_archive_match_path.c'; then $(CYGPATH_W) 'libarchive/test/test_archive_match_path.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_archive_match_path.c'; fi` -libarchive/test/libarchive_test-test_archive_match_time.o: libarchive/test/test_archive_match_time.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_archive_match_time.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_archive_match_time.Tpo -c -o libarchive/test/libarchive_test-test_archive_match_time.o `test -f 'libarchive/test/test_archive_match_time.c' || echo '$(srcdir)/'`libarchive/test/test_archive_match_time.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_archive_match_time.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_archive_match_time.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_archive_match_time.c' object='libarchive/test/libarchive_test-test_archive_match_time.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_archive_match_time.o: libarchive/test/test_archive_match_time.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_archive_match_time.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_archive_match_time.Tpo -c -o libarchive/test/test-test_archive_match_time.o `test -f 'libarchive/test/test_archive_match_time.c' || echo '$(srcdir)/'`libarchive/test/test_archive_match_time.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_archive_match_time.Tpo libarchive/test/$(DEPDIR)/test-test_archive_match_time.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_archive_match_time.c' object='libarchive/test/test-test_archive_match_time.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_archive_match_time.o `test -f 'libarchive/test/test_archive_match_time.c' || echo '$(srcdir)/'`libarchive/test/test_archive_match_time.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_archive_match_time.o `test -f 'libarchive/test/test_archive_match_time.c' || echo '$(srcdir)/'`libarchive/test/test_archive_match_time.c -libarchive/test/libarchive_test-test_archive_match_time.obj: libarchive/test/test_archive_match_time.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_archive_match_time.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_archive_match_time.Tpo -c -o libarchive/test/libarchive_test-test_archive_match_time.obj `if test -f 'libarchive/test/test_archive_match_time.c'; then $(CYGPATH_W) 'libarchive/test/test_archive_match_time.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_archive_match_time.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_archive_match_time.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_archive_match_time.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_archive_match_time.c' object='libarchive/test/libarchive_test-test_archive_match_time.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_archive_match_time.obj: libarchive/test/test_archive_match_time.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_archive_match_time.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_archive_match_time.Tpo -c -o libarchive/test/test-test_archive_match_time.obj `if test -f 'libarchive/test/test_archive_match_time.c'; then $(CYGPATH_W) 'libarchive/test/test_archive_match_time.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_archive_match_time.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_archive_match_time.Tpo libarchive/test/$(DEPDIR)/test-test_archive_match_time.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_archive_match_time.c' object='libarchive/test/test-test_archive_match_time.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_archive_match_time.obj `if test -f 'libarchive/test/test_archive_match_time.c'; then $(CYGPATH_W) 'libarchive/test/test_archive_match_time.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_archive_match_time.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_archive_match_time.obj `if test -f 'libarchive/test/test_archive_match_time.c'; then $(CYGPATH_W) 'libarchive/test/test_archive_match_time.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_archive_match_time.c'; fi` -libarchive/test/libarchive_test-test_archive_pathmatch.o: libarchive/test/test_archive_pathmatch.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_archive_pathmatch.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_archive_pathmatch.Tpo -c -o libarchive/test/libarchive_test-test_archive_pathmatch.o `test -f 'libarchive/test/test_archive_pathmatch.c' || echo '$(srcdir)/'`libarchive/test/test_archive_pathmatch.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_archive_pathmatch.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_archive_pathmatch.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_archive_pathmatch.c' object='libarchive/test/libarchive_test-test_archive_pathmatch.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_archive_pathmatch.o: libarchive/test/test_archive_pathmatch.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_archive_pathmatch.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_archive_pathmatch.Tpo -c -o libarchive/test/test-test_archive_pathmatch.o `test -f 'libarchive/test/test_archive_pathmatch.c' || echo '$(srcdir)/'`libarchive/test/test_archive_pathmatch.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_archive_pathmatch.Tpo libarchive/test/$(DEPDIR)/test-test_archive_pathmatch.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_archive_pathmatch.c' object='libarchive/test/test-test_archive_pathmatch.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_archive_pathmatch.o `test -f 'libarchive/test/test_archive_pathmatch.c' || echo '$(srcdir)/'`libarchive/test/test_archive_pathmatch.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_archive_pathmatch.o `test -f 'libarchive/test/test_archive_pathmatch.c' || echo '$(srcdir)/'`libarchive/test/test_archive_pathmatch.c -libarchive/test/libarchive_test-test_archive_pathmatch.obj: libarchive/test/test_archive_pathmatch.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_archive_pathmatch.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_archive_pathmatch.Tpo -c -o libarchive/test/libarchive_test-test_archive_pathmatch.obj `if test -f 'libarchive/test/test_archive_pathmatch.c'; then $(CYGPATH_W) 'libarchive/test/test_archive_pathmatch.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_archive_pathmatch.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_archive_pathmatch.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_archive_pathmatch.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_archive_pathmatch.c' object='libarchive/test/libarchive_test-test_archive_pathmatch.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_archive_pathmatch.obj: libarchive/test/test_archive_pathmatch.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_archive_pathmatch.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_archive_pathmatch.Tpo -c -o libarchive/test/test-test_archive_pathmatch.obj `if test -f 'libarchive/test/test_archive_pathmatch.c'; then $(CYGPATH_W) 'libarchive/test/test_archive_pathmatch.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_archive_pathmatch.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_archive_pathmatch.Tpo libarchive/test/$(DEPDIR)/test-test_archive_pathmatch.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_archive_pathmatch.c' object='libarchive/test/test-test_archive_pathmatch.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_archive_pathmatch.obj `if test -f 'libarchive/test/test_archive_pathmatch.c'; then $(CYGPATH_W) 'libarchive/test/test_archive_pathmatch.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_archive_pathmatch.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_archive_pathmatch.obj `if test -f 'libarchive/test/test_archive_pathmatch.c'; then $(CYGPATH_W) 'libarchive/test/test_archive_pathmatch.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_archive_pathmatch.c'; fi` -libarchive/test/libarchive_test-test_archive_read_add_passphrase.o: libarchive/test/test_archive_read_add_passphrase.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_archive_read_add_passphrase.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_archive_read_add_passphrase.Tpo -c -o libarchive/test/libarchive_test-test_archive_read_add_passphrase.o `test -f 'libarchive/test/test_archive_read_add_passphrase.c' || echo '$(srcdir)/'`libarchive/test/test_archive_read_add_passphrase.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_archive_read_add_passphrase.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_archive_read_add_passphrase.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_archive_read_add_passphrase.c' object='libarchive/test/libarchive_test-test_archive_read_add_passphrase.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_archive_read_add_passphrase.o: libarchive/test/test_archive_read_add_passphrase.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_archive_read_add_passphrase.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_archive_read_add_passphrase.Tpo -c -o libarchive/test/test-test_archive_read_add_passphrase.o `test -f 'libarchive/test/test_archive_read_add_passphrase.c' || echo '$(srcdir)/'`libarchive/test/test_archive_read_add_passphrase.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_archive_read_add_passphrase.Tpo libarchive/test/$(DEPDIR)/test-test_archive_read_add_passphrase.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_archive_read_add_passphrase.c' object='libarchive/test/test-test_archive_read_add_passphrase.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_archive_read_add_passphrase.o `test -f 'libarchive/test/test_archive_read_add_passphrase.c' || echo '$(srcdir)/'`libarchive/test/test_archive_read_add_passphrase.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_archive_read_add_passphrase.o `test -f 'libarchive/test/test_archive_read_add_passphrase.c' || echo '$(srcdir)/'`libarchive/test/test_archive_read_add_passphrase.c -libarchive/test/libarchive_test-test_archive_read_add_passphrase.obj: libarchive/test/test_archive_read_add_passphrase.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_archive_read_add_passphrase.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_archive_read_add_passphrase.Tpo -c -o libarchive/test/libarchive_test-test_archive_read_add_passphrase.obj `if test -f 'libarchive/test/test_archive_read_add_passphrase.c'; then $(CYGPATH_W) 'libarchive/test/test_archive_read_add_passphrase.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_archive_read_add_passphrase.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_archive_read_add_passphrase.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_archive_read_add_passphrase.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_archive_read_add_passphrase.c' object='libarchive/test/libarchive_test-test_archive_read_add_passphrase.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_archive_read_add_passphrase.obj: libarchive/test/test_archive_read_add_passphrase.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_archive_read_add_passphrase.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_archive_read_add_passphrase.Tpo -c -o libarchive/test/test-test_archive_read_add_passphrase.obj `if test -f 'libarchive/test/test_archive_read_add_passphrase.c'; then $(CYGPATH_W) 'libarchive/test/test_archive_read_add_passphrase.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_archive_read_add_passphrase.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_archive_read_add_passphrase.Tpo libarchive/test/$(DEPDIR)/test-test_archive_read_add_passphrase.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_archive_read_add_passphrase.c' object='libarchive/test/test-test_archive_read_add_passphrase.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_archive_read_add_passphrase.obj `if test -f 'libarchive/test/test_archive_read_add_passphrase.c'; then $(CYGPATH_W) 'libarchive/test/test_archive_read_add_passphrase.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_archive_read_add_passphrase.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_archive_read_add_passphrase.obj `if test -f 'libarchive/test/test_archive_read_add_passphrase.c'; then $(CYGPATH_W) 'libarchive/test/test_archive_read_add_passphrase.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_archive_read_add_passphrase.c'; fi` -libarchive/test/libarchive_test-test_archive_read_close_twice.o: libarchive/test/test_archive_read_close_twice.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_archive_read_close_twice.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_archive_read_close_twice.Tpo -c -o libarchive/test/libarchive_test-test_archive_read_close_twice.o `test -f 'libarchive/test/test_archive_read_close_twice.c' || echo '$(srcdir)/'`libarchive/test/test_archive_read_close_twice.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_archive_read_close_twice.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_archive_read_close_twice.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_archive_read_close_twice.c' object='libarchive/test/libarchive_test-test_archive_read_close_twice.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_archive_read_close_twice.o: libarchive/test/test_archive_read_close_twice.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_archive_read_close_twice.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_archive_read_close_twice.Tpo -c -o libarchive/test/test-test_archive_read_close_twice.o `test -f 'libarchive/test/test_archive_read_close_twice.c' || echo '$(srcdir)/'`libarchive/test/test_archive_read_close_twice.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_archive_read_close_twice.Tpo libarchive/test/$(DEPDIR)/test-test_archive_read_close_twice.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_archive_read_close_twice.c' object='libarchive/test/test-test_archive_read_close_twice.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_archive_read_close_twice.o `test -f 'libarchive/test/test_archive_read_close_twice.c' || echo '$(srcdir)/'`libarchive/test/test_archive_read_close_twice.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_archive_read_close_twice.o `test -f 'libarchive/test/test_archive_read_close_twice.c' || echo '$(srcdir)/'`libarchive/test/test_archive_read_close_twice.c -libarchive/test/libarchive_test-test_archive_read_close_twice.obj: libarchive/test/test_archive_read_close_twice.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_archive_read_close_twice.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_archive_read_close_twice.Tpo -c -o libarchive/test/libarchive_test-test_archive_read_close_twice.obj `if test -f 'libarchive/test/test_archive_read_close_twice.c'; then $(CYGPATH_W) 'libarchive/test/test_archive_read_close_twice.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_archive_read_close_twice.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_archive_read_close_twice.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_archive_read_close_twice.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_archive_read_close_twice.c' object='libarchive/test/libarchive_test-test_archive_read_close_twice.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_archive_read_close_twice.obj: libarchive/test/test_archive_read_close_twice.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_archive_read_close_twice.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_archive_read_close_twice.Tpo -c -o libarchive/test/test-test_archive_read_close_twice.obj `if test -f 'libarchive/test/test_archive_read_close_twice.c'; then $(CYGPATH_W) 'libarchive/test/test_archive_read_close_twice.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_archive_read_close_twice.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_archive_read_close_twice.Tpo libarchive/test/$(DEPDIR)/test-test_archive_read_close_twice.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_archive_read_close_twice.c' object='libarchive/test/test-test_archive_read_close_twice.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_archive_read_close_twice.obj `if test -f 'libarchive/test/test_archive_read_close_twice.c'; then $(CYGPATH_W) 'libarchive/test/test_archive_read_close_twice.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_archive_read_close_twice.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_archive_read_close_twice.obj `if test -f 'libarchive/test/test_archive_read_close_twice.c'; then $(CYGPATH_W) 'libarchive/test/test_archive_read_close_twice.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_archive_read_close_twice.c'; fi` -libarchive/test/libarchive_test-test_archive_read_close_twice_open_fd.o: libarchive/test/test_archive_read_close_twice_open_fd.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_archive_read_close_twice_open_fd.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_archive_read_close_twice_open_fd.Tpo -c -o libarchive/test/libarchive_test-test_archive_read_close_twice_open_fd.o `test -f 'libarchive/test/test_archive_read_close_twice_open_fd.c' || echo '$(srcdir)/'`libarchive/test/test_archive_read_close_twice_open_fd.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_archive_read_close_twice_open_fd.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_archive_read_close_twice_open_fd.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_archive_read_close_twice_open_fd.c' object='libarchive/test/libarchive_test-test_archive_read_close_twice_open_fd.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_archive_read_close_twice_open_fd.o: libarchive/test/test_archive_read_close_twice_open_fd.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_archive_read_close_twice_open_fd.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_archive_read_close_twice_open_fd.Tpo -c -o libarchive/test/test-test_archive_read_close_twice_open_fd.o `test -f 'libarchive/test/test_archive_read_close_twice_open_fd.c' || echo '$(srcdir)/'`libarchive/test/test_archive_read_close_twice_open_fd.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_archive_read_close_twice_open_fd.Tpo libarchive/test/$(DEPDIR)/test-test_archive_read_close_twice_open_fd.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_archive_read_close_twice_open_fd.c' object='libarchive/test/test-test_archive_read_close_twice_open_fd.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_archive_read_close_twice_open_fd.o `test -f 'libarchive/test/test_archive_read_close_twice_open_fd.c' || echo '$(srcdir)/'`libarchive/test/test_archive_read_close_twice_open_fd.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_archive_read_close_twice_open_fd.o `test -f 'libarchive/test/test_archive_read_close_twice_open_fd.c' || echo '$(srcdir)/'`libarchive/test/test_archive_read_close_twice_open_fd.c -libarchive/test/libarchive_test-test_archive_read_close_twice_open_fd.obj: libarchive/test/test_archive_read_close_twice_open_fd.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_archive_read_close_twice_open_fd.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_archive_read_close_twice_open_fd.Tpo -c -o libarchive/test/libarchive_test-test_archive_read_close_twice_open_fd.obj `if test -f 'libarchive/test/test_archive_read_close_twice_open_fd.c'; then $(CYGPATH_W) 'libarchive/test/test_archive_read_close_twice_open_fd.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_archive_read_close_twice_open_fd.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_archive_read_close_twice_open_fd.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_archive_read_close_twice_open_fd.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_archive_read_close_twice_open_fd.c' object='libarchive/test/libarchive_test-test_archive_read_close_twice_open_fd.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_archive_read_close_twice_open_fd.obj: libarchive/test/test_archive_read_close_twice_open_fd.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_archive_read_close_twice_open_fd.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_archive_read_close_twice_open_fd.Tpo -c -o libarchive/test/test-test_archive_read_close_twice_open_fd.obj `if test -f 'libarchive/test/test_archive_read_close_twice_open_fd.c'; then $(CYGPATH_W) 'libarchive/test/test_archive_read_close_twice_open_fd.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_archive_read_close_twice_open_fd.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_archive_read_close_twice_open_fd.Tpo libarchive/test/$(DEPDIR)/test-test_archive_read_close_twice_open_fd.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_archive_read_close_twice_open_fd.c' object='libarchive/test/test-test_archive_read_close_twice_open_fd.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_archive_read_close_twice_open_fd.obj `if test -f 'libarchive/test/test_archive_read_close_twice_open_fd.c'; then $(CYGPATH_W) 'libarchive/test/test_archive_read_close_twice_open_fd.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_archive_read_close_twice_open_fd.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_archive_read_close_twice_open_fd.obj `if test -f 'libarchive/test/test_archive_read_close_twice_open_fd.c'; then $(CYGPATH_W) 'libarchive/test/test_archive_read_close_twice_open_fd.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_archive_read_close_twice_open_fd.c'; fi` -libarchive/test/libarchive_test-test_archive_read_close_twice_open_filename.o: libarchive/test/test_archive_read_close_twice_open_filename.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_archive_read_close_twice_open_filename.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_archive_read_close_twice_open_filename.Tpo -c -o libarchive/test/libarchive_test-test_archive_read_close_twice_open_filename.o `test -f 'libarchive/test/test_archive_read_close_twice_open_filename.c' || echo '$(srcdir)/'`libarchive/test/test_archive_read_close_twice_open_filename.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_archive_read_close_twice_open_filename.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_archive_read_close_twice_open_filename.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_archive_read_close_twice_open_filename.c' object='libarchive/test/libarchive_test-test_archive_read_close_twice_open_filename.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_archive_read_close_twice_open_filename.o: libarchive/test/test_archive_read_close_twice_open_filename.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_archive_read_close_twice_open_filename.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_archive_read_close_twice_open_filename.Tpo -c -o libarchive/test/test-test_archive_read_close_twice_open_filename.o `test -f 'libarchive/test/test_archive_read_close_twice_open_filename.c' || echo '$(srcdir)/'`libarchive/test/test_archive_read_close_twice_open_filename.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_archive_read_close_twice_open_filename.Tpo libarchive/test/$(DEPDIR)/test-test_archive_read_close_twice_open_filename.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_archive_read_close_twice_open_filename.c' object='libarchive/test/test-test_archive_read_close_twice_open_filename.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_archive_read_close_twice_open_filename.o `test -f 'libarchive/test/test_archive_read_close_twice_open_filename.c' || echo '$(srcdir)/'`libarchive/test/test_archive_read_close_twice_open_filename.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_archive_read_close_twice_open_filename.o `test -f 'libarchive/test/test_archive_read_close_twice_open_filename.c' || echo '$(srcdir)/'`libarchive/test/test_archive_read_close_twice_open_filename.c -libarchive/test/libarchive_test-test_archive_read_close_twice_open_filename.obj: libarchive/test/test_archive_read_close_twice_open_filename.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_archive_read_close_twice_open_filename.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_archive_read_close_twice_open_filename.Tpo -c -o libarchive/test/libarchive_test-test_archive_read_close_twice_open_filename.obj `if test -f 'libarchive/test/test_archive_read_close_twice_open_filename.c'; then $(CYGPATH_W) 'libarchive/test/test_archive_read_close_twice_open_filename.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_archive_read_close_twice_open_filename.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_archive_read_close_twice_open_filename.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_archive_read_close_twice_open_filename.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_archive_read_close_twice_open_filename.c' object='libarchive/test/libarchive_test-test_archive_read_close_twice_open_filename.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_archive_read_close_twice_open_filename.obj: libarchive/test/test_archive_read_close_twice_open_filename.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_archive_read_close_twice_open_filename.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_archive_read_close_twice_open_filename.Tpo -c -o libarchive/test/test-test_archive_read_close_twice_open_filename.obj `if test -f 'libarchive/test/test_archive_read_close_twice_open_filename.c'; then $(CYGPATH_W) 'libarchive/test/test_archive_read_close_twice_open_filename.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_archive_read_close_twice_open_filename.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_archive_read_close_twice_open_filename.Tpo libarchive/test/$(DEPDIR)/test-test_archive_read_close_twice_open_filename.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_archive_read_close_twice_open_filename.c' object='libarchive/test/test-test_archive_read_close_twice_open_filename.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_archive_read_close_twice_open_filename.obj `if test -f 'libarchive/test/test_archive_read_close_twice_open_filename.c'; then $(CYGPATH_W) 'libarchive/test/test_archive_read_close_twice_open_filename.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_archive_read_close_twice_open_filename.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_archive_read_close_twice_open_filename.obj `if test -f 'libarchive/test/test_archive_read_close_twice_open_filename.c'; then $(CYGPATH_W) 'libarchive/test/test_archive_read_close_twice_open_filename.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_archive_read_close_twice_open_filename.c'; fi` -libarchive/test/libarchive_test-test_archive_read_multiple_data_objects.o: libarchive/test/test_archive_read_multiple_data_objects.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_archive_read_multiple_data_objects.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_archive_read_multiple_data_objects.Tpo -c -o libarchive/test/libarchive_test-test_archive_read_multiple_data_objects.o `test -f 'libarchive/test/test_archive_read_multiple_data_objects.c' || echo '$(srcdir)/'`libarchive/test/test_archive_read_multiple_data_objects.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_archive_read_multiple_data_objects.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_archive_read_multiple_data_objects.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_archive_read_multiple_data_objects.c' object='libarchive/test/libarchive_test-test_archive_read_multiple_data_objects.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_archive_read_multiple_data_objects.o: libarchive/test/test_archive_read_multiple_data_objects.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_archive_read_multiple_data_objects.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_archive_read_multiple_data_objects.Tpo -c -o libarchive/test/test-test_archive_read_multiple_data_objects.o `test -f 'libarchive/test/test_archive_read_multiple_data_objects.c' || echo '$(srcdir)/'`libarchive/test/test_archive_read_multiple_data_objects.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_archive_read_multiple_data_objects.Tpo libarchive/test/$(DEPDIR)/test-test_archive_read_multiple_data_objects.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_archive_read_multiple_data_objects.c' object='libarchive/test/test-test_archive_read_multiple_data_objects.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_archive_read_multiple_data_objects.o `test -f 'libarchive/test/test_archive_read_multiple_data_objects.c' || echo '$(srcdir)/'`libarchive/test/test_archive_read_multiple_data_objects.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_archive_read_multiple_data_objects.o `test -f 'libarchive/test/test_archive_read_multiple_data_objects.c' || echo '$(srcdir)/'`libarchive/test/test_archive_read_multiple_data_objects.c -libarchive/test/libarchive_test-test_archive_read_multiple_data_objects.obj: libarchive/test/test_archive_read_multiple_data_objects.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_archive_read_multiple_data_objects.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_archive_read_multiple_data_objects.Tpo -c -o libarchive/test/libarchive_test-test_archive_read_multiple_data_objects.obj `if test -f 'libarchive/test/test_archive_read_multiple_data_objects.c'; then $(CYGPATH_W) 'libarchive/test/test_archive_read_multiple_data_objects.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_archive_read_multiple_data_objects.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_archive_read_multiple_data_objects.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_archive_read_multiple_data_objects.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_archive_read_multiple_data_objects.c' object='libarchive/test/libarchive_test-test_archive_read_multiple_data_objects.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_archive_read_multiple_data_objects.obj: libarchive/test/test_archive_read_multiple_data_objects.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_archive_read_multiple_data_objects.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_archive_read_multiple_data_objects.Tpo -c -o libarchive/test/test-test_archive_read_multiple_data_objects.obj `if test -f 'libarchive/test/test_archive_read_multiple_data_objects.c'; then $(CYGPATH_W) 'libarchive/test/test_archive_read_multiple_data_objects.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_archive_read_multiple_data_objects.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_archive_read_multiple_data_objects.Tpo libarchive/test/$(DEPDIR)/test-test_archive_read_multiple_data_objects.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_archive_read_multiple_data_objects.c' object='libarchive/test/test-test_archive_read_multiple_data_objects.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_archive_read_multiple_data_objects.obj `if test -f 'libarchive/test/test_archive_read_multiple_data_objects.c'; then $(CYGPATH_W) 'libarchive/test/test_archive_read_multiple_data_objects.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_archive_read_multiple_data_objects.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_archive_read_multiple_data_objects.obj `if test -f 'libarchive/test/test_archive_read_multiple_data_objects.c'; then $(CYGPATH_W) 'libarchive/test/test_archive_read_multiple_data_objects.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_archive_read_multiple_data_objects.c'; fi` -libarchive/test/libarchive_test-test_archive_read_next_header_empty.o: libarchive/test/test_archive_read_next_header_empty.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_archive_read_next_header_empty.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_archive_read_next_header_empty.Tpo -c -o libarchive/test/libarchive_test-test_archive_read_next_header_empty.o `test -f 'libarchive/test/test_archive_read_next_header_empty.c' || echo '$(srcdir)/'`libarchive/test/test_archive_read_next_header_empty.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_archive_read_next_header_empty.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_archive_read_next_header_empty.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_archive_read_next_header_empty.c' object='libarchive/test/libarchive_test-test_archive_read_next_header_empty.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_archive_read_next_header_empty.o: libarchive/test/test_archive_read_next_header_empty.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_archive_read_next_header_empty.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_archive_read_next_header_empty.Tpo -c -o libarchive/test/test-test_archive_read_next_header_empty.o `test -f 'libarchive/test/test_archive_read_next_header_empty.c' || echo '$(srcdir)/'`libarchive/test/test_archive_read_next_header_empty.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_archive_read_next_header_empty.Tpo libarchive/test/$(DEPDIR)/test-test_archive_read_next_header_empty.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_archive_read_next_header_empty.c' object='libarchive/test/test-test_archive_read_next_header_empty.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_archive_read_next_header_empty.o `test -f 'libarchive/test/test_archive_read_next_header_empty.c' || echo '$(srcdir)/'`libarchive/test/test_archive_read_next_header_empty.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_archive_read_next_header_empty.o `test -f 'libarchive/test/test_archive_read_next_header_empty.c' || echo '$(srcdir)/'`libarchive/test/test_archive_read_next_header_empty.c -libarchive/test/libarchive_test-test_archive_read_next_header_empty.obj: libarchive/test/test_archive_read_next_header_empty.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_archive_read_next_header_empty.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_archive_read_next_header_empty.Tpo -c -o libarchive/test/libarchive_test-test_archive_read_next_header_empty.obj `if test -f 'libarchive/test/test_archive_read_next_header_empty.c'; then $(CYGPATH_W) 'libarchive/test/test_archive_read_next_header_empty.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_archive_read_next_header_empty.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_archive_read_next_header_empty.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_archive_read_next_header_empty.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_archive_read_next_header_empty.c' object='libarchive/test/libarchive_test-test_archive_read_next_header_empty.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_archive_read_next_header_empty.obj: libarchive/test/test_archive_read_next_header_empty.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_archive_read_next_header_empty.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_archive_read_next_header_empty.Tpo -c -o libarchive/test/test-test_archive_read_next_header_empty.obj `if test -f 'libarchive/test/test_archive_read_next_header_empty.c'; then $(CYGPATH_W) 'libarchive/test/test_archive_read_next_header_empty.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_archive_read_next_header_empty.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_archive_read_next_header_empty.Tpo libarchive/test/$(DEPDIR)/test-test_archive_read_next_header_empty.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_archive_read_next_header_empty.c' object='libarchive/test/test-test_archive_read_next_header_empty.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_archive_read_next_header_empty.obj `if test -f 'libarchive/test/test_archive_read_next_header_empty.c'; then $(CYGPATH_W) 'libarchive/test/test_archive_read_next_header_empty.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_archive_read_next_header_empty.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_archive_read_next_header_empty.obj `if test -f 'libarchive/test/test_archive_read_next_header_empty.c'; then $(CYGPATH_W) 'libarchive/test/test_archive_read_next_header_empty.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_archive_read_next_header_empty.c'; fi` -libarchive/test/libarchive_test-test_archive_read_next_header_raw.o: libarchive/test/test_archive_read_next_header_raw.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_archive_read_next_header_raw.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_archive_read_next_header_raw.Tpo -c -o libarchive/test/libarchive_test-test_archive_read_next_header_raw.o `test -f 'libarchive/test/test_archive_read_next_header_raw.c' || echo '$(srcdir)/'`libarchive/test/test_archive_read_next_header_raw.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_archive_read_next_header_raw.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_archive_read_next_header_raw.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_archive_read_next_header_raw.c' object='libarchive/test/libarchive_test-test_archive_read_next_header_raw.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_archive_read_next_header_raw.o: libarchive/test/test_archive_read_next_header_raw.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_archive_read_next_header_raw.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_archive_read_next_header_raw.Tpo -c -o libarchive/test/test-test_archive_read_next_header_raw.o `test -f 'libarchive/test/test_archive_read_next_header_raw.c' || echo '$(srcdir)/'`libarchive/test/test_archive_read_next_header_raw.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_archive_read_next_header_raw.Tpo libarchive/test/$(DEPDIR)/test-test_archive_read_next_header_raw.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_archive_read_next_header_raw.c' object='libarchive/test/test-test_archive_read_next_header_raw.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_archive_read_next_header_raw.o `test -f 'libarchive/test/test_archive_read_next_header_raw.c' || echo '$(srcdir)/'`libarchive/test/test_archive_read_next_header_raw.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_archive_read_next_header_raw.o `test -f 'libarchive/test/test_archive_read_next_header_raw.c' || echo '$(srcdir)/'`libarchive/test/test_archive_read_next_header_raw.c -libarchive/test/libarchive_test-test_archive_read_next_header_raw.obj: libarchive/test/test_archive_read_next_header_raw.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_archive_read_next_header_raw.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_archive_read_next_header_raw.Tpo -c -o libarchive/test/libarchive_test-test_archive_read_next_header_raw.obj `if test -f 'libarchive/test/test_archive_read_next_header_raw.c'; then $(CYGPATH_W) 'libarchive/test/test_archive_read_next_header_raw.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_archive_read_next_header_raw.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_archive_read_next_header_raw.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_archive_read_next_header_raw.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_archive_read_next_header_raw.c' object='libarchive/test/libarchive_test-test_archive_read_next_header_raw.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_archive_read_next_header_raw.obj: libarchive/test/test_archive_read_next_header_raw.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_archive_read_next_header_raw.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_archive_read_next_header_raw.Tpo -c -o libarchive/test/test-test_archive_read_next_header_raw.obj `if test -f 'libarchive/test/test_archive_read_next_header_raw.c'; then $(CYGPATH_W) 'libarchive/test/test_archive_read_next_header_raw.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_archive_read_next_header_raw.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_archive_read_next_header_raw.Tpo libarchive/test/$(DEPDIR)/test-test_archive_read_next_header_raw.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_archive_read_next_header_raw.c' object='libarchive/test/test-test_archive_read_next_header_raw.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_archive_read_next_header_raw.obj `if test -f 'libarchive/test/test_archive_read_next_header_raw.c'; then $(CYGPATH_W) 'libarchive/test/test_archive_read_next_header_raw.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_archive_read_next_header_raw.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_archive_read_next_header_raw.obj `if test -f 'libarchive/test/test_archive_read_next_header_raw.c'; then $(CYGPATH_W) 'libarchive/test/test_archive_read_next_header_raw.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_archive_read_next_header_raw.c'; fi` -libarchive/test/libarchive_test-test_archive_read_open2.o: libarchive/test/test_archive_read_open2.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_archive_read_open2.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_archive_read_open2.Tpo -c -o libarchive/test/libarchive_test-test_archive_read_open2.o `test -f 'libarchive/test/test_archive_read_open2.c' || echo '$(srcdir)/'`libarchive/test/test_archive_read_open2.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_archive_read_open2.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_archive_read_open2.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_archive_read_open2.c' object='libarchive/test/libarchive_test-test_archive_read_open2.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_archive_read_open2.o: libarchive/test/test_archive_read_open2.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_archive_read_open2.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_archive_read_open2.Tpo -c -o libarchive/test/test-test_archive_read_open2.o `test -f 'libarchive/test/test_archive_read_open2.c' || echo '$(srcdir)/'`libarchive/test/test_archive_read_open2.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_archive_read_open2.Tpo libarchive/test/$(DEPDIR)/test-test_archive_read_open2.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_archive_read_open2.c' object='libarchive/test/test-test_archive_read_open2.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_archive_read_open2.o `test -f 'libarchive/test/test_archive_read_open2.c' || echo '$(srcdir)/'`libarchive/test/test_archive_read_open2.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_archive_read_open2.o `test -f 'libarchive/test/test_archive_read_open2.c' || echo '$(srcdir)/'`libarchive/test/test_archive_read_open2.c -libarchive/test/libarchive_test-test_archive_read_open2.obj: libarchive/test/test_archive_read_open2.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_archive_read_open2.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_archive_read_open2.Tpo -c -o libarchive/test/libarchive_test-test_archive_read_open2.obj `if test -f 'libarchive/test/test_archive_read_open2.c'; then $(CYGPATH_W) 'libarchive/test/test_archive_read_open2.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_archive_read_open2.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_archive_read_open2.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_archive_read_open2.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_archive_read_open2.c' object='libarchive/test/libarchive_test-test_archive_read_open2.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_archive_read_open2.obj: libarchive/test/test_archive_read_open2.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_archive_read_open2.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_archive_read_open2.Tpo -c -o libarchive/test/test-test_archive_read_open2.obj `if test -f 'libarchive/test/test_archive_read_open2.c'; then $(CYGPATH_W) 'libarchive/test/test_archive_read_open2.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_archive_read_open2.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_archive_read_open2.Tpo libarchive/test/$(DEPDIR)/test-test_archive_read_open2.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_archive_read_open2.c' object='libarchive/test/test-test_archive_read_open2.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_archive_read_open2.obj `if test -f 'libarchive/test/test_archive_read_open2.c'; then $(CYGPATH_W) 'libarchive/test/test_archive_read_open2.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_archive_read_open2.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_archive_read_open2.obj `if test -f 'libarchive/test/test_archive_read_open2.c'; then $(CYGPATH_W) 'libarchive/test/test_archive_read_open2.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_archive_read_open2.c'; fi` -libarchive/test/libarchive_test-test_archive_read_set_filter_option.o: libarchive/test/test_archive_read_set_filter_option.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_archive_read_set_filter_option.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_archive_read_set_filter_option.Tpo -c -o libarchive/test/libarchive_test-test_archive_read_set_filter_option.o `test -f 'libarchive/test/test_archive_read_set_filter_option.c' || echo '$(srcdir)/'`libarchive/test/test_archive_read_set_filter_option.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_archive_read_set_filter_option.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_archive_read_set_filter_option.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_archive_read_set_filter_option.c' object='libarchive/test/libarchive_test-test_archive_read_set_filter_option.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_archive_read_set_filter_option.o: libarchive/test/test_archive_read_set_filter_option.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_archive_read_set_filter_option.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_archive_read_set_filter_option.Tpo -c -o libarchive/test/test-test_archive_read_set_filter_option.o `test -f 'libarchive/test/test_archive_read_set_filter_option.c' || echo '$(srcdir)/'`libarchive/test/test_archive_read_set_filter_option.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_archive_read_set_filter_option.Tpo libarchive/test/$(DEPDIR)/test-test_archive_read_set_filter_option.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_archive_read_set_filter_option.c' object='libarchive/test/test-test_archive_read_set_filter_option.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_archive_read_set_filter_option.o `test -f 'libarchive/test/test_archive_read_set_filter_option.c' || echo '$(srcdir)/'`libarchive/test/test_archive_read_set_filter_option.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_archive_read_set_filter_option.o `test -f 'libarchive/test/test_archive_read_set_filter_option.c' || echo '$(srcdir)/'`libarchive/test/test_archive_read_set_filter_option.c -libarchive/test/libarchive_test-test_archive_read_set_filter_option.obj: libarchive/test/test_archive_read_set_filter_option.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_archive_read_set_filter_option.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_archive_read_set_filter_option.Tpo -c -o libarchive/test/libarchive_test-test_archive_read_set_filter_option.obj `if test -f 'libarchive/test/test_archive_read_set_filter_option.c'; then $(CYGPATH_W) 'libarchive/test/test_archive_read_set_filter_option.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_archive_read_set_filter_option.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_archive_read_set_filter_option.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_archive_read_set_filter_option.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_archive_read_set_filter_option.c' object='libarchive/test/libarchive_test-test_archive_read_set_filter_option.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_archive_read_set_filter_option.obj: libarchive/test/test_archive_read_set_filter_option.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_archive_read_set_filter_option.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_archive_read_set_filter_option.Tpo -c -o libarchive/test/test-test_archive_read_set_filter_option.obj `if test -f 'libarchive/test/test_archive_read_set_filter_option.c'; then $(CYGPATH_W) 'libarchive/test/test_archive_read_set_filter_option.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_archive_read_set_filter_option.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_archive_read_set_filter_option.Tpo libarchive/test/$(DEPDIR)/test-test_archive_read_set_filter_option.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_archive_read_set_filter_option.c' object='libarchive/test/test-test_archive_read_set_filter_option.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_archive_read_set_filter_option.obj `if test -f 'libarchive/test/test_archive_read_set_filter_option.c'; then $(CYGPATH_W) 'libarchive/test/test_archive_read_set_filter_option.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_archive_read_set_filter_option.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_archive_read_set_filter_option.obj `if test -f 'libarchive/test/test_archive_read_set_filter_option.c'; then $(CYGPATH_W) 'libarchive/test/test_archive_read_set_filter_option.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_archive_read_set_filter_option.c'; fi` -libarchive/test/libarchive_test-test_archive_read_set_format_option.o: libarchive/test/test_archive_read_set_format_option.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_archive_read_set_format_option.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_archive_read_set_format_option.Tpo -c -o libarchive/test/libarchive_test-test_archive_read_set_format_option.o `test -f 'libarchive/test/test_archive_read_set_format_option.c' || echo '$(srcdir)/'`libarchive/test/test_archive_read_set_format_option.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_archive_read_set_format_option.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_archive_read_set_format_option.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_archive_read_set_format_option.c' object='libarchive/test/libarchive_test-test_archive_read_set_format_option.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_archive_read_set_format_option.o: libarchive/test/test_archive_read_set_format_option.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_archive_read_set_format_option.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_archive_read_set_format_option.Tpo -c -o libarchive/test/test-test_archive_read_set_format_option.o `test -f 'libarchive/test/test_archive_read_set_format_option.c' || echo '$(srcdir)/'`libarchive/test/test_archive_read_set_format_option.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_archive_read_set_format_option.Tpo libarchive/test/$(DEPDIR)/test-test_archive_read_set_format_option.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_archive_read_set_format_option.c' object='libarchive/test/test-test_archive_read_set_format_option.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_archive_read_set_format_option.o `test -f 'libarchive/test/test_archive_read_set_format_option.c' || echo '$(srcdir)/'`libarchive/test/test_archive_read_set_format_option.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_archive_read_set_format_option.o `test -f 'libarchive/test/test_archive_read_set_format_option.c' || echo '$(srcdir)/'`libarchive/test/test_archive_read_set_format_option.c -libarchive/test/libarchive_test-test_archive_read_set_format_option.obj: libarchive/test/test_archive_read_set_format_option.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_archive_read_set_format_option.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_archive_read_set_format_option.Tpo -c -o libarchive/test/libarchive_test-test_archive_read_set_format_option.obj `if test -f 'libarchive/test/test_archive_read_set_format_option.c'; then $(CYGPATH_W) 'libarchive/test/test_archive_read_set_format_option.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_archive_read_set_format_option.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_archive_read_set_format_option.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_archive_read_set_format_option.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_archive_read_set_format_option.c' object='libarchive/test/libarchive_test-test_archive_read_set_format_option.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_archive_read_set_format_option.obj: libarchive/test/test_archive_read_set_format_option.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_archive_read_set_format_option.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_archive_read_set_format_option.Tpo -c -o libarchive/test/test-test_archive_read_set_format_option.obj `if test -f 'libarchive/test/test_archive_read_set_format_option.c'; then $(CYGPATH_W) 'libarchive/test/test_archive_read_set_format_option.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_archive_read_set_format_option.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_archive_read_set_format_option.Tpo libarchive/test/$(DEPDIR)/test-test_archive_read_set_format_option.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_archive_read_set_format_option.c' object='libarchive/test/test-test_archive_read_set_format_option.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_archive_read_set_format_option.obj `if test -f 'libarchive/test/test_archive_read_set_format_option.c'; then $(CYGPATH_W) 'libarchive/test/test_archive_read_set_format_option.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_archive_read_set_format_option.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_archive_read_set_format_option.obj `if test -f 'libarchive/test/test_archive_read_set_format_option.c'; then $(CYGPATH_W) 'libarchive/test/test_archive_read_set_format_option.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_archive_read_set_format_option.c'; fi` -libarchive/test/libarchive_test-test_archive_read_set_option.o: libarchive/test/test_archive_read_set_option.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_archive_read_set_option.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_archive_read_set_option.Tpo -c -o libarchive/test/libarchive_test-test_archive_read_set_option.o `test -f 'libarchive/test/test_archive_read_set_option.c' || echo '$(srcdir)/'`libarchive/test/test_archive_read_set_option.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_archive_read_set_option.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_archive_read_set_option.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_archive_read_set_option.c' object='libarchive/test/libarchive_test-test_archive_read_set_option.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_archive_read_set_option.o: libarchive/test/test_archive_read_set_option.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_archive_read_set_option.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_archive_read_set_option.Tpo -c -o libarchive/test/test-test_archive_read_set_option.o `test -f 'libarchive/test/test_archive_read_set_option.c' || echo '$(srcdir)/'`libarchive/test/test_archive_read_set_option.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_archive_read_set_option.Tpo libarchive/test/$(DEPDIR)/test-test_archive_read_set_option.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_archive_read_set_option.c' object='libarchive/test/test-test_archive_read_set_option.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_archive_read_set_option.o `test -f 'libarchive/test/test_archive_read_set_option.c' || echo '$(srcdir)/'`libarchive/test/test_archive_read_set_option.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_archive_read_set_option.o `test -f 'libarchive/test/test_archive_read_set_option.c' || echo '$(srcdir)/'`libarchive/test/test_archive_read_set_option.c -libarchive/test/libarchive_test-test_archive_read_set_option.obj: libarchive/test/test_archive_read_set_option.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_archive_read_set_option.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_archive_read_set_option.Tpo -c -o libarchive/test/libarchive_test-test_archive_read_set_option.obj `if test -f 'libarchive/test/test_archive_read_set_option.c'; then $(CYGPATH_W) 'libarchive/test/test_archive_read_set_option.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_archive_read_set_option.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_archive_read_set_option.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_archive_read_set_option.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_archive_read_set_option.c' object='libarchive/test/libarchive_test-test_archive_read_set_option.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_archive_read_set_option.obj: libarchive/test/test_archive_read_set_option.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_archive_read_set_option.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_archive_read_set_option.Tpo -c -o libarchive/test/test-test_archive_read_set_option.obj `if test -f 'libarchive/test/test_archive_read_set_option.c'; then $(CYGPATH_W) 'libarchive/test/test_archive_read_set_option.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_archive_read_set_option.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_archive_read_set_option.Tpo libarchive/test/$(DEPDIR)/test-test_archive_read_set_option.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_archive_read_set_option.c' object='libarchive/test/test-test_archive_read_set_option.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_archive_read_set_option.obj `if test -f 'libarchive/test/test_archive_read_set_option.c'; then $(CYGPATH_W) 'libarchive/test/test_archive_read_set_option.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_archive_read_set_option.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_archive_read_set_option.obj `if test -f 'libarchive/test/test_archive_read_set_option.c'; then $(CYGPATH_W) 'libarchive/test/test_archive_read_set_option.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_archive_read_set_option.c'; fi` -libarchive/test/libarchive_test-test_archive_read_set_options.o: libarchive/test/test_archive_read_set_options.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_archive_read_set_options.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_archive_read_set_options.Tpo -c -o libarchive/test/libarchive_test-test_archive_read_set_options.o `test -f 'libarchive/test/test_archive_read_set_options.c' || echo '$(srcdir)/'`libarchive/test/test_archive_read_set_options.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_archive_read_set_options.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_archive_read_set_options.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_archive_read_set_options.c' object='libarchive/test/libarchive_test-test_archive_read_set_options.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_archive_read_set_options.o: libarchive/test/test_archive_read_set_options.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_archive_read_set_options.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_archive_read_set_options.Tpo -c -o libarchive/test/test-test_archive_read_set_options.o `test -f 'libarchive/test/test_archive_read_set_options.c' || echo '$(srcdir)/'`libarchive/test/test_archive_read_set_options.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_archive_read_set_options.Tpo libarchive/test/$(DEPDIR)/test-test_archive_read_set_options.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_archive_read_set_options.c' object='libarchive/test/test-test_archive_read_set_options.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_archive_read_set_options.o `test -f 'libarchive/test/test_archive_read_set_options.c' || echo '$(srcdir)/'`libarchive/test/test_archive_read_set_options.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_archive_read_set_options.o `test -f 'libarchive/test/test_archive_read_set_options.c' || echo '$(srcdir)/'`libarchive/test/test_archive_read_set_options.c -libarchive/test/libarchive_test-test_archive_read_set_options.obj: libarchive/test/test_archive_read_set_options.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_archive_read_set_options.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_archive_read_set_options.Tpo -c -o libarchive/test/libarchive_test-test_archive_read_set_options.obj `if test -f 'libarchive/test/test_archive_read_set_options.c'; then $(CYGPATH_W) 'libarchive/test/test_archive_read_set_options.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_archive_read_set_options.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_archive_read_set_options.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_archive_read_set_options.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_archive_read_set_options.c' object='libarchive/test/libarchive_test-test_archive_read_set_options.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_archive_read_set_options.obj: libarchive/test/test_archive_read_set_options.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_archive_read_set_options.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_archive_read_set_options.Tpo -c -o libarchive/test/test-test_archive_read_set_options.obj `if test -f 'libarchive/test/test_archive_read_set_options.c'; then $(CYGPATH_W) 'libarchive/test/test_archive_read_set_options.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_archive_read_set_options.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_archive_read_set_options.Tpo libarchive/test/$(DEPDIR)/test-test_archive_read_set_options.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_archive_read_set_options.c' object='libarchive/test/test-test_archive_read_set_options.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_archive_read_set_options.obj `if test -f 'libarchive/test/test_archive_read_set_options.c'; then $(CYGPATH_W) 'libarchive/test/test_archive_read_set_options.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_archive_read_set_options.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_archive_read_set_options.obj `if test -f 'libarchive/test/test_archive_read_set_options.c'; then $(CYGPATH_W) 'libarchive/test/test_archive_read_set_options.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_archive_read_set_options.c'; fi` -libarchive/test/libarchive_test-test_archive_read_support.o: libarchive/test/test_archive_read_support.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_archive_read_support.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_archive_read_support.Tpo -c -o libarchive/test/libarchive_test-test_archive_read_support.o `test -f 'libarchive/test/test_archive_read_support.c' || echo '$(srcdir)/'`libarchive/test/test_archive_read_support.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_archive_read_support.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_archive_read_support.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_archive_read_support.c' object='libarchive/test/libarchive_test-test_archive_read_support.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_archive_read_support.o: libarchive/test/test_archive_read_support.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_archive_read_support.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_archive_read_support.Tpo -c -o libarchive/test/test-test_archive_read_support.o `test -f 'libarchive/test/test_archive_read_support.c' || echo '$(srcdir)/'`libarchive/test/test_archive_read_support.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_archive_read_support.Tpo libarchive/test/$(DEPDIR)/test-test_archive_read_support.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_archive_read_support.c' object='libarchive/test/test-test_archive_read_support.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_archive_read_support.o `test -f 'libarchive/test/test_archive_read_support.c' || echo '$(srcdir)/'`libarchive/test/test_archive_read_support.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_archive_read_support.o `test -f 'libarchive/test/test_archive_read_support.c' || echo '$(srcdir)/'`libarchive/test/test_archive_read_support.c -libarchive/test/libarchive_test-test_archive_read_support.obj: libarchive/test/test_archive_read_support.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_archive_read_support.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_archive_read_support.Tpo -c -o libarchive/test/libarchive_test-test_archive_read_support.obj `if test -f 'libarchive/test/test_archive_read_support.c'; then $(CYGPATH_W) 'libarchive/test/test_archive_read_support.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_archive_read_support.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_archive_read_support.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_archive_read_support.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_archive_read_support.c' object='libarchive/test/libarchive_test-test_archive_read_support.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_archive_read_support.obj: libarchive/test/test_archive_read_support.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_archive_read_support.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_archive_read_support.Tpo -c -o libarchive/test/test-test_archive_read_support.obj `if test -f 'libarchive/test/test_archive_read_support.c'; then $(CYGPATH_W) 'libarchive/test/test_archive_read_support.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_archive_read_support.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_archive_read_support.Tpo libarchive/test/$(DEPDIR)/test-test_archive_read_support.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_archive_read_support.c' object='libarchive/test/test-test_archive_read_support.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_archive_read_support.obj `if test -f 'libarchive/test/test_archive_read_support.c'; then $(CYGPATH_W) 'libarchive/test/test_archive_read_support.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_archive_read_support.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_archive_read_support.obj `if test -f 'libarchive/test/test_archive_read_support.c'; then $(CYGPATH_W) 'libarchive/test/test_archive_read_support.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_archive_read_support.c'; fi` -libarchive/test/libarchive_test-test_archive_set_error.o: libarchive/test/test_archive_set_error.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_archive_set_error.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_archive_set_error.Tpo -c -o libarchive/test/libarchive_test-test_archive_set_error.o `test -f 'libarchive/test/test_archive_set_error.c' || echo '$(srcdir)/'`libarchive/test/test_archive_set_error.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_archive_set_error.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_archive_set_error.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_archive_set_error.c' object='libarchive/test/libarchive_test-test_archive_set_error.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_archive_set_error.o: libarchive/test/test_archive_set_error.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_archive_set_error.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_archive_set_error.Tpo -c -o libarchive/test/test-test_archive_set_error.o `test -f 'libarchive/test/test_archive_set_error.c' || echo '$(srcdir)/'`libarchive/test/test_archive_set_error.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_archive_set_error.Tpo libarchive/test/$(DEPDIR)/test-test_archive_set_error.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_archive_set_error.c' object='libarchive/test/test-test_archive_set_error.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_archive_set_error.o `test -f 'libarchive/test/test_archive_set_error.c' || echo '$(srcdir)/'`libarchive/test/test_archive_set_error.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_archive_set_error.o `test -f 'libarchive/test/test_archive_set_error.c' || echo '$(srcdir)/'`libarchive/test/test_archive_set_error.c -libarchive/test/libarchive_test-test_archive_set_error.obj: libarchive/test/test_archive_set_error.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_archive_set_error.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_archive_set_error.Tpo -c -o libarchive/test/libarchive_test-test_archive_set_error.obj `if test -f 'libarchive/test/test_archive_set_error.c'; then $(CYGPATH_W) 'libarchive/test/test_archive_set_error.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_archive_set_error.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_archive_set_error.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_archive_set_error.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_archive_set_error.c' object='libarchive/test/libarchive_test-test_archive_set_error.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_archive_set_error.obj: libarchive/test/test_archive_set_error.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_archive_set_error.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_archive_set_error.Tpo -c -o libarchive/test/test-test_archive_set_error.obj `if test -f 'libarchive/test/test_archive_set_error.c'; then $(CYGPATH_W) 'libarchive/test/test_archive_set_error.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_archive_set_error.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_archive_set_error.Tpo libarchive/test/$(DEPDIR)/test-test_archive_set_error.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_archive_set_error.c' object='libarchive/test/test-test_archive_set_error.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_archive_set_error.obj `if test -f 'libarchive/test/test_archive_set_error.c'; then $(CYGPATH_W) 'libarchive/test/test_archive_set_error.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_archive_set_error.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_archive_set_error.obj `if test -f 'libarchive/test/test_archive_set_error.c'; then $(CYGPATH_W) 'libarchive/test/test_archive_set_error.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_archive_set_error.c'; fi` -libarchive/test/libarchive_test-test_archive_string.o: libarchive/test/test_archive_string.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_archive_string.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_archive_string.Tpo -c -o libarchive/test/libarchive_test-test_archive_string.o `test -f 'libarchive/test/test_archive_string.c' || echo '$(srcdir)/'`libarchive/test/test_archive_string.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_archive_string.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_archive_string.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_archive_string.c' object='libarchive/test/libarchive_test-test_archive_string.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_archive_string.o: libarchive/test/test_archive_string.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_archive_string.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_archive_string.Tpo -c -o libarchive/test/test-test_archive_string.o `test -f 'libarchive/test/test_archive_string.c' || echo '$(srcdir)/'`libarchive/test/test_archive_string.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_archive_string.Tpo libarchive/test/$(DEPDIR)/test-test_archive_string.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_archive_string.c' object='libarchive/test/test-test_archive_string.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_archive_string.o `test -f 'libarchive/test/test_archive_string.c' || echo '$(srcdir)/'`libarchive/test/test_archive_string.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_archive_string.o `test -f 'libarchive/test/test_archive_string.c' || echo '$(srcdir)/'`libarchive/test/test_archive_string.c -libarchive/test/libarchive_test-test_archive_string.obj: libarchive/test/test_archive_string.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_archive_string.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_archive_string.Tpo -c -o libarchive/test/libarchive_test-test_archive_string.obj `if test -f 'libarchive/test/test_archive_string.c'; then $(CYGPATH_W) 'libarchive/test/test_archive_string.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_archive_string.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_archive_string.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_archive_string.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_archive_string.c' object='libarchive/test/libarchive_test-test_archive_string.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_archive_string.obj: libarchive/test/test_archive_string.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_archive_string.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_archive_string.Tpo -c -o libarchive/test/test-test_archive_string.obj `if test -f 'libarchive/test/test_archive_string.c'; then $(CYGPATH_W) 'libarchive/test/test_archive_string.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_archive_string.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_archive_string.Tpo libarchive/test/$(DEPDIR)/test-test_archive_string.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_archive_string.c' object='libarchive/test/test-test_archive_string.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_archive_string.obj `if test -f 'libarchive/test/test_archive_string.c'; then $(CYGPATH_W) 'libarchive/test/test_archive_string.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_archive_string.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_archive_string.obj `if test -f 'libarchive/test/test_archive_string.c'; then $(CYGPATH_W) 'libarchive/test/test_archive_string.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_archive_string.c'; fi` -libarchive/test/libarchive_test-test_archive_string_conversion.o: libarchive/test/test_archive_string_conversion.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_archive_string_conversion.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_archive_string_conversion.Tpo -c -o libarchive/test/libarchive_test-test_archive_string_conversion.o `test -f 'libarchive/test/test_archive_string_conversion.c' || echo '$(srcdir)/'`libarchive/test/test_archive_string_conversion.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_archive_string_conversion.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_archive_string_conversion.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_archive_string_conversion.c' object='libarchive/test/libarchive_test-test_archive_string_conversion.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_archive_string_conversion.o: libarchive/test/test_archive_string_conversion.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_archive_string_conversion.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_archive_string_conversion.Tpo -c -o libarchive/test/test-test_archive_string_conversion.o `test -f 'libarchive/test/test_archive_string_conversion.c' || echo '$(srcdir)/'`libarchive/test/test_archive_string_conversion.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_archive_string_conversion.Tpo libarchive/test/$(DEPDIR)/test-test_archive_string_conversion.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_archive_string_conversion.c' object='libarchive/test/test-test_archive_string_conversion.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_archive_string_conversion.o `test -f 'libarchive/test/test_archive_string_conversion.c' || echo '$(srcdir)/'`libarchive/test/test_archive_string_conversion.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_archive_string_conversion.o `test -f 'libarchive/test/test_archive_string_conversion.c' || echo '$(srcdir)/'`libarchive/test/test_archive_string_conversion.c -libarchive/test/libarchive_test-test_archive_string_conversion.obj: libarchive/test/test_archive_string_conversion.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_archive_string_conversion.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_archive_string_conversion.Tpo -c -o libarchive/test/libarchive_test-test_archive_string_conversion.obj `if test -f 'libarchive/test/test_archive_string_conversion.c'; then $(CYGPATH_W) 'libarchive/test/test_archive_string_conversion.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_archive_string_conversion.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_archive_string_conversion.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_archive_string_conversion.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_archive_string_conversion.c' object='libarchive/test/libarchive_test-test_archive_string_conversion.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_archive_string_conversion.obj: libarchive/test/test_archive_string_conversion.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_archive_string_conversion.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_archive_string_conversion.Tpo -c -o libarchive/test/test-test_archive_string_conversion.obj `if test -f 'libarchive/test/test_archive_string_conversion.c'; then $(CYGPATH_W) 'libarchive/test/test_archive_string_conversion.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_archive_string_conversion.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_archive_string_conversion.Tpo libarchive/test/$(DEPDIR)/test-test_archive_string_conversion.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_archive_string_conversion.c' object='libarchive/test/test-test_archive_string_conversion.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_archive_string_conversion.obj `if test -f 'libarchive/test/test_archive_string_conversion.c'; then $(CYGPATH_W) 'libarchive/test/test_archive_string_conversion.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_archive_string_conversion.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_archive_string_conversion.obj `if test -f 'libarchive/test/test_archive_string_conversion.c'; then $(CYGPATH_W) 'libarchive/test/test_archive_string_conversion.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_archive_string_conversion.c'; fi` -libarchive/test/libarchive_test-test_archive_write_add_filter_by_name.o: libarchive/test/test_archive_write_add_filter_by_name.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_archive_write_add_filter_by_name.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_archive_write_add_filter_by_name.Tpo -c -o libarchive/test/libarchive_test-test_archive_write_add_filter_by_name.o `test -f 'libarchive/test/test_archive_write_add_filter_by_name.c' || echo '$(srcdir)/'`libarchive/test/test_archive_write_add_filter_by_name.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_archive_write_add_filter_by_name.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_archive_write_add_filter_by_name.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_archive_write_add_filter_by_name.c' object='libarchive/test/libarchive_test-test_archive_write_add_filter_by_name.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_archive_write_add_filter_by_name.o: libarchive/test/test_archive_write_add_filter_by_name.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_archive_write_add_filter_by_name.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_archive_write_add_filter_by_name.Tpo -c -o libarchive/test/test-test_archive_write_add_filter_by_name.o `test -f 'libarchive/test/test_archive_write_add_filter_by_name.c' || echo '$(srcdir)/'`libarchive/test/test_archive_write_add_filter_by_name.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_archive_write_add_filter_by_name.Tpo libarchive/test/$(DEPDIR)/test-test_archive_write_add_filter_by_name.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_archive_write_add_filter_by_name.c' object='libarchive/test/test-test_archive_write_add_filter_by_name.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_archive_write_add_filter_by_name.o `test -f 'libarchive/test/test_archive_write_add_filter_by_name.c' || echo '$(srcdir)/'`libarchive/test/test_archive_write_add_filter_by_name.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_archive_write_add_filter_by_name.o `test -f 'libarchive/test/test_archive_write_add_filter_by_name.c' || echo '$(srcdir)/'`libarchive/test/test_archive_write_add_filter_by_name.c -libarchive/test/libarchive_test-test_archive_write_add_filter_by_name.obj: libarchive/test/test_archive_write_add_filter_by_name.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_archive_write_add_filter_by_name.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_archive_write_add_filter_by_name.Tpo -c -o libarchive/test/libarchive_test-test_archive_write_add_filter_by_name.obj `if test -f 'libarchive/test/test_archive_write_add_filter_by_name.c'; then $(CYGPATH_W) 'libarchive/test/test_archive_write_add_filter_by_name.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_archive_write_add_filter_by_name.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_archive_write_add_filter_by_name.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_archive_write_add_filter_by_name.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_archive_write_add_filter_by_name.c' object='libarchive/test/libarchive_test-test_archive_write_add_filter_by_name.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_archive_write_add_filter_by_name.obj: libarchive/test/test_archive_write_add_filter_by_name.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_archive_write_add_filter_by_name.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_archive_write_add_filter_by_name.Tpo -c -o libarchive/test/test-test_archive_write_add_filter_by_name.obj `if test -f 'libarchive/test/test_archive_write_add_filter_by_name.c'; then $(CYGPATH_W) 'libarchive/test/test_archive_write_add_filter_by_name.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_archive_write_add_filter_by_name.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_archive_write_add_filter_by_name.Tpo libarchive/test/$(DEPDIR)/test-test_archive_write_add_filter_by_name.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_archive_write_add_filter_by_name.c' object='libarchive/test/test-test_archive_write_add_filter_by_name.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_archive_write_add_filter_by_name.obj `if test -f 'libarchive/test/test_archive_write_add_filter_by_name.c'; then $(CYGPATH_W) 'libarchive/test/test_archive_write_add_filter_by_name.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_archive_write_add_filter_by_name.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_archive_write_add_filter_by_name.obj `if test -f 'libarchive/test/test_archive_write_add_filter_by_name.c'; then $(CYGPATH_W) 'libarchive/test/test_archive_write_add_filter_by_name.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_archive_write_add_filter_by_name.c'; fi` -libarchive/test/libarchive_test-test_archive_write_set_filter_option.o: libarchive/test/test_archive_write_set_filter_option.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_archive_write_set_filter_option.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_archive_write_set_filter_option.Tpo -c -o libarchive/test/libarchive_test-test_archive_write_set_filter_option.o `test -f 'libarchive/test/test_archive_write_set_filter_option.c' || echo '$(srcdir)/'`libarchive/test/test_archive_write_set_filter_option.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_archive_write_set_filter_option.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_archive_write_set_filter_option.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_archive_write_set_filter_option.c' object='libarchive/test/libarchive_test-test_archive_write_set_filter_option.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_archive_write_set_filter_option.o: libarchive/test/test_archive_write_set_filter_option.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_archive_write_set_filter_option.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_archive_write_set_filter_option.Tpo -c -o libarchive/test/test-test_archive_write_set_filter_option.o `test -f 'libarchive/test/test_archive_write_set_filter_option.c' || echo '$(srcdir)/'`libarchive/test/test_archive_write_set_filter_option.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_archive_write_set_filter_option.Tpo libarchive/test/$(DEPDIR)/test-test_archive_write_set_filter_option.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_archive_write_set_filter_option.c' object='libarchive/test/test-test_archive_write_set_filter_option.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_archive_write_set_filter_option.o `test -f 'libarchive/test/test_archive_write_set_filter_option.c' || echo '$(srcdir)/'`libarchive/test/test_archive_write_set_filter_option.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_archive_write_set_filter_option.o `test -f 'libarchive/test/test_archive_write_set_filter_option.c' || echo '$(srcdir)/'`libarchive/test/test_archive_write_set_filter_option.c -libarchive/test/libarchive_test-test_archive_write_set_filter_option.obj: libarchive/test/test_archive_write_set_filter_option.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_archive_write_set_filter_option.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_archive_write_set_filter_option.Tpo -c -o libarchive/test/libarchive_test-test_archive_write_set_filter_option.obj `if test -f 'libarchive/test/test_archive_write_set_filter_option.c'; then $(CYGPATH_W) 'libarchive/test/test_archive_write_set_filter_option.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_archive_write_set_filter_option.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_archive_write_set_filter_option.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_archive_write_set_filter_option.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_archive_write_set_filter_option.c' object='libarchive/test/libarchive_test-test_archive_write_set_filter_option.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_archive_write_set_filter_option.obj: libarchive/test/test_archive_write_set_filter_option.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_archive_write_set_filter_option.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_archive_write_set_filter_option.Tpo -c -o libarchive/test/test-test_archive_write_set_filter_option.obj `if test -f 'libarchive/test/test_archive_write_set_filter_option.c'; then $(CYGPATH_W) 'libarchive/test/test_archive_write_set_filter_option.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_archive_write_set_filter_option.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_archive_write_set_filter_option.Tpo libarchive/test/$(DEPDIR)/test-test_archive_write_set_filter_option.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_archive_write_set_filter_option.c' object='libarchive/test/test-test_archive_write_set_filter_option.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_archive_write_set_filter_option.obj `if test -f 'libarchive/test/test_archive_write_set_filter_option.c'; then $(CYGPATH_W) 'libarchive/test/test_archive_write_set_filter_option.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_archive_write_set_filter_option.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_archive_write_set_filter_option.obj `if test -f 'libarchive/test/test_archive_write_set_filter_option.c'; then $(CYGPATH_W) 'libarchive/test/test_archive_write_set_filter_option.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_archive_write_set_filter_option.c'; fi` -libarchive/test/libarchive_test-test_archive_write_set_format_by_name.o: libarchive/test/test_archive_write_set_format_by_name.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_archive_write_set_format_by_name.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_archive_write_set_format_by_name.Tpo -c -o libarchive/test/libarchive_test-test_archive_write_set_format_by_name.o `test -f 'libarchive/test/test_archive_write_set_format_by_name.c' || echo '$(srcdir)/'`libarchive/test/test_archive_write_set_format_by_name.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_archive_write_set_format_by_name.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_archive_write_set_format_by_name.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_archive_write_set_format_by_name.c' object='libarchive/test/libarchive_test-test_archive_write_set_format_by_name.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_archive_write_set_format_by_name.o: libarchive/test/test_archive_write_set_format_by_name.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_archive_write_set_format_by_name.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_archive_write_set_format_by_name.Tpo -c -o libarchive/test/test-test_archive_write_set_format_by_name.o `test -f 'libarchive/test/test_archive_write_set_format_by_name.c' || echo '$(srcdir)/'`libarchive/test/test_archive_write_set_format_by_name.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_archive_write_set_format_by_name.Tpo libarchive/test/$(DEPDIR)/test-test_archive_write_set_format_by_name.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_archive_write_set_format_by_name.c' object='libarchive/test/test-test_archive_write_set_format_by_name.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_archive_write_set_format_by_name.o `test -f 'libarchive/test/test_archive_write_set_format_by_name.c' || echo '$(srcdir)/'`libarchive/test/test_archive_write_set_format_by_name.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_archive_write_set_format_by_name.o `test -f 'libarchive/test/test_archive_write_set_format_by_name.c' || echo '$(srcdir)/'`libarchive/test/test_archive_write_set_format_by_name.c -libarchive/test/libarchive_test-test_archive_write_set_format_by_name.obj: libarchive/test/test_archive_write_set_format_by_name.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_archive_write_set_format_by_name.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_archive_write_set_format_by_name.Tpo -c -o libarchive/test/libarchive_test-test_archive_write_set_format_by_name.obj `if test -f 'libarchive/test/test_archive_write_set_format_by_name.c'; then $(CYGPATH_W) 'libarchive/test/test_archive_write_set_format_by_name.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_archive_write_set_format_by_name.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_archive_write_set_format_by_name.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_archive_write_set_format_by_name.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_archive_write_set_format_by_name.c' object='libarchive/test/libarchive_test-test_archive_write_set_format_by_name.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_archive_write_set_format_by_name.obj: libarchive/test/test_archive_write_set_format_by_name.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_archive_write_set_format_by_name.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_archive_write_set_format_by_name.Tpo -c -o libarchive/test/test-test_archive_write_set_format_by_name.obj `if test -f 'libarchive/test/test_archive_write_set_format_by_name.c'; then $(CYGPATH_W) 'libarchive/test/test_archive_write_set_format_by_name.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_archive_write_set_format_by_name.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_archive_write_set_format_by_name.Tpo libarchive/test/$(DEPDIR)/test-test_archive_write_set_format_by_name.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_archive_write_set_format_by_name.c' object='libarchive/test/test-test_archive_write_set_format_by_name.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_archive_write_set_format_by_name.obj `if test -f 'libarchive/test/test_archive_write_set_format_by_name.c'; then $(CYGPATH_W) 'libarchive/test/test_archive_write_set_format_by_name.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_archive_write_set_format_by_name.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_archive_write_set_format_by_name.obj `if test -f 'libarchive/test/test_archive_write_set_format_by_name.c'; then $(CYGPATH_W) 'libarchive/test/test_archive_write_set_format_by_name.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_archive_write_set_format_by_name.c'; fi` -libarchive/test/libarchive_test-test_archive_write_set_format_filter_by_ext.o: libarchive/test/test_archive_write_set_format_filter_by_ext.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_archive_write_set_format_filter_by_ext.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_archive_write_set_format_filter_by_ext.Tpo -c -o libarchive/test/libarchive_test-test_archive_write_set_format_filter_by_ext.o `test -f 'libarchive/test/test_archive_write_set_format_filter_by_ext.c' || echo '$(srcdir)/'`libarchive/test/test_archive_write_set_format_filter_by_ext.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_archive_write_set_format_filter_by_ext.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_archive_write_set_format_filter_by_ext.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_archive_write_set_format_filter_by_ext.c' object='libarchive/test/libarchive_test-test_archive_write_set_format_filter_by_ext.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_archive_write_set_format_filter_by_ext.o: libarchive/test/test_archive_write_set_format_filter_by_ext.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_archive_write_set_format_filter_by_ext.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_archive_write_set_format_filter_by_ext.Tpo -c -o libarchive/test/test-test_archive_write_set_format_filter_by_ext.o `test -f 'libarchive/test/test_archive_write_set_format_filter_by_ext.c' || echo '$(srcdir)/'`libarchive/test/test_archive_write_set_format_filter_by_ext.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_archive_write_set_format_filter_by_ext.Tpo libarchive/test/$(DEPDIR)/test-test_archive_write_set_format_filter_by_ext.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_archive_write_set_format_filter_by_ext.c' object='libarchive/test/test-test_archive_write_set_format_filter_by_ext.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_archive_write_set_format_filter_by_ext.o `test -f 'libarchive/test/test_archive_write_set_format_filter_by_ext.c' || echo '$(srcdir)/'`libarchive/test/test_archive_write_set_format_filter_by_ext.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_archive_write_set_format_filter_by_ext.o `test -f 'libarchive/test/test_archive_write_set_format_filter_by_ext.c' || echo '$(srcdir)/'`libarchive/test/test_archive_write_set_format_filter_by_ext.c -libarchive/test/libarchive_test-test_archive_write_set_format_filter_by_ext.obj: libarchive/test/test_archive_write_set_format_filter_by_ext.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_archive_write_set_format_filter_by_ext.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_archive_write_set_format_filter_by_ext.Tpo -c -o libarchive/test/libarchive_test-test_archive_write_set_format_filter_by_ext.obj `if test -f 'libarchive/test/test_archive_write_set_format_filter_by_ext.c'; then $(CYGPATH_W) 'libarchive/test/test_archive_write_set_format_filter_by_ext.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_archive_write_set_format_filter_by_ext.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_archive_write_set_format_filter_by_ext.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_archive_write_set_format_filter_by_ext.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_archive_write_set_format_filter_by_ext.c' object='libarchive/test/libarchive_test-test_archive_write_set_format_filter_by_ext.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_archive_write_set_format_filter_by_ext.obj: libarchive/test/test_archive_write_set_format_filter_by_ext.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_archive_write_set_format_filter_by_ext.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_archive_write_set_format_filter_by_ext.Tpo -c -o libarchive/test/test-test_archive_write_set_format_filter_by_ext.obj `if test -f 'libarchive/test/test_archive_write_set_format_filter_by_ext.c'; then $(CYGPATH_W) 'libarchive/test/test_archive_write_set_format_filter_by_ext.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_archive_write_set_format_filter_by_ext.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_archive_write_set_format_filter_by_ext.Tpo libarchive/test/$(DEPDIR)/test-test_archive_write_set_format_filter_by_ext.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_archive_write_set_format_filter_by_ext.c' object='libarchive/test/test-test_archive_write_set_format_filter_by_ext.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_archive_write_set_format_filter_by_ext.obj `if test -f 'libarchive/test/test_archive_write_set_format_filter_by_ext.c'; then $(CYGPATH_W) 'libarchive/test/test_archive_write_set_format_filter_by_ext.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_archive_write_set_format_filter_by_ext.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_archive_write_set_format_filter_by_ext.obj `if test -f 'libarchive/test/test_archive_write_set_format_filter_by_ext.c'; then $(CYGPATH_W) 'libarchive/test/test_archive_write_set_format_filter_by_ext.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_archive_write_set_format_filter_by_ext.c'; fi` -libarchive/test/libarchive_test-test_archive_write_set_format_option.o: libarchive/test/test_archive_write_set_format_option.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_archive_write_set_format_option.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_archive_write_set_format_option.Tpo -c -o libarchive/test/libarchive_test-test_archive_write_set_format_option.o `test -f 'libarchive/test/test_archive_write_set_format_option.c' || echo '$(srcdir)/'`libarchive/test/test_archive_write_set_format_option.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_archive_write_set_format_option.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_archive_write_set_format_option.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_archive_write_set_format_option.c' object='libarchive/test/libarchive_test-test_archive_write_set_format_option.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_archive_write_set_format_option.o: libarchive/test/test_archive_write_set_format_option.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_archive_write_set_format_option.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_archive_write_set_format_option.Tpo -c -o libarchive/test/test-test_archive_write_set_format_option.o `test -f 'libarchive/test/test_archive_write_set_format_option.c' || echo '$(srcdir)/'`libarchive/test/test_archive_write_set_format_option.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_archive_write_set_format_option.Tpo libarchive/test/$(DEPDIR)/test-test_archive_write_set_format_option.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_archive_write_set_format_option.c' object='libarchive/test/test-test_archive_write_set_format_option.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_archive_write_set_format_option.o `test -f 'libarchive/test/test_archive_write_set_format_option.c' || echo '$(srcdir)/'`libarchive/test/test_archive_write_set_format_option.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_archive_write_set_format_option.o `test -f 'libarchive/test/test_archive_write_set_format_option.c' || echo '$(srcdir)/'`libarchive/test/test_archive_write_set_format_option.c -libarchive/test/libarchive_test-test_archive_write_set_format_option.obj: libarchive/test/test_archive_write_set_format_option.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_archive_write_set_format_option.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_archive_write_set_format_option.Tpo -c -o libarchive/test/libarchive_test-test_archive_write_set_format_option.obj `if test -f 'libarchive/test/test_archive_write_set_format_option.c'; then $(CYGPATH_W) 'libarchive/test/test_archive_write_set_format_option.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_archive_write_set_format_option.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_archive_write_set_format_option.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_archive_write_set_format_option.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_archive_write_set_format_option.c' object='libarchive/test/libarchive_test-test_archive_write_set_format_option.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_archive_write_set_format_option.obj: libarchive/test/test_archive_write_set_format_option.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_archive_write_set_format_option.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_archive_write_set_format_option.Tpo -c -o libarchive/test/test-test_archive_write_set_format_option.obj `if test -f 'libarchive/test/test_archive_write_set_format_option.c'; then $(CYGPATH_W) 'libarchive/test/test_archive_write_set_format_option.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_archive_write_set_format_option.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_archive_write_set_format_option.Tpo libarchive/test/$(DEPDIR)/test-test_archive_write_set_format_option.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_archive_write_set_format_option.c' object='libarchive/test/test-test_archive_write_set_format_option.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_archive_write_set_format_option.obj `if test -f 'libarchive/test/test_archive_write_set_format_option.c'; then $(CYGPATH_W) 'libarchive/test/test_archive_write_set_format_option.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_archive_write_set_format_option.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_archive_write_set_format_option.obj `if test -f 'libarchive/test/test_archive_write_set_format_option.c'; then $(CYGPATH_W) 'libarchive/test/test_archive_write_set_format_option.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_archive_write_set_format_option.c'; fi` -libarchive/test/libarchive_test-test_archive_write_set_option.o: libarchive/test/test_archive_write_set_option.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_archive_write_set_option.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_archive_write_set_option.Tpo -c -o libarchive/test/libarchive_test-test_archive_write_set_option.o `test -f 'libarchive/test/test_archive_write_set_option.c' || echo '$(srcdir)/'`libarchive/test/test_archive_write_set_option.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_archive_write_set_option.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_archive_write_set_option.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_archive_write_set_option.c' object='libarchive/test/libarchive_test-test_archive_write_set_option.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_archive_write_set_option.o: libarchive/test/test_archive_write_set_option.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_archive_write_set_option.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_archive_write_set_option.Tpo -c -o libarchive/test/test-test_archive_write_set_option.o `test -f 'libarchive/test/test_archive_write_set_option.c' || echo '$(srcdir)/'`libarchive/test/test_archive_write_set_option.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_archive_write_set_option.Tpo libarchive/test/$(DEPDIR)/test-test_archive_write_set_option.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_archive_write_set_option.c' object='libarchive/test/test-test_archive_write_set_option.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_archive_write_set_option.o `test -f 'libarchive/test/test_archive_write_set_option.c' || echo '$(srcdir)/'`libarchive/test/test_archive_write_set_option.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_archive_write_set_option.o `test -f 'libarchive/test/test_archive_write_set_option.c' || echo '$(srcdir)/'`libarchive/test/test_archive_write_set_option.c -libarchive/test/libarchive_test-test_archive_write_set_option.obj: libarchive/test/test_archive_write_set_option.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_archive_write_set_option.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_archive_write_set_option.Tpo -c -o libarchive/test/libarchive_test-test_archive_write_set_option.obj `if test -f 'libarchive/test/test_archive_write_set_option.c'; then $(CYGPATH_W) 'libarchive/test/test_archive_write_set_option.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_archive_write_set_option.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_archive_write_set_option.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_archive_write_set_option.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_archive_write_set_option.c' object='libarchive/test/libarchive_test-test_archive_write_set_option.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_archive_write_set_option.obj: libarchive/test/test_archive_write_set_option.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_archive_write_set_option.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_archive_write_set_option.Tpo -c -o libarchive/test/test-test_archive_write_set_option.obj `if test -f 'libarchive/test/test_archive_write_set_option.c'; then $(CYGPATH_W) 'libarchive/test/test_archive_write_set_option.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_archive_write_set_option.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_archive_write_set_option.Tpo libarchive/test/$(DEPDIR)/test-test_archive_write_set_option.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_archive_write_set_option.c' object='libarchive/test/test-test_archive_write_set_option.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_archive_write_set_option.obj `if test -f 'libarchive/test/test_archive_write_set_option.c'; then $(CYGPATH_W) 'libarchive/test/test_archive_write_set_option.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_archive_write_set_option.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_archive_write_set_option.obj `if test -f 'libarchive/test/test_archive_write_set_option.c'; then $(CYGPATH_W) 'libarchive/test/test_archive_write_set_option.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_archive_write_set_option.c'; fi` -libarchive/test/libarchive_test-test_archive_write_set_options.o: libarchive/test/test_archive_write_set_options.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_archive_write_set_options.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_archive_write_set_options.Tpo -c -o libarchive/test/libarchive_test-test_archive_write_set_options.o `test -f 'libarchive/test/test_archive_write_set_options.c' || echo '$(srcdir)/'`libarchive/test/test_archive_write_set_options.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_archive_write_set_options.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_archive_write_set_options.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_archive_write_set_options.c' object='libarchive/test/libarchive_test-test_archive_write_set_options.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_archive_write_set_options.o: libarchive/test/test_archive_write_set_options.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_archive_write_set_options.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_archive_write_set_options.Tpo -c -o libarchive/test/test-test_archive_write_set_options.o `test -f 'libarchive/test/test_archive_write_set_options.c' || echo '$(srcdir)/'`libarchive/test/test_archive_write_set_options.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_archive_write_set_options.Tpo libarchive/test/$(DEPDIR)/test-test_archive_write_set_options.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_archive_write_set_options.c' object='libarchive/test/test-test_archive_write_set_options.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_archive_write_set_options.o `test -f 'libarchive/test/test_archive_write_set_options.c' || echo '$(srcdir)/'`libarchive/test/test_archive_write_set_options.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_archive_write_set_options.o `test -f 'libarchive/test/test_archive_write_set_options.c' || echo '$(srcdir)/'`libarchive/test/test_archive_write_set_options.c -libarchive/test/libarchive_test-test_archive_write_set_options.obj: libarchive/test/test_archive_write_set_options.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_archive_write_set_options.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_archive_write_set_options.Tpo -c -o libarchive/test/libarchive_test-test_archive_write_set_options.obj `if test -f 'libarchive/test/test_archive_write_set_options.c'; then $(CYGPATH_W) 'libarchive/test/test_archive_write_set_options.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_archive_write_set_options.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_archive_write_set_options.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_archive_write_set_options.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_archive_write_set_options.c' object='libarchive/test/libarchive_test-test_archive_write_set_options.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_archive_write_set_options.obj: libarchive/test/test_archive_write_set_options.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_archive_write_set_options.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_archive_write_set_options.Tpo -c -o libarchive/test/test-test_archive_write_set_options.obj `if test -f 'libarchive/test/test_archive_write_set_options.c'; then $(CYGPATH_W) 'libarchive/test/test_archive_write_set_options.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_archive_write_set_options.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_archive_write_set_options.Tpo libarchive/test/$(DEPDIR)/test-test_archive_write_set_options.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_archive_write_set_options.c' object='libarchive/test/test-test_archive_write_set_options.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_archive_write_set_options.obj `if test -f 'libarchive/test/test_archive_write_set_options.c'; then $(CYGPATH_W) 'libarchive/test/test_archive_write_set_options.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_archive_write_set_options.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_archive_write_set_options.obj `if test -f 'libarchive/test/test_archive_write_set_options.c'; then $(CYGPATH_W) 'libarchive/test/test_archive_write_set_options.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_archive_write_set_options.c'; fi` -libarchive/test/libarchive_test-test_archive_write_set_passphrase.o: libarchive/test/test_archive_write_set_passphrase.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_archive_write_set_passphrase.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_archive_write_set_passphrase.Tpo -c -o libarchive/test/libarchive_test-test_archive_write_set_passphrase.o `test -f 'libarchive/test/test_archive_write_set_passphrase.c' || echo '$(srcdir)/'`libarchive/test/test_archive_write_set_passphrase.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_archive_write_set_passphrase.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_archive_write_set_passphrase.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_archive_write_set_passphrase.c' object='libarchive/test/libarchive_test-test_archive_write_set_passphrase.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_archive_write_set_passphrase.o: libarchive/test/test_archive_write_set_passphrase.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_archive_write_set_passphrase.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_archive_write_set_passphrase.Tpo -c -o libarchive/test/test-test_archive_write_set_passphrase.o `test -f 'libarchive/test/test_archive_write_set_passphrase.c' || echo '$(srcdir)/'`libarchive/test/test_archive_write_set_passphrase.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_archive_write_set_passphrase.Tpo libarchive/test/$(DEPDIR)/test-test_archive_write_set_passphrase.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_archive_write_set_passphrase.c' object='libarchive/test/test-test_archive_write_set_passphrase.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_archive_write_set_passphrase.o `test -f 'libarchive/test/test_archive_write_set_passphrase.c' || echo '$(srcdir)/'`libarchive/test/test_archive_write_set_passphrase.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_archive_write_set_passphrase.o `test -f 'libarchive/test/test_archive_write_set_passphrase.c' || echo '$(srcdir)/'`libarchive/test/test_archive_write_set_passphrase.c -libarchive/test/libarchive_test-test_archive_write_set_passphrase.obj: libarchive/test/test_archive_write_set_passphrase.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_archive_write_set_passphrase.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_archive_write_set_passphrase.Tpo -c -o libarchive/test/libarchive_test-test_archive_write_set_passphrase.obj `if test -f 'libarchive/test/test_archive_write_set_passphrase.c'; then $(CYGPATH_W) 'libarchive/test/test_archive_write_set_passphrase.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_archive_write_set_passphrase.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_archive_write_set_passphrase.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_archive_write_set_passphrase.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_archive_write_set_passphrase.c' object='libarchive/test/libarchive_test-test_archive_write_set_passphrase.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_archive_write_set_passphrase.obj: libarchive/test/test_archive_write_set_passphrase.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_archive_write_set_passphrase.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_archive_write_set_passphrase.Tpo -c -o libarchive/test/test-test_archive_write_set_passphrase.obj `if test -f 'libarchive/test/test_archive_write_set_passphrase.c'; then $(CYGPATH_W) 'libarchive/test/test_archive_write_set_passphrase.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_archive_write_set_passphrase.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_archive_write_set_passphrase.Tpo libarchive/test/$(DEPDIR)/test-test_archive_write_set_passphrase.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_archive_write_set_passphrase.c' object='libarchive/test/test-test_archive_write_set_passphrase.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_archive_write_set_passphrase.obj `if test -f 'libarchive/test/test_archive_write_set_passphrase.c'; then $(CYGPATH_W) 'libarchive/test/test_archive_write_set_passphrase.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_archive_write_set_passphrase.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_archive_write_set_passphrase.obj `if test -f 'libarchive/test/test_archive_write_set_passphrase.c'; then $(CYGPATH_W) 'libarchive/test/test_archive_write_set_passphrase.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_archive_write_set_passphrase.c'; fi` -libarchive/test/libarchive_test-test_bad_fd.o: libarchive/test/test_bad_fd.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_bad_fd.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_bad_fd.Tpo -c -o libarchive/test/libarchive_test-test_bad_fd.o `test -f 'libarchive/test/test_bad_fd.c' || echo '$(srcdir)/'`libarchive/test/test_bad_fd.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_bad_fd.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_bad_fd.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_bad_fd.c' object='libarchive/test/libarchive_test-test_bad_fd.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_bad_fd.o: libarchive/test/test_bad_fd.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_bad_fd.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_bad_fd.Tpo -c -o libarchive/test/test-test_bad_fd.o `test -f 'libarchive/test/test_bad_fd.c' || echo '$(srcdir)/'`libarchive/test/test_bad_fd.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_bad_fd.Tpo libarchive/test/$(DEPDIR)/test-test_bad_fd.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_bad_fd.c' object='libarchive/test/test-test_bad_fd.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_bad_fd.o `test -f 'libarchive/test/test_bad_fd.c' || echo '$(srcdir)/'`libarchive/test/test_bad_fd.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_bad_fd.o `test -f 'libarchive/test/test_bad_fd.c' || echo '$(srcdir)/'`libarchive/test/test_bad_fd.c -libarchive/test/libarchive_test-test_bad_fd.obj: libarchive/test/test_bad_fd.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_bad_fd.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_bad_fd.Tpo -c -o libarchive/test/libarchive_test-test_bad_fd.obj `if test -f 'libarchive/test/test_bad_fd.c'; then $(CYGPATH_W) 'libarchive/test/test_bad_fd.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_bad_fd.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_bad_fd.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_bad_fd.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_bad_fd.c' object='libarchive/test/libarchive_test-test_bad_fd.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_bad_fd.obj: libarchive/test/test_bad_fd.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_bad_fd.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_bad_fd.Tpo -c -o libarchive/test/test-test_bad_fd.obj `if test -f 'libarchive/test/test_bad_fd.c'; then $(CYGPATH_W) 'libarchive/test/test_bad_fd.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_bad_fd.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_bad_fd.Tpo libarchive/test/$(DEPDIR)/test-test_bad_fd.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_bad_fd.c' object='libarchive/test/test-test_bad_fd.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_bad_fd.obj `if test -f 'libarchive/test/test_bad_fd.c'; then $(CYGPATH_W) 'libarchive/test/test_bad_fd.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_bad_fd.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_bad_fd.obj `if test -f 'libarchive/test/test_bad_fd.c'; then $(CYGPATH_W) 'libarchive/test/test_bad_fd.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_bad_fd.c'; fi` -libarchive/test/libarchive_test-test_compat_bzip2.o: libarchive/test/test_compat_bzip2.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_compat_bzip2.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_compat_bzip2.Tpo -c -o libarchive/test/libarchive_test-test_compat_bzip2.o `test -f 'libarchive/test/test_compat_bzip2.c' || echo '$(srcdir)/'`libarchive/test/test_compat_bzip2.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_compat_bzip2.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_compat_bzip2.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_compat_bzip2.c' object='libarchive/test/libarchive_test-test_compat_bzip2.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_compat_bzip2.o: libarchive/test/test_compat_bzip2.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_compat_bzip2.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_compat_bzip2.Tpo -c -o libarchive/test/test-test_compat_bzip2.o `test -f 'libarchive/test/test_compat_bzip2.c' || echo '$(srcdir)/'`libarchive/test/test_compat_bzip2.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_compat_bzip2.Tpo libarchive/test/$(DEPDIR)/test-test_compat_bzip2.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_compat_bzip2.c' object='libarchive/test/test-test_compat_bzip2.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_compat_bzip2.o `test -f 'libarchive/test/test_compat_bzip2.c' || echo '$(srcdir)/'`libarchive/test/test_compat_bzip2.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_compat_bzip2.o `test -f 'libarchive/test/test_compat_bzip2.c' || echo '$(srcdir)/'`libarchive/test/test_compat_bzip2.c -libarchive/test/libarchive_test-test_compat_bzip2.obj: libarchive/test/test_compat_bzip2.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_compat_bzip2.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_compat_bzip2.Tpo -c -o libarchive/test/libarchive_test-test_compat_bzip2.obj `if test -f 'libarchive/test/test_compat_bzip2.c'; then $(CYGPATH_W) 'libarchive/test/test_compat_bzip2.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_compat_bzip2.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_compat_bzip2.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_compat_bzip2.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_compat_bzip2.c' object='libarchive/test/libarchive_test-test_compat_bzip2.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_compat_bzip2.obj: libarchive/test/test_compat_bzip2.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_compat_bzip2.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_compat_bzip2.Tpo -c -o libarchive/test/test-test_compat_bzip2.obj `if test -f 'libarchive/test/test_compat_bzip2.c'; then $(CYGPATH_W) 'libarchive/test/test_compat_bzip2.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_compat_bzip2.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_compat_bzip2.Tpo libarchive/test/$(DEPDIR)/test-test_compat_bzip2.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_compat_bzip2.c' object='libarchive/test/test-test_compat_bzip2.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_compat_bzip2.obj `if test -f 'libarchive/test/test_compat_bzip2.c'; then $(CYGPATH_W) 'libarchive/test/test_compat_bzip2.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_compat_bzip2.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_compat_bzip2.obj `if test -f 'libarchive/test/test_compat_bzip2.c'; then $(CYGPATH_W) 'libarchive/test/test_compat_bzip2.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_compat_bzip2.c'; fi` -libarchive/test/libarchive_test-test_compat_cpio.o: libarchive/test/test_compat_cpio.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_compat_cpio.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_compat_cpio.Tpo -c -o libarchive/test/libarchive_test-test_compat_cpio.o `test -f 'libarchive/test/test_compat_cpio.c' || echo '$(srcdir)/'`libarchive/test/test_compat_cpio.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_compat_cpio.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_compat_cpio.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_compat_cpio.c' object='libarchive/test/libarchive_test-test_compat_cpio.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_compat_cpio.o: libarchive/test/test_compat_cpio.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_compat_cpio.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_compat_cpio.Tpo -c -o libarchive/test/test-test_compat_cpio.o `test -f 'libarchive/test/test_compat_cpio.c' || echo '$(srcdir)/'`libarchive/test/test_compat_cpio.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_compat_cpio.Tpo libarchive/test/$(DEPDIR)/test-test_compat_cpio.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_compat_cpio.c' object='libarchive/test/test-test_compat_cpio.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_compat_cpio.o `test -f 'libarchive/test/test_compat_cpio.c' || echo '$(srcdir)/'`libarchive/test/test_compat_cpio.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_compat_cpio.o `test -f 'libarchive/test/test_compat_cpio.c' || echo '$(srcdir)/'`libarchive/test/test_compat_cpio.c -libarchive/test/libarchive_test-test_compat_cpio.obj: libarchive/test/test_compat_cpio.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_compat_cpio.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_compat_cpio.Tpo -c -o libarchive/test/libarchive_test-test_compat_cpio.obj `if test -f 'libarchive/test/test_compat_cpio.c'; then $(CYGPATH_W) 'libarchive/test/test_compat_cpio.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_compat_cpio.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_compat_cpio.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_compat_cpio.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_compat_cpio.c' object='libarchive/test/libarchive_test-test_compat_cpio.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_compat_cpio.obj: libarchive/test/test_compat_cpio.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_compat_cpio.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_compat_cpio.Tpo -c -o libarchive/test/test-test_compat_cpio.obj `if test -f 'libarchive/test/test_compat_cpio.c'; then $(CYGPATH_W) 'libarchive/test/test_compat_cpio.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_compat_cpio.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_compat_cpio.Tpo libarchive/test/$(DEPDIR)/test-test_compat_cpio.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_compat_cpio.c' object='libarchive/test/test-test_compat_cpio.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_compat_cpio.obj `if test -f 'libarchive/test/test_compat_cpio.c'; then $(CYGPATH_W) 'libarchive/test/test_compat_cpio.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_compat_cpio.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_compat_cpio.obj `if test -f 'libarchive/test/test_compat_cpio.c'; then $(CYGPATH_W) 'libarchive/test/test_compat_cpio.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_compat_cpio.c'; fi` -libarchive/test/libarchive_test-test_compat_gtar.o: libarchive/test/test_compat_gtar.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_compat_gtar.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_compat_gtar.Tpo -c -o libarchive/test/libarchive_test-test_compat_gtar.o `test -f 'libarchive/test/test_compat_gtar.c' || echo '$(srcdir)/'`libarchive/test/test_compat_gtar.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_compat_gtar.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_compat_gtar.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_compat_gtar.c' object='libarchive/test/libarchive_test-test_compat_gtar.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_compat_gtar.o: libarchive/test/test_compat_gtar.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_compat_gtar.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_compat_gtar.Tpo -c -o libarchive/test/test-test_compat_gtar.o `test -f 'libarchive/test/test_compat_gtar.c' || echo '$(srcdir)/'`libarchive/test/test_compat_gtar.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_compat_gtar.Tpo libarchive/test/$(DEPDIR)/test-test_compat_gtar.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_compat_gtar.c' object='libarchive/test/test-test_compat_gtar.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_compat_gtar.o `test -f 'libarchive/test/test_compat_gtar.c' || echo '$(srcdir)/'`libarchive/test/test_compat_gtar.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_compat_gtar.o `test -f 'libarchive/test/test_compat_gtar.c' || echo '$(srcdir)/'`libarchive/test/test_compat_gtar.c -libarchive/test/libarchive_test-test_compat_gtar.obj: libarchive/test/test_compat_gtar.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_compat_gtar.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_compat_gtar.Tpo -c -o libarchive/test/libarchive_test-test_compat_gtar.obj `if test -f 'libarchive/test/test_compat_gtar.c'; then $(CYGPATH_W) 'libarchive/test/test_compat_gtar.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_compat_gtar.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_compat_gtar.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_compat_gtar.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_compat_gtar.c' object='libarchive/test/libarchive_test-test_compat_gtar.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_compat_gtar.obj: libarchive/test/test_compat_gtar.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_compat_gtar.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_compat_gtar.Tpo -c -o libarchive/test/test-test_compat_gtar.obj `if test -f 'libarchive/test/test_compat_gtar.c'; then $(CYGPATH_W) 'libarchive/test/test_compat_gtar.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_compat_gtar.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_compat_gtar.Tpo libarchive/test/$(DEPDIR)/test-test_compat_gtar.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_compat_gtar.c' object='libarchive/test/test-test_compat_gtar.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_compat_gtar.obj `if test -f 'libarchive/test/test_compat_gtar.c'; then $(CYGPATH_W) 'libarchive/test/test_compat_gtar.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_compat_gtar.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_compat_gtar.obj `if test -f 'libarchive/test/test_compat_gtar.c'; then $(CYGPATH_W) 'libarchive/test/test_compat_gtar.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_compat_gtar.c'; fi` -libarchive/test/libarchive_test-test_compat_gzip.o: libarchive/test/test_compat_gzip.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_compat_gzip.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_compat_gzip.Tpo -c -o libarchive/test/libarchive_test-test_compat_gzip.o `test -f 'libarchive/test/test_compat_gzip.c' || echo '$(srcdir)/'`libarchive/test/test_compat_gzip.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_compat_gzip.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_compat_gzip.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_compat_gzip.c' object='libarchive/test/libarchive_test-test_compat_gzip.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_compat_gzip.o: libarchive/test/test_compat_gzip.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_compat_gzip.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_compat_gzip.Tpo -c -o libarchive/test/test-test_compat_gzip.o `test -f 'libarchive/test/test_compat_gzip.c' || echo '$(srcdir)/'`libarchive/test/test_compat_gzip.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_compat_gzip.Tpo libarchive/test/$(DEPDIR)/test-test_compat_gzip.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_compat_gzip.c' object='libarchive/test/test-test_compat_gzip.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_compat_gzip.o `test -f 'libarchive/test/test_compat_gzip.c' || echo '$(srcdir)/'`libarchive/test/test_compat_gzip.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_compat_gzip.o `test -f 'libarchive/test/test_compat_gzip.c' || echo '$(srcdir)/'`libarchive/test/test_compat_gzip.c -libarchive/test/libarchive_test-test_compat_gzip.obj: libarchive/test/test_compat_gzip.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_compat_gzip.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_compat_gzip.Tpo -c -o libarchive/test/libarchive_test-test_compat_gzip.obj `if test -f 'libarchive/test/test_compat_gzip.c'; then $(CYGPATH_W) 'libarchive/test/test_compat_gzip.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_compat_gzip.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_compat_gzip.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_compat_gzip.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_compat_gzip.c' object='libarchive/test/libarchive_test-test_compat_gzip.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_compat_gzip.obj: libarchive/test/test_compat_gzip.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_compat_gzip.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_compat_gzip.Tpo -c -o libarchive/test/test-test_compat_gzip.obj `if test -f 'libarchive/test/test_compat_gzip.c'; then $(CYGPATH_W) 'libarchive/test/test_compat_gzip.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_compat_gzip.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_compat_gzip.Tpo libarchive/test/$(DEPDIR)/test-test_compat_gzip.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_compat_gzip.c' object='libarchive/test/test-test_compat_gzip.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_compat_gzip.obj `if test -f 'libarchive/test/test_compat_gzip.c'; then $(CYGPATH_W) 'libarchive/test/test_compat_gzip.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_compat_gzip.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_compat_gzip.obj `if test -f 'libarchive/test/test_compat_gzip.c'; then $(CYGPATH_W) 'libarchive/test/test_compat_gzip.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_compat_gzip.c'; fi` -libarchive/test/libarchive_test-test_compat_lz4.o: libarchive/test/test_compat_lz4.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_compat_lz4.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_compat_lz4.Tpo -c -o libarchive/test/libarchive_test-test_compat_lz4.o `test -f 'libarchive/test/test_compat_lz4.c' || echo '$(srcdir)/'`libarchive/test/test_compat_lz4.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_compat_lz4.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_compat_lz4.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_compat_lz4.c' object='libarchive/test/libarchive_test-test_compat_lz4.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_compat_lz4.o: libarchive/test/test_compat_lz4.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_compat_lz4.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_compat_lz4.Tpo -c -o libarchive/test/test-test_compat_lz4.o `test -f 'libarchive/test/test_compat_lz4.c' || echo '$(srcdir)/'`libarchive/test/test_compat_lz4.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_compat_lz4.Tpo libarchive/test/$(DEPDIR)/test-test_compat_lz4.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_compat_lz4.c' object='libarchive/test/test-test_compat_lz4.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_compat_lz4.o `test -f 'libarchive/test/test_compat_lz4.c' || echo '$(srcdir)/'`libarchive/test/test_compat_lz4.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_compat_lz4.o `test -f 'libarchive/test/test_compat_lz4.c' || echo '$(srcdir)/'`libarchive/test/test_compat_lz4.c -libarchive/test/libarchive_test-test_compat_lz4.obj: libarchive/test/test_compat_lz4.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_compat_lz4.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_compat_lz4.Tpo -c -o libarchive/test/libarchive_test-test_compat_lz4.obj `if test -f 'libarchive/test/test_compat_lz4.c'; then $(CYGPATH_W) 'libarchive/test/test_compat_lz4.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_compat_lz4.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_compat_lz4.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_compat_lz4.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_compat_lz4.c' object='libarchive/test/libarchive_test-test_compat_lz4.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_compat_lz4.obj: libarchive/test/test_compat_lz4.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_compat_lz4.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_compat_lz4.Tpo -c -o libarchive/test/test-test_compat_lz4.obj `if test -f 'libarchive/test/test_compat_lz4.c'; then $(CYGPATH_W) 'libarchive/test/test_compat_lz4.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_compat_lz4.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_compat_lz4.Tpo libarchive/test/$(DEPDIR)/test-test_compat_lz4.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_compat_lz4.c' object='libarchive/test/test-test_compat_lz4.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_compat_lz4.obj `if test -f 'libarchive/test/test_compat_lz4.c'; then $(CYGPATH_W) 'libarchive/test/test_compat_lz4.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_compat_lz4.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_compat_lz4.obj `if test -f 'libarchive/test/test_compat_lz4.c'; then $(CYGPATH_W) 'libarchive/test/test_compat_lz4.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_compat_lz4.c'; fi` -libarchive/test/libarchive_test-test_compat_lzip.o: libarchive/test/test_compat_lzip.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_compat_lzip.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_compat_lzip.Tpo -c -o libarchive/test/libarchive_test-test_compat_lzip.o `test -f 'libarchive/test/test_compat_lzip.c' || echo '$(srcdir)/'`libarchive/test/test_compat_lzip.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_compat_lzip.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_compat_lzip.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_compat_lzip.c' object='libarchive/test/libarchive_test-test_compat_lzip.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_compat_lzip.o: libarchive/test/test_compat_lzip.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_compat_lzip.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_compat_lzip.Tpo -c -o libarchive/test/test-test_compat_lzip.o `test -f 'libarchive/test/test_compat_lzip.c' || echo '$(srcdir)/'`libarchive/test/test_compat_lzip.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_compat_lzip.Tpo libarchive/test/$(DEPDIR)/test-test_compat_lzip.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_compat_lzip.c' object='libarchive/test/test-test_compat_lzip.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_compat_lzip.o `test -f 'libarchive/test/test_compat_lzip.c' || echo '$(srcdir)/'`libarchive/test/test_compat_lzip.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_compat_lzip.o `test -f 'libarchive/test/test_compat_lzip.c' || echo '$(srcdir)/'`libarchive/test/test_compat_lzip.c -libarchive/test/libarchive_test-test_compat_lzip.obj: libarchive/test/test_compat_lzip.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_compat_lzip.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_compat_lzip.Tpo -c -o libarchive/test/libarchive_test-test_compat_lzip.obj `if test -f 'libarchive/test/test_compat_lzip.c'; then $(CYGPATH_W) 'libarchive/test/test_compat_lzip.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_compat_lzip.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_compat_lzip.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_compat_lzip.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_compat_lzip.c' object='libarchive/test/libarchive_test-test_compat_lzip.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_compat_lzip.obj: libarchive/test/test_compat_lzip.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_compat_lzip.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_compat_lzip.Tpo -c -o libarchive/test/test-test_compat_lzip.obj `if test -f 'libarchive/test/test_compat_lzip.c'; then $(CYGPATH_W) 'libarchive/test/test_compat_lzip.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_compat_lzip.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_compat_lzip.Tpo libarchive/test/$(DEPDIR)/test-test_compat_lzip.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_compat_lzip.c' object='libarchive/test/test-test_compat_lzip.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_compat_lzip.obj `if test -f 'libarchive/test/test_compat_lzip.c'; then $(CYGPATH_W) 'libarchive/test/test_compat_lzip.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_compat_lzip.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_compat_lzip.obj `if test -f 'libarchive/test/test_compat_lzip.c'; then $(CYGPATH_W) 'libarchive/test/test_compat_lzip.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_compat_lzip.c'; fi` -libarchive/test/libarchive_test-test_compat_lzma.o: libarchive/test/test_compat_lzma.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_compat_lzma.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_compat_lzma.Tpo -c -o libarchive/test/libarchive_test-test_compat_lzma.o `test -f 'libarchive/test/test_compat_lzma.c' || echo '$(srcdir)/'`libarchive/test/test_compat_lzma.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_compat_lzma.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_compat_lzma.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_compat_lzma.c' object='libarchive/test/libarchive_test-test_compat_lzma.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_compat_lzma.o: libarchive/test/test_compat_lzma.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_compat_lzma.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_compat_lzma.Tpo -c -o libarchive/test/test-test_compat_lzma.o `test -f 'libarchive/test/test_compat_lzma.c' || echo '$(srcdir)/'`libarchive/test/test_compat_lzma.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_compat_lzma.Tpo libarchive/test/$(DEPDIR)/test-test_compat_lzma.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_compat_lzma.c' object='libarchive/test/test-test_compat_lzma.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_compat_lzma.o `test -f 'libarchive/test/test_compat_lzma.c' || echo '$(srcdir)/'`libarchive/test/test_compat_lzma.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_compat_lzma.o `test -f 'libarchive/test/test_compat_lzma.c' || echo '$(srcdir)/'`libarchive/test/test_compat_lzma.c -libarchive/test/libarchive_test-test_compat_lzma.obj: libarchive/test/test_compat_lzma.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_compat_lzma.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_compat_lzma.Tpo -c -o libarchive/test/libarchive_test-test_compat_lzma.obj `if test -f 'libarchive/test/test_compat_lzma.c'; then $(CYGPATH_W) 'libarchive/test/test_compat_lzma.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_compat_lzma.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_compat_lzma.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_compat_lzma.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_compat_lzma.c' object='libarchive/test/libarchive_test-test_compat_lzma.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_compat_lzma.obj: libarchive/test/test_compat_lzma.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_compat_lzma.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_compat_lzma.Tpo -c -o libarchive/test/test-test_compat_lzma.obj `if test -f 'libarchive/test/test_compat_lzma.c'; then $(CYGPATH_W) 'libarchive/test/test_compat_lzma.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_compat_lzma.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_compat_lzma.Tpo libarchive/test/$(DEPDIR)/test-test_compat_lzma.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_compat_lzma.c' object='libarchive/test/test-test_compat_lzma.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_compat_lzma.obj `if test -f 'libarchive/test/test_compat_lzma.c'; then $(CYGPATH_W) 'libarchive/test/test_compat_lzma.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_compat_lzma.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_compat_lzma.obj `if test -f 'libarchive/test/test_compat_lzma.c'; then $(CYGPATH_W) 'libarchive/test/test_compat_lzma.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_compat_lzma.c'; fi` -libarchive/test/libarchive_test-test_compat_lzop.o: libarchive/test/test_compat_lzop.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_compat_lzop.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_compat_lzop.Tpo -c -o libarchive/test/libarchive_test-test_compat_lzop.o `test -f 'libarchive/test/test_compat_lzop.c' || echo '$(srcdir)/'`libarchive/test/test_compat_lzop.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_compat_lzop.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_compat_lzop.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_compat_lzop.c' object='libarchive/test/libarchive_test-test_compat_lzop.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_compat_lzop.o: libarchive/test/test_compat_lzop.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_compat_lzop.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_compat_lzop.Tpo -c -o libarchive/test/test-test_compat_lzop.o `test -f 'libarchive/test/test_compat_lzop.c' || echo '$(srcdir)/'`libarchive/test/test_compat_lzop.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_compat_lzop.Tpo libarchive/test/$(DEPDIR)/test-test_compat_lzop.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_compat_lzop.c' object='libarchive/test/test-test_compat_lzop.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_compat_lzop.o `test -f 'libarchive/test/test_compat_lzop.c' || echo '$(srcdir)/'`libarchive/test/test_compat_lzop.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_compat_lzop.o `test -f 'libarchive/test/test_compat_lzop.c' || echo '$(srcdir)/'`libarchive/test/test_compat_lzop.c -libarchive/test/libarchive_test-test_compat_lzop.obj: libarchive/test/test_compat_lzop.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_compat_lzop.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_compat_lzop.Tpo -c -o libarchive/test/libarchive_test-test_compat_lzop.obj `if test -f 'libarchive/test/test_compat_lzop.c'; then $(CYGPATH_W) 'libarchive/test/test_compat_lzop.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_compat_lzop.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_compat_lzop.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_compat_lzop.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_compat_lzop.c' object='libarchive/test/libarchive_test-test_compat_lzop.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_compat_lzop.obj: libarchive/test/test_compat_lzop.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_compat_lzop.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_compat_lzop.Tpo -c -o libarchive/test/test-test_compat_lzop.obj `if test -f 'libarchive/test/test_compat_lzop.c'; then $(CYGPATH_W) 'libarchive/test/test_compat_lzop.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_compat_lzop.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_compat_lzop.Tpo libarchive/test/$(DEPDIR)/test-test_compat_lzop.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_compat_lzop.c' object='libarchive/test/test-test_compat_lzop.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_compat_lzop.obj `if test -f 'libarchive/test/test_compat_lzop.c'; then $(CYGPATH_W) 'libarchive/test/test_compat_lzop.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_compat_lzop.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_compat_lzop.obj `if test -f 'libarchive/test/test_compat_lzop.c'; then $(CYGPATH_W) 'libarchive/test/test_compat_lzop.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_compat_lzop.c'; fi` -libarchive/test/libarchive_test-test_compat_mac.o: libarchive/test/test_compat_mac.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_compat_mac.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_compat_mac.Tpo -c -o libarchive/test/libarchive_test-test_compat_mac.o `test -f 'libarchive/test/test_compat_mac.c' || echo '$(srcdir)/'`libarchive/test/test_compat_mac.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_compat_mac.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_compat_mac.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_compat_mac.c' object='libarchive/test/libarchive_test-test_compat_mac.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_compat_mac.o: libarchive/test/test_compat_mac.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_compat_mac.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_compat_mac.Tpo -c -o libarchive/test/test-test_compat_mac.o `test -f 'libarchive/test/test_compat_mac.c' || echo '$(srcdir)/'`libarchive/test/test_compat_mac.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_compat_mac.Tpo libarchive/test/$(DEPDIR)/test-test_compat_mac.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_compat_mac.c' object='libarchive/test/test-test_compat_mac.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_compat_mac.o `test -f 'libarchive/test/test_compat_mac.c' || echo '$(srcdir)/'`libarchive/test/test_compat_mac.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_compat_mac.o `test -f 'libarchive/test/test_compat_mac.c' || echo '$(srcdir)/'`libarchive/test/test_compat_mac.c -libarchive/test/libarchive_test-test_compat_mac.obj: libarchive/test/test_compat_mac.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_compat_mac.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_compat_mac.Tpo -c -o libarchive/test/libarchive_test-test_compat_mac.obj `if test -f 'libarchive/test/test_compat_mac.c'; then $(CYGPATH_W) 'libarchive/test/test_compat_mac.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_compat_mac.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_compat_mac.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_compat_mac.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_compat_mac.c' object='libarchive/test/libarchive_test-test_compat_mac.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_compat_mac.obj: libarchive/test/test_compat_mac.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_compat_mac.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_compat_mac.Tpo -c -o libarchive/test/test-test_compat_mac.obj `if test -f 'libarchive/test/test_compat_mac.c'; then $(CYGPATH_W) 'libarchive/test/test_compat_mac.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_compat_mac.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_compat_mac.Tpo libarchive/test/$(DEPDIR)/test-test_compat_mac.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_compat_mac.c' object='libarchive/test/test-test_compat_mac.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_compat_mac.obj `if test -f 'libarchive/test/test_compat_mac.c'; then $(CYGPATH_W) 'libarchive/test/test_compat_mac.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_compat_mac.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_compat_mac.obj `if test -f 'libarchive/test/test_compat_mac.c'; then $(CYGPATH_W) 'libarchive/test/test_compat_mac.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_compat_mac.c'; fi` -libarchive/test/libarchive_test-test_compat_perl_archive_tar.o: libarchive/test/test_compat_perl_archive_tar.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_compat_perl_archive_tar.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_compat_perl_archive_tar.Tpo -c -o libarchive/test/libarchive_test-test_compat_perl_archive_tar.o `test -f 'libarchive/test/test_compat_perl_archive_tar.c' || echo '$(srcdir)/'`libarchive/test/test_compat_perl_archive_tar.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_compat_perl_archive_tar.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_compat_perl_archive_tar.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_compat_perl_archive_tar.c' object='libarchive/test/libarchive_test-test_compat_perl_archive_tar.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_compat_perl_archive_tar.o: libarchive/test/test_compat_perl_archive_tar.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_compat_perl_archive_tar.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_compat_perl_archive_tar.Tpo -c -o libarchive/test/test-test_compat_perl_archive_tar.o `test -f 'libarchive/test/test_compat_perl_archive_tar.c' || echo '$(srcdir)/'`libarchive/test/test_compat_perl_archive_tar.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_compat_perl_archive_tar.Tpo libarchive/test/$(DEPDIR)/test-test_compat_perl_archive_tar.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_compat_perl_archive_tar.c' object='libarchive/test/test-test_compat_perl_archive_tar.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_compat_perl_archive_tar.o `test -f 'libarchive/test/test_compat_perl_archive_tar.c' || echo '$(srcdir)/'`libarchive/test/test_compat_perl_archive_tar.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_compat_perl_archive_tar.o `test -f 'libarchive/test/test_compat_perl_archive_tar.c' || echo '$(srcdir)/'`libarchive/test/test_compat_perl_archive_tar.c -libarchive/test/libarchive_test-test_compat_perl_archive_tar.obj: libarchive/test/test_compat_perl_archive_tar.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_compat_perl_archive_tar.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_compat_perl_archive_tar.Tpo -c -o libarchive/test/libarchive_test-test_compat_perl_archive_tar.obj `if test -f 'libarchive/test/test_compat_perl_archive_tar.c'; then $(CYGPATH_W) 'libarchive/test/test_compat_perl_archive_tar.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_compat_perl_archive_tar.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_compat_perl_archive_tar.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_compat_perl_archive_tar.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_compat_perl_archive_tar.c' object='libarchive/test/libarchive_test-test_compat_perl_archive_tar.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_compat_perl_archive_tar.obj: libarchive/test/test_compat_perl_archive_tar.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_compat_perl_archive_tar.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_compat_perl_archive_tar.Tpo -c -o libarchive/test/test-test_compat_perl_archive_tar.obj `if test -f 'libarchive/test/test_compat_perl_archive_tar.c'; then $(CYGPATH_W) 'libarchive/test/test_compat_perl_archive_tar.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_compat_perl_archive_tar.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_compat_perl_archive_tar.Tpo libarchive/test/$(DEPDIR)/test-test_compat_perl_archive_tar.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_compat_perl_archive_tar.c' object='libarchive/test/test-test_compat_perl_archive_tar.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_compat_perl_archive_tar.obj `if test -f 'libarchive/test/test_compat_perl_archive_tar.c'; then $(CYGPATH_W) 'libarchive/test/test_compat_perl_archive_tar.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_compat_perl_archive_tar.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_compat_perl_archive_tar.obj `if test -f 'libarchive/test/test_compat_perl_archive_tar.c'; then $(CYGPATH_W) 'libarchive/test/test_compat_perl_archive_tar.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_compat_perl_archive_tar.c'; fi` -libarchive/test/libarchive_test-test_compat_plexus_archiver_tar.o: libarchive/test/test_compat_plexus_archiver_tar.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_compat_plexus_archiver_tar.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_compat_plexus_archiver_tar.Tpo -c -o libarchive/test/libarchive_test-test_compat_plexus_archiver_tar.o `test -f 'libarchive/test/test_compat_plexus_archiver_tar.c' || echo '$(srcdir)/'`libarchive/test/test_compat_plexus_archiver_tar.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_compat_plexus_archiver_tar.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_compat_plexus_archiver_tar.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_compat_plexus_archiver_tar.c' object='libarchive/test/libarchive_test-test_compat_plexus_archiver_tar.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_compat_plexus_archiver_tar.o: libarchive/test/test_compat_plexus_archiver_tar.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_compat_plexus_archiver_tar.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_compat_plexus_archiver_tar.Tpo -c -o libarchive/test/test-test_compat_plexus_archiver_tar.o `test -f 'libarchive/test/test_compat_plexus_archiver_tar.c' || echo '$(srcdir)/'`libarchive/test/test_compat_plexus_archiver_tar.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_compat_plexus_archiver_tar.Tpo libarchive/test/$(DEPDIR)/test-test_compat_plexus_archiver_tar.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_compat_plexus_archiver_tar.c' object='libarchive/test/test-test_compat_plexus_archiver_tar.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_compat_plexus_archiver_tar.o `test -f 'libarchive/test/test_compat_plexus_archiver_tar.c' || echo '$(srcdir)/'`libarchive/test/test_compat_plexus_archiver_tar.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_compat_plexus_archiver_tar.o `test -f 'libarchive/test/test_compat_plexus_archiver_tar.c' || echo '$(srcdir)/'`libarchive/test/test_compat_plexus_archiver_tar.c -libarchive/test/libarchive_test-test_compat_plexus_archiver_tar.obj: libarchive/test/test_compat_plexus_archiver_tar.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_compat_plexus_archiver_tar.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_compat_plexus_archiver_tar.Tpo -c -o libarchive/test/libarchive_test-test_compat_plexus_archiver_tar.obj `if test -f 'libarchive/test/test_compat_plexus_archiver_tar.c'; then $(CYGPATH_W) 'libarchive/test/test_compat_plexus_archiver_tar.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_compat_plexus_archiver_tar.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_compat_plexus_archiver_tar.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_compat_plexus_archiver_tar.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_compat_plexus_archiver_tar.c' object='libarchive/test/libarchive_test-test_compat_plexus_archiver_tar.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_compat_plexus_archiver_tar.obj: libarchive/test/test_compat_plexus_archiver_tar.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_compat_plexus_archiver_tar.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_compat_plexus_archiver_tar.Tpo -c -o libarchive/test/test-test_compat_plexus_archiver_tar.obj `if test -f 'libarchive/test/test_compat_plexus_archiver_tar.c'; then $(CYGPATH_W) 'libarchive/test/test_compat_plexus_archiver_tar.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_compat_plexus_archiver_tar.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_compat_plexus_archiver_tar.Tpo libarchive/test/$(DEPDIR)/test-test_compat_plexus_archiver_tar.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_compat_plexus_archiver_tar.c' object='libarchive/test/test-test_compat_plexus_archiver_tar.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_compat_plexus_archiver_tar.obj `if test -f 'libarchive/test/test_compat_plexus_archiver_tar.c'; then $(CYGPATH_W) 'libarchive/test/test_compat_plexus_archiver_tar.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_compat_plexus_archiver_tar.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_compat_plexus_archiver_tar.obj `if test -f 'libarchive/test/test_compat_plexus_archiver_tar.c'; then $(CYGPATH_W) 'libarchive/test/test_compat_plexus_archiver_tar.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_compat_plexus_archiver_tar.c'; fi` -libarchive/test/libarchive_test-test_compat_solaris_tar_acl.o: libarchive/test/test_compat_solaris_tar_acl.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_compat_solaris_tar_acl.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_compat_solaris_tar_acl.Tpo -c -o libarchive/test/libarchive_test-test_compat_solaris_tar_acl.o `test -f 'libarchive/test/test_compat_solaris_tar_acl.c' || echo '$(srcdir)/'`libarchive/test/test_compat_solaris_tar_acl.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_compat_solaris_tar_acl.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_compat_solaris_tar_acl.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_compat_solaris_tar_acl.c' object='libarchive/test/libarchive_test-test_compat_solaris_tar_acl.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_compat_solaris_tar_acl.o: libarchive/test/test_compat_solaris_tar_acl.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_compat_solaris_tar_acl.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_compat_solaris_tar_acl.Tpo -c -o libarchive/test/test-test_compat_solaris_tar_acl.o `test -f 'libarchive/test/test_compat_solaris_tar_acl.c' || echo '$(srcdir)/'`libarchive/test/test_compat_solaris_tar_acl.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_compat_solaris_tar_acl.Tpo libarchive/test/$(DEPDIR)/test-test_compat_solaris_tar_acl.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_compat_solaris_tar_acl.c' object='libarchive/test/test-test_compat_solaris_tar_acl.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_compat_solaris_tar_acl.o `test -f 'libarchive/test/test_compat_solaris_tar_acl.c' || echo '$(srcdir)/'`libarchive/test/test_compat_solaris_tar_acl.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_compat_solaris_tar_acl.o `test -f 'libarchive/test/test_compat_solaris_tar_acl.c' || echo '$(srcdir)/'`libarchive/test/test_compat_solaris_tar_acl.c -libarchive/test/libarchive_test-test_compat_solaris_tar_acl.obj: libarchive/test/test_compat_solaris_tar_acl.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_compat_solaris_tar_acl.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_compat_solaris_tar_acl.Tpo -c -o libarchive/test/libarchive_test-test_compat_solaris_tar_acl.obj `if test -f 'libarchive/test/test_compat_solaris_tar_acl.c'; then $(CYGPATH_W) 'libarchive/test/test_compat_solaris_tar_acl.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_compat_solaris_tar_acl.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_compat_solaris_tar_acl.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_compat_solaris_tar_acl.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_compat_solaris_tar_acl.c' object='libarchive/test/libarchive_test-test_compat_solaris_tar_acl.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_compat_solaris_tar_acl.obj: libarchive/test/test_compat_solaris_tar_acl.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_compat_solaris_tar_acl.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_compat_solaris_tar_acl.Tpo -c -o libarchive/test/test-test_compat_solaris_tar_acl.obj `if test -f 'libarchive/test/test_compat_solaris_tar_acl.c'; then $(CYGPATH_W) 'libarchive/test/test_compat_solaris_tar_acl.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_compat_solaris_tar_acl.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_compat_solaris_tar_acl.Tpo libarchive/test/$(DEPDIR)/test-test_compat_solaris_tar_acl.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_compat_solaris_tar_acl.c' object='libarchive/test/test-test_compat_solaris_tar_acl.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_compat_solaris_tar_acl.obj `if test -f 'libarchive/test/test_compat_solaris_tar_acl.c'; then $(CYGPATH_W) 'libarchive/test/test_compat_solaris_tar_acl.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_compat_solaris_tar_acl.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_compat_solaris_tar_acl.obj `if test -f 'libarchive/test/test_compat_solaris_tar_acl.c'; then $(CYGPATH_W) 'libarchive/test/test_compat_solaris_tar_acl.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_compat_solaris_tar_acl.c'; fi` -libarchive/test/libarchive_test-test_compat_solaris_pax_sparse.o: libarchive/test/test_compat_solaris_pax_sparse.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_compat_solaris_pax_sparse.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_compat_solaris_pax_sparse.Tpo -c -o libarchive/test/libarchive_test-test_compat_solaris_pax_sparse.o `test -f 'libarchive/test/test_compat_solaris_pax_sparse.c' || echo '$(srcdir)/'`libarchive/test/test_compat_solaris_pax_sparse.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_compat_solaris_pax_sparse.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_compat_solaris_pax_sparse.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_compat_solaris_pax_sparse.c' object='libarchive/test/libarchive_test-test_compat_solaris_pax_sparse.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_compat_solaris_pax_sparse.o: libarchive/test/test_compat_solaris_pax_sparse.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_compat_solaris_pax_sparse.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_compat_solaris_pax_sparse.Tpo -c -o libarchive/test/test-test_compat_solaris_pax_sparse.o `test -f 'libarchive/test/test_compat_solaris_pax_sparse.c' || echo '$(srcdir)/'`libarchive/test/test_compat_solaris_pax_sparse.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_compat_solaris_pax_sparse.Tpo libarchive/test/$(DEPDIR)/test-test_compat_solaris_pax_sparse.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_compat_solaris_pax_sparse.c' object='libarchive/test/test-test_compat_solaris_pax_sparse.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_compat_solaris_pax_sparse.o `test -f 'libarchive/test/test_compat_solaris_pax_sparse.c' || echo '$(srcdir)/'`libarchive/test/test_compat_solaris_pax_sparse.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_compat_solaris_pax_sparse.o `test -f 'libarchive/test/test_compat_solaris_pax_sparse.c' || echo '$(srcdir)/'`libarchive/test/test_compat_solaris_pax_sparse.c -libarchive/test/libarchive_test-test_compat_solaris_pax_sparse.obj: libarchive/test/test_compat_solaris_pax_sparse.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_compat_solaris_pax_sparse.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_compat_solaris_pax_sparse.Tpo -c -o libarchive/test/libarchive_test-test_compat_solaris_pax_sparse.obj `if test -f 'libarchive/test/test_compat_solaris_pax_sparse.c'; then $(CYGPATH_W) 'libarchive/test/test_compat_solaris_pax_sparse.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_compat_solaris_pax_sparse.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_compat_solaris_pax_sparse.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_compat_solaris_pax_sparse.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_compat_solaris_pax_sparse.c' object='libarchive/test/libarchive_test-test_compat_solaris_pax_sparse.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_compat_solaris_pax_sparse.obj: libarchive/test/test_compat_solaris_pax_sparse.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_compat_solaris_pax_sparse.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_compat_solaris_pax_sparse.Tpo -c -o libarchive/test/test-test_compat_solaris_pax_sparse.obj `if test -f 'libarchive/test/test_compat_solaris_pax_sparse.c'; then $(CYGPATH_W) 'libarchive/test/test_compat_solaris_pax_sparse.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_compat_solaris_pax_sparse.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_compat_solaris_pax_sparse.Tpo libarchive/test/$(DEPDIR)/test-test_compat_solaris_pax_sparse.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_compat_solaris_pax_sparse.c' object='libarchive/test/test-test_compat_solaris_pax_sparse.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_compat_solaris_pax_sparse.obj `if test -f 'libarchive/test/test_compat_solaris_pax_sparse.c'; then $(CYGPATH_W) 'libarchive/test/test_compat_solaris_pax_sparse.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_compat_solaris_pax_sparse.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_compat_solaris_pax_sparse.obj `if test -f 'libarchive/test/test_compat_solaris_pax_sparse.c'; then $(CYGPATH_W) 'libarchive/test/test_compat_solaris_pax_sparse.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_compat_solaris_pax_sparse.c'; fi` -libarchive/test/libarchive_test-test_compat_star_acl.o: libarchive/test/test_compat_star_acl.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_compat_star_acl.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_compat_star_acl.Tpo -c -o libarchive/test/libarchive_test-test_compat_star_acl.o `test -f 'libarchive/test/test_compat_star_acl.c' || echo '$(srcdir)/'`libarchive/test/test_compat_star_acl.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_compat_star_acl.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_compat_star_acl.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_compat_star_acl.c' object='libarchive/test/libarchive_test-test_compat_star_acl.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_compat_star_acl.o: libarchive/test/test_compat_star_acl.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_compat_star_acl.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_compat_star_acl.Tpo -c -o libarchive/test/test-test_compat_star_acl.o `test -f 'libarchive/test/test_compat_star_acl.c' || echo '$(srcdir)/'`libarchive/test/test_compat_star_acl.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_compat_star_acl.Tpo libarchive/test/$(DEPDIR)/test-test_compat_star_acl.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_compat_star_acl.c' object='libarchive/test/test-test_compat_star_acl.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_compat_star_acl.o `test -f 'libarchive/test/test_compat_star_acl.c' || echo '$(srcdir)/'`libarchive/test/test_compat_star_acl.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_compat_star_acl.o `test -f 'libarchive/test/test_compat_star_acl.c' || echo '$(srcdir)/'`libarchive/test/test_compat_star_acl.c -libarchive/test/libarchive_test-test_compat_star_acl.obj: libarchive/test/test_compat_star_acl.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_compat_star_acl.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_compat_star_acl.Tpo -c -o libarchive/test/libarchive_test-test_compat_star_acl.obj `if test -f 'libarchive/test/test_compat_star_acl.c'; then $(CYGPATH_W) 'libarchive/test/test_compat_star_acl.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_compat_star_acl.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_compat_star_acl.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_compat_star_acl.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_compat_star_acl.c' object='libarchive/test/libarchive_test-test_compat_star_acl.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_compat_star_acl.obj: libarchive/test/test_compat_star_acl.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_compat_star_acl.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_compat_star_acl.Tpo -c -o libarchive/test/test-test_compat_star_acl.obj `if test -f 'libarchive/test/test_compat_star_acl.c'; then $(CYGPATH_W) 'libarchive/test/test_compat_star_acl.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_compat_star_acl.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_compat_star_acl.Tpo libarchive/test/$(DEPDIR)/test-test_compat_star_acl.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_compat_star_acl.c' object='libarchive/test/test-test_compat_star_acl.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_compat_star_acl.obj `if test -f 'libarchive/test/test_compat_star_acl.c'; then $(CYGPATH_W) 'libarchive/test/test_compat_star_acl.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_compat_star_acl.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_compat_star_acl.obj `if test -f 'libarchive/test/test_compat_star_acl.c'; then $(CYGPATH_W) 'libarchive/test/test_compat_star_acl.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_compat_star_acl.c'; fi` -libarchive/test/libarchive_test-test_compat_tar_hardlink.o: libarchive/test/test_compat_tar_hardlink.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_compat_tar_hardlink.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_compat_tar_hardlink.Tpo -c -o libarchive/test/libarchive_test-test_compat_tar_hardlink.o `test -f 'libarchive/test/test_compat_tar_hardlink.c' || echo '$(srcdir)/'`libarchive/test/test_compat_tar_hardlink.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_compat_tar_hardlink.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_compat_tar_hardlink.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_compat_tar_hardlink.c' object='libarchive/test/libarchive_test-test_compat_tar_hardlink.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_compat_tar_hardlink.o: libarchive/test/test_compat_tar_hardlink.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_compat_tar_hardlink.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_compat_tar_hardlink.Tpo -c -o libarchive/test/test-test_compat_tar_hardlink.o `test -f 'libarchive/test/test_compat_tar_hardlink.c' || echo '$(srcdir)/'`libarchive/test/test_compat_tar_hardlink.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_compat_tar_hardlink.Tpo libarchive/test/$(DEPDIR)/test-test_compat_tar_hardlink.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_compat_tar_hardlink.c' object='libarchive/test/test-test_compat_tar_hardlink.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_compat_tar_hardlink.o `test -f 'libarchive/test/test_compat_tar_hardlink.c' || echo '$(srcdir)/'`libarchive/test/test_compat_tar_hardlink.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_compat_tar_hardlink.o `test -f 'libarchive/test/test_compat_tar_hardlink.c' || echo '$(srcdir)/'`libarchive/test/test_compat_tar_hardlink.c -libarchive/test/libarchive_test-test_compat_tar_hardlink.obj: libarchive/test/test_compat_tar_hardlink.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_compat_tar_hardlink.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_compat_tar_hardlink.Tpo -c -o libarchive/test/libarchive_test-test_compat_tar_hardlink.obj `if test -f 'libarchive/test/test_compat_tar_hardlink.c'; then $(CYGPATH_W) 'libarchive/test/test_compat_tar_hardlink.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_compat_tar_hardlink.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_compat_tar_hardlink.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_compat_tar_hardlink.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_compat_tar_hardlink.c' object='libarchive/test/libarchive_test-test_compat_tar_hardlink.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_compat_tar_hardlink.obj: libarchive/test/test_compat_tar_hardlink.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_compat_tar_hardlink.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_compat_tar_hardlink.Tpo -c -o libarchive/test/test-test_compat_tar_hardlink.obj `if test -f 'libarchive/test/test_compat_tar_hardlink.c'; then $(CYGPATH_W) 'libarchive/test/test_compat_tar_hardlink.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_compat_tar_hardlink.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_compat_tar_hardlink.Tpo libarchive/test/$(DEPDIR)/test-test_compat_tar_hardlink.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_compat_tar_hardlink.c' object='libarchive/test/test-test_compat_tar_hardlink.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_compat_tar_hardlink.obj `if test -f 'libarchive/test/test_compat_tar_hardlink.c'; then $(CYGPATH_W) 'libarchive/test/test_compat_tar_hardlink.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_compat_tar_hardlink.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_compat_tar_hardlink.obj `if test -f 'libarchive/test/test_compat_tar_hardlink.c'; then $(CYGPATH_W) 'libarchive/test/test_compat_tar_hardlink.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_compat_tar_hardlink.c'; fi` -libarchive/test/libarchive_test-test_compat_uudecode.o: libarchive/test/test_compat_uudecode.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_compat_uudecode.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_compat_uudecode.Tpo -c -o libarchive/test/libarchive_test-test_compat_uudecode.o `test -f 'libarchive/test/test_compat_uudecode.c' || echo '$(srcdir)/'`libarchive/test/test_compat_uudecode.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_compat_uudecode.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_compat_uudecode.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_compat_uudecode.c' object='libarchive/test/libarchive_test-test_compat_uudecode.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_compat_uudecode.o: libarchive/test/test_compat_uudecode.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_compat_uudecode.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_compat_uudecode.Tpo -c -o libarchive/test/test-test_compat_uudecode.o `test -f 'libarchive/test/test_compat_uudecode.c' || echo '$(srcdir)/'`libarchive/test/test_compat_uudecode.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_compat_uudecode.Tpo libarchive/test/$(DEPDIR)/test-test_compat_uudecode.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_compat_uudecode.c' object='libarchive/test/test-test_compat_uudecode.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_compat_uudecode.o `test -f 'libarchive/test/test_compat_uudecode.c' || echo '$(srcdir)/'`libarchive/test/test_compat_uudecode.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_compat_uudecode.o `test -f 'libarchive/test/test_compat_uudecode.c' || echo '$(srcdir)/'`libarchive/test/test_compat_uudecode.c -libarchive/test/libarchive_test-test_compat_uudecode.obj: libarchive/test/test_compat_uudecode.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_compat_uudecode.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_compat_uudecode.Tpo -c -o libarchive/test/libarchive_test-test_compat_uudecode.obj `if test -f 'libarchive/test/test_compat_uudecode.c'; then $(CYGPATH_W) 'libarchive/test/test_compat_uudecode.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_compat_uudecode.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_compat_uudecode.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_compat_uudecode.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_compat_uudecode.c' object='libarchive/test/libarchive_test-test_compat_uudecode.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_compat_uudecode.obj: libarchive/test/test_compat_uudecode.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_compat_uudecode.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_compat_uudecode.Tpo -c -o libarchive/test/test-test_compat_uudecode.obj `if test -f 'libarchive/test/test_compat_uudecode.c'; then $(CYGPATH_W) 'libarchive/test/test_compat_uudecode.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_compat_uudecode.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_compat_uudecode.Tpo libarchive/test/$(DEPDIR)/test-test_compat_uudecode.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_compat_uudecode.c' object='libarchive/test/test-test_compat_uudecode.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_compat_uudecode.obj `if test -f 'libarchive/test/test_compat_uudecode.c'; then $(CYGPATH_W) 'libarchive/test/test_compat_uudecode.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_compat_uudecode.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_compat_uudecode.obj `if test -f 'libarchive/test/test_compat_uudecode.c'; then $(CYGPATH_W) 'libarchive/test/test_compat_uudecode.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_compat_uudecode.c'; fi` -libarchive/test/libarchive_test-test_compat_uudecode_large.o: libarchive/test/test_compat_uudecode_large.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_compat_uudecode_large.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_compat_uudecode_large.Tpo -c -o libarchive/test/libarchive_test-test_compat_uudecode_large.o `test -f 'libarchive/test/test_compat_uudecode_large.c' || echo '$(srcdir)/'`libarchive/test/test_compat_uudecode_large.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_compat_uudecode_large.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_compat_uudecode_large.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_compat_uudecode_large.c' object='libarchive/test/libarchive_test-test_compat_uudecode_large.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_compat_uudecode_large.o: libarchive/test/test_compat_uudecode_large.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_compat_uudecode_large.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_compat_uudecode_large.Tpo -c -o libarchive/test/test-test_compat_uudecode_large.o `test -f 'libarchive/test/test_compat_uudecode_large.c' || echo '$(srcdir)/'`libarchive/test/test_compat_uudecode_large.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_compat_uudecode_large.Tpo libarchive/test/$(DEPDIR)/test-test_compat_uudecode_large.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_compat_uudecode_large.c' object='libarchive/test/test-test_compat_uudecode_large.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_compat_uudecode_large.o `test -f 'libarchive/test/test_compat_uudecode_large.c' || echo '$(srcdir)/'`libarchive/test/test_compat_uudecode_large.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_compat_uudecode_large.o `test -f 'libarchive/test/test_compat_uudecode_large.c' || echo '$(srcdir)/'`libarchive/test/test_compat_uudecode_large.c -libarchive/test/libarchive_test-test_compat_uudecode_large.obj: libarchive/test/test_compat_uudecode_large.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_compat_uudecode_large.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_compat_uudecode_large.Tpo -c -o libarchive/test/libarchive_test-test_compat_uudecode_large.obj `if test -f 'libarchive/test/test_compat_uudecode_large.c'; then $(CYGPATH_W) 'libarchive/test/test_compat_uudecode_large.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_compat_uudecode_large.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_compat_uudecode_large.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_compat_uudecode_large.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_compat_uudecode_large.c' object='libarchive/test/libarchive_test-test_compat_uudecode_large.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_compat_uudecode_large.obj: libarchive/test/test_compat_uudecode_large.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_compat_uudecode_large.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_compat_uudecode_large.Tpo -c -o libarchive/test/test-test_compat_uudecode_large.obj `if test -f 'libarchive/test/test_compat_uudecode_large.c'; then $(CYGPATH_W) 'libarchive/test/test_compat_uudecode_large.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_compat_uudecode_large.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_compat_uudecode_large.Tpo libarchive/test/$(DEPDIR)/test-test_compat_uudecode_large.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_compat_uudecode_large.c' object='libarchive/test/test-test_compat_uudecode_large.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_compat_uudecode_large.obj `if test -f 'libarchive/test/test_compat_uudecode_large.c'; then $(CYGPATH_W) 'libarchive/test/test_compat_uudecode_large.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_compat_uudecode_large.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_compat_uudecode_large.obj `if test -f 'libarchive/test/test_compat_uudecode_large.c'; then $(CYGPATH_W) 'libarchive/test/test_compat_uudecode_large.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_compat_uudecode_large.c'; fi` -libarchive/test/libarchive_test-test_compat_xz.o: libarchive/test/test_compat_xz.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_compat_xz.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_compat_xz.Tpo -c -o libarchive/test/libarchive_test-test_compat_xz.o `test -f 'libarchive/test/test_compat_xz.c' || echo '$(srcdir)/'`libarchive/test/test_compat_xz.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_compat_xz.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_compat_xz.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_compat_xz.c' object='libarchive/test/libarchive_test-test_compat_xz.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_compat_xz.o: libarchive/test/test_compat_xz.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_compat_xz.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_compat_xz.Tpo -c -o libarchive/test/test-test_compat_xz.o `test -f 'libarchive/test/test_compat_xz.c' || echo '$(srcdir)/'`libarchive/test/test_compat_xz.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_compat_xz.Tpo libarchive/test/$(DEPDIR)/test-test_compat_xz.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_compat_xz.c' object='libarchive/test/test-test_compat_xz.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_compat_xz.o `test -f 'libarchive/test/test_compat_xz.c' || echo '$(srcdir)/'`libarchive/test/test_compat_xz.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_compat_xz.o `test -f 'libarchive/test/test_compat_xz.c' || echo '$(srcdir)/'`libarchive/test/test_compat_xz.c -libarchive/test/libarchive_test-test_compat_xz.obj: libarchive/test/test_compat_xz.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_compat_xz.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_compat_xz.Tpo -c -o libarchive/test/libarchive_test-test_compat_xz.obj `if test -f 'libarchive/test/test_compat_xz.c'; then $(CYGPATH_W) 'libarchive/test/test_compat_xz.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_compat_xz.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_compat_xz.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_compat_xz.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_compat_xz.c' object='libarchive/test/libarchive_test-test_compat_xz.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_compat_xz.obj: libarchive/test/test_compat_xz.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_compat_xz.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_compat_xz.Tpo -c -o libarchive/test/test-test_compat_xz.obj `if test -f 'libarchive/test/test_compat_xz.c'; then $(CYGPATH_W) 'libarchive/test/test_compat_xz.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_compat_xz.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_compat_xz.Tpo libarchive/test/$(DEPDIR)/test-test_compat_xz.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_compat_xz.c' object='libarchive/test/test-test_compat_xz.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_compat_xz.obj `if test -f 'libarchive/test/test_compat_xz.c'; then $(CYGPATH_W) 'libarchive/test/test_compat_xz.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_compat_xz.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_compat_xz.obj `if test -f 'libarchive/test/test_compat_xz.c'; then $(CYGPATH_W) 'libarchive/test/test_compat_xz.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_compat_xz.c'; fi` -libarchive/test/libarchive_test-test_compat_zip.o: libarchive/test/test_compat_zip.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_compat_zip.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_compat_zip.Tpo -c -o libarchive/test/libarchive_test-test_compat_zip.o `test -f 'libarchive/test/test_compat_zip.c' || echo '$(srcdir)/'`libarchive/test/test_compat_zip.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_compat_zip.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_compat_zip.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_compat_zip.c' object='libarchive/test/libarchive_test-test_compat_zip.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_compat_zip.o: libarchive/test/test_compat_zip.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_compat_zip.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_compat_zip.Tpo -c -o libarchive/test/test-test_compat_zip.o `test -f 'libarchive/test/test_compat_zip.c' || echo '$(srcdir)/'`libarchive/test/test_compat_zip.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_compat_zip.Tpo libarchive/test/$(DEPDIR)/test-test_compat_zip.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_compat_zip.c' object='libarchive/test/test-test_compat_zip.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_compat_zip.o `test -f 'libarchive/test/test_compat_zip.c' || echo '$(srcdir)/'`libarchive/test/test_compat_zip.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_compat_zip.o `test -f 'libarchive/test/test_compat_zip.c' || echo '$(srcdir)/'`libarchive/test/test_compat_zip.c -libarchive/test/libarchive_test-test_compat_zip.obj: libarchive/test/test_compat_zip.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_compat_zip.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_compat_zip.Tpo -c -o libarchive/test/libarchive_test-test_compat_zip.obj `if test -f 'libarchive/test/test_compat_zip.c'; then $(CYGPATH_W) 'libarchive/test/test_compat_zip.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_compat_zip.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_compat_zip.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_compat_zip.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_compat_zip.c' object='libarchive/test/libarchive_test-test_compat_zip.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_compat_zip.obj: libarchive/test/test_compat_zip.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_compat_zip.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_compat_zip.Tpo -c -o libarchive/test/test-test_compat_zip.obj `if test -f 'libarchive/test/test_compat_zip.c'; then $(CYGPATH_W) 'libarchive/test/test_compat_zip.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_compat_zip.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_compat_zip.Tpo libarchive/test/$(DEPDIR)/test-test_compat_zip.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_compat_zip.c' object='libarchive/test/test-test_compat_zip.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_compat_zip.obj `if test -f 'libarchive/test/test_compat_zip.c'; then $(CYGPATH_W) 'libarchive/test/test_compat_zip.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_compat_zip.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_compat_zip.obj `if test -f 'libarchive/test/test_compat_zip.c'; then $(CYGPATH_W) 'libarchive/test/test_compat_zip.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_compat_zip.c'; fi` -libarchive/test/libarchive_test-test_compat_zstd.o: libarchive/test/test_compat_zstd.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_compat_zstd.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_compat_zstd.Tpo -c -o libarchive/test/libarchive_test-test_compat_zstd.o `test -f 'libarchive/test/test_compat_zstd.c' || echo '$(srcdir)/'`libarchive/test/test_compat_zstd.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_compat_zstd.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_compat_zstd.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_compat_zstd.c' object='libarchive/test/libarchive_test-test_compat_zstd.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_compat_zstd.o: libarchive/test/test_compat_zstd.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_compat_zstd.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_compat_zstd.Tpo -c -o libarchive/test/test-test_compat_zstd.o `test -f 'libarchive/test/test_compat_zstd.c' || echo '$(srcdir)/'`libarchive/test/test_compat_zstd.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_compat_zstd.Tpo libarchive/test/$(DEPDIR)/test-test_compat_zstd.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_compat_zstd.c' object='libarchive/test/test-test_compat_zstd.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_compat_zstd.o `test -f 'libarchive/test/test_compat_zstd.c' || echo '$(srcdir)/'`libarchive/test/test_compat_zstd.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_compat_zstd.o `test -f 'libarchive/test/test_compat_zstd.c' || echo '$(srcdir)/'`libarchive/test/test_compat_zstd.c -libarchive/test/libarchive_test-test_compat_zstd.obj: libarchive/test/test_compat_zstd.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_compat_zstd.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_compat_zstd.Tpo -c -o libarchive/test/libarchive_test-test_compat_zstd.obj `if test -f 'libarchive/test/test_compat_zstd.c'; then $(CYGPATH_W) 'libarchive/test/test_compat_zstd.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_compat_zstd.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_compat_zstd.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_compat_zstd.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_compat_zstd.c' object='libarchive/test/libarchive_test-test_compat_zstd.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_compat_zstd.obj: libarchive/test/test_compat_zstd.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_compat_zstd.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_compat_zstd.Tpo -c -o libarchive/test/test-test_compat_zstd.obj `if test -f 'libarchive/test/test_compat_zstd.c'; then $(CYGPATH_W) 'libarchive/test/test_compat_zstd.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_compat_zstd.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_compat_zstd.Tpo libarchive/test/$(DEPDIR)/test-test_compat_zstd.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_compat_zstd.c' object='libarchive/test/test-test_compat_zstd.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_compat_zstd.obj `if test -f 'libarchive/test/test_compat_zstd.c'; then $(CYGPATH_W) 'libarchive/test/test_compat_zstd.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_compat_zstd.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_compat_zstd.obj `if test -f 'libarchive/test/test_compat_zstd.c'; then $(CYGPATH_W) 'libarchive/test/test_compat_zstd.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_compat_zstd.c'; fi` -libarchive/test/libarchive_test-test_empty_write.o: libarchive/test/test_empty_write.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_empty_write.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_empty_write.Tpo -c -o libarchive/test/libarchive_test-test_empty_write.o `test -f 'libarchive/test/test_empty_write.c' || echo '$(srcdir)/'`libarchive/test/test_empty_write.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_empty_write.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_empty_write.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_empty_write.c' object='libarchive/test/libarchive_test-test_empty_write.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_empty_write.o: libarchive/test/test_empty_write.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_empty_write.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_empty_write.Tpo -c -o libarchive/test/test-test_empty_write.o `test -f 'libarchive/test/test_empty_write.c' || echo '$(srcdir)/'`libarchive/test/test_empty_write.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_empty_write.Tpo libarchive/test/$(DEPDIR)/test-test_empty_write.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_empty_write.c' object='libarchive/test/test-test_empty_write.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_empty_write.o `test -f 'libarchive/test/test_empty_write.c' || echo '$(srcdir)/'`libarchive/test/test_empty_write.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_empty_write.o `test -f 'libarchive/test/test_empty_write.c' || echo '$(srcdir)/'`libarchive/test/test_empty_write.c -libarchive/test/libarchive_test-test_empty_write.obj: libarchive/test/test_empty_write.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_empty_write.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_empty_write.Tpo -c -o libarchive/test/libarchive_test-test_empty_write.obj `if test -f 'libarchive/test/test_empty_write.c'; then $(CYGPATH_W) 'libarchive/test/test_empty_write.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_empty_write.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_empty_write.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_empty_write.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_empty_write.c' object='libarchive/test/libarchive_test-test_empty_write.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_empty_write.obj: libarchive/test/test_empty_write.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_empty_write.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_empty_write.Tpo -c -o libarchive/test/test-test_empty_write.obj `if test -f 'libarchive/test/test_empty_write.c'; then $(CYGPATH_W) 'libarchive/test/test_empty_write.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_empty_write.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_empty_write.Tpo libarchive/test/$(DEPDIR)/test-test_empty_write.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_empty_write.c' object='libarchive/test/test-test_empty_write.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_empty_write.obj `if test -f 'libarchive/test/test_empty_write.c'; then $(CYGPATH_W) 'libarchive/test/test_empty_write.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_empty_write.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_empty_write.obj `if test -f 'libarchive/test/test_empty_write.c'; then $(CYGPATH_W) 'libarchive/test/test_empty_write.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_empty_write.c'; fi` -libarchive/test/libarchive_test-test_entry.o: libarchive/test/test_entry.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_entry.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_entry.Tpo -c -o libarchive/test/libarchive_test-test_entry.o `test -f 'libarchive/test/test_entry.c' || echo '$(srcdir)/'`libarchive/test/test_entry.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_entry.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_entry.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_entry.c' object='libarchive/test/libarchive_test-test_entry.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_entry.o: libarchive/test/test_entry.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_entry.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_entry.Tpo -c -o libarchive/test/test-test_entry.o `test -f 'libarchive/test/test_entry.c' || echo '$(srcdir)/'`libarchive/test/test_entry.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_entry.Tpo libarchive/test/$(DEPDIR)/test-test_entry.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_entry.c' object='libarchive/test/test-test_entry.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_entry.o `test -f 'libarchive/test/test_entry.c' || echo '$(srcdir)/'`libarchive/test/test_entry.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_entry.o `test -f 'libarchive/test/test_entry.c' || echo '$(srcdir)/'`libarchive/test/test_entry.c -libarchive/test/libarchive_test-test_entry.obj: libarchive/test/test_entry.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_entry.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_entry.Tpo -c -o libarchive/test/libarchive_test-test_entry.obj `if test -f 'libarchive/test/test_entry.c'; then $(CYGPATH_W) 'libarchive/test/test_entry.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_entry.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_entry.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_entry.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_entry.c' object='libarchive/test/libarchive_test-test_entry.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_entry.obj: libarchive/test/test_entry.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_entry.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_entry.Tpo -c -o libarchive/test/test-test_entry.obj `if test -f 'libarchive/test/test_entry.c'; then $(CYGPATH_W) 'libarchive/test/test_entry.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_entry.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_entry.Tpo libarchive/test/$(DEPDIR)/test-test_entry.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_entry.c' object='libarchive/test/test-test_entry.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_entry.obj `if test -f 'libarchive/test/test_entry.c'; then $(CYGPATH_W) 'libarchive/test/test_entry.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_entry.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_entry.obj `if test -f 'libarchive/test/test_entry.c'; then $(CYGPATH_W) 'libarchive/test/test_entry.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_entry.c'; fi` -libarchive/test/libarchive_test-test_entry_strmode.o: libarchive/test/test_entry_strmode.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_entry_strmode.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_entry_strmode.Tpo -c -o libarchive/test/libarchive_test-test_entry_strmode.o `test -f 'libarchive/test/test_entry_strmode.c' || echo '$(srcdir)/'`libarchive/test/test_entry_strmode.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_entry_strmode.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_entry_strmode.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_entry_strmode.c' object='libarchive/test/libarchive_test-test_entry_strmode.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_entry_strmode.o: libarchive/test/test_entry_strmode.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_entry_strmode.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_entry_strmode.Tpo -c -o libarchive/test/test-test_entry_strmode.o `test -f 'libarchive/test/test_entry_strmode.c' || echo '$(srcdir)/'`libarchive/test/test_entry_strmode.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_entry_strmode.Tpo libarchive/test/$(DEPDIR)/test-test_entry_strmode.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_entry_strmode.c' object='libarchive/test/test-test_entry_strmode.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_entry_strmode.o `test -f 'libarchive/test/test_entry_strmode.c' || echo '$(srcdir)/'`libarchive/test/test_entry_strmode.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_entry_strmode.o `test -f 'libarchive/test/test_entry_strmode.c' || echo '$(srcdir)/'`libarchive/test/test_entry_strmode.c -libarchive/test/libarchive_test-test_entry_strmode.obj: libarchive/test/test_entry_strmode.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_entry_strmode.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_entry_strmode.Tpo -c -o libarchive/test/libarchive_test-test_entry_strmode.obj `if test -f 'libarchive/test/test_entry_strmode.c'; then $(CYGPATH_W) 'libarchive/test/test_entry_strmode.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_entry_strmode.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_entry_strmode.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_entry_strmode.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_entry_strmode.c' object='libarchive/test/libarchive_test-test_entry_strmode.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_entry_strmode.obj: libarchive/test/test_entry_strmode.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_entry_strmode.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_entry_strmode.Tpo -c -o libarchive/test/test-test_entry_strmode.obj `if test -f 'libarchive/test/test_entry_strmode.c'; then $(CYGPATH_W) 'libarchive/test/test_entry_strmode.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_entry_strmode.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_entry_strmode.Tpo libarchive/test/$(DEPDIR)/test-test_entry_strmode.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_entry_strmode.c' object='libarchive/test/test-test_entry_strmode.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_entry_strmode.obj `if test -f 'libarchive/test/test_entry_strmode.c'; then $(CYGPATH_W) 'libarchive/test/test_entry_strmode.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_entry_strmode.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_entry_strmode.obj `if test -f 'libarchive/test/test_entry_strmode.c'; then $(CYGPATH_W) 'libarchive/test/test_entry_strmode.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_entry_strmode.c'; fi` -libarchive/test/libarchive_test-test_extattr_freebsd.o: libarchive/test/test_extattr_freebsd.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_extattr_freebsd.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_extattr_freebsd.Tpo -c -o libarchive/test/libarchive_test-test_extattr_freebsd.o `test -f 'libarchive/test/test_extattr_freebsd.c' || echo '$(srcdir)/'`libarchive/test/test_extattr_freebsd.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_extattr_freebsd.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_extattr_freebsd.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_extattr_freebsd.c' object='libarchive/test/libarchive_test-test_extattr_freebsd.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_extattr_freebsd.o: libarchive/test/test_extattr_freebsd.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_extattr_freebsd.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_extattr_freebsd.Tpo -c -o libarchive/test/test-test_extattr_freebsd.o `test -f 'libarchive/test/test_extattr_freebsd.c' || echo '$(srcdir)/'`libarchive/test/test_extattr_freebsd.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_extattr_freebsd.Tpo libarchive/test/$(DEPDIR)/test-test_extattr_freebsd.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_extattr_freebsd.c' object='libarchive/test/test-test_extattr_freebsd.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_extattr_freebsd.o `test -f 'libarchive/test/test_extattr_freebsd.c' || echo '$(srcdir)/'`libarchive/test/test_extattr_freebsd.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_extattr_freebsd.o `test -f 'libarchive/test/test_extattr_freebsd.c' || echo '$(srcdir)/'`libarchive/test/test_extattr_freebsd.c -libarchive/test/libarchive_test-test_extattr_freebsd.obj: libarchive/test/test_extattr_freebsd.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_extattr_freebsd.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_extattr_freebsd.Tpo -c -o libarchive/test/libarchive_test-test_extattr_freebsd.obj `if test -f 'libarchive/test/test_extattr_freebsd.c'; then $(CYGPATH_W) 'libarchive/test/test_extattr_freebsd.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_extattr_freebsd.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_extattr_freebsd.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_extattr_freebsd.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_extattr_freebsd.c' object='libarchive/test/libarchive_test-test_extattr_freebsd.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_extattr_freebsd.obj: libarchive/test/test_extattr_freebsd.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_extattr_freebsd.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_extattr_freebsd.Tpo -c -o libarchive/test/test-test_extattr_freebsd.obj `if test -f 'libarchive/test/test_extattr_freebsd.c'; then $(CYGPATH_W) 'libarchive/test/test_extattr_freebsd.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_extattr_freebsd.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_extattr_freebsd.Tpo libarchive/test/$(DEPDIR)/test-test_extattr_freebsd.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_extattr_freebsd.c' object='libarchive/test/test-test_extattr_freebsd.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_extattr_freebsd.obj `if test -f 'libarchive/test/test_extattr_freebsd.c'; then $(CYGPATH_W) 'libarchive/test/test_extattr_freebsd.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_extattr_freebsd.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_extattr_freebsd.obj `if test -f 'libarchive/test/test_extattr_freebsd.c'; then $(CYGPATH_W) 'libarchive/test/test_extattr_freebsd.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_extattr_freebsd.c'; fi` -libarchive/test/libarchive_test-test_filter_count.o: libarchive/test/test_filter_count.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_filter_count.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_filter_count.Tpo -c -o libarchive/test/libarchive_test-test_filter_count.o `test -f 'libarchive/test/test_filter_count.c' || echo '$(srcdir)/'`libarchive/test/test_filter_count.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_filter_count.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_filter_count.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_filter_count.c' object='libarchive/test/libarchive_test-test_filter_count.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_filter_count.o: libarchive/test/test_filter_count.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_filter_count.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_filter_count.Tpo -c -o libarchive/test/test-test_filter_count.o `test -f 'libarchive/test/test_filter_count.c' || echo '$(srcdir)/'`libarchive/test/test_filter_count.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_filter_count.Tpo libarchive/test/$(DEPDIR)/test-test_filter_count.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_filter_count.c' object='libarchive/test/test-test_filter_count.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_filter_count.o `test -f 'libarchive/test/test_filter_count.c' || echo '$(srcdir)/'`libarchive/test/test_filter_count.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_filter_count.o `test -f 'libarchive/test/test_filter_count.c' || echo '$(srcdir)/'`libarchive/test/test_filter_count.c -libarchive/test/libarchive_test-test_filter_count.obj: libarchive/test/test_filter_count.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_filter_count.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_filter_count.Tpo -c -o libarchive/test/libarchive_test-test_filter_count.obj `if test -f 'libarchive/test/test_filter_count.c'; then $(CYGPATH_W) 'libarchive/test/test_filter_count.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_filter_count.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_filter_count.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_filter_count.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_filter_count.c' object='libarchive/test/libarchive_test-test_filter_count.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_filter_count.obj: libarchive/test/test_filter_count.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_filter_count.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_filter_count.Tpo -c -o libarchive/test/test-test_filter_count.obj `if test -f 'libarchive/test/test_filter_count.c'; then $(CYGPATH_W) 'libarchive/test/test_filter_count.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_filter_count.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_filter_count.Tpo libarchive/test/$(DEPDIR)/test-test_filter_count.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_filter_count.c' object='libarchive/test/test-test_filter_count.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_filter_count.obj `if test -f 'libarchive/test/test_filter_count.c'; then $(CYGPATH_W) 'libarchive/test/test_filter_count.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_filter_count.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_filter_count.obj `if test -f 'libarchive/test/test_filter_count.c'; then $(CYGPATH_W) 'libarchive/test/test_filter_count.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_filter_count.c'; fi` -libarchive/test/libarchive_test-test_fuzz.o: libarchive/test/test_fuzz.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_fuzz.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_fuzz.Tpo -c -o libarchive/test/libarchive_test-test_fuzz.o `test -f 'libarchive/test/test_fuzz.c' || echo '$(srcdir)/'`libarchive/test/test_fuzz.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_fuzz.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_fuzz.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_fuzz.c' object='libarchive/test/libarchive_test-test_fuzz.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_fuzz.o: libarchive/test/test_fuzz.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_fuzz.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_fuzz.Tpo -c -o libarchive/test/test-test_fuzz.o `test -f 'libarchive/test/test_fuzz.c' || echo '$(srcdir)/'`libarchive/test/test_fuzz.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_fuzz.Tpo libarchive/test/$(DEPDIR)/test-test_fuzz.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_fuzz.c' object='libarchive/test/test-test_fuzz.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_fuzz.o `test -f 'libarchive/test/test_fuzz.c' || echo '$(srcdir)/'`libarchive/test/test_fuzz.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_fuzz.o `test -f 'libarchive/test/test_fuzz.c' || echo '$(srcdir)/'`libarchive/test/test_fuzz.c -libarchive/test/libarchive_test-test_fuzz.obj: libarchive/test/test_fuzz.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_fuzz.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_fuzz.Tpo -c -o libarchive/test/libarchive_test-test_fuzz.obj `if test -f 'libarchive/test/test_fuzz.c'; then $(CYGPATH_W) 'libarchive/test/test_fuzz.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_fuzz.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_fuzz.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_fuzz.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_fuzz.c' object='libarchive/test/libarchive_test-test_fuzz.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_fuzz.obj: libarchive/test/test_fuzz.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_fuzz.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_fuzz.Tpo -c -o libarchive/test/test-test_fuzz.obj `if test -f 'libarchive/test/test_fuzz.c'; then $(CYGPATH_W) 'libarchive/test/test_fuzz.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_fuzz.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_fuzz.Tpo libarchive/test/$(DEPDIR)/test-test_fuzz.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_fuzz.c' object='libarchive/test/test-test_fuzz.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_fuzz.obj `if test -f 'libarchive/test/test_fuzz.c'; then $(CYGPATH_W) 'libarchive/test/test_fuzz.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_fuzz.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_fuzz.obj `if test -f 'libarchive/test/test_fuzz.c'; then $(CYGPATH_W) 'libarchive/test/test_fuzz.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_fuzz.c'; fi` -libarchive/test/libarchive_test-test_gnutar_filename_encoding.o: libarchive/test/test_gnutar_filename_encoding.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_gnutar_filename_encoding.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_gnutar_filename_encoding.Tpo -c -o libarchive/test/libarchive_test-test_gnutar_filename_encoding.o `test -f 'libarchive/test/test_gnutar_filename_encoding.c' || echo '$(srcdir)/'`libarchive/test/test_gnutar_filename_encoding.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_gnutar_filename_encoding.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_gnutar_filename_encoding.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_gnutar_filename_encoding.c' object='libarchive/test/libarchive_test-test_gnutar_filename_encoding.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_gnutar_filename_encoding.o: libarchive/test/test_gnutar_filename_encoding.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_gnutar_filename_encoding.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_gnutar_filename_encoding.Tpo -c -o libarchive/test/test-test_gnutar_filename_encoding.o `test -f 'libarchive/test/test_gnutar_filename_encoding.c' || echo '$(srcdir)/'`libarchive/test/test_gnutar_filename_encoding.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_gnutar_filename_encoding.Tpo libarchive/test/$(DEPDIR)/test-test_gnutar_filename_encoding.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_gnutar_filename_encoding.c' object='libarchive/test/test-test_gnutar_filename_encoding.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_gnutar_filename_encoding.o `test -f 'libarchive/test/test_gnutar_filename_encoding.c' || echo '$(srcdir)/'`libarchive/test/test_gnutar_filename_encoding.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_gnutar_filename_encoding.o `test -f 'libarchive/test/test_gnutar_filename_encoding.c' || echo '$(srcdir)/'`libarchive/test/test_gnutar_filename_encoding.c -libarchive/test/libarchive_test-test_gnutar_filename_encoding.obj: libarchive/test/test_gnutar_filename_encoding.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_gnutar_filename_encoding.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_gnutar_filename_encoding.Tpo -c -o libarchive/test/libarchive_test-test_gnutar_filename_encoding.obj `if test -f 'libarchive/test/test_gnutar_filename_encoding.c'; then $(CYGPATH_W) 'libarchive/test/test_gnutar_filename_encoding.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_gnutar_filename_encoding.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_gnutar_filename_encoding.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_gnutar_filename_encoding.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_gnutar_filename_encoding.c' object='libarchive/test/libarchive_test-test_gnutar_filename_encoding.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_gnutar_filename_encoding.obj: libarchive/test/test_gnutar_filename_encoding.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_gnutar_filename_encoding.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_gnutar_filename_encoding.Tpo -c -o libarchive/test/test-test_gnutar_filename_encoding.obj `if test -f 'libarchive/test/test_gnutar_filename_encoding.c'; then $(CYGPATH_W) 'libarchive/test/test_gnutar_filename_encoding.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_gnutar_filename_encoding.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_gnutar_filename_encoding.Tpo libarchive/test/$(DEPDIR)/test-test_gnutar_filename_encoding.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_gnutar_filename_encoding.c' object='libarchive/test/test-test_gnutar_filename_encoding.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_gnutar_filename_encoding.obj `if test -f 'libarchive/test/test_gnutar_filename_encoding.c'; then $(CYGPATH_W) 'libarchive/test/test_gnutar_filename_encoding.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_gnutar_filename_encoding.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_gnutar_filename_encoding.obj `if test -f 'libarchive/test/test_gnutar_filename_encoding.c'; then $(CYGPATH_W) 'libarchive/test/test_gnutar_filename_encoding.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_gnutar_filename_encoding.c'; fi` -libarchive/test/libarchive_test-test_link_resolver.o: libarchive/test/test_link_resolver.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_link_resolver.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_link_resolver.Tpo -c -o libarchive/test/libarchive_test-test_link_resolver.o `test -f 'libarchive/test/test_link_resolver.c' || echo '$(srcdir)/'`libarchive/test/test_link_resolver.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_link_resolver.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_link_resolver.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_link_resolver.c' object='libarchive/test/libarchive_test-test_link_resolver.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_link_resolver.o: libarchive/test/test_link_resolver.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_link_resolver.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_link_resolver.Tpo -c -o libarchive/test/test-test_link_resolver.o `test -f 'libarchive/test/test_link_resolver.c' || echo '$(srcdir)/'`libarchive/test/test_link_resolver.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_link_resolver.Tpo libarchive/test/$(DEPDIR)/test-test_link_resolver.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_link_resolver.c' object='libarchive/test/test-test_link_resolver.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_link_resolver.o `test -f 'libarchive/test/test_link_resolver.c' || echo '$(srcdir)/'`libarchive/test/test_link_resolver.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_link_resolver.o `test -f 'libarchive/test/test_link_resolver.c' || echo '$(srcdir)/'`libarchive/test/test_link_resolver.c -libarchive/test/libarchive_test-test_link_resolver.obj: libarchive/test/test_link_resolver.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_link_resolver.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_link_resolver.Tpo -c -o libarchive/test/libarchive_test-test_link_resolver.obj `if test -f 'libarchive/test/test_link_resolver.c'; then $(CYGPATH_W) 'libarchive/test/test_link_resolver.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_link_resolver.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_link_resolver.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_link_resolver.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_link_resolver.c' object='libarchive/test/libarchive_test-test_link_resolver.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_link_resolver.obj: libarchive/test/test_link_resolver.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_link_resolver.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_link_resolver.Tpo -c -o libarchive/test/test-test_link_resolver.obj `if test -f 'libarchive/test/test_link_resolver.c'; then $(CYGPATH_W) 'libarchive/test/test_link_resolver.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_link_resolver.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_link_resolver.Tpo libarchive/test/$(DEPDIR)/test-test_link_resolver.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_link_resolver.c' object='libarchive/test/test-test_link_resolver.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_link_resolver.obj `if test -f 'libarchive/test/test_link_resolver.c'; then $(CYGPATH_W) 'libarchive/test/test_link_resolver.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_link_resolver.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_link_resolver.obj `if test -f 'libarchive/test/test_link_resolver.c'; then $(CYGPATH_W) 'libarchive/test/test_link_resolver.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_link_resolver.c'; fi` -libarchive/test/libarchive_test-test_open_failure.o: libarchive/test/test_open_failure.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_open_failure.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_open_failure.Tpo -c -o libarchive/test/libarchive_test-test_open_failure.o `test -f 'libarchive/test/test_open_failure.c' || echo '$(srcdir)/'`libarchive/test/test_open_failure.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_open_failure.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_open_failure.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_open_failure.c' object='libarchive/test/libarchive_test-test_open_failure.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_open_failure.o: libarchive/test/test_open_failure.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_open_failure.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_open_failure.Tpo -c -o libarchive/test/test-test_open_failure.o `test -f 'libarchive/test/test_open_failure.c' || echo '$(srcdir)/'`libarchive/test/test_open_failure.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_open_failure.Tpo libarchive/test/$(DEPDIR)/test-test_open_failure.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_open_failure.c' object='libarchive/test/test-test_open_failure.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_open_failure.o `test -f 'libarchive/test/test_open_failure.c' || echo '$(srcdir)/'`libarchive/test/test_open_failure.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_open_failure.o `test -f 'libarchive/test/test_open_failure.c' || echo '$(srcdir)/'`libarchive/test/test_open_failure.c -libarchive/test/libarchive_test-test_open_failure.obj: libarchive/test/test_open_failure.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_open_failure.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_open_failure.Tpo -c -o libarchive/test/libarchive_test-test_open_failure.obj `if test -f 'libarchive/test/test_open_failure.c'; then $(CYGPATH_W) 'libarchive/test/test_open_failure.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_open_failure.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_open_failure.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_open_failure.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_open_failure.c' object='libarchive/test/libarchive_test-test_open_failure.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_open_failure.obj: libarchive/test/test_open_failure.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_open_failure.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_open_failure.Tpo -c -o libarchive/test/test-test_open_failure.obj `if test -f 'libarchive/test/test_open_failure.c'; then $(CYGPATH_W) 'libarchive/test/test_open_failure.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_open_failure.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_open_failure.Tpo libarchive/test/$(DEPDIR)/test-test_open_failure.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_open_failure.c' object='libarchive/test/test-test_open_failure.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_open_failure.obj `if test -f 'libarchive/test/test_open_failure.c'; then $(CYGPATH_W) 'libarchive/test/test_open_failure.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_open_failure.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_open_failure.obj `if test -f 'libarchive/test/test_open_failure.c'; then $(CYGPATH_W) 'libarchive/test/test_open_failure.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_open_failure.c'; fi` -libarchive/test/libarchive_test-test_open_fd.o: libarchive/test/test_open_fd.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_open_fd.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_open_fd.Tpo -c -o libarchive/test/libarchive_test-test_open_fd.o `test -f 'libarchive/test/test_open_fd.c' || echo '$(srcdir)/'`libarchive/test/test_open_fd.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_open_fd.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_open_fd.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_open_fd.c' object='libarchive/test/libarchive_test-test_open_fd.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_open_fd.o: libarchive/test/test_open_fd.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_open_fd.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_open_fd.Tpo -c -o libarchive/test/test-test_open_fd.o `test -f 'libarchive/test/test_open_fd.c' || echo '$(srcdir)/'`libarchive/test/test_open_fd.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_open_fd.Tpo libarchive/test/$(DEPDIR)/test-test_open_fd.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_open_fd.c' object='libarchive/test/test-test_open_fd.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_open_fd.o `test -f 'libarchive/test/test_open_fd.c' || echo '$(srcdir)/'`libarchive/test/test_open_fd.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_open_fd.o `test -f 'libarchive/test/test_open_fd.c' || echo '$(srcdir)/'`libarchive/test/test_open_fd.c -libarchive/test/libarchive_test-test_open_fd.obj: libarchive/test/test_open_fd.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_open_fd.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_open_fd.Tpo -c -o libarchive/test/libarchive_test-test_open_fd.obj `if test -f 'libarchive/test/test_open_fd.c'; then $(CYGPATH_W) 'libarchive/test/test_open_fd.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_open_fd.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_open_fd.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_open_fd.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_open_fd.c' object='libarchive/test/libarchive_test-test_open_fd.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_open_fd.obj: libarchive/test/test_open_fd.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_open_fd.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_open_fd.Tpo -c -o libarchive/test/test-test_open_fd.obj `if test -f 'libarchive/test/test_open_fd.c'; then $(CYGPATH_W) 'libarchive/test/test_open_fd.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_open_fd.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_open_fd.Tpo libarchive/test/$(DEPDIR)/test-test_open_fd.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_open_fd.c' object='libarchive/test/test-test_open_fd.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_open_fd.obj `if test -f 'libarchive/test/test_open_fd.c'; then $(CYGPATH_W) 'libarchive/test/test_open_fd.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_open_fd.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_open_fd.obj `if test -f 'libarchive/test/test_open_fd.c'; then $(CYGPATH_W) 'libarchive/test/test_open_fd.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_open_fd.c'; fi` -libarchive/test/libarchive_test-test_open_file.o: libarchive/test/test_open_file.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_open_file.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_open_file.Tpo -c -o libarchive/test/libarchive_test-test_open_file.o `test -f 'libarchive/test/test_open_file.c' || echo '$(srcdir)/'`libarchive/test/test_open_file.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_open_file.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_open_file.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_open_file.c' object='libarchive/test/libarchive_test-test_open_file.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_open_file.o: libarchive/test/test_open_file.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_open_file.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_open_file.Tpo -c -o libarchive/test/test-test_open_file.o `test -f 'libarchive/test/test_open_file.c' || echo '$(srcdir)/'`libarchive/test/test_open_file.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_open_file.Tpo libarchive/test/$(DEPDIR)/test-test_open_file.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_open_file.c' object='libarchive/test/test-test_open_file.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_open_file.o `test -f 'libarchive/test/test_open_file.c' || echo '$(srcdir)/'`libarchive/test/test_open_file.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_open_file.o `test -f 'libarchive/test/test_open_file.c' || echo '$(srcdir)/'`libarchive/test/test_open_file.c -libarchive/test/libarchive_test-test_open_file.obj: libarchive/test/test_open_file.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_open_file.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_open_file.Tpo -c -o libarchive/test/libarchive_test-test_open_file.obj `if test -f 'libarchive/test/test_open_file.c'; then $(CYGPATH_W) 'libarchive/test/test_open_file.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_open_file.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_open_file.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_open_file.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_open_file.c' object='libarchive/test/libarchive_test-test_open_file.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_open_file.obj: libarchive/test/test_open_file.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_open_file.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_open_file.Tpo -c -o libarchive/test/test-test_open_file.obj `if test -f 'libarchive/test/test_open_file.c'; then $(CYGPATH_W) 'libarchive/test/test_open_file.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_open_file.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_open_file.Tpo libarchive/test/$(DEPDIR)/test-test_open_file.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_open_file.c' object='libarchive/test/test-test_open_file.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_open_file.obj `if test -f 'libarchive/test/test_open_file.c'; then $(CYGPATH_W) 'libarchive/test/test_open_file.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_open_file.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_open_file.obj `if test -f 'libarchive/test/test_open_file.c'; then $(CYGPATH_W) 'libarchive/test/test_open_file.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_open_file.c'; fi` -libarchive/test/libarchive_test-test_open_filename.o: libarchive/test/test_open_filename.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_open_filename.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_open_filename.Tpo -c -o libarchive/test/libarchive_test-test_open_filename.o `test -f 'libarchive/test/test_open_filename.c' || echo '$(srcdir)/'`libarchive/test/test_open_filename.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_open_filename.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_open_filename.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_open_filename.c' object='libarchive/test/libarchive_test-test_open_filename.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_open_filename.o: libarchive/test/test_open_filename.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_open_filename.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_open_filename.Tpo -c -o libarchive/test/test-test_open_filename.o `test -f 'libarchive/test/test_open_filename.c' || echo '$(srcdir)/'`libarchive/test/test_open_filename.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_open_filename.Tpo libarchive/test/$(DEPDIR)/test-test_open_filename.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_open_filename.c' object='libarchive/test/test-test_open_filename.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_open_filename.o `test -f 'libarchive/test/test_open_filename.c' || echo '$(srcdir)/'`libarchive/test/test_open_filename.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_open_filename.o `test -f 'libarchive/test/test_open_filename.c' || echo '$(srcdir)/'`libarchive/test/test_open_filename.c -libarchive/test/libarchive_test-test_open_filename.obj: libarchive/test/test_open_filename.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_open_filename.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_open_filename.Tpo -c -o libarchive/test/libarchive_test-test_open_filename.obj `if test -f 'libarchive/test/test_open_filename.c'; then $(CYGPATH_W) 'libarchive/test/test_open_filename.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_open_filename.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_open_filename.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_open_filename.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_open_filename.c' object='libarchive/test/libarchive_test-test_open_filename.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_open_filename.obj: libarchive/test/test_open_filename.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_open_filename.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_open_filename.Tpo -c -o libarchive/test/test-test_open_filename.obj `if test -f 'libarchive/test/test_open_filename.c'; then $(CYGPATH_W) 'libarchive/test/test_open_filename.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_open_filename.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_open_filename.Tpo libarchive/test/$(DEPDIR)/test-test_open_filename.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_open_filename.c' object='libarchive/test/test-test_open_filename.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_open_filename.obj `if test -f 'libarchive/test/test_open_filename.c'; then $(CYGPATH_W) 'libarchive/test/test_open_filename.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_open_filename.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_open_filename.obj `if test -f 'libarchive/test/test_open_filename.c'; then $(CYGPATH_W) 'libarchive/test/test_open_filename.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_open_filename.c'; fi` -libarchive/test/libarchive_test-test_pax_filename_encoding.o: libarchive/test/test_pax_filename_encoding.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_pax_filename_encoding.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_pax_filename_encoding.Tpo -c -o libarchive/test/libarchive_test-test_pax_filename_encoding.o `test -f 'libarchive/test/test_pax_filename_encoding.c' || echo '$(srcdir)/'`libarchive/test/test_pax_filename_encoding.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_pax_filename_encoding.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_pax_filename_encoding.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_pax_filename_encoding.c' object='libarchive/test/libarchive_test-test_pax_filename_encoding.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_pax_filename_encoding.o: libarchive/test/test_pax_filename_encoding.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_pax_filename_encoding.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_pax_filename_encoding.Tpo -c -o libarchive/test/test-test_pax_filename_encoding.o `test -f 'libarchive/test/test_pax_filename_encoding.c' || echo '$(srcdir)/'`libarchive/test/test_pax_filename_encoding.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_pax_filename_encoding.Tpo libarchive/test/$(DEPDIR)/test-test_pax_filename_encoding.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_pax_filename_encoding.c' object='libarchive/test/test-test_pax_filename_encoding.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_pax_filename_encoding.o `test -f 'libarchive/test/test_pax_filename_encoding.c' || echo '$(srcdir)/'`libarchive/test/test_pax_filename_encoding.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_pax_filename_encoding.o `test -f 'libarchive/test/test_pax_filename_encoding.c' || echo '$(srcdir)/'`libarchive/test/test_pax_filename_encoding.c -libarchive/test/libarchive_test-test_pax_filename_encoding.obj: libarchive/test/test_pax_filename_encoding.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_pax_filename_encoding.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_pax_filename_encoding.Tpo -c -o libarchive/test/libarchive_test-test_pax_filename_encoding.obj `if test -f 'libarchive/test/test_pax_filename_encoding.c'; then $(CYGPATH_W) 'libarchive/test/test_pax_filename_encoding.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_pax_filename_encoding.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_pax_filename_encoding.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_pax_filename_encoding.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_pax_filename_encoding.c' object='libarchive/test/libarchive_test-test_pax_filename_encoding.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_pax_filename_encoding.obj: libarchive/test/test_pax_filename_encoding.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_pax_filename_encoding.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_pax_filename_encoding.Tpo -c -o libarchive/test/test-test_pax_filename_encoding.obj `if test -f 'libarchive/test/test_pax_filename_encoding.c'; then $(CYGPATH_W) 'libarchive/test/test_pax_filename_encoding.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_pax_filename_encoding.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_pax_filename_encoding.Tpo libarchive/test/$(DEPDIR)/test-test_pax_filename_encoding.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_pax_filename_encoding.c' object='libarchive/test/test-test_pax_filename_encoding.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_pax_filename_encoding.obj `if test -f 'libarchive/test/test_pax_filename_encoding.c'; then $(CYGPATH_W) 'libarchive/test/test_pax_filename_encoding.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_pax_filename_encoding.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_pax_filename_encoding.obj `if test -f 'libarchive/test/test_pax_filename_encoding.c'; then $(CYGPATH_W) 'libarchive/test/test_pax_filename_encoding.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_pax_filename_encoding.c'; fi` -libarchive/test/libarchive_test-test_pax_xattr_header.o: libarchive/test/test_pax_xattr_header.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_pax_xattr_header.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_pax_xattr_header.Tpo -c -o libarchive/test/libarchive_test-test_pax_xattr_header.o `test -f 'libarchive/test/test_pax_xattr_header.c' || echo '$(srcdir)/'`libarchive/test/test_pax_xattr_header.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_pax_xattr_header.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_pax_xattr_header.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_pax_xattr_header.c' object='libarchive/test/libarchive_test-test_pax_xattr_header.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_pax_xattr_header.o: libarchive/test/test_pax_xattr_header.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_pax_xattr_header.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_pax_xattr_header.Tpo -c -o libarchive/test/test-test_pax_xattr_header.o `test -f 'libarchive/test/test_pax_xattr_header.c' || echo '$(srcdir)/'`libarchive/test/test_pax_xattr_header.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_pax_xattr_header.Tpo libarchive/test/$(DEPDIR)/test-test_pax_xattr_header.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_pax_xattr_header.c' object='libarchive/test/test-test_pax_xattr_header.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_pax_xattr_header.o `test -f 'libarchive/test/test_pax_xattr_header.c' || echo '$(srcdir)/'`libarchive/test/test_pax_xattr_header.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_pax_xattr_header.o `test -f 'libarchive/test/test_pax_xattr_header.c' || echo '$(srcdir)/'`libarchive/test/test_pax_xattr_header.c -libarchive/test/libarchive_test-test_pax_xattr_header.obj: libarchive/test/test_pax_xattr_header.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_pax_xattr_header.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_pax_xattr_header.Tpo -c -o libarchive/test/libarchive_test-test_pax_xattr_header.obj `if test -f 'libarchive/test/test_pax_xattr_header.c'; then $(CYGPATH_W) 'libarchive/test/test_pax_xattr_header.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_pax_xattr_header.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_pax_xattr_header.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_pax_xattr_header.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_pax_xattr_header.c' object='libarchive/test/libarchive_test-test_pax_xattr_header.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_pax_xattr_header.obj: libarchive/test/test_pax_xattr_header.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_pax_xattr_header.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_pax_xattr_header.Tpo -c -o libarchive/test/test-test_pax_xattr_header.obj `if test -f 'libarchive/test/test_pax_xattr_header.c'; then $(CYGPATH_W) 'libarchive/test/test_pax_xattr_header.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_pax_xattr_header.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_pax_xattr_header.Tpo libarchive/test/$(DEPDIR)/test-test_pax_xattr_header.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_pax_xattr_header.c' object='libarchive/test/test-test_pax_xattr_header.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_pax_xattr_header.obj `if test -f 'libarchive/test/test_pax_xattr_header.c'; then $(CYGPATH_W) 'libarchive/test/test_pax_xattr_header.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_pax_xattr_header.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_pax_xattr_header.obj `if test -f 'libarchive/test/test_pax_xattr_header.c'; then $(CYGPATH_W) 'libarchive/test/test_pax_xattr_header.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_pax_xattr_header.c'; fi` -libarchive/test/libarchive_test-test_read_data_large.o: libarchive/test/test_read_data_large.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_data_large.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_data_large.Tpo -c -o libarchive/test/libarchive_test-test_read_data_large.o `test -f 'libarchive/test/test_read_data_large.c' || echo '$(srcdir)/'`libarchive/test/test_read_data_large.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_data_large.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_data_large.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_data_large.c' object='libarchive/test/libarchive_test-test_read_data_large.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_data_large.o: libarchive/test/test_read_data_large.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_data_large.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_data_large.Tpo -c -o libarchive/test/test-test_read_data_large.o `test -f 'libarchive/test/test_read_data_large.c' || echo '$(srcdir)/'`libarchive/test/test_read_data_large.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_data_large.Tpo libarchive/test/$(DEPDIR)/test-test_read_data_large.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_data_large.c' object='libarchive/test/test-test_read_data_large.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_data_large.o `test -f 'libarchive/test/test_read_data_large.c' || echo '$(srcdir)/'`libarchive/test/test_read_data_large.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_data_large.o `test -f 'libarchive/test/test_read_data_large.c' || echo '$(srcdir)/'`libarchive/test/test_read_data_large.c -libarchive/test/libarchive_test-test_read_data_large.obj: libarchive/test/test_read_data_large.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_data_large.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_data_large.Tpo -c -o libarchive/test/libarchive_test-test_read_data_large.obj `if test -f 'libarchive/test/test_read_data_large.c'; then $(CYGPATH_W) 'libarchive/test/test_read_data_large.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_data_large.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_data_large.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_data_large.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_data_large.c' object='libarchive/test/libarchive_test-test_read_data_large.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_data_large.obj: libarchive/test/test_read_data_large.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_data_large.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_data_large.Tpo -c -o libarchive/test/test-test_read_data_large.obj `if test -f 'libarchive/test/test_read_data_large.c'; then $(CYGPATH_W) 'libarchive/test/test_read_data_large.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_data_large.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_data_large.Tpo libarchive/test/$(DEPDIR)/test-test_read_data_large.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_data_large.c' object='libarchive/test/test-test_read_data_large.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_data_large.obj `if test -f 'libarchive/test/test_read_data_large.c'; then $(CYGPATH_W) 'libarchive/test/test_read_data_large.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_data_large.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_data_large.obj `if test -f 'libarchive/test/test_read_data_large.c'; then $(CYGPATH_W) 'libarchive/test/test_read_data_large.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_data_large.c'; fi` -libarchive/test/libarchive_test-test_read_disk.o: libarchive/test/test_read_disk.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_disk.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_disk.Tpo -c -o libarchive/test/libarchive_test-test_read_disk.o `test -f 'libarchive/test/test_read_disk.c' || echo '$(srcdir)/'`libarchive/test/test_read_disk.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_disk.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_disk.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_disk.c' object='libarchive/test/libarchive_test-test_read_disk.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_disk.o: libarchive/test/test_read_disk.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_disk.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_disk.Tpo -c -o libarchive/test/test-test_read_disk.o `test -f 'libarchive/test/test_read_disk.c' || echo '$(srcdir)/'`libarchive/test/test_read_disk.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_disk.Tpo libarchive/test/$(DEPDIR)/test-test_read_disk.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_disk.c' object='libarchive/test/test-test_read_disk.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_disk.o `test -f 'libarchive/test/test_read_disk.c' || echo '$(srcdir)/'`libarchive/test/test_read_disk.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_disk.o `test -f 'libarchive/test/test_read_disk.c' || echo '$(srcdir)/'`libarchive/test/test_read_disk.c -libarchive/test/libarchive_test-test_read_disk.obj: libarchive/test/test_read_disk.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_disk.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_disk.Tpo -c -o libarchive/test/libarchive_test-test_read_disk.obj `if test -f 'libarchive/test/test_read_disk.c'; then $(CYGPATH_W) 'libarchive/test/test_read_disk.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_disk.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_disk.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_disk.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_disk.c' object='libarchive/test/libarchive_test-test_read_disk.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_disk.obj: libarchive/test/test_read_disk.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_disk.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_disk.Tpo -c -o libarchive/test/test-test_read_disk.obj `if test -f 'libarchive/test/test_read_disk.c'; then $(CYGPATH_W) 'libarchive/test/test_read_disk.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_disk.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_disk.Tpo libarchive/test/$(DEPDIR)/test-test_read_disk.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_disk.c' object='libarchive/test/test-test_read_disk.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_disk.obj `if test -f 'libarchive/test/test_read_disk.c'; then $(CYGPATH_W) 'libarchive/test/test_read_disk.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_disk.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_disk.obj `if test -f 'libarchive/test/test_read_disk.c'; then $(CYGPATH_W) 'libarchive/test/test_read_disk.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_disk.c'; fi` -libarchive/test/libarchive_test-test_read_disk_directory_traversals.o: libarchive/test/test_read_disk_directory_traversals.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_disk_directory_traversals.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_disk_directory_traversals.Tpo -c -o libarchive/test/libarchive_test-test_read_disk_directory_traversals.o `test -f 'libarchive/test/test_read_disk_directory_traversals.c' || echo '$(srcdir)/'`libarchive/test/test_read_disk_directory_traversals.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_disk_directory_traversals.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_disk_directory_traversals.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_disk_directory_traversals.c' object='libarchive/test/libarchive_test-test_read_disk_directory_traversals.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_disk_directory_traversals.o: libarchive/test/test_read_disk_directory_traversals.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_disk_directory_traversals.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_disk_directory_traversals.Tpo -c -o libarchive/test/test-test_read_disk_directory_traversals.o `test -f 'libarchive/test/test_read_disk_directory_traversals.c' || echo '$(srcdir)/'`libarchive/test/test_read_disk_directory_traversals.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_disk_directory_traversals.Tpo libarchive/test/$(DEPDIR)/test-test_read_disk_directory_traversals.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_disk_directory_traversals.c' object='libarchive/test/test-test_read_disk_directory_traversals.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_disk_directory_traversals.o `test -f 'libarchive/test/test_read_disk_directory_traversals.c' || echo '$(srcdir)/'`libarchive/test/test_read_disk_directory_traversals.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_disk_directory_traversals.o `test -f 'libarchive/test/test_read_disk_directory_traversals.c' || echo '$(srcdir)/'`libarchive/test/test_read_disk_directory_traversals.c -libarchive/test/libarchive_test-test_read_disk_directory_traversals.obj: libarchive/test/test_read_disk_directory_traversals.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_disk_directory_traversals.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_disk_directory_traversals.Tpo -c -o libarchive/test/libarchive_test-test_read_disk_directory_traversals.obj `if test -f 'libarchive/test/test_read_disk_directory_traversals.c'; then $(CYGPATH_W) 'libarchive/test/test_read_disk_directory_traversals.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_disk_directory_traversals.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_disk_directory_traversals.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_disk_directory_traversals.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_disk_directory_traversals.c' object='libarchive/test/libarchive_test-test_read_disk_directory_traversals.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_disk_directory_traversals.obj: libarchive/test/test_read_disk_directory_traversals.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_disk_directory_traversals.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_disk_directory_traversals.Tpo -c -o libarchive/test/test-test_read_disk_directory_traversals.obj `if test -f 'libarchive/test/test_read_disk_directory_traversals.c'; then $(CYGPATH_W) 'libarchive/test/test_read_disk_directory_traversals.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_disk_directory_traversals.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_disk_directory_traversals.Tpo libarchive/test/$(DEPDIR)/test-test_read_disk_directory_traversals.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_disk_directory_traversals.c' object='libarchive/test/test-test_read_disk_directory_traversals.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_disk_directory_traversals.obj `if test -f 'libarchive/test/test_read_disk_directory_traversals.c'; then $(CYGPATH_W) 'libarchive/test/test_read_disk_directory_traversals.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_disk_directory_traversals.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_disk_directory_traversals.obj `if test -f 'libarchive/test/test_read_disk_directory_traversals.c'; then $(CYGPATH_W) 'libarchive/test/test_read_disk_directory_traversals.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_disk_directory_traversals.c'; fi` -libarchive/test/libarchive_test-test_read_disk_entry_from_file.o: libarchive/test/test_read_disk_entry_from_file.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_disk_entry_from_file.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_disk_entry_from_file.Tpo -c -o libarchive/test/libarchive_test-test_read_disk_entry_from_file.o `test -f 'libarchive/test/test_read_disk_entry_from_file.c' || echo '$(srcdir)/'`libarchive/test/test_read_disk_entry_from_file.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_disk_entry_from_file.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_disk_entry_from_file.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_disk_entry_from_file.c' object='libarchive/test/libarchive_test-test_read_disk_entry_from_file.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_disk_entry_from_file.o: libarchive/test/test_read_disk_entry_from_file.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_disk_entry_from_file.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_disk_entry_from_file.Tpo -c -o libarchive/test/test-test_read_disk_entry_from_file.o `test -f 'libarchive/test/test_read_disk_entry_from_file.c' || echo '$(srcdir)/'`libarchive/test/test_read_disk_entry_from_file.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_disk_entry_from_file.Tpo libarchive/test/$(DEPDIR)/test-test_read_disk_entry_from_file.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_disk_entry_from_file.c' object='libarchive/test/test-test_read_disk_entry_from_file.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_disk_entry_from_file.o `test -f 'libarchive/test/test_read_disk_entry_from_file.c' || echo '$(srcdir)/'`libarchive/test/test_read_disk_entry_from_file.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_disk_entry_from_file.o `test -f 'libarchive/test/test_read_disk_entry_from_file.c' || echo '$(srcdir)/'`libarchive/test/test_read_disk_entry_from_file.c -libarchive/test/libarchive_test-test_read_disk_entry_from_file.obj: libarchive/test/test_read_disk_entry_from_file.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_disk_entry_from_file.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_disk_entry_from_file.Tpo -c -o libarchive/test/libarchive_test-test_read_disk_entry_from_file.obj `if test -f 'libarchive/test/test_read_disk_entry_from_file.c'; then $(CYGPATH_W) 'libarchive/test/test_read_disk_entry_from_file.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_disk_entry_from_file.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_disk_entry_from_file.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_disk_entry_from_file.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_disk_entry_from_file.c' object='libarchive/test/libarchive_test-test_read_disk_entry_from_file.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_disk_entry_from_file.obj: libarchive/test/test_read_disk_entry_from_file.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_disk_entry_from_file.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_disk_entry_from_file.Tpo -c -o libarchive/test/test-test_read_disk_entry_from_file.obj `if test -f 'libarchive/test/test_read_disk_entry_from_file.c'; then $(CYGPATH_W) 'libarchive/test/test_read_disk_entry_from_file.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_disk_entry_from_file.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_disk_entry_from_file.Tpo libarchive/test/$(DEPDIR)/test-test_read_disk_entry_from_file.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_disk_entry_from_file.c' object='libarchive/test/test-test_read_disk_entry_from_file.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_disk_entry_from_file.obj `if test -f 'libarchive/test/test_read_disk_entry_from_file.c'; then $(CYGPATH_W) 'libarchive/test/test_read_disk_entry_from_file.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_disk_entry_from_file.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_disk_entry_from_file.obj `if test -f 'libarchive/test/test_read_disk_entry_from_file.c'; then $(CYGPATH_W) 'libarchive/test/test_read_disk_entry_from_file.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_disk_entry_from_file.c'; fi` -libarchive/test/libarchive_test-test_read_extract.o: libarchive/test/test_read_extract.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_extract.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_extract.Tpo -c -o libarchive/test/libarchive_test-test_read_extract.o `test -f 'libarchive/test/test_read_extract.c' || echo '$(srcdir)/'`libarchive/test/test_read_extract.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_extract.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_extract.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_extract.c' object='libarchive/test/libarchive_test-test_read_extract.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_extract.o: libarchive/test/test_read_extract.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_extract.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_extract.Tpo -c -o libarchive/test/test-test_read_extract.o `test -f 'libarchive/test/test_read_extract.c' || echo '$(srcdir)/'`libarchive/test/test_read_extract.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_extract.Tpo libarchive/test/$(DEPDIR)/test-test_read_extract.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_extract.c' object='libarchive/test/test-test_read_extract.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_extract.o `test -f 'libarchive/test/test_read_extract.c' || echo '$(srcdir)/'`libarchive/test/test_read_extract.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_extract.o `test -f 'libarchive/test/test_read_extract.c' || echo '$(srcdir)/'`libarchive/test/test_read_extract.c -libarchive/test/libarchive_test-test_read_extract.obj: libarchive/test/test_read_extract.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_extract.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_extract.Tpo -c -o libarchive/test/libarchive_test-test_read_extract.obj `if test -f 'libarchive/test/test_read_extract.c'; then $(CYGPATH_W) 'libarchive/test/test_read_extract.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_extract.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_extract.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_extract.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_extract.c' object='libarchive/test/libarchive_test-test_read_extract.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_extract.obj: libarchive/test/test_read_extract.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_extract.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_extract.Tpo -c -o libarchive/test/test-test_read_extract.obj `if test -f 'libarchive/test/test_read_extract.c'; then $(CYGPATH_W) 'libarchive/test/test_read_extract.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_extract.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_extract.Tpo libarchive/test/$(DEPDIR)/test-test_read_extract.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_extract.c' object='libarchive/test/test-test_read_extract.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_extract.obj `if test -f 'libarchive/test/test_read_extract.c'; then $(CYGPATH_W) 'libarchive/test/test_read_extract.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_extract.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_extract.obj `if test -f 'libarchive/test/test_read_extract.c'; then $(CYGPATH_W) 'libarchive/test/test_read_extract.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_extract.c'; fi` -libarchive/test/libarchive_test-test_read_file_nonexistent.o: libarchive/test/test_read_file_nonexistent.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_file_nonexistent.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_file_nonexistent.Tpo -c -o libarchive/test/libarchive_test-test_read_file_nonexistent.o `test -f 'libarchive/test/test_read_file_nonexistent.c' || echo '$(srcdir)/'`libarchive/test/test_read_file_nonexistent.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_file_nonexistent.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_file_nonexistent.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_file_nonexistent.c' object='libarchive/test/libarchive_test-test_read_file_nonexistent.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_file_nonexistent.o: libarchive/test/test_read_file_nonexistent.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_file_nonexistent.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_file_nonexistent.Tpo -c -o libarchive/test/test-test_read_file_nonexistent.o `test -f 'libarchive/test/test_read_file_nonexistent.c' || echo '$(srcdir)/'`libarchive/test/test_read_file_nonexistent.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_file_nonexistent.Tpo libarchive/test/$(DEPDIR)/test-test_read_file_nonexistent.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_file_nonexistent.c' object='libarchive/test/test-test_read_file_nonexistent.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_file_nonexistent.o `test -f 'libarchive/test/test_read_file_nonexistent.c' || echo '$(srcdir)/'`libarchive/test/test_read_file_nonexistent.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_file_nonexistent.o `test -f 'libarchive/test/test_read_file_nonexistent.c' || echo '$(srcdir)/'`libarchive/test/test_read_file_nonexistent.c -libarchive/test/libarchive_test-test_read_file_nonexistent.obj: libarchive/test/test_read_file_nonexistent.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_file_nonexistent.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_file_nonexistent.Tpo -c -o libarchive/test/libarchive_test-test_read_file_nonexistent.obj `if test -f 'libarchive/test/test_read_file_nonexistent.c'; then $(CYGPATH_W) 'libarchive/test/test_read_file_nonexistent.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_file_nonexistent.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_file_nonexistent.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_file_nonexistent.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_file_nonexistent.c' object='libarchive/test/libarchive_test-test_read_file_nonexistent.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_file_nonexistent.obj: libarchive/test/test_read_file_nonexistent.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_file_nonexistent.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_file_nonexistent.Tpo -c -o libarchive/test/test-test_read_file_nonexistent.obj `if test -f 'libarchive/test/test_read_file_nonexistent.c'; then $(CYGPATH_W) 'libarchive/test/test_read_file_nonexistent.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_file_nonexistent.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_file_nonexistent.Tpo libarchive/test/$(DEPDIR)/test-test_read_file_nonexistent.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_file_nonexistent.c' object='libarchive/test/test-test_read_file_nonexistent.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_file_nonexistent.obj `if test -f 'libarchive/test/test_read_file_nonexistent.c'; then $(CYGPATH_W) 'libarchive/test/test_read_file_nonexistent.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_file_nonexistent.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_file_nonexistent.obj `if test -f 'libarchive/test/test_read_file_nonexistent.c'; then $(CYGPATH_W) 'libarchive/test/test_read_file_nonexistent.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_file_nonexistent.c'; fi` -libarchive/test/libarchive_test-test_read_filter_compress.o: libarchive/test/test_read_filter_compress.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_filter_compress.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_filter_compress.Tpo -c -o libarchive/test/libarchive_test-test_read_filter_compress.o `test -f 'libarchive/test/test_read_filter_compress.c' || echo '$(srcdir)/'`libarchive/test/test_read_filter_compress.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_filter_compress.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_filter_compress.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_filter_compress.c' object='libarchive/test/libarchive_test-test_read_filter_compress.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_filter_compress.o: libarchive/test/test_read_filter_compress.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_filter_compress.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_filter_compress.Tpo -c -o libarchive/test/test-test_read_filter_compress.o `test -f 'libarchive/test/test_read_filter_compress.c' || echo '$(srcdir)/'`libarchive/test/test_read_filter_compress.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_filter_compress.Tpo libarchive/test/$(DEPDIR)/test-test_read_filter_compress.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_filter_compress.c' object='libarchive/test/test-test_read_filter_compress.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_filter_compress.o `test -f 'libarchive/test/test_read_filter_compress.c' || echo '$(srcdir)/'`libarchive/test/test_read_filter_compress.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_filter_compress.o `test -f 'libarchive/test/test_read_filter_compress.c' || echo '$(srcdir)/'`libarchive/test/test_read_filter_compress.c -libarchive/test/libarchive_test-test_read_filter_compress.obj: libarchive/test/test_read_filter_compress.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_filter_compress.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_filter_compress.Tpo -c -o libarchive/test/libarchive_test-test_read_filter_compress.obj `if test -f 'libarchive/test/test_read_filter_compress.c'; then $(CYGPATH_W) 'libarchive/test/test_read_filter_compress.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_filter_compress.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_filter_compress.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_filter_compress.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_filter_compress.c' object='libarchive/test/libarchive_test-test_read_filter_compress.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_filter_compress.obj: libarchive/test/test_read_filter_compress.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_filter_compress.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_filter_compress.Tpo -c -o libarchive/test/test-test_read_filter_compress.obj `if test -f 'libarchive/test/test_read_filter_compress.c'; then $(CYGPATH_W) 'libarchive/test/test_read_filter_compress.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_filter_compress.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_filter_compress.Tpo libarchive/test/$(DEPDIR)/test-test_read_filter_compress.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_filter_compress.c' object='libarchive/test/test-test_read_filter_compress.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_filter_compress.obj `if test -f 'libarchive/test/test_read_filter_compress.c'; then $(CYGPATH_W) 'libarchive/test/test_read_filter_compress.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_filter_compress.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_filter_compress.obj `if test -f 'libarchive/test/test_read_filter_compress.c'; then $(CYGPATH_W) 'libarchive/test/test_read_filter_compress.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_filter_compress.c'; fi` -libarchive/test/libarchive_test-test_read_filter_grzip.o: libarchive/test/test_read_filter_grzip.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_filter_grzip.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_filter_grzip.Tpo -c -o libarchive/test/libarchive_test-test_read_filter_grzip.o `test -f 'libarchive/test/test_read_filter_grzip.c' || echo '$(srcdir)/'`libarchive/test/test_read_filter_grzip.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_filter_grzip.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_filter_grzip.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_filter_grzip.c' object='libarchive/test/libarchive_test-test_read_filter_grzip.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_filter_grzip.o: libarchive/test/test_read_filter_grzip.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_filter_grzip.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_filter_grzip.Tpo -c -o libarchive/test/test-test_read_filter_grzip.o `test -f 'libarchive/test/test_read_filter_grzip.c' || echo '$(srcdir)/'`libarchive/test/test_read_filter_grzip.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_filter_grzip.Tpo libarchive/test/$(DEPDIR)/test-test_read_filter_grzip.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_filter_grzip.c' object='libarchive/test/test-test_read_filter_grzip.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_filter_grzip.o `test -f 'libarchive/test/test_read_filter_grzip.c' || echo '$(srcdir)/'`libarchive/test/test_read_filter_grzip.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_filter_grzip.o `test -f 'libarchive/test/test_read_filter_grzip.c' || echo '$(srcdir)/'`libarchive/test/test_read_filter_grzip.c -libarchive/test/libarchive_test-test_read_filter_grzip.obj: libarchive/test/test_read_filter_grzip.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_filter_grzip.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_filter_grzip.Tpo -c -o libarchive/test/libarchive_test-test_read_filter_grzip.obj `if test -f 'libarchive/test/test_read_filter_grzip.c'; then $(CYGPATH_W) 'libarchive/test/test_read_filter_grzip.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_filter_grzip.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_filter_grzip.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_filter_grzip.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_filter_grzip.c' object='libarchive/test/libarchive_test-test_read_filter_grzip.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_filter_grzip.obj: libarchive/test/test_read_filter_grzip.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_filter_grzip.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_filter_grzip.Tpo -c -o libarchive/test/test-test_read_filter_grzip.obj `if test -f 'libarchive/test/test_read_filter_grzip.c'; then $(CYGPATH_W) 'libarchive/test/test_read_filter_grzip.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_filter_grzip.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_filter_grzip.Tpo libarchive/test/$(DEPDIR)/test-test_read_filter_grzip.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_filter_grzip.c' object='libarchive/test/test-test_read_filter_grzip.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_filter_grzip.obj `if test -f 'libarchive/test/test_read_filter_grzip.c'; then $(CYGPATH_W) 'libarchive/test/test_read_filter_grzip.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_filter_grzip.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_filter_grzip.obj `if test -f 'libarchive/test/test_read_filter_grzip.c'; then $(CYGPATH_W) 'libarchive/test/test_read_filter_grzip.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_filter_grzip.c'; fi` -libarchive/test/libarchive_test-test_read_filter_lrzip.o: libarchive/test/test_read_filter_lrzip.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_filter_lrzip.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_filter_lrzip.Tpo -c -o libarchive/test/libarchive_test-test_read_filter_lrzip.o `test -f 'libarchive/test/test_read_filter_lrzip.c' || echo '$(srcdir)/'`libarchive/test/test_read_filter_lrzip.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_filter_lrzip.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_filter_lrzip.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_filter_lrzip.c' object='libarchive/test/libarchive_test-test_read_filter_lrzip.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_filter_lrzip.o: libarchive/test/test_read_filter_lrzip.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_filter_lrzip.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_filter_lrzip.Tpo -c -o libarchive/test/test-test_read_filter_lrzip.o `test -f 'libarchive/test/test_read_filter_lrzip.c' || echo '$(srcdir)/'`libarchive/test/test_read_filter_lrzip.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_filter_lrzip.Tpo libarchive/test/$(DEPDIR)/test-test_read_filter_lrzip.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_filter_lrzip.c' object='libarchive/test/test-test_read_filter_lrzip.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_filter_lrzip.o `test -f 'libarchive/test/test_read_filter_lrzip.c' || echo '$(srcdir)/'`libarchive/test/test_read_filter_lrzip.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_filter_lrzip.o `test -f 'libarchive/test/test_read_filter_lrzip.c' || echo '$(srcdir)/'`libarchive/test/test_read_filter_lrzip.c -libarchive/test/libarchive_test-test_read_filter_lrzip.obj: libarchive/test/test_read_filter_lrzip.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_filter_lrzip.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_filter_lrzip.Tpo -c -o libarchive/test/libarchive_test-test_read_filter_lrzip.obj `if test -f 'libarchive/test/test_read_filter_lrzip.c'; then $(CYGPATH_W) 'libarchive/test/test_read_filter_lrzip.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_filter_lrzip.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_filter_lrzip.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_filter_lrzip.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_filter_lrzip.c' object='libarchive/test/libarchive_test-test_read_filter_lrzip.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_filter_lrzip.obj: libarchive/test/test_read_filter_lrzip.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_filter_lrzip.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_filter_lrzip.Tpo -c -o libarchive/test/test-test_read_filter_lrzip.obj `if test -f 'libarchive/test/test_read_filter_lrzip.c'; then $(CYGPATH_W) 'libarchive/test/test_read_filter_lrzip.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_filter_lrzip.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_filter_lrzip.Tpo libarchive/test/$(DEPDIR)/test-test_read_filter_lrzip.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_filter_lrzip.c' object='libarchive/test/test-test_read_filter_lrzip.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_filter_lrzip.obj `if test -f 'libarchive/test/test_read_filter_lrzip.c'; then $(CYGPATH_W) 'libarchive/test/test_read_filter_lrzip.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_filter_lrzip.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_filter_lrzip.obj `if test -f 'libarchive/test/test_read_filter_lrzip.c'; then $(CYGPATH_W) 'libarchive/test/test_read_filter_lrzip.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_filter_lrzip.c'; fi` -libarchive/test/libarchive_test-test_read_filter_lzop.o: libarchive/test/test_read_filter_lzop.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_filter_lzop.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_filter_lzop.Tpo -c -o libarchive/test/libarchive_test-test_read_filter_lzop.o `test -f 'libarchive/test/test_read_filter_lzop.c' || echo '$(srcdir)/'`libarchive/test/test_read_filter_lzop.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_filter_lzop.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_filter_lzop.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_filter_lzop.c' object='libarchive/test/libarchive_test-test_read_filter_lzop.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_filter_lzop.o: libarchive/test/test_read_filter_lzop.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_filter_lzop.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_filter_lzop.Tpo -c -o libarchive/test/test-test_read_filter_lzop.o `test -f 'libarchive/test/test_read_filter_lzop.c' || echo '$(srcdir)/'`libarchive/test/test_read_filter_lzop.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_filter_lzop.Tpo libarchive/test/$(DEPDIR)/test-test_read_filter_lzop.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_filter_lzop.c' object='libarchive/test/test-test_read_filter_lzop.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_filter_lzop.o `test -f 'libarchive/test/test_read_filter_lzop.c' || echo '$(srcdir)/'`libarchive/test/test_read_filter_lzop.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_filter_lzop.o `test -f 'libarchive/test/test_read_filter_lzop.c' || echo '$(srcdir)/'`libarchive/test/test_read_filter_lzop.c -libarchive/test/libarchive_test-test_read_filter_lzop.obj: libarchive/test/test_read_filter_lzop.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_filter_lzop.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_filter_lzop.Tpo -c -o libarchive/test/libarchive_test-test_read_filter_lzop.obj `if test -f 'libarchive/test/test_read_filter_lzop.c'; then $(CYGPATH_W) 'libarchive/test/test_read_filter_lzop.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_filter_lzop.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_filter_lzop.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_filter_lzop.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_filter_lzop.c' object='libarchive/test/libarchive_test-test_read_filter_lzop.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_filter_lzop.obj: libarchive/test/test_read_filter_lzop.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_filter_lzop.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_filter_lzop.Tpo -c -o libarchive/test/test-test_read_filter_lzop.obj `if test -f 'libarchive/test/test_read_filter_lzop.c'; then $(CYGPATH_W) 'libarchive/test/test_read_filter_lzop.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_filter_lzop.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_filter_lzop.Tpo libarchive/test/$(DEPDIR)/test-test_read_filter_lzop.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_filter_lzop.c' object='libarchive/test/test-test_read_filter_lzop.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_filter_lzop.obj `if test -f 'libarchive/test/test_read_filter_lzop.c'; then $(CYGPATH_W) 'libarchive/test/test_read_filter_lzop.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_filter_lzop.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_filter_lzop.obj `if test -f 'libarchive/test/test_read_filter_lzop.c'; then $(CYGPATH_W) 'libarchive/test/test_read_filter_lzop.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_filter_lzop.c'; fi` -libarchive/test/libarchive_test-test_read_filter_lzop_multiple_parts.o: libarchive/test/test_read_filter_lzop_multiple_parts.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_filter_lzop_multiple_parts.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_filter_lzop_multiple_parts.Tpo -c -o libarchive/test/libarchive_test-test_read_filter_lzop_multiple_parts.o `test -f 'libarchive/test/test_read_filter_lzop_multiple_parts.c' || echo '$(srcdir)/'`libarchive/test/test_read_filter_lzop_multiple_parts.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_filter_lzop_multiple_parts.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_filter_lzop_multiple_parts.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_filter_lzop_multiple_parts.c' object='libarchive/test/libarchive_test-test_read_filter_lzop_multiple_parts.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_filter_lzop_multiple_parts.o: libarchive/test/test_read_filter_lzop_multiple_parts.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_filter_lzop_multiple_parts.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_filter_lzop_multiple_parts.Tpo -c -o libarchive/test/test-test_read_filter_lzop_multiple_parts.o `test -f 'libarchive/test/test_read_filter_lzop_multiple_parts.c' || echo '$(srcdir)/'`libarchive/test/test_read_filter_lzop_multiple_parts.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_filter_lzop_multiple_parts.Tpo libarchive/test/$(DEPDIR)/test-test_read_filter_lzop_multiple_parts.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_filter_lzop_multiple_parts.c' object='libarchive/test/test-test_read_filter_lzop_multiple_parts.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_filter_lzop_multiple_parts.o `test -f 'libarchive/test/test_read_filter_lzop_multiple_parts.c' || echo '$(srcdir)/'`libarchive/test/test_read_filter_lzop_multiple_parts.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_filter_lzop_multiple_parts.o `test -f 'libarchive/test/test_read_filter_lzop_multiple_parts.c' || echo '$(srcdir)/'`libarchive/test/test_read_filter_lzop_multiple_parts.c -libarchive/test/libarchive_test-test_read_filter_lzop_multiple_parts.obj: libarchive/test/test_read_filter_lzop_multiple_parts.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_filter_lzop_multiple_parts.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_filter_lzop_multiple_parts.Tpo -c -o libarchive/test/libarchive_test-test_read_filter_lzop_multiple_parts.obj `if test -f 'libarchive/test/test_read_filter_lzop_multiple_parts.c'; then $(CYGPATH_W) 'libarchive/test/test_read_filter_lzop_multiple_parts.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_filter_lzop_multiple_parts.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_filter_lzop_multiple_parts.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_filter_lzop_multiple_parts.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_filter_lzop_multiple_parts.c' object='libarchive/test/libarchive_test-test_read_filter_lzop_multiple_parts.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_filter_lzop_multiple_parts.obj: libarchive/test/test_read_filter_lzop_multiple_parts.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_filter_lzop_multiple_parts.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_filter_lzop_multiple_parts.Tpo -c -o libarchive/test/test-test_read_filter_lzop_multiple_parts.obj `if test -f 'libarchive/test/test_read_filter_lzop_multiple_parts.c'; then $(CYGPATH_W) 'libarchive/test/test_read_filter_lzop_multiple_parts.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_filter_lzop_multiple_parts.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_filter_lzop_multiple_parts.Tpo libarchive/test/$(DEPDIR)/test-test_read_filter_lzop_multiple_parts.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_filter_lzop_multiple_parts.c' object='libarchive/test/test-test_read_filter_lzop_multiple_parts.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_filter_lzop_multiple_parts.obj `if test -f 'libarchive/test/test_read_filter_lzop_multiple_parts.c'; then $(CYGPATH_W) 'libarchive/test/test_read_filter_lzop_multiple_parts.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_filter_lzop_multiple_parts.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_filter_lzop_multiple_parts.obj `if test -f 'libarchive/test/test_read_filter_lzop_multiple_parts.c'; then $(CYGPATH_W) 'libarchive/test/test_read_filter_lzop_multiple_parts.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_filter_lzop_multiple_parts.c'; fi` -libarchive/test/libarchive_test-test_read_filter_program.o: libarchive/test/test_read_filter_program.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_filter_program.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_filter_program.Tpo -c -o libarchive/test/libarchive_test-test_read_filter_program.o `test -f 'libarchive/test/test_read_filter_program.c' || echo '$(srcdir)/'`libarchive/test/test_read_filter_program.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_filter_program.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_filter_program.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_filter_program.c' object='libarchive/test/libarchive_test-test_read_filter_program.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_filter_program.o: libarchive/test/test_read_filter_program.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_filter_program.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_filter_program.Tpo -c -o libarchive/test/test-test_read_filter_program.o `test -f 'libarchive/test/test_read_filter_program.c' || echo '$(srcdir)/'`libarchive/test/test_read_filter_program.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_filter_program.Tpo libarchive/test/$(DEPDIR)/test-test_read_filter_program.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_filter_program.c' object='libarchive/test/test-test_read_filter_program.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_filter_program.o `test -f 'libarchive/test/test_read_filter_program.c' || echo '$(srcdir)/'`libarchive/test/test_read_filter_program.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_filter_program.o `test -f 'libarchive/test/test_read_filter_program.c' || echo '$(srcdir)/'`libarchive/test/test_read_filter_program.c -libarchive/test/libarchive_test-test_read_filter_program.obj: libarchive/test/test_read_filter_program.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_filter_program.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_filter_program.Tpo -c -o libarchive/test/libarchive_test-test_read_filter_program.obj `if test -f 'libarchive/test/test_read_filter_program.c'; then $(CYGPATH_W) 'libarchive/test/test_read_filter_program.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_filter_program.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_filter_program.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_filter_program.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_filter_program.c' object='libarchive/test/libarchive_test-test_read_filter_program.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_filter_program.obj: libarchive/test/test_read_filter_program.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_filter_program.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_filter_program.Tpo -c -o libarchive/test/test-test_read_filter_program.obj `if test -f 'libarchive/test/test_read_filter_program.c'; then $(CYGPATH_W) 'libarchive/test/test_read_filter_program.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_filter_program.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_filter_program.Tpo libarchive/test/$(DEPDIR)/test-test_read_filter_program.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_filter_program.c' object='libarchive/test/test-test_read_filter_program.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_filter_program.obj `if test -f 'libarchive/test/test_read_filter_program.c'; then $(CYGPATH_W) 'libarchive/test/test_read_filter_program.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_filter_program.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_filter_program.obj `if test -f 'libarchive/test/test_read_filter_program.c'; then $(CYGPATH_W) 'libarchive/test/test_read_filter_program.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_filter_program.c'; fi` -libarchive/test/libarchive_test-test_read_filter_program_signature.o: libarchive/test/test_read_filter_program_signature.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_filter_program_signature.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_filter_program_signature.Tpo -c -o libarchive/test/libarchive_test-test_read_filter_program_signature.o `test -f 'libarchive/test/test_read_filter_program_signature.c' || echo '$(srcdir)/'`libarchive/test/test_read_filter_program_signature.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_filter_program_signature.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_filter_program_signature.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_filter_program_signature.c' object='libarchive/test/libarchive_test-test_read_filter_program_signature.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_filter_program_signature.o: libarchive/test/test_read_filter_program_signature.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_filter_program_signature.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_filter_program_signature.Tpo -c -o libarchive/test/test-test_read_filter_program_signature.o `test -f 'libarchive/test/test_read_filter_program_signature.c' || echo '$(srcdir)/'`libarchive/test/test_read_filter_program_signature.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_filter_program_signature.Tpo libarchive/test/$(DEPDIR)/test-test_read_filter_program_signature.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_filter_program_signature.c' object='libarchive/test/test-test_read_filter_program_signature.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_filter_program_signature.o `test -f 'libarchive/test/test_read_filter_program_signature.c' || echo '$(srcdir)/'`libarchive/test/test_read_filter_program_signature.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_filter_program_signature.o `test -f 'libarchive/test/test_read_filter_program_signature.c' || echo '$(srcdir)/'`libarchive/test/test_read_filter_program_signature.c -libarchive/test/libarchive_test-test_read_filter_program_signature.obj: libarchive/test/test_read_filter_program_signature.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_filter_program_signature.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_filter_program_signature.Tpo -c -o libarchive/test/libarchive_test-test_read_filter_program_signature.obj `if test -f 'libarchive/test/test_read_filter_program_signature.c'; then $(CYGPATH_W) 'libarchive/test/test_read_filter_program_signature.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_filter_program_signature.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_filter_program_signature.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_filter_program_signature.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_filter_program_signature.c' object='libarchive/test/libarchive_test-test_read_filter_program_signature.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_filter_program_signature.obj: libarchive/test/test_read_filter_program_signature.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_filter_program_signature.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_filter_program_signature.Tpo -c -o libarchive/test/test-test_read_filter_program_signature.obj `if test -f 'libarchive/test/test_read_filter_program_signature.c'; then $(CYGPATH_W) 'libarchive/test/test_read_filter_program_signature.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_filter_program_signature.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_filter_program_signature.Tpo libarchive/test/$(DEPDIR)/test-test_read_filter_program_signature.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_filter_program_signature.c' object='libarchive/test/test-test_read_filter_program_signature.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_filter_program_signature.obj `if test -f 'libarchive/test/test_read_filter_program_signature.c'; then $(CYGPATH_W) 'libarchive/test/test_read_filter_program_signature.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_filter_program_signature.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_filter_program_signature.obj `if test -f 'libarchive/test/test_read_filter_program_signature.c'; then $(CYGPATH_W) 'libarchive/test/test_read_filter_program_signature.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_filter_program_signature.c'; fi` -libarchive/test/libarchive_test-test_read_filter_uudecode.o: libarchive/test/test_read_filter_uudecode.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_filter_uudecode.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_filter_uudecode.Tpo -c -o libarchive/test/libarchive_test-test_read_filter_uudecode.o `test -f 'libarchive/test/test_read_filter_uudecode.c' || echo '$(srcdir)/'`libarchive/test/test_read_filter_uudecode.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_filter_uudecode.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_filter_uudecode.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_filter_uudecode.c' object='libarchive/test/libarchive_test-test_read_filter_uudecode.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_filter_uudecode.o: libarchive/test/test_read_filter_uudecode.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_filter_uudecode.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_filter_uudecode.Tpo -c -o libarchive/test/test-test_read_filter_uudecode.o `test -f 'libarchive/test/test_read_filter_uudecode.c' || echo '$(srcdir)/'`libarchive/test/test_read_filter_uudecode.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_filter_uudecode.Tpo libarchive/test/$(DEPDIR)/test-test_read_filter_uudecode.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_filter_uudecode.c' object='libarchive/test/test-test_read_filter_uudecode.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_filter_uudecode.o `test -f 'libarchive/test/test_read_filter_uudecode.c' || echo '$(srcdir)/'`libarchive/test/test_read_filter_uudecode.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_filter_uudecode.o `test -f 'libarchive/test/test_read_filter_uudecode.c' || echo '$(srcdir)/'`libarchive/test/test_read_filter_uudecode.c -libarchive/test/libarchive_test-test_read_filter_uudecode.obj: libarchive/test/test_read_filter_uudecode.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_filter_uudecode.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_filter_uudecode.Tpo -c -o libarchive/test/libarchive_test-test_read_filter_uudecode.obj `if test -f 'libarchive/test/test_read_filter_uudecode.c'; then $(CYGPATH_W) 'libarchive/test/test_read_filter_uudecode.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_filter_uudecode.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_filter_uudecode.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_filter_uudecode.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_filter_uudecode.c' object='libarchive/test/libarchive_test-test_read_filter_uudecode.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_filter_uudecode.obj: libarchive/test/test_read_filter_uudecode.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_filter_uudecode.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_filter_uudecode.Tpo -c -o libarchive/test/test-test_read_filter_uudecode.obj `if test -f 'libarchive/test/test_read_filter_uudecode.c'; then $(CYGPATH_W) 'libarchive/test/test_read_filter_uudecode.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_filter_uudecode.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_filter_uudecode.Tpo libarchive/test/$(DEPDIR)/test-test_read_filter_uudecode.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_filter_uudecode.c' object='libarchive/test/test-test_read_filter_uudecode.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_filter_uudecode.obj `if test -f 'libarchive/test/test_read_filter_uudecode.c'; then $(CYGPATH_W) 'libarchive/test/test_read_filter_uudecode.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_filter_uudecode.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_filter_uudecode.obj `if test -f 'libarchive/test/test_read_filter_uudecode.c'; then $(CYGPATH_W) 'libarchive/test/test_read_filter_uudecode.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_filter_uudecode.c'; fi` -libarchive/test/libarchive_test-test_read_format_7zip.o: libarchive/test/test_read_format_7zip.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_7zip.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_7zip.Tpo -c -o libarchive/test/libarchive_test-test_read_format_7zip.o `test -f 'libarchive/test/test_read_format_7zip.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_7zip.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_7zip.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_7zip.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_7zip.c' object='libarchive/test/libarchive_test-test_read_format_7zip.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_7zip.o: libarchive/test/test_read_format_7zip.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_7zip.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_7zip.Tpo -c -o libarchive/test/test-test_read_format_7zip.o `test -f 'libarchive/test/test_read_format_7zip.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_7zip.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_7zip.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_7zip.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_7zip.c' object='libarchive/test/test-test_read_format_7zip.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_7zip.o `test -f 'libarchive/test/test_read_format_7zip.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_7zip.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_7zip.o `test -f 'libarchive/test/test_read_format_7zip.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_7zip.c -libarchive/test/libarchive_test-test_read_format_7zip.obj: libarchive/test/test_read_format_7zip.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_7zip.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_7zip.Tpo -c -o libarchive/test/libarchive_test-test_read_format_7zip.obj `if test -f 'libarchive/test/test_read_format_7zip.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_7zip.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_7zip.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_7zip.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_7zip.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_7zip.c' object='libarchive/test/libarchive_test-test_read_format_7zip.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_7zip.obj: libarchive/test/test_read_format_7zip.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_7zip.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_7zip.Tpo -c -o libarchive/test/test-test_read_format_7zip.obj `if test -f 'libarchive/test/test_read_format_7zip.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_7zip.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_7zip.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_7zip.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_7zip.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_7zip.c' object='libarchive/test/test-test_read_format_7zip.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_7zip.obj `if test -f 'libarchive/test/test_read_format_7zip.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_7zip.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_7zip.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_7zip.obj `if test -f 'libarchive/test/test_read_format_7zip.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_7zip.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_7zip.c'; fi` -libarchive/test/libarchive_test-test_read_format_7zip_encryption_data.o: libarchive/test/test_read_format_7zip_encryption_data.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_7zip_encryption_data.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_7zip_encryption_data.Tpo -c -o libarchive/test/libarchive_test-test_read_format_7zip_encryption_data.o `test -f 'libarchive/test/test_read_format_7zip_encryption_data.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_7zip_encryption_data.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_7zip_encryption_data.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_7zip_encryption_data.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_7zip_encryption_data.c' object='libarchive/test/libarchive_test-test_read_format_7zip_encryption_data.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_7zip_encryption_data.o: libarchive/test/test_read_format_7zip_encryption_data.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_7zip_encryption_data.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_7zip_encryption_data.Tpo -c -o libarchive/test/test-test_read_format_7zip_encryption_data.o `test -f 'libarchive/test/test_read_format_7zip_encryption_data.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_7zip_encryption_data.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_7zip_encryption_data.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_7zip_encryption_data.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_7zip_encryption_data.c' object='libarchive/test/test-test_read_format_7zip_encryption_data.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_7zip_encryption_data.o `test -f 'libarchive/test/test_read_format_7zip_encryption_data.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_7zip_encryption_data.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_7zip_encryption_data.o `test -f 'libarchive/test/test_read_format_7zip_encryption_data.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_7zip_encryption_data.c -libarchive/test/libarchive_test-test_read_format_7zip_encryption_data.obj: libarchive/test/test_read_format_7zip_encryption_data.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_7zip_encryption_data.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_7zip_encryption_data.Tpo -c -o libarchive/test/libarchive_test-test_read_format_7zip_encryption_data.obj `if test -f 'libarchive/test/test_read_format_7zip_encryption_data.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_7zip_encryption_data.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_7zip_encryption_data.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_7zip_encryption_data.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_7zip_encryption_data.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_7zip_encryption_data.c' object='libarchive/test/libarchive_test-test_read_format_7zip_encryption_data.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_7zip_encryption_data.obj: libarchive/test/test_read_format_7zip_encryption_data.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_7zip_encryption_data.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_7zip_encryption_data.Tpo -c -o libarchive/test/test-test_read_format_7zip_encryption_data.obj `if test -f 'libarchive/test/test_read_format_7zip_encryption_data.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_7zip_encryption_data.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_7zip_encryption_data.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_7zip_encryption_data.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_7zip_encryption_data.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_7zip_encryption_data.c' object='libarchive/test/test-test_read_format_7zip_encryption_data.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_7zip_encryption_data.obj `if test -f 'libarchive/test/test_read_format_7zip_encryption_data.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_7zip_encryption_data.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_7zip_encryption_data.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_7zip_encryption_data.obj `if test -f 'libarchive/test/test_read_format_7zip_encryption_data.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_7zip_encryption_data.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_7zip_encryption_data.c'; fi` -libarchive/test/libarchive_test-test_read_format_7zip_encryption_partially.o: libarchive/test/test_read_format_7zip_encryption_partially.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_7zip_encryption_partially.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_7zip_encryption_partially.Tpo -c -o libarchive/test/libarchive_test-test_read_format_7zip_encryption_partially.o `test -f 'libarchive/test/test_read_format_7zip_encryption_partially.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_7zip_encryption_partially.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_7zip_encryption_partially.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_7zip_encryption_partially.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_7zip_encryption_partially.c' object='libarchive/test/libarchive_test-test_read_format_7zip_encryption_partially.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_7zip_encryption_partially.o: libarchive/test/test_read_format_7zip_encryption_partially.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_7zip_encryption_partially.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_7zip_encryption_partially.Tpo -c -o libarchive/test/test-test_read_format_7zip_encryption_partially.o `test -f 'libarchive/test/test_read_format_7zip_encryption_partially.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_7zip_encryption_partially.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_7zip_encryption_partially.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_7zip_encryption_partially.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_7zip_encryption_partially.c' object='libarchive/test/test-test_read_format_7zip_encryption_partially.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_7zip_encryption_partially.o `test -f 'libarchive/test/test_read_format_7zip_encryption_partially.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_7zip_encryption_partially.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_7zip_encryption_partially.o `test -f 'libarchive/test/test_read_format_7zip_encryption_partially.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_7zip_encryption_partially.c -libarchive/test/libarchive_test-test_read_format_7zip_encryption_partially.obj: libarchive/test/test_read_format_7zip_encryption_partially.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_7zip_encryption_partially.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_7zip_encryption_partially.Tpo -c -o libarchive/test/libarchive_test-test_read_format_7zip_encryption_partially.obj `if test -f 'libarchive/test/test_read_format_7zip_encryption_partially.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_7zip_encryption_partially.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_7zip_encryption_partially.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_7zip_encryption_partially.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_7zip_encryption_partially.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_7zip_encryption_partially.c' object='libarchive/test/libarchive_test-test_read_format_7zip_encryption_partially.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_7zip_encryption_partially.obj: libarchive/test/test_read_format_7zip_encryption_partially.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_7zip_encryption_partially.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_7zip_encryption_partially.Tpo -c -o libarchive/test/test-test_read_format_7zip_encryption_partially.obj `if test -f 'libarchive/test/test_read_format_7zip_encryption_partially.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_7zip_encryption_partially.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_7zip_encryption_partially.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_7zip_encryption_partially.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_7zip_encryption_partially.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_7zip_encryption_partially.c' object='libarchive/test/test-test_read_format_7zip_encryption_partially.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_7zip_encryption_partially.obj `if test -f 'libarchive/test/test_read_format_7zip_encryption_partially.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_7zip_encryption_partially.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_7zip_encryption_partially.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_7zip_encryption_partially.obj `if test -f 'libarchive/test/test_read_format_7zip_encryption_partially.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_7zip_encryption_partially.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_7zip_encryption_partially.c'; fi` -libarchive/test/libarchive_test-test_read_format_7zip_encryption_header.o: libarchive/test/test_read_format_7zip_encryption_header.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_7zip_encryption_header.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_7zip_encryption_header.Tpo -c -o libarchive/test/libarchive_test-test_read_format_7zip_encryption_header.o `test -f 'libarchive/test/test_read_format_7zip_encryption_header.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_7zip_encryption_header.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_7zip_encryption_header.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_7zip_encryption_header.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_7zip_encryption_header.c' object='libarchive/test/libarchive_test-test_read_format_7zip_encryption_header.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_7zip_encryption_header.o: libarchive/test/test_read_format_7zip_encryption_header.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_7zip_encryption_header.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_7zip_encryption_header.Tpo -c -o libarchive/test/test-test_read_format_7zip_encryption_header.o `test -f 'libarchive/test/test_read_format_7zip_encryption_header.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_7zip_encryption_header.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_7zip_encryption_header.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_7zip_encryption_header.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_7zip_encryption_header.c' object='libarchive/test/test-test_read_format_7zip_encryption_header.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_7zip_encryption_header.o `test -f 'libarchive/test/test_read_format_7zip_encryption_header.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_7zip_encryption_header.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_7zip_encryption_header.o `test -f 'libarchive/test/test_read_format_7zip_encryption_header.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_7zip_encryption_header.c -libarchive/test/libarchive_test-test_read_format_7zip_encryption_header.obj: libarchive/test/test_read_format_7zip_encryption_header.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_7zip_encryption_header.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_7zip_encryption_header.Tpo -c -o libarchive/test/libarchive_test-test_read_format_7zip_encryption_header.obj `if test -f 'libarchive/test/test_read_format_7zip_encryption_header.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_7zip_encryption_header.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_7zip_encryption_header.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_7zip_encryption_header.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_7zip_encryption_header.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_7zip_encryption_header.c' object='libarchive/test/libarchive_test-test_read_format_7zip_encryption_header.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_7zip_encryption_header.obj: libarchive/test/test_read_format_7zip_encryption_header.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_7zip_encryption_header.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_7zip_encryption_header.Tpo -c -o libarchive/test/test-test_read_format_7zip_encryption_header.obj `if test -f 'libarchive/test/test_read_format_7zip_encryption_header.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_7zip_encryption_header.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_7zip_encryption_header.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_7zip_encryption_header.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_7zip_encryption_header.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_7zip_encryption_header.c' object='libarchive/test/test-test_read_format_7zip_encryption_header.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_7zip_encryption_header.obj `if test -f 'libarchive/test/test_read_format_7zip_encryption_header.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_7zip_encryption_header.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_7zip_encryption_header.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_7zip_encryption_header.obj `if test -f 'libarchive/test/test_read_format_7zip_encryption_header.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_7zip_encryption_header.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_7zip_encryption_header.c'; fi` -libarchive/test/libarchive_test-test_read_format_7zip_malformed.o: libarchive/test/test_read_format_7zip_malformed.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_7zip_malformed.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_7zip_malformed.Tpo -c -o libarchive/test/libarchive_test-test_read_format_7zip_malformed.o `test -f 'libarchive/test/test_read_format_7zip_malformed.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_7zip_malformed.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_7zip_malformed.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_7zip_malformed.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_7zip_malformed.c' object='libarchive/test/libarchive_test-test_read_format_7zip_malformed.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_7zip_malformed.o: libarchive/test/test_read_format_7zip_malformed.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_7zip_malformed.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_7zip_malformed.Tpo -c -o libarchive/test/test-test_read_format_7zip_malformed.o `test -f 'libarchive/test/test_read_format_7zip_malformed.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_7zip_malformed.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_7zip_malformed.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_7zip_malformed.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_7zip_malformed.c' object='libarchive/test/test-test_read_format_7zip_malformed.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_7zip_malformed.o `test -f 'libarchive/test/test_read_format_7zip_malformed.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_7zip_malformed.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_7zip_malformed.o `test -f 'libarchive/test/test_read_format_7zip_malformed.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_7zip_malformed.c -libarchive/test/libarchive_test-test_read_format_7zip_malformed.obj: libarchive/test/test_read_format_7zip_malformed.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_7zip_malformed.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_7zip_malformed.Tpo -c -o libarchive/test/libarchive_test-test_read_format_7zip_malformed.obj `if test -f 'libarchive/test/test_read_format_7zip_malformed.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_7zip_malformed.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_7zip_malformed.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_7zip_malformed.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_7zip_malformed.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_7zip_malformed.c' object='libarchive/test/libarchive_test-test_read_format_7zip_malformed.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_7zip_malformed.obj: libarchive/test/test_read_format_7zip_malformed.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_7zip_malformed.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_7zip_malformed.Tpo -c -o libarchive/test/test-test_read_format_7zip_malformed.obj `if test -f 'libarchive/test/test_read_format_7zip_malformed.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_7zip_malformed.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_7zip_malformed.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_7zip_malformed.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_7zip_malformed.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_7zip_malformed.c' object='libarchive/test/test-test_read_format_7zip_malformed.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_7zip_malformed.obj `if test -f 'libarchive/test/test_read_format_7zip_malformed.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_7zip_malformed.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_7zip_malformed.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_7zip_malformed.obj `if test -f 'libarchive/test/test_read_format_7zip_malformed.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_7zip_malformed.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_7zip_malformed.c'; fi` -libarchive/test/libarchive_test-test_read_format_7zip_packinfo_digests.o: libarchive/test/test_read_format_7zip_packinfo_digests.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_7zip_packinfo_digests.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_7zip_packinfo_digests.Tpo -c -o libarchive/test/libarchive_test-test_read_format_7zip_packinfo_digests.o `test -f 'libarchive/test/test_read_format_7zip_packinfo_digests.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_7zip_packinfo_digests.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_7zip_packinfo_digests.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_7zip_packinfo_digests.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_7zip_packinfo_digests.c' object='libarchive/test/libarchive_test-test_read_format_7zip_packinfo_digests.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_7zip_packinfo_digests.o: libarchive/test/test_read_format_7zip_packinfo_digests.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_7zip_packinfo_digests.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_7zip_packinfo_digests.Tpo -c -o libarchive/test/test-test_read_format_7zip_packinfo_digests.o `test -f 'libarchive/test/test_read_format_7zip_packinfo_digests.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_7zip_packinfo_digests.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_7zip_packinfo_digests.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_7zip_packinfo_digests.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_7zip_packinfo_digests.c' object='libarchive/test/test-test_read_format_7zip_packinfo_digests.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_7zip_packinfo_digests.o `test -f 'libarchive/test/test_read_format_7zip_packinfo_digests.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_7zip_packinfo_digests.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_7zip_packinfo_digests.o `test -f 'libarchive/test/test_read_format_7zip_packinfo_digests.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_7zip_packinfo_digests.c -libarchive/test/libarchive_test-test_read_format_7zip_packinfo_digests.obj: libarchive/test/test_read_format_7zip_packinfo_digests.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_7zip_packinfo_digests.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_7zip_packinfo_digests.Tpo -c -o libarchive/test/libarchive_test-test_read_format_7zip_packinfo_digests.obj `if test -f 'libarchive/test/test_read_format_7zip_packinfo_digests.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_7zip_packinfo_digests.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_7zip_packinfo_digests.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_7zip_packinfo_digests.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_7zip_packinfo_digests.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_7zip_packinfo_digests.c' object='libarchive/test/libarchive_test-test_read_format_7zip_packinfo_digests.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_7zip_packinfo_digests.obj: libarchive/test/test_read_format_7zip_packinfo_digests.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_7zip_packinfo_digests.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_7zip_packinfo_digests.Tpo -c -o libarchive/test/test-test_read_format_7zip_packinfo_digests.obj `if test -f 'libarchive/test/test_read_format_7zip_packinfo_digests.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_7zip_packinfo_digests.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_7zip_packinfo_digests.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_7zip_packinfo_digests.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_7zip_packinfo_digests.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_7zip_packinfo_digests.c' object='libarchive/test/test-test_read_format_7zip_packinfo_digests.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_7zip_packinfo_digests.obj `if test -f 'libarchive/test/test_read_format_7zip_packinfo_digests.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_7zip_packinfo_digests.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_7zip_packinfo_digests.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_7zip_packinfo_digests.obj `if test -f 'libarchive/test/test_read_format_7zip_packinfo_digests.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_7zip_packinfo_digests.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_7zip_packinfo_digests.c'; fi` -libarchive/test/libarchive_test-test_read_format_ar.o: libarchive/test/test_read_format_ar.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_ar.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_ar.Tpo -c -o libarchive/test/libarchive_test-test_read_format_ar.o `test -f 'libarchive/test/test_read_format_ar.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_ar.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_ar.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_ar.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_ar.c' object='libarchive/test/libarchive_test-test_read_format_ar.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_ar.o: libarchive/test/test_read_format_ar.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_ar.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_ar.Tpo -c -o libarchive/test/test-test_read_format_ar.o `test -f 'libarchive/test/test_read_format_ar.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_ar.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_ar.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_ar.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_ar.c' object='libarchive/test/test-test_read_format_ar.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_ar.o `test -f 'libarchive/test/test_read_format_ar.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_ar.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_ar.o `test -f 'libarchive/test/test_read_format_ar.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_ar.c -libarchive/test/libarchive_test-test_read_format_ar.obj: libarchive/test/test_read_format_ar.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_ar.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_ar.Tpo -c -o libarchive/test/libarchive_test-test_read_format_ar.obj `if test -f 'libarchive/test/test_read_format_ar.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_ar.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_ar.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_ar.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_ar.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_ar.c' object='libarchive/test/libarchive_test-test_read_format_ar.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_ar.obj: libarchive/test/test_read_format_ar.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_ar.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_ar.Tpo -c -o libarchive/test/test-test_read_format_ar.obj `if test -f 'libarchive/test/test_read_format_ar.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_ar.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_ar.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_ar.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_ar.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_ar.c' object='libarchive/test/test-test_read_format_ar.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_ar.obj `if test -f 'libarchive/test/test_read_format_ar.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_ar.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_ar.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_ar.obj `if test -f 'libarchive/test/test_read_format_ar.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_ar.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_ar.c'; fi` -libarchive/test/libarchive_test-test_read_format_cab.o: libarchive/test/test_read_format_cab.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_cab.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_cab.Tpo -c -o libarchive/test/libarchive_test-test_read_format_cab.o `test -f 'libarchive/test/test_read_format_cab.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_cab.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_cab.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_cab.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_cab.c' object='libarchive/test/libarchive_test-test_read_format_cab.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_cab.o: libarchive/test/test_read_format_cab.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_cab.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_cab.Tpo -c -o libarchive/test/test-test_read_format_cab.o `test -f 'libarchive/test/test_read_format_cab.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_cab.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_cab.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_cab.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_cab.c' object='libarchive/test/test-test_read_format_cab.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_cab.o `test -f 'libarchive/test/test_read_format_cab.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_cab.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_cab.o `test -f 'libarchive/test/test_read_format_cab.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_cab.c -libarchive/test/libarchive_test-test_read_format_cab.obj: libarchive/test/test_read_format_cab.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_cab.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_cab.Tpo -c -o libarchive/test/libarchive_test-test_read_format_cab.obj `if test -f 'libarchive/test/test_read_format_cab.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_cab.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_cab.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_cab.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_cab.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_cab.c' object='libarchive/test/libarchive_test-test_read_format_cab.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_cab.obj: libarchive/test/test_read_format_cab.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_cab.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_cab.Tpo -c -o libarchive/test/test-test_read_format_cab.obj `if test -f 'libarchive/test/test_read_format_cab.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_cab.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_cab.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_cab.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_cab.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_cab.c' object='libarchive/test/test-test_read_format_cab.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_cab.obj `if test -f 'libarchive/test/test_read_format_cab.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_cab.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_cab.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_cab.obj `if test -f 'libarchive/test/test_read_format_cab.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_cab.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_cab.c'; fi` -libarchive/test/libarchive_test-test_read_format_cab_filename.o: libarchive/test/test_read_format_cab_filename.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_cab_filename.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_cab_filename.Tpo -c -o libarchive/test/libarchive_test-test_read_format_cab_filename.o `test -f 'libarchive/test/test_read_format_cab_filename.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_cab_filename.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_cab_filename.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_cab_filename.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_cab_filename.c' object='libarchive/test/libarchive_test-test_read_format_cab_filename.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_cab_filename.o: libarchive/test/test_read_format_cab_filename.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_cab_filename.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_cab_filename.Tpo -c -o libarchive/test/test-test_read_format_cab_filename.o `test -f 'libarchive/test/test_read_format_cab_filename.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_cab_filename.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_cab_filename.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_cab_filename.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_cab_filename.c' object='libarchive/test/test-test_read_format_cab_filename.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_cab_filename.o `test -f 'libarchive/test/test_read_format_cab_filename.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_cab_filename.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_cab_filename.o `test -f 'libarchive/test/test_read_format_cab_filename.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_cab_filename.c -libarchive/test/libarchive_test-test_read_format_cab_filename.obj: libarchive/test/test_read_format_cab_filename.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_cab_filename.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_cab_filename.Tpo -c -o libarchive/test/libarchive_test-test_read_format_cab_filename.obj `if test -f 'libarchive/test/test_read_format_cab_filename.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_cab_filename.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_cab_filename.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_cab_filename.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_cab_filename.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_cab_filename.c' object='libarchive/test/libarchive_test-test_read_format_cab_filename.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_cab_filename.obj: libarchive/test/test_read_format_cab_filename.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_cab_filename.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_cab_filename.Tpo -c -o libarchive/test/test-test_read_format_cab_filename.obj `if test -f 'libarchive/test/test_read_format_cab_filename.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_cab_filename.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_cab_filename.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_cab_filename.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_cab_filename.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_cab_filename.c' object='libarchive/test/test-test_read_format_cab_filename.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_cab_filename.obj `if test -f 'libarchive/test/test_read_format_cab_filename.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_cab_filename.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_cab_filename.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_cab_filename.obj `if test -f 'libarchive/test/test_read_format_cab_filename.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_cab_filename.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_cab_filename.c'; fi` -libarchive/test/libarchive_test-test_read_format_cpio_afio.o: libarchive/test/test_read_format_cpio_afio.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_cpio_afio.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_cpio_afio.Tpo -c -o libarchive/test/libarchive_test-test_read_format_cpio_afio.o `test -f 'libarchive/test/test_read_format_cpio_afio.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_cpio_afio.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_cpio_afio.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_cpio_afio.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_cpio_afio.c' object='libarchive/test/libarchive_test-test_read_format_cpio_afio.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_cpio_afio.o: libarchive/test/test_read_format_cpio_afio.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_cpio_afio.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_cpio_afio.Tpo -c -o libarchive/test/test-test_read_format_cpio_afio.o `test -f 'libarchive/test/test_read_format_cpio_afio.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_cpio_afio.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_cpio_afio.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_cpio_afio.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_cpio_afio.c' object='libarchive/test/test-test_read_format_cpio_afio.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_cpio_afio.o `test -f 'libarchive/test/test_read_format_cpio_afio.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_cpio_afio.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_cpio_afio.o `test -f 'libarchive/test/test_read_format_cpio_afio.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_cpio_afio.c -libarchive/test/libarchive_test-test_read_format_cpio_afio.obj: libarchive/test/test_read_format_cpio_afio.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_cpio_afio.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_cpio_afio.Tpo -c -o libarchive/test/libarchive_test-test_read_format_cpio_afio.obj `if test -f 'libarchive/test/test_read_format_cpio_afio.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_cpio_afio.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_cpio_afio.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_cpio_afio.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_cpio_afio.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_cpio_afio.c' object='libarchive/test/libarchive_test-test_read_format_cpio_afio.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_cpio_afio.obj: libarchive/test/test_read_format_cpio_afio.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_cpio_afio.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_cpio_afio.Tpo -c -o libarchive/test/test-test_read_format_cpio_afio.obj `if test -f 'libarchive/test/test_read_format_cpio_afio.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_cpio_afio.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_cpio_afio.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_cpio_afio.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_cpio_afio.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_cpio_afio.c' object='libarchive/test/test-test_read_format_cpio_afio.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_cpio_afio.obj `if test -f 'libarchive/test/test_read_format_cpio_afio.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_cpio_afio.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_cpio_afio.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_cpio_afio.obj `if test -f 'libarchive/test/test_read_format_cpio_afio.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_cpio_afio.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_cpio_afio.c'; fi` -libarchive/test/libarchive_test-test_read_format_cpio_bin.o: libarchive/test/test_read_format_cpio_bin.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_cpio_bin.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_cpio_bin.Tpo -c -o libarchive/test/libarchive_test-test_read_format_cpio_bin.o `test -f 'libarchive/test/test_read_format_cpio_bin.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_cpio_bin.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_cpio_bin.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_cpio_bin.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_cpio_bin.c' object='libarchive/test/libarchive_test-test_read_format_cpio_bin.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_cpio_bin.o: libarchive/test/test_read_format_cpio_bin.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_cpio_bin.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_cpio_bin.Tpo -c -o libarchive/test/test-test_read_format_cpio_bin.o `test -f 'libarchive/test/test_read_format_cpio_bin.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_cpio_bin.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_cpio_bin.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_cpio_bin.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_cpio_bin.c' object='libarchive/test/test-test_read_format_cpio_bin.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_cpio_bin.o `test -f 'libarchive/test/test_read_format_cpio_bin.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_cpio_bin.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_cpio_bin.o `test -f 'libarchive/test/test_read_format_cpio_bin.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_cpio_bin.c -libarchive/test/libarchive_test-test_read_format_cpio_bin.obj: libarchive/test/test_read_format_cpio_bin.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_cpio_bin.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_cpio_bin.Tpo -c -o libarchive/test/libarchive_test-test_read_format_cpio_bin.obj `if test -f 'libarchive/test/test_read_format_cpio_bin.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_cpio_bin.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_cpio_bin.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_cpio_bin.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_cpio_bin.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_cpio_bin.c' object='libarchive/test/libarchive_test-test_read_format_cpio_bin.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_cpio_bin.obj: libarchive/test/test_read_format_cpio_bin.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_cpio_bin.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_cpio_bin.Tpo -c -o libarchive/test/test-test_read_format_cpio_bin.obj `if test -f 'libarchive/test/test_read_format_cpio_bin.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_cpio_bin.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_cpio_bin.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_cpio_bin.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_cpio_bin.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_cpio_bin.c' object='libarchive/test/test-test_read_format_cpio_bin.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_cpio_bin.obj `if test -f 'libarchive/test/test_read_format_cpio_bin.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_cpio_bin.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_cpio_bin.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_cpio_bin.obj `if test -f 'libarchive/test/test_read_format_cpio_bin.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_cpio_bin.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_cpio_bin.c'; fi` -libarchive/test/libarchive_test-test_read_format_cpio_bin_Z.o: libarchive/test/test_read_format_cpio_bin_Z.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_cpio_bin_Z.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_cpio_bin_Z.Tpo -c -o libarchive/test/libarchive_test-test_read_format_cpio_bin_Z.o `test -f 'libarchive/test/test_read_format_cpio_bin_Z.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_cpio_bin_Z.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_cpio_bin_Z.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_cpio_bin_Z.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_cpio_bin_Z.c' object='libarchive/test/libarchive_test-test_read_format_cpio_bin_Z.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_cpio_bin_Z.o: libarchive/test/test_read_format_cpio_bin_Z.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_cpio_bin_Z.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_cpio_bin_Z.Tpo -c -o libarchive/test/test-test_read_format_cpio_bin_Z.o `test -f 'libarchive/test/test_read_format_cpio_bin_Z.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_cpio_bin_Z.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_cpio_bin_Z.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_cpio_bin_Z.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_cpio_bin_Z.c' object='libarchive/test/test-test_read_format_cpio_bin_Z.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_cpio_bin_Z.o `test -f 'libarchive/test/test_read_format_cpio_bin_Z.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_cpio_bin_Z.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_cpio_bin_Z.o `test -f 'libarchive/test/test_read_format_cpio_bin_Z.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_cpio_bin_Z.c -libarchive/test/libarchive_test-test_read_format_cpio_bin_Z.obj: libarchive/test/test_read_format_cpio_bin_Z.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_cpio_bin_Z.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_cpio_bin_Z.Tpo -c -o libarchive/test/libarchive_test-test_read_format_cpio_bin_Z.obj `if test -f 'libarchive/test/test_read_format_cpio_bin_Z.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_cpio_bin_Z.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_cpio_bin_Z.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_cpio_bin_Z.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_cpio_bin_Z.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_cpio_bin_Z.c' object='libarchive/test/libarchive_test-test_read_format_cpio_bin_Z.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_cpio_bin_Z.obj: libarchive/test/test_read_format_cpio_bin_Z.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_cpio_bin_Z.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_cpio_bin_Z.Tpo -c -o libarchive/test/test-test_read_format_cpio_bin_Z.obj `if test -f 'libarchive/test/test_read_format_cpio_bin_Z.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_cpio_bin_Z.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_cpio_bin_Z.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_cpio_bin_Z.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_cpio_bin_Z.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_cpio_bin_Z.c' object='libarchive/test/test-test_read_format_cpio_bin_Z.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_cpio_bin_Z.obj `if test -f 'libarchive/test/test_read_format_cpio_bin_Z.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_cpio_bin_Z.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_cpio_bin_Z.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_cpio_bin_Z.obj `if test -f 'libarchive/test/test_read_format_cpio_bin_Z.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_cpio_bin_Z.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_cpio_bin_Z.c'; fi` -libarchive/test/libarchive_test-test_read_format_cpio_bin_be.o: libarchive/test/test_read_format_cpio_bin_be.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_cpio_bin_be.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_cpio_bin_be.Tpo -c -o libarchive/test/libarchive_test-test_read_format_cpio_bin_be.o `test -f 'libarchive/test/test_read_format_cpio_bin_be.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_cpio_bin_be.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_cpio_bin_be.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_cpio_bin_be.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_cpio_bin_be.c' object='libarchive/test/libarchive_test-test_read_format_cpio_bin_be.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_cpio_bin_be.o: libarchive/test/test_read_format_cpio_bin_be.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_cpio_bin_be.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_cpio_bin_be.Tpo -c -o libarchive/test/test-test_read_format_cpio_bin_be.o `test -f 'libarchive/test/test_read_format_cpio_bin_be.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_cpio_bin_be.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_cpio_bin_be.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_cpio_bin_be.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_cpio_bin_be.c' object='libarchive/test/test-test_read_format_cpio_bin_be.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_cpio_bin_be.o `test -f 'libarchive/test/test_read_format_cpio_bin_be.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_cpio_bin_be.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_cpio_bin_be.o `test -f 'libarchive/test/test_read_format_cpio_bin_be.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_cpio_bin_be.c -libarchive/test/libarchive_test-test_read_format_cpio_bin_be.obj: libarchive/test/test_read_format_cpio_bin_be.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_cpio_bin_be.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_cpio_bin_be.Tpo -c -o libarchive/test/libarchive_test-test_read_format_cpio_bin_be.obj `if test -f 'libarchive/test/test_read_format_cpio_bin_be.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_cpio_bin_be.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_cpio_bin_be.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_cpio_bin_be.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_cpio_bin_be.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_cpio_bin_be.c' object='libarchive/test/libarchive_test-test_read_format_cpio_bin_be.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_cpio_bin_be.obj: libarchive/test/test_read_format_cpio_bin_be.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_cpio_bin_be.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_cpio_bin_be.Tpo -c -o libarchive/test/test-test_read_format_cpio_bin_be.obj `if test -f 'libarchive/test/test_read_format_cpio_bin_be.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_cpio_bin_be.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_cpio_bin_be.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_cpio_bin_be.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_cpio_bin_be.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_cpio_bin_be.c' object='libarchive/test/test-test_read_format_cpio_bin_be.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_cpio_bin_be.obj `if test -f 'libarchive/test/test_read_format_cpio_bin_be.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_cpio_bin_be.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_cpio_bin_be.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_cpio_bin_be.obj `if test -f 'libarchive/test/test_read_format_cpio_bin_be.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_cpio_bin_be.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_cpio_bin_be.c'; fi` -libarchive/test/libarchive_test-test_read_format_cpio_bin_bz2.o: libarchive/test/test_read_format_cpio_bin_bz2.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_cpio_bin_bz2.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_cpio_bin_bz2.Tpo -c -o libarchive/test/libarchive_test-test_read_format_cpio_bin_bz2.o `test -f 'libarchive/test/test_read_format_cpio_bin_bz2.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_cpio_bin_bz2.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_cpio_bin_bz2.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_cpio_bin_bz2.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_cpio_bin_bz2.c' object='libarchive/test/libarchive_test-test_read_format_cpio_bin_bz2.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_cpio_bin_bz2.o: libarchive/test/test_read_format_cpio_bin_bz2.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_cpio_bin_bz2.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_cpio_bin_bz2.Tpo -c -o libarchive/test/test-test_read_format_cpio_bin_bz2.o `test -f 'libarchive/test/test_read_format_cpio_bin_bz2.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_cpio_bin_bz2.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_cpio_bin_bz2.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_cpio_bin_bz2.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_cpio_bin_bz2.c' object='libarchive/test/test-test_read_format_cpio_bin_bz2.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_cpio_bin_bz2.o `test -f 'libarchive/test/test_read_format_cpio_bin_bz2.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_cpio_bin_bz2.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_cpio_bin_bz2.o `test -f 'libarchive/test/test_read_format_cpio_bin_bz2.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_cpio_bin_bz2.c -libarchive/test/libarchive_test-test_read_format_cpio_bin_bz2.obj: libarchive/test/test_read_format_cpio_bin_bz2.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_cpio_bin_bz2.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_cpio_bin_bz2.Tpo -c -o libarchive/test/libarchive_test-test_read_format_cpio_bin_bz2.obj `if test -f 'libarchive/test/test_read_format_cpio_bin_bz2.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_cpio_bin_bz2.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_cpio_bin_bz2.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_cpio_bin_bz2.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_cpio_bin_bz2.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_cpio_bin_bz2.c' object='libarchive/test/libarchive_test-test_read_format_cpio_bin_bz2.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_cpio_bin_bz2.obj: libarchive/test/test_read_format_cpio_bin_bz2.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_cpio_bin_bz2.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_cpio_bin_bz2.Tpo -c -o libarchive/test/test-test_read_format_cpio_bin_bz2.obj `if test -f 'libarchive/test/test_read_format_cpio_bin_bz2.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_cpio_bin_bz2.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_cpio_bin_bz2.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_cpio_bin_bz2.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_cpio_bin_bz2.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_cpio_bin_bz2.c' object='libarchive/test/test-test_read_format_cpio_bin_bz2.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_cpio_bin_bz2.obj `if test -f 'libarchive/test/test_read_format_cpio_bin_bz2.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_cpio_bin_bz2.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_cpio_bin_bz2.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_cpio_bin_bz2.obj `if test -f 'libarchive/test/test_read_format_cpio_bin_bz2.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_cpio_bin_bz2.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_cpio_bin_bz2.c'; fi` -libarchive/test/libarchive_test-test_read_format_cpio_bin_gz.o: libarchive/test/test_read_format_cpio_bin_gz.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_cpio_bin_gz.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_cpio_bin_gz.Tpo -c -o libarchive/test/libarchive_test-test_read_format_cpio_bin_gz.o `test -f 'libarchive/test/test_read_format_cpio_bin_gz.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_cpio_bin_gz.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_cpio_bin_gz.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_cpio_bin_gz.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_cpio_bin_gz.c' object='libarchive/test/libarchive_test-test_read_format_cpio_bin_gz.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_cpio_bin_gz.o: libarchive/test/test_read_format_cpio_bin_gz.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_cpio_bin_gz.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_cpio_bin_gz.Tpo -c -o libarchive/test/test-test_read_format_cpio_bin_gz.o `test -f 'libarchive/test/test_read_format_cpio_bin_gz.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_cpio_bin_gz.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_cpio_bin_gz.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_cpio_bin_gz.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_cpio_bin_gz.c' object='libarchive/test/test-test_read_format_cpio_bin_gz.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_cpio_bin_gz.o `test -f 'libarchive/test/test_read_format_cpio_bin_gz.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_cpio_bin_gz.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_cpio_bin_gz.o `test -f 'libarchive/test/test_read_format_cpio_bin_gz.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_cpio_bin_gz.c -libarchive/test/libarchive_test-test_read_format_cpio_bin_gz.obj: libarchive/test/test_read_format_cpio_bin_gz.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_cpio_bin_gz.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_cpio_bin_gz.Tpo -c -o libarchive/test/libarchive_test-test_read_format_cpio_bin_gz.obj `if test -f 'libarchive/test/test_read_format_cpio_bin_gz.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_cpio_bin_gz.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_cpio_bin_gz.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_cpio_bin_gz.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_cpio_bin_gz.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_cpio_bin_gz.c' object='libarchive/test/libarchive_test-test_read_format_cpio_bin_gz.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_cpio_bin_gz.obj: libarchive/test/test_read_format_cpio_bin_gz.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_cpio_bin_gz.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_cpio_bin_gz.Tpo -c -o libarchive/test/test-test_read_format_cpio_bin_gz.obj `if test -f 'libarchive/test/test_read_format_cpio_bin_gz.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_cpio_bin_gz.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_cpio_bin_gz.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_cpio_bin_gz.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_cpio_bin_gz.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_cpio_bin_gz.c' object='libarchive/test/test-test_read_format_cpio_bin_gz.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_cpio_bin_gz.obj `if test -f 'libarchive/test/test_read_format_cpio_bin_gz.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_cpio_bin_gz.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_cpio_bin_gz.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_cpio_bin_gz.obj `if test -f 'libarchive/test/test_read_format_cpio_bin_gz.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_cpio_bin_gz.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_cpio_bin_gz.c'; fi` -libarchive/test/libarchive_test-test_read_format_cpio_bin_le.o: libarchive/test/test_read_format_cpio_bin_le.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_cpio_bin_le.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_cpio_bin_le.Tpo -c -o libarchive/test/libarchive_test-test_read_format_cpio_bin_le.o `test -f 'libarchive/test/test_read_format_cpio_bin_le.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_cpio_bin_le.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_cpio_bin_le.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_cpio_bin_le.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_cpio_bin_le.c' object='libarchive/test/libarchive_test-test_read_format_cpio_bin_le.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_cpio_bin_le.o: libarchive/test/test_read_format_cpio_bin_le.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_cpio_bin_le.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_cpio_bin_le.Tpo -c -o libarchive/test/test-test_read_format_cpio_bin_le.o `test -f 'libarchive/test/test_read_format_cpio_bin_le.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_cpio_bin_le.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_cpio_bin_le.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_cpio_bin_le.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_cpio_bin_le.c' object='libarchive/test/test-test_read_format_cpio_bin_le.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_cpio_bin_le.o `test -f 'libarchive/test/test_read_format_cpio_bin_le.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_cpio_bin_le.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_cpio_bin_le.o `test -f 'libarchive/test/test_read_format_cpio_bin_le.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_cpio_bin_le.c -libarchive/test/libarchive_test-test_read_format_cpio_bin_le.obj: libarchive/test/test_read_format_cpio_bin_le.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_cpio_bin_le.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_cpio_bin_le.Tpo -c -o libarchive/test/libarchive_test-test_read_format_cpio_bin_le.obj `if test -f 'libarchive/test/test_read_format_cpio_bin_le.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_cpio_bin_le.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_cpio_bin_le.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_cpio_bin_le.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_cpio_bin_le.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_cpio_bin_le.c' object='libarchive/test/libarchive_test-test_read_format_cpio_bin_le.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_cpio_bin_le.obj: libarchive/test/test_read_format_cpio_bin_le.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_cpio_bin_le.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_cpio_bin_le.Tpo -c -o libarchive/test/test-test_read_format_cpio_bin_le.obj `if test -f 'libarchive/test/test_read_format_cpio_bin_le.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_cpio_bin_le.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_cpio_bin_le.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_cpio_bin_le.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_cpio_bin_le.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_cpio_bin_le.c' object='libarchive/test/test-test_read_format_cpio_bin_le.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_cpio_bin_le.obj `if test -f 'libarchive/test/test_read_format_cpio_bin_le.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_cpio_bin_le.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_cpio_bin_le.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_cpio_bin_le.obj `if test -f 'libarchive/test/test_read_format_cpio_bin_le.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_cpio_bin_le.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_cpio_bin_le.c'; fi` -libarchive/test/libarchive_test-test_read_format_cpio_bin_lzip.o: libarchive/test/test_read_format_cpio_bin_lzip.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_cpio_bin_lzip.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_cpio_bin_lzip.Tpo -c -o libarchive/test/libarchive_test-test_read_format_cpio_bin_lzip.o `test -f 'libarchive/test/test_read_format_cpio_bin_lzip.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_cpio_bin_lzip.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_cpio_bin_lzip.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_cpio_bin_lzip.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_cpio_bin_lzip.c' object='libarchive/test/libarchive_test-test_read_format_cpio_bin_lzip.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_cpio_bin_lzip.o: libarchive/test/test_read_format_cpio_bin_lzip.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_cpio_bin_lzip.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_cpio_bin_lzip.Tpo -c -o libarchive/test/test-test_read_format_cpio_bin_lzip.o `test -f 'libarchive/test/test_read_format_cpio_bin_lzip.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_cpio_bin_lzip.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_cpio_bin_lzip.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_cpio_bin_lzip.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_cpio_bin_lzip.c' object='libarchive/test/test-test_read_format_cpio_bin_lzip.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_cpio_bin_lzip.o `test -f 'libarchive/test/test_read_format_cpio_bin_lzip.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_cpio_bin_lzip.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_cpio_bin_lzip.o `test -f 'libarchive/test/test_read_format_cpio_bin_lzip.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_cpio_bin_lzip.c -libarchive/test/libarchive_test-test_read_format_cpio_bin_lzip.obj: libarchive/test/test_read_format_cpio_bin_lzip.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_cpio_bin_lzip.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_cpio_bin_lzip.Tpo -c -o libarchive/test/libarchive_test-test_read_format_cpio_bin_lzip.obj `if test -f 'libarchive/test/test_read_format_cpio_bin_lzip.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_cpio_bin_lzip.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_cpio_bin_lzip.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_cpio_bin_lzip.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_cpio_bin_lzip.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_cpio_bin_lzip.c' object='libarchive/test/libarchive_test-test_read_format_cpio_bin_lzip.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_cpio_bin_lzip.obj: libarchive/test/test_read_format_cpio_bin_lzip.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_cpio_bin_lzip.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_cpio_bin_lzip.Tpo -c -o libarchive/test/test-test_read_format_cpio_bin_lzip.obj `if test -f 'libarchive/test/test_read_format_cpio_bin_lzip.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_cpio_bin_lzip.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_cpio_bin_lzip.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_cpio_bin_lzip.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_cpio_bin_lzip.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_cpio_bin_lzip.c' object='libarchive/test/test-test_read_format_cpio_bin_lzip.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_cpio_bin_lzip.obj `if test -f 'libarchive/test/test_read_format_cpio_bin_lzip.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_cpio_bin_lzip.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_cpio_bin_lzip.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_cpio_bin_lzip.obj `if test -f 'libarchive/test/test_read_format_cpio_bin_lzip.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_cpio_bin_lzip.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_cpio_bin_lzip.c'; fi` -libarchive/test/libarchive_test-test_read_format_cpio_bin_lzma.o: libarchive/test/test_read_format_cpio_bin_lzma.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_cpio_bin_lzma.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_cpio_bin_lzma.Tpo -c -o libarchive/test/libarchive_test-test_read_format_cpio_bin_lzma.o `test -f 'libarchive/test/test_read_format_cpio_bin_lzma.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_cpio_bin_lzma.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_cpio_bin_lzma.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_cpio_bin_lzma.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_cpio_bin_lzma.c' object='libarchive/test/libarchive_test-test_read_format_cpio_bin_lzma.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_cpio_bin_lzma.o: libarchive/test/test_read_format_cpio_bin_lzma.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_cpio_bin_lzma.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_cpio_bin_lzma.Tpo -c -o libarchive/test/test-test_read_format_cpio_bin_lzma.o `test -f 'libarchive/test/test_read_format_cpio_bin_lzma.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_cpio_bin_lzma.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_cpio_bin_lzma.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_cpio_bin_lzma.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_cpio_bin_lzma.c' object='libarchive/test/test-test_read_format_cpio_bin_lzma.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_cpio_bin_lzma.o `test -f 'libarchive/test/test_read_format_cpio_bin_lzma.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_cpio_bin_lzma.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_cpio_bin_lzma.o `test -f 'libarchive/test/test_read_format_cpio_bin_lzma.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_cpio_bin_lzma.c -libarchive/test/libarchive_test-test_read_format_cpio_bin_lzma.obj: libarchive/test/test_read_format_cpio_bin_lzma.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_cpio_bin_lzma.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_cpio_bin_lzma.Tpo -c -o libarchive/test/libarchive_test-test_read_format_cpio_bin_lzma.obj `if test -f 'libarchive/test/test_read_format_cpio_bin_lzma.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_cpio_bin_lzma.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_cpio_bin_lzma.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_cpio_bin_lzma.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_cpio_bin_lzma.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_cpio_bin_lzma.c' object='libarchive/test/libarchive_test-test_read_format_cpio_bin_lzma.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_cpio_bin_lzma.obj: libarchive/test/test_read_format_cpio_bin_lzma.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_cpio_bin_lzma.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_cpio_bin_lzma.Tpo -c -o libarchive/test/test-test_read_format_cpio_bin_lzma.obj `if test -f 'libarchive/test/test_read_format_cpio_bin_lzma.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_cpio_bin_lzma.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_cpio_bin_lzma.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_cpio_bin_lzma.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_cpio_bin_lzma.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_cpio_bin_lzma.c' object='libarchive/test/test-test_read_format_cpio_bin_lzma.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_cpio_bin_lzma.obj `if test -f 'libarchive/test/test_read_format_cpio_bin_lzma.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_cpio_bin_lzma.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_cpio_bin_lzma.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_cpio_bin_lzma.obj `if test -f 'libarchive/test/test_read_format_cpio_bin_lzma.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_cpio_bin_lzma.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_cpio_bin_lzma.c'; fi` -libarchive/test/libarchive_test-test_read_format_cpio_bin_xz.o: libarchive/test/test_read_format_cpio_bin_xz.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_cpio_bin_xz.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_cpio_bin_xz.Tpo -c -o libarchive/test/libarchive_test-test_read_format_cpio_bin_xz.o `test -f 'libarchive/test/test_read_format_cpio_bin_xz.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_cpio_bin_xz.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_cpio_bin_xz.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_cpio_bin_xz.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_cpio_bin_xz.c' object='libarchive/test/libarchive_test-test_read_format_cpio_bin_xz.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_cpio_bin_xz.o: libarchive/test/test_read_format_cpio_bin_xz.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_cpio_bin_xz.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_cpio_bin_xz.Tpo -c -o libarchive/test/test-test_read_format_cpio_bin_xz.o `test -f 'libarchive/test/test_read_format_cpio_bin_xz.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_cpio_bin_xz.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_cpio_bin_xz.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_cpio_bin_xz.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_cpio_bin_xz.c' object='libarchive/test/test-test_read_format_cpio_bin_xz.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_cpio_bin_xz.o `test -f 'libarchive/test/test_read_format_cpio_bin_xz.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_cpio_bin_xz.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_cpio_bin_xz.o `test -f 'libarchive/test/test_read_format_cpio_bin_xz.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_cpio_bin_xz.c -libarchive/test/libarchive_test-test_read_format_cpio_bin_xz.obj: libarchive/test/test_read_format_cpio_bin_xz.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_cpio_bin_xz.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_cpio_bin_xz.Tpo -c -o libarchive/test/libarchive_test-test_read_format_cpio_bin_xz.obj `if test -f 'libarchive/test/test_read_format_cpio_bin_xz.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_cpio_bin_xz.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_cpio_bin_xz.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_cpio_bin_xz.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_cpio_bin_xz.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_cpio_bin_xz.c' object='libarchive/test/libarchive_test-test_read_format_cpio_bin_xz.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_cpio_bin_xz.obj: libarchive/test/test_read_format_cpio_bin_xz.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_cpio_bin_xz.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_cpio_bin_xz.Tpo -c -o libarchive/test/test-test_read_format_cpio_bin_xz.obj `if test -f 'libarchive/test/test_read_format_cpio_bin_xz.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_cpio_bin_xz.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_cpio_bin_xz.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_cpio_bin_xz.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_cpio_bin_xz.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_cpio_bin_xz.c' object='libarchive/test/test-test_read_format_cpio_bin_xz.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_cpio_bin_xz.obj `if test -f 'libarchive/test/test_read_format_cpio_bin_xz.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_cpio_bin_xz.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_cpio_bin_xz.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_cpio_bin_xz.obj `if test -f 'libarchive/test/test_read_format_cpio_bin_xz.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_cpio_bin_xz.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_cpio_bin_xz.c'; fi` -libarchive/test/libarchive_test-test_read_format_cpio_filename.o: libarchive/test/test_read_format_cpio_filename.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_cpio_filename.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_cpio_filename.Tpo -c -o libarchive/test/libarchive_test-test_read_format_cpio_filename.o `test -f 'libarchive/test/test_read_format_cpio_filename.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_cpio_filename.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_cpio_filename.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_cpio_filename.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_cpio_filename.c' object='libarchive/test/libarchive_test-test_read_format_cpio_filename.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_cpio_filename.o: libarchive/test/test_read_format_cpio_filename.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_cpio_filename.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_cpio_filename.Tpo -c -o libarchive/test/test-test_read_format_cpio_filename.o `test -f 'libarchive/test/test_read_format_cpio_filename.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_cpio_filename.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_cpio_filename.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_cpio_filename.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_cpio_filename.c' object='libarchive/test/test-test_read_format_cpio_filename.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_cpio_filename.o `test -f 'libarchive/test/test_read_format_cpio_filename.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_cpio_filename.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_cpio_filename.o `test -f 'libarchive/test/test_read_format_cpio_filename.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_cpio_filename.c -libarchive/test/libarchive_test-test_read_format_cpio_filename.obj: libarchive/test/test_read_format_cpio_filename.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_cpio_filename.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_cpio_filename.Tpo -c -o libarchive/test/libarchive_test-test_read_format_cpio_filename.obj `if test -f 'libarchive/test/test_read_format_cpio_filename.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_cpio_filename.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_cpio_filename.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_cpio_filename.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_cpio_filename.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_cpio_filename.c' object='libarchive/test/libarchive_test-test_read_format_cpio_filename.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_cpio_filename.obj: libarchive/test/test_read_format_cpio_filename.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_cpio_filename.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_cpio_filename.Tpo -c -o libarchive/test/test-test_read_format_cpio_filename.obj `if test -f 'libarchive/test/test_read_format_cpio_filename.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_cpio_filename.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_cpio_filename.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_cpio_filename.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_cpio_filename.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_cpio_filename.c' object='libarchive/test/test-test_read_format_cpio_filename.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_cpio_filename.obj `if test -f 'libarchive/test/test_read_format_cpio_filename.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_cpio_filename.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_cpio_filename.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_cpio_filename.obj `if test -f 'libarchive/test/test_read_format_cpio_filename.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_cpio_filename.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_cpio_filename.c'; fi` -libarchive/test/libarchive_test-test_read_format_cpio_odc.o: libarchive/test/test_read_format_cpio_odc.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_cpio_odc.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_cpio_odc.Tpo -c -o libarchive/test/libarchive_test-test_read_format_cpio_odc.o `test -f 'libarchive/test/test_read_format_cpio_odc.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_cpio_odc.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_cpio_odc.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_cpio_odc.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_cpio_odc.c' object='libarchive/test/libarchive_test-test_read_format_cpio_odc.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_cpio_odc.o: libarchive/test/test_read_format_cpio_odc.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_cpio_odc.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_cpio_odc.Tpo -c -o libarchive/test/test-test_read_format_cpio_odc.o `test -f 'libarchive/test/test_read_format_cpio_odc.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_cpio_odc.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_cpio_odc.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_cpio_odc.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_cpio_odc.c' object='libarchive/test/test-test_read_format_cpio_odc.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_cpio_odc.o `test -f 'libarchive/test/test_read_format_cpio_odc.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_cpio_odc.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_cpio_odc.o `test -f 'libarchive/test/test_read_format_cpio_odc.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_cpio_odc.c -libarchive/test/libarchive_test-test_read_format_cpio_odc.obj: libarchive/test/test_read_format_cpio_odc.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_cpio_odc.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_cpio_odc.Tpo -c -o libarchive/test/libarchive_test-test_read_format_cpio_odc.obj `if test -f 'libarchive/test/test_read_format_cpio_odc.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_cpio_odc.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_cpio_odc.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_cpio_odc.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_cpio_odc.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_cpio_odc.c' object='libarchive/test/libarchive_test-test_read_format_cpio_odc.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_cpio_odc.obj: libarchive/test/test_read_format_cpio_odc.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_cpio_odc.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_cpio_odc.Tpo -c -o libarchive/test/test-test_read_format_cpio_odc.obj `if test -f 'libarchive/test/test_read_format_cpio_odc.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_cpio_odc.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_cpio_odc.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_cpio_odc.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_cpio_odc.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_cpio_odc.c' object='libarchive/test/test-test_read_format_cpio_odc.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_cpio_odc.obj `if test -f 'libarchive/test/test_read_format_cpio_odc.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_cpio_odc.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_cpio_odc.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_cpio_odc.obj `if test -f 'libarchive/test/test_read_format_cpio_odc.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_cpio_odc.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_cpio_odc.c'; fi` -libarchive/test/libarchive_test-test_read_format_cpio_svr4_bzip2_rpm.o: libarchive/test/test_read_format_cpio_svr4_bzip2_rpm.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_cpio_svr4_bzip2_rpm.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_cpio_svr4_bzip2_rpm.Tpo -c -o libarchive/test/libarchive_test-test_read_format_cpio_svr4_bzip2_rpm.o `test -f 'libarchive/test/test_read_format_cpio_svr4_bzip2_rpm.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_cpio_svr4_bzip2_rpm.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_cpio_svr4_bzip2_rpm.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_cpio_svr4_bzip2_rpm.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_cpio_svr4_bzip2_rpm.c' object='libarchive/test/libarchive_test-test_read_format_cpio_svr4_bzip2_rpm.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_cpio_svr4_bzip2_rpm.o: libarchive/test/test_read_format_cpio_svr4_bzip2_rpm.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_cpio_svr4_bzip2_rpm.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_cpio_svr4_bzip2_rpm.Tpo -c -o libarchive/test/test-test_read_format_cpio_svr4_bzip2_rpm.o `test -f 'libarchive/test/test_read_format_cpio_svr4_bzip2_rpm.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_cpio_svr4_bzip2_rpm.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_cpio_svr4_bzip2_rpm.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_cpio_svr4_bzip2_rpm.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_cpio_svr4_bzip2_rpm.c' object='libarchive/test/test-test_read_format_cpio_svr4_bzip2_rpm.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_cpio_svr4_bzip2_rpm.o `test -f 'libarchive/test/test_read_format_cpio_svr4_bzip2_rpm.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_cpio_svr4_bzip2_rpm.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_cpio_svr4_bzip2_rpm.o `test -f 'libarchive/test/test_read_format_cpio_svr4_bzip2_rpm.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_cpio_svr4_bzip2_rpm.c -libarchive/test/libarchive_test-test_read_format_cpio_svr4_bzip2_rpm.obj: libarchive/test/test_read_format_cpio_svr4_bzip2_rpm.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_cpio_svr4_bzip2_rpm.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_cpio_svr4_bzip2_rpm.Tpo -c -o libarchive/test/libarchive_test-test_read_format_cpio_svr4_bzip2_rpm.obj `if test -f 'libarchive/test/test_read_format_cpio_svr4_bzip2_rpm.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_cpio_svr4_bzip2_rpm.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_cpio_svr4_bzip2_rpm.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_cpio_svr4_bzip2_rpm.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_cpio_svr4_bzip2_rpm.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_cpio_svr4_bzip2_rpm.c' object='libarchive/test/libarchive_test-test_read_format_cpio_svr4_bzip2_rpm.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_cpio_svr4_bzip2_rpm.obj: libarchive/test/test_read_format_cpio_svr4_bzip2_rpm.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_cpio_svr4_bzip2_rpm.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_cpio_svr4_bzip2_rpm.Tpo -c -o libarchive/test/test-test_read_format_cpio_svr4_bzip2_rpm.obj `if test -f 'libarchive/test/test_read_format_cpio_svr4_bzip2_rpm.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_cpio_svr4_bzip2_rpm.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_cpio_svr4_bzip2_rpm.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_cpio_svr4_bzip2_rpm.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_cpio_svr4_bzip2_rpm.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_cpio_svr4_bzip2_rpm.c' object='libarchive/test/test-test_read_format_cpio_svr4_bzip2_rpm.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_cpio_svr4_bzip2_rpm.obj `if test -f 'libarchive/test/test_read_format_cpio_svr4_bzip2_rpm.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_cpio_svr4_bzip2_rpm.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_cpio_svr4_bzip2_rpm.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_cpio_svr4_bzip2_rpm.obj `if test -f 'libarchive/test/test_read_format_cpio_svr4_bzip2_rpm.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_cpio_svr4_bzip2_rpm.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_cpio_svr4_bzip2_rpm.c'; fi` -libarchive/test/libarchive_test-test_read_format_cpio_svr4_gzip.o: libarchive/test/test_read_format_cpio_svr4_gzip.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_cpio_svr4_gzip.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_cpio_svr4_gzip.Tpo -c -o libarchive/test/libarchive_test-test_read_format_cpio_svr4_gzip.o `test -f 'libarchive/test/test_read_format_cpio_svr4_gzip.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_cpio_svr4_gzip.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_cpio_svr4_gzip.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_cpio_svr4_gzip.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_cpio_svr4_gzip.c' object='libarchive/test/libarchive_test-test_read_format_cpio_svr4_gzip.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_cpio_svr4_gzip.o: libarchive/test/test_read_format_cpio_svr4_gzip.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_cpio_svr4_gzip.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_cpio_svr4_gzip.Tpo -c -o libarchive/test/test-test_read_format_cpio_svr4_gzip.o `test -f 'libarchive/test/test_read_format_cpio_svr4_gzip.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_cpio_svr4_gzip.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_cpio_svr4_gzip.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_cpio_svr4_gzip.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_cpio_svr4_gzip.c' object='libarchive/test/test-test_read_format_cpio_svr4_gzip.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_cpio_svr4_gzip.o `test -f 'libarchive/test/test_read_format_cpio_svr4_gzip.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_cpio_svr4_gzip.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_cpio_svr4_gzip.o `test -f 'libarchive/test/test_read_format_cpio_svr4_gzip.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_cpio_svr4_gzip.c -libarchive/test/libarchive_test-test_read_format_cpio_svr4_gzip.obj: libarchive/test/test_read_format_cpio_svr4_gzip.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_cpio_svr4_gzip.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_cpio_svr4_gzip.Tpo -c -o libarchive/test/libarchive_test-test_read_format_cpio_svr4_gzip.obj `if test -f 'libarchive/test/test_read_format_cpio_svr4_gzip.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_cpio_svr4_gzip.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_cpio_svr4_gzip.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_cpio_svr4_gzip.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_cpio_svr4_gzip.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_cpio_svr4_gzip.c' object='libarchive/test/libarchive_test-test_read_format_cpio_svr4_gzip.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_cpio_svr4_gzip.obj: libarchive/test/test_read_format_cpio_svr4_gzip.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_cpio_svr4_gzip.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_cpio_svr4_gzip.Tpo -c -o libarchive/test/test-test_read_format_cpio_svr4_gzip.obj `if test -f 'libarchive/test/test_read_format_cpio_svr4_gzip.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_cpio_svr4_gzip.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_cpio_svr4_gzip.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_cpio_svr4_gzip.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_cpio_svr4_gzip.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_cpio_svr4_gzip.c' object='libarchive/test/test-test_read_format_cpio_svr4_gzip.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_cpio_svr4_gzip.obj `if test -f 'libarchive/test/test_read_format_cpio_svr4_gzip.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_cpio_svr4_gzip.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_cpio_svr4_gzip.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_cpio_svr4_gzip.obj `if test -f 'libarchive/test/test_read_format_cpio_svr4_gzip.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_cpio_svr4_gzip.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_cpio_svr4_gzip.c'; fi` -libarchive/test/libarchive_test-test_read_format_cpio_svr4_gzip_rpm.o: libarchive/test/test_read_format_cpio_svr4_gzip_rpm.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_cpio_svr4_gzip_rpm.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_cpio_svr4_gzip_rpm.Tpo -c -o libarchive/test/libarchive_test-test_read_format_cpio_svr4_gzip_rpm.o `test -f 'libarchive/test/test_read_format_cpio_svr4_gzip_rpm.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_cpio_svr4_gzip_rpm.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_cpio_svr4_gzip_rpm.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_cpio_svr4_gzip_rpm.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_cpio_svr4_gzip_rpm.c' object='libarchive/test/libarchive_test-test_read_format_cpio_svr4_gzip_rpm.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_cpio_svr4_gzip_rpm.o: libarchive/test/test_read_format_cpio_svr4_gzip_rpm.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_cpio_svr4_gzip_rpm.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_cpio_svr4_gzip_rpm.Tpo -c -o libarchive/test/test-test_read_format_cpio_svr4_gzip_rpm.o `test -f 'libarchive/test/test_read_format_cpio_svr4_gzip_rpm.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_cpio_svr4_gzip_rpm.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_cpio_svr4_gzip_rpm.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_cpio_svr4_gzip_rpm.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_cpio_svr4_gzip_rpm.c' object='libarchive/test/test-test_read_format_cpio_svr4_gzip_rpm.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_cpio_svr4_gzip_rpm.o `test -f 'libarchive/test/test_read_format_cpio_svr4_gzip_rpm.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_cpio_svr4_gzip_rpm.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_cpio_svr4_gzip_rpm.o `test -f 'libarchive/test/test_read_format_cpio_svr4_gzip_rpm.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_cpio_svr4_gzip_rpm.c -libarchive/test/libarchive_test-test_read_format_cpio_svr4_gzip_rpm.obj: libarchive/test/test_read_format_cpio_svr4_gzip_rpm.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_cpio_svr4_gzip_rpm.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_cpio_svr4_gzip_rpm.Tpo -c -o libarchive/test/libarchive_test-test_read_format_cpio_svr4_gzip_rpm.obj `if test -f 'libarchive/test/test_read_format_cpio_svr4_gzip_rpm.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_cpio_svr4_gzip_rpm.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_cpio_svr4_gzip_rpm.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_cpio_svr4_gzip_rpm.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_cpio_svr4_gzip_rpm.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_cpio_svr4_gzip_rpm.c' object='libarchive/test/libarchive_test-test_read_format_cpio_svr4_gzip_rpm.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_cpio_svr4_gzip_rpm.obj: libarchive/test/test_read_format_cpio_svr4_gzip_rpm.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_cpio_svr4_gzip_rpm.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_cpio_svr4_gzip_rpm.Tpo -c -o libarchive/test/test-test_read_format_cpio_svr4_gzip_rpm.obj `if test -f 'libarchive/test/test_read_format_cpio_svr4_gzip_rpm.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_cpio_svr4_gzip_rpm.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_cpio_svr4_gzip_rpm.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_cpio_svr4_gzip_rpm.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_cpio_svr4_gzip_rpm.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_cpio_svr4_gzip_rpm.c' object='libarchive/test/test-test_read_format_cpio_svr4_gzip_rpm.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_cpio_svr4_gzip_rpm.obj `if test -f 'libarchive/test/test_read_format_cpio_svr4_gzip_rpm.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_cpio_svr4_gzip_rpm.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_cpio_svr4_gzip_rpm.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_cpio_svr4_gzip_rpm.obj `if test -f 'libarchive/test/test_read_format_cpio_svr4_gzip_rpm.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_cpio_svr4_gzip_rpm.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_cpio_svr4_gzip_rpm.c'; fi` -libarchive/test/libarchive_test-test_read_format_cpio_svr4c_Z.o: libarchive/test/test_read_format_cpio_svr4c_Z.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_cpio_svr4c_Z.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_cpio_svr4c_Z.Tpo -c -o libarchive/test/libarchive_test-test_read_format_cpio_svr4c_Z.o `test -f 'libarchive/test/test_read_format_cpio_svr4c_Z.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_cpio_svr4c_Z.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_cpio_svr4c_Z.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_cpio_svr4c_Z.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_cpio_svr4c_Z.c' object='libarchive/test/libarchive_test-test_read_format_cpio_svr4c_Z.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_cpio_svr4c_Z.o: libarchive/test/test_read_format_cpio_svr4c_Z.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_cpio_svr4c_Z.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_cpio_svr4c_Z.Tpo -c -o libarchive/test/test-test_read_format_cpio_svr4c_Z.o `test -f 'libarchive/test/test_read_format_cpio_svr4c_Z.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_cpio_svr4c_Z.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_cpio_svr4c_Z.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_cpio_svr4c_Z.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_cpio_svr4c_Z.c' object='libarchive/test/test-test_read_format_cpio_svr4c_Z.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_cpio_svr4c_Z.o `test -f 'libarchive/test/test_read_format_cpio_svr4c_Z.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_cpio_svr4c_Z.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_cpio_svr4c_Z.o `test -f 'libarchive/test/test_read_format_cpio_svr4c_Z.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_cpio_svr4c_Z.c -libarchive/test/libarchive_test-test_read_format_cpio_svr4c_Z.obj: libarchive/test/test_read_format_cpio_svr4c_Z.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_cpio_svr4c_Z.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_cpio_svr4c_Z.Tpo -c -o libarchive/test/libarchive_test-test_read_format_cpio_svr4c_Z.obj `if test -f 'libarchive/test/test_read_format_cpio_svr4c_Z.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_cpio_svr4c_Z.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_cpio_svr4c_Z.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_cpio_svr4c_Z.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_cpio_svr4c_Z.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_cpio_svr4c_Z.c' object='libarchive/test/libarchive_test-test_read_format_cpio_svr4c_Z.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_cpio_svr4c_Z.obj: libarchive/test/test_read_format_cpio_svr4c_Z.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_cpio_svr4c_Z.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_cpio_svr4c_Z.Tpo -c -o libarchive/test/test-test_read_format_cpio_svr4c_Z.obj `if test -f 'libarchive/test/test_read_format_cpio_svr4c_Z.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_cpio_svr4c_Z.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_cpio_svr4c_Z.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_cpio_svr4c_Z.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_cpio_svr4c_Z.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_cpio_svr4c_Z.c' object='libarchive/test/test-test_read_format_cpio_svr4c_Z.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_cpio_svr4c_Z.obj `if test -f 'libarchive/test/test_read_format_cpio_svr4c_Z.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_cpio_svr4c_Z.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_cpio_svr4c_Z.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_cpio_svr4c_Z.obj `if test -f 'libarchive/test/test_read_format_cpio_svr4c_Z.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_cpio_svr4c_Z.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_cpio_svr4c_Z.c'; fi` -libarchive/test/libarchive_test-test_read_format_empty.o: libarchive/test/test_read_format_empty.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_empty.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_empty.Tpo -c -o libarchive/test/libarchive_test-test_read_format_empty.o `test -f 'libarchive/test/test_read_format_empty.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_empty.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_empty.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_empty.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_empty.c' object='libarchive/test/libarchive_test-test_read_format_empty.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_empty.o: libarchive/test/test_read_format_empty.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_empty.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_empty.Tpo -c -o libarchive/test/test-test_read_format_empty.o `test -f 'libarchive/test/test_read_format_empty.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_empty.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_empty.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_empty.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_empty.c' object='libarchive/test/test-test_read_format_empty.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_empty.o `test -f 'libarchive/test/test_read_format_empty.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_empty.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_empty.o `test -f 'libarchive/test/test_read_format_empty.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_empty.c -libarchive/test/libarchive_test-test_read_format_empty.obj: libarchive/test/test_read_format_empty.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_empty.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_empty.Tpo -c -o libarchive/test/libarchive_test-test_read_format_empty.obj `if test -f 'libarchive/test/test_read_format_empty.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_empty.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_empty.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_empty.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_empty.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_empty.c' object='libarchive/test/libarchive_test-test_read_format_empty.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_empty.obj: libarchive/test/test_read_format_empty.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_empty.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_empty.Tpo -c -o libarchive/test/test-test_read_format_empty.obj `if test -f 'libarchive/test/test_read_format_empty.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_empty.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_empty.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_empty.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_empty.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_empty.c' object='libarchive/test/test-test_read_format_empty.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_empty.obj `if test -f 'libarchive/test/test_read_format_empty.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_empty.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_empty.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_empty.obj `if test -f 'libarchive/test/test_read_format_empty.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_empty.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_empty.c'; fi` -libarchive/test/libarchive_test-test_read_format_gtar_filename.o: libarchive/test/test_read_format_gtar_filename.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_gtar_filename.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_gtar_filename.Tpo -c -o libarchive/test/libarchive_test-test_read_format_gtar_filename.o `test -f 'libarchive/test/test_read_format_gtar_filename.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_gtar_filename.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_gtar_filename.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_gtar_filename.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_gtar_filename.c' object='libarchive/test/libarchive_test-test_read_format_gtar_filename.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_gtar_filename.o: libarchive/test/test_read_format_gtar_filename.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_gtar_filename.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_gtar_filename.Tpo -c -o libarchive/test/test-test_read_format_gtar_filename.o `test -f 'libarchive/test/test_read_format_gtar_filename.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_gtar_filename.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_gtar_filename.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_gtar_filename.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_gtar_filename.c' object='libarchive/test/test-test_read_format_gtar_filename.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_gtar_filename.o `test -f 'libarchive/test/test_read_format_gtar_filename.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_gtar_filename.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_gtar_filename.o `test -f 'libarchive/test/test_read_format_gtar_filename.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_gtar_filename.c -libarchive/test/libarchive_test-test_read_format_gtar_filename.obj: libarchive/test/test_read_format_gtar_filename.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_gtar_filename.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_gtar_filename.Tpo -c -o libarchive/test/libarchive_test-test_read_format_gtar_filename.obj `if test -f 'libarchive/test/test_read_format_gtar_filename.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_gtar_filename.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_gtar_filename.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_gtar_filename.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_gtar_filename.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_gtar_filename.c' object='libarchive/test/libarchive_test-test_read_format_gtar_filename.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_gtar_filename.obj: libarchive/test/test_read_format_gtar_filename.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_gtar_filename.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_gtar_filename.Tpo -c -o libarchive/test/test-test_read_format_gtar_filename.obj `if test -f 'libarchive/test/test_read_format_gtar_filename.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_gtar_filename.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_gtar_filename.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_gtar_filename.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_gtar_filename.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_gtar_filename.c' object='libarchive/test/test-test_read_format_gtar_filename.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_gtar_filename.obj `if test -f 'libarchive/test/test_read_format_gtar_filename.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_gtar_filename.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_gtar_filename.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_gtar_filename.obj `if test -f 'libarchive/test/test_read_format_gtar_filename.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_gtar_filename.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_gtar_filename.c'; fi` -libarchive/test/libarchive_test-test_read_format_gtar_gz.o: libarchive/test/test_read_format_gtar_gz.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_gtar_gz.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_gtar_gz.Tpo -c -o libarchive/test/libarchive_test-test_read_format_gtar_gz.o `test -f 'libarchive/test/test_read_format_gtar_gz.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_gtar_gz.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_gtar_gz.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_gtar_gz.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_gtar_gz.c' object='libarchive/test/libarchive_test-test_read_format_gtar_gz.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_gtar_gz.o: libarchive/test/test_read_format_gtar_gz.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_gtar_gz.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_gtar_gz.Tpo -c -o libarchive/test/test-test_read_format_gtar_gz.o `test -f 'libarchive/test/test_read_format_gtar_gz.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_gtar_gz.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_gtar_gz.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_gtar_gz.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_gtar_gz.c' object='libarchive/test/test-test_read_format_gtar_gz.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_gtar_gz.o `test -f 'libarchive/test/test_read_format_gtar_gz.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_gtar_gz.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_gtar_gz.o `test -f 'libarchive/test/test_read_format_gtar_gz.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_gtar_gz.c -libarchive/test/libarchive_test-test_read_format_gtar_gz.obj: libarchive/test/test_read_format_gtar_gz.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_gtar_gz.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_gtar_gz.Tpo -c -o libarchive/test/libarchive_test-test_read_format_gtar_gz.obj `if test -f 'libarchive/test/test_read_format_gtar_gz.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_gtar_gz.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_gtar_gz.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_gtar_gz.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_gtar_gz.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_gtar_gz.c' object='libarchive/test/libarchive_test-test_read_format_gtar_gz.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_gtar_gz.obj: libarchive/test/test_read_format_gtar_gz.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_gtar_gz.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_gtar_gz.Tpo -c -o libarchive/test/test-test_read_format_gtar_gz.obj `if test -f 'libarchive/test/test_read_format_gtar_gz.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_gtar_gz.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_gtar_gz.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_gtar_gz.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_gtar_gz.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_gtar_gz.c' object='libarchive/test/test-test_read_format_gtar_gz.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_gtar_gz.obj `if test -f 'libarchive/test/test_read_format_gtar_gz.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_gtar_gz.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_gtar_gz.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_gtar_gz.obj `if test -f 'libarchive/test/test_read_format_gtar_gz.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_gtar_gz.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_gtar_gz.c'; fi` -libarchive/test/libarchive_test-test_read_format_gtar_lzma.o: libarchive/test/test_read_format_gtar_lzma.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_gtar_lzma.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_gtar_lzma.Tpo -c -o libarchive/test/libarchive_test-test_read_format_gtar_lzma.o `test -f 'libarchive/test/test_read_format_gtar_lzma.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_gtar_lzma.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_gtar_lzma.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_gtar_lzma.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_gtar_lzma.c' object='libarchive/test/libarchive_test-test_read_format_gtar_lzma.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_gtar_lzma.o: libarchive/test/test_read_format_gtar_lzma.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_gtar_lzma.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_gtar_lzma.Tpo -c -o libarchive/test/test-test_read_format_gtar_lzma.o `test -f 'libarchive/test/test_read_format_gtar_lzma.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_gtar_lzma.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_gtar_lzma.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_gtar_lzma.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_gtar_lzma.c' object='libarchive/test/test-test_read_format_gtar_lzma.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_gtar_lzma.o `test -f 'libarchive/test/test_read_format_gtar_lzma.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_gtar_lzma.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_gtar_lzma.o `test -f 'libarchive/test/test_read_format_gtar_lzma.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_gtar_lzma.c -libarchive/test/libarchive_test-test_read_format_gtar_lzma.obj: libarchive/test/test_read_format_gtar_lzma.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_gtar_lzma.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_gtar_lzma.Tpo -c -o libarchive/test/libarchive_test-test_read_format_gtar_lzma.obj `if test -f 'libarchive/test/test_read_format_gtar_lzma.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_gtar_lzma.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_gtar_lzma.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_gtar_lzma.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_gtar_lzma.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_gtar_lzma.c' object='libarchive/test/libarchive_test-test_read_format_gtar_lzma.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_gtar_lzma.obj: libarchive/test/test_read_format_gtar_lzma.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_gtar_lzma.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_gtar_lzma.Tpo -c -o libarchive/test/test-test_read_format_gtar_lzma.obj `if test -f 'libarchive/test/test_read_format_gtar_lzma.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_gtar_lzma.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_gtar_lzma.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_gtar_lzma.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_gtar_lzma.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_gtar_lzma.c' object='libarchive/test/test-test_read_format_gtar_lzma.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_gtar_lzma.obj `if test -f 'libarchive/test/test_read_format_gtar_lzma.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_gtar_lzma.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_gtar_lzma.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_gtar_lzma.obj `if test -f 'libarchive/test/test_read_format_gtar_lzma.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_gtar_lzma.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_gtar_lzma.c'; fi` -libarchive/test/libarchive_test-test_read_format_gtar_sparse.o: libarchive/test/test_read_format_gtar_sparse.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_gtar_sparse.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_gtar_sparse.Tpo -c -o libarchive/test/libarchive_test-test_read_format_gtar_sparse.o `test -f 'libarchive/test/test_read_format_gtar_sparse.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_gtar_sparse.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_gtar_sparse.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_gtar_sparse.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_gtar_sparse.c' object='libarchive/test/libarchive_test-test_read_format_gtar_sparse.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_gtar_sparse.o: libarchive/test/test_read_format_gtar_sparse.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_gtar_sparse.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_gtar_sparse.Tpo -c -o libarchive/test/test-test_read_format_gtar_sparse.o `test -f 'libarchive/test/test_read_format_gtar_sparse.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_gtar_sparse.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_gtar_sparse.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_gtar_sparse.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_gtar_sparse.c' object='libarchive/test/test-test_read_format_gtar_sparse.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_gtar_sparse.o `test -f 'libarchive/test/test_read_format_gtar_sparse.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_gtar_sparse.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_gtar_sparse.o `test -f 'libarchive/test/test_read_format_gtar_sparse.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_gtar_sparse.c -libarchive/test/libarchive_test-test_read_format_gtar_sparse.obj: libarchive/test/test_read_format_gtar_sparse.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_gtar_sparse.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_gtar_sparse.Tpo -c -o libarchive/test/libarchive_test-test_read_format_gtar_sparse.obj `if test -f 'libarchive/test/test_read_format_gtar_sparse.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_gtar_sparse.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_gtar_sparse.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_gtar_sparse.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_gtar_sparse.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_gtar_sparse.c' object='libarchive/test/libarchive_test-test_read_format_gtar_sparse.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_gtar_sparse.obj: libarchive/test/test_read_format_gtar_sparse.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_gtar_sparse.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_gtar_sparse.Tpo -c -o libarchive/test/test-test_read_format_gtar_sparse.obj `if test -f 'libarchive/test/test_read_format_gtar_sparse.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_gtar_sparse.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_gtar_sparse.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_gtar_sparse.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_gtar_sparse.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_gtar_sparse.c' object='libarchive/test/test-test_read_format_gtar_sparse.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_gtar_sparse.obj `if test -f 'libarchive/test/test_read_format_gtar_sparse.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_gtar_sparse.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_gtar_sparse.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_gtar_sparse.obj `if test -f 'libarchive/test/test_read_format_gtar_sparse.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_gtar_sparse.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_gtar_sparse.c'; fi` -libarchive/test/libarchive_test-test_read_format_gtar_sparse_skip_entry.o: libarchive/test/test_read_format_gtar_sparse_skip_entry.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_gtar_sparse_skip_entry.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_gtar_sparse_skip_entry.Tpo -c -o libarchive/test/libarchive_test-test_read_format_gtar_sparse_skip_entry.o `test -f 'libarchive/test/test_read_format_gtar_sparse_skip_entry.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_gtar_sparse_skip_entry.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_gtar_sparse_skip_entry.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_gtar_sparse_skip_entry.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_gtar_sparse_skip_entry.c' object='libarchive/test/libarchive_test-test_read_format_gtar_sparse_skip_entry.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_gtar_sparse_skip_entry.o: libarchive/test/test_read_format_gtar_sparse_skip_entry.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_gtar_sparse_skip_entry.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_gtar_sparse_skip_entry.Tpo -c -o libarchive/test/test-test_read_format_gtar_sparse_skip_entry.o `test -f 'libarchive/test/test_read_format_gtar_sparse_skip_entry.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_gtar_sparse_skip_entry.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_gtar_sparse_skip_entry.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_gtar_sparse_skip_entry.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_gtar_sparse_skip_entry.c' object='libarchive/test/test-test_read_format_gtar_sparse_skip_entry.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_gtar_sparse_skip_entry.o `test -f 'libarchive/test/test_read_format_gtar_sparse_skip_entry.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_gtar_sparse_skip_entry.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_gtar_sparse_skip_entry.o `test -f 'libarchive/test/test_read_format_gtar_sparse_skip_entry.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_gtar_sparse_skip_entry.c -libarchive/test/libarchive_test-test_read_format_gtar_sparse_skip_entry.obj: libarchive/test/test_read_format_gtar_sparse_skip_entry.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_gtar_sparse_skip_entry.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_gtar_sparse_skip_entry.Tpo -c -o libarchive/test/libarchive_test-test_read_format_gtar_sparse_skip_entry.obj `if test -f 'libarchive/test/test_read_format_gtar_sparse_skip_entry.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_gtar_sparse_skip_entry.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_gtar_sparse_skip_entry.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_gtar_sparse_skip_entry.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_gtar_sparse_skip_entry.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_gtar_sparse_skip_entry.c' object='libarchive/test/libarchive_test-test_read_format_gtar_sparse_skip_entry.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_gtar_sparse_skip_entry.obj: libarchive/test/test_read_format_gtar_sparse_skip_entry.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_gtar_sparse_skip_entry.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_gtar_sparse_skip_entry.Tpo -c -o libarchive/test/test-test_read_format_gtar_sparse_skip_entry.obj `if test -f 'libarchive/test/test_read_format_gtar_sparse_skip_entry.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_gtar_sparse_skip_entry.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_gtar_sparse_skip_entry.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_gtar_sparse_skip_entry.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_gtar_sparse_skip_entry.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_gtar_sparse_skip_entry.c' object='libarchive/test/test-test_read_format_gtar_sparse_skip_entry.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_gtar_sparse_skip_entry.obj `if test -f 'libarchive/test/test_read_format_gtar_sparse_skip_entry.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_gtar_sparse_skip_entry.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_gtar_sparse_skip_entry.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_gtar_sparse_skip_entry.obj `if test -f 'libarchive/test/test_read_format_gtar_sparse_skip_entry.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_gtar_sparse_skip_entry.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_gtar_sparse_skip_entry.c'; fi` -libarchive/test/libarchive_test-test_read_format_iso_Z.o: libarchive/test/test_read_format_iso_Z.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_iso_Z.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_iso_Z.Tpo -c -o libarchive/test/libarchive_test-test_read_format_iso_Z.o `test -f 'libarchive/test/test_read_format_iso_Z.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_iso_Z.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_iso_Z.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_iso_Z.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_iso_Z.c' object='libarchive/test/libarchive_test-test_read_format_iso_Z.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_iso_Z.o: libarchive/test/test_read_format_iso_Z.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_iso_Z.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_iso_Z.Tpo -c -o libarchive/test/test-test_read_format_iso_Z.o `test -f 'libarchive/test/test_read_format_iso_Z.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_iso_Z.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_iso_Z.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_iso_Z.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_iso_Z.c' object='libarchive/test/test-test_read_format_iso_Z.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_iso_Z.o `test -f 'libarchive/test/test_read_format_iso_Z.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_iso_Z.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_iso_Z.o `test -f 'libarchive/test/test_read_format_iso_Z.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_iso_Z.c -libarchive/test/libarchive_test-test_read_format_iso_Z.obj: libarchive/test/test_read_format_iso_Z.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_iso_Z.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_iso_Z.Tpo -c -o libarchive/test/libarchive_test-test_read_format_iso_Z.obj `if test -f 'libarchive/test/test_read_format_iso_Z.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_iso_Z.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_iso_Z.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_iso_Z.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_iso_Z.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_iso_Z.c' object='libarchive/test/libarchive_test-test_read_format_iso_Z.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_iso_Z.obj: libarchive/test/test_read_format_iso_Z.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_iso_Z.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_iso_Z.Tpo -c -o libarchive/test/test-test_read_format_iso_Z.obj `if test -f 'libarchive/test/test_read_format_iso_Z.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_iso_Z.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_iso_Z.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_iso_Z.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_iso_Z.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_iso_Z.c' object='libarchive/test/test-test_read_format_iso_Z.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_iso_Z.obj `if test -f 'libarchive/test/test_read_format_iso_Z.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_iso_Z.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_iso_Z.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_iso_Z.obj `if test -f 'libarchive/test/test_read_format_iso_Z.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_iso_Z.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_iso_Z.c'; fi` -libarchive/test/libarchive_test-test_read_format_iso_multi_extent.o: libarchive/test/test_read_format_iso_multi_extent.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_iso_multi_extent.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_iso_multi_extent.Tpo -c -o libarchive/test/libarchive_test-test_read_format_iso_multi_extent.o `test -f 'libarchive/test/test_read_format_iso_multi_extent.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_iso_multi_extent.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_iso_multi_extent.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_iso_multi_extent.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_iso_multi_extent.c' object='libarchive/test/libarchive_test-test_read_format_iso_multi_extent.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_iso_multi_extent.o: libarchive/test/test_read_format_iso_multi_extent.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_iso_multi_extent.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_iso_multi_extent.Tpo -c -o libarchive/test/test-test_read_format_iso_multi_extent.o `test -f 'libarchive/test/test_read_format_iso_multi_extent.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_iso_multi_extent.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_iso_multi_extent.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_iso_multi_extent.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_iso_multi_extent.c' object='libarchive/test/test-test_read_format_iso_multi_extent.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_iso_multi_extent.o `test -f 'libarchive/test/test_read_format_iso_multi_extent.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_iso_multi_extent.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_iso_multi_extent.o `test -f 'libarchive/test/test_read_format_iso_multi_extent.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_iso_multi_extent.c -libarchive/test/libarchive_test-test_read_format_iso_multi_extent.obj: libarchive/test/test_read_format_iso_multi_extent.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_iso_multi_extent.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_iso_multi_extent.Tpo -c -o libarchive/test/libarchive_test-test_read_format_iso_multi_extent.obj `if test -f 'libarchive/test/test_read_format_iso_multi_extent.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_iso_multi_extent.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_iso_multi_extent.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_iso_multi_extent.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_iso_multi_extent.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_iso_multi_extent.c' object='libarchive/test/libarchive_test-test_read_format_iso_multi_extent.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_iso_multi_extent.obj: libarchive/test/test_read_format_iso_multi_extent.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_iso_multi_extent.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_iso_multi_extent.Tpo -c -o libarchive/test/test-test_read_format_iso_multi_extent.obj `if test -f 'libarchive/test/test_read_format_iso_multi_extent.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_iso_multi_extent.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_iso_multi_extent.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_iso_multi_extent.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_iso_multi_extent.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_iso_multi_extent.c' object='libarchive/test/test-test_read_format_iso_multi_extent.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_iso_multi_extent.obj `if test -f 'libarchive/test/test_read_format_iso_multi_extent.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_iso_multi_extent.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_iso_multi_extent.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_iso_multi_extent.obj `if test -f 'libarchive/test/test_read_format_iso_multi_extent.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_iso_multi_extent.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_iso_multi_extent.c'; fi` -libarchive/test/libarchive_test-test_read_format_iso_xorriso.o: libarchive/test/test_read_format_iso_xorriso.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_iso_xorriso.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_iso_xorriso.Tpo -c -o libarchive/test/libarchive_test-test_read_format_iso_xorriso.o `test -f 'libarchive/test/test_read_format_iso_xorriso.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_iso_xorriso.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_iso_xorriso.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_iso_xorriso.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_iso_xorriso.c' object='libarchive/test/libarchive_test-test_read_format_iso_xorriso.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_iso_xorriso.o: libarchive/test/test_read_format_iso_xorriso.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_iso_xorriso.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_iso_xorriso.Tpo -c -o libarchive/test/test-test_read_format_iso_xorriso.o `test -f 'libarchive/test/test_read_format_iso_xorriso.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_iso_xorriso.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_iso_xorriso.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_iso_xorriso.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_iso_xorriso.c' object='libarchive/test/test-test_read_format_iso_xorriso.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_iso_xorriso.o `test -f 'libarchive/test/test_read_format_iso_xorriso.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_iso_xorriso.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_iso_xorriso.o `test -f 'libarchive/test/test_read_format_iso_xorriso.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_iso_xorriso.c -libarchive/test/libarchive_test-test_read_format_iso_xorriso.obj: libarchive/test/test_read_format_iso_xorriso.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_iso_xorriso.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_iso_xorriso.Tpo -c -o libarchive/test/libarchive_test-test_read_format_iso_xorriso.obj `if test -f 'libarchive/test/test_read_format_iso_xorriso.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_iso_xorriso.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_iso_xorriso.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_iso_xorriso.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_iso_xorriso.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_iso_xorriso.c' object='libarchive/test/libarchive_test-test_read_format_iso_xorriso.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_iso_xorriso.obj: libarchive/test/test_read_format_iso_xorriso.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_iso_xorriso.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_iso_xorriso.Tpo -c -o libarchive/test/test-test_read_format_iso_xorriso.obj `if test -f 'libarchive/test/test_read_format_iso_xorriso.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_iso_xorriso.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_iso_xorriso.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_iso_xorriso.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_iso_xorriso.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_iso_xorriso.c' object='libarchive/test/test-test_read_format_iso_xorriso.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_iso_xorriso.obj `if test -f 'libarchive/test/test_read_format_iso_xorriso.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_iso_xorriso.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_iso_xorriso.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_iso_xorriso.obj `if test -f 'libarchive/test/test_read_format_iso_xorriso.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_iso_xorriso.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_iso_xorriso.c'; fi` -libarchive/test/libarchive_test-test_read_format_isojoliet_bz2.o: libarchive/test/test_read_format_isojoliet_bz2.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_isojoliet_bz2.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_isojoliet_bz2.Tpo -c -o libarchive/test/libarchive_test-test_read_format_isojoliet_bz2.o `test -f 'libarchive/test/test_read_format_isojoliet_bz2.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_isojoliet_bz2.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_isojoliet_bz2.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_isojoliet_bz2.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_isojoliet_bz2.c' object='libarchive/test/libarchive_test-test_read_format_isojoliet_bz2.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_isojoliet_bz2.o: libarchive/test/test_read_format_isojoliet_bz2.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_isojoliet_bz2.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_isojoliet_bz2.Tpo -c -o libarchive/test/test-test_read_format_isojoliet_bz2.o `test -f 'libarchive/test/test_read_format_isojoliet_bz2.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_isojoliet_bz2.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_isojoliet_bz2.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_isojoliet_bz2.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_isojoliet_bz2.c' object='libarchive/test/test-test_read_format_isojoliet_bz2.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_isojoliet_bz2.o `test -f 'libarchive/test/test_read_format_isojoliet_bz2.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_isojoliet_bz2.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_isojoliet_bz2.o `test -f 'libarchive/test/test_read_format_isojoliet_bz2.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_isojoliet_bz2.c -libarchive/test/libarchive_test-test_read_format_isojoliet_bz2.obj: libarchive/test/test_read_format_isojoliet_bz2.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_isojoliet_bz2.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_isojoliet_bz2.Tpo -c -o libarchive/test/libarchive_test-test_read_format_isojoliet_bz2.obj `if test -f 'libarchive/test/test_read_format_isojoliet_bz2.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_isojoliet_bz2.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_isojoliet_bz2.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_isojoliet_bz2.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_isojoliet_bz2.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_isojoliet_bz2.c' object='libarchive/test/libarchive_test-test_read_format_isojoliet_bz2.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_isojoliet_bz2.obj: libarchive/test/test_read_format_isojoliet_bz2.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_isojoliet_bz2.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_isojoliet_bz2.Tpo -c -o libarchive/test/test-test_read_format_isojoliet_bz2.obj `if test -f 'libarchive/test/test_read_format_isojoliet_bz2.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_isojoliet_bz2.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_isojoliet_bz2.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_isojoliet_bz2.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_isojoliet_bz2.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_isojoliet_bz2.c' object='libarchive/test/test-test_read_format_isojoliet_bz2.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_isojoliet_bz2.obj `if test -f 'libarchive/test/test_read_format_isojoliet_bz2.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_isojoliet_bz2.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_isojoliet_bz2.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_isojoliet_bz2.obj `if test -f 'libarchive/test/test_read_format_isojoliet_bz2.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_isojoliet_bz2.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_isojoliet_bz2.c'; fi` -libarchive/test/libarchive_test-test_read_format_isojoliet_long.o: libarchive/test/test_read_format_isojoliet_long.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_isojoliet_long.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_isojoliet_long.Tpo -c -o libarchive/test/libarchive_test-test_read_format_isojoliet_long.o `test -f 'libarchive/test/test_read_format_isojoliet_long.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_isojoliet_long.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_isojoliet_long.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_isojoliet_long.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_isojoliet_long.c' object='libarchive/test/libarchive_test-test_read_format_isojoliet_long.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_isojoliet_long.o: libarchive/test/test_read_format_isojoliet_long.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_isojoliet_long.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_isojoliet_long.Tpo -c -o libarchive/test/test-test_read_format_isojoliet_long.o `test -f 'libarchive/test/test_read_format_isojoliet_long.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_isojoliet_long.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_isojoliet_long.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_isojoliet_long.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_isojoliet_long.c' object='libarchive/test/test-test_read_format_isojoliet_long.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_isojoliet_long.o `test -f 'libarchive/test/test_read_format_isojoliet_long.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_isojoliet_long.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_isojoliet_long.o `test -f 'libarchive/test/test_read_format_isojoliet_long.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_isojoliet_long.c -libarchive/test/libarchive_test-test_read_format_isojoliet_long.obj: libarchive/test/test_read_format_isojoliet_long.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_isojoliet_long.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_isojoliet_long.Tpo -c -o libarchive/test/libarchive_test-test_read_format_isojoliet_long.obj `if test -f 'libarchive/test/test_read_format_isojoliet_long.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_isojoliet_long.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_isojoliet_long.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_isojoliet_long.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_isojoliet_long.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_isojoliet_long.c' object='libarchive/test/libarchive_test-test_read_format_isojoliet_long.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_isojoliet_long.obj: libarchive/test/test_read_format_isojoliet_long.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_isojoliet_long.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_isojoliet_long.Tpo -c -o libarchive/test/test-test_read_format_isojoliet_long.obj `if test -f 'libarchive/test/test_read_format_isojoliet_long.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_isojoliet_long.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_isojoliet_long.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_isojoliet_long.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_isojoliet_long.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_isojoliet_long.c' object='libarchive/test/test-test_read_format_isojoliet_long.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_isojoliet_long.obj `if test -f 'libarchive/test/test_read_format_isojoliet_long.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_isojoliet_long.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_isojoliet_long.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_isojoliet_long.obj `if test -f 'libarchive/test/test_read_format_isojoliet_long.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_isojoliet_long.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_isojoliet_long.c'; fi` -libarchive/test/libarchive_test-test_read_format_isojoliet_rr.o: libarchive/test/test_read_format_isojoliet_rr.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_isojoliet_rr.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_isojoliet_rr.Tpo -c -o libarchive/test/libarchive_test-test_read_format_isojoliet_rr.o `test -f 'libarchive/test/test_read_format_isojoliet_rr.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_isojoliet_rr.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_isojoliet_rr.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_isojoliet_rr.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_isojoliet_rr.c' object='libarchive/test/libarchive_test-test_read_format_isojoliet_rr.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_isojoliet_rr.o: libarchive/test/test_read_format_isojoliet_rr.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_isojoliet_rr.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_isojoliet_rr.Tpo -c -o libarchive/test/test-test_read_format_isojoliet_rr.o `test -f 'libarchive/test/test_read_format_isojoliet_rr.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_isojoliet_rr.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_isojoliet_rr.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_isojoliet_rr.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_isojoliet_rr.c' object='libarchive/test/test-test_read_format_isojoliet_rr.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_isojoliet_rr.o `test -f 'libarchive/test/test_read_format_isojoliet_rr.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_isojoliet_rr.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_isojoliet_rr.o `test -f 'libarchive/test/test_read_format_isojoliet_rr.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_isojoliet_rr.c -libarchive/test/libarchive_test-test_read_format_isojoliet_rr.obj: libarchive/test/test_read_format_isojoliet_rr.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_isojoliet_rr.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_isojoliet_rr.Tpo -c -o libarchive/test/libarchive_test-test_read_format_isojoliet_rr.obj `if test -f 'libarchive/test/test_read_format_isojoliet_rr.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_isojoliet_rr.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_isojoliet_rr.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_isojoliet_rr.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_isojoliet_rr.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_isojoliet_rr.c' object='libarchive/test/libarchive_test-test_read_format_isojoliet_rr.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_isojoliet_rr.obj: libarchive/test/test_read_format_isojoliet_rr.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_isojoliet_rr.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_isojoliet_rr.Tpo -c -o libarchive/test/test-test_read_format_isojoliet_rr.obj `if test -f 'libarchive/test/test_read_format_isojoliet_rr.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_isojoliet_rr.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_isojoliet_rr.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_isojoliet_rr.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_isojoliet_rr.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_isojoliet_rr.c' object='libarchive/test/test-test_read_format_isojoliet_rr.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_isojoliet_rr.obj `if test -f 'libarchive/test/test_read_format_isojoliet_rr.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_isojoliet_rr.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_isojoliet_rr.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_isojoliet_rr.obj `if test -f 'libarchive/test/test_read_format_isojoliet_rr.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_isojoliet_rr.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_isojoliet_rr.c'; fi` -libarchive/test/libarchive_test-test_read_format_isojoliet_versioned.o: libarchive/test/test_read_format_isojoliet_versioned.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_isojoliet_versioned.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_isojoliet_versioned.Tpo -c -o libarchive/test/libarchive_test-test_read_format_isojoliet_versioned.o `test -f 'libarchive/test/test_read_format_isojoliet_versioned.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_isojoliet_versioned.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_isojoliet_versioned.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_isojoliet_versioned.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_isojoliet_versioned.c' object='libarchive/test/libarchive_test-test_read_format_isojoliet_versioned.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_isojoliet_versioned.o: libarchive/test/test_read_format_isojoliet_versioned.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_isojoliet_versioned.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_isojoliet_versioned.Tpo -c -o libarchive/test/test-test_read_format_isojoliet_versioned.o `test -f 'libarchive/test/test_read_format_isojoliet_versioned.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_isojoliet_versioned.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_isojoliet_versioned.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_isojoliet_versioned.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_isojoliet_versioned.c' object='libarchive/test/test-test_read_format_isojoliet_versioned.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_isojoliet_versioned.o `test -f 'libarchive/test/test_read_format_isojoliet_versioned.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_isojoliet_versioned.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_isojoliet_versioned.o `test -f 'libarchive/test/test_read_format_isojoliet_versioned.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_isojoliet_versioned.c -libarchive/test/libarchive_test-test_read_format_isojoliet_versioned.obj: libarchive/test/test_read_format_isojoliet_versioned.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_isojoliet_versioned.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_isojoliet_versioned.Tpo -c -o libarchive/test/libarchive_test-test_read_format_isojoliet_versioned.obj `if test -f 'libarchive/test/test_read_format_isojoliet_versioned.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_isojoliet_versioned.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_isojoliet_versioned.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_isojoliet_versioned.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_isojoliet_versioned.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_isojoliet_versioned.c' object='libarchive/test/libarchive_test-test_read_format_isojoliet_versioned.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_isojoliet_versioned.obj: libarchive/test/test_read_format_isojoliet_versioned.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_isojoliet_versioned.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_isojoliet_versioned.Tpo -c -o libarchive/test/test-test_read_format_isojoliet_versioned.obj `if test -f 'libarchive/test/test_read_format_isojoliet_versioned.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_isojoliet_versioned.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_isojoliet_versioned.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_isojoliet_versioned.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_isojoliet_versioned.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_isojoliet_versioned.c' object='libarchive/test/test-test_read_format_isojoliet_versioned.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_isojoliet_versioned.obj `if test -f 'libarchive/test/test_read_format_isojoliet_versioned.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_isojoliet_versioned.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_isojoliet_versioned.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_isojoliet_versioned.obj `if test -f 'libarchive/test/test_read_format_isojoliet_versioned.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_isojoliet_versioned.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_isojoliet_versioned.c'; fi` -libarchive/test/libarchive_test-test_read_format_isorr_bz2.o: libarchive/test/test_read_format_isorr_bz2.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_isorr_bz2.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_isorr_bz2.Tpo -c -o libarchive/test/libarchive_test-test_read_format_isorr_bz2.o `test -f 'libarchive/test/test_read_format_isorr_bz2.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_isorr_bz2.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_isorr_bz2.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_isorr_bz2.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_isorr_bz2.c' object='libarchive/test/libarchive_test-test_read_format_isorr_bz2.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_isorr_bz2.o: libarchive/test/test_read_format_isorr_bz2.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_isorr_bz2.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_isorr_bz2.Tpo -c -o libarchive/test/test-test_read_format_isorr_bz2.o `test -f 'libarchive/test/test_read_format_isorr_bz2.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_isorr_bz2.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_isorr_bz2.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_isorr_bz2.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_isorr_bz2.c' object='libarchive/test/test-test_read_format_isorr_bz2.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_isorr_bz2.o `test -f 'libarchive/test/test_read_format_isorr_bz2.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_isorr_bz2.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_isorr_bz2.o `test -f 'libarchive/test/test_read_format_isorr_bz2.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_isorr_bz2.c -libarchive/test/libarchive_test-test_read_format_isorr_bz2.obj: libarchive/test/test_read_format_isorr_bz2.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_isorr_bz2.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_isorr_bz2.Tpo -c -o libarchive/test/libarchive_test-test_read_format_isorr_bz2.obj `if test -f 'libarchive/test/test_read_format_isorr_bz2.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_isorr_bz2.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_isorr_bz2.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_isorr_bz2.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_isorr_bz2.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_isorr_bz2.c' object='libarchive/test/libarchive_test-test_read_format_isorr_bz2.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_isorr_bz2.obj: libarchive/test/test_read_format_isorr_bz2.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_isorr_bz2.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_isorr_bz2.Tpo -c -o libarchive/test/test-test_read_format_isorr_bz2.obj `if test -f 'libarchive/test/test_read_format_isorr_bz2.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_isorr_bz2.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_isorr_bz2.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_isorr_bz2.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_isorr_bz2.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_isorr_bz2.c' object='libarchive/test/test-test_read_format_isorr_bz2.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_isorr_bz2.obj `if test -f 'libarchive/test/test_read_format_isorr_bz2.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_isorr_bz2.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_isorr_bz2.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_isorr_bz2.obj `if test -f 'libarchive/test/test_read_format_isorr_bz2.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_isorr_bz2.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_isorr_bz2.c'; fi` -libarchive/test/libarchive_test-test_read_format_isorr_ce.o: libarchive/test/test_read_format_isorr_ce.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_isorr_ce.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_isorr_ce.Tpo -c -o libarchive/test/libarchive_test-test_read_format_isorr_ce.o `test -f 'libarchive/test/test_read_format_isorr_ce.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_isorr_ce.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_isorr_ce.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_isorr_ce.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_isorr_ce.c' object='libarchive/test/libarchive_test-test_read_format_isorr_ce.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_isorr_ce.o: libarchive/test/test_read_format_isorr_ce.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_isorr_ce.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_isorr_ce.Tpo -c -o libarchive/test/test-test_read_format_isorr_ce.o `test -f 'libarchive/test/test_read_format_isorr_ce.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_isorr_ce.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_isorr_ce.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_isorr_ce.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_isorr_ce.c' object='libarchive/test/test-test_read_format_isorr_ce.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_isorr_ce.o `test -f 'libarchive/test/test_read_format_isorr_ce.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_isorr_ce.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_isorr_ce.o `test -f 'libarchive/test/test_read_format_isorr_ce.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_isorr_ce.c -libarchive/test/libarchive_test-test_read_format_isorr_ce.obj: libarchive/test/test_read_format_isorr_ce.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_isorr_ce.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_isorr_ce.Tpo -c -o libarchive/test/libarchive_test-test_read_format_isorr_ce.obj `if test -f 'libarchive/test/test_read_format_isorr_ce.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_isorr_ce.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_isorr_ce.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_isorr_ce.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_isorr_ce.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_isorr_ce.c' object='libarchive/test/libarchive_test-test_read_format_isorr_ce.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_isorr_ce.obj: libarchive/test/test_read_format_isorr_ce.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_isorr_ce.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_isorr_ce.Tpo -c -o libarchive/test/test-test_read_format_isorr_ce.obj `if test -f 'libarchive/test/test_read_format_isorr_ce.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_isorr_ce.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_isorr_ce.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_isorr_ce.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_isorr_ce.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_isorr_ce.c' object='libarchive/test/test-test_read_format_isorr_ce.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_isorr_ce.obj `if test -f 'libarchive/test/test_read_format_isorr_ce.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_isorr_ce.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_isorr_ce.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_isorr_ce.obj `if test -f 'libarchive/test/test_read_format_isorr_ce.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_isorr_ce.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_isorr_ce.c'; fi` -libarchive/test/libarchive_test-test_read_format_isorr_new_bz2.o: libarchive/test/test_read_format_isorr_new_bz2.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_isorr_new_bz2.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_isorr_new_bz2.Tpo -c -o libarchive/test/libarchive_test-test_read_format_isorr_new_bz2.o `test -f 'libarchive/test/test_read_format_isorr_new_bz2.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_isorr_new_bz2.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_isorr_new_bz2.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_isorr_new_bz2.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_isorr_new_bz2.c' object='libarchive/test/libarchive_test-test_read_format_isorr_new_bz2.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_isorr_new_bz2.o: libarchive/test/test_read_format_isorr_new_bz2.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_isorr_new_bz2.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_isorr_new_bz2.Tpo -c -o libarchive/test/test-test_read_format_isorr_new_bz2.o `test -f 'libarchive/test/test_read_format_isorr_new_bz2.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_isorr_new_bz2.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_isorr_new_bz2.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_isorr_new_bz2.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_isorr_new_bz2.c' object='libarchive/test/test-test_read_format_isorr_new_bz2.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_isorr_new_bz2.o `test -f 'libarchive/test/test_read_format_isorr_new_bz2.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_isorr_new_bz2.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_isorr_new_bz2.o `test -f 'libarchive/test/test_read_format_isorr_new_bz2.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_isorr_new_bz2.c -libarchive/test/libarchive_test-test_read_format_isorr_new_bz2.obj: libarchive/test/test_read_format_isorr_new_bz2.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_isorr_new_bz2.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_isorr_new_bz2.Tpo -c -o libarchive/test/libarchive_test-test_read_format_isorr_new_bz2.obj `if test -f 'libarchive/test/test_read_format_isorr_new_bz2.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_isorr_new_bz2.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_isorr_new_bz2.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_isorr_new_bz2.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_isorr_new_bz2.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_isorr_new_bz2.c' object='libarchive/test/libarchive_test-test_read_format_isorr_new_bz2.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_isorr_new_bz2.obj: libarchive/test/test_read_format_isorr_new_bz2.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_isorr_new_bz2.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_isorr_new_bz2.Tpo -c -o libarchive/test/test-test_read_format_isorr_new_bz2.obj `if test -f 'libarchive/test/test_read_format_isorr_new_bz2.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_isorr_new_bz2.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_isorr_new_bz2.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_isorr_new_bz2.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_isorr_new_bz2.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_isorr_new_bz2.c' object='libarchive/test/test-test_read_format_isorr_new_bz2.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_isorr_new_bz2.obj `if test -f 'libarchive/test/test_read_format_isorr_new_bz2.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_isorr_new_bz2.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_isorr_new_bz2.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_isorr_new_bz2.obj `if test -f 'libarchive/test/test_read_format_isorr_new_bz2.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_isorr_new_bz2.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_isorr_new_bz2.c'; fi` -libarchive/test/libarchive_test-test_read_format_isorr_rr_moved.o: libarchive/test/test_read_format_isorr_rr_moved.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_isorr_rr_moved.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_isorr_rr_moved.Tpo -c -o libarchive/test/libarchive_test-test_read_format_isorr_rr_moved.o `test -f 'libarchive/test/test_read_format_isorr_rr_moved.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_isorr_rr_moved.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_isorr_rr_moved.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_isorr_rr_moved.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_isorr_rr_moved.c' object='libarchive/test/libarchive_test-test_read_format_isorr_rr_moved.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_isorr_rr_moved.o: libarchive/test/test_read_format_isorr_rr_moved.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_isorr_rr_moved.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_isorr_rr_moved.Tpo -c -o libarchive/test/test-test_read_format_isorr_rr_moved.o `test -f 'libarchive/test/test_read_format_isorr_rr_moved.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_isorr_rr_moved.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_isorr_rr_moved.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_isorr_rr_moved.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_isorr_rr_moved.c' object='libarchive/test/test-test_read_format_isorr_rr_moved.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_isorr_rr_moved.o `test -f 'libarchive/test/test_read_format_isorr_rr_moved.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_isorr_rr_moved.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_isorr_rr_moved.o `test -f 'libarchive/test/test_read_format_isorr_rr_moved.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_isorr_rr_moved.c -libarchive/test/libarchive_test-test_read_format_isorr_rr_moved.obj: libarchive/test/test_read_format_isorr_rr_moved.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_isorr_rr_moved.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_isorr_rr_moved.Tpo -c -o libarchive/test/libarchive_test-test_read_format_isorr_rr_moved.obj `if test -f 'libarchive/test/test_read_format_isorr_rr_moved.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_isorr_rr_moved.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_isorr_rr_moved.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_isorr_rr_moved.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_isorr_rr_moved.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_isorr_rr_moved.c' object='libarchive/test/libarchive_test-test_read_format_isorr_rr_moved.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_isorr_rr_moved.obj: libarchive/test/test_read_format_isorr_rr_moved.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_isorr_rr_moved.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_isorr_rr_moved.Tpo -c -o libarchive/test/test-test_read_format_isorr_rr_moved.obj `if test -f 'libarchive/test/test_read_format_isorr_rr_moved.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_isorr_rr_moved.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_isorr_rr_moved.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_isorr_rr_moved.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_isorr_rr_moved.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_isorr_rr_moved.c' object='libarchive/test/test-test_read_format_isorr_rr_moved.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_isorr_rr_moved.obj `if test -f 'libarchive/test/test_read_format_isorr_rr_moved.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_isorr_rr_moved.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_isorr_rr_moved.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_isorr_rr_moved.obj `if test -f 'libarchive/test/test_read_format_isorr_rr_moved.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_isorr_rr_moved.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_isorr_rr_moved.c'; fi` -libarchive/test/libarchive_test-test_read_format_isozisofs_bz2.o: libarchive/test/test_read_format_isozisofs_bz2.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_isozisofs_bz2.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_isozisofs_bz2.Tpo -c -o libarchive/test/libarchive_test-test_read_format_isozisofs_bz2.o `test -f 'libarchive/test/test_read_format_isozisofs_bz2.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_isozisofs_bz2.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_isozisofs_bz2.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_isozisofs_bz2.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_isozisofs_bz2.c' object='libarchive/test/libarchive_test-test_read_format_isozisofs_bz2.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_isozisofs_bz2.o: libarchive/test/test_read_format_isozisofs_bz2.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_isozisofs_bz2.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_isozisofs_bz2.Tpo -c -o libarchive/test/test-test_read_format_isozisofs_bz2.o `test -f 'libarchive/test/test_read_format_isozisofs_bz2.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_isozisofs_bz2.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_isozisofs_bz2.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_isozisofs_bz2.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_isozisofs_bz2.c' object='libarchive/test/test-test_read_format_isozisofs_bz2.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_isozisofs_bz2.o `test -f 'libarchive/test/test_read_format_isozisofs_bz2.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_isozisofs_bz2.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_isozisofs_bz2.o `test -f 'libarchive/test/test_read_format_isozisofs_bz2.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_isozisofs_bz2.c -libarchive/test/libarchive_test-test_read_format_isozisofs_bz2.obj: libarchive/test/test_read_format_isozisofs_bz2.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_isozisofs_bz2.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_isozisofs_bz2.Tpo -c -o libarchive/test/libarchive_test-test_read_format_isozisofs_bz2.obj `if test -f 'libarchive/test/test_read_format_isozisofs_bz2.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_isozisofs_bz2.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_isozisofs_bz2.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_isozisofs_bz2.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_isozisofs_bz2.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_isozisofs_bz2.c' object='libarchive/test/libarchive_test-test_read_format_isozisofs_bz2.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_isozisofs_bz2.obj: libarchive/test/test_read_format_isozisofs_bz2.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_isozisofs_bz2.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_isozisofs_bz2.Tpo -c -o libarchive/test/test-test_read_format_isozisofs_bz2.obj `if test -f 'libarchive/test/test_read_format_isozisofs_bz2.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_isozisofs_bz2.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_isozisofs_bz2.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_isozisofs_bz2.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_isozisofs_bz2.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_isozisofs_bz2.c' object='libarchive/test/test-test_read_format_isozisofs_bz2.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_isozisofs_bz2.obj `if test -f 'libarchive/test/test_read_format_isozisofs_bz2.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_isozisofs_bz2.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_isozisofs_bz2.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_isozisofs_bz2.obj `if test -f 'libarchive/test/test_read_format_isozisofs_bz2.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_isozisofs_bz2.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_isozisofs_bz2.c'; fi` -libarchive/test/libarchive_test-test_read_format_lha.o: libarchive/test/test_read_format_lha.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_lha.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_lha.Tpo -c -o libarchive/test/libarchive_test-test_read_format_lha.o `test -f 'libarchive/test/test_read_format_lha.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_lha.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_lha.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_lha.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_lha.c' object='libarchive/test/libarchive_test-test_read_format_lha.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_lha.o: libarchive/test/test_read_format_lha.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_lha.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_lha.Tpo -c -o libarchive/test/test-test_read_format_lha.o `test -f 'libarchive/test/test_read_format_lha.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_lha.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_lha.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_lha.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_lha.c' object='libarchive/test/test-test_read_format_lha.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_lha.o `test -f 'libarchive/test/test_read_format_lha.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_lha.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_lha.o `test -f 'libarchive/test/test_read_format_lha.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_lha.c -libarchive/test/libarchive_test-test_read_format_lha.obj: libarchive/test/test_read_format_lha.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_lha.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_lha.Tpo -c -o libarchive/test/libarchive_test-test_read_format_lha.obj `if test -f 'libarchive/test/test_read_format_lha.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_lha.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_lha.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_lha.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_lha.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_lha.c' object='libarchive/test/libarchive_test-test_read_format_lha.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_lha.obj: libarchive/test/test_read_format_lha.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_lha.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_lha.Tpo -c -o libarchive/test/test-test_read_format_lha.obj `if test -f 'libarchive/test/test_read_format_lha.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_lha.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_lha.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_lha.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_lha.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_lha.c' object='libarchive/test/test-test_read_format_lha.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_lha.obj `if test -f 'libarchive/test/test_read_format_lha.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_lha.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_lha.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_lha.obj `if test -f 'libarchive/test/test_read_format_lha.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_lha.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_lha.c'; fi` -libarchive/test/libarchive_test-test_read_format_lha_bugfix_0.o: libarchive/test/test_read_format_lha_bugfix_0.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_lha_bugfix_0.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_lha_bugfix_0.Tpo -c -o libarchive/test/libarchive_test-test_read_format_lha_bugfix_0.o `test -f 'libarchive/test/test_read_format_lha_bugfix_0.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_lha_bugfix_0.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_lha_bugfix_0.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_lha_bugfix_0.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_lha_bugfix_0.c' object='libarchive/test/libarchive_test-test_read_format_lha_bugfix_0.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_lha_bugfix_0.o: libarchive/test/test_read_format_lha_bugfix_0.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_lha_bugfix_0.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_lha_bugfix_0.Tpo -c -o libarchive/test/test-test_read_format_lha_bugfix_0.o `test -f 'libarchive/test/test_read_format_lha_bugfix_0.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_lha_bugfix_0.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_lha_bugfix_0.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_lha_bugfix_0.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_lha_bugfix_0.c' object='libarchive/test/test-test_read_format_lha_bugfix_0.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_lha_bugfix_0.o `test -f 'libarchive/test/test_read_format_lha_bugfix_0.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_lha_bugfix_0.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_lha_bugfix_0.o `test -f 'libarchive/test/test_read_format_lha_bugfix_0.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_lha_bugfix_0.c -libarchive/test/libarchive_test-test_read_format_lha_bugfix_0.obj: libarchive/test/test_read_format_lha_bugfix_0.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_lha_bugfix_0.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_lha_bugfix_0.Tpo -c -o libarchive/test/libarchive_test-test_read_format_lha_bugfix_0.obj `if test -f 'libarchive/test/test_read_format_lha_bugfix_0.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_lha_bugfix_0.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_lha_bugfix_0.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_lha_bugfix_0.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_lha_bugfix_0.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_lha_bugfix_0.c' object='libarchive/test/libarchive_test-test_read_format_lha_bugfix_0.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_lha_bugfix_0.obj: libarchive/test/test_read_format_lha_bugfix_0.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_lha_bugfix_0.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_lha_bugfix_0.Tpo -c -o libarchive/test/test-test_read_format_lha_bugfix_0.obj `if test -f 'libarchive/test/test_read_format_lha_bugfix_0.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_lha_bugfix_0.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_lha_bugfix_0.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_lha_bugfix_0.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_lha_bugfix_0.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_lha_bugfix_0.c' object='libarchive/test/test-test_read_format_lha_bugfix_0.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_lha_bugfix_0.obj `if test -f 'libarchive/test/test_read_format_lha_bugfix_0.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_lha_bugfix_0.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_lha_bugfix_0.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_lha_bugfix_0.obj `if test -f 'libarchive/test/test_read_format_lha_bugfix_0.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_lha_bugfix_0.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_lha_bugfix_0.c'; fi` -libarchive/test/libarchive_test-test_read_format_lha_filename.o: libarchive/test/test_read_format_lha_filename.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_lha_filename.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_lha_filename.Tpo -c -o libarchive/test/libarchive_test-test_read_format_lha_filename.o `test -f 'libarchive/test/test_read_format_lha_filename.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_lha_filename.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_lha_filename.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_lha_filename.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_lha_filename.c' object='libarchive/test/libarchive_test-test_read_format_lha_filename.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_lha_filename.o: libarchive/test/test_read_format_lha_filename.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_lha_filename.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_lha_filename.Tpo -c -o libarchive/test/test-test_read_format_lha_filename.o `test -f 'libarchive/test/test_read_format_lha_filename.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_lha_filename.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_lha_filename.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_lha_filename.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_lha_filename.c' object='libarchive/test/test-test_read_format_lha_filename.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_lha_filename.o `test -f 'libarchive/test/test_read_format_lha_filename.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_lha_filename.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_lha_filename.o `test -f 'libarchive/test/test_read_format_lha_filename.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_lha_filename.c -libarchive/test/libarchive_test-test_read_format_lha_filename.obj: libarchive/test/test_read_format_lha_filename.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_lha_filename.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_lha_filename.Tpo -c -o libarchive/test/libarchive_test-test_read_format_lha_filename.obj `if test -f 'libarchive/test/test_read_format_lha_filename.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_lha_filename.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_lha_filename.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_lha_filename.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_lha_filename.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_lha_filename.c' object='libarchive/test/libarchive_test-test_read_format_lha_filename.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_lha_filename.obj: libarchive/test/test_read_format_lha_filename.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_lha_filename.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_lha_filename.Tpo -c -o libarchive/test/test-test_read_format_lha_filename.obj `if test -f 'libarchive/test/test_read_format_lha_filename.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_lha_filename.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_lha_filename.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_lha_filename.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_lha_filename.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_lha_filename.c' object='libarchive/test/test-test_read_format_lha_filename.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_lha_filename.obj `if test -f 'libarchive/test/test_read_format_lha_filename.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_lha_filename.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_lha_filename.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_lha_filename.obj `if test -f 'libarchive/test/test_read_format_lha_filename.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_lha_filename.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_lha_filename.c'; fi` -libarchive/test/libarchive_test-test_read_format_lha_filename_utf16.o: libarchive/test/test_read_format_lha_filename_utf16.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_lha_filename_utf16.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_lha_filename_utf16.Tpo -c -o libarchive/test/libarchive_test-test_read_format_lha_filename_utf16.o `test -f 'libarchive/test/test_read_format_lha_filename_utf16.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_lha_filename_utf16.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_lha_filename_utf16.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_lha_filename_utf16.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_lha_filename_utf16.c' object='libarchive/test/libarchive_test-test_read_format_lha_filename_utf16.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_lha_filename_utf16.o: libarchive/test/test_read_format_lha_filename_utf16.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_lha_filename_utf16.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_lha_filename_utf16.Tpo -c -o libarchive/test/test-test_read_format_lha_filename_utf16.o `test -f 'libarchive/test/test_read_format_lha_filename_utf16.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_lha_filename_utf16.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_lha_filename_utf16.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_lha_filename_utf16.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_lha_filename_utf16.c' object='libarchive/test/test-test_read_format_lha_filename_utf16.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_lha_filename_utf16.o `test -f 'libarchive/test/test_read_format_lha_filename_utf16.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_lha_filename_utf16.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_lha_filename_utf16.o `test -f 'libarchive/test/test_read_format_lha_filename_utf16.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_lha_filename_utf16.c -libarchive/test/libarchive_test-test_read_format_lha_filename_utf16.obj: libarchive/test/test_read_format_lha_filename_utf16.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_lha_filename_utf16.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_lha_filename_utf16.Tpo -c -o libarchive/test/libarchive_test-test_read_format_lha_filename_utf16.obj `if test -f 'libarchive/test/test_read_format_lha_filename_utf16.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_lha_filename_utf16.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_lha_filename_utf16.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_lha_filename_utf16.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_lha_filename_utf16.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_lha_filename_utf16.c' object='libarchive/test/libarchive_test-test_read_format_lha_filename_utf16.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_lha_filename_utf16.obj: libarchive/test/test_read_format_lha_filename_utf16.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_lha_filename_utf16.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_lha_filename_utf16.Tpo -c -o libarchive/test/test-test_read_format_lha_filename_utf16.obj `if test -f 'libarchive/test/test_read_format_lha_filename_utf16.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_lha_filename_utf16.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_lha_filename_utf16.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_lha_filename_utf16.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_lha_filename_utf16.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_lha_filename_utf16.c' object='libarchive/test/test-test_read_format_lha_filename_utf16.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_lha_filename_utf16.obj `if test -f 'libarchive/test/test_read_format_lha_filename_utf16.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_lha_filename_utf16.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_lha_filename_utf16.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_lha_filename_utf16.obj `if test -f 'libarchive/test/test_read_format_lha_filename_utf16.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_lha_filename_utf16.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_lha_filename_utf16.c'; fi` -libarchive/test/libarchive_test-test_read_format_mtree.o: libarchive/test/test_read_format_mtree.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_mtree.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_mtree.Tpo -c -o libarchive/test/libarchive_test-test_read_format_mtree.o `test -f 'libarchive/test/test_read_format_mtree.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_mtree.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_mtree.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_mtree.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_mtree.c' object='libarchive/test/libarchive_test-test_read_format_mtree.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_mtree.o: libarchive/test/test_read_format_mtree.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_mtree.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_mtree.Tpo -c -o libarchive/test/test-test_read_format_mtree.o `test -f 'libarchive/test/test_read_format_mtree.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_mtree.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_mtree.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_mtree.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_mtree.c' object='libarchive/test/test-test_read_format_mtree.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_mtree.o `test -f 'libarchive/test/test_read_format_mtree.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_mtree.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_mtree.o `test -f 'libarchive/test/test_read_format_mtree.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_mtree.c -libarchive/test/libarchive_test-test_read_format_mtree.obj: libarchive/test/test_read_format_mtree.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_mtree.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_mtree.Tpo -c -o libarchive/test/libarchive_test-test_read_format_mtree.obj `if test -f 'libarchive/test/test_read_format_mtree.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_mtree.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_mtree.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_mtree.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_mtree.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_mtree.c' object='libarchive/test/libarchive_test-test_read_format_mtree.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_mtree.obj: libarchive/test/test_read_format_mtree.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_mtree.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_mtree.Tpo -c -o libarchive/test/test-test_read_format_mtree.obj `if test -f 'libarchive/test/test_read_format_mtree.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_mtree.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_mtree.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_mtree.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_mtree.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_mtree.c' object='libarchive/test/test-test_read_format_mtree.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_mtree.obj `if test -f 'libarchive/test/test_read_format_mtree.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_mtree.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_mtree.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_mtree.obj `if test -f 'libarchive/test/test_read_format_mtree.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_mtree.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_mtree.c'; fi` -libarchive/test/libarchive_test-test_read_format_mtree_crash747.o: libarchive/test/test_read_format_mtree_crash747.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_mtree_crash747.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_mtree_crash747.Tpo -c -o libarchive/test/libarchive_test-test_read_format_mtree_crash747.o `test -f 'libarchive/test/test_read_format_mtree_crash747.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_mtree_crash747.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_mtree_crash747.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_mtree_crash747.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_mtree_crash747.c' object='libarchive/test/libarchive_test-test_read_format_mtree_crash747.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_mtree_crash747.o: libarchive/test/test_read_format_mtree_crash747.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_mtree_crash747.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_mtree_crash747.Tpo -c -o libarchive/test/test-test_read_format_mtree_crash747.o `test -f 'libarchive/test/test_read_format_mtree_crash747.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_mtree_crash747.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_mtree_crash747.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_mtree_crash747.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_mtree_crash747.c' object='libarchive/test/test-test_read_format_mtree_crash747.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_mtree_crash747.o `test -f 'libarchive/test/test_read_format_mtree_crash747.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_mtree_crash747.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_mtree_crash747.o `test -f 'libarchive/test/test_read_format_mtree_crash747.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_mtree_crash747.c -libarchive/test/libarchive_test-test_read_format_mtree_crash747.obj: libarchive/test/test_read_format_mtree_crash747.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_mtree_crash747.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_mtree_crash747.Tpo -c -o libarchive/test/libarchive_test-test_read_format_mtree_crash747.obj `if test -f 'libarchive/test/test_read_format_mtree_crash747.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_mtree_crash747.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_mtree_crash747.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_mtree_crash747.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_mtree_crash747.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_mtree_crash747.c' object='libarchive/test/libarchive_test-test_read_format_mtree_crash747.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_mtree_crash747.obj: libarchive/test/test_read_format_mtree_crash747.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_mtree_crash747.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_mtree_crash747.Tpo -c -o libarchive/test/test-test_read_format_mtree_crash747.obj `if test -f 'libarchive/test/test_read_format_mtree_crash747.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_mtree_crash747.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_mtree_crash747.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_mtree_crash747.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_mtree_crash747.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_mtree_crash747.c' object='libarchive/test/test-test_read_format_mtree_crash747.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_mtree_crash747.obj `if test -f 'libarchive/test/test_read_format_mtree_crash747.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_mtree_crash747.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_mtree_crash747.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_mtree_crash747.obj `if test -f 'libarchive/test/test_read_format_mtree_crash747.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_mtree_crash747.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_mtree_crash747.c'; fi` -libarchive/test/libarchive_test-test_read_format_pax_bz2.o: libarchive/test/test_read_format_pax_bz2.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_pax_bz2.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_pax_bz2.Tpo -c -o libarchive/test/libarchive_test-test_read_format_pax_bz2.o `test -f 'libarchive/test/test_read_format_pax_bz2.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_pax_bz2.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_pax_bz2.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_pax_bz2.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_pax_bz2.c' object='libarchive/test/libarchive_test-test_read_format_pax_bz2.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_pax_bz2.o: libarchive/test/test_read_format_pax_bz2.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_pax_bz2.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_pax_bz2.Tpo -c -o libarchive/test/test-test_read_format_pax_bz2.o `test -f 'libarchive/test/test_read_format_pax_bz2.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_pax_bz2.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_pax_bz2.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_pax_bz2.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_pax_bz2.c' object='libarchive/test/test-test_read_format_pax_bz2.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_pax_bz2.o `test -f 'libarchive/test/test_read_format_pax_bz2.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_pax_bz2.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_pax_bz2.o `test -f 'libarchive/test/test_read_format_pax_bz2.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_pax_bz2.c -libarchive/test/libarchive_test-test_read_format_pax_bz2.obj: libarchive/test/test_read_format_pax_bz2.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_pax_bz2.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_pax_bz2.Tpo -c -o libarchive/test/libarchive_test-test_read_format_pax_bz2.obj `if test -f 'libarchive/test/test_read_format_pax_bz2.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_pax_bz2.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_pax_bz2.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_pax_bz2.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_pax_bz2.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_pax_bz2.c' object='libarchive/test/libarchive_test-test_read_format_pax_bz2.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_pax_bz2.obj: libarchive/test/test_read_format_pax_bz2.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_pax_bz2.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_pax_bz2.Tpo -c -o libarchive/test/test-test_read_format_pax_bz2.obj `if test -f 'libarchive/test/test_read_format_pax_bz2.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_pax_bz2.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_pax_bz2.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_pax_bz2.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_pax_bz2.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_pax_bz2.c' object='libarchive/test/test-test_read_format_pax_bz2.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_pax_bz2.obj `if test -f 'libarchive/test/test_read_format_pax_bz2.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_pax_bz2.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_pax_bz2.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_pax_bz2.obj `if test -f 'libarchive/test/test_read_format_pax_bz2.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_pax_bz2.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_pax_bz2.c'; fi` -libarchive/test/libarchive_test-test_read_format_rar.o: libarchive/test/test_read_format_rar.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_rar.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_rar.Tpo -c -o libarchive/test/libarchive_test-test_read_format_rar.o `test -f 'libarchive/test/test_read_format_rar.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_rar.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_rar.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_rar.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_rar.c' object='libarchive/test/libarchive_test-test_read_format_rar.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_rar.o: libarchive/test/test_read_format_rar.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_rar.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_rar.Tpo -c -o libarchive/test/test-test_read_format_rar.o `test -f 'libarchive/test/test_read_format_rar.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_rar.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_rar.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_rar.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_rar.c' object='libarchive/test/test-test_read_format_rar.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_rar.o `test -f 'libarchive/test/test_read_format_rar.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_rar.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_rar.o `test -f 'libarchive/test/test_read_format_rar.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_rar.c -libarchive/test/libarchive_test-test_read_format_rar.obj: libarchive/test/test_read_format_rar.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_rar.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_rar.Tpo -c -o libarchive/test/libarchive_test-test_read_format_rar.obj `if test -f 'libarchive/test/test_read_format_rar.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_rar.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_rar.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_rar.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_rar.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_rar.c' object='libarchive/test/libarchive_test-test_read_format_rar.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_rar.obj: libarchive/test/test_read_format_rar.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_rar.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_rar.Tpo -c -o libarchive/test/test-test_read_format_rar.obj `if test -f 'libarchive/test/test_read_format_rar.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_rar.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_rar.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_rar.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_rar.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_rar.c' object='libarchive/test/test-test_read_format_rar.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_rar.obj `if test -f 'libarchive/test/test_read_format_rar.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_rar.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_rar.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_rar.obj `if test -f 'libarchive/test/test_read_format_rar.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_rar.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_rar.c'; fi` -libarchive/test/libarchive_test-test_read_format_rar_encryption_data.o: libarchive/test/test_read_format_rar_encryption_data.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_rar_encryption_data.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_rar_encryption_data.Tpo -c -o libarchive/test/libarchive_test-test_read_format_rar_encryption_data.o `test -f 'libarchive/test/test_read_format_rar_encryption_data.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_rar_encryption_data.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_rar_encryption_data.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_rar_encryption_data.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_rar_encryption_data.c' object='libarchive/test/libarchive_test-test_read_format_rar_encryption_data.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_rar_encryption_data.o: libarchive/test/test_read_format_rar_encryption_data.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_rar_encryption_data.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_rar_encryption_data.Tpo -c -o libarchive/test/test-test_read_format_rar_encryption_data.o `test -f 'libarchive/test/test_read_format_rar_encryption_data.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_rar_encryption_data.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_rar_encryption_data.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_rar_encryption_data.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_rar_encryption_data.c' object='libarchive/test/test-test_read_format_rar_encryption_data.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_rar_encryption_data.o `test -f 'libarchive/test/test_read_format_rar_encryption_data.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_rar_encryption_data.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_rar_encryption_data.o `test -f 'libarchive/test/test_read_format_rar_encryption_data.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_rar_encryption_data.c -libarchive/test/libarchive_test-test_read_format_rar_encryption_data.obj: libarchive/test/test_read_format_rar_encryption_data.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_rar_encryption_data.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_rar_encryption_data.Tpo -c -o libarchive/test/libarchive_test-test_read_format_rar_encryption_data.obj `if test -f 'libarchive/test/test_read_format_rar_encryption_data.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_rar_encryption_data.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_rar_encryption_data.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_rar_encryption_data.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_rar_encryption_data.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_rar_encryption_data.c' object='libarchive/test/libarchive_test-test_read_format_rar_encryption_data.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_rar_encryption_data.obj: libarchive/test/test_read_format_rar_encryption_data.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_rar_encryption_data.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_rar_encryption_data.Tpo -c -o libarchive/test/test-test_read_format_rar_encryption_data.obj `if test -f 'libarchive/test/test_read_format_rar_encryption_data.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_rar_encryption_data.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_rar_encryption_data.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_rar_encryption_data.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_rar_encryption_data.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_rar_encryption_data.c' object='libarchive/test/test-test_read_format_rar_encryption_data.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_rar_encryption_data.obj `if test -f 'libarchive/test/test_read_format_rar_encryption_data.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_rar_encryption_data.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_rar_encryption_data.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_rar_encryption_data.obj `if test -f 'libarchive/test/test_read_format_rar_encryption_data.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_rar_encryption_data.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_rar_encryption_data.c'; fi` -libarchive/test/libarchive_test-test_read_format_rar_encryption_partially.o: libarchive/test/test_read_format_rar_encryption_partially.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_rar_encryption_partially.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_rar_encryption_partially.Tpo -c -o libarchive/test/libarchive_test-test_read_format_rar_encryption_partially.o `test -f 'libarchive/test/test_read_format_rar_encryption_partially.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_rar_encryption_partially.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_rar_encryption_partially.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_rar_encryption_partially.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_rar_encryption_partially.c' object='libarchive/test/libarchive_test-test_read_format_rar_encryption_partially.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_rar_encryption_partially.o: libarchive/test/test_read_format_rar_encryption_partially.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_rar_encryption_partially.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_rar_encryption_partially.Tpo -c -o libarchive/test/test-test_read_format_rar_encryption_partially.o `test -f 'libarchive/test/test_read_format_rar_encryption_partially.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_rar_encryption_partially.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_rar_encryption_partially.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_rar_encryption_partially.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_rar_encryption_partially.c' object='libarchive/test/test-test_read_format_rar_encryption_partially.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_rar_encryption_partially.o `test -f 'libarchive/test/test_read_format_rar_encryption_partially.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_rar_encryption_partially.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_rar_encryption_partially.o `test -f 'libarchive/test/test_read_format_rar_encryption_partially.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_rar_encryption_partially.c -libarchive/test/libarchive_test-test_read_format_rar_encryption_partially.obj: libarchive/test/test_read_format_rar_encryption_partially.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_rar_encryption_partially.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_rar_encryption_partially.Tpo -c -o libarchive/test/libarchive_test-test_read_format_rar_encryption_partially.obj `if test -f 'libarchive/test/test_read_format_rar_encryption_partially.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_rar_encryption_partially.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_rar_encryption_partially.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_rar_encryption_partially.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_rar_encryption_partially.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_rar_encryption_partially.c' object='libarchive/test/libarchive_test-test_read_format_rar_encryption_partially.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_rar_encryption_partially.obj: libarchive/test/test_read_format_rar_encryption_partially.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_rar_encryption_partially.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_rar_encryption_partially.Tpo -c -o libarchive/test/test-test_read_format_rar_encryption_partially.obj `if test -f 'libarchive/test/test_read_format_rar_encryption_partially.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_rar_encryption_partially.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_rar_encryption_partially.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_rar_encryption_partially.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_rar_encryption_partially.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_rar_encryption_partially.c' object='libarchive/test/test-test_read_format_rar_encryption_partially.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_rar_encryption_partially.obj `if test -f 'libarchive/test/test_read_format_rar_encryption_partially.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_rar_encryption_partially.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_rar_encryption_partially.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_rar_encryption_partially.obj `if test -f 'libarchive/test/test_read_format_rar_encryption_partially.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_rar_encryption_partially.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_rar_encryption_partially.c'; fi` -libarchive/test/libarchive_test-test_read_format_rar_encryption_header.o: libarchive/test/test_read_format_rar_encryption_header.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_rar_encryption_header.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_rar_encryption_header.Tpo -c -o libarchive/test/libarchive_test-test_read_format_rar_encryption_header.o `test -f 'libarchive/test/test_read_format_rar_encryption_header.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_rar_encryption_header.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_rar_encryption_header.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_rar_encryption_header.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_rar_encryption_header.c' object='libarchive/test/libarchive_test-test_read_format_rar_encryption_header.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_rar_encryption_header.o: libarchive/test/test_read_format_rar_encryption_header.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_rar_encryption_header.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_rar_encryption_header.Tpo -c -o libarchive/test/test-test_read_format_rar_encryption_header.o `test -f 'libarchive/test/test_read_format_rar_encryption_header.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_rar_encryption_header.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_rar_encryption_header.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_rar_encryption_header.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_rar_encryption_header.c' object='libarchive/test/test-test_read_format_rar_encryption_header.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_rar_encryption_header.o `test -f 'libarchive/test/test_read_format_rar_encryption_header.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_rar_encryption_header.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_rar_encryption_header.o `test -f 'libarchive/test/test_read_format_rar_encryption_header.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_rar_encryption_header.c -libarchive/test/libarchive_test-test_read_format_rar_encryption_header.obj: libarchive/test/test_read_format_rar_encryption_header.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_rar_encryption_header.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_rar_encryption_header.Tpo -c -o libarchive/test/libarchive_test-test_read_format_rar_encryption_header.obj `if test -f 'libarchive/test/test_read_format_rar_encryption_header.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_rar_encryption_header.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_rar_encryption_header.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_rar_encryption_header.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_rar_encryption_header.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_rar_encryption_header.c' object='libarchive/test/libarchive_test-test_read_format_rar_encryption_header.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_rar_encryption_header.obj: libarchive/test/test_read_format_rar_encryption_header.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_rar_encryption_header.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_rar_encryption_header.Tpo -c -o libarchive/test/test-test_read_format_rar_encryption_header.obj `if test -f 'libarchive/test/test_read_format_rar_encryption_header.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_rar_encryption_header.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_rar_encryption_header.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_rar_encryption_header.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_rar_encryption_header.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_rar_encryption_header.c' object='libarchive/test/test-test_read_format_rar_encryption_header.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_rar_encryption_header.obj `if test -f 'libarchive/test/test_read_format_rar_encryption_header.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_rar_encryption_header.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_rar_encryption_header.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_rar_encryption_header.obj `if test -f 'libarchive/test/test_read_format_rar_encryption_header.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_rar_encryption_header.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_rar_encryption_header.c'; fi` -libarchive/test/libarchive_test-test_read_format_rar_invalid1.o: libarchive/test/test_read_format_rar_invalid1.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_rar_invalid1.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_rar_invalid1.Tpo -c -o libarchive/test/libarchive_test-test_read_format_rar_invalid1.o `test -f 'libarchive/test/test_read_format_rar_invalid1.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_rar_invalid1.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_rar_invalid1.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_rar_invalid1.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_rar_invalid1.c' object='libarchive/test/libarchive_test-test_read_format_rar_invalid1.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_rar_invalid1.o: libarchive/test/test_read_format_rar_invalid1.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_rar_invalid1.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_rar_invalid1.Tpo -c -o libarchive/test/test-test_read_format_rar_invalid1.o `test -f 'libarchive/test/test_read_format_rar_invalid1.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_rar_invalid1.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_rar_invalid1.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_rar_invalid1.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_rar_invalid1.c' object='libarchive/test/test-test_read_format_rar_invalid1.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_rar_invalid1.o `test -f 'libarchive/test/test_read_format_rar_invalid1.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_rar_invalid1.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_rar_invalid1.o `test -f 'libarchive/test/test_read_format_rar_invalid1.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_rar_invalid1.c -libarchive/test/libarchive_test-test_read_format_rar_invalid1.obj: libarchive/test/test_read_format_rar_invalid1.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_rar_invalid1.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_rar_invalid1.Tpo -c -o libarchive/test/libarchive_test-test_read_format_rar_invalid1.obj `if test -f 'libarchive/test/test_read_format_rar_invalid1.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_rar_invalid1.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_rar_invalid1.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_rar_invalid1.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_rar_invalid1.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_rar_invalid1.c' object='libarchive/test/libarchive_test-test_read_format_rar_invalid1.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_rar_invalid1.obj: libarchive/test/test_read_format_rar_invalid1.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_rar_invalid1.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_rar_invalid1.Tpo -c -o libarchive/test/test-test_read_format_rar_invalid1.obj `if test -f 'libarchive/test/test_read_format_rar_invalid1.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_rar_invalid1.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_rar_invalid1.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_rar_invalid1.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_rar_invalid1.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_rar_invalid1.c' object='libarchive/test/test-test_read_format_rar_invalid1.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_rar_invalid1.obj `if test -f 'libarchive/test/test_read_format_rar_invalid1.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_rar_invalid1.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_rar_invalid1.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_rar_invalid1.obj `if test -f 'libarchive/test/test_read_format_rar_invalid1.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_rar_invalid1.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_rar_invalid1.c'; fi` -libarchive/test/libarchive_test-test_read_format_rar5.o: libarchive/test/test_read_format_rar5.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_rar5.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_rar5.Tpo -c -o libarchive/test/libarchive_test-test_read_format_rar5.o `test -f 'libarchive/test/test_read_format_rar5.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_rar5.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_rar5.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_rar5.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_rar5.c' object='libarchive/test/libarchive_test-test_read_format_rar5.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_rar5.o: libarchive/test/test_read_format_rar5.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_rar5.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_rar5.Tpo -c -o libarchive/test/test-test_read_format_rar5.o `test -f 'libarchive/test/test_read_format_rar5.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_rar5.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_rar5.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_rar5.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_rar5.c' object='libarchive/test/test-test_read_format_rar5.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_rar5.o `test -f 'libarchive/test/test_read_format_rar5.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_rar5.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_rar5.o `test -f 'libarchive/test/test_read_format_rar5.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_rar5.c -libarchive/test/libarchive_test-test_read_format_rar5.obj: libarchive/test/test_read_format_rar5.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_rar5.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_rar5.Tpo -c -o libarchive/test/libarchive_test-test_read_format_rar5.obj `if test -f 'libarchive/test/test_read_format_rar5.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_rar5.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_rar5.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_rar5.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_rar5.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_rar5.c' object='libarchive/test/libarchive_test-test_read_format_rar5.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_rar5.obj: libarchive/test/test_read_format_rar5.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_rar5.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_rar5.Tpo -c -o libarchive/test/test-test_read_format_rar5.obj `if test -f 'libarchive/test/test_read_format_rar5.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_rar5.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_rar5.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_rar5.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_rar5.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_rar5.c' object='libarchive/test/test-test_read_format_rar5.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_rar5.obj `if test -f 'libarchive/test/test_read_format_rar5.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_rar5.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_rar5.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_rar5.obj `if test -f 'libarchive/test/test_read_format_rar5.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_rar5.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_rar5.c'; fi` -libarchive/test/libarchive_test-test_read_format_raw.o: libarchive/test/test_read_format_raw.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_raw.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_raw.Tpo -c -o libarchive/test/libarchive_test-test_read_format_raw.o `test -f 'libarchive/test/test_read_format_raw.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_raw.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_raw.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_raw.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_raw.c' object='libarchive/test/libarchive_test-test_read_format_raw.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_raw.o: libarchive/test/test_read_format_raw.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_raw.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_raw.Tpo -c -o libarchive/test/test-test_read_format_raw.o `test -f 'libarchive/test/test_read_format_raw.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_raw.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_raw.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_raw.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_raw.c' object='libarchive/test/test-test_read_format_raw.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_raw.o `test -f 'libarchive/test/test_read_format_raw.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_raw.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_raw.o `test -f 'libarchive/test/test_read_format_raw.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_raw.c -libarchive/test/libarchive_test-test_read_format_raw.obj: libarchive/test/test_read_format_raw.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_raw.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_raw.Tpo -c -o libarchive/test/libarchive_test-test_read_format_raw.obj `if test -f 'libarchive/test/test_read_format_raw.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_raw.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_raw.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_raw.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_raw.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_raw.c' object='libarchive/test/libarchive_test-test_read_format_raw.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_raw.obj: libarchive/test/test_read_format_raw.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_raw.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_raw.Tpo -c -o libarchive/test/test-test_read_format_raw.obj `if test -f 'libarchive/test/test_read_format_raw.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_raw.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_raw.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_raw.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_raw.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_raw.c' object='libarchive/test/test-test_read_format_raw.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_raw.obj `if test -f 'libarchive/test/test_read_format_raw.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_raw.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_raw.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_raw.obj `if test -f 'libarchive/test/test_read_format_raw.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_raw.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_raw.c'; fi` -libarchive/test/libarchive_test-test_read_format_tar.o: libarchive/test/test_read_format_tar.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_tar.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_tar.Tpo -c -o libarchive/test/libarchive_test-test_read_format_tar.o `test -f 'libarchive/test/test_read_format_tar.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_tar.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_tar.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_tar.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_tar.c' object='libarchive/test/libarchive_test-test_read_format_tar.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_tar.o: libarchive/test/test_read_format_tar.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_tar.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_tar.Tpo -c -o libarchive/test/test-test_read_format_tar.o `test -f 'libarchive/test/test_read_format_tar.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_tar.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_tar.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_tar.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_tar.c' object='libarchive/test/test-test_read_format_tar.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_tar.o `test -f 'libarchive/test/test_read_format_tar.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_tar.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_tar.o `test -f 'libarchive/test/test_read_format_tar.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_tar.c -libarchive/test/libarchive_test-test_read_format_tar.obj: libarchive/test/test_read_format_tar.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_tar.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_tar.Tpo -c -o libarchive/test/libarchive_test-test_read_format_tar.obj `if test -f 'libarchive/test/test_read_format_tar.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_tar.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_tar.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_tar.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_tar.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_tar.c' object='libarchive/test/libarchive_test-test_read_format_tar.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_tar.obj: libarchive/test/test_read_format_tar.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_tar.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_tar.Tpo -c -o libarchive/test/test-test_read_format_tar.obj `if test -f 'libarchive/test/test_read_format_tar.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_tar.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_tar.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_tar.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_tar.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_tar.c' object='libarchive/test/test-test_read_format_tar.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_tar.obj `if test -f 'libarchive/test/test_read_format_tar.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_tar.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_tar.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_tar.obj `if test -f 'libarchive/test/test_read_format_tar.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_tar.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_tar.c'; fi` -libarchive/test/libarchive_test-test_read_format_tar_concatenated.o: libarchive/test/test_read_format_tar_concatenated.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_tar_concatenated.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_tar_concatenated.Tpo -c -o libarchive/test/libarchive_test-test_read_format_tar_concatenated.o `test -f 'libarchive/test/test_read_format_tar_concatenated.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_tar_concatenated.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_tar_concatenated.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_tar_concatenated.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_tar_concatenated.c' object='libarchive/test/libarchive_test-test_read_format_tar_concatenated.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_tar_concatenated.o: libarchive/test/test_read_format_tar_concatenated.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_tar_concatenated.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_tar_concatenated.Tpo -c -o libarchive/test/test-test_read_format_tar_concatenated.o `test -f 'libarchive/test/test_read_format_tar_concatenated.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_tar_concatenated.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_tar_concatenated.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_tar_concatenated.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_tar_concatenated.c' object='libarchive/test/test-test_read_format_tar_concatenated.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_tar_concatenated.o `test -f 'libarchive/test/test_read_format_tar_concatenated.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_tar_concatenated.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_tar_concatenated.o `test -f 'libarchive/test/test_read_format_tar_concatenated.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_tar_concatenated.c -libarchive/test/libarchive_test-test_read_format_tar_concatenated.obj: libarchive/test/test_read_format_tar_concatenated.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_tar_concatenated.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_tar_concatenated.Tpo -c -o libarchive/test/libarchive_test-test_read_format_tar_concatenated.obj `if test -f 'libarchive/test/test_read_format_tar_concatenated.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_tar_concatenated.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_tar_concatenated.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_tar_concatenated.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_tar_concatenated.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_tar_concatenated.c' object='libarchive/test/libarchive_test-test_read_format_tar_concatenated.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_tar_concatenated.obj: libarchive/test/test_read_format_tar_concatenated.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_tar_concatenated.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_tar_concatenated.Tpo -c -o libarchive/test/test-test_read_format_tar_concatenated.obj `if test -f 'libarchive/test/test_read_format_tar_concatenated.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_tar_concatenated.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_tar_concatenated.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_tar_concatenated.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_tar_concatenated.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_tar_concatenated.c' object='libarchive/test/test-test_read_format_tar_concatenated.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_tar_concatenated.obj `if test -f 'libarchive/test/test_read_format_tar_concatenated.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_tar_concatenated.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_tar_concatenated.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_tar_concatenated.obj `if test -f 'libarchive/test/test_read_format_tar_concatenated.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_tar_concatenated.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_tar_concatenated.c'; fi` -libarchive/test/libarchive_test-test_read_format_tar_empty_pax.o: libarchive/test/test_read_format_tar_empty_pax.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_tar_empty_pax.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_tar_empty_pax.Tpo -c -o libarchive/test/libarchive_test-test_read_format_tar_empty_pax.o `test -f 'libarchive/test/test_read_format_tar_empty_pax.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_tar_empty_pax.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_tar_empty_pax.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_tar_empty_pax.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_tar_empty_pax.c' object='libarchive/test/libarchive_test-test_read_format_tar_empty_pax.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_tar_empty_pax.o: libarchive/test/test_read_format_tar_empty_pax.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_tar_empty_pax.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_tar_empty_pax.Tpo -c -o libarchive/test/test-test_read_format_tar_empty_pax.o `test -f 'libarchive/test/test_read_format_tar_empty_pax.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_tar_empty_pax.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_tar_empty_pax.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_tar_empty_pax.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_tar_empty_pax.c' object='libarchive/test/test-test_read_format_tar_empty_pax.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_tar_empty_pax.o `test -f 'libarchive/test/test_read_format_tar_empty_pax.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_tar_empty_pax.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_tar_empty_pax.o `test -f 'libarchive/test/test_read_format_tar_empty_pax.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_tar_empty_pax.c -libarchive/test/libarchive_test-test_read_format_tar_empty_pax.obj: libarchive/test/test_read_format_tar_empty_pax.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_tar_empty_pax.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_tar_empty_pax.Tpo -c -o libarchive/test/libarchive_test-test_read_format_tar_empty_pax.obj `if test -f 'libarchive/test/test_read_format_tar_empty_pax.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_tar_empty_pax.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_tar_empty_pax.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_tar_empty_pax.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_tar_empty_pax.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_tar_empty_pax.c' object='libarchive/test/libarchive_test-test_read_format_tar_empty_pax.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_tar_empty_pax.obj: libarchive/test/test_read_format_tar_empty_pax.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_tar_empty_pax.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_tar_empty_pax.Tpo -c -o libarchive/test/test-test_read_format_tar_empty_pax.obj `if test -f 'libarchive/test/test_read_format_tar_empty_pax.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_tar_empty_pax.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_tar_empty_pax.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_tar_empty_pax.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_tar_empty_pax.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_tar_empty_pax.c' object='libarchive/test/test-test_read_format_tar_empty_pax.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_tar_empty_pax.obj `if test -f 'libarchive/test/test_read_format_tar_empty_pax.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_tar_empty_pax.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_tar_empty_pax.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_tar_empty_pax.obj `if test -f 'libarchive/test/test_read_format_tar_empty_pax.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_tar_empty_pax.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_tar_empty_pax.c'; fi` -libarchive/test/libarchive_test-test_read_format_tar_empty_filename.o: libarchive/test/test_read_format_tar_empty_filename.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_tar_empty_filename.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_tar_empty_filename.Tpo -c -o libarchive/test/libarchive_test-test_read_format_tar_empty_filename.o `test -f 'libarchive/test/test_read_format_tar_empty_filename.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_tar_empty_filename.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_tar_empty_filename.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_tar_empty_filename.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_tar_empty_filename.c' object='libarchive/test/libarchive_test-test_read_format_tar_empty_filename.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_tar_empty_filename.o: libarchive/test/test_read_format_tar_empty_filename.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_tar_empty_filename.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_tar_empty_filename.Tpo -c -o libarchive/test/test-test_read_format_tar_empty_filename.o `test -f 'libarchive/test/test_read_format_tar_empty_filename.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_tar_empty_filename.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_tar_empty_filename.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_tar_empty_filename.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_tar_empty_filename.c' object='libarchive/test/test-test_read_format_tar_empty_filename.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_tar_empty_filename.o `test -f 'libarchive/test/test_read_format_tar_empty_filename.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_tar_empty_filename.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_tar_empty_filename.o `test -f 'libarchive/test/test_read_format_tar_empty_filename.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_tar_empty_filename.c -libarchive/test/libarchive_test-test_read_format_tar_empty_filename.obj: libarchive/test/test_read_format_tar_empty_filename.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_tar_empty_filename.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_tar_empty_filename.Tpo -c -o libarchive/test/libarchive_test-test_read_format_tar_empty_filename.obj `if test -f 'libarchive/test/test_read_format_tar_empty_filename.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_tar_empty_filename.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_tar_empty_filename.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_tar_empty_filename.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_tar_empty_filename.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_tar_empty_filename.c' object='libarchive/test/libarchive_test-test_read_format_tar_empty_filename.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_tar_empty_filename.obj: libarchive/test/test_read_format_tar_empty_filename.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_tar_empty_filename.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_tar_empty_filename.Tpo -c -o libarchive/test/test-test_read_format_tar_empty_filename.obj `if test -f 'libarchive/test/test_read_format_tar_empty_filename.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_tar_empty_filename.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_tar_empty_filename.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_tar_empty_filename.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_tar_empty_filename.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_tar_empty_filename.c' object='libarchive/test/test-test_read_format_tar_empty_filename.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_tar_empty_filename.obj `if test -f 'libarchive/test/test_read_format_tar_empty_filename.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_tar_empty_filename.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_tar_empty_filename.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_tar_empty_filename.obj `if test -f 'libarchive/test/test_read_format_tar_empty_filename.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_tar_empty_filename.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_tar_empty_filename.c'; fi` -libarchive/test/libarchive_test-test_read_format_tar_empty_with_gnulabel.o: libarchive/test/test_read_format_tar_empty_with_gnulabel.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_tar_empty_with_gnulabel.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_tar_empty_with_gnulabel.Tpo -c -o libarchive/test/libarchive_test-test_read_format_tar_empty_with_gnulabel.o `test -f 'libarchive/test/test_read_format_tar_empty_with_gnulabel.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_tar_empty_with_gnulabel.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_tar_empty_with_gnulabel.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_tar_empty_with_gnulabel.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_tar_empty_with_gnulabel.c' object='libarchive/test/libarchive_test-test_read_format_tar_empty_with_gnulabel.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_tar_empty_with_gnulabel.o: libarchive/test/test_read_format_tar_empty_with_gnulabel.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_tar_empty_with_gnulabel.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_tar_empty_with_gnulabel.Tpo -c -o libarchive/test/test-test_read_format_tar_empty_with_gnulabel.o `test -f 'libarchive/test/test_read_format_tar_empty_with_gnulabel.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_tar_empty_with_gnulabel.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_tar_empty_with_gnulabel.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_tar_empty_with_gnulabel.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_tar_empty_with_gnulabel.c' object='libarchive/test/test-test_read_format_tar_empty_with_gnulabel.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_tar_empty_with_gnulabel.o `test -f 'libarchive/test/test_read_format_tar_empty_with_gnulabel.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_tar_empty_with_gnulabel.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_tar_empty_with_gnulabel.o `test -f 'libarchive/test/test_read_format_tar_empty_with_gnulabel.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_tar_empty_with_gnulabel.c -libarchive/test/libarchive_test-test_read_format_tar_empty_with_gnulabel.obj: libarchive/test/test_read_format_tar_empty_with_gnulabel.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_tar_empty_with_gnulabel.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_tar_empty_with_gnulabel.Tpo -c -o libarchive/test/libarchive_test-test_read_format_tar_empty_with_gnulabel.obj `if test -f 'libarchive/test/test_read_format_tar_empty_with_gnulabel.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_tar_empty_with_gnulabel.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_tar_empty_with_gnulabel.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_tar_empty_with_gnulabel.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_tar_empty_with_gnulabel.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_tar_empty_with_gnulabel.c' object='libarchive/test/libarchive_test-test_read_format_tar_empty_with_gnulabel.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_tar_empty_with_gnulabel.obj: libarchive/test/test_read_format_tar_empty_with_gnulabel.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_tar_empty_with_gnulabel.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_tar_empty_with_gnulabel.Tpo -c -o libarchive/test/test-test_read_format_tar_empty_with_gnulabel.obj `if test -f 'libarchive/test/test_read_format_tar_empty_with_gnulabel.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_tar_empty_with_gnulabel.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_tar_empty_with_gnulabel.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_tar_empty_with_gnulabel.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_tar_empty_with_gnulabel.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_tar_empty_with_gnulabel.c' object='libarchive/test/test-test_read_format_tar_empty_with_gnulabel.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_tar_empty_with_gnulabel.obj `if test -f 'libarchive/test/test_read_format_tar_empty_with_gnulabel.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_tar_empty_with_gnulabel.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_tar_empty_with_gnulabel.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_tar_empty_with_gnulabel.obj `if test -f 'libarchive/test/test_read_format_tar_empty_with_gnulabel.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_tar_empty_with_gnulabel.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_tar_empty_with_gnulabel.c'; fi` -libarchive/test/libarchive_test-test_read_format_tar_filename.o: libarchive/test/test_read_format_tar_filename.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_tar_filename.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_tar_filename.Tpo -c -o libarchive/test/libarchive_test-test_read_format_tar_filename.o `test -f 'libarchive/test/test_read_format_tar_filename.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_tar_filename.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_tar_filename.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_tar_filename.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_tar_filename.c' object='libarchive/test/libarchive_test-test_read_format_tar_filename.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_tar_filename.o: libarchive/test/test_read_format_tar_filename.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_tar_filename.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_tar_filename.Tpo -c -o libarchive/test/test-test_read_format_tar_filename.o `test -f 'libarchive/test/test_read_format_tar_filename.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_tar_filename.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_tar_filename.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_tar_filename.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_tar_filename.c' object='libarchive/test/test-test_read_format_tar_filename.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_tar_filename.o `test -f 'libarchive/test/test_read_format_tar_filename.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_tar_filename.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_tar_filename.o `test -f 'libarchive/test/test_read_format_tar_filename.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_tar_filename.c -libarchive/test/libarchive_test-test_read_format_tar_filename.obj: libarchive/test/test_read_format_tar_filename.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_tar_filename.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_tar_filename.Tpo -c -o libarchive/test/libarchive_test-test_read_format_tar_filename.obj `if test -f 'libarchive/test/test_read_format_tar_filename.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_tar_filename.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_tar_filename.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_tar_filename.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_tar_filename.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_tar_filename.c' object='libarchive/test/libarchive_test-test_read_format_tar_filename.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_tar_filename.obj: libarchive/test/test_read_format_tar_filename.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_tar_filename.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_tar_filename.Tpo -c -o libarchive/test/test-test_read_format_tar_filename.obj `if test -f 'libarchive/test/test_read_format_tar_filename.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_tar_filename.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_tar_filename.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_tar_filename.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_tar_filename.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_tar_filename.c' object='libarchive/test/test-test_read_format_tar_filename.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_tar_filename.obj `if test -f 'libarchive/test/test_read_format_tar_filename.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_tar_filename.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_tar_filename.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_tar_filename.obj `if test -f 'libarchive/test/test_read_format_tar_filename.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_tar_filename.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_tar_filename.c'; fi` -libarchive/test/libarchive_test-test_read_format_tbz.o: libarchive/test/test_read_format_tbz.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_tbz.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_tbz.Tpo -c -o libarchive/test/libarchive_test-test_read_format_tbz.o `test -f 'libarchive/test/test_read_format_tbz.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_tbz.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_tbz.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_tbz.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_tbz.c' object='libarchive/test/libarchive_test-test_read_format_tbz.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_tbz.o: libarchive/test/test_read_format_tbz.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_tbz.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_tbz.Tpo -c -o libarchive/test/test-test_read_format_tbz.o `test -f 'libarchive/test/test_read_format_tbz.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_tbz.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_tbz.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_tbz.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_tbz.c' object='libarchive/test/test-test_read_format_tbz.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_tbz.o `test -f 'libarchive/test/test_read_format_tbz.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_tbz.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_tbz.o `test -f 'libarchive/test/test_read_format_tbz.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_tbz.c -libarchive/test/libarchive_test-test_read_format_tbz.obj: libarchive/test/test_read_format_tbz.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_tbz.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_tbz.Tpo -c -o libarchive/test/libarchive_test-test_read_format_tbz.obj `if test -f 'libarchive/test/test_read_format_tbz.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_tbz.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_tbz.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_tbz.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_tbz.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_tbz.c' object='libarchive/test/libarchive_test-test_read_format_tbz.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_tbz.obj: libarchive/test/test_read_format_tbz.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_tbz.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_tbz.Tpo -c -o libarchive/test/test-test_read_format_tbz.obj `if test -f 'libarchive/test/test_read_format_tbz.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_tbz.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_tbz.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_tbz.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_tbz.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_tbz.c' object='libarchive/test/test-test_read_format_tbz.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_tbz.obj `if test -f 'libarchive/test/test_read_format_tbz.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_tbz.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_tbz.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_tbz.obj `if test -f 'libarchive/test/test_read_format_tbz.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_tbz.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_tbz.c'; fi` -libarchive/test/libarchive_test-test_read_format_tgz.o: libarchive/test/test_read_format_tgz.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_tgz.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_tgz.Tpo -c -o libarchive/test/libarchive_test-test_read_format_tgz.o `test -f 'libarchive/test/test_read_format_tgz.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_tgz.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_tgz.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_tgz.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_tgz.c' object='libarchive/test/libarchive_test-test_read_format_tgz.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_tgz.o: libarchive/test/test_read_format_tgz.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_tgz.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_tgz.Tpo -c -o libarchive/test/test-test_read_format_tgz.o `test -f 'libarchive/test/test_read_format_tgz.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_tgz.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_tgz.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_tgz.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_tgz.c' object='libarchive/test/test-test_read_format_tgz.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_tgz.o `test -f 'libarchive/test/test_read_format_tgz.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_tgz.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_tgz.o `test -f 'libarchive/test/test_read_format_tgz.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_tgz.c -libarchive/test/libarchive_test-test_read_format_tgz.obj: libarchive/test/test_read_format_tgz.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_tgz.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_tgz.Tpo -c -o libarchive/test/libarchive_test-test_read_format_tgz.obj `if test -f 'libarchive/test/test_read_format_tgz.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_tgz.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_tgz.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_tgz.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_tgz.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_tgz.c' object='libarchive/test/libarchive_test-test_read_format_tgz.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_tgz.obj: libarchive/test/test_read_format_tgz.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_tgz.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_tgz.Tpo -c -o libarchive/test/test-test_read_format_tgz.obj `if test -f 'libarchive/test/test_read_format_tgz.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_tgz.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_tgz.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_tgz.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_tgz.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_tgz.c' object='libarchive/test/test-test_read_format_tgz.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_tgz.obj `if test -f 'libarchive/test/test_read_format_tgz.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_tgz.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_tgz.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_tgz.obj `if test -f 'libarchive/test/test_read_format_tgz.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_tgz.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_tgz.c'; fi` -libarchive/test/libarchive_test-test_read_format_tlz.o: libarchive/test/test_read_format_tlz.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_tlz.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_tlz.Tpo -c -o libarchive/test/libarchive_test-test_read_format_tlz.o `test -f 'libarchive/test/test_read_format_tlz.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_tlz.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_tlz.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_tlz.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_tlz.c' object='libarchive/test/libarchive_test-test_read_format_tlz.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_tlz.o: libarchive/test/test_read_format_tlz.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_tlz.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_tlz.Tpo -c -o libarchive/test/test-test_read_format_tlz.o `test -f 'libarchive/test/test_read_format_tlz.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_tlz.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_tlz.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_tlz.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_tlz.c' object='libarchive/test/test-test_read_format_tlz.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_tlz.o `test -f 'libarchive/test/test_read_format_tlz.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_tlz.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_tlz.o `test -f 'libarchive/test/test_read_format_tlz.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_tlz.c -libarchive/test/libarchive_test-test_read_format_tlz.obj: libarchive/test/test_read_format_tlz.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_tlz.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_tlz.Tpo -c -o libarchive/test/libarchive_test-test_read_format_tlz.obj `if test -f 'libarchive/test/test_read_format_tlz.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_tlz.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_tlz.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_tlz.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_tlz.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_tlz.c' object='libarchive/test/libarchive_test-test_read_format_tlz.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_tlz.obj: libarchive/test/test_read_format_tlz.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_tlz.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_tlz.Tpo -c -o libarchive/test/test-test_read_format_tlz.obj `if test -f 'libarchive/test/test_read_format_tlz.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_tlz.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_tlz.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_tlz.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_tlz.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_tlz.c' object='libarchive/test/test-test_read_format_tlz.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_tlz.obj `if test -f 'libarchive/test/test_read_format_tlz.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_tlz.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_tlz.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_tlz.obj `if test -f 'libarchive/test/test_read_format_tlz.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_tlz.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_tlz.c'; fi` -libarchive/test/libarchive_test-test_read_format_txz.o: libarchive/test/test_read_format_txz.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_txz.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_txz.Tpo -c -o libarchive/test/libarchive_test-test_read_format_txz.o `test -f 'libarchive/test/test_read_format_txz.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_txz.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_txz.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_txz.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_txz.c' object='libarchive/test/libarchive_test-test_read_format_txz.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_txz.o: libarchive/test/test_read_format_txz.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_txz.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_txz.Tpo -c -o libarchive/test/test-test_read_format_txz.o `test -f 'libarchive/test/test_read_format_txz.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_txz.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_txz.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_txz.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_txz.c' object='libarchive/test/test-test_read_format_txz.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_txz.o `test -f 'libarchive/test/test_read_format_txz.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_txz.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_txz.o `test -f 'libarchive/test/test_read_format_txz.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_txz.c -libarchive/test/libarchive_test-test_read_format_txz.obj: libarchive/test/test_read_format_txz.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_txz.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_txz.Tpo -c -o libarchive/test/libarchive_test-test_read_format_txz.obj `if test -f 'libarchive/test/test_read_format_txz.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_txz.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_txz.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_txz.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_txz.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_txz.c' object='libarchive/test/libarchive_test-test_read_format_txz.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_txz.obj: libarchive/test/test_read_format_txz.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_txz.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_txz.Tpo -c -o libarchive/test/test-test_read_format_txz.obj `if test -f 'libarchive/test/test_read_format_txz.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_txz.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_txz.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_txz.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_txz.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_txz.c' object='libarchive/test/test-test_read_format_txz.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_txz.obj `if test -f 'libarchive/test/test_read_format_txz.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_txz.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_txz.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_txz.obj `if test -f 'libarchive/test/test_read_format_txz.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_txz.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_txz.c'; fi` -libarchive/test/libarchive_test-test_read_format_tz.o: libarchive/test/test_read_format_tz.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_tz.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_tz.Tpo -c -o libarchive/test/libarchive_test-test_read_format_tz.o `test -f 'libarchive/test/test_read_format_tz.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_tz.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_tz.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_tz.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_tz.c' object='libarchive/test/libarchive_test-test_read_format_tz.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_tz.o: libarchive/test/test_read_format_tz.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_tz.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_tz.Tpo -c -o libarchive/test/test-test_read_format_tz.o `test -f 'libarchive/test/test_read_format_tz.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_tz.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_tz.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_tz.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_tz.c' object='libarchive/test/test-test_read_format_tz.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_tz.o `test -f 'libarchive/test/test_read_format_tz.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_tz.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_tz.o `test -f 'libarchive/test/test_read_format_tz.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_tz.c -libarchive/test/libarchive_test-test_read_format_tz.obj: libarchive/test/test_read_format_tz.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_tz.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_tz.Tpo -c -o libarchive/test/libarchive_test-test_read_format_tz.obj `if test -f 'libarchive/test/test_read_format_tz.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_tz.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_tz.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_tz.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_tz.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_tz.c' object='libarchive/test/libarchive_test-test_read_format_tz.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_tz.obj: libarchive/test/test_read_format_tz.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_tz.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_tz.Tpo -c -o libarchive/test/test-test_read_format_tz.obj `if test -f 'libarchive/test/test_read_format_tz.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_tz.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_tz.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_tz.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_tz.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_tz.c' object='libarchive/test/test-test_read_format_tz.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_tz.obj `if test -f 'libarchive/test/test_read_format_tz.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_tz.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_tz.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_tz.obj `if test -f 'libarchive/test/test_read_format_tz.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_tz.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_tz.c'; fi` -libarchive/test/libarchive_test-test_read_format_ustar_filename.o: libarchive/test/test_read_format_ustar_filename.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_ustar_filename.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_ustar_filename.Tpo -c -o libarchive/test/libarchive_test-test_read_format_ustar_filename.o `test -f 'libarchive/test/test_read_format_ustar_filename.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_ustar_filename.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_ustar_filename.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_ustar_filename.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_ustar_filename.c' object='libarchive/test/libarchive_test-test_read_format_ustar_filename.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_ustar_filename.o: libarchive/test/test_read_format_ustar_filename.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_ustar_filename.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_ustar_filename.Tpo -c -o libarchive/test/test-test_read_format_ustar_filename.o `test -f 'libarchive/test/test_read_format_ustar_filename.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_ustar_filename.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_ustar_filename.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_ustar_filename.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_ustar_filename.c' object='libarchive/test/test-test_read_format_ustar_filename.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_ustar_filename.o `test -f 'libarchive/test/test_read_format_ustar_filename.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_ustar_filename.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_ustar_filename.o `test -f 'libarchive/test/test_read_format_ustar_filename.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_ustar_filename.c -libarchive/test/libarchive_test-test_read_format_ustar_filename.obj: libarchive/test/test_read_format_ustar_filename.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_ustar_filename.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_ustar_filename.Tpo -c -o libarchive/test/libarchive_test-test_read_format_ustar_filename.obj `if test -f 'libarchive/test/test_read_format_ustar_filename.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_ustar_filename.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_ustar_filename.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_ustar_filename.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_ustar_filename.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_ustar_filename.c' object='libarchive/test/libarchive_test-test_read_format_ustar_filename.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_ustar_filename.obj: libarchive/test/test_read_format_ustar_filename.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_ustar_filename.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_ustar_filename.Tpo -c -o libarchive/test/test-test_read_format_ustar_filename.obj `if test -f 'libarchive/test/test_read_format_ustar_filename.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_ustar_filename.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_ustar_filename.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_ustar_filename.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_ustar_filename.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_ustar_filename.c' object='libarchive/test/test-test_read_format_ustar_filename.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_ustar_filename.obj `if test -f 'libarchive/test/test_read_format_ustar_filename.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_ustar_filename.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_ustar_filename.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_ustar_filename.obj `if test -f 'libarchive/test/test_read_format_ustar_filename.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_ustar_filename.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_ustar_filename.c'; fi` -libarchive/test/libarchive_test-test_read_format_warc.o: libarchive/test/test_read_format_warc.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_warc.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_warc.Tpo -c -o libarchive/test/libarchive_test-test_read_format_warc.o `test -f 'libarchive/test/test_read_format_warc.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_warc.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_warc.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_warc.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_warc.c' object='libarchive/test/libarchive_test-test_read_format_warc.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_warc.o: libarchive/test/test_read_format_warc.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_warc.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_warc.Tpo -c -o libarchive/test/test-test_read_format_warc.o `test -f 'libarchive/test/test_read_format_warc.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_warc.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_warc.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_warc.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_warc.c' object='libarchive/test/test-test_read_format_warc.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_warc.o `test -f 'libarchive/test/test_read_format_warc.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_warc.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_warc.o `test -f 'libarchive/test/test_read_format_warc.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_warc.c -libarchive/test/libarchive_test-test_read_format_warc.obj: libarchive/test/test_read_format_warc.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_warc.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_warc.Tpo -c -o libarchive/test/libarchive_test-test_read_format_warc.obj `if test -f 'libarchive/test/test_read_format_warc.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_warc.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_warc.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_warc.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_warc.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_warc.c' object='libarchive/test/libarchive_test-test_read_format_warc.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_warc.obj: libarchive/test/test_read_format_warc.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_warc.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_warc.Tpo -c -o libarchive/test/test-test_read_format_warc.obj `if test -f 'libarchive/test/test_read_format_warc.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_warc.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_warc.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_warc.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_warc.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_warc.c' object='libarchive/test/test-test_read_format_warc.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_warc.obj `if test -f 'libarchive/test/test_read_format_warc.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_warc.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_warc.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_warc.obj `if test -f 'libarchive/test/test_read_format_warc.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_warc.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_warc.c'; fi` -libarchive/test/libarchive_test-test_read_format_xar.o: libarchive/test/test_read_format_xar.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_xar.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_xar.Tpo -c -o libarchive/test/libarchive_test-test_read_format_xar.o `test -f 'libarchive/test/test_read_format_xar.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_xar.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_xar.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_xar.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_xar.c' object='libarchive/test/libarchive_test-test_read_format_xar.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_xar.o: libarchive/test/test_read_format_xar.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_xar.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_xar.Tpo -c -o libarchive/test/test-test_read_format_xar.o `test -f 'libarchive/test/test_read_format_xar.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_xar.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_xar.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_xar.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_xar.c' object='libarchive/test/test-test_read_format_xar.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_xar.o `test -f 'libarchive/test/test_read_format_xar.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_xar.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_xar.o `test -f 'libarchive/test/test_read_format_xar.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_xar.c -libarchive/test/libarchive_test-test_read_format_xar.obj: libarchive/test/test_read_format_xar.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_xar.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_xar.Tpo -c -o libarchive/test/libarchive_test-test_read_format_xar.obj `if test -f 'libarchive/test/test_read_format_xar.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_xar.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_xar.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_xar.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_xar.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_xar.c' object='libarchive/test/libarchive_test-test_read_format_xar.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_xar.obj: libarchive/test/test_read_format_xar.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_xar.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_xar.Tpo -c -o libarchive/test/test-test_read_format_xar.obj `if test -f 'libarchive/test/test_read_format_xar.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_xar.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_xar.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_xar.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_xar.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_xar.c' object='libarchive/test/test-test_read_format_xar.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_xar.obj `if test -f 'libarchive/test/test_read_format_xar.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_xar.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_xar.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_xar.obj `if test -f 'libarchive/test/test_read_format_xar.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_xar.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_xar.c'; fi` -libarchive/test/libarchive_test-test_read_format_zip.o: libarchive/test/test_read_format_zip.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_zip.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip.Tpo -c -o libarchive/test/libarchive_test-test_read_format_zip.o `test -f 'libarchive/test/test_read_format_zip.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_zip.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_zip.c' object='libarchive/test/libarchive_test-test_read_format_zip.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_zip.o: libarchive/test/test_read_format_zip.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_zip.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_zip.Tpo -c -o libarchive/test/test-test_read_format_zip.o `test -f 'libarchive/test/test_read_format_zip.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_zip.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_zip.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_zip.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_zip.c' object='libarchive/test/test-test_read_format_zip.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_zip.o `test -f 'libarchive/test/test_read_format_zip.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_zip.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_zip.o `test -f 'libarchive/test/test_read_format_zip.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_zip.c -libarchive/test/libarchive_test-test_read_format_zip.obj: libarchive/test/test_read_format_zip.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_zip.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip.Tpo -c -o libarchive/test/libarchive_test-test_read_format_zip.obj `if test -f 'libarchive/test/test_read_format_zip.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_zip.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_zip.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_zip.c' object='libarchive/test/libarchive_test-test_read_format_zip.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_zip.obj: libarchive/test/test_read_format_zip.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_zip.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_zip.Tpo -c -o libarchive/test/test-test_read_format_zip.obj `if test -f 'libarchive/test/test_read_format_zip.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_zip.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_zip.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_zip.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_zip.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_zip.c' object='libarchive/test/test-test_read_format_zip.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_zip.obj `if test -f 'libarchive/test/test_read_format_zip.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_zip.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_zip.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_zip.obj `if test -f 'libarchive/test/test_read_format_zip.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_zip.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_zip.c'; fi` -libarchive/test/libarchive_test-test_read_format_zip_7075_utf8_paths.o: libarchive/test/test_read_format_zip_7075_utf8_paths.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_zip_7075_utf8_paths.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_7075_utf8_paths.Tpo -c -o libarchive/test/libarchive_test-test_read_format_zip_7075_utf8_paths.o `test -f 'libarchive/test/test_read_format_zip_7075_utf8_paths.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_zip_7075_utf8_paths.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_7075_utf8_paths.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_7075_utf8_paths.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_zip_7075_utf8_paths.c' object='libarchive/test/libarchive_test-test_read_format_zip_7075_utf8_paths.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_zip_7075_utf8_paths.o: libarchive/test/test_read_format_zip_7075_utf8_paths.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_zip_7075_utf8_paths.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_zip_7075_utf8_paths.Tpo -c -o libarchive/test/test-test_read_format_zip_7075_utf8_paths.o `test -f 'libarchive/test/test_read_format_zip_7075_utf8_paths.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_zip_7075_utf8_paths.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_zip_7075_utf8_paths.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_zip_7075_utf8_paths.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_zip_7075_utf8_paths.c' object='libarchive/test/test-test_read_format_zip_7075_utf8_paths.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_zip_7075_utf8_paths.o `test -f 'libarchive/test/test_read_format_zip_7075_utf8_paths.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_zip_7075_utf8_paths.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_zip_7075_utf8_paths.o `test -f 'libarchive/test/test_read_format_zip_7075_utf8_paths.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_zip_7075_utf8_paths.c -libarchive/test/libarchive_test-test_read_format_zip_7075_utf8_paths.obj: libarchive/test/test_read_format_zip_7075_utf8_paths.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_zip_7075_utf8_paths.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_7075_utf8_paths.Tpo -c -o libarchive/test/libarchive_test-test_read_format_zip_7075_utf8_paths.obj `if test -f 'libarchive/test/test_read_format_zip_7075_utf8_paths.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_zip_7075_utf8_paths.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_zip_7075_utf8_paths.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_7075_utf8_paths.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_7075_utf8_paths.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_zip_7075_utf8_paths.c' object='libarchive/test/libarchive_test-test_read_format_zip_7075_utf8_paths.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_zip_7075_utf8_paths.obj: libarchive/test/test_read_format_zip_7075_utf8_paths.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_zip_7075_utf8_paths.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_zip_7075_utf8_paths.Tpo -c -o libarchive/test/test-test_read_format_zip_7075_utf8_paths.obj `if test -f 'libarchive/test/test_read_format_zip_7075_utf8_paths.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_zip_7075_utf8_paths.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_zip_7075_utf8_paths.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_zip_7075_utf8_paths.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_zip_7075_utf8_paths.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_zip_7075_utf8_paths.c' object='libarchive/test/test-test_read_format_zip_7075_utf8_paths.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_zip_7075_utf8_paths.obj `if test -f 'libarchive/test/test_read_format_zip_7075_utf8_paths.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_zip_7075_utf8_paths.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_zip_7075_utf8_paths.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_zip_7075_utf8_paths.obj `if test -f 'libarchive/test/test_read_format_zip_7075_utf8_paths.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_zip_7075_utf8_paths.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_zip_7075_utf8_paths.c'; fi` -libarchive/test/libarchive_test-test_read_format_zip_comment_stored.o: libarchive/test/test_read_format_zip_comment_stored.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_zip_comment_stored.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_comment_stored.Tpo -c -o libarchive/test/libarchive_test-test_read_format_zip_comment_stored.o `test -f 'libarchive/test/test_read_format_zip_comment_stored.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_zip_comment_stored.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_comment_stored.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_comment_stored.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_zip_comment_stored.c' object='libarchive/test/libarchive_test-test_read_format_zip_comment_stored.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_zip_comment_stored.o: libarchive/test/test_read_format_zip_comment_stored.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_zip_comment_stored.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_zip_comment_stored.Tpo -c -o libarchive/test/test-test_read_format_zip_comment_stored.o `test -f 'libarchive/test/test_read_format_zip_comment_stored.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_zip_comment_stored.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_zip_comment_stored.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_zip_comment_stored.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_zip_comment_stored.c' object='libarchive/test/test-test_read_format_zip_comment_stored.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_zip_comment_stored.o `test -f 'libarchive/test/test_read_format_zip_comment_stored.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_zip_comment_stored.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_zip_comment_stored.o `test -f 'libarchive/test/test_read_format_zip_comment_stored.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_zip_comment_stored.c -libarchive/test/libarchive_test-test_read_format_zip_comment_stored.obj: libarchive/test/test_read_format_zip_comment_stored.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_zip_comment_stored.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_comment_stored.Tpo -c -o libarchive/test/libarchive_test-test_read_format_zip_comment_stored.obj `if test -f 'libarchive/test/test_read_format_zip_comment_stored.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_zip_comment_stored.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_zip_comment_stored.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_comment_stored.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_comment_stored.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_zip_comment_stored.c' object='libarchive/test/libarchive_test-test_read_format_zip_comment_stored.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_zip_comment_stored.obj: libarchive/test/test_read_format_zip_comment_stored.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_zip_comment_stored.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_zip_comment_stored.Tpo -c -o libarchive/test/test-test_read_format_zip_comment_stored.obj `if test -f 'libarchive/test/test_read_format_zip_comment_stored.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_zip_comment_stored.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_zip_comment_stored.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_zip_comment_stored.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_zip_comment_stored.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_zip_comment_stored.c' object='libarchive/test/test-test_read_format_zip_comment_stored.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_zip_comment_stored.obj `if test -f 'libarchive/test/test_read_format_zip_comment_stored.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_zip_comment_stored.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_zip_comment_stored.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_zip_comment_stored.obj `if test -f 'libarchive/test/test_read_format_zip_comment_stored.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_zip_comment_stored.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_zip_comment_stored.c'; fi` -libarchive/test/libarchive_test-test_read_format_zip_encryption_data.o: libarchive/test/test_read_format_zip_encryption_data.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_zip_encryption_data.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_encryption_data.Tpo -c -o libarchive/test/libarchive_test-test_read_format_zip_encryption_data.o `test -f 'libarchive/test/test_read_format_zip_encryption_data.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_zip_encryption_data.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_encryption_data.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_encryption_data.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_zip_encryption_data.c' object='libarchive/test/libarchive_test-test_read_format_zip_encryption_data.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_zip_encryption_data.o: libarchive/test/test_read_format_zip_encryption_data.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_zip_encryption_data.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_zip_encryption_data.Tpo -c -o libarchive/test/test-test_read_format_zip_encryption_data.o `test -f 'libarchive/test/test_read_format_zip_encryption_data.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_zip_encryption_data.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_zip_encryption_data.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_zip_encryption_data.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_zip_encryption_data.c' object='libarchive/test/test-test_read_format_zip_encryption_data.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_zip_encryption_data.o `test -f 'libarchive/test/test_read_format_zip_encryption_data.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_zip_encryption_data.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_zip_encryption_data.o `test -f 'libarchive/test/test_read_format_zip_encryption_data.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_zip_encryption_data.c -libarchive/test/libarchive_test-test_read_format_zip_encryption_data.obj: libarchive/test/test_read_format_zip_encryption_data.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_zip_encryption_data.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_encryption_data.Tpo -c -o libarchive/test/libarchive_test-test_read_format_zip_encryption_data.obj `if test -f 'libarchive/test/test_read_format_zip_encryption_data.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_zip_encryption_data.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_zip_encryption_data.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_encryption_data.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_encryption_data.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_zip_encryption_data.c' object='libarchive/test/libarchive_test-test_read_format_zip_encryption_data.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_zip_encryption_data.obj: libarchive/test/test_read_format_zip_encryption_data.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_zip_encryption_data.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_zip_encryption_data.Tpo -c -o libarchive/test/test-test_read_format_zip_encryption_data.obj `if test -f 'libarchive/test/test_read_format_zip_encryption_data.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_zip_encryption_data.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_zip_encryption_data.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_zip_encryption_data.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_zip_encryption_data.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_zip_encryption_data.c' object='libarchive/test/test-test_read_format_zip_encryption_data.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_zip_encryption_data.obj `if test -f 'libarchive/test/test_read_format_zip_encryption_data.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_zip_encryption_data.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_zip_encryption_data.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_zip_encryption_data.obj `if test -f 'libarchive/test/test_read_format_zip_encryption_data.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_zip_encryption_data.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_zip_encryption_data.c'; fi` -libarchive/test/libarchive_test-test_read_format_zip_encryption_partially.o: libarchive/test/test_read_format_zip_encryption_partially.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_zip_encryption_partially.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_encryption_partially.Tpo -c -o libarchive/test/libarchive_test-test_read_format_zip_encryption_partially.o `test -f 'libarchive/test/test_read_format_zip_encryption_partially.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_zip_encryption_partially.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_encryption_partially.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_encryption_partially.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_zip_encryption_partially.c' object='libarchive/test/libarchive_test-test_read_format_zip_encryption_partially.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_zip_encryption_partially.o: libarchive/test/test_read_format_zip_encryption_partially.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_zip_encryption_partially.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_zip_encryption_partially.Tpo -c -o libarchive/test/test-test_read_format_zip_encryption_partially.o `test -f 'libarchive/test/test_read_format_zip_encryption_partially.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_zip_encryption_partially.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_zip_encryption_partially.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_zip_encryption_partially.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_zip_encryption_partially.c' object='libarchive/test/test-test_read_format_zip_encryption_partially.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_zip_encryption_partially.o `test -f 'libarchive/test/test_read_format_zip_encryption_partially.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_zip_encryption_partially.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_zip_encryption_partially.o `test -f 'libarchive/test/test_read_format_zip_encryption_partially.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_zip_encryption_partially.c -libarchive/test/libarchive_test-test_read_format_zip_encryption_partially.obj: libarchive/test/test_read_format_zip_encryption_partially.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_zip_encryption_partially.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_encryption_partially.Tpo -c -o libarchive/test/libarchive_test-test_read_format_zip_encryption_partially.obj `if test -f 'libarchive/test/test_read_format_zip_encryption_partially.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_zip_encryption_partially.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_zip_encryption_partially.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_encryption_partially.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_encryption_partially.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_zip_encryption_partially.c' object='libarchive/test/libarchive_test-test_read_format_zip_encryption_partially.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_zip_encryption_partially.obj: libarchive/test/test_read_format_zip_encryption_partially.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_zip_encryption_partially.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_zip_encryption_partially.Tpo -c -o libarchive/test/test-test_read_format_zip_encryption_partially.obj `if test -f 'libarchive/test/test_read_format_zip_encryption_partially.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_zip_encryption_partially.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_zip_encryption_partially.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_zip_encryption_partially.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_zip_encryption_partially.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_zip_encryption_partially.c' object='libarchive/test/test-test_read_format_zip_encryption_partially.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_zip_encryption_partially.obj `if test -f 'libarchive/test/test_read_format_zip_encryption_partially.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_zip_encryption_partially.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_zip_encryption_partially.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_zip_encryption_partially.obj `if test -f 'libarchive/test/test_read_format_zip_encryption_partially.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_zip_encryption_partially.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_zip_encryption_partially.c'; fi` -libarchive/test/libarchive_test-test_read_format_zip_encryption_header.o: libarchive/test/test_read_format_zip_encryption_header.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_zip_encryption_header.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_encryption_header.Tpo -c -o libarchive/test/libarchive_test-test_read_format_zip_encryption_header.o `test -f 'libarchive/test/test_read_format_zip_encryption_header.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_zip_encryption_header.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_encryption_header.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_encryption_header.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_zip_encryption_header.c' object='libarchive/test/libarchive_test-test_read_format_zip_encryption_header.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_zip_encryption_header.o: libarchive/test/test_read_format_zip_encryption_header.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_zip_encryption_header.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_zip_encryption_header.Tpo -c -o libarchive/test/test-test_read_format_zip_encryption_header.o `test -f 'libarchive/test/test_read_format_zip_encryption_header.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_zip_encryption_header.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_zip_encryption_header.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_zip_encryption_header.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_zip_encryption_header.c' object='libarchive/test/test-test_read_format_zip_encryption_header.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_zip_encryption_header.o `test -f 'libarchive/test/test_read_format_zip_encryption_header.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_zip_encryption_header.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_zip_encryption_header.o `test -f 'libarchive/test/test_read_format_zip_encryption_header.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_zip_encryption_header.c -libarchive/test/libarchive_test-test_read_format_zip_encryption_header.obj: libarchive/test/test_read_format_zip_encryption_header.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_zip_encryption_header.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_encryption_header.Tpo -c -o libarchive/test/libarchive_test-test_read_format_zip_encryption_header.obj `if test -f 'libarchive/test/test_read_format_zip_encryption_header.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_zip_encryption_header.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_zip_encryption_header.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_encryption_header.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_encryption_header.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_zip_encryption_header.c' object='libarchive/test/libarchive_test-test_read_format_zip_encryption_header.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_zip_encryption_header.obj: libarchive/test/test_read_format_zip_encryption_header.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_zip_encryption_header.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_zip_encryption_header.Tpo -c -o libarchive/test/test-test_read_format_zip_encryption_header.obj `if test -f 'libarchive/test/test_read_format_zip_encryption_header.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_zip_encryption_header.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_zip_encryption_header.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_zip_encryption_header.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_zip_encryption_header.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_zip_encryption_header.c' object='libarchive/test/test-test_read_format_zip_encryption_header.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_zip_encryption_header.obj `if test -f 'libarchive/test/test_read_format_zip_encryption_header.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_zip_encryption_header.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_zip_encryption_header.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_zip_encryption_header.obj `if test -f 'libarchive/test/test_read_format_zip_encryption_header.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_zip_encryption_header.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_zip_encryption_header.c'; fi` -libarchive/test/libarchive_test-test_read_format_zip_extra_padding.o: libarchive/test/test_read_format_zip_extra_padding.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_zip_extra_padding.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_extra_padding.Tpo -c -o libarchive/test/libarchive_test-test_read_format_zip_extra_padding.o `test -f 'libarchive/test/test_read_format_zip_extra_padding.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_zip_extra_padding.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_extra_padding.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_extra_padding.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_zip_extra_padding.c' object='libarchive/test/libarchive_test-test_read_format_zip_extra_padding.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_zip_extra_padding.o: libarchive/test/test_read_format_zip_extra_padding.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_zip_extra_padding.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_zip_extra_padding.Tpo -c -o libarchive/test/test-test_read_format_zip_extra_padding.o `test -f 'libarchive/test/test_read_format_zip_extra_padding.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_zip_extra_padding.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_zip_extra_padding.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_zip_extra_padding.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_zip_extra_padding.c' object='libarchive/test/test-test_read_format_zip_extra_padding.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_zip_extra_padding.o `test -f 'libarchive/test/test_read_format_zip_extra_padding.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_zip_extra_padding.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_zip_extra_padding.o `test -f 'libarchive/test/test_read_format_zip_extra_padding.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_zip_extra_padding.c -libarchive/test/libarchive_test-test_read_format_zip_extra_padding.obj: libarchive/test/test_read_format_zip_extra_padding.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_zip_extra_padding.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_extra_padding.Tpo -c -o libarchive/test/libarchive_test-test_read_format_zip_extra_padding.obj `if test -f 'libarchive/test/test_read_format_zip_extra_padding.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_zip_extra_padding.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_zip_extra_padding.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_extra_padding.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_extra_padding.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_zip_extra_padding.c' object='libarchive/test/libarchive_test-test_read_format_zip_extra_padding.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_zip_extra_padding.obj: libarchive/test/test_read_format_zip_extra_padding.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_zip_extra_padding.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_zip_extra_padding.Tpo -c -o libarchive/test/test-test_read_format_zip_extra_padding.obj `if test -f 'libarchive/test/test_read_format_zip_extra_padding.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_zip_extra_padding.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_zip_extra_padding.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_zip_extra_padding.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_zip_extra_padding.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_zip_extra_padding.c' object='libarchive/test/test-test_read_format_zip_extra_padding.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_zip_extra_padding.obj `if test -f 'libarchive/test/test_read_format_zip_extra_padding.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_zip_extra_padding.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_zip_extra_padding.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_zip_extra_padding.obj `if test -f 'libarchive/test/test_read_format_zip_extra_padding.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_zip_extra_padding.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_zip_extra_padding.c'; fi` -libarchive/test/libarchive_test-test_read_format_zip_filename.o: libarchive/test/test_read_format_zip_filename.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_zip_filename.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_filename.Tpo -c -o libarchive/test/libarchive_test-test_read_format_zip_filename.o `test -f 'libarchive/test/test_read_format_zip_filename.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_zip_filename.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_filename.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_filename.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_zip_filename.c' object='libarchive/test/libarchive_test-test_read_format_zip_filename.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_zip_filename.o: libarchive/test/test_read_format_zip_filename.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_zip_filename.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_zip_filename.Tpo -c -o libarchive/test/test-test_read_format_zip_filename.o `test -f 'libarchive/test/test_read_format_zip_filename.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_zip_filename.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_zip_filename.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_zip_filename.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_zip_filename.c' object='libarchive/test/test-test_read_format_zip_filename.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_zip_filename.o `test -f 'libarchive/test/test_read_format_zip_filename.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_zip_filename.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_zip_filename.o `test -f 'libarchive/test/test_read_format_zip_filename.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_zip_filename.c -libarchive/test/libarchive_test-test_read_format_zip_filename.obj: libarchive/test/test_read_format_zip_filename.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_zip_filename.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_filename.Tpo -c -o libarchive/test/libarchive_test-test_read_format_zip_filename.obj `if test -f 'libarchive/test/test_read_format_zip_filename.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_zip_filename.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_zip_filename.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_filename.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_filename.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_zip_filename.c' object='libarchive/test/libarchive_test-test_read_format_zip_filename.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_zip_filename.obj: libarchive/test/test_read_format_zip_filename.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_zip_filename.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_zip_filename.Tpo -c -o libarchive/test/test-test_read_format_zip_filename.obj `if test -f 'libarchive/test/test_read_format_zip_filename.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_zip_filename.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_zip_filename.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_zip_filename.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_zip_filename.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_zip_filename.c' object='libarchive/test/test-test_read_format_zip_filename.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_zip_filename.obj `if test -f 'libarchive/test/test_read_format_zip_filename.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_zip_filename.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_zip_filename.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_zip_filename.obj `if test -f 'libarchive/test/test_read_format_zip_filename.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_zip_filename.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_zip_filename.c'; fi` -libarchive/test/libarchive_test-test_read_format_zip_high_compression.o: libarchive/test/test_read_format_zip_high_compression.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_zip_high_compression.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_high_compression.Tpo -c -o libarchive/test/libarchive_test-test_read_format_zip_high_compression.o `test -f 'libarchive/test/test_read_format_zip_high_compression.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_zip_high_compression.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_high_compression.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_high_compression.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_zip_high_compression.c' object='libarchive/test/libarchive_test-test_read_format_zip_high_compression.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_zip_high_compression.o: libarchive/test/test_read_format_zip_high_compression.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_zip_high_compression.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_zip_high_compression.Tpo -c -o libarchive/test/test-test_read_format_zip_high_compression.o `test -f 'libarchive/test/test_read_format_zip_high_compression.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_zip_high_compression.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_zip_high_compression.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_zip_high_compression.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_zip_high_compression.c' object='libarchive/test/test-test_read_format_zip_high_compression.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_zip_high_compression.o `test -f 'libarchive/test/test_read_format_zip_high_compression.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_zip_high_compression.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_zip_high_compression.o `test -f 'libarchive/test/test_read_format_zip_high_compression.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_zip_high_compression.c -libarchive/test/libarchive_test-test_read_format_zip_high_compression.obj: libarchive/test/test_read_format_zip_high_compression.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_zip_high_compression.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_high_compression.Tpo -c -o libarchive/test/libarchive_test-test_read_format_zip_high_compression.obj `if test -f 'libarchive/test/test_read_format_zip_high_compression.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_zip_high_compression.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_zip_high_compression.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_high_compression.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_high_compression.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_zip_high_compression.c' object='libarchive/test/libarchive_test-test_read_format_zip_high_compression.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_zip_high_compression.obj: libarchive/test/test_read_format_zip_high_compression.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_zip_high_compression.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_zip_high_compression.Tpo -c -o libarchive/test/test-test_read_format_zip_high_compression.obj `if test -f 'libarchive/test/test_read_format_zip_high_compression.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_zip_high_compression.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_zip_high_compression.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_zip_high_compression.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_zip_high_compression.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_zip_high_compression.c' object='libarchive/test/test-test_read_format_zip_high_compression.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_zip_high_compression.obj `if test -f 'libarchive/test/test_read_format_zip_high_compression.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_zip_high_compression.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_zip_high_compression.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_zip_high_compression.obj `if test -f 'libarchive/test/test_read_format_zip_high_compression.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_zip_high_compression.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_zip_high_compression.c'; fi` -libarchive/test/libarchive_test-test_read_format_zip_jar.o: libarchive/test/test_read_format_zip_jar.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_zip_jar.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_jar.Tpo -c -o libarchive/test/libarchive_test-test_read_format_zip_jar.o `test -f 'libarchive/test/test_read_format_zip_jar.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_zip_jar.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_jar.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_jar.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_zip_jar.c' object='libarchive/test/libarchive_test-test_read_format_zip_jar.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_zip_jar.o: libarchive/test/test_read_format_zip_jar.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_zip_jar.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_zip_jar.Tpo -c -o libarchive/test/test-test_read_format_zip_jar.o `test -f 'libarchive/test/test_read_format_zip_jar.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_zip_jar.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_zip_jar.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_zip_jar.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_zip_jar.c' object='libarchive/test/test-test_read_format_zip_jar.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_zip_jar.o `test -f 'libarchive/test/test_read_format_zip_jar.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_zip_jar.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_zip_jar.o `test -f 'libarchive/test/test_read_format_zip_jar.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_zip_jar.c -libarchive/test/libarchive_test-test_read_format_zip_jar.obj: libarchive/test/test_read_format_zip_jar.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_zip_jar.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_jar.Tpo -c -o libarchive/test/libarchive_test-test_read_format_zip_jar.obj `if test -f 'libarchive/test/test_read_format_zip_jar.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_zip_jar.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_zip_jar.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_jar.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_jar.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_zip_jar.c' object='libarchive/test/libarchive_test-test_read_format_zip_jar.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_zip_jar.obj: libarchive/test/test_read_format_zip_jar.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_zip_jar.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_zip_jar.Tpo -c -o libarchive/test/test-test_read_format_zip_jar.obj `if test -f 'libarchive/test/test_read_format_zip_jar.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_zip_jar.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_zip_jar.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_zip_jar.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_zip_jar.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_zip_jar.c' object='libarchive/test/test-test_read_format_zip_jar.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_zip_jar.obj `if test -f 'libarchive/test/test_read_format_zip_jar.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_zip_jar.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_zip_jar.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_zip_jar.obj `if test -f 'libarchive/test/test_read_format_zip_jar.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_zip_jar.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_zip_jar.c'; fi` -libarchive/test/libarchive_test-test_read_format_zip_mac_metadata.o: libarchive/test/test_read_format_zip_mac_metadata.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_zip_mac_metadata.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_mac_metadata.Tpo -c -o libarchive/test/libarchive_test-test_read_format_zip_mac_metadata.o `test -f 'libarchive/test/test_read_format_zip_mac_metadata.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_zip_mac_metadata.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_mac_metadata.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_mac_metadata.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_zip_mac_metadata.c' object='libarchive/test/libarchive_test-test_read_format_zip_mac_metadata.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_zip_mac_metadata.o: libarchive/test/test_read_format_zip_mac_metadata.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_zip_mac_metadata.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_zip_mac_metadata.Tpo -c -o libarchive/test/test-test_read_format_zip_mac_metadata.o `test -f 'libarchive/test/test_read_format_zip_mac_metadata.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_zip_mac_metadata.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_zip_mac_metadata.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_zip_mac_metadata.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_zip_mac_metadata.c' object='libarchive/test/test-test_read_format_zip_mac_metadata.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_zip_mac_metadata.o `test -f 'libarchive/test/test_read_format_zip_mac_metadata.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_zip_mac_metadata.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_zip_mac_metadata.o `test -f 'libarchive/test/test_read_format_zip_mac_metadata.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_zip_mac_metadata.c -libarchive/test/libarchive_test-test_read_format_zip_mac_metadata.obj: libarchive/test/test_read_format_zip_mac_metadata.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_zip_mac_metadata.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_mac_metadata.Tpo -c -o libarchive/test/libarchive_test-test_read_format_zip_mac_metadata.obj `if test -f 'libarchive/test/test_read_format_zip_mac_metadata.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_zip_mac_metadata.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_zip_mac_metadata.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_mac_metadata.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_mac_metadata.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_zip_mac_metadata.c' object='libarchive/test/libarchive_test-test_read_format_zip_mac_metadata.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_zip_mac_metadata.obj: libarchive/test/test_read_format_zip_mac_metadata.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_zip_mac_metadata.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_zip_mac_metadata.Tpo -c -o libarchive/test/test-test_read_format_zip_mac_metadata.obj `if test -f 'libarchive/test/test_read_format_zip_mac_metadata.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_zip_mac_metadata.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_zip_mac_metadata.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_zip_mac_metadata.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_zip_mac_metadata.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_zip_mac_metadata.c' object='libarchive/test/test-test_read_format_zip_mac_metadata.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_zip_mac_metadata.obj `if test -f 'libarchive/test/test_read_format_zip_mac_metadata.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_zip_mac_metadata.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_zip_mac_metadata.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_zip_mac_metadata.obj `if test -f 'libarchive/test/test_read_format_zip_mac_metadata.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_zip_mac_metadata.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_zip_mac_metadata.c'; fi` -libarchive/test/libarchive_test-test_read_format_zip_malformed.o: libarchive/test/test_read_format_zip_malformed.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_zip_malformed.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_malformed.Tpo -c -o libarchive/test/libarchive_test-test_read_format_zip_malformed.o `test -f 'libarchive/test/test_read_format_zip_malformed.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_zip_malformed.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_malformed.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_malformed.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_zip_malformed.c' object='libarchive/test/libarchive_test-test_read_format_zip_malformed.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_zip_malformed.o: libarchive/test/test_read_format_zip_malformed.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_zip_malformed.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_zip_malformed.Tpo -c -o libarchive/test/test-test_read_format_zip_malformed.o `test -f 'libarchive/test/test_read_format_zip_malformed.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_zip_malformed.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_zip_malformed.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_zip_malformed.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_zip_malformed.c' object='libarchive/test/test-test_read_format_zip_malformed.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_zip_malformed.o `test -f 'libarchive/test/test_read_format_zip_malformed.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_zip_malformed.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_zip_malformed.o `test -f 'libarchive/test/test_read_format_zip_malformed.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_zip_malformed.c -libarchive/test/libarchive_test-test_read_format_zip_malformed.obj: libarchive/test/test_read_format_zip_malformed.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_zip_malformed.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_malformed.Tpo -c -o libarchive/test/libarchive_test-test_read_format_zip_malformed.obj `if test -f 'libarchive/test/test_read_format_zip_malformed.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_zip_malformed.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_zip_malformed.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_malformed.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_malformed.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_zip_malformed.c' object='libarchive/test/libarchive_test-test_read_format_zip_malformed.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_zip_malformed.obj: libarchive/test/test_read_format_zip_malformed.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_zip_malformed.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_zip_malformed.Tpo -c -o libarchive/test/test-test_read_format_zip_malformed.obj `if test -f 'libarchive/test/test_read_format_zip_malformed.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_zip_malformed.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_zip_malformed.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_zip_malformed.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_zip_malformed.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_zip_malformed.c' object='libarchive/test/test-test_read_format_zip_malformed.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_zip_malformed.obj `if test -f 'libarchive/test/test_read_format_zip_malformed.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_zip_malformed.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_zip_malformed.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_zip_malformed.obj `if test -f 'libarchive/test/test_read_format_zip_malformed.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_zip_malformed.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_zip_malformed.c'; fi` -libarchive/test/libarchive_test-test_read_format_zip_msdos.o: libarchive/test/test_read_format_zip_msdos.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_zip_msdos.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_msdos.Tpo -c -o libarchive/test/libarchive_test-test_read_format_zip_msdos.o `test -f 'libarchive/test/test_read_format_zip_msdos.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_zip_msdos.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_msdos.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_msdos.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_zip_msdos.c' object='libarchive/test/libarchive_test-test_read_format_zip_msdos.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_zip_msdos.o: libarchive/test/test_read_format_zip_msdos.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_zip_msdos.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_zip_msdos.Tpo -c -o libarchive/test/test-test_read_format_zip_msdos.o `test -f 'libarchive/test/test_read_format_zip_msdos.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_zip_msdos.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_zip_msdos.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_zip_msdos.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_zip_msdos.c' object='libarchive/test/test-test_read_format_zip_msdos.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_zip_msdos.o `test -f 'libarchive/test/test_read_format_zip_msdos.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_zip_msdos.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_zip_msdos.o `test -f 'libarchive/test/test_read_format_zip_msdos.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_zip_msdos.c -libarchive/test/libarchive_test-test_read_format_zip_msdos.obj: libarchive/test/test_read_format_zip_msdos.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_zip_msdos.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_msdos.Tpo -c -o libarchive/test/libarchive_test-test_read_format_zip_msdos.obj `if test -f 'libarchive/test/test_read_format_zip_msdos.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_zip_msdos.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_zip_msdos.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_msdos.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_msdos.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_zip_msdos.c' object='libarchive/test/libarchive_test-test_read_format_zip_msdos.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_zip_msdos.obj: libarchive/test/test_read_format_zip_msdos.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_zip_msdos.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_zip_msdos.Tpo -c -o libarchive/test/test-test_read_format_zip_msdos.obj `if test -f 'libarchive/test/test_read_format_zip_msdos.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_zip_msdos.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_zip_msdos.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_zip_msdos.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_zip_msdos.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_zip_msdos.c' object='libarchive/test/test-test_read_format_zip_msdos.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_zip_msdos.obj `if test -f 'libarchive/test/test_read_format_zip_msdos.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_zip_msdos.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_zip_msdos.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_zip_msdos.obj `if test -f 'libarchive/test/test_read_format_zip_msdos.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_zip_msdos.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_zip_msdos.c'; fi` -libarchive/test/libarchive_test-test_read_format_zip_nested.o: libarchive/test/test_read_format_zip_nested.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_zip_nested.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_nested.Tpo -c -o libarchive/test/libarchive_test-test_read_format_zip_nested.o `test -f 'libarchive/test/test_read_format_zip_nested.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_zip_nested.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_nested.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_nested.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_zip_nested.c' object='libarchive/test/libarchive_test-test_read_format_zip_nested.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_zip_nested.o: libarchive/test/test_read_format_zip_nested.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_zip_nested.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_zip_nested.Tpo -c -o libarchive/test/test-test_read_format_zip_nested.o `test -f 'libarchive/test/test_read_format_zip_nested.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_zip_nested.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_zip_nested.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_zip_nested.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_zip_nested.c' object='libarchive/test/test-test_read_format_zip_nested.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_zip_nested.o `test -f 'libarchive/test/test_read_format_zip_nested.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_zip_nested.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_zip_nested.o `test -f 'libarchive/test/test_read_format_zip_nested.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_zip_nested.c -libarchive/test/libarchive_test-test_read_format_zip_nested.obj: libarchive/test/test_read_format_zip_nested.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_zip_nested.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_nested.Tpo -c -o libarchive/test/libarchive_test-test_read_format_zip_nested.obj `if test -f 'libarchive/test/test_read_format_zip_nested.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_zip_nested.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_zip_nested.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_nested.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_nested.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_zip_nested.c' object='libarchive/test/libarchive_test-test_read_format_zip_nested.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_zip_nested.obj: libarchive/test/test_read_format_zip_nested.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_zip_nested.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_zip_nested.Tpo -c -o libarchive/test/test-test_read_format_zip_nested.obj `if test -f 'libarchive/test/test_read_format_zip_nested.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_zip_nested.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_zip_nested.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_zip_nested.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_zip_nested.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_zip_nested.c' object='libarchive/test/test-test_read_format_zip_nested.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_zip_nested.obj `if test -f 'libarchive/test/test_read_format_zip_nested.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_zip_nested.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_zip_nested.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_zip_nested.obj `if test -f 'libarchive/test/test_read_format_zip_nested.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_zip_nested.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_zip_nested.c'; fi` -libarchive/test/libarchive_test-test_read_format_zip_nofiletype.o: libarchive/test/test_read_format_zip_nofiletype.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_zip_nofiletype.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_nofiletype.Tpo -c -o libarchive/test/libarchive_test-test_read_format_zip_nofiletype.o `test -f 'libarchive/test/test_read_format_zip_nofiletype.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_zip_nofiletype.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_nofiletype.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_nofiletype.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_zip_nofiletype.c' object='libarchive/test/libarchive_test-test_read_format_zip_nofiletype.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_zip_nofiletype.o: libarchive/test/test_read_format_zip_nofiletype.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_zip_nofiletype.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_zip_nofiletype.Tpo -c -o libarchive/test/test-test_read_format_zip_nofiletype.o `test -f 'libarchive/test/test_read_format_zip_nofiletype.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_zip_nofiletype.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_zip_nofiletype.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_zip_nofiletype.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_zip_nofiletype.c' object='libarchive/test/test-test_read_format_zip_nofiletype.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_zip_nofiletype.o `test -f 'libarchive/test/test_read_format_zip_nofiletype.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_zip_nofiletype.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_zip_nofiletype.o `test -f 'libarchive/test/test_read_format_zip_nofiletype.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_zip_nofiletype.c -libarchive/test/libarchive_test-test_read_format_zip_nofiletype.obj: libarchive/test/test_read_format_zip_nofiletype.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_zip_nofiletype.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_nofiletype.Tpo -c -o libarchive/test/libarchive_test-test_read_format_zip_nofiletype.obj `if test -f 'libarchive/test/test_read_format_zip_nofiletype.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_zip_nofiletype.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_zip_nofiletype.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_nofiletype.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_nofiletype.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_zip_nofiletype.c' object='libarchive/test/libarchive_test-test_read_format_zip_nofiletype.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_zip_nofiletype.obj: libarchive/test/test_read_format_zip_nofiletype.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_zip_nofiletype.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_zip_nofiletype.Tpo -c -o libarchive/test/test-test_read_format_zip_nofiletype.obj `if test -f 'libarchive/test/test_read_format_zip_nofiletype.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_zip_nofiletype.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_zip_nofiletype.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_zip_nofiletype.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_zip_nofiletype.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_zip_nofiletype.c' object='libarchive/test/test-test_read_format_zip_nofiletype.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_zip_nofiletype.obj `if test -f 'libarchive/test/test_read_format_zip_nofiletype.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_zip_nofiletype.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_zip_nofiletype.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_zip_nofiletype.obj `if test -f 'libarchive/test/test_read_format_zip_nofiletype.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_zip_nofiletype.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_zip_nofiletype.c'; fi` -libarchive/test/libarchive_test-test_read_format_zip_padded.o: libarchive/test/test_read_format_zip_padded.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_zip_padded.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_padded.Tpo -c -o libarchive/test/libarchive_test-test_read_format_zip_padded.o `test -f 'libarchive/test/test_read_format_zip_padded.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_zip_padded.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_padded.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_padded.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_zip_padded.c' object='libarchive/test/libarchive_test-test_read_format_zip_padded.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_zip_padded.o: libarchive/test/test_read_format_zip_padded.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_zip_padded.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_zip_padded.Tpo -c -o libarchive/test/test-test_read_format_zip_padded.o `test -f 'libarchive/test/test_read_format_zip_padded.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_zip_padded.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_zip_padded.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_zip_padded.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_zip_padded.c' object='libarchive/test/test-test_read_format_zip_padded.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_zip_padded.o `test -f 'libarchive/test/test_read_format_zip_padded.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_zip_padded.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_zip_padded.o `test -f 'libarchive/test/test_read_format_zip_padded.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_zip_padded.c -libarchive/test/libarchive_test-test_read_format_zip_padded.obj: libarchive/test/test_read_format_zip_padded.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_zip_padded.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_padded.Tpo -c -o libarchive/test/libarchive_test-test_read_format_zip_padded.obj `if test -f 'libarchive/test/test_read_format_zip_padded.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_zip_padded.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_zip_padded.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_padded.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_padded.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_zip_padded.c' object='libarchive/test/libarchive_test-test_read_format_zip_padded.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_zip_padded.obj: libarchive/test/test_read_format_zip_padded.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_zip_padded.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_zip_padded.Tpo -c -o libarchive/test/test-test_read_format_zip_padded.obj `if test -f 'libarchive/test/test_read_format_zip_padded.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_zip_padded.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_zip_padded.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_zip_padded.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_zip_padded.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_zip_padded.c' object='libarchive/test/test-test_read_format_zip_padded.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_zip_padded.obj `if test -f 'libarchive/test/test_read_format_zip_padded.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_zip_padded.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_zip_padded.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_zip_padded.obj `if test -f 'libarchive/test/test_read_format_zip_padded.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_zip_padded.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_zip_padded.c'; fi` -libarchive/test/libarchive_test-test_read_format_zip_sfx.o: libarchive/test/test_read_format_zip_sfx.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_zip_sfx.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_sfx.Tpo -c -o libarchive/test/libarchive_test-test_read_format_zip_sfx.o `test -f 'libarchive/test/test_read_format_zip_sfx.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_zip_sfx.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_sfx.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_sfx.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_zip_sfx.c' object='libarchive/test/libarchive_test-test_read_format_zip_sfx.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_zip_sfx.o: libarchive/test/test_read_format_zip_sfx.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_zip_sfx.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_zip_sfx.Tpo -c -o libarchive/test/test-test_read_format_zip_sfx.o `test -f 'libarchive/test/test_read_format_zip_sfx.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_zip_sfx.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_zip_sfx.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_zip_sfx.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_zip_sfx.c' object='libarchive/test/test-test_read_format_zip_sfx.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_zip_sfx.o `test -f 'libarchive/test/test_read_format_zip_sfx.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_zip_sfx.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_zip_sfx.o `test -f 'libarchive/test/test_read_format_zip_sfx.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_zip_sfx.c -libarchive/test/libarchive_test-test_read_format_zip_sfx.obj: libarchive/test/test_read_format_zip_sfx.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_zip_sfx.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_sfx.Tpo -c -o libarchive/test/libarchive_test-test_read_format_zip_sfx.obj `if test -f 'libarchive/test/test_read_format_zip_sfx.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_zip_sfx.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_zip_sfx.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_sfx.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_sfx.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_zip_sfx.c' object='libarchive/test/libarchive_test-test_read_format_zip_sfx.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_zip_sfx.obj: libarchive/test/test_read_format_zip_sfx.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_zip_sfx.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_zip_sfx.Tpo -c -o libarchive/test/test-test_read_format_zip_sfx.obj `if test -f 'libarchive/test/test_read_format_zip_sfx.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_zip_sfx.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_zip_sfx.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_zip_sfx.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_zip_sfx.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_zip_sfx.c' object='libarchive/test/test-test_read_format_zip_sfx.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_zip_sfx.obj `if test -f 'libarchive/test/test_read_format_zip_sfx.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_zip_sfx.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_zip_sfx.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_zip_sfx.obj `if test -f 'libarchive/test/test_read_format_zip_sfx.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_zip_sfx.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_zip_sfx.c'; fi` -libarchive/test/libarchive_test-test_read_format_zip_traditional_encryption_data.o: libarchive/test/test_read_format_zip_traditional_encryption_data.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_zip_traditional_encryption_data.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_traditional_encryption_data.Tpo -c -o libarchive/test/libarchive_test-test_read_format_zip_traditional_encryption_data.o `test -f 'libarchive/test/test_read_format_zip_traditional_encryption_data.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_zip_traditional_encryption_data.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_traditional_encryption_data.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_traditional_encryption_data.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_zip_traditional_encryption_data.c' object='libarchive/test/libarchive_test-test_read_format_zip_traditional_encryption_data.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_zip_traditional_encryption_data.o: libarchive/test/test_read_format_zip_traditional_encryption_data.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_zip_traditional_encryption_data.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_zip_traditional_encryption_data.Tpo -c -o libarchive/test/test-test_read_format_zip_traditional_encryption_data.o `test -f 'libarchive/test/test_read_format_zip_traditional_encryption_data.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_zip_traditional_encryption_data.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_zip_traditional_encryption_data.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_zip_traditional_encryption_data.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_zip_traditional_encryption_data.c' object='libarchive/test/test-test_read_format_zip_traditional_encryption_data.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_zip_traditional_encryption_data.o `test -f 'libarchive/test/test_read_format_zip_traditional_encryption_data.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_zip_traditional_encryption_data.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_zip_traditional_encryption_data.o `test -f 'libarchive/test/test_read_format_zip_traditional_encryption_data.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_zip_traditional_encryption_data.c -libarchive/test/libarchive_test-test_read_format_zip_traditional_encryption_data.obj: libarchive/test/test_read_format_zip_traditional_encryption_data.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_zip_traditional_encryption_data.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_traditional_encryption_data.Tpo -c -o libarchive/test/libarchive_test-test_read_format_zip_traditional_encryption_data.obj `if test -f 'libarchive/test/test_read_format_zip_traditional_encryption_data.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_zip_traditional_encryption_data.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_zip_traditional_encryption_data.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_traditional_encryption_data.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_traditional_encryption_data.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_zip_traditional_encryption_data.c' object='libarchive/test/libarchive_test-test_read_format_zip_traditional_encryption_data.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_zip_traditional_encryption_data.obj: libarchive/test/test_read_format_zip_traditional_encryption_data.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_zip_traditional_encryption_data.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_zip_traditional_encryption_data.Tpo -c -o libarchive/test/test-test_read_format_zip_traditional_encryption_data.obj `if test -f 'libarchive/test/test_read_format_zip_traditional_encryption_data.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_zip_traditional_encryption_data.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_zip_traditional_encryption_data.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_zip_traditional_encryption_data.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_zip_traditional_encryption_data.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_zip_traditional_encryption_data.c' object='libarchive/test/test-test_read_format_zip_traditional_encryption_data.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_zip_traditional_encryption_data.obj `if test -f 'libarchive/test/test_read_format_zip_traditional_encryption_data.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_zip_traditional_encryption_data.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_zip_traditional_encryption_data.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_zip_traditional_encryption_data.obj `if test -f 'libarchive/test/test_read_format_zip_traditional_encryption_data.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_zip_traditional_encryption_data.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_zip_traditional_encryption_data.c'; fi` -libarchive/test/libarchive_test-test_read_format_zip_winzip_aes.o: libarchive/test/test_read_format_zip_winzip_aes.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_zip_winzip_aes.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_winzip_aes.Tpo -c -o libarchive/test/libarchive_test-test_read_format_zip_winzip_aes.o `test -f 'libarchive/test/test_read_format_zip_winzip_aes.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_zip_winzip_aes.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_winzip_aes.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_winzip_aes.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_zip_winzip_aes.c' object='libarchive/test/libarchive_test-test_read_format_zip_winzip_aes.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_zip_winzip_aes.o: libarchive/test/test_read_format_zip_winzip_aes.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_zip_winzip_aes.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_zip_winzip_aes.Tpo -c -o libarchive/test/test-test_read_format_zip_winzip_aes.o `test -f 'libarchive/test/test_read_format_zip_winzip_aes.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_zip_winzip_aes.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_zip_winzip_aes.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_zip_winzip_aes.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_zip_winzip_aes.c' object='libarchive/test/test-test_read_format_zip_winzip_aes.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_zip_winzip_aes.o `test -f 'libarchive/test/test_read_format_zip_winzip_aes.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_zip_winzip_aes.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_zip_winzip_aes.o `test -f 'libarchive/test/test_read_format_zip_winzip_aes.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_zip_winzip_aes.c -libarchive/test/libarchive_test-test_read_format_zip_winzip_aes.obj: libarchive/test/test_read_format_zip_winzip_aes.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_zip_winzip_aes.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_winzip_aes.Tpo -c -o libarchive/test/libarchive_test-test_read_format_zip_winzip_aes.obj `if test -f 'libarchive/test/test_read_format_zip_winzip_aes.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_zip_winzip_aes.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_zip_winzip_aes.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_winzip_aes.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_winzip_aes.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_zip_winzip_aes.c' object='libarchive/test/libarchive_test-test_read_format_zip_winzip_aes.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_zip_winzip_aes.obj: libarchive/test/test_read_format_zip_winzip_aes.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_zip_winzip_aes.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_zip_winzip_aes.Tpo -c -o libarchive/test/test-test_read_format_zip_winzip_aes.obj `if test -f 'libarchive/test/test_read_format_zip_winzip_aes.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_zip_winzip_aes.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_zip_winzip_aes.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_zip_winzip_aes.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_zip_winzip_aes.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_zip_winzip_aes.c' object='libarchive/test/test-test_read_format_zip_winzip_aes.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_zip_winzip_aes.obj `if test -f 'libarchive/test/test_read_format_zip_winzip_aes.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_zip_winzip_aes.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_zip_winzip_aes.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_zip_winzip_aes.obj `if test -f 'libarchive/test/test_read_format_zip_winzip_aes.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_zip_winzip_aes.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_zip_winzip_aes.c'; fi` -libarchive/test/libarchive_test-test_read_format_zip_winzip_aes_large.o: libarchive/test/test_read_format_zip_winzip_aes_large.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_zip_winzip_aes_large.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_winzip_aes_large.Tpo -c -o libarchive/test/libarchive_test-test_read_format_zip_winzip_aes_large.o `test -f 'libarchive/test/test_read_format_zip_winzip_aes_large.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_zip_winzip_aes_large.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_winzip_aes_large.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_winzip_aes_large.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_zip_winzip_aes_large.c' object='libarchive/test/libarchive_test-test_read_format_zip_winzip_aes_large.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_zip_winzip_aes_large.o: libarchive/test/test_read_format_zip_winzip_aes_large.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_zip_winzip_aes_large.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_zip_winzip_aes_large.Tpo -c -o libarchive/test/test-test_read_format_zip_winzip_aes_large.o `test -f 'libarchive/test/test_read_format_zip_winzip_aes_large.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_zip_winzip_aes_large.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_zip_winzip_aes_large.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_zip_winzip_aes_large.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_zip_winzip_aes_large.c' object='libarchive/test/test-test_read_format_zip_winzip_aes_large.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_zip_winzip_aes_large.o `test -f 'libarchive/test/test_read_format_zip_winzip_aes_large.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_zip_winzip_aes_large.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_zip_winzip_aes_large.o `test -f 'libarchive/test/test_read_format_zip_winzip_aes_large.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_zip_winzip_aes_large.c -libarchive/test/libarchive_test-test_read_format_zip_winzip_aes_large.obj: libarchive/test/test_read_format_zip_winzip_aes_large.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_zip_winzip_aes_large.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_winzip_aes_large.Tpo -c -o libarchive/test/libarchive_test-test_read_format_zip_winzip_aes_large.obj `if test -f 'libarchive/test/test_read_format_zip_winzip_aes_large.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_zip_winzip_aes_large.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_zip_winzip_aes_large.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_winzip_aes_large.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_winzip_aes_large.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_zip_winzip_aes_large.c' object='libarchive/test/libarchive_test-test_read_format_zip_winzip_aes_large.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_zip_winzip_aes_large.obj: libarchive/test/test_read_format_zip_winzip_aes_large.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_zip_winzip_aes_large.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_zip_winzip_aes_large.Tpo -c -o libarchive/test/test-test_read_format_zip_winzip_aes_large.obj `if test -f 'libarchive/test/test_read_format_zip_winzip_aes_large.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_zip_winzip_aes_large.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_zip_winzip_aes_large.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_zip_winzip_aes_large.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_zip_winzip_aes_large.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_zip_winzip_aes_large.c' object='libarchive/test/test-test_read_format_zip_winzip_aes_large.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_zip_winzip_aes_large.obj `if test -f 'libarchive/test/test_read_format_zip_winzip_aes_large.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_zip_winzip_aes_large.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_zip_winzip_aes_large.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_zip_winzip_aes_large.obj `if test -f 'libarchive/test/test_read_format_zip_winzip_aes_large.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_zip_winzip_aes_large.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_zip_winzip_aes_large.c'; fi` -libarchive/test/libarchive_test-test_read_format_zip_zip64.o: libarchive/test/test_read_format_zip_zip64.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_zip_zip64.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_zip64.Tpo -c -o libarchive/test/libarchive_test-test_read_format_zip_zip64.o `test -f 'libarchive/test/test_read_format_zip_zip64.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_zip_zip64.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_zip64.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_zip64.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_zip_zip64.c' object='libarchive/test/libarchive_test-test_read_format_zip_zip64.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_zip_zip64.o: libarchive/test/test_read_format_zip_zip64.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_zip_zip64.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_zip_zip64.Tpo -c -o libarchive/test/test-test_read_format_zip_zip64.o `test -f 'libarchive/test/test_read_format_zip_zip64.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_zip_zip64.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_zip_zip64.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_zip_zip64.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_zip_zip64.c' object='libarchive/test/test-test_read_format_zip_zip64.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_zip_zip64.o `test -f 'libarchive/test/test_read_format_zip_zip64.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_zip_zip64.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_zip_zip64.o `test -f 'libarchive/test/test_read_format_zip_zip64.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_zip_zip64.c -libarchive/test/libarchive_test-test_read_format_zip_zip64.obj: libarchive/test/test_read_format_zip_zip64.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_zip_zip64.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_zip64.Tpo -c -o libarchive/test/libarchive_test-test_read_format_zip_zip64.obj `if test -f 'libarchive/test/test_read_format_zip_zip64.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_zip_zip64.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_zip_zip64.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_zip64.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_zip64.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_zip_zip64.c' object='libarchive/test/libarchive_test-test_read_format_zip_zip64.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_zip_zip64.obj: libarchive/test/test_read_format_zip_zip64.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_zip_zip64.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_zip_zip64.Tpo -c -o libarchive/test/test-test_read_format_zip_zip64.obj `if test -f 'libarchive/test/test_read_format_zip_zip64.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_zip_zip64.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_zip_zip64.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_zip_zip64.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_zip_zip64.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_zip_zip64.c' object='libarchive/test/test-test_read_format_zip_zip64.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_zip_zip64.obj `if test -f 'libarchive/test/test_read_format_zip_zip64.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_zip_zip64.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_zip_zip64.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_zip_zip64.obj `if test -f 'libarchive/test/test_read_format_zip_zip64.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_zip_zip64.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_zip_zip64.c'; fi` -libarchive/test/libarchive_test-test_read_format_zip_with_invalid_traditional_eocd.o: libarchive/test/test_read_format_zip_with_invalid_traditional_eocd.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_zip_with_invalid_traditional_eocd.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_with_invalid_traditional_eocd.Tpo -c -o libarchive/test/libarchive_test-test_read_format_zip_with_invalid_traditional_eocd.o `test -f 'libarchive/test/test_read_format_zip_with_invalid_traditional_eocd.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_zip_with_invalid_traditional_eocd.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_with_invalid_traditional_eocd.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_with_invalid_traditional_eocd.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_zip_with_invalid_traditional_eocd.c' object='libarchive/test/libarchive_test-test_read_format_zip_with_invalid_traditional_eocd.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_zip_with_invalid_traditional_eocd.o: libarchive/test/test_read_format_zip_with_invalid_traditional_eocd.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_zip_with_invalid_traditional_eocd.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_zip_with_invalid_traditional_eocd.Tpo -c -o libarchive/test/test-test_read_format_zip_with_invalid_traditional_eocd.o `test -f 'libarchive/test/test_read_format_zip_with_invalid_traditional_eocd.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_zip_with_invalid_traditional_eocd.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_zip_with_invalid_traditional_eocd.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_zip_with_invalid_traditional_eocd.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_zip_with_invalid_traditional_eocd.c' object='libarchive/test/test-test_read_format_zip_with_invalid_traditional_eocd.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_zip_with_invalid_traditional_eocd.o `test -f 'libarchive/test/test_read_format_zip_with_invalid_traditional_eocd.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_zip_with_invalid_traditional_eocd.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_zip_with_invalid_traditional_eocd.o `test -f 'libarchive/test/test_read_format_zip_with_invalid_traditional_eocd.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_zip_with_invalid_traditional_eocd.c -libarchive/test/libarchive_test-test_read_format_zip_with_invalid_traditional_eocd.obj: libarchive/test/test_read_format_zip_with_invalid_traditional_eocd.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_zip_with_invalid_traditional_eocd.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_with_invalid_traditional_eocd.Tpo -c -o libarchive/test/libarchive_test-test_read_format_zip_with_invalid_traditional_eocd.obj `if test -f 'libarchive/test/test_read_format_zip_with_invalid_traditional_eocd.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_zip_with_invalid_traditional_eocd.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_zip_with_invalid_traditional_eocd.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_with_invalid_traditional_eocd.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_zip_with_invalid_traditional_eocd.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_zip_with_invalid_traditional_eocd.c' object='libarchive/test/libarchive_test-test_read_format_zip_with_invalid_traditional_eocd.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_format_zip_with_invalid_traditional_eocd.obj: libarchive/test/test_read_format_zip_with_invalid_traditional_eocd.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_zip_with_invalid_traditional_eocd.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_zip_with_invalid_traditional_eocd.Tpo -c -o libarchive/test/test-test_read_format_zip_with_invalid_traditional_eocd.obj `if test -f 'libarchive/test/test_read_format_zip_with_invalid_traditional_eocd.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_zip_with_invalid_traditional_eocd.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_zip_with_invalid_traditional_eocd.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_zip_with_invalid_traditional_eocd.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_zip_with_invalid_traditional_eocd.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_zip_with_invalid_traditional_eocd.c' object='libarchive/test/test-test_read_format_zip_with_invalid_traditional_eocd.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_format_zip_with_invalid_traditional_eocd.obj `if test -f 'libarchive/test/test_read_format_zip_with_invalid_traditional_eocd.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_zip_with_invalid_traditional_eocd.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_zip_with_invalid_traditional_eocd.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_format_zip_with_invalid_traditional_eocd.obj `if test -f 'libarchive/test/test_read_format_zip_with_invalid_traditional_eocd.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_zip_with_invalid_traditional_eocd.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_zip_with_invalid_traditional_eocd.c'; fi` -libarchive/test/libarchive_test-test_read_large.o: libarchive/test/test_read_large.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_large.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_large.Tpo -c -o libarchive/test/libarchive_test-test_read_large.o `test -f 'libarchive/test/test_read_large.c' || echo '$(srcdir)/'`libarchive/test/test_read_large.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_large.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_large.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_large.c' object='libarchive/test/libarchive_test-test_read_large.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_large.o: libarchive/test/test_read_large.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_large.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_large.Tpo -c -o libarchive/test/test-test_read_large.o `test -f 'libarchive/test/test_read_large.c' || echo '$(srcdir)/'`libarchive/test/test_read_large.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_large.Tpo libarchive/test/$(DEPDIR)/test-test_read_large.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_large.c' object='libarchive/test/test-test_read_large.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_large.o `test -f 'libarchive/test/test_read_large.c' || echo '$(srcdir)/'`libarchive/test/test_read_large.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_large.o `test -f 'libarchive/test/test_read_large.c' || echo '$(srcdir)/'`libarchive/test/test_read_large.c -libarchive/test/libarchive_test-test_read_large.obj: libarchive/test/test_read_large.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_large.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_large.Tpo -c -o libarchive/test/libarchive_test-test_read_large.obj `if test -f 'libarchive/test/test_read_large.c'; then $(CYGPATH_W) 'libarchive/test/test_read_large.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_large.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_large.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_large.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_large.c' object='libarchive/test/libarchive_test-test_read_large.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_large.obj: libarchive/test/test_read_large.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_large.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_large.Tpo -c -o libarchive/test/test-test_read_large.obj `if test -f 'libarchive/test/test_read_large.c'; then $(CYGPATH_W) 'libarchive/test/test_read_large.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_large.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_large.Tpo libarchive/test/$(DEPDIR)/test-test_read_large.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_large.c' object='libarchive/test/test-test_read_large.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_large.obj `if test -f 'libarchive/test/test_read_large.c'; then $(CYGPATH_W) 'libarchive/test/test_read_large.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_large.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_large.obj `if test -f 'libarchive/test/test_read_large.c'; then $(CYGPATH_W) 'libarchive/test/test_read_large.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_large.c'; fi` -libarchive/test/libarchive_test-test_read_pax_schily_xattr.o: libarchive/test/test_read_pax_schily_xattr.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_pax_schily_xattr.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_pax_schily_xattr.Tpo -c -o libarchive/test/libarchive_test-test_read_pax_schily_xattr.o `test -f 'libarchive/test/test_read_pax_schily_xattr.c' || echo '$(srcdir)/'`libarchive/test/test_read_pax_schily_xattr.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_pax_schily_xattr.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_pax_schily_xattr.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_pax_schily_xattr.c' object='libarchive/test/libarchive_test-test_read_pax_schily_xattr.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_pax_xattr_rht_security_selinux.o: libarchive/test/test_read_pax_xattr_rht_security_selinux.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_pax_xattr_rht_security_selinux.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_pax_xattr_rht_security_selinux.Tpo -c -o libarchive/test/test-test_read_pax_xattr_rht_security_selinux.o `test -f 'libarchive/test/test_read_pax_xattr_rht_security_selinux.c' || echo '$(srcdir)/'`libarchive/test/test_read_pax_xattr_rht_security_selinux.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_pax_xattr_rht_security_selinux.Tpo libarchive/test/$(DEPDIR)/test-test_read_pax_xattr_rht_security_selinux.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_pax_xattr_rht_security_selinux.c' object='libarchive/test/test-test_read_pax_xattr_rht_security_selinux.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_pax_schily_xattr.o `test -f 'libarchive/test/test_read_pax_schily_xattr.c' || echo '$(srcdir)/'`libarchive/test/test_read_pax_schily_xattr.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_pax_xattr_rht_security_selinux.o `test -f 'libarchive/test/test_read_pax_xattr_rht_security_selinux.c' || echo '$(srcdir)/'`libarchive/test/test_read_pax_xattr_rht_security_selinux.c -libarchive/test/libarchive_test-test_read_pax_schily_xattr.obj: libarchive/test/test_read_pax_schily_xattr.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_pax_schily_xattr.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_pax_schily_xattr.Tpo -c -o libarchive/test/libarchive_test-test_read_pax_schily_xattr.obj `if test -f 'libarchive/test/test_read_pax_schily_xattr.c'; then $(CYGPATH_W) 'libarchive/test/test_read_pax_schily_xattr.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_pax_schily_xattr.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_pax_schily_xattr.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_pax_schily_xattr.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_pax_schily_xattr.c' object='libarchive/test/libarchive_test-test_read_pax_schily_xattr.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_pax_xattr_rht_security_selinux.obj: libarchive/test/test_read_pax_xattr_rht_security_selinux.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_pax_xattr_rht_security_selinux.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_pax_xattr_rht_security_selinux.Tpo -c -o libarchive/test/test-test_read_pax_xattr_rht_security_selinux.obj `if test -f 'libarchive/test/test_read_pax_xattr_rht_security_selinux.c'; then $(CYGPATH_W) 'libarchive/test/test_read_pax_xattr_rht_security_selinux.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_pax_xattr_rht_security_selinux.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_pax_xattr_rht_security_selinux.Tpo libarchive/test/$(DEPDIR)/test-test_read_pax_xattr_rht_security_selinux.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_pax_xattr_rht_security_selinux.c' object='libarchive/test/test-test_read_pax_xattr_rht_security_selinux.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_pax_schily_xattr.obj `if test -f 'libarchive/test/test_read_pax_schily_xattr.c'; then $(CYGPATH_W) 'libarchive/test/test_read_pax_schily_xattr.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_pax_schily_xattr.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_pax_xattr_rht_security_selinux.obj `if test -f 'libarchive/test/test_read_pax_xattr_rht_security_selinux.c'; then $(CYGPATH_W) 'libarchive/test/test_read_pax_xattr_rht_security_selinux.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_pax_xattr_rht_security_selinux.c'; fi` -libarchive/test/libarchive_test-test_read_pax_truncated.o: libarchive/test/test_read_pax_truncated.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_pax_truncated.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_pax_truncated.Tpo -c -o libarchive/test/libarchive_test-test_read_pax_truncated.o `test -f 'libarchive/test/test_read_pax_truncated.c' || echo '$(srcdir)/'`libarchive/test/test_read_pax_truncated.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_pax_truncated.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_pax_truncated.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_pax_truncated.c' object='libarchive/test/libarchive_test-test_read_pax_truncated.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_pax_xattr_schily.o: libarchive/test/test_read_pax_xattr_schily.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_pax_xattr_schily.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_pax_xattr_schily.Tpo -c -o libarchive/test/test-test_read_pax_xattr_schily.o `test -f 'libarchive/test/test_read_pax_xattr_schily.c' || echo '$(srcdir)/'`libarchive/test/test_read_pax_xattr_schily.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_pax_xattr_schily.Tpo libarchive/test/$(DEPDIR)/test-test_read_pax_xattr_schily.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_pax_xattr_schily.c' object='libarchive/test/test-test_read_pax_xattr_schily.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_pax_truncated.o `test -f 'libarchive/test/test_read_pax_truncated.c' || echo '$(srcdir)/'`libarchive/test/test_read_pax_truncated.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_pax_xattr_schily.o `test -f 'libarchive/test/test_read_pax_xattr_schily.c' || echo '$(srcdir)/'`libarchive/test/test_read_pax_xattr_schily.c -libarchive/test/libarchive_test-test_read_pax_truncated.obj: libarchive/test/test_read_pax_truncated.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_pax_truncated.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_pax_truncated.Tpo -c -o libarchive/test/libarchive_test-test_read_pax_truncated.obj `if test -f 'libarchive/test/test_read_pax_truncated.c'; then $(CYGPATH_W) 'libarchive/test/test_read_pax_truncated.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_pax_truncated.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_pax_truncated.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_pax_truncated.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_pax_truncated.c' object='libarchive/test/libarchive_test-test_read_pax_truncated.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_pax_xattr_schily.obj: libarchive/test/test_read_pax_xattr_schily.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_pax_xattr_schily.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_pax_xattr_schily.Tpo -c -o libarchive/test/test-test_read_pax_xattr_schily.obj `if test -f 'libarchive/test/test_read_pax_xattr_schily.c'; then $(CYGPATH_W) 'libarchive/test/test_read_pax_xattr_schily.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_pax_xattr_schily.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_pax_xattr_schily.Tpo libarchive/test/$(DEPDIR)/test-test_read_pax_xattr_schily.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_pax_xattr_schily.c' object='libarchive/test/test-test_read_pax_xattr_schily.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_pax_truncated.obj `if test -f 'libarchive/test/test_read_pax_truncated.c'; then $(CYGPATH_W) 'libarchive/test/test_read_pax_truncated.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_pax_truncated.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_pax_xattr_schily.obj `if test -f 'libarchive/test/test_read_pax_xattr_schily.c'; then $(CYGPATH_W) 'libarchive/test/test_read_pax_xattr_schily.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_pax_xattr_schily.c'; fi` -libarchive/test/libarchive_test-test_read_position.o: libarchive/test/test_read_position.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_position.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_position.Tpo -c -o libarchive/test/libarchive_test-test_read_position.o `test -f 'libarchive/test/test_read_position.c' || echo '$(srcdir)/'`libarchive/test/test_read_position.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_position.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_position.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_position.c' object='libarchive/test/libarchive_test-test_read_position.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_pax_truncated.o: libarchive/test/test_read_pax_truncated.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_pax_truncated.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_pax_truncated.Tpo -c -o libarchive/test/test-test_read_pax_truncated.o `test -f 'libarchive/test/test_read_pax_truncated.c' || echo '$(srcdir)/'`libarchive/test/test_read_pax_truncated.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_pax_truncated.Tpo libarchive/test/$(DEPDIR)/test-test_read_pax_truncated.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_pax_truncated.c' object='libarchive/test/test-test_read_pax_truncated.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_position.o `test -f 'libarchive/test/test_read_position.c' || echo '$(srcdir)/'`libarchive/test/test_read_position.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_pax_truncated.o `test -f 'libarchive/test/test_read_pax_truncated.c' || echo '$(srcdir)/'`libarchive/test/test_read_pax_truncated.c -libarchive/test/libarchive_test-test_read_position.obj: libarchive/test/test_read_position.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_position.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_position.Tpo -c -o libarchive/test/libarchive_test-test_read_position.obj `if test -f 'libarchive/test/test_read_position.c'; then $(CYGPATH_W) 'libarchive/test/test_read_position.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_position.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_position.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_position.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_position.c' object='libarchive/test/libarchive_test-test_read_position.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_pax_truncated.obj: libarchive/test/test_read_pax_truncated.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_pax_truncated.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_pax_truncated.Tpo -c -o libarchive/test/test-test_read_pax_truncated.obj `if test -f 'libarchive/test/test_read_pax_truncated.c'; then $(CYGPATH_W) 'libarchive/test/test_read_pax_truncated.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_pax_truncated.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_pax_truncated.Tpo libarchive/test/$(DEPDIR)/test-test_read_pax_truncated.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_pax_truncated.c' object='libarchive/test/test-test_read_pax_truncated.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_position.obj `if test -f 'libarchive/test/test_read_position.c'; then $(CYGPATH_W) 'libarchive/test/test_read_position.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_position.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_pax_truncated.obj `if test -f 'libarchive/test/test_read_pax_truncated.c'; then $(CYGPATH_W) 'libarchive/test/test_read_pax_truncated.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_pax_truncated.c'; fi` -libarchive/test/libarchive_test-test_read_set_format.o: libarchive/test/test_read_set_format.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_set_format.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_set_format.Tpo -c -o libarchive/test/libarchive_test-test_read_set_format.o `test -f 'libarchive/test/test_read_set_format.c' || echo '$(srcdir)/'`libarchive/test/test_read_set_format.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_set_format.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_set_format.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_set_format.c' object='libarchive/test/libarchive_test-test_read_set_format.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_position.o: libarchive/test/test_read_position.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_position.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_position.Tpo -c -o libarchive/test/test-test_read_position.o `test -f 'libarchive/test/test_read_position.c' || echo '$(srcdir)/'`libarchive/test/test_read_position.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_position.Tpo libarchive/test/$(DEPDIR)/test-test_read_position.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_position.c' object='libarchive/test/test-test_read_position.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_set_format.o `test -f 'libarchive/test/test_read_set_format.c' || echo '$(srcdir)/'`libarchive/test/test_read_set_format.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_position.o `test -f 'libarchive/test/test_read_position.c' || echo '$(srcdir)/'`libarchive/test/test_read_position.c -libarchive/test/libarchive_test-test_read_set_format.obj: libarchive/test/test_read_set_format.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_set_format.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_set_format.Tpo -c -o libarchive/test/libarchive_test-test_read_set_format.obj `if test -f 'libarchive/test/test_read_set_format.c'; then $(CYGPATH_W) 'libarchive/test/test_read_set_format.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_set_format.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_set_format.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_set_format.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_set_format.c' object='libarchive/test/libarchive_test-test_read_set_format.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_position.obj: libarchive/test/test_read_position.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_position.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_position.Tpo -c -o libarchive/test/test-test_read_position.obj `if test -f 'libarchive/test/test_read_position.c'; then $(CYGPATH_W) 'libarchive/test/test_read_position.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_position.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_position.Tpo libarchive/test/$(DEPDIR)/test-test_read_position.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_position.c' object='libarchive/test/test-test_read_position.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_set_format.obj `if test -f 'libarchive/test/test_read_set_format.c'; then $(CYGPATH_W) 'libarchive/test/test_read_set_format.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_set_format.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_position.obj `if test -f 'libarchive/test/test_read_position.c'; then $(CYGPATH_W) 'libarchive/test/test_read_position.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_position.c'; fi` -libarchive/test/libarchive_test-test_read_too_many_filters.o: libarchive/test/test_read_too_many_filters.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_too_many_filters.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_too_many_filters.Tpo -c -o libarchive/test/libarchive_test-test_read_too_many_filters.o `test -f 'libarchive/test/test_read_too_many_filters.c' || echo '$(srcdir)/'`libarchive/test/test_read_too_many_filters.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_too_many_filters.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_too_many_filters.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_too_many_filters.c' object='libarchive/test/libarchive_test-test_read_too_many_filters.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_set_format.o: libarchive/test/test_read_set_format.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_set_format.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_set_format.Tpo -c -o libarchive/test/test-test_read_set_format.o `test -f 'libarchive/test/test_read_set_format.c' || echo '$(srcdir)/'`libarchive/test/test_read_set_format.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_set_format.Tpo libarchive/test/$(DEPDIR)/test-test_read_set_format.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_set_format.c' object='libarchive/test/test-test_read_set_format.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_too_many_filters.o `test -f 'libarchive/test/test_read_too_many_filters.c' || echo '$(srcdir)/'`libarchive/test/test_read_too_many_filters.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_set_format.o `test -f 'libarchive/test/test_read_set_format.c' || echo '$(srcdir)/'`libarchive/test/test_read_set_format.c -libarchive/test/libarchive_test-test_read_too_many_filters.obj: libarchive/test/test_read_too_many_filters.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_too_many_filters.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_too_many_filters.Tpo -c -o libarchive/test/libarchive_test-test_read_too_many_filters.obj `if test -f 'libarchive/test/test_read_too_many_filters.c'; then $(CYGPATH_W) 'libarchive/test/test_read_too_many_filters.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_too_many_filters.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_too_many_filters.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_too_many_filters.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_too_many_filters.c' object='libarchive/test/libarchive_test-test_read_too_many_filters.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_set_format.obj: libarchive/test/test_read_set_format.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_set_format.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_set_format.Tpo -c -o libarchive/test/test-test_read_set_format.obj `if test -f 'libarchive/test/test_read_set_format.c'; then $(CYGPATH_W) 'libarchive/test/test_read_set_format.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_set_format.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_set_format.Tpo libarchive/test/$(DEPDIR)/test-test_read_set_format.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_set_format.c' object='libarchive/test/test-test_read_set_format.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_too_many_filters.obj `if test -f 'libarchive/test/test_read_too_many_filters.c'; then $(CYGPATH_W) 'libarchive/test/test_read_too_many_filters.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_too_many_filters.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_set_format.obj `if test -f 'libarchive/test/test_read_set_format.c'; then $(CYGPATH_W) 'libarchive/test/test_read_set_format.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_set_format.c'; fi` -libarchive/test/libarchive_test-test_read_truncated.o: libarchive/test/test_read_truncated.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_truncated.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_truncated.Tpo -c -o libarchive/test/libarchive_test-test_read_truncated.o `test -f 'libarchive/test/test_read_truncated.c' || echo '$(srcdir)/'`libarchive/test/test_read_truncated.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_truncated.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_truncated.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_truncated.c' object='libarchive/test/libarchive_test-test_read_truncated.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_too_many_filters.o: libarchive/test/test_read_too_many_filters.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_too_many_filters.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_too_many_filters.Tpo -c -o libarchive/test/test-test_read_too_many_filters.o `test -f 'libarchive/test/test_read_too_many_filters.c' || echo '$(srcdir)/'`libarchive/test/test_read_too_many_filters.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_too_many_filters.Tpo libarchive/test/$(DEPDIR)/test-test_read_too_many_filters.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_too_many_filters.c' object='libarchive/test/test-test_read_too_many_filters.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_truncated.o `test -f 'libarchive/test/test_read_truncated.c' || echo '$(srcdir)/'`libarchive/test/test_read_truncated.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_too_many_filters.o `test -f 'libarchive/test/test_read_too_many_filters.c' || echo '$(srcdir)/'`libarchive/test/test_read_too_many_filters.c -libarchive/test/libarchive_test-test_read_truncated.obj: libarchive/test/test_read_truncated.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_truncated.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_truncated.Tpo -c -o libarchive/test/libarchive_test-test_read_truncated.obj `if test -f 'libarchive/test/test_read_truncated.c'; then $(CYGPATH_W) 'libarchive/test/test_read_truncated.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_truncated.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_truncated.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_truncated.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_truncated.c' object='libarchive/test/libarchive_test-test_read_truncated.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_too_many_filters.obj: libarchive/test/test_read_too_many_filters.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_too_many_filters.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_too_many_filters.Tpo -c -o libarchive/test/test-test_read_too_many_filters.obj `if test -f 'libarchive/test/test_read_too_many_filters.c'; then $(CYGPATH_W) 'libarchive/test/test_read_too_many_filters.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_too_many_filters.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_too_many_filters.Tpo libarchive/test/$(DEPDIR)/test-test_read_too_many_filters.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_too_many_filters.c' object='libarchive/test/test-test_read_too_many_filters.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_truncated.obj `if test -f 'libarchive/test/test_read_truncated.c'; then $(CYGPATH_W) 'libarchive/test/test_read_truncated.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_truncated.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_too_many_filters.obj `if test -f 'libarchive/test/test_read_too_many_filters.c'; then $(CYGPATH_W) 'libarchive/test/test_read_too_many_filters.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_too_many_filters.c'; fi` -libarchive/test/libarchive_test-test_read_truncated_filter.o: libarchive/test/test_read_truncated_filter.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_truncated_filter.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_truncated_filter.Tpo -c -o libarchive/test/libarchive_test-test_read_truncated_filter.o `test -f 'libarchive/test/test_read_truncated_filter.c' || echo '$(srcdir)/'`libarchive/test/test_read_truncated_filter.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_truncated_filter.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_truncated_filter.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_truncated_filter.c' object='libarchive/test/libarchive_test-test_read_truncated_filter.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_truncated.o: libarchive/test/test_read_truncated.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_truncated.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_truncated.Tpo -c -o libarchive/test/test-test_read_truncated.o `test -f 'libarchive/test/test_read_truncated.c' || echo '$(srcdir)/'`libarchive/test/test_read_truncated.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_truncated.Tpo libarchive/test/$(DEPDIR)/test-test_read_truncated.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_truncated.c' object='libarchive/test/test-test_read_truncated.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_truncated_filter.o `test -f 'libarchive/test/test_read_truncated_filter.c' || echo '$(srcdir)/'`libarchive/test/test_read_truncated_filter.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_truncated.o `test -f 'libarchive/test/test_read_truncated.c' || echo '$(srcdir)/'`libarchive/test/test_read_truncated.c -libarchive/test/libarchive_test-test_read_truncated_filter.obj: libarchive/test/test_read_truncated_filter.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_truncated_filter.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_truncated_filter.Tpo -c -o libarchive/test/libarchive_test-test_read_truncated_filter.obj `if test -f 'libarchive/test/test_read_truncated_filter.c'; then $(CYGPATH_W) 'libarchive/test/test_read_truncated_filter.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_truncated_filter.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_truncated_filter.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_truncated_filter.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_truncated_filter.c' object='libarchive/test/libarchive_test-test_read_truncated_filter.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_truncated.obj: libarchive/test/test_read_truncated.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_truncated.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_truncated.Tpo -c -o libarchive/test/test-test_read_truncated.obj `if test -f 'libarchive/test/test_read_truncated.c'; then $(CYGPATH_W) 'libarchive/test/test_read_truncated.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_truncated.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_truncated.Tpo libarchive/test/$(DEPDIR)/test-test_read_truncated.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_truncated.c' object='libarchive/test/test-test_read_truncated.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_read_truncated_filter.obj `if test -f 'libarchive/test/test_read_truncated_filter.c'; then $(CYGPATH_W) 'libarchive/test/test_read_truncated_filter.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_truncated_filter.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_truncated.obj `if test -f 'libarchive/test/test_read_truncated.c'; then $(CYGPATH_W) 'libarchive/test/test_read_truncated.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_truncated.c'; fi` -libarchive/test/libarchive_test-test_sparse_basic.o: libarchive/test/test_sparse_basic.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_sparse_basic.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_sparse_basic.Tpo -c -o libarchive/test/libarchive_test-test_sparse_basic.o `test -f 'libarchive/test/test_sparse_basic.c' || echo '$(srcdir)/'`libarchive/test/test_sparse_basic.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_sparse_basic.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_sparse_basic.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_sparse_basic.c' object='libarchive/test/libarchive_test-test_sparse_basic.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_truncated_filter.o: libarchive/test/test_read_truncated_filter.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_truncated_filter.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_truncated_filter.Tpo -c -o libarchive/test/test-test_read_truncated_filter.o `test -f 'libarchive/test/test_read_truncated_filter.c' || echo '$(srcdir)/'`libarchive/test/test_read_truncated_filter.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_truncated_filter.Tpo libarchive/test/$(DEPDIR)/test-test_read_truncated_filter.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_truncated_filter.c' object='libarchive/test/test-test_read_truncated_filter.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_sparse_basic.o `test -f 'libarchive/test/test_sparse_basic.c' || echo '$(srcdir)/'`libarchive/test/test_sparse_basic.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_truncated_filter.o `test -f 'libarchive/test/test_read_truncated_filter.c' || echo '$(srcdir)/'`libarchive/test/test_read_truncated_filter.c -libarchive/test/libarchive_test-test_sparse_basic.obj: libarchive/test/test_sparse_basic.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_sparse_basic.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_sparse_basic.Tpo -c -o libarchive/test/libarchive_test-test_sparse_basic.obj `if test -f 'libarchive/test/test_sparse_basic.c'; then $(CYGPATH_W) 'libarchive/test/test_sparse_basic.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_sparse_basic.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_sparse_basic.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_sparse_basic.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_sparse_basic.c' object='libarchive/test/libarchive_test-test_sparse_basic.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_read_truncated_filter.obj: libarchive/test/test_read_truncated_filter.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_truncated_filter.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_truncated_filter.Tpo -c -o libarchive/test/test-test_read_truncated_filter.obj `if test -f 'libarchive/test/test_read_truncated_filter.c'; then $(CYGPATH_W) 'libarchive/test/test_read_truncated_filter.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_truncated_filter.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_truncated_filter.Tpo libarchive/test/$(DEPDIR)/test-test_read_truncated_filter.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_truncated_filter.c' object='libarchive/test/test-test_read_truncated_filter.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_sparse_basic.obj `if test -f 'libarchive/test/test_sparse_basic.c'; then $(CYGPATH_W) 'libarchive/test/test_sparse_basic.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_sparse_basic.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_read_truncated_filter.obj `if test -f 'libarchive/test/test_read_truncated_filter.c'; then $(CYGPATH_W) 'libarchive/test/test_read_truncated_filter.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_truncated_filter.c'; fi` -libarchive/test/libarchive_test-test_tar_filenames.o: libarchive/test/test_tar_filenames.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_tar_filenames.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_tar_filenames.Tpo -c -o libarchive/test/libarchive_test-test_tar_filenames.o `test -f 'libarchive/test/test_tar_filenames.c' || echo '$(srcdir)/'`libarchive/test/test_tar_filenames.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_tar_filenames.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_tar_filenames.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_tar_filenames.c' object='libarchive/test/libarchive_test-test_tar_filenames.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_short_writes.o: libarchive/test/test_short_writes.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_short_writes.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_short_writes.Tpo -c -o libarchive/test/test-test_short_writes.o `test -f 'libarchive/test/test_short_writes.c' || echo '$(srcdir)/'`libarchive/test/test_short_writes.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_short_writes.Tpo libarchive/test/$(DEPDIR)/test-test_short_writes.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_short_writes.c' object='libarchive/test/test-test_short_writes.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_tar_filenames.o `test -f 'libarchive/test/test_tar_filenames.c' || echo '$(srcdir)/'`libarchive/test/test_tar_filenames.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_short_writes.o `test -f 'libarchive/test/test_short_writes.c' || echo '$(srcdir)/'`libarchive/test/test_short_writes.c -libarchive/test/libarchive_test-test_tar_filenames.obj: libarchive/test/test_tar_filenames.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_tar_filenames.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_tar_filenames.Tpo -c -o libarchive/test/libarchive_test-test_tar_filenames.obj `if test -f 'libarchive/test/test_tar_filenames.c'; then $(CYGPATH_W) 'libarchive/test/test_tar_filenames.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_tar_filenames.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_tar_filenames.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_tar_filenames.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_tar_filenames.c' object='libarchive/test/libarchive_test-test_tar_filenames.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_short_writes.obj: libarchive/test/test_short_writes.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_short_writes.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_short_writes.Tpo -c -o libarchive/test/test-test_short_writes.obj `if test -f 'libarchive/test/test_short_writes.c'; then $(CYGPATH_W) 'libarchive/test/test_short_writes.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_short_writes.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_short_writes.Tpo libarchive/test/$(DEPDIR)/test-test_short_writes.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_short_writes.c' object='libarchive/test/test-test_short_writes.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_tar_filenames.obj `if test -f 'libarchive/test/test_tar_filenames.c'; then $(CYGPATH_W) 'libarchive/test/test_tar_filenames.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_tar_filenames.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_short_writes.obj `if test -f 'libarchive/test/test_short_writes.c'; then $(CYGPATH_W) 'libarchive/test/test_short_writes.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_short_writes.c'; fi` -libarchive/test/libarchive_test-test_tar_large.o: libarchive/test/test_tar_large.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_tar_large.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_tar_large.Tpo -c -o libarchive/test/libarchive_test-test_tar_large.o `test -f 'libarchive/test/test_tar_large.c' || echo '$(srcdir)/'`libarchive/test/test_tar_large.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_tar_large.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_tar_large.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_tar_large.c' object='libarchive/test/libarchive_test-test_tar_large.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_sparse_basic.o: libarchive/test/test_sparse_basic.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_sparse_basic.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_sparse_basic.Tpo -c -o libarchive/test/test-test_sparse_basic.o `test -f 'libarchive/test/test_sparse_basic.c' || echo '$(srcdir)/'`libarchive/test/test_sparse_basic.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_sparse_basic.Tpo libarchive/test/$(DEPDIR)/test-test_sparse_basic.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_sparse_basic.c' object='libarchive/test/test-test_sparse_basic.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_tar_large.o `test -f 'libarchive/test/test_tar_large.c' || echo '$(srcdir)/'`libarchive/test/test_tar_large.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_sparse_basic.o `test -f 'libarchive/test/test_sparse_basic.c' || echo '$(srcdir)/'`libarchive/test/test_sparse_basic.c -libarchive/test/libarchive_test-test_tar_large.obj: libarchive/test/test_tar_large.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_tar_large.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_tar_large.Tpo -c -o libarchive/test/libarchive_test-test_tar_large.obj `if test -f 'libarchive/test/test_tar_large.c'; then $(CYGPATH_W) 'libarchive/test/test_tar_large.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_tar_large.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_tar_large.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_tar_large.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_tar_large.c' object='libarchive/test/libarchive_test-test_tar_large.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_sparse_basic.obj: libarchive/test/test_sparse_basic.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_sparse_basic.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_sparse_basic.Tpo -c -o libarchive/test/test-test_sparse_basic.obj `if test -f 'libarchive/test/test_sparse_basic.c'; then $(CYGPATH_W) 'libarchive/test/test_sparse_basic.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_sparse_basic.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_sparse_basic.Tpo libarchive/test/$(DEPDIR)/test-test_sparse_basic.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_sparse_basic.c' object='libarchive/test/test-test_sparse_basic.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_tar_large.obj `if test -f 'libarchive/test/test_tar_large.c'; then $(CYGPATH_W) 'libarchive/test/test_tar_large.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_tar_large.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_sparse_basic.obj `if test -f 'libarchive/test/test_sparse_basic.c'; then $(CYGPATH_W) 'libarchive/test/test_sparse_basic.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_sparse_basic.c'; fi` -libarchive/test/libarchive_test-test_ustar_filenames.o: libarchive/test/test_ustar_filenames.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_ustar_filenames.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_ustar_filenames.Tpo -c -o libarchive/test/libarchive_test-test_ustar_filenames.o `test -f 'libarchive/test/test_ustar_filenames.c' || echo '$(srcdir)/'`libarchive/test/test_ustar_filenames.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_ustar_filenames.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_ustar_filenames.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_ustar_filenames.c' object='libarchive/test/libarchive_test-test_ustar_filenames.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_tar_filenames.o: libarchive/test/test_tar_filenames.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_tar_filenames.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_tar_filenames.Tpo -c -o libarchive/test/test-test_tar_filenames.o `test -f 'libarchive/test/test_tar_filenames.c' || echo '$(srcdir)/'`libarchive/test/test_tar_filenames.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_tar_filenames.Tpo libarchive/test/$(DEPDIR)/test-test_tar_filenames.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_tar_filenames.c' object='libarchive/test/test-test_tar_filenames.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_ustar_filenames.o `test -f 'libarchive/test/test_ustar_filenames.c' || echo '$(srcdir)/'`libarchive/test/test_ustar_filenames.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_tar_filenames.o `test -f 'libarchive/test/test_tar_filenames.c' || echo '$(srcdir)/'`libarchive/test/test_tar_filenames.c -libarchive/test/libarchive_test-test_ustar_filenames.obj: libarchive/test/test_ustar_filenames.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_ustar_filenames.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_ustar_filenames.Tpo -c -o libarchive/test/libarchive_test-test_ustar_filenames.obj `if test -f 'libarchive/test/test_ustar_filenames.c'; then $(CYGPATH_W) 'libarchive/test/test_ustar_filenames.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_ustar_filenames.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_ustar_filenames.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_ustar_filenames.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_ustar_filenames.c' object='libarchive/test/libarchive_test-test_ustar_filenames.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_tar_filenames.obj: libarchive/test/test_tar_filenames.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_tar_filenames.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_tar_filenames.Tpo -c -o libarchive/test/test-test_tar_filenames.obj `if test -f 'libarchive/test/test_tar_filenames.c'; then $(CYGPATH_W) 'libarchive/test/test_tar_filenames.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_tar_filenames.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_tar_filenames.Tpo libarchive/test/$(DEPDIR)/test-test_tar_filenames.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_tar_filenames.c' object='libarchive/test/test-test_tar_filenames.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_ustar_filenames.obj `if test -f 'libarchive/test/test_ustar_filenames.c'; then $(CYGPATH_W) 'libarchive/test/test_ustar_filenames.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_ustar_filenames.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_tar_filenames.obj `if test -f 'libarchive/test/test_tar_filenames.c'; then $(CYGPATH_W) 'libarchive/test/test_tar_filenames.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_tar_filenames.c'; fi` -libarchive/test/libarchive_test-test_ustar_filename_encoding.o: libarchive/test/test_ustar_filename_encoding.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_ustar_filename_encoding.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_ustar_filename_encoding.Tpo -c -o libarchive/test/libarchive_test-test_ustar_filename_encoding.o `test -f 'libarchive/test/test_ustar_filename_encoding.c' || echo '$(srcdir)/'`libarchive/test/test_ustar_filename_encoding.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_ustar_filename_encoding.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_ustar_filename_encoding.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_ustar_filename_encoding.c' object='libarchive/test/libarchive_test-test_ustar_filename_encoding.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_tar_large.o: libarchive/test/test_tar_large.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_tar_large.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_tar_large.Tpo -c -o libarchive/test/test-test_tar_large.o `test -f 'libarchive/test/test_tar_large.c' || echo '$(srcdir)/'`libarchive/test/test_tar_large.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_tar_large.Tpo libarchive/test/$(DEPDIR)/test-test_tar_large.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_tar_large.c' object='libarchive/test/test-test_tar_large.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_ustar_filename_encoding.o `test -f 'libarchive/test/test_ustar_filename_encoding.c' || echo '$(srcdir)/'`libarchive/test/test_ustar_filename_encoding.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_tar_large.o `test -f 'libarchive/test/test_tar_large.c' || echo '$(srcdir)/'`libarchive/test/test_tar_large.c -libarchive/test/libarchive_test-test_ustar_filename_encoding.obj: libarchive/test/test_ustar_filename_encoding.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_ustar_filename_encoding.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_ustar_filename_encoding.Tpo -c -o libarchive/test/libarchive_test-test_ustar_filename_encoding.obj `if test -f 'libarchive/test/test_ustar_filename_encoding.c'; then $(CYGPATH_W) 'libarchive/test/test_ustar_filename_encoding.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_ustar_filename_encoding.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_ustar_filename_encoding.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_ustar_filename_encoding.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_ustar_filename_encoding.c' object='libarchive/test/libarchive_test-test_ustar_filename_encoding.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_tar_large.obj: libarchive/test/test_tar_large.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_tar_large.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_tar_large.Tpo -c -o libarchive/test/test-test_tar_large.obj `if test -f 'libarchive/test/test_tar_large.c'; then $(CYGPATH_W) 'libarchive/test/test_tar_large.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_tar_large.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_tar_large.Tpo libarchive/test/$(DEPDIR)/test-test_tar_large.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_tar_large.c' object='libarchive/test/test-test_tar_large.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_ustar_filename_encoding.obj `if test -f 'libarchive/test/test_ustar_filename_encoding.c'; then $(CYGPATH_W) 'libarchive/test/test_ustar_filename_encoding.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_ustar_filename_encoding.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_tar_large.obj `if test -f 'libarchive/test/test_tar_large.c'; then $(CYGPATH_W) 'libarchive/test/test_tar_large.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_tar_large.c'; fi` -libarchive/test/libarchive_test-test_warn_missing_hardlink_target.o: libarchive/test/test_warn_missing_hardlink_target.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_warn_missing_hardlink_target.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_warn_missing_hardlink_target.Tpo -c -o libarchive/test/libarchive_test-test_warn_missing_hardlink_target.o `test -f 'libarchive/test/test_warn_missing_hardlink_target.c' || echo '$(srcdir)/'`libarchive/test/test_warn_missing_hardlink_target.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_warn_missing_hardlink_target.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_warn_missing_hardlink_target.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_warn_missing_hardlink_target.c' object='libarchive/test/libarchive_test-test_warn_missing_hardlink_target.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_ustar_filenames.o: libarchive/test/test_ustar_filenames.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_ustar_filenames.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_ustar_filenames.Tpo -c -o libarchive/test/test-test_ustar_filenames.o `test -f 'libarchive/test/test_ustar_filenames.c' || echo '$(srcdir)/'`libarchive/test/test_ustar_filenames.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_ustar_filenames.Tpo libarchive/test/$(DEPDIR)/test-test_ustar_filenames.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_ustar_filenames.c' object='libarchive/test/test-test_ustar_filenames.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_warn_missing_hardlink_target.o `test -f 'libarchive/test/test_warn_missing_hardlink_target.c' || echo '$(srcdir)/'`libarchive/test/test_warn_missing_hardlink_target.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_ustar_filenames.o `test -f 'libarchive/test/test_ustar_filenames.c' || echo '$(srcdir)/'`libarchive/test/test_ustar_filenames.c -libarchive/test/libarchive_test-test_warn_missing_hardlink_target.obj: libarchive/test/test_warn_missing_hardlink_target.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_warn_missing_hardlink_target.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_warn_missing_hardlink_target.Tpo -c -o libarchive/test/libarchive_test-test_warn_missing_hardlink_target.obj `if test -f 'libarchive/test/test_warn_missing_hardlink_target.c'; then $(CYGPATH_W) 'libarchive/test/test_warn_missing_hardlink_target.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_warn_missing_hardlink_target.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_warn_missing_hardlink_target.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_warn_missing_hardlink_target.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_warn_missing_hardlink_target.c' object='libarchive/test/libarchive_test-test_warn_missing_hardlink_target.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_ustar_filenames.obj: libarchive/test/test_ustar_filenames.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_ustar_filenames.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_ustar_filenames.Tpo -c -o libarchive/test/test-test_ustar_filenames.obj `if test -f 'libarchive/test/test_ustar_filenames.c'; then $(CYGPATH_W) 'libarchive/test/test_ustar_filenames.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_ustar_filenames.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_ustar_filenames.Tpo libarchive/test/$(DEPDIR)/test-test_ustar_filenames.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_ustar_filenames.c' object='libarchive/test/test-test_ustar_filenames.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_warn_missing_hardlink_target.obj `if test -f 'libarchive/test/test_warn_missing_hardlink_target.c'; then $(CYGPATH_W) 'libarchive/test/test_warn_missing_hardlink_target.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_warn_missing_hardlink_target.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_ustar_filenames.obj `if test -f 'libarchive/test/test_ustar_filenames.c'; then $(CYGPATH_W) 'libarchive/test/test_ustar_filenames.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_ustar_filenames.c'; fi` -libarchive/test/libarchive_test-test_write_disk.o: libarchive/test/test_write_disk.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_disk.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_disk.Tpo -c -o libarchive/test/libarchive_test-test_write_disk.o `test -f 'libarchive/test/test_write_disk.c' || echo '$(srcdir)/'`libarchive/test/test_write_disk.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_disk.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_disk.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_disk.c' object='libarchive/test/libarchive_test-test_write_disk.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_ustar_filename_encoding.o: libarchive/test/test_ustar_filename_encoding.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_ustar_filename_encoding.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_ustar_filename_encoding.Tpo -c -o libarchive/test/test-test_ustar_filename_encoding.o `test -f 'libarchive/test/test_ustar_filename_encoding.c' || echo '$(srcdir)/'`libarchive/test/test_ustar_filename_encoding.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_ustar_filename_encoding.Tpo libarchive/test/$(DEPDIR)/test-test_ustar_filename_encoding.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_ustar_filename_encoding.c' object='libarchive/test/test-test_ustar_filename_encoding.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_disk.o `test -f 'libarchive/test/test_write_disk.c' || echo '$(srcdir)/'`libarchive/test/test_write_disk.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_ustar_filename_encoding.o `test -f 'libarchive/test/test_ustar_filename_encoding.c' || echo '$(srcdir)/'`libarchive/test/test_ustar_filename_encoding.c -libarchive/test/libarchive_test-test_write_disk.obj: libarchive/test/test_write_disk.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_disk.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_disk.Tpo -c -o libarchive/test/libarchive_test-test_write_disk.obj `if test -f 'libarchive/test/test_write_disk.c'; then $(CYGPATH_W) 'libarchive/test/test_write_disk.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_disk.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_disk.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_disk.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_disk.c' object='libarchive/test/libarchive_test-test_write_disk.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_ustar_filename_encoding.obj: libarchive/test/test_ustar_filename_encoding.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_ustar_filename_encoding.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_ustar_filename_encoding.Tpo -c -o libarchive/test/test-test_ustar_filename_encoding.obj `if test -f 'libarchive/test/test_ustar_filename_encoding.c'; then $(CYGPATH_W) 'libarchive/test/test_ustar_filename_encoding.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_ustar_filename_encoding.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_ustar_filename_encoding.Tpo libarchive/test/$(DEPDIR)/test-test_ustar_filename_encoding.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_ustar_filename_encoding.c' object='libarchive/test/test-test_ustar_filename_encoding.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_disk.obj `if test -f 'libarchive/test/test_write_disk.c'; then $(CYGPATH_W) 'libarchive/test/test_write_disk.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_disk.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_ustar_filename_encoding.obj `if test -f 'libarchive/test/test_ustar_filename_encoding.c'; then $(CYGPATH_W) 'libarchive/test/test_ustar_filename_encoding.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_ustar_filename_encoding.c'; fi` -libarchive/test/libarchive_test-test_write_disk_appledouble.o: libarchive/test/test_write_disk_appledouble.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_disk_appledouble.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_disk_appledouble.Tpo -c -o libarchive/test/libarchive_test-test_write_disk_appledouble.o `test -f 'libarchive/test/test_write_disk_appledouble.c' || echo '$(srcdir)/'`libarchive/test/test_write_disk_appledouble.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_disk_appledouble.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_disk_appledouble.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_disk_appledouble.c' object='libarchive/test/libarchive_test-test_write_disk_appledouble.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_warn_missing_hardlink_target.o: libarchive/test/test_warn_missing_hardlink_target.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_warn_missing_hardlink_target.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_warn_missing_hardlink_target.Tpo -c -o libarchive/test/test-test_warn_missing_hardlink_target.o `test -f 'libarchive/test/test_warn_missing_hardlink_target.c' || echo '$(srcdir)/'`libarchive/test/test_warn_missing_hardlink_target.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_warn_missing_hardlink_target.Tpo libarchive/test/$(DEPDIR)/test-test_warn_missing_hardlink_target.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_warn_missing_hardlink_target.c' object='libarchive/test/test-test_warn_missing_hardlink_target.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_disk_appledouble.o `test -f 'libarchive/test/test_write_disk_appledouble.c' || echo '$(srcdir)/'`libarchive/test/test_write_disk_appledouble.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_warn_missing_hardlink_target.o `test -f 'libarchive/test/test_warn_missing_hardlink_target.c' || echo '$(srcdir)/'`libarchive/test/test_warn_missing_hardlink_target.c -libarchive/test/libarchive_test-test_write_disk_appledouble.obj: libarchive/test/test_write_disk_appledouble.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_disk_appledouble.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_disk_appledouble.Tpo -c -o libarchive/test/libarchive_test-test_write_disk_appledouble.obj `if test -f 'libarchive/test/test_write_disk_appledouble.c'; then $(CYGPATH_W) 'libarchive/test/test_write_disk_appledouble.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_disk_appledouble.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_disk_appledouble.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_disk_appledouble.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_disk_appledouble.c' object='libarchive/test/libarchive_test-test_write_disk_appledouble.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_warn_missing_hardlink_target.obj: libarchive/test/test_warn_missing_hardlink_target.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_warn_missing_hardlink_target.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_warn_missing_hardlink_target.Tpo -c -o libarchive/test/test-test_warn_missing_hardlink_target.obj `if test -f 'libarchive/test/test_warn_missing_hardlink_target.c'; then $(CYGPATH_W) 'libarchive/test/test_warn_missing_hardlink_target.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_warn_missing_hardlink_target.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_warn_missing_hardlink_target.Tpo libarchive/test/$(DEPDIR)/test-test_warn_missing_hardlink_target.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_warn_missing_hardlink_target.c' object='libarchive/test/test-test_warn_missing_hardlink_target.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_disk_appledouble.obj `if test -f 'libarchive/test/test_write_disk_appledouble.c'; then $(CYGPATH_W) 'libarchive/test/test_write_disk_appledouble.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_disk_appledouble.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_warn_missing_hardlink_target.obj `if test -f 'libarchive/test/test_warn_missing_hardlink_target.c'; then $(CYGPATH_W) 'libarchive/test/test_warn_missing_hardlink_target.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_warn_missing_hardlink_target.c'; fi` -libarchive/test/libarchive_test-test_write_disk_failures.o: libarchive/test/test_write_disk_failures.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_disk_failures.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_disk_failures.Tpo -c -o libarchive/test/libarchive_test-test_write_disk_failures.o `test -f 'libarchive/test/test_write_disk_failures.c' || echo '$(srcdir)/'`libarchive/test/test_write_disk_failures.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_disk_failures.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_disk_failures.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_disk_failures.c' object='libarchive/test/libarchive_test-test_write_disk_failures.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_disk.o: libarchive/test/test_write_disk.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_disk.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_disk.Tpo -c -o libarchive/test/test-test_write_disk.o `test -f 'libarchive/test/test_write_disk.c' || echo '$(srcdir)/'`libarchive/test/test_write_disk.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_disk.Tpo libarchive/test/$(DEPDIR)/test-test_write_disk.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_disk.c' object='libarchive/test/test-test_write_disk.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_disk_failures.o `test -f 'libarchive/test/test_write_disk_failures.c' || echo '$(srcdir)/'`libarchive/test/test_write_disk_failures.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_disk.o `test -f 'libarchive/test/test_write_disk.c' || echo '$(srcdir)/'`libarchive/test/test_write_disk.c -libarchive/test/libarchive_test-test_write_disk_failures.obj: libarchive/test/test_write_disk_failures.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_disk_failures.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_disk_failures.Tpo -c -o libarchive/test/libarchive_test-test_write_disk_failures.obj `if test -f 'libarchive/test/test_write_disk_failures.c'; then $(CYGPATH_W) 'libarchive/test/test_write_disk_failures.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_disk_failures.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_disk_failures.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_disk_failures.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_disk_failures.c' object='libarchive/test/libarchive_test-test_write_disk_failures.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_disk.obj: libarchive/test/test_write_disk.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_disk.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_disk.Tpo -c -o libarchive/test/test-test_write_disk.obj `if test -f 'libarchive/test/test_write_disk.c'; then $(CYGPATH_W) 'libarchive/test/test_write_disk.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_disk.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_disk.Tpo libarchive/test/$(DEPDIR)/test-test_write_disk.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_disk.c' object='libarchive/test/test-test_write_disk.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_disk_failures.obj `if test -f 'libarchive/test/test_write_disk_failures.c'; then $(CYGPATH_W) 'libarchive/test/test_write_disk_failures.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_disk_failures.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_disk.obj `if test -f 'libarchive/test/test_write_disk.c'; then $(CYGPATH_W) 'libarchive/test/test_write_disk.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_disk.c'; fi` -libarchive/test/libarchive_test-test_write_disk_hardlink.o: libarchive/test/test_write_disk_hardlink.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_disk_hardlink.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_disk_hardlink.Tpo -c -o libarchive/test/libarchive_test-test_write_disk_hardlink.o `test -f 'libarchive/test/test_write_disk_hardlink.c' || echo '$(srcdir)/'`libarchive/test/test_write_disk_hardlink.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_disk_hardlink.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_disk_hardlink.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_disk_hardlink.c' object='libarchive/test/libarchive_test-test_write_disk_hardlink.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_disk_appledouble.o: libarchive/test/test_write_disk_appledouble.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_disk_appledouble.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_disk_appledouble.Tpo -c -o libarchive/test/test-test_write_disk_appledouble.o `test -f 'libarchive/test/test_write_disk_appledouble.c' || echo '$(srcdir)/'`libarchive/test/test_write_disk_appledouble.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_disk_appledouble.Tpo libarchive/test/$(DEPDIR)/test-test_write_disk_appledouble.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_disk_appledouble.c' object='libarchive/test/test-test_write_disk_appledouble.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_disk_hardlink.o `test -f 'libarchive/test/test_write_disk_hardlink.c' || echo '$(srcdir)/'`libarchive/test/test_write_disk_hardlink.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_disk_appledouble.o `test -f 'libarchive/test/test_write_disk_appledouble.c' || echo '$(srcdir)/'`libarchive/test/test_write_disk_appledouble.c -libarchive/test/libarchive_test-test_write_disk_hardlink.obj: libarchive/test/test_write_disk_hardlink.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_disk_hardlink.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_disk_hardlink.Tpo -c -o libarchive/test/libarchive_test-test_write_disk_hardlink.obj `if test -f 'libarchive/test/test_write_disk_hardlink.c'; then $(CYGPATH_W) 'libarchive/test/test_write_disk_hardlink.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_disk_hardlink.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_disk_hardlink.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_disk_hardlink.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_disk_hardlink.c' object='libarchive/test/libarchive_test-test_write_disk_hardlink.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_disk_appledouble.obj: libarchive/test/test_write_disk_appledouble.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_disk_appledouble.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_disk_appledouble.Tpo -c -o libarchive/test/test-test_write_disk_appledouble.obj `if test -f 'libarchive/test/test_write_disk_appledouble.c'; then $(CYGPATH_W) 'libarchive/test/test_write_disk_appledouble.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_disk_appledouble.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_disk_appledouble.Tpo libarchive/test/$(DEPDIR)/test-test_write_disk_appledouble.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_disk_appledouble.c' object='libarchive/test/test-test_write_disk_appledouble.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_disk_hardlink.obj `if test -f 'libarchive/test/test_write_disk_hardlink.c'; then $(CYGPATH_W) 'libarchive/test/test_write_disk_hardlink.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_disk_hardlink.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_disk_appledouble.obj `if test -f 'libarchive/test/test_write_disk_appledouble.c'; then $(CYGPATH_W) 'libarchive/test/test_write_disk_appledouble.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_disk_appledouble.c'; fi` -libarchive/test/libarchive_test-test_write_disk_hfs_compression.o: libarchive/test/test_write_disk_hfs_compression.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_disk_hfs_compression.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_disk_hfs_compression.Tpo -c -o libarchive/test/libarchive_test-test_write_disk_hfs_compression.o `test -f 'libarchive/test/test_write_disk_hfs_compression.c' || echo '$(srcdir)/'`libarchive/test/test_write_disk_hfs_compression.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_disk_hfs_compression.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_disk_hfs_compression.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_disk_hfs_compression.c' object='libarchive/test/libarchive_test-test_write_disk_hfs_compression.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_disk_failures.o: libarchive/test/test_write_disk_failures.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_disk_failures.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_disk_failures.Tpo -c -o libarchive/test/test-test_write_disk_failures.o `test -f 'libarchive/test/test_write_disk_failures.c' || echo '$(srcdir)/'`libarchive/test/test_write_disk_failures.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_disk_failures.Tpo libarchive/test/$(DEPDIR)/test-test_write_disk_failures.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_disk_failures.c' object='libarchive/test/test-test_write_disk_failures.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_disk_hfs_compression.o `test -f 'libarchive/test/test_write_disk_hfs_compression.c' || echo '$(srcdir)/'`libarchive/test/test_write_disk_hfs_compression.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_disk_failures.o `test -f 'libarchive/test/test_write_disk_failures.c' || echo '$(srcdir)/'`libarchive/test/test_write_disk_failures.c -libarchive/test/libarchive_test-test_write_disk_hfs_compression.obj: libarchive/test/test_write_disk_hfs_compression.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_disk_hfs_compression.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_disk_hfs_compression.Tpo -c -o libarchive/test/libarchive_test-test_write_disk_hfs_compression.obj `if test -f 'libarchive/test/test_write_disk_hfs_compression.c'; then $(CYGPATH_W) 'libarchive/test/test_write_disk_hfs_compression.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_disk_hfs_compression.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_disk_hfs_compression.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_disk_hfs_compression.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_disk_hfs_compression.c' object='libarchive/test/libarchive_test-test_write_disk_hfs_compression.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_disk_failures.obj: libarchive/test/test_write_disk_failures.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_disk_failures.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_disk_failures.Tpo -c -o libarchive/test/test-test_write_disk_failures.obj `if test -f 'libarchive/test/test_write_disk_failures.c'; then $(CYGPATH_W) 'libarchive/test/test_write_disk_failures.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_disk_failures.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_disk_failures.Tpo libarchive/test/$(DEPDIR)/test-test_write_disk_failures.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_disk_failures.c' object='libarchive/test/test-test_write_disk_failures.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_disk_hfs_compression.obj `if test -f 'libarchive/test/test_write_disk_hfs_compression.c'; then $(CYGPATH_W) 'libarchive/test/test_write_disk_hfs_compression.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_disk_hfs_compression.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_disk_failures.obj `if test -f 'libarchive/test/test_write_disk_failures.c'; then $(CYGPATH_W) 'libarchive/test/test_write_disk_failures.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_disk_failures.c'; fi` -libarchive/test/libarchive_test-test_write_disk_lookup.o: libarchive/test/test_write_disk_lookup.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_disk_lookup.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_disk_lookup.Tpo -c -o libarchive/test/libarchive_test-test_write_disk_lookup.o `test -f 'libarchive/test/test_write_disk_lookup.c' || echo '$(srcdir)/'`libarchive/test/test_write_disk_lookup.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_disk_lookup.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_disk_lookup.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_disk_lookup.c' object='libarchive/test/libarchive_test-test_write_disk_lookup.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_disk_fixup.o: libarchive/test/test_write_disk_fixup.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_disk_fixup.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_disk_fixup.Tpo -c -o libarchive/test/test-test_write_disk_fixup.o `test -f 'libarchive/test/test_write_disk_fixup.c' || echo '$(srcdir)/'`libarchive/test/test_write_disk_fixup.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_disk_fixup.Tpo libarchive/test/$(DEPDIR)/test-test_write_disk_fixup.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_disk_fixup.c' object='libarchive/test/test-test_write_disk_fixup.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_disk_lookup.o `test -f 'libarchive/test/test_write_disk_lookup.c' || echo '$(srcdir)/'`libarchive/test/test_write_disk_lookup.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_disk_fixup.o `test -f 'libarchive/test/test_write_disk_fixup.c' || echo '$(srcdir)/'`libarchive/test/test_write_disk_fixup.c -libarchive/test/libarchive_test-test_write_disk_lookup.obj: libarchive/test/test_write_disk_lookup.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_disk_lookup.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_disk_lookup.Tpo -c -o libarchive/test/libarchive_test-test_write_disk_lookup.obj `if test -f 'libarchive/test/test_write_disk_lookup.c'; then $(CYGPATH_W) 'libarchive/test/test_write_disk_lookup.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_disk_lookup.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_disk_lookup.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_disk_lookup.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_disk_lookup.c' object='libarchive/test/libarchive_test-test_write_disk_lookup.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_disk_fixup.obj: libarchive/test/test_write_disk_fixup.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_disk_fixup.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_disk_fixup.Tpo -c -o libarchive/test/test-test_write_disk_fixup.obj `if test -f 'libarchive/test/test_write_disk_fixup.c'; then $(CYGPATH_W) 'libarchive/test/test_write_disk_fixup.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_disk_fixup.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_disk_fixup.Tpo libarchive/test/$(DEPDIR)/test-test_write_disk_fixup.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_disk_fixup.c' object='libarchive/test/test-test_write_disk_fixup.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_disk_lookup.obj `if test -f 'libarchive/test/test_write_disk_lookup.c'; then $(CYGPATH_W) 'libarchive/test/test_write_disk_lookup.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_disk_lookup.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_disk_fixup.obj `if test -f 'libarchive/test/test_write_disk_fixup.c'; then $(CYGPATH_W) 'libarchive/test/test_write_disk_fixup.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_disk_fixup.c'; fi` -libarchive/test/libarchive_test-test_write_disk_mac_metadata.o: libarchive/test/test_write_disk_mac_metadata.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_disk_mac_metadata.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_disk_mac_metadata.Tpo -c -o libarchive/test/libarchive_test-test_write_disk_mac_metadata.o `test -f 'libarchive/test/test_write_disk_mac_metadata.c' || echo '$(srcdir)/'`libarchive/test/test_write_disk_mac_metadata.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_disk_mac_metadata.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_disk_mac_metadata.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_disk_mac_metadata.c' object='libarchive/test/libarchive_test-test_write_disk_mac_metadata.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_disk_hardlink.o: libarchive/test/test_write_disk_hardlink.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_disk_hardlink.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_disk_hardlink.Tpo -c -o libarchive/test/test-test_write_disk_hardlink.o `test -f 'libarchive/test/test_write_disk_hardlink.c' || echo '$(srcdir)/'`libarchive/test/test_write_disk_hardlink.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_disk_hardlink.Tpo libarchive/test/$(DEPDIR)/test-test_write_disk_hardlink.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_disk_hardlink.c' object='libarchive/test/test-test_write_disk_hardlink.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_disk_mac_metadata.o `test -f 'libarchive/test/test_write_disk_mac_metadata.c' || echo '$(srcdir)/'`libarchive/test/test_write_disk_mac_metadata.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_disk_hardlink.o `test -f 'libarchive/test/test_write_disk_hardlink.c' || echo '$(srcdir)/'`libarchive/test/test_write_disk_hardlink.c -libarchive/test/libarchive_test-test_write_disk_mac_metadata.obj: libarchive/test/test_write_disk_mac_metadata.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_disk_mac_metadata.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_disk_mac_metadata.Tpo -c -o libarchive/test/libarchive_test-test_write_disk_mac_metadata.obj `if test -f 'libarchive/test/test_write_disk_mac_metadata.c'; then $(CYGPATH_W) 'libarchive/test/test_write_disk_mac_metadata.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_disk_mac_metadata.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_disk_mac_metadata.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_disk_mac_metadata.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_disk_mac_metadata.c' object='libarchive/test/libarchive_test-test_write_disk_mac_metadata.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_disk_hardlink.obj: libarchive/test/test_write_disk_hardlink.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_disk_hardlink.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_disk_hardlink.Tpo -c -o libarchive/test/test-test_write_disk_hardlink.obj `if test -f 'libarchive/test/test_write_disk_hardlink.c'; then $(CYGPATH_W) 'libarchive/test/test_write_disk_hardlink.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_disk_hardlink.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_disk_hardlink.Tpo libarchive/test/$(DEPDIR)/test-test_write_disk_hardlink.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_disk_hardlink.c' object='libarchive/test/test-test_write_disk_hardlink.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_disk_mac_metadata.obj `if test -f 'libarchive/test/test_write_disk_mac_metadata.c'; then $(CYGPATH_W) 'libarchive/test/test_write_disk_mac_metadata.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_disk_mac_metadata.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_disk_hardlink.obj `if test -f 'libarchive/test/test_write_disk_hardlink.c'; then $(CYGPATH_W) 'libarchive/test/test_write_disk_hardlink.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_disk_hardlink.c'; fi` -libarchive/test/libarchive_test-test_write_disk_no_hfs_compression.o: libarchive/test/test_write_disk_no_hfs_compression.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_disk_no_hfs_compression.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_disk_no_hfs_compression.Tpo -c -o libarchive/test/libarchive_test-test_write_disk_no_hfs_compression.o `test -f 'libarchive/test/test_write_disk_no_hfs_compression.c' || echo '$(srcdir)/'`libarchive/test/test_write_disk_no_hfs_compression.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_disk_no_hfs_compression.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_disk_no_hfs_compression.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_disk_no_hfs_compression.c' object='libarchive/test/libarchive_test-test_write_disk_no_hfs_compression.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_disk_hfs_compression.o: libarchive/test/test_write_disk_hfs_compression.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_disk_hfs_compression.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_disk_hfs_compression.Tpo -c -o libarchive/test/test-test_write_disk_hfs_compression.o `test -f 'libarchive/test/test_write_disk_hfs_compression.c' || echo '$(srcdir)/'`libarchive/test/test_write_disk_hfs_compression.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_disk_hfs_compression.Tpo libarchive/test/$(DEPDIR)/test-test_write_disk_hfs_compression.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_disk_hfs_compression.c' object='libarchive/test/test-test_write_disk_hfs_compression.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_disk_no_hfs_compression.o `test -f 'libarchive/test/test_write_disk_no_hfs_compression.c' || echo '$(srcdir)/'`libarchive/test/test_write_disk_no_hfs_compression.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_disk_hfs_compression.o `test -f 'libarchive/test/test_write_disk_hfs_compression.c' || echo '$(srcdir)/'`libarchive/test/test_write_disk_hfs_compression.c -libarchive/test/libarchive_test-test_write_disk_no_hfs_compression.obj: libarchive/test/test_write_disk_no_hfs_compression.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_disk_no_hfs_compression.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_disk_no_hfs_compression.Tpo -c -o libarchive/test/libarchive_test-test_write_disk_no_hfs_compression.obj `if test -f 'libarchive/test/test_write_disk_no_hfs_compression.c'; then $(CYGPATH_W) 'libarchive/test/test_write_disk_no_hfs_compression.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_disk_no_hfs_compression.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_disk_no_hfs_compression.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_disk_no_hfs_compression.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_disk_no_hfs_compression.c' object='libarchive/test/libarchive_test-test_write_disk_no_hfs_compression.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_disk_hfs_compression.obj: libarchive/test/test_write_disk_hfs_compression.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_disk_hfs_compression.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_disk_hfs_compression.Tpo -c -o libarchive/test/test-test_write_disk_hfs_compression.obj `if test -f 'libarchive/test/test_write_disk_hfs_compression.c'; then $(CYGPATH_W) 'libarchive/test/test_write_disk_hfs_compression.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_disk_hfs_compression.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_disk_hfs_compression.Tpo libarchive/test/$(DEPDIR)/test-test_write_disk_hfs_compression.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_disk_hfs_compression.c' object='libarchive/test/test-test_write_disk_hfs_compression.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_disk_no_hfs_compression.obj `if test -f 'libarchive/test/test_write_disk_no_hfs_compression.c'; then $(CYGPATH_W) 'libarchive/test/test_write_disk_no_hfs_compression.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_disk_no_hfs_compression.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_disk_hfs_compression.obj `if test -f 'libarchive/test/test_write_disk_hfs_compression.c'; then $(CYGPATH_W) 'libarchive/test/test_write_disk_hfs_compression.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_disk_hfs_compression.c'; fi` -libarchive/test/libarchive_test-test_write_disk_perms.o: libarchive/test/test_write_disk_perms.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_disk_perms.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_disk_perms.Tpo -c -o libarchive/test/libarchive_test-test_write_disk_perms.o `test -f 'libarchive/test/test_write_disk_perms.c' || echo '$(srcdir)/'`libarchive/test/test_write_disk_perms.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_disk_perms.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_disk_perms.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_disk_perms.c' object='libarchive/test/libarchive_test-test_write_disk_perms.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_disk_lookup.o: libarchive/test/test_write_disk_lookup.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_disk_lookup.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_disk_lookup.Tpo -c -o libarchive/test/test-test_write_disk_lookup.o `test -f 'libarchive/test/test_write_disk_lookup.c' || echo '$(srcdir)/'`libarchive/test/test_write_disk_lookup.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_disk_lookup.Tpo libarchive/test/$(DEPDIR)/test-test_write_disk_lookup.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_disk_lookup.c' object='libarchive/test/test-test_write_disk_lookup.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_disk_perms.o `test -f 'libarchive/test/test_write_disk_perms.c' || echo '$(srcdir)/'`libarchive/test/test_write_disk_perms.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_disk_lookup.o `test -f 'libarchive/test/test_write_disk_lookup.c' || echo '$(srcdir)/'`libarchive/test/test_write_disk_lookup.c -libarchive/test/libarchive_test-test_write_disk_perms.obj: libarchive/test/test_write_disk_perms.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_disk_perms.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_disk_perms.Tpo -c -o libarchive/test/libarchive_test-test_write_disk_perms.obj `if test -f 'libarchive/test/test_write_disk_perms.c'; then $(CYGPATH_W) 'libarchive/test/test_write_disk_perms.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_disk_perms.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_disk_perms.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_disk_perms.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_disk_perms.c' object='libarchive/test/libarchive_test-test_write_disk_perms.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_disk_lookup.obj: libarchive/test/test_write_disk_lookup.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_disk_lookup.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_disk_lookup.Tpo -c -o libarchive/test/test-test_write_disk_lookup.obj `if test -f 'libarchive/test/test_write_disk_lookup.c'; then $(CYGPATH_W) 'libarchive/test/test_write_disk_lookup.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_disk_lookup.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_disk_lookup.Tpo libarchive/test/$(DEPDIR)/test-test_write_disk_lookup.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_disk_lookup.c' object='libarchive/test/test-test_write_disk_lookup.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_disk_perms.obj `if test -f 'libarchive/test/test_write_disk_perms.c'; then $(CYGPATH_W) 'libarchive/test/test_write_disk_perms.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_disk_perms.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_disk_lookup.obj `if test -f 'libarchive/test/test_write_disk_lookup.c'; then $(CYGPATH_W) 'libarchive/test/test_write_disk_lookup.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_disk_lookup.c'; fi` -libarchive/test/libarchive_test-test_write_disk_secure.o: libarchive/test/test_write_disk_secure.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_disk_secure.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_disk_secure.Tpo -c -o libarchive/test/libarchive_test-test_write_disk_secure.o `test -f 'libarchive/test/test_write_disk_secure.c' || echo '$(srcdir)/'`libarchive/test/test_write_disk_secure.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_disk_secure.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_disk_secure.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_disk_secure.c' object='libarchive/test/libarchive_test-test_write_disk_secure.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_disk_mac_metadata.o: libarchive/test/test_write_disk_mac_metadata.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_disk_mac_metadata.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_disk_mac_metadata.Tpo -c -o libarchive/test/test-test_write_disk_mac_metadata.o `test -f 'libarchive/test/test_write_disk_mac_metadata.c' || echo '$(srcdir)/'`libarchive/test/test_write_disk_mac_metadata.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_disk_mac_metadata.Tpo libarchive/test/$(DEPDIR)/test-test_write_disk_mac_metadata.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_disk_mac_metadata.c' object='libarchive/test/test-test_write_disk_mac_metadata.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_disk_secure.o `test -f 'libarchive/test/test_write_disk_secure.c' || echo '$(srcdir)/'`libarchive/test/test_write_disk_secure.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_disk_mac_metadata.o `test -f 'libarchive/test/test_write_disk_mac_metadata.c' || echo '$(srcdir)/'`libarchive/test/test_write_disk_mac_metadata.c -libarchive/test/libarchive_test-test_write_disk_secure.obj: libarchive/test/test_write_disk_secure.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_disk_secure.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_disk_secure.Tpo -c -o libarchive/test/libarchive_test-test_write_disk_secure.obj `if test -f 'libarchive/test/test_write_disk_secure.c'; then $(CYGPATH_W) 'libarchive/test/test_write_disk_secure.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_disk_secure.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_disk_secure.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_disk_secure.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_disk_secure.c' object='libarchive/test/libarchive_test-test_write_disk_secure.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_disk_mac_metadata.obj: libarchive/test/test_write_disk_mac_metadata.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_disk_mac_metadata.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_disk_mac_metadata.Tpo -c -o libarchive/test/test-test_write_disk_mac_metadata.obj `if test -f 'libarchive/test/test_write_disk_mac_metadata.c'; then $(CYGPATH_W) 'libarchive/test/test_write_disk_mac_metadata.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_disk_mac_metadata.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_disk_mac_metadata.Tpo libarchive/test/$(DEPDIR)/test-test_write_disk_mac_metadata.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_disk_mac_metadata.c' object='libarchive/test/test-test_write_disk_mac_metadata.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_disk_secure.obj `if test -f 'libarchive/test/test_write_disk_secure.c'; then $(CYGPATH_W) 'libarchive/test/test_write_disk_secure.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_disk_secure.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_disk_mac_metadata.obj `if test -f 'libarchive/test/test_write_disk_mac_metadata.c'; then $(CYGPATH_W) 'libarchive/test/test_write_disk_mac_metadata.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_disk_mac_metadata.c'; fi` -libarchive/test/libarchive_test-test_write_disk_secure744.o: libarchive/test/test_write_disk_secure744.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_disk_secure744.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_disk_secure744.Tpo -c -o libarchive/test/libarchive_test-test_write_disk_secure744.o `test -f 'libarchive/test/test_write_disk_secure744.c' || echo '$(srcdir)/'`libarchive/test/test_write_disk_secure744.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_disk_secure744.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_disk_secure744.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_disk_secure744.c' object='libarchive/test/libarchive_test-test_write_disk_secure744.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_disk_no_hfs_compression.o: libarchive/test/test_write_disk_no_hfs_compression.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_disk_no_hfs_compression.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_disk_no_hfs_compression.Tpo -c -o libarchive/test/test-test_write_disk_no_hfs_compression.o `test -f 'libarchive/test/test_write_disk_no_hfs_compression.c' || echo '$(srcdir)/'`libarchive/test/test_write_disk_no_hfs_compression.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_disk_no_hfs_compression.Tpo libarchive/test/$(DEPDIR)/test-test_write_disk_no_hfs_compression.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_disk_no_hfs_compression.c' object='libarchive/test/test-test_write_disk_no_hfs_compression.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_disk_secure744.o `test -f 'libarchive/test/test_write_disk_secure744.c' || echo '$(srcdir)/'`libarchive/test/test_write_disk_secure744.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_disk_no_hfs_compression.o `test -f 'libarchive/test/test_write_disk_no_hfs_compression.c' || echo '$(srcdir)/'`libarchive/test/test_write_disk_no_hfs_compression.c -libarchive/test/libarchive_test-test_write_disk_secure744.obj: libarchive/test/test_write_disk_secure744.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_disk_secure744.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_disk_secure744.Tpo -c -o libarchive/test/libarchive_test-test_write_disk_secure744.obj `if test -f 'libarchive/test/test_write_disk_secure744.c'; then $(CYGPATH_W) 'libarchive/test/test_write_disk_secure744.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_disk_secure744.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_disk_secure744.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_disk_secure744.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_disk_secure744.c' object='libarchive/test/libarchive_test-test_write_disk_secure744.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_disk_no_hfs_compression.obj: libarchive/test/test_write_disk_no_hfs_compression.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_disk_no_hfs_compression.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_disk_no_hfs_compression.Tpo -c -o libarchive/test/test-test_write_disk_no_hfs_compression.obj `if test -f 'libarchive/test/test_write_disk_no_hfs_compression.c'; then $(CYGPATH_W) 'libarchive/test/test_write_disk_no_hfs_compression.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_disk_no_hfs_compression.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_disk_no_hfs_compression.Tpo libarchive/test/$(DEPDIR)/test-test_write_disk_no_hfs_compression.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_disk_no_hfs_compression.c' object='libarchive/test/test-test_write_disk_no_hfs_compression.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_disk_secure744.obj `if test -f 'libarchive/test/test_write_disk_secure744.c'; then $(CYGPATH_W) 'libarchive/test/test_write_disk_secure744.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_disk_secure744.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_disk_no_hfs_compression.obj `if test -f 'libarchive/test/test_write_disk_no_hfs_compression.c'; then $(CYGPATH_W) 'libarchive/test/test_write_disk_no_hfs_compression.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_disk_no_hfs_compression.c'; fi` -libarchive/test/libarchive_test-test_write_disk_secure745.o: libarchive/test/test_write_disk_secure745.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_disk_secure745.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_disk_secure745.Tpo -c -o libarchive/test/libarchive_test-test_write_disk_secure745.o `test -f 'libarchive/test/test_write_disk_secure745.c' || echo '$(srcdir)/'`libarchive/test/test_write_disk_secure745.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_disk_secure745.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_disk_secure745.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_disk_secure745.c' object='libarchive/test/libarchive_test-test_write_disk_secure745.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_disk_perms.o: libarchive/test/test_write_disk_perms.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_disk_perms.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_disk_perms.Tpo -c -o libarchive/test/test-test_write_disk_perms.o `test -f 'libarchive/test/test_write_disk_perms.c' || echo '$(srcdir)/'`libarchive/test/test_write_disk_perms.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_disk_perms.Tpo libarchive/test/$(DEPDIR)/test-test_write_disk_perms.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_disk_perms.c' object='libarchive/test/test-test_write_disk_perms.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_disk_secure745.o `test -f 'libarchive/test/test_write_disk_secure745.c' || echo '$(srcdir)/'`libarchive/test/test_write_disk_secure745.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_disk_perms.o `test -f 'libarchive/test/test_write_disk_perms.c' || echo '$(srcdir)/'`libarchive/test/test_write_disk_perms.c -libarchive/test/libarchive_test-test_write_disk_secure745.obj: libarchive/test/test_write_disk_secure745.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_disk_secure745.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_disk_secure745.Tpo -c -o libarchive/test/libarchive_test-test_write_disk_secure745.obj `if test -f 'libarchive/test/test_write_disk_secure745.c'; then $(CYGPATH_W) 'libarchive/test/test_write_disk_secure745.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_disk_secure745.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_disk_secure745.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_disk_secure745.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_disk_secure745.c' object='libarchive/test/libarchive_test-test_write_disk_secure745.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_disk_perms.obj: libarchive/test/test_write_disk_perms.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_disk_perms.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_disk_perms.Tpo -c -o libarchive/test/test-test_write_disk_perms.obj `if test -f 'libarchive/test/test_write_disk_perms.c'; then $(CYGPATH_W) 'libarchive/test/test_write_disk_perms.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_disk_perms.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_disk_perms.Tpo libarchive/test/$(DEPDIR)/test-test_write_disk_perms.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_disk_perms.c' object='libarchive/test/test-test_write_disk_perms.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_disk_secure745.obj `if test -f 'libarchive/test/test_write_disk_secure745.c'; then $(CYGPATH_W) 'libarchive/test/test_write_disk_secure745.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_disk_secure745.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_disk_perms.obj `if test -f 'libarchive/test/test_write_disk_perms.c'; then $(CYGPATH_W) 'libarchive/test/test_write_disk_perms.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_disk_perms.c'; fi` -libarchive/test/libarchive_test-test_write_disk_secure746.o: libarchive/test/test_write_disk_secure746.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_disk_secure746.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_disk_secure746.Tpo -c -o libarchive/test/libarchive_test-test_write_disk_secure746.o `test -f 'libarchive/test/test_write_disk_secure746.c' || echo '$(srcdir)/'`libarchive/test/test_write_disk_secure746.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_disk_secure746.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_disk_secure746.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_disk_secure746.c' object='libarchive/test/libarchive_test-test_write_disk_secure746.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_disk_secure.o: libarchive/test/test_write_disk_secure.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_disk_secure.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_disk_secure.Tpo -c -o libarchive/test/test-test_write_disk_secure.o `test -f 'libarchive/test/test_write_disk_secure.c' || echo '$(srcdir)/'`libarchive/test/test_write_disk_secure.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_disk_secure.Tpo libarchive/test/$(DEPDIR)/test-test_write_disk_secure.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_disk_secure.c' object='libarchive/test/test-test_write_disk_secure.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_disk_secure746.o `test -f 'libarchive/test/test_write_disk_secure746.c' || echo '$(srcdir)/'`libarchive/test/test_write_disk_secure746.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_disk_secure.o `test -f 'libarchive/test/test_write_disk_secure.c' || echo '$(srcdir)/'`libarchive/test/test_write_disk_secure.c -libarchive/test/libarchive_test-test_write_disk_secure746.obj: libarchive/test/test_write_disk_secure746.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_disk_secure746.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_disk_secure746.Tpo -c -o libarchive/test/libarchive_test-test_write_disk_secure746.obj `if test -f 'libarchive/test/test_write_disk_secure746.c'; then $(CYGPATH_W) 'libarchive/test/test_write_disk_secure746.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_disk_secure746.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_disk_secure746.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_disk_secure746.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_disk_secure746.c' object='libarchive/test/libarchive_test-test_write_disk_secure746.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_disk_secure.obj: libarchive/test/test_write_disk_secure.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_disk_secure.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_disk_secure.Tpo -c -o libarchive/test/test-test_write_disk_secure.obj `if test -f 'libarchive/test/test_write_disk_secure.c'; then $(CYGPATH_W) 'libarchive/test/test_write_disk_secure.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_disk_secure.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_disk_secure.Tpo libarchive/test/$(DEPDIR)/test-test_write_disk_secure.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_disk_secure.c' object='libarchive/test/test-test_write_disk_secure.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_disk_secure746.obj `if test -f 'libarchive/test/test_write_disk_secure746.c'; then $(CYGPATH_W) 'libarchive/test/test_write_disk_secure746.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_disk_secure746.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_disk_secure.obj `if test -f 'libarchive/test/test_write_disk_secure.c'; then $(CYGPATH_W) 'libarchive/test/test_write_disk_secure.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_disk_secure.c'; fi` -libarchive/test/libarchive_test-test_write_disk_sparse.o: libarchive/test/test_write_disk_sparse.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_disk_sparse.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_disk_sparse.Tpo -c -o libarchive/test/libarchive_test-test_write_disk_sparse.o `test -f 'libarchive/test/test_write_disk_sparse.c' || echo '$(srcdir)/'`libarchive/test/test_write_disk_sparse.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_disk_sparse.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_disk_sparse.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_disk_sparse.c' object='libarchive/test/libarchive_test-test_write_disk_sparse.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_disk_secure744.o: libarchive/test/test_write_disk_secure744.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_disk_secure744.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_disk_secure744.Tpo -c -o libarchive/test/test-test_write_disk_secure744.o `test -f 'libarchive/test/test_write_disk_secure744.c' || echo '$(srcdir)/'`libarchive/test/test_write_disk_secure744.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_disk_secure744.Tpo libarchive/test/$(DEPDIR)/test-test_write_disk_secure744.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_disk_secure744.c' object='libarchive/test/test-test_write_disk_secure744.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_disk_sparse.o `test -f 'libarchive/test/test_write_disk_sparse.c' || echo '$(srcdir)/'`libarchive/test/test_write_disk_sparse.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_disk_secure744.o `test -f 'libarchive/test/test_write_disk_secure744.c' || echo '$(srcdir)/'`libarchive/test/test_write_disk_secure744.c -libarchive/test/libarchive_test-test_write_disk_sparse.obj: libarchive/test/test_write_disk_sparse.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_disk_sparse.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_disk_sparse.Tpo -c -o libarchive/test/libarchive_test-test_write_disk_sparse.obj `if test -f 'libarchive/test/test_write_disk_sparse.c'; then $(CYGPATH_W) 'libarchive/test/test_write_disk_sparse.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_disk_sparse.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_disk_sparse.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_disk_sparse.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_disk_sparse.c' object='libarchive/test/libarchive_test-test_write_disk_sparse.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_disk_secure744.obj: libarchive/test/test_write_disk_secure744.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_disk_secure744.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_disk_secure744.Tpo -c -o libarchive/test/test-test_write_disk_secure744.obj `if test -f 'libarchive/test/test_write_disk_secure744.c'; then $(CYGPATH_W) 'libarchive/test/test_write_disk_secure744.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_disk_secure744.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_disk_secure744.Tpo libarchive/test/$(DEPDIR)/test-test_write_disk_secure744.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_disk_secure744.c' object='libarchive/test/test-test_write_disk_secure744.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_disk_sparse.obj `if test -f 'libarchive/test/test_write_disk_sparse.c'; then $(CYGPATH_W) 'libarchive/test/test_write_disk_sparse.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_disk_sparse.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_disk_secure744.obj `if test -f 'libarchive/test/test_write_disk_secure744.c'; then $(CYGPATH_W) 'libarchive/test/test_write_disk_secure744.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_disk_secure744.c'; fi` -libarchive/test/libarchive_test-test_write_disk_symlink.o: libarchive/test/test_write_disk_symlink.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_disk_symlink.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_disk_symlink.Tpo -c -o libarchive/test/libarchive_test-test_write_disk_symlink.o `test -f 'libarchive/test/test_write_disk_symlink.c' || echo '$(srcdir)/'`libarchive/test/test_write_disk_symlink.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_disk_symlink.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_disk_symlink.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_disk_symlink.c' object='libarchive/test/libarchive_test-test_write_disk_symlink.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_disk_secure745.o: libarchive/test/test_write_disk_secure745.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_disk_secure745.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_disk_secure745.Tpo -c -o libarchive/test/test-test_write_disk_secure745.o `test -f 'libarchive/test/test_write_disk_secure745.c' || echo '$(srcdir)/'`libarchive/test/test_write_disk_secure745.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_disk_secure745.Tpo libarchive/test/$(DEPDIR)/test-test_write_disk_secure745.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_disk_secure745.c' object='libarchive/test/test-test_write_disk_secure745.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_disk_symlink.o `test -f 'libarchive/test/test_write_disk_symlink.c' || echo '$(srcdir)/'`libarchive/test/test_write_disk_symlink.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_disk_secure745.o `test -f 'libarchive/test/test_write_disk_secure745.c' || echo '$(srcdir)/'`libarchive/test/test_write_disk_secure745.c -libarchive/test/libarchive_test-test_write_disk_symlink.obj: libarchive/test/test_write_disk_symlink.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_disk_symlink.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_disk_symlink.Tpo -c -o libarchive/test/libarchive_test-test_write_disk_symlink.obj `if test -f 'libarchive/test/test_write_disk_symlink.c'; then $(CYGPATH_W) 'libarchive/test/test_write_disk_symlink.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_disk_symlink.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_disk_symlink.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_disk_symlink.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_disk_symlink.c' object='libarchive/test/libarchive_test-test_write_disk_symlink.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_disk_secure745.obj: libarchive/test/test_write_disk_secure745.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_disk_secure745.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_disk_secure745.Tpo -c -o libarchive/test/test-test_write_disk_secure745.obj `if test -f 'libarchive/test/test_write_disk_secure745.c'; then $(CYGPATH_W) 'libarchive/test/test_write_disk_secure745.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_disk_secure745.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_disk_secure745.Tpo libarchive/test/$(DEPDIR)/test-test_write_disk_secure745.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_disk_secure745.c' object='libarchive/test/test-test_write_disk_secure745.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_disk_symlink.obj `if test -f 'libarchive/test/test_write_disk_symlink.c'; then $(CYGPATH_W) 'libarchive/test/test_write_disk_symlink.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_disk_symlink.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_disk_secure745.obj `if test -f 'libarchive/test/test_write_disk_secure745.c'; then $(CYGPATH_W) 'libarchive/test/test_write_disk_secure745.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_disk_secure745.c'; fi` -libarchive/test/libarchive_test-test_write_disk_times.o: libarchive/test/test_write_disk_times.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_disk_times.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_disk_times.Tpo -c -o libarchive/test/libarchive_test-test_write_disk_times.o `test -f 'libarchive/test/test_write_disk_times.c' || echo '$(srcdir)/'`libarchive/test/test_write_disk_times.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_disk_times.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_disk_times.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_disk_times.c' object='libarchive/test/libarchive_test-test_write_disk_times.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_disk_secure746.o: libarchive/test/test_write_disk_secure746.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_disk_secure746.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_disk_secure746.Tpo -c -o libarchive/test/test-test_write_disk_secure746.o `test -f 'libarchive/test/test_write_disk_secure746.c' || echo '$(srcdir)/'`libarchive/test/test_write_disk_secure746.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_disk_secure746.Tpo libarchive/test/$(DEPDIR)/test-test_write_disk_secure746.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_disk_secure746.c' object='libarchive/test/test-test_write_disk_secure746.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_disk_times.o `test -f 'libarchive/test/test_write_disk_times.c' || echo '$(srcdir)/'`libarchive/test/test_write_disk_times.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_disk_secure746.o `test -f 'libarchive/test/test_write_disk_secure746.c' || echo '$(srcdir)/'`libarchive/test/test_write_disk_secure746.c -libarchive/test/libarchive_test-test_write_disk_times.obj: libarchive/test/test_write_disk_times.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_disk_times.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_disk_times.Tpo -c -o libarchive/test/libarchive_test-test_write_disk_times.obj `if test -f 'libarchive/test/test_write_disk_times.c'; then $(CYGPATH_W) 'libarchive/test/test_write_disk_times.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_disk_times.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_disk_times.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_disk_times.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_disk_times.c' object='libarchive/test/libarchive_test-test_write_disk_times.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_disk_secure746.obj: libarchive/test/test_write_disk_secure746.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_disk_secure746.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_disk_secure746.Tpo -c -o libarchive/test/test-test_write_disk_secure746.obj `if test -f 'libarchive/test/test_write_disk_secure746.c'; then $(CYGPATH_W) 'libarchive/test/test_write_disk_secure746.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_disk_secure746.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_disk_secure746.Tpo libarchive/test/$(DEPDIR)/test-test_write_disk_secure746.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_disk_secure746.c' object='libarchive/test/test-test_write_disk_secure746.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_disk_times.obj `if test -f 'libarchive/test/test_write_disk_times.c'; then $(CYGPATH_W) 'libarchive/test/test_write_disk_times.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_disk_times.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_disk_secure746.obj `if test -f 'libarchive/test/test_write_disk_secure746.c'; then $(CYGPATH_W) 'libarchive/test/test_write_disk_secure746.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_disk_secure746.c'; fi` -libarchive/test/libarchive_test-test_write_filter_b64encode.o: libarchive/test/test_write_filter_b64encode.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_filter_b64encode.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_filter_b64encode.Tpo -c -o libarchive/test/libarchive_test-test_write_filter_b64encode.o `test -f 'libarchive/test/test_write_filter_b64encode.c' || echo '$(srcdir)/'`libarchive/test/test_write_filter_b64encode.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_filter_b64encode.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_filter_b64encode.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_filter_b64encode.c' object='libarchive/test/libarchive_test-test_write_filter_b64encode.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_disk_sparse.o: libarchive/test/test_write_disk_sparse.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_disk_sparse.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_disk_sparse.Tpo -c -o libarchive/test/test-test_write_disk_sparse.o `test -f 'libarchive/test/test_write_disk_sparse.c' || echo '$(srcdir)/'`libarchive/test/test_write_disk_sparse.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_disk_sparse.Tpo libarchive/test/$(DEPDIR)/test-test_write_disk_sparse.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_disk_sparse.c' object='libarchive/test/test-test_write_disk_sparse.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_filter_b64encode.o `test -f 'libarchive/test/test_write_filter_b64encode.c' || echo '$(srcdir)/'`libarchive/test/test_write_filter_b64encode.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_disk_sparse.o `test -f 'libarchive/test/test_write_disk_sparse.c' || echo '$(srcdir)/'`libarchive/test/test_write_disk_sparse.c -libarchive/test/libarchive_test-test_write_filter_b64encode.obj: libarchive/test/test_write_filter_b64encode.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_filter_b64encode.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_filter_b64encode.Tpo -c -o libarchive/test/libarchive_test-test_write_filter_b64encode.obj `if test -f 'libarchive/test/test_write_filter_b64encode.c'; then $(CYGPATH_W) 'libarchive/test/test_write_filter_b64encode.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_filter_b64encode.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_filter_b64encode.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_filter_b64encode.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_filter_b64encode.c' object='libarchive/test/libarchive_test-test_write_filter_b64encode.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_disk_sparse.obj: libarchive/test/test_write_disk_sparse.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_disk_sparse.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_disk_sparse.Tpo -c -o libarchive/test/test-test_write_disk_sparse.obj `if test -f 'libarchive/test/test_write_disk_sparse.c'; then $(CYGPATH_W) 'libarchive/test/test_write_disk_sparse.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_disk_sparse.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_disk_sparse.Tpo libarchive/test/$(DEPDIR)/test-test_write_disk_sparse.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_disk_sparse.c' object='libarchive/test/test-test_write_disk_sparse.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_filter_b64encode.obj `if test -f 'libarchive/test/test_write_filter_b64encode.c'; then $(CYGPATH_W) 'libarchive/test/test_write_filter_b64encode.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_filter_b64encode.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_disk_sparse.obj `if test -f 'libarchive/test/test_write_disk_sparse.c'; then $(CYGPATH_W) 'libarchive/test/test_write_disk_sparse.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_disk_sparse.c'; fi` -libarchive/test/libarchive_test-test_write_filter_bzip2.o: libarchive/test/test_write_filter_bzip2.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_filter_bzip2.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_filter_bzip2.Tpo -c -o libarchive/test/libarchive_test-test_write_filter_bzip2.o `test -f 'libarchive/test/test_write_filter_bzip2.c' || echo '$(srcdir)/'`libarchive/test/test_write_filter_bzip2.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_filter_bzip2.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_filter_bzip2.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_filter_bzip2.c' object='libarchive/test/libarchive_test-test_write_filter_bzip2.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_disk_symlink.o: libarchive/test/test_write_disk_symlink.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_disk_symlink.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_disk_symlink.Tpo -c -o libarchive/test/test-test_write_disk_symlink.o `test -f 'libarchive/test/test_write_disk_symlink.c' || echo '$(srcdir)/'`libarchive/test/test_write_disk_symlink.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_disk_symlink.Tpo libarchive/test/$(DEPDIR)/test-test_write_disk_symlink.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_disk_symlink.c' object='libarchive/test/test-test_write_disk_symlink.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_filter_bzip2.o `test -f 'libarchive/test/test_write_filter_bzip2.c' || echo '$(srcdir)/'`libarchive/test/test_write_filter_bzip2.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_disk_symlink.o `test -f 'libarchive/test/test_write_disk_symlink.c' || echo '$(srcdir)/'`libarchive/test/test_write_disk_symlink.c -libarchive/test/libarchive_test-test_write_filter_bzip2.obj: libarchive/test/test_write_filter_bzip2.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_filter_bzip2.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_filter_bzip2.Tpo -c -o libarchive/test/libarchive_test-test_write_filter_bzip2.obj `if test -f 'libarchive/test/test_write_filter_bzip2.c'; then $(CYGPATH_W) 'libarchive/test/test_write_filter_bzip2.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_filter_bzip2.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_filter_bzip2.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_filter_bzip2.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_filter_bzip2.c' object='libarchive/test/libarchive_test-test_write_filter_bzip2.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_disk_symlink.obj: libarchive/test/test_write_disk_symlink.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_disk_symlink.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_disk_symlink.Tpo -c -o libarchive/test/test-test_write_disk_symlink.obj `if test -f 'libarchive/test/test_write_disk_symlink.c'; then $(CYGPATH_W) 'libarchive/test/test_write_disk_symlink.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_disk_symlink.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_disk_symlink.Tpo libarchive/test/$(DEPDIR)/test-test_write_disk_symlink.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_disk_symlink.c' object='libarchive/test/test-test_write_disk_symlink.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_filter_bzip2.obj `if test -f 'libarchive/test/test_write_filter_bzip2.c'; then $(CYGPATH_W) 'libarchive/test/test_write_filter_bzip2.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_filter_bzip2.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_disk_symlink.obj `if test -f 'libarchive/test/test_write_disk_symlink.c'; then $(CYGPATH_W) 'libarchive/test/test_write_disk_symlink.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_disk_symlink.c'; fi` -libarchive/test/libarchive_test-test_write_filter_compress.o: libarchive/test/test_write_filter_compress.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_filter_compress.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_filter_compress.Tpo -c -o libarchive/test/libarchive_test-test_write_filter_compress.o `test -f 'libarchive/test/test_write_filter_compress.c' || echo '$(srcdir)/'`libarchive/test/test_write_filter_compress.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_filter_compress.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_filter_compress.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_filter_compress.c' object='libarchive/test/libarchive_test-test_write_filter_compress.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_disk_times.o: libarchive/test/test_write_disk_times.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_disk_times.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_disk_times.Tpo -c -o libarchive/test/test-test_write_disk_times.o `test -f 'libarchive/test/test_write_disk_times.c' || echo '$(srcdir)/'`libarchive/test/test_write_disk_times.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_disk_times.Tpo libarchive/test/$(DEPDIR)/test-test_write_disk_times.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_disk_times.c' object='libarchive/test/test-test_write_disk_times.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_filter_compress.o `test -f 'libarchive/test/test_write_filter_compress.c' || echo '$(srcdir)/'`libarchive/test/test_write_filter_compress.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_disk_times.o `test -f 'libarchive/test/test_write_disk_times.c' || echo '$(srcdir)/'`libarchive/test/test_write_disk_times.c -libarchive/test/libarchive_test-test_write_filter_compress.obj: libarchive/test/test_write_filter_compress.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_filter_compress.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_filter_compress.Tpo -c -o libarchive/test/libarchive_test-test_write_filter_compress.obj `if test -f 'libarchive/test/test_write_filter_compress.c'; then $(CYGPATH_W) 'libarchive/test/test_write_filter_compress.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_filter_compress.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_filter_compress.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_filter_compress.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_filter_compress.c' object='libarchive/test/libarchive_test-test_write_filter_compress.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_disk_times.obj: libarchive/test/test_write_disk_times.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_disk_times.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_disk_times.Tpo -c -o libarchive/test/test-test_write_disk_times.obj `if test -f 'libarchive/test/test_write_disk_times.c'; then $(CYGPATH_W) 'libarchive/test/test_write_disk_times.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_disk_times.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_disk_times.Tpo libarchive/test/$(DEPDIR)/test-test_write_disk_times.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_disk_times.c' object='libarchive/test/test-test_write_disk_times.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_filter_compress.obj `if test -f 'libarchive/test/test_write_filter_compress.c'; then $(CYGPATH_W) 'libarchive/test/test_write_filter_compress.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_filter_compress.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_disk_times.obj `if test -f 'libarchive/test/test_write_disk_times.c'; then $(CYGPATH_W) 'libarchive/test/test_write_disk_times.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_disk_times.c'; fi` -libarchive/test/libarchive_test-test_write_filter_gzip.o: libarchive/test/test_write_filter_gzip.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_filter_gzip.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_filter_gzip.Tpo -c -o libarchive/test/libarchive_test-test_write_filter_gzip.o `test -f 'libarchive/test/test_write_filter_gzip.c' || echo '$(srcdir)/'`libarchive/test/test_write_filter_gzip.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_filter_gzip.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_filter_gzip.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_filter_gzip.c' object='libarchive/test/libarchive_test-test_write_filter_gzip.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_filter_b64encode.o: libarchive/test/test_write_filter_b64encode.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_filter_b64encode.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_filter_b64encode.Tpo -c -o libarchive/test/test-test_write_filter_b64encode.o `test -f 'libarchive/test/test_write_filter_b64encode.c' || echo '$(srcdir)/'`libarchive/test/test_write_filter_b64encode.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_filter_b64encode.Tpo libarchive/test/$(DEPDIR)/test-test_write_filter_b64encode.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_filter_b64encode.c' object='libarchive/test/test-test_write_filter_b64encode.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_filter_gzip.o `test -f 'libarchive/test/test_write_filter_gzip.c' || echo '$(srcdir)/'`libarchive/test/test_write_filter_gzip.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_filter_b64encode.o `test -f 'libarchive/test/test_write_filter_b64encode.c' || echo '$(srcdir)/'`libarchive/test/test_write_filter_b64encode.c -libarchive/test/libarchive_test-test_write_filter_gzip.obj: libarchive/test/test_write_filter_gzip.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_filter_gzip.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_filter_gzip.Tpo -c -o libarchive/test/libarchive_test-test_write_filter_gzip.obj `if test -f 'libarchive/test/test_write_filter_gzip.c'; then $(CYGPATH_W) 'libarchive/test/test_write_filter_gzip.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_filter_gzip.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_filter_gzip.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_filter_gzip.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_filter_gzip.c' object='libarchive/test/libarchive_test-test_write_filter_gzip.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_filter_b64encode.obj: libarchive/test/test_write_filter_b64encode.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_filter_b64encode.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_filter_b64encode.Tpo -c -o libarchive/test/test-test_write_filter_b64encode.obj `if test -f 'libarchive/test/test_write_filter_b64encode.c'; then $(CYGPATH_W) 'libarchive/test/test_write_filter_b64encode.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_filter_b64encode.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_filter_b64encode.Tpo libarchive/test/$(DEPDIR)/test-test_write_filter_b64encode.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_filter_b64encode.c' object='libarchive/test/test-test_write_filter_b64encode.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_filter_gzip.obj `if test -f 'libarchive/test/test_write_filter_gzip.c'; then $(CYGPATH_W) 'libarchive/test/test_write_filter_gzip.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_filter_gzip.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_filter_b64encode.obj `if test -f 'libarchive/test/test_write_filter_b64encode.c'; then $(CYGPATH_W) 'libarchive/test/test_write_filter_b64encode.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_filter_b64encode.c'; fi` -libarchive/test/libarchive_test-test_write_filter_gzip_timestamp.o: libarchive/test/test_write_filter_gzip_timestamp.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_filter_gzip_timestamp.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_filter_gzip_timestamp.Tpo -c -o libarchive/test/libarchive_test-test_write_filter_gzip_timestamp.o `test -f 'libarchive/test/test_write_filter_gzip_timestamp.c' || echo '$(srcdir)/'`libarchive/test/test_write_filter_gzip_timestamp.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_filter_gzip_timestamp.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_filter_gzip_timestamp.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_filter_gzip_timestamp.c' object='libarchive/test/libarchive_test-test_write_filter_gzip_timestamp.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_filter_bzip2.o: libarchive/test/test_write_filter_bzip2.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_filter_bzip2.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_filter_bzip2.Tpo -c -o libarchive/test/test-test_write_filter_bzip2.o `test -f 'libarchive/test/test_write_filter_bzip2.c' || echo '$(srcdir)/'`libarchive/test/test_write_filter_bzip2.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_filter_bzip2.Tpo libarchive/test/$(DEPDIR)/test-test_write_filter_bzip2.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_filter_bzip2.c' object='libarchive/test/test-test_write_filter_bzip2.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_filter_gzip_timestamp.o `test -f 'libarchive/test/test_write_filter_gzip_timestamp.c' || echo '$(srcdir)/'`libarchive/test/test_write_filter_gzip_timestamp.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_filter_bzip2.o `test -f 'libarchive/test/test_write_filter_bzip2.c' || echo '$(srcdir)/'`libarchive/test/test_write_filter_bzip2.c -libarchive/test/libarchive_test-test_write_filter_gzip_timestamp.obj: libarchive/test/test_write_filter_gzip_timestamp.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_filter_gzip_timestamp.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_filter_gzip_timestamp.Tpo -c -o libarchive/test/libarchive_test-test_write_filter_gzip_timestamp.obj `if test -f 'libarchive/test/test_write_filter_gzip_timestamp.c'; then $(CYGPATH_W) 'libarchive/test/test_write_filter_gzip_timestamp.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_filter_gzip_timestamp.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_filter_gzip_timestamp.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_filter_gzip_timestamp.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_filter_gzip_timestamp.c' object='libarchive/test/libarchive_test-test_write_filter_gzip_timestamp.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_filter_bzip2.obj: libarchive/test/test_write_filter_bzip2.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_filter_bzip2.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_filter_bzip2.Tpo -c -o libarchive/test/test-test_write_filter_bzip2.obj `if test -f 'libarchive/test/test_write_filter_bzip2.c'; then $(CYGPATH_W) 'libarchive/test/test_write_filter_bzip2.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_filter_bzip2.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_filter_bzip2.Tpo libarchive/test/$(DEPDIR)/test-test_write_filter_bzip2.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_filter_bzip2.c' object='libarchive/test/test-test_write_filter_bzip2.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_filter_gzip_timestamp.obj `if test -f 'libarchive/test/test_write_filter_gzip_timestamp.c'; then $(CYGPATH_W) 'libarchive/test/test_write_filter_gzip_timestamp.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_filter_gzip_timestamp.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_filter_bzip2.obj `if test -f 'libarchive/test/test_write_filter_bzip2.c'; then $(CYGPATH_W) 'libarchive/test/test_write_filter_bzip2.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_filter_bzip2.c'; fi` -libarchive/test/libarchive_test-test_write_filter_lrzip.o: libarchive/test/test_write_filter_lrzip.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_filter_lrzip.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_filter_lrzip.Tpo -c -o libarchive/test/libarchive_test-test_write_filter_lrzip.o `test -f 'libarchive/test/test_write_filter_lrzip.c' || echo '$(srcdir)/'`libarchive/test/test_write_filter_lrzip.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_filter_lrzip.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_filter_lrzip.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_filter_lrzip.c' object='libarchive/test/libarchive_test-test_write_filter_lrzip.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_filter_compress.o: libarchive/test/test_write_filter_compress.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_filter_compress.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_filter_compress.Tpo -c -o libarchive/test/test-test_write_filter_compress.o `test -f 'libarchive/test/test_write_filter_compress.c' || echo '$(srcdir)/'`libarchive/test/test_write_filter_compress.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_filter_compress.Tpo libarchive/test/$(DEPDIR)/test-test_write_filter_compress.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_filter_compress.c' object='libarchive/test/test-test_write_filter_compress.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_filter_lrzip.o `test -f 'libarchive/test/test_write_filter_lrzip.c' || echo '$(srcdir)/'`libarchive/test/test_write_filter_lrzip.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_filter_compress.o `test -f 'libarchive/test/test_write_filter_compress.c' || echo '$(srcdir)/'`libarchive/test/test_write_filter_compress.c -libarchive/test/libarchive_test-test_write_filter_lrzip.obj: libarchive/test/test_write_filter_lrzip.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_filter_lrzip.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_filter_lrzip.Tpo -c -o libarchive/test/libarchive_test-test_write_filter_lrzip.obj `if test -f 'libarchive/test/test_write_filter_lrzip.c'; then $(CYGPATH_W) 'libarchive/test/test_write_filter_lrzip.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_filter_lrzip.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_filter_lrzip.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_filter_lrzip.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_filter_lrzip.c' object='libarchive/test/libarchive_test-test_write_filter_lrzip.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_filter_compress.obj: libarchive/test/test_write_filter_compress.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_filter_compress.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_filter_compress.Tpo -c -o libarchive/test/test-test_write_filter_compress.obj `if test -f 'libarchive/test/test_write_filter_compress.c'; then $(CYGPATH_W) 'libarchive/test/test_write_filter_compress.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_filter_compress.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_filter_compress.Tpo libarchive/test/$(DEPDIR)/test-test_write_filter_compress.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_filter_compress.c' object='libarchive/test/test-test_write_filter_compress.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_filter_lrzip.obj `if test -f 'libarchive/test/test_write_filter_lrzip.c'; then $(CYGPATH_W) 'libarchive/test/test_write_filter_lrzip.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_filter_lrzip.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_filter_compress.obj `if test -f 'libarchive/test/test_write_filter_compress.c'; then $(CYGPATH_W) 'libarchive/test/test_write_filter_compress.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_filter_compress.c'; fi` -libarchive/test/libarchive_test-test_write_filter_lz4.o: libarchive/test/test_write_filter_lz4.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_filter_lz4.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_filter_lz4.Tpo -c -o libarchive/test/libarchive_test-test_write_filter_lz4.o `test -f 'libarchive/test/test_write_filter_lz4.c' || echo '$(srcdir)/'`libarchive/test/test_write_filter_lz4.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_filter_lz4.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_filter_lz4.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_filter_lz4.c' object='libarchive/test/libarchive_test-test_write_filter_lz4.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_filter_gzip.o: libarchive/test/test_write_filter_gzip.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_filter_gzip.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_filter_gzip.Tpo -c -o libarchive/test/test-test_write_filter_gzip.o `test -f 'libarchive/test/test_write_filter_gzip.c' || echo '$(srcdir)/'`libarchive/test/test_write_filter_gzip.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_filter_gzip.Tpo libarchive/test/$(DEPDIR)/test-test_write_filter_gzip.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_filter_gzip.c' object='libarchive/test/test-test_write_filter_gzip.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_filter_lz4.o `test -f 'libarchive/test/test_write_filter_lz4.c' || echo '$(srcdir)/'`libarchive/test/test_write_filter_lz4.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_filter_gzip.o `test -f 'libarchive/test/test_write_filter_gzip.c' || echo '$(srcdir)/'`libarchive/test/test_write_filter_gzip.c -libarchive/test/libarchive_test-test_write_filter_lz4.obj: libarchive/test/test_write_filter_lz4.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_filter_lz4.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_filter_lz4.Tpo -c -o libarchive/test/libarchive_test-test_write_filter_lz4.obj `if test -f 'libarchive/test/test_write_filter_lz4.c'; then $(CYGPATH_W) 'libarchive/test/test_write_filter_lz4.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_filter_lz4.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_filter_lz4.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_filter_lz4.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_filter_lz4.c' object='libarchive/test/libarchive_test-test_write_filter_lz4.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_filter_gzip.obj: libarchive/test/test_write_filter_gzip.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_filter_gzip.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_filter_gzip.Tpo -c -o libarchive/test/test-test_write_filter_gzip.obj `if test -f 'libarchive/test/test_write_filter_gzip.c'; then $(CYGPATH_W) 'libarchive/test/test_write_filter_gzip.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_filter_gzip.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_filter_gzip.Tpo libarchive/test/$(DEPDIR)/test-test_write_filter_gzip.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_filter_gzip.c' object='libarchive/test/test-test_write_filter_gzip.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_filter_lz4.obj `if test -f 'libarchive/test/test_write_filter_lz4.c'; then $(CYGPATH_W) 'libarchive/test/test_write_filter_lz4.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_filter_lz4.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_filter_gzip.obj `if test -f 'libarchive/test/test_write_filter_gzip.c'; then $(CYGPATH_W) 'libarchive/test/test_write_filter_gzip.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_filter_gzip.c'; fi` -libarchive/test/libarchive_test-test_write_filter_lzip.o: libarchive/test/test_write_filter_lzip.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_filter_lzip.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_filter_lzip.Tpo -c -o libarchive/test/libarchive_test-test_write_filter_lzip.o `test -f 'libarchive/test/test_write_filter_lzip.c' || echo '$(srcdir)/'`libarchive/test/test_write_filter_lzip.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_filter_lzip.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_filter_lzip.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_filter_lzip.c' object='libarchive/test/libarchive_test-test_write_filter_lzip.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_filter_gzip_timestamp.o: libarchive/test/test_write_filter_gzip_timestamp.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_filter_gzip_timestamp.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_filter_gzip_timestamp.Tpo -c -o libarchive/test/test-test_write_filter_gzip_timestamp.o `test -f 'libarchive/test/test_write_filter_gzip_timestamp.c' || echo '$(srcdir)/'`libarchive/test/test_write_filter_gzip_timestamp.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_filter_gzip_timestamp.Tpo libarchive/test/$(DEPDIR)/test-test_write_filter_gzip_timestamp.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_filter_gzip_timestamp.c' object='libarchive/test/test-test_write_filter_gzip_timestamp.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_filter_lzip.o `test -f 'libarchive/test/test_write_filter_lzip.c' || echo '$(srcdir)/'`libarchive/test/test_write_filter_lzip.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_filter_gzip_timestamp.o `test -f 'libarchive/test/test_write_filter_gzip_timestamp.c' || echo '$(srcdir)/'`libarchive/test/test_write_filter_gzip_timestamp.c -libarchive/test/libarchive_test-test_write_filter_lzip.obj: libarchive/test/test_write_filter_lzip.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_filter_lzip.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_filter_lzip.Tpo -c -o libarchive/test/libarchive_test-test_write_filter_lzip.obj `if test -f 'libarchive/test/test_write_filter_lzip.c'; then $(CYGPATH_W) 'libarchive/test/test_write_filter_lzip.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_filter_lzip.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_filter_lzip.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_filter_lzip.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_filter_lzip.c' object='libarchive/test/libarchive_test-test_write_filter_lzip.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_filter_gzip_timestamp.obj: libarchive/test/test_write_filter_gzip_timestamp.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_filter_gzip_timestamp.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_filter_gzip_timestamp.Tpo -c -o libarchive/test/test-test_write_filter_gzip_timestamp.obj `if test -f 'libarchive/test/test_write_filter_gzip_timestamp.c'; then $(CYGPATH_W) 'libarchive/test/test_write_filter_gzip_timestamp.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_filter_gzip_timestamp.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_filter_gzip_timestamp.Tpo libarchive/test/$(DEPDIR)/test-test_write_filter_gzip_timestamp.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_filter_gzip_timestamp.c' object='libarchive/test/test-test_write_filter_gzip_timestamp.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_filter_lzip.obj `if test -f 'libarchive/test/test_write_filter_lzip.c'; then $(CYGPATH_W) 'libarchive/test/test_write_filter_lzip.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_filter_lzip.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_filter_gzip_timestamp.obj `if test -f 'libarchive/test/test_write_filter_gzip_timestamp.c'; then $(CYGPATH_W) 'libarchive/test/test_write_filter_gzip_timestamp.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_filter_gzip_timestamp.c'; fi` -libarchive/test/libarchive_test-test_write_filter_lzma.o: libarchive/test/test_write_filter_lzma.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_filter_lzma.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_filter_lzma.Tpo -c -o libarchive/test/libarchive_test-test_write_filter_lzma.o `test -f 'libarchive/test/test_write_filter_lzma.c' || echo '$(srcdir)/'`libarchive/test/test_write_filter_lzma.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_filter_lzma.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_filter_lzma.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_filter_lzma.c' object='libarchive/test/libarchive_test-test_write_filter_lzma.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_filter_lrzip.o: libarchive/test/test_write_filter_lrzip.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_filter_lrzip.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_filter_lrzip.Tpo -c -o libarchive/test/test-test_write_filter_lrzip.o `test -f 'libarchive/test/test_write_filter_lrzip.c' || echo '$(srcdir)/'`libarchive/test/test_write_filter_lrzip.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_filter_lrzip.Tpo libarchive/test/$(DEPDIR)/test-test_write_filter_lrzip.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_filter_lrzip.c' object='libarchive/test/test-test_write_filter_lrzip.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_filter_lzma.o `test -f 'libarchive/test/test_write_filter_lzma.c' || echo '$(srcdir)/'`libarchive/test/test_write_filter_lzma.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_filter_lrzip.o `test -f 'libarchive/test/test_write_filter_lrzip.c' || echo '$(srcdir)/'`libarchive/test/test_write_filter_lrzip.c -libarchive/test/libarchive_test-test_write_filter_lzma.obj: libarchive/test/test_write_filter_lzma.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_filter_lzma.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_filter_lzma.Tpo -c -o libarchive/test/libarchive_test-test_write_filter_lzma.obj `if test -f 'libarchive/test/test_write_filter_lzma.c'; then $(CYGPATH_W) 'libarchive/test/test_write_filter_lzma.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_filter_lzma.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_filter_lzma.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_filter_lzma.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_filter_lzma.c' object='libarchive/test/libarchive_test-test_write_filter_lzma.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_filter_lrzip.obj: libarchive/test/test_write_filter_lrzip.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_filter_lrzip.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_filter_lrzip.Tpo -c -o libarchive/test/test-test_write_filter_lrzip.obj `if test -f 'libarchive/test/test_write_filter_lrzip.c'; then $(CYGPATH_W) 'libarchive/test/test_write_filter_lrzip.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_filter_lrzip.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_filter_lrzip.Tpo libarchive/test/$(DEPDIR)/test-test_write_filter_lrzip.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_filter_lrzip.c' object='libarchive/test/test-test_write_filter_lrzip.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_filter_lzma.obj `if test -f 'libarchive/test/test_write_filter_lzma.c'; then $(CYGPATH_W) 'libarchive/test/test_write_filter_lzma.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_filter_lzma.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_filter_lrzip.obj `if test -f 'libarchive/test/test_write_filter_lrzip.c'; then $(CYGPATH_W) 'libarchive/test/test_write_filter_lrzip.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_filter_lrzip.c'; fi` -libarchive/test/libarchive_test-test_write_filter_lzop.o: libarchive/test/test_write_filter_lzop.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_filter_lzop.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_filter_lzop.Tpo -c -o libarchive/test/libarchive_test-test_write_filter_lzop.o `test -f 'libarchive/test/test_write_filter_lzop.c' || echo '$(srcdir)/'`libarchive/test/test_write_filter_lzop.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_filter_lzop.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_filter_lzop.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_filter_lzop.c' object='libarchive/test/libarchive_test-test_write_filter_lzop.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_filter_lz4.o: libarchive/test/test_write_filter_lz4.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_filter_lz4.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_filter_lz4.Tpo -c -o libarchive/test/test-test_write_filter_lz4.o `test -f 'libarchive/test/test_write_filter_lz4.c' || echo '$(srcdir)/'`libarchive/test/test_write_filter_lz4.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_filter_lz4.Tpo libarchive/test/$(DEPDIR)/test-test_write_filter_lz4.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_filter_lz4.c' object='libarchive/test/test-test_write_filter_lz4.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_filter_lzop.o `test -f 'libarchive/test/test_write_filter_lzop.c' || echo '$(srcdir)/'`libarchive/test/test_write_filter_lzop.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_filter_lz4.o `test -f 'libarchive/test/test_write_filter_lz4.c' || echo '$(srcdir)/'`libarchive/test/test_write_filter_lz4.c -libarchive/test/libarchive_test-test_write_filter_lzop.obj: libarchive/test/test_write_filter_lzop.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_filter_lzop.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_filter_lzop.Tpo -c -o libarchive/test/libarchive_test-test_write_filter_lzop.obj `if test -f 'libarchive/test/test_write_filter_lzop.c'; then $(CYGPATH_W) 'libarchive/test/test_write_filter_lzop.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_filter_lzop.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_filter_lzop.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_filter_lzop.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_filter_lzop.c' object='libarchive/test/libarchive_test-test_write_filter_lzop.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_filter_lz4.obj: libarchive/test/test_write_filter_lz4.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_filter_lz4.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_filter_lz4.Tpo -c -o libarchive/test/test-test_write_filter_lz4.obj `if test -f 'libarchive/test/test_write_filter_lz4.c'; then $(CYGPATH_W) 'libarchive/test/test_write_filter_lz4.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_filter_lz4.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_filter_lz4.Tpo libarchive/test/$(DEPDIR)/test-test_write_filter_lz4.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_filter_lz4.c' object='libarchive/test/test-test_write_filter_lz4.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_filter_lzop.obj `if test -f 'libarchive/test/test_write_filter_lzop.c'; then $(CYGPATH_W) 'libarchive/test/test_write_filter_lzop.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_filter_lzop.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_filter_lz4.obj `if test -f 'libarchive/test/test_write_filter_lz4.c'; then $(CYGPATH_W) 'libarchive/test/test_write_filter_lz4.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_filter_lz4.c'; fi` -libarchive/test/libarchive_test-test_write_filter_program.o: libarchive/test/test_write_filter_program.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_filter_program.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_filter_program.Tpo -c -o libarchive/test/libarchive_test-test_write_filter_program.o `test -f 'libarchive/test/test_write_filter_program.c' || echo '$(srcdir)/'`libarchive/test/test_write_filter_program.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_filter_program.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_filter_program.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_filter_program.c' object='libarchive/test/libarchive_test-test_write_filter_program.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_filter_lzip.o: libarchive/test/test_write_filter_lzip.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_filter_lzip.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_filter_lzip.Tpo -c -o libarchive/test/test-test_write_filter_lzip.o `test -f 'libarchive/test/test_write_filter_lzip.c' || echo '$(srcdir)/'`libarchive/test/test_write_filter_lzip.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_filter_lzip.Tpo libarchive/test/$(DEPDIR)/test-test_write_filter_lzip.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_filter_lzip.c' object='libarchive/test/test-test_write_filter_lzip.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_filter_program.o `test -f 'libarchive/test/test_write_filter_program.c' || echo '$(srcdir)/'`libarchive/test/test_write_filter_program.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_filter_lzip.o `test -f 'libarchive/test/test_write_filter_lzip.c' || echo '$(srcdir)/'`libarchive/test/test_write_filter_lzip.c -libarchive/test/libarchive_test-test_write_filter_program.obj: libarchive/test/test_write_filter_program.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_filter_program.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_filter_program.Tpo -c -o libarchive/test/libarchive_test-test_write_filter_program.obj `if test -f 'libarchive/test/test_write_filter_program.c'; then $(CYGPATH_W) 'libarchive/test/test_write_filter_program.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_filter_program.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_filter_program.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_filter_program.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_filter_program.c' object='libarchive/test/libarchive_test-test_write_filter_program.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_filter_lzip.obj: libarchive/test/test_write_filter_lzip.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_filter_lzip.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_filter_lzip.Tpo -c -o libarchive/test/test-test_write_filter_lzip.obj `if test -f 'libarchive/test/test_write_filter_lzip.c'; then $(CYGPATH_W) 'libarchive/test/test_write_filter_lzip.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_filter_lzip.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_filter_lzip.Tpo libarchive/test/$(DEPDIR)/test-test_write_filter_lzip.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_filter_lzip.c' object='libarchive/test/test-test_write_filter_lzip.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_filter_program.obj `if test -f 'libarchive/test/test_write_filter_program.c'; then $(CYGPATH_W) 'libarchive/test/test_write_filter_program.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_filter_program.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_filter_lzip.obj `if test -f 'libarchive/test/test_write_filter_lzip.c'; then $(CYGPATH_W) 'libarchive/test/test_write_filter_lzip.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_filter_lzip.c'; fi` -libarchive/test/libarchive_test-test_write_filter_uuencode.o: libarchive/test/test_write_filter_uuencode.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_filter_uuencode.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_filter_uuencode.Tpo -c -o libarchive/test/libarchive_test-test_write_filter_uuencode.o `test -f 'libarchive/test/test_write_filter_uuencode.c' || echo '$(srcdir)/'`libarchive/test/test_write_filter_uuencode.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_filter_uuencode.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_filter_uuencode.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_filter_uuencode.c' object='libarchive/test/libarchive_test-test_write_filter_uuencode.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_filter_lzma.o: libarchive/test/test_write_filter_lzma.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_filter_lzma.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_filter_lzma.Tpo -c -o libarchive/test/test-test_write_filter_lzma.o `test -f 'libarchive/test/test_write_filter_lzma.c' || echo '$(srcdir)/'`libarchive/test/test_write_filter_lzma.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_filter_lzma.Tpo libarchive/test/$(DEPDIR)/test-test_write_filter_lzma.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_filter_lzma.c' object='libarchive/test/test-test_write_filter_lzma.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_filter_uuencode.o `test -f 'libarchive/test/test_write_filter_uuencode.c' || echo '$(srcdir)/'`libarchive/test/test_write_filter_uuencode.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_filter_lzma.o `test -f 'libarchive/test/test_write_filter_lzma.c' || echo '$(srcdir)/'`libarchive/test/test_write_filter_lzma.c -libarchive/test/libarchive_test-test_write_filter_uuencode.obj: libarchive/test/test_write_filter_uuencode.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_filter_uuencode.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_filter_uuencode.Tpo -c -o libarchive/test/libarchive_test-test_write_filter_uuencode.obj `if test -f 'libarchive/test/test_write_filter_uuencode.c'; then $(CYGPATH_W) 'libarchive/test/test_write_filter_uuencode.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_filter_uuencode.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_filter_uuencode.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_filter_uuencode.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_filter_uuencode.c' object='libarchive/test/libarchive_test-test_write_filter_uuencode.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_filter_lzma.obj: libarchive/test/test_write_filter_lzma.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_filter_lzma.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_filter_lzma.Tpo -c -o libarchive/test/test-test_write_filter_lzma.obj `if test -f 'libarchive/test/test_write_filter_lzma.c'; then $(CYGPATH_W) 'libarchive/test/test_write_filter_lzma.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_filter_lzma.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_filter_lzma.Tpo libarchive/test/$(DEPDIR)/test-test_write_filter_lzma.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_filter_lzma.c' object='libarchive/test/test-test_write_filter_lzma.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_filter_uuencode.obj `if test -f 'libarchive/test/test_write_filter_uuencode.c'; then $(CYGPATH_W) 'libarchive/test/test_write_filter_uuencode.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_filter_uuencode.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_filter_lzma.obj `if test -f 'libarchive/test/test_write_filter_lzma.c'; then $(CYGPATH_W) 'libarchive/test/test_write_filter_lzma.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_filter_lzma.c'; fi` -libarchive/test/libarchive_test-test_write_filter_xz.o: libarchive/test/test_write_filter_xz.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_filter_xz.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_filter_xz.Tpo -c -o libarchive/test/libarchive_test-test_write_filter_xz.o `test -f 'libarchive/test/test_write_filter_xz.c' || echo '$(srcdir)/'`libarchive/test/test_write_filter_xz.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_filter_xz.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_filter_xz.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_filter_xz.c' object='libarchive/test/libarchive_test-test_write_filter_xz.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_filter_lzop.o: libarchive/test/test_write_filter_lzop.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_filter_lzop.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_filter_lzop.Tpo -c -o libarchive/test/test-test_write_filter_lzop.o `test -f 'libarchive/test/test_write_filter_lzop.c' || echo '$(srcdir)/'`libarchive/test/test_write_filter_lzop.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_filter_lzop.Tpo libarchive/test/$(DEPDIR)/test-test_write_filter_lzop.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_filter_lzop.c' object='libarchive/test/test-test_write_filter_lzop.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_filter_xz.o `test -f 'libarchive/test/test_write_filter_xz.c' || echo '$(srcdir)/'`libarchive/test/test_write_filter_xz.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_filter_lzop.o `test -f 'libarchive/test/test_write_filter_lzop.c' || echo '$(srcdir)/'`libarchive/test/test_write_filter_lzop.c -libarchive/test/libarchive_test-test_write_filter_xz.obj: libarchive/test/test_write_filter_xz.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_filter_xz.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_filter_xz.Tpo -c -o libarchive/test/libarchive_test-test_write_filter_xz.obj `if test -f 'libarchive/test/test_write_filter_xz.c'; then $(CYGPATH_W) 'libarchive/test/test_write_filter_xz.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_filter_xz.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_filter_xz.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_filter_xz.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_filter_xz.c' object='libarchive/test/libarchive_test-test_write_filter_xz.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_filter_lzop.obj: libarchive/test/test_write_filter_lzop.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_filter_lzop.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_filter_lzop.Tpo -c -o libarchive/test/test-test_write_filter_lzop.obj `if test -f 'libarchive/test/test_write_filter_lzop.c'; then $(CYGPATH_W) 'libarchive/test/test_write_filter_lzop.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_filter_lzop.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_filter_lzop.Tpo libarchive/test/$(DEPDIR)/test-test_write_filter_lzop.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_filter_lzop.c' object='libarchive/test/test-test_write_filter_lzop.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_filter_xz.obj `if test -f 'libarchive/test/test_write_filter_xz.c'; then $(CYGPATH_W) 'libarchive/test/test_write_filter_xz.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_filter_xz.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_filter_lzop.obj `if test -f 'libarchive/test/test_write_filter_lzop.c'; then $(CYGPATH_W) 'libarchive/test/test_write_filter_lzop.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_filter_lzop.c'; fi` -libarchive/test/libarchive_test-test_write_filter_zstd.o: libarchive/test/test_write_filter_zstd.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_filter_zstd.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_filter_zstd.Tpo -c -o libarchive/test/libarchive_test-test_write_filter_zstd.o `test -f 'libarchive/test/test_write_filter_zstd.c' || echo '$(srcdir)/'`libarchive/test/test_write_filter_zstd.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_filter_zstd.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_filter_zstd.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_filter_zstd.c' object='libarchive/test/libarchive_test-test_write_filter_zstd.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_filter_program.o: libarchive/test/test_write_filter_program.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_filter_program.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_filter_program.Tpo -c -o libarchive/test/test-test_write_filter_program.o `test -f 'libarchive/test/test_write_filter_program.c' || echo '$(srcdir)/'`libarchive/test/test_write_filter_program.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_filter_program.Tpo libarchive/test/$(DEPDIR)/test-test_write_filter_program.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_filter_program.c' object='libarchive/test/test-test_write_filter_program.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_filter_zstd.o `test -f 'libarchive/test/test_write_filter_zstd.c' || echo '$(srcdir)/'`libarchive/test/test_write_filter_zstd.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_filter_program.o `test -f 'libarchive/test/test_write_filter_program.c' || echo '$(srcdir)/'`libarchive/test/test_write_filter_program.c -libarchive/test/libarchive_test-test_write_filter_zstd.obj: libarchive/test/test_write_filter_zstd.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_filter_zstd.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_filter_zstd.Tpo -c -o libarchive/test/libarchive_test-test_write_filter_zstd.obj `if test -f 'libarchive/test/test_write_filter_zstd.c'; then $(CYGPATH_W) 'libarchive/test/test_write_filter_zstd.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_filter_zstd.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_filter_zstd.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_filter_zstd.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_filter_zstd.c' object='libarchive/test/libarchive_test-test_write_filter_zstd.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_filter_program.obj: libarchive/test/test_write_filter_program.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_filter_program.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_filter_program.Tpo -c -o libarchive/test/test-test_write_filter_program.obj `if test -f 'libarchive/test/test_write_filter_program.c'; then $(CYGPATH_W) 'libarchive/test/test_write_filter_program.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_filter_program.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_filter_program.Tpo libarchive/test/$(DEPDIR)/test-test_write_filter_program.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_filter_program.c' object='libarchive/test/test-test_write_filter_program.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_filter_zstd.obj `if test -f 'libarchive/test/test_write_filter_zstd.c'; then $(CYGPATH_W) 'libarchive/test/test_write_filter_zstd.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_filter_zstd.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_filter_program.obj `if test -f 'libarchive/test/test_write_filter_program.c'; then $(CYGPATH_W) 'libarchive/test/test_write_filter_program.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_filter_program.c'; fi` -libarchive/test/libarchive_test-test_write_format_7zip.o: libarchive/test/test_write_format_7zip.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_format_7zip.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_7zip.Tpo -c -o libarchive/test/libarchive_test-test_write_format_7zip.o `test -f 'libarchive/test/test_write_format_7zip.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_7zip.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_7zip.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_7zip.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_7zip.c' object='libarchive/test/libarchive_test-test_write_format_7zip.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_filter_uuencode.o: libarchive/test/test_write_filter_uuencode.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_filter_uuencode.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_filter_uuencode.Tpo -c -o libarchive/test/test-test_write_filter_uuencode.o `test -f 'libarchive/test/test_write_filter_uuencode.c' || echo '$(srcdir)/'`libarchive/test/test_write_filter_uuencode.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_filter_uuencode.Tpo libarchive/test/$(DEPDIR)/test-test_write_filter_uuencode.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_filter_uuencode.c' object='libarchive/test/test-test_write_filter_uuencode.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_format_7zip.o `test -f 'libarchive/test/test_write_format_7zip.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_7zip.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_filter_uuencode.o `test -f 'libarchive/test/test_write_filter_uuencode.c' || echo '$(srcdir)/'`libarchive/test/test_write_filter_uuencode.c -libarchive/test/libarchive_test-test_write_format_7zip.obj: libarchive/test/test_write_format_7zip.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_format_7zip.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_7zip.Tpo -c -o libarchive/test/libarchive_test-test_write_format_7zip.obj `if test -f 'libarchive/test/test_write_format_7zip.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_7zip.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_7zip.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_7zip.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_7zip.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_7zip.c' object='libarchive/test/libarchive_test-test_write_format_7zip.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_filter_uuencode.obj: libarchive/test/test_write_filter_uuencode.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_filter_uuencode.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_filter_uuencode.Tpo -c -o libarchive/test/test-test_write_filter_uuencode.obj `if test -f 'libarchive/test/test_write_filter_uuencode.c'; then $(CYGPATH_W) 'libarchive/test/test_write_filter_uuencode.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_filter_uuencode.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_filter_uuencode.Tpo libarchive/test/$(DEPDIR)/test-test_write_filter_uuencode.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_filter_uuencode.c' object='libarchive/test/test-test_write_filter_uuencode.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_format_7zip.obj `if test -f 'libarchive/test/test_write_format_7zip.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_7zip.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_7zip.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_filter_uuencode.obj `if test -f 'libarchive/test/test_write_filter_uuencode.c'; then $(CYGPATH_W) 'libarchive/test/test_write_filter_uuencode.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_filter_uuencode.c'; fi` -libarchive/test/libarchive_test-test_write_format_7zip_empty.o: libarchive/test/test_write_format_7zip_empty.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_format_7zip_empty.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_7zip_empty.Tpo -c -o libarchive/test/libarchive_test-test_write_format_7zip_empty.o `test -f 'libarchive/test/test_write_format_7zip_empty.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_7zip_empty.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_7zip_empty.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_7zip_empty.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_7zip_empty.c' object='libarchive/test/libarchive_test-test_write_format_7zip_empty.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_filter_xz.o: libarchive/test/test_write_filter_xz.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_filter_xz.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_filter_xz.Tpo -c -o libarchive/test/test-test_write_filter_xz.o `test -f 'libarchive/test/test_write_filter_xz.c' || echo '$(srcdir)/'`libarchive/test/test_write_filter_xz.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_filter_xz.Tpo libarchive/test/$(DEPDIR)/test-test_write_filter_xz.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_filter_xz.c' object='libarchive/test/test-test_write_filter_xz.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_format_7zip_empty.o `test -f 'libarchive/test/test_write_format_7zip_empty.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_7zip_empty.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_filter_xz.o `test -f 'libarchive/test/test_write_filter_xz.c' || echo '$(srcdir)/'`libarchive/test/test_write_filter_xz.c -libarchive/test/libarchive_test-test_write_format_7zip_empty.obj: libarchive/test/test_write_format_7zip_empty.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_format_7zip_empty.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_7zip_empty.Tpo -c -o libarchive/test/libarchive_test-test_write_format_7zip_empty.obj `if test -f 'libarchive/test/test_write_format_7zip_empty.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_7zip_empty.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_7zip_empty.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_7zip_empty.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_7zip_empty.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_7zip_empty.c' object='libarchive/test/libarchive_test-test_write_format_7zip_empty.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_filter_xz.obj: libarchive/test/test_write_filter_xz.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_filter_xz.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_filter_xz.Tpo -c -o libarchive/test/test-test_write_filter_xz.obj `if test -f 'libarchive/test/test_write_filter_xz.c'; then $(CYGPATH_W) 'libarchive/test/test_write_filter_xz.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_filter_xz.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_filter_xz.Tpo libarchive/test/$(DEPDIR)/test-test_write_filter_xz.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_filter_xz.c' object='libarchive/test/test-test_write_filter_xz.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_format_7zip_empty.obj `if test -f 'libarchive/test/test_write_format_7zip_empty.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_7zip_empty.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_7zip_empty.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_filter_xz.obj `if test -f 'libarchive/test/test_write_filter_xz.c'; then $(CYGPATH_W) 'libarchive/test/test_write_filter_xz.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_filter_xz.c'; fi` -libarchive/test/libarchive_test-test_write_format_7zip_large.o: libarchive/test/test_write_format_7zip_large.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_format_7zip_large.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_7zip_large.Tpo -c -o libarchive/test/libarchive_test-test_write_format_7zip_large.o `test -f 'libarchive/test/test_write_format_7zip_large.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_7zip_large.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_7zip_large.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_7zip_large.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_7zip_large.c' object='libarchive/test/libarchive_test-test_write_format_7zip_large.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_filter_zstd.o: libarchive/test/test_write_filter_zstd.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_filter_zstd.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_filter_zstd.Tpo -c -o libarchive/test/test-test_write_filter_zstd.o `test -f 'libarchive/test/test_write_filter_zstd.c' || echo '$(srcdir)/'`libarchive/test/test_write_filter_zstd.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_filter_zstd.Tpo libarchive/test/$(DEPDIR)/test-test_write_filter_zstd.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_filter_zstd.c' object='libarchive/test/test-test_write_filter_zstd.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_format_7zip_large.o `test -f 'libarchive/test/test_write_format_7zip_large.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_7zip_large.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_filter_zstd.o `test -f 'libarchive/test/test_write_filter_zstd.c' || echo '$(srcdir)/'`libarchive/test/test_write_filter_zstd.c -libarchive/test/libarchive_test-test_write_format_7zip_large.obj: libarchive/test/test_write_format_7zip_large.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_format_7zip_large.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_7zip_large.Tpo -c -o libarchive/test/libarchive_test-test_write_format_7zip_large.obj `if test -f 'libarchive/test/test_write_format_7zip_large.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_7zip_large.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_7zip_large.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_7zip_large.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_7zip_large.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_7zip_large.c' object='libarchive/test/libarchive_test-test_write_format_7zip_large.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_filter_zstd.obj: libarchive/test/test_write_filter_zstd.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_filter_zstd.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_filter_zstd.Tpo -c -o libarchive/test/test-test_write_filter_zstd.obj `if test -f 'libarchive/test/test_write_filter_zstd.c'; then $(CYGPATH_W) 'libarchive/test/test_write_filter_zstd.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_filter_zstd.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_filter_zstd.Tpo libarchive/test/$(DEPDIR)/test-test_write_filter_zstd.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_filter_zstd.c' object='libarchive/test/test-test_write_filter_zstd.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_format_7zip_large.obj `if test -f 'libarchive/test/test_write_format_7zip_large.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_7zip_large.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_7zip_large.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_filter_zstd.obj `if test -f 'libarchive/test/test_write_filter_zstd.c'; then $(CYGPATH_W) 'libarchive/test/test_write_filter_zstd.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_filter_zstd.c'; fi` -libarchive/test/libarchive_test-test_write_format_ar.o: libarchive/test/test_write_format_ar.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_format_ar.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_ar.Tpo -c -o libarchive/test/libarchive_test-test_write_format_ar.o `test -f 'libarchive/test/test_write_format_ar.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_ar.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_ar.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_ar.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_ar.c' object='libarchive/test/libarchive_test-test_write_format_ar.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_format_7zip.o: libarchive/test/test_write_format_7zip.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_format_7zip.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_format_7zip.Tpo -c -o libarchive/test/test-test_write_format_7zip.o `test -f 'libarchive/test/test_write_format_7zip.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_7zip.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_format_7zip.Tpo libarchive/test/$(DEPDIR)/test-test_write_format_7zip.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_7zip.c' object='libarchive/test/test-test_write_format_7zip.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_format_ar.o `test -f 'libarchive/test/test_write_format_ar.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_ar.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_format_7zip.o `test -f 'libarchive/test/test_write_format_7zip.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_7zip.c -libarchive/test/libarchive_test-test_write_format_ar.obj: libarchive/test/test_write_format_ar.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_format_ar.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_ar.Tpo -c -o libarchive/test/libarchive_test-test_write_format_ar.obj `if test -f 'libarchive/test/test_write_format_ar.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_ar.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_ar.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_ar.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_ar.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_ar.c' object='libarchive/test/libarchive_test-test_write_format_ar.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_format_7zip.obj: libarchive/test/test_write_format_7zip.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_format_7zip.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_format_7zip.Tpo -c -o libarchive/test/test-test_write_format_7zip.obj `if test -f 'libarchive/test/test_write_format_7zip.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_7zip.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_7zip.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_format_7zip.Tpo libarchive/test/$(DEPDIR)/test-test_write_format_7zip.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_7zip.c' object='libarchive/test/test-test_write_format_7zip.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_format_ar.obj `if test -f 'libarchive/test/test_write_format_ar.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_ar.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_ar.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_format_7zip.obj `if test -f 'libarchive/test/test_write_format_7zip.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_7zip.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_7zip.c'; fi` -libarchive/test/libarchive_test-test_write_format_cpio.o: libarchive/test/test_write_format_cpio.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_format_cpio.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_cpio.Tpo -c -o libarchive/test/libarchive_test-test_write_format_cpio.o `test -f 'libarchive/test/test_write_format_cpio.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_cpio.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_cpio.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_cpio.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_cpio.c' object='libarchive/test/libarchive_test-test_write_format_cpio.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_format_7zip_empty.o: libarchive/test/test_write_format_7zip_empty.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_format_7zip_empty.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_format_7zip_empty.Tpo -c -o libarchive/test/test-test_write_format_7zip_empty.o `test -f 'libarchive/test/test_write_format_7zip_empty.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_7zip_empty.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_format_7zip_empty.Tpo libarchive/test/$(DEPDIR)/test-test_write_format_7zip_empty.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_7zip_empty.c' object='libarchive/test/test-test_write_format_7zip_empty.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_format_cpio.o `test -f 'libarchive/test/test_write_format_cpio.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_cpio.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_format_7zip_empty.o `test -f 'libarchive/test/test_write_format_7zip_empty.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_7zip_empty.c -libarchive/test/libarchive_test-test_write_format_cpio.obj: libarchive/test/test_write_format_cpio.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_format_cpio.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_cpio.Tpo -c -o libarchive/test/libarchive_test-test_write_format_cpio.obj `if test -f 'libarchive/test/test_write_format_cpio.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_cpio.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_cpio.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_cpio.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_cpio.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_cpio.c' object='libarchive/test/libarchive_test-test_write_format_cpio.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_format_7zip_empty.obj: libarchive/test/test_write_format_7zip_empty.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_format_7zip_empty.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_format_7zip_empty.Tpo -c -o libarchive/test/test-test_write_format_7zip_empty.obj `if test -f 'libarchive/test/test_write_format_7zip_empty.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_7zip_empty.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_7zip_empty.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_format_7zip_empty.Tpo libarchive/test/$(DEPDIR)/test-test_write_format_7zip_empty.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_7zip_empty.c' object='libarchive/test/test-test_write_format_7zip_empty.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_format_cpio.obj `if test -f 'libarchive/test/test_write_format_cpio.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_cpio.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_cpio.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_format_7zip_empty.obj `if test -f 'libarchive/test/test_write_format_7zip_empty.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_7zip_empty.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_7zip_empty.c'; fi` -libarchive/test/libarchive_test-test_write_format_cpio_empty.o: libarchive/test/test_write_format_cpio_empty.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_format_cpio_empty.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_cpio_empty.Tpo -c -o libarchive/test/libarchive_test-test_write_format_cpio_empty.o `test -f 'libarchive/test/test_write_format_cpio_empty.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_cpio_empty.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_cpio_empty.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_cpio_empty.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_cpio_empty.c' object='libarchive/test/libarchive_test-test_write_format_cpio_empty.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_format_7zip_large.o: libarchive/test/test_write_format_7zip_large.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_format_7zip_large.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_format_7zip_large.Tpo -c -o libarchive/test/test-test_write_format_7zip_large.o `test -f 'libarchive/test/test_write_format_7zip_large.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_7zip_large.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_format_7zip_large.Tpo libarchive/test/$(DEPDIR)/test-test_write_format_7zip_large.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_7zip_large.c' object='libarchive/test/test-test_write_format_7zip_large.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_format_cpio_empty.o `test -f 'libarchive/test/test_write_format_cpio_empty.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_cpio_empty.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_format_7zip_large.o `test -f 'libarchive/test/test_write_format_7zip_large.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_7zip_large.c -libarchive/test/libarchive_test-test_write_format_cpio_empty.obj: libarchive/test/test_write_format_cpio_empty.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_format_cpio_empty.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_cpio_empty.Tpo -c -o libarchive/test/libarchive_test-test_write_format_cpio_empty.obj `if test -f 'libarchive/test/test_write_format_cpio_empty.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_cpio_empty.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_cpio_empty.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_cpio_empty.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_cpio_empty.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_cpio_empty.c' object='libarchive/test/libarchive_test-test_write_format_cpio_empty.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_format_7zip_large.obj: libarchive/test/test_write_format_7zip_large.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_format_7zip_large.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_format_7zip_large.Tpo -c -o libarchive/test/test-test_write_format_7zip_large.obj `if test -f 'libarchive/test/test_write_format_7zip_large.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_7zip_large.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_7zip_large.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_format_7zip_large.Tpo libarchive/test/$(DEPDIR)/test-test_write_format_7zip_large.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_7zip_large.c' object='libarchive/test/test-test_write_format_7zip_large.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_format_cpio_empty.obj `if test -f 'libarchive/test/test_write_format_cpio_empty.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_cpio_empty.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_cpio_empty.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_format_7zip_large.obj `if test -f 'libarchive/test/test_write_format_7zip_large.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_7zip_large.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_7zip_large.c'; fi` -libarchive/test/libarchive_test-test_write_format_cpio_newc.o: libarchive/test/test_write_format_cpio_newc.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_format_cpio_newc.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_cpio_newc.Tpo -c -o libarchive/test/libarchive_test-test_write_format_cpio_newc.o `test -f 'libarchive/test/test_write_format_cpio_newc.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_cpio_newc.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_cpio_newc.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_cpio_newc.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_cpio_newc.c' object='libarchive/test/libarchive_test-test_write_format_cpio_newc.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_format_ar.o: libarchive/test/test_write_format_ar.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_format_ar.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_format_ar.Tpo -c -o libarchive/test/test-test_write_format_ar.o `test -f 'libarchive/test/test_write_format_ar.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_ar.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_format_ar.Tpo libarchive/test/$(DEPDIR)/test-test_write_format_ar.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_ar.c' object='libarchive/test/test-test_write_format_ar.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_format_cpio_newc.o `test -f 'libarchive/test/test_write_format_cpio_newc.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_cpio_newc.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_format_ar.o `test -f 'libarchive/test/test_write_format_ar.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_ar.c -libarchive/test/libarchive_test-test_write_format_cpio_newc.obj: libarchive/test/test_write_format_cpio_newc.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_format_cpio_newc.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_cpio_newc.Tpo -c -o libarchive/test/libarchive_test-test_write_format_cpio_newc.obj `if test -f 'libarchive/test/test_write_format_cpio_newc.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_cpio_newc.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_cpio_newc.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_cpio_newc.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_cpio_newc.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_cpio_newc.c' object='libarchive/test/libarchive_test-test_write_format_cpio_newc.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_format_ar.obj: libarchive/test/test_write_format_ar.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_format_ar.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_format_ar.Tpo -c -o libarchive/test/test-test_write_format_ar.obj `if test -f 'libarchive/test/test_write_format_ar.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_ar.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_ar.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_format_ar.Tpo libarchive/test/$(DEPDIR)/test-test_write_format_ar.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_ar.c' object='libarchive/test/test-test_write_format_ar.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_format_cpio_newc.obj `if test -f 'libarchive/test/test_write_format_cpio_newc.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_cpio_newc.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_cpio_newc.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_format_ar.obj `if test -f 'libarchive/test/test_write_format_ar.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_ar.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_ar.c'; fi` -libarchive/test/libarchive_test-test_write_format_cpio_odc.o: libarchive/test/test_write_format_cpio_odc.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_format_cpio_odc.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_cpio_odc.Tpo -c -o libarchive/test/libarchive_test-test_write_format_cpio_odc.o `test -f 'libarchive/test/test_write_format_cpio_odc.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_cpio_odc.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_cpio_odc.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_cpio_odc.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_cpio_odc.c' object='libarchive/test/libarchive_test-test_write_format_cpio_odc.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_format_cpio.o: libarchive/test/test_write_format_cpio.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_format_cpio.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_format_cpio.Tpo -c -o libarchive/test/test-test_write_format_cpio.o `test -f 'libarchive/test/test_write_format_cpio.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_cpio.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_format_cpio.Tpo libarchive/test/$(DEPDIR)/test-test_write_format_cpio.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_cpio.c' object='libarchive/test/test-test_write_format_cpio.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_format_cpio_odc.o `test -f 'libarchive/test/test_write_format_cpio_odc.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_cpio_odc.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_format_cpio.o `test -f 'libarchive/test/test_write_format_cpio.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_cpio.c -libarchive/test/libarchive_test-test_write_format_cpio_odc.obj: libarchive/test/test_write_format_cpio_odc.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_format_cpio_odc.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_cpio_odc.Tpo -c -o libarchive/test/libarchive_test-test_write_format_cpio_odc.obj `if test -f 'libarchive/test/test_write_format_cpio_odc.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_cpio_odc.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_cpio_odc.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_cpio_odc.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_cpio_odc.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_cpio_odc.c' object='libarchive/test/libarchive_test-test_write_format_cpio_odc.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_format_cpio.obj: libarchive/test/test_write_format_cpio.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_format_cpio.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_format_cpio.Tpo -c -o libarchive/test/test-test_write_format_cpio.obj `if test -f 'libarchive/test/test_write_format_cpio.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_cpio.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_cpio.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_format_cpio.Tpo libarchive/test/$(DEPDIR)/test-test_write_format_cpio.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_cpio.c' object='libarchive/test/test-test_write_format_cpio.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_format_cpio_odc.obj `if test -f 'libarchive/test/test_write_format_cpio_odc.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_cpio_odc.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_cpio_odc.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_format_cpio.obj `if test -f 'libarchive/test/test_write_format_cpio.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_cpio.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_cpio.c'; fi` -libarchive/test/libarchive_test-test_write_format_gnutar.o: libarchive/test/test_write_format_gnutar.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_format_gnutar.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_gnutar.Tpo -c -o libarchive/test/libarchive_test-test_write_format_gnutar.o `test -f 'libarchive/test/test_write_format_gnutar.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_gnutar.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_gnutar.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_gnutar.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_gnutar.c' object='libarchive/test/libarchive_test-test_write_format_gnutar.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_format_cpio_empty.o: libarchive/test/test_write_format_cpio_empty.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_format_cpio_empty.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_format_cpio_empty.Tpo -c -o libarchive/test/test-test_write_format_cpio_empty.o `test -f 'libarchive/test/test_write_format_cpio_empty.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_cpio_empty.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_format_cpio_empty.Tpo libarchive/test/$(DEPDIR)/test-test_write_format_cpio_empty.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_cpio_empty.c' object='libarchive/test/test-test_write_format_cpio_empty.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_format_gnutar.o `test -f 'libarchive/test/test_write_format_gnutar.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_gnutar.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_format_cpio_empty.o `test -f 'libarchive/test/test_write_format_cpio_empty.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_cpio_empty.c -libarchive/test/libarchive_test-test_write_format_gnutar.obj: libarchive/test/test_write_format_gnutar.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_format_gnutar.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_gnutar.Tpo -c -o libarchive/test/libarchive_test-test_write_format_gnutar.obj `if test -f 'libarchive/test/test_write_format_gnutar.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_gnutar.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_gnutar.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_gnutar.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_gnutar.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_gnutar.c' object='libarchive/test/libarchive_test-test_write_format_gnutar.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_format_cpio_empty.obj: libarchive/test/test_write_format_cpio_empty.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_format_cpio_empty.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_format_cpio_empty.Tpo -c -o libarchive/test/test-test_write_format_cpio_empty.obj `if test -f 'libarchive/test/test_write_format_cpio_empty.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_cpio_empty.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_cpio_empty.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_format_cpio_empty.Tpo libarchive/test/$(DEPDIR)/test-test_write_format_cpio_empty.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_cpio_empty.c' object='libarchive/test/test-test_write_format_cpio_empty.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_format_gnutar.obj `if test -f 'libarchive/test/test_write_format_gnutar.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_gnutar.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_gnutar.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_format_cpio_empty.obj `if test -f 'libarchive/test/test_write_format_cpio_empty.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_cpio_empty.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_cpio_empty.c'; fi` -libarchive/test/libarchive_test-test_write_format_gnutar_filenames.o: libarchive/test/test_write_format_gnutar_filenames.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_format_gnutar_filenames.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_gnutar_filenames.Tpo -c -o libarchive/test/libarchive_test-test_write_format_gnutar_filenames.o `test -f 'libarchive/test/test_write_format_gnutar_filenames.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_gnutar_filenames.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_gnutar_filenames.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_gnutar_filenames.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_gnutar_filenames.c' object='libarchive/test/libarchive_test-test_write_format_gnutar_filenames.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_format_cpio_newc.o: libarchive/test/test_write_format_cpio_newc.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_format_cpio_newc.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_format_cpio_newc.Tpo -c -o libarchive/test/test-test_write_format_cpio_newc.o `test -f 'libarchive/test/test_write_format_cpio_newc.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_cpio_newc.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_format_cpio_newc.Tpo libarchive/test/$(DEPDIR)/test-test_write_format_cpio_newc.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_cpio_newc.c' object='libarchive/test/test-test_write_format_cpio_newc.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_format_gnutar_filenames.o `test -f 'libarchive/test/test_write_format_gnutar_filenames.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_gnutar_filenames.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_format_cpio_newc.o `test -f 'libarchive/test/test_write_format_cpio_newc.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_cpio_newc.c -libarchive/test/libarchive_test-test_write_format_gnutar_filenames.obj: libarchive/test/test_write_format_gnutar_filenames.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_format_gnutar_filenames.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_gnutar_filenames.Tpo -c -o libarchive/test/libarchive_test-test_write_format_gnutar_filenames.obj `if test -f 'libarchive/test/test_write_format_gnutar_filenames.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_gnutar_filenames.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_gnutar_filenames.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_gnutar_filenames.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_gnutar_filenames.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_gnutar_filenames.c' object='libarchive/test/libarchive_test-test_write_format_gnutar_filenames.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_format_cpio_newc.obj: libarchive/test/test_write_format_cpio_newc.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_format_cpio_newc.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_format_cpio_newc.Tpo -c -o libarchive/test/test-test_write_format_cpio_newc.obj `if test -f 'libarchive/test/test_write_format_cpio_newc.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_cpio_newc.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_cpio_newc.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_format_cpio_newc.Tpo libarchive/test/$(DEPDIR)/test-test_write_format_cpio_newc.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_cpio_newc.c' object='libarchive/test/test-test_write_format_cpio_newc.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_format_gnutar_filenames.obj `if test -f 'libarchive/test/test_write_format_gnutar_filenames.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_gnutar_filenames.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_gnutar_filenames.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_format_cpio_newc.obj `if test -f 'libarchive/test/test_write_format_cpio_newc.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_cpio_newc.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_cpio_newc.c'; fi` -libarchive/test/libarchive_test-test_write_format_iso9660.o: libarchive/test/test_write_format_iso9660.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_format_iso9660.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_iso9660.Tpo -c -o libarchive/test/libarchive_test-test_write_format_iso9660.o `test -f 'libarchive/test/test_write_format_iso9660.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_iso9660.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_iso9660.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_iso9660.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_iso9660.c' object='libarchive/test/libarchive_test-test_write_format_iso9660.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_format_cpio_odc.o: libarchive/test/test_write_format_cpio_odc.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_format_cpio_odc.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_format_cpio_odc.Tpo -c -o libarchive/test/test-test_write_format_cpio_odc.o `test -f 'libarchive/test/test_write_format_cpio_odc.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_cpio_odc.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_format_cpio_odc.Tpo libarchive/test/$(DEPDIR)/test-test_write_format_cpio_odc.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_cpio_odc.c' object='libarchive/test/test-test_write_format_cpio_odc.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_format_iso9660.o `test -f 'libarchive/test/test_write_format_iso9660.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_iso9660.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_format_cpio_odc.o `test -f 'libarchive/test/test_write_format_cpio_odc.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_cpio_odc.c -libarchive/test/libarchive_test-test_write_format_iso9660.obj: libarchive/test/test_write_format_iso9660.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_format_iso9660.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_iso9660.Tpo -c -o libarchive/test/libarchive_test-test_write_format_iso9660.obj `if test -f 'libarchive/test/test_write_format_iso9660.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_iso9660.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_iso9660.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_iso9660.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_iso9660.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_iso9660.c' object='libarchive/test/libarchive_test-test_write_format_iso9660.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_format_cpio_odc.obj: libarchive/test/test_write_format_cpio_odc.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_format_cpio_odc.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_format_cpio_odc.Tpo -c -o libarchive/test/test-test_write_format_cpio_odc.obj `if test -f 'libarchive/test/test_write_format_cpio_odc.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_cpio_odc.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_cpio_odc.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_format_cpio_odc.Tpo libarchive/test/$(DEPDIR)/test-test_write_format_cpio_odc.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_cpio_odc.c' object='libarchive/test/test-test_write_format_cpio_odc.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_format_iso9660.obj `if test -f 'libarchive/test/test_write_format_iso9660.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_iso9660.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_iso9660.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_format_cpio_odc.obj `if test -f 'libarchive/test/test_write_format_cpio_odc.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_cpio_odc.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_cpio_odc.c'; fi` -libarchive/test/libarchive_test-test_write_format_iso9660_boot.o: libarchive/test/test_write_format_iso9660_boot.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_format_iso9660_boot.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_iso9660_boot.Tpo -c -o libarchive/test/libarchive_test-test_write_format_iso9660_boot.o `test -f 'libarchive/test/test_write_format_iso9660_boot.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_iso9660_boot.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_iso9660_boot.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_iso9660_boot.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_iso9660_boot.c' object='libarchive/test/libarchive_test-test_write_format_iso9660_boot.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_format_gnutar.o: libarchive/test/test_write_format_gnutar.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_format_gnutar.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_format_gnutar.Tpo -c -o libarchive/test/test-test_write_format_gnutar.o `test -f 'libarchive/test/test_write_format_gnutar.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_gnutar.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_format_gnutar.Tpo libarchive/test/$(DEPDIR)/test-test_write_format_gnutar.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_gnutar.c' object='libarchive/test/test-test_write_format_gnutar.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_format_iso9660_boot.o `test -f 'libarchive/test/test_write_format_iso9660_boot.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_iso9660_boot.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_format_gnutar.o `test -f 'libarchive/test/test_write_format_gnutar.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_gnutar.c -libarchive/test/libarchive_test-test_write_format_iso9660_boot.obj: libarchive/test/test_write_format_iso9660_boot.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_format_iso9660_boot.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_iso9660_boot.Tpo -c -o libarchive/test/libarchive_test-test_write_format_iso9660_boot.obj `if test -f 'libarchive/test/test_write_format_iso9660_boot.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_iso9660_boot.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_iso9660_boot.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_iso9660_boot.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_iso9660_boot.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_iso9660_boot.c' object='libarchive/test/libarchive_test-test_write_format_iso9660_boot.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_format_gnutar.obj: libarchive/test/test_write_format_gnutar.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_format_gnutar.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_format_gnutar.Tpo -c -o libarchive/test/test-test_write_format_gnutar.obj `if test -f 'libarchive/test/test_write_format_gnutar.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_gnutar.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_gnutar.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_format_gnutar.Tpo libarchive/test/$(DEPDIR)/test-test_write_format_gnutar.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_gnutar.c' object='libarchive/test/test-test_write_format_gnutar.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_format_iso9660_boot.obj `if test -f 'libarchive/test/test_write_format_iso9660_boot.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_iso9660_boot.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_iso9660_boot.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_format_gnutar.obj `if test -f 'libarchive/test/test_write_format_gnutar.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_gnutar.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_gnutar.c'; fi` -libarchive/test/libarchive_test-test_write_format_iso9660_empty.o: libarchive/test/test_write_format_iso9660_empty.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_format_iso9660_empty.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_iso9660_empty.Tpo -c -o libarchive/test/libarchive_test-test_write_format_iso9660_empty.o `test -f 'libarchive/test/test_write_format_iso9660_empty.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_iso9660_empty.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_iso9660_empty.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_iso9660_empty.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_iso9660_empty.c' object='libarchive/test/libarchive_test-test_write_format_iso9660_empty.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_format_gnutar_filenames.o: libarchive/test/test_write_format_gnutar_filenames.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_format_gnutar_filenames.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_format_gnutar_filenames.Tpo -c -o libarchive/test/test-test_write_format_gnutar_filenames.o `test -f 'libarchive/test/test_write_format_gnutar_filenames.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_gnutar_filenames.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_format_gnutar_filenames.Tpo libarchive/test/$(DEPDIR)/test-test_write_format_gnutar_filenames.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_gnutar_filenames.c' object='libarchive/test/test-test_write_format_gnutar_filenames.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_format_iso9660_empty.o `test -f 'libarchive/test/test_write_format_iso9660_empty.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_iso9660_empty.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_format_gnutar_filenames.o `test -f 'libarchive/test/test_write_format_gnutar_filenames.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_gnutar_filenames.c -libarchive/test/libarchive_test-test_write_format_iso9660_empty.obj: libarchive/test/test_write_format_iso9660_empty.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_format_iso9660_empty.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_iso9660_empty.Tpo -c -o libarchive/test/libarchive_test-test_write_format_iso9660_empty.obj `if test -f 'libarchive/test/test_write_format_iso9660_empty.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_iso9660_empty.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_iso9660_empty.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_iso9660_empty.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_iso9660_empty.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_iso9660_empty.c' object='libarchive/test/libarchive_test-test_write_format_iso9660_empty.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_format_gnutar_filenames.obj: libarchive/test/test_write_format_gnutar_filenames.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_format_gnutar_filenames.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_format_gnutar_filenames.Tpo -c -o libarchive/test/test-test_write_format_gnutar_filenames.obj `if test -f 'libarchive/test/test_write_format_gnutar_filenames.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_gnutar_filenames.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_gnutar_filenames.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_format_gnutar_filenames.Tpo libarchive/test/$(DEPDIR)/test-test_write_format_gnutar_filenames.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_gnutar_filenames.c' object='libarchive/test/test-test_write_format_gnutar_filenames.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_format_iso9660_empty.obj `if test -f 'libarchive/test/test_write_format_iso9660_empty.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_iso9660_empty.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_iso9660_empty.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_format_gnutar_filenames.obj `if test -f 'libarchive/test/test_write_format_gnutar_filenames.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_gnutar_filenames.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_gnutar_filenames.c'; fi` -libarchive/test/libarchive_test-test_write_format_iso9660_filename.o: libarchive/test/test_write_format_iso9660_filename.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_format_iso9660_filename.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_iso9660_filename.Tpo -c -o libarchive/test/libarchive_test-test_write_format_iso9660_filename.o `test -f 'libarchive/test/test_write_format_iso9660_filename.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_iso9660_filename.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_iso9660_filename.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_iso9660_filename.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_iso9660_filename.c' object='libarchive/test/libarchive_test-test_write_format_iso9660_filename.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_format_iso9660.o: libarchive/test/test_write_format_iso9660.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_format_iso9660.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_format_iso9660.Tpo -c -o libarchive/test/test-test_write_format_iso9660.o `test -f 'libarchive/test/test_write_format_iso9660.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_iso9660.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_format_iso9660.Tpo libarchive/test/$(DEPDIR)/test-test_write_format_iso9660.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_iso9660.c' object='libarchive/test/test-test_write_format_iso9660.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_format_iso9660_filename.o `test -f 'libarchive/test/test_write_format_iso9660_filename.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_iso9660_filename.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_format_iso9660.o `test -f 'libarchive/test/test_write_format_iso9660.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_iso9660.c -libarchive/test/libarchive_test-test_write_format_iso9660_filename.obj: libarchive/test/test_write_format_iso9660_filename.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_format_iso9660_filename.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_iso9660_filename.Tpo -c -o libarchive/test/libarchive_test-test_write_format_iso9660_filename.obj `if test -f 'libarchive/test/test_write_format_iso9660_filename.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_iso9660_filename.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_iso9660_filename.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_iso9660_filename.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_iso9660_filename.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_iso9660_filename.c' object='libarchive/test/libarchive_test-test_write_format_iso9660_filename.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_format_iso9660.obj: libarchive/test/test_write_format_iso9660.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_format_iso9660.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_format_iso9660.Tpo -c -o libarchive/test/test-test_write_format_iso9660.obj `if test -f 'libarchive/test/test_write_format_iso9660.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_iso9660.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_iso9660.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_format_iso9660.Tpo libarchive/test/$(DEPDIR)/test-test_write_format_iso9660.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_iso9660.c' object='libarchive/test/test-test_write_format_iso9660.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_format_iso9660_filename.obj `if test -f 'libarchive/test/test_write_format_iso9660_filename.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_iso9660_filename.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_iso9660_filename.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_format_iso9660.obj `if test -f 'libarchive/test/test_write_format_iso9660.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_iso9660.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_iso9660.c'; fi` -libarchive/test/libarchive_test-test_write_format_iso9660_zisofs.o: libarchive/test/test_write_format_iso9660_zisofs.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_format_iso9660_zisofs.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_iso9660_zisofs.Tpo -c -o libarchive/test/libarchive_test-test_write_format_iso9660_zisofs.o `test -f 'libarchive/test/test_write_format_iso9660_zisofs.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_iso9660_zisofs.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_iso9660_zisofs.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_iso9660_zisofs.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_iso9660_zisofs.c' object='libarchive/test/libarchive_test-test_write_format_iso9660_zisofs.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_format_iso9660_boot.o: libarchive/test/test_write_format_iso9660_boot.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_format_iso9660_boot.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_format_iso9660_boot.Tpo -c -o libarchive/test/test-test_write_format_iso9660_boot.o `test -f 'libarchive/test/test_write_format_iso9660_boot.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_iso9660_boot.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_format_iso9660_boot.Tpo libarchive/test/$(DEPDIR)/test-test_write_format_iso9660_boot.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_iso9660_boot.c' object='libarchive/test/test-test_write_format_iso9660_boot.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_format_iso9660_zisofs.o `test -f 'libarchive/test/test_write_format_iso9660_zisofs.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_iso9660_zisofs.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_format_iso9660_boot.o `test -f 'libarchive/test/test_write_format_iso9660_boot.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_iso9660_boot.c -libarchive/test/libarchive_test-test_write_format_iso9660_zisofs.obj: libarchive/test/test_write_format_iso9660_zisofs.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_format_iso9660_zisofs.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_iso9660_zisofs.Tpo -c -o libarchive/test/libarchive_test-test_write_format_iso9660_zisofs.obj `if test -f 'libarchive/test/test_write_format_iso9660_zisofs.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_iso9660_zisofs.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_iso9660_zisofs.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_iso9660_zisofs.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_iso9660_zisofs.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_iso9660_zisofs.c' object='libarchive/test/libarchive_test-test_write_format_iso9660_zisofs.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_format_iso9660_boot.obj: libarchive/test/test_write_format_iso9660_boot.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_format_iso9660_boot.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_format_iso9660_boot.Tpo -c -o libarchive/test/test-test_write_format_iso9660_boot.obj `if test -f 'libarchive/test/test_write_format_iso9660_boot.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_iso9660_boot.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_iso9660_boot.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_format_iso9660_boot.Tpo libarchive/test/$(DEPDIR)/test-test_write_format_iso9660_boot.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_iso9660_boot.c' object='libarchive/test/test-test_write_format_iso9660_boot.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_format_iso9660_zisofs.obj `if test -f 'libarchive/test/test_write_format_iso9660_zisofs.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_iso9660_zisofs.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_iso9660_zisofs.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_format_iso9660_boot.obj `if test -f 'libarchive/test/test_write_format_iso9660_boot.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_iso9660_boot.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_iso9660_boot.c'; fi` -libarchive/test/libarchive_test-test_write_format_mtree.o: libarchive/test/test_write_format_mtree.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_format_mtree.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_mtree.Tpo -c -o libarchive/test/libarchive_test-test_write_format_mtree.o `test -f 'libarchive/test/test_write_format_mtree.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_mtree.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_mtree.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_mtree.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_mtree.c' object='libarchive/test/libarchive_test-test_write_format_mtree.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_format_iso9660_empty.o: libarchive/test/test_write_format_iso9660_empty.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_format_iso9660_empty.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_format_iso9660_empty.Tpo -c -o libarchive/test/test-test_write_format_iso9660_empty.o `test -f 'libarchive/test/test_write_format_iso9660_empty.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_iso9660_empty.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_format_iso9660_empty.Tpo libarchive/test/$(DEPDIR)/test-test_write_format_iso9660_empty.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_iso9660_empty.c' object='libarchive/test/test-test_write_format_iso9660_empty.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_format_mtree.o `test -f 'libarchive/test/test_write_format_mtree.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_mtree.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_format_iso9660_empty.o `test -f 'libarchive/test/test_write_format_iso9660_empty.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_iso9660_empty.c -libarchive/test/libarchive_test-test_write_format_mtree.obj: libarchive/test/test_write_format_mtree.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_format_mtree.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_mtree.Tpo -c -o libarchive/test/libarchive_test-test_write_format_mtree.obj `if test -f 'libarchive/test/test_write_format_mtree.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_mtree.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_mtree.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_mtree.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_mtree.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_mtree.c' object='libarchive/test/libarchive_test-test_write_format_mtree.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_format_iso9660_empty.obj: libarchive/test/test_write_format_iso9660_empty.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_format_iso9660_empty.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_format_iso9660_empty.Tpo -c -o libarchive/test/test-test_write_format_iso9660_empty.obj `if test -f 'libarchive/test/test_write_format_iso9660_empty.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_iso9660_empty.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_iso9660_empty.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_format_iso9660_empty.Tpo libarchive/test/$(DEPDIR)/test-test_write_format_iso9660_empty.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_iso9660_empty.c' object='libarchive/test/test-test_write_format_iso9660_empty.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_format_mtree.obj `if test -f 'libarchive/test/test_write_format_mtree.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_mtree.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_mtree.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_format_iso9660_empty.obj `if test -f 'libarchive/test/test_write_format_iso9660_empty.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_iso9660_empty.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_iso9660_empty.c'; fi` -libarchive/test/libarchive_test-test_write_format_mtree_absolute_path.o: libarchive/test/test_write_format_mtree_absolute_path.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_format_mtree_absolute_path.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_mtree_absolute_path.Tpo -c -o libarchive/test/libarchive_test-test_write_format_mtree_absolute_path.o `test -f 'libarchive/test/test_write_format_mtree_absolute_path.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_mtree_absolute_path.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_mtree_absolute_path.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_mtree_absolute_path.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_mtree_absolute_path.c' object='libarchive/test/libarchive_test-test_write_format_mtree_absolute_path.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_format_iso9660_filename.o: libarchive/test/test_write_format_iso9660_filename.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_format_iso9660_filename.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_format_iso9660_filename.Tpo -c -o libarchive/test/test-test_write_format_iso9660_filename.o `test -f 'libarchive/test/test_write_format_iso9660_filename.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_iso9660_filename.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_format_iso9660_filename.Tpo libarchive/test/$(DEPDIR)/test-test_write_format_iso9660_filename.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_iso9660_filename.c' object='libarchive/test/test-test_write_format_iso9660_filename.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_format_mtree_absolute_path.o `test -f 'libarchive/test/test_write_format_mtree_absolute_path.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_mtree_absolute_path.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_format_iso9660_filename.o `test -f 'libarchive/test/test_write_format_iso9660_filename.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_iso9660_filename.c -libarchive/test/libarchive_test-test_write_format_mtree_absolute_path.obj: libarchive/test/test_write_format_mtree_absolute_path.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_format_mtree_absolute_path.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_mtree_absolute_path.Tpo -c -o libarchive/test/libarchive_test-test_write_format_mtree_absolute_path.obj `if test -f 'libarchive/test/test_write_format_mtree_absolute_path.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_mtree_absolute_path.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_mtree_absolute_path.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_mtree_absolute_path.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_mtree_absolute_path.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_mtree_absolute_path.c' object='libarchive/test/libarchive_test-test_write_format_mtree_absolute_path.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_format_iso9660_filename.obj: libarchive/test/test_write_format_iso9660_filename.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_format_iso9660_filename.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_format_iso9660_filename.Tpo -c -o libarchive/test/test-test_write_format_iso9660_filename.obj `if test -f 'libarchive/test/test_write_format_iso9660_filename.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_iso9660_filename.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_iso9660_filename.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_format_iso9660_filename.Tpo libarchive/test/$(DEPDIR)/test-test_write_format_iso9660_filename.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_iso9660_filename.c' object='libarchive/test/test-test_write_format_iso9660_filename.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_format_mtree_absolute_path.obj `if test -f 'libarchive/test/test_write_format_mtree_absolute_path.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_mtree_absolute_path.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_mtree_absolute_path.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_format_iso9660_filename.obj `if test -f 'libarchive/test/test_write_format_iso9660_filename.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_iso9660_filename.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_iso9660_filename.c'; fi` -libarchive/test/libarchive_test-test_write_format_mtree_classic.o: libarchive/test/test_write_format_mtree_classic.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_format_mtree_classic.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_mtree_classic.Tpo -c -o libarchive/test/libarchive_test-test_write_format_mtree_classic.o `test -f 'libarchive/test/test_write_format_mtree_classic.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_mtree_classic.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_mtree_classic.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_mtree_classic.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_mtree_classic.c' object='libarchive/test/libarchive_test-test_write_format_mtree_classic.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_format_iso9660_zisofs.o: libarchive/test/test_write_format_iso9660_zisofs.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_format_iso9660_zisofs.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_format_iso9660_zisofs.Tpo -c -o libarchive/test/test-test_write_format_iso9660_zisofs.o `test -f 'libarchive/test/test_write_format_iso9660_zisofs.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_iso9660_zisofs.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_format_iso9660_zisofs.Tpo libarchive/test/$(DEPDIR)/test-test_write_format_iso9660_zisofs.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_iso9660_zisofs.c' object='libarchive/test/test-test_write_format_iso9660_zisofs.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_format_mtree_classic.o `test -f 'libarchive/test/test_write_format_mtree_classic.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_mtree_classic.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_format_iso9660_zisofs.o `test -f 'libarchive/test/test_write_format_iso9660_zisofs.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_iso9660_zisofs.c -libarchive/test/libarchive_test-test_write_format_mtree_classic.obj: libarchive/test/test_write_format_mtree_classic.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_format_mtree_classic.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_mtree_classic.Tpo -c -o libarchive/test/libarchive_test-test_write_format_mtree_classic.obj `if test -f 'libarchive/test/test_write_format_mtree_classic.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_mtree_classic.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_mtree_classic.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_mtree_classic.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_mtree_classic.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_mtree_classic.c' object='libarchive/test/libarchive_test-test_write_format_mtree_classic.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_format_iso9660_zisofs.obj: libarchive/test/test_write_format_iso9660_zisofs.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_format_iso9660_zisofs.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_format_iso9660_zisofs.Tpo -c -o libarchive/test/test-test_write_format_iso9660_zisofs.obj `if test -f 'libarchive/test/test_write_format_iso9660_zisofs.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_iso9660_zisofs.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_iso9660_zisofs.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_format_iso9660_zisofs.Tpo libarchive/test/$(DEPDIR)/test-test_write_format_iso9660_zisofs.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_iso9660_zisofs.c' object='libarchive/test/test-test_write_format_iso9660_zisofs.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_format_mtree_classic.obj `if test -f 'libarchive/test/test_write_format_mtree_classic.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_mtree_classic.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_mtree_classic.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_format_iso9660_zisofs.obj `if test -f 'libarchive/test/test_write_format_iso9660_zisofs.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_iso9660_zisofs.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_iso9660_zisofs.c'; fi` -libarchive/test/libarchive_test-test_write_format_mtree_classic_indent.o: libarchive/test/test_write_format_mtree_classic_indent.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_format_mtree_classic_indent.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_mtree_classic_indent.Tpo -c -o libarchive/test/libarchive_test-test_write_format_mtree_classic_indent.o `test -f 'libarchive/test/test_write_format_mtree_classic_indent.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_mtree_classic_indent.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_mtree_classic_indent.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_mtree_classic_indent.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_mtree_classic_indent.c' object='libarchive/test/libarchive_test-test_write_format_mtree_classic_indent.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_format_mtree.o: libarchive/test/test_write_format_mtree.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_format_mtree.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_format_mtree.Tpo -c -o libarchive/test/test-test_write_format_mtree.o `test -f 'libarchive/test/test_write_format_mtree.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_mtree.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_format_mtree.Tpo libarchive/test/$(DEPDIR)/test-test_write_format_mtree.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_mtree.c' object='libarchive/test/test-test_write_format_mtree.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_format_mtree_classic_indent.o `test -f 'libarchive/test/test_write_format_mtree_classic_indent.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_mtree_classic_indent.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_format_mtree.o `test -f 'libarchive/test/test_write_format_mtree.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_mtree.c -libarchive/test/libarchive_test-test_write_format_mtree_classic_indent.obj: libarchive/test/test_write_format_mtree_classic_indent.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_format_mtree_classic_indent.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_mtree_classic_indent.Tpo -c -o libarchive/test/libarchive_test-test_write_format_mtree_classic_indent.obj `if test -f 'libarchive/test/test_write_format_mtree_classic_indent.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_mtree_classic_indent.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_mtree_classic_indent.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_mtree_classic_indent.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_mtree_classic_indent.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_mtree_classic_indent.c' object='libarchive/test/libarchive_test-test_write_format_mtree_classic_indent.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_format_mtree.obj: libarchive/test/test_write_format_mtree.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_format_mtree.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_format_mtree.Tpo -c -o libarchive/test/test-test_write_format_mtree.obj `if test -f 'libarchive/test/test_write_format_mtree.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_mtree.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_mtree.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_format_mtree.Tpo libarchive/test/$(DEPDIR)/test-test_write_format_mtree.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_mtree.c' object='libarchive/test/test-test_write_format_mtree.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_format_mtree_classic_indent.obj `if test -f 'libarchive/test/test_write_format_mtree_classic_indent.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_mtree_classic_indent.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_mtree_classic_indent.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_format_mtree.obj `if test -f 'libarchive/test/test_write_format_mtree.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_mtree.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_mtree.c'; fi` -libarchive/test/libarchive_test-test_write_format_mtree_fflags.o: libarchive/test/test_write_format_mtree_fflags.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_format_mtree_fflags.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_mtree_fflags.Tpo -c -o libarchive/test/libarchive_test-test_write_format_mtree_fflags.o `test -f 'libarchive/test/test_write_format_mtree_fflags.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_mtree_fflags.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_mtree_fflags.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_mtree_fflags.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_mtree_fflags.c' object='libarchive/test/libarchive_test-test_write_format_mtree_fflags.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_format_mtree_absolute_path.o: libarchive/test/test_write_format_mtree_absolute_path.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_format_mtree_absolute_path.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_format_mtree_absolute_path.Tpo -c -o libarchive/test/test-test_write_format_mtree_absolute_path.o `test -f 'libarchive/test/test_write_format_mtree_absolute_path.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_mtree_absolute_path.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_format_mtree_absolute_path.Tpo libarchive/test/$(DEPDIR)/test-test_write_format_mtree_absolute_path.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_mtree_absolute_path.c' object='libarchive/test/test-test_write_format_mtree_absolute_path.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_format_mtree_fflags.o `test -f 'libarchive/test/test_write_format_mtree_fflags.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_mtree_fflags.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_format_mtree_absolute_path.o `test -f 'libarchive/test/test_write_format_mtree_absolute_path.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_mtree_absolute_path.c -libarchive/test/libarchive_test-test_write_format_mtree_fflags.obj: libarchive/test/test_write_format_mtree_fflags.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_format_mtree_fflags.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_mtree_fflags.Tpo -c -o libarchive/test/libarchive_test-test_write_format_mtree_fflags.obj `if test -f 'libarchive/test/test_write_format_mtree_fflags.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_mtree_fflags.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_mtree_fflags.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_mtree_fflags.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_mtree_fflags.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_mtree_fflags.c' object='libarchive/test/libarchive_test-test_write_format_mtree_fflags.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_format_mtree_absolute_path.obj: libarchive/test/test_write_format_mtree_absolute_path.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_format_mtree_absolute_path.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_format_mtree_absolute_path.Tpo -c -o libarchive/test/test-test_write_format_mtree_absolute_path.obj `if test -f 'libarchive/test/test_write_format_mtree_absolute_path.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_mtree_absolute_path.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_mtree_absolute_path.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_format_mtree_absolute_path.Tpo libarchive/test/$(DEPDIR)/test-test_write_format_mtree_absolute_path.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_mtree_absolute_path.c' object='libarchive/test/test-test_write_format_mtree_absolute_path.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_format_mtree_fflags.obj `if test -f 'libarchive/test/test_write_format_mtree_fflags.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_mtree_fflags.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_mtree_fflags.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_format_mtree_absolute_path.obj `if test -f 'libarchive/test/test_write_format_mtree_absolute_path.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_mtree_absolute_path.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_mtree_absolute_path.c'; fi` -libarchive/test/libarchive_test-test_write_format_mtree_no_separator.o: libarchive/test/test_write_format_mtree_no_separator.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_format_mtree_no_separator.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_mtree_no_separator.Tpo -c -o libarchive/test/libarchive_test-test_write_format_mtree_no_separator.o `test -f 'libarchive/test/test_write_format_mtree_no_separator.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_mtree_no_separator.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_mtree_no_separator.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_mtree_no_separator.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_mtree_no_separator.c' object='libarchive/test/libarchive_test-test_write_format_mtree_no_separator.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_format_mtree_classic.o: libarchive/test/test_write_format_mtree_classic.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_format_mtree_classic.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_format_mtree_classic.Tpo -c -o libarchive/test/test-test_write_format_mtree_classic.o `test -f 'libarchive/test/test_write_format_mtree_classic.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_mtree_classic.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_format_mtree_classic.Tpo libarchive/test/$(DEPDIR)/test-test_write_format_mtree_classic.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_mtree_classic.c' object='libarchive/test/test-test_write_format_mtree_classic.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_format_mtree_no_separator.o `test -f 'libarchive/test/test_write_format_mtree_no_separator.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_mtree_no_separator.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_format_mtree_classic.o `test -f 'libarchive/test/test_write_format_mtree_classic.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_mtree_classic.c -libarchive/test/libarchive_test-test_write_format_mtree_no_separator.obj: libarchive/test/test_write_format_mtree_no_separator.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_format_mtree_no_separator.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_mtree_no_separator.Tpo -c -o libarchive/test/libarchive_test-test_write_format_mtree_no_separator.obj `if test -f 'libarchive/test/test_write_format_mtree_no_separator.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_mtree_no_separator.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_mtree_no_separator.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_mtree_no_separator.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_mtree_no_separator.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_mtree_no_separator.c' object='libarchive/test/libarchive_test-test_write_format_mtree_no_separator.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_format_mtree_classic.obj: libarchive/test/test_write_format_mtree_classic.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_format_mtree_classic.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_format_mtree_classic.Tpo -c -o libarchive/test/test-test_write_format_mtree_classic.obj `if test -f 'libarchive/test/test_write_format_mtree_classic.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_mtree_classic.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_mtree_classic.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_format_mtree_classic.Tpo libarchive/test/$(DEPDIR)/test-test_write_format_mtree_classic.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_mtree_classic.c' object='libarchive/test/test-test_write_format_mtree_classic.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_format_mtree_no_separator.obj `if test -f 'libarchive/test/test_write_format_mtree_no_separator.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_mtree_no_separator.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_mtree_no_separator.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_format_mtree_classic.obj `if test -f 'libarchive/test/test_write_format_mtree_classic.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_mtree_classic.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_mtree_classic.c'; fi` -libarchive/test/libarchive_test-test_write_format_mtree_quoted_filename.o: libarchive/test/test_write_format_mtree_quoted_filename.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_format_mtree_quoted_filename.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_mtree_quoted_filename.Tpo -c -o libarchive/test/libarchive_test-test_write_format_mtree_quoted_filename.o `test -f 'libarchive/test/test_write_format_mtree_quoted_filename.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_mtree_quoted_filename.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_mtree_quoted_filename.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_mtree_quoted_filename.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_mtree_quoted_filename.c' object='libarchive/test/libarchive_test-test_write_format_mtree_quoted_filename.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_format_mtree_classic_indent.o: libarchive/test/test_write_format_mtree_classic_indent.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_format_mtree_classic_indent.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_format_mtree_classic_indent.Tpo -c -o libarchive/test/test-test_write_format_mtree_classic_indent.o `test -f 'libarchive/test/test_write_format_mtree_classic_indent.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_mtree_classic_indent.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_format_mtree_classic_indent.Tpo libarchive/test/$(DEPDIR)/test-test_write_format_mtree_classic_indent.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_mtree_classic_indent.c' object='libarchive/test/test-test_write_format_mtree_classic_indent.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_format_mtree_quoted_filename.o `test -f 'libarchive/test/test_write_format_mtree_quoted_filename.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_mtree_quoted_filename.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_format_mtree_classic_indent.o `test -f 'libarchive/test/test_write_format_mtree_classic_indent.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_mtree_classic_indent.c -libarchive/test/libarchive_test-test_write_format_mtree_quoted_filename.obj: libarchive/test/test_write_format_mtree_quoted_filename.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_format_mtree_quoted_filename.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_mtree_quoted_filename.Tpo -c -o libarchive/test/libarchive_test-test_write_format_mtree_quoted_filename.obj `if test -f 'libarchive/test/test_write_format_mtree_quoted_filename.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_mtree_quoted_filename.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_mtree_quoted_filename.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_mtree_quoted_filename.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_mtree_quoted_filename.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_mtree_quoted_filename.c' object='libarchive/test/libarchive_test-test_write_format_mtree_quoted_filename.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_format_mtree_classic_indent.obj: libarchive/test/test_write_format_mtree_classic_indent.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_format_mtree_classic_indent.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_format_mtree_classic_indent.Tpo -c -o libarchive/test/test-test_write_format_mtree_classic_indent.obj `if test -f 'libarchive/test/test_write_format_mtree_classic_indent.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_mtree_classic_indent.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_mtree_classic_indent.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_format_mtree_classic_indent.Tpo libarchive/test/$(DEPDIR)/test-test_write_format_mtree_classic_indent.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_mtree_classic_indent.c' object='libarchive/test/test-test_write_format_mtree_classic_indent.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_format_mtree_quoted_filename.obj `if test -f 'libarchive/test/test_write_format_mtree_quoted_filename.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_mtree_quoted_filename.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_mtree_quoted_filename.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_format_mtree_classic_indent.obj `if test -f 'libarchive/test/test_write_format_mtree_classic_indent.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_mtree_classic_indent.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_mtree_classic_indent.c'; fi` -libarchive/test/libarchive_test-test_write_format_pax.o: libarchive/test/test_write_format_pax.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_format_pax.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_pax.Tpo -c -o libarchive/test/libarchive_test-test_write_format_pax.o `test -f 'libarchive/test/test_write_format_pax.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_pax.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_pax.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_pax.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_pax.c' object='libarchive/test/libarchive_test-test_write_format_pax.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_format_mtree_fflags.o: libarchive/test/test_write_format_mtree_fflags.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_format_mtree_fflags.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_format_mtree_fflags.Tpo -c -o libarchive/test/test-test_write_format_mtree_fflags.o `test -f 'libarchive/test/test_write_format_mtree_fflags.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_mtree_fflags.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_format_mtree_fflags.Tpo libarchive/test/$(DEPDIR)/test-test_write_format_mtree_fflags.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_mtree_fflags.c' object='libarchive/test/test-test_write_format_mtree_fflags.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_format_pax.o `test -f 'libarchive/test/test_write_format_pax.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_pax.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_format_mtree_fflags.o `test -f 'libarchive/test/test_write_format_mtree_fflags.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_mtree_fflags.c -libarchive/test/libarchive_test-test_write_format_pax.obj: libarchive/test/test_write_format_pax.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_format_pax.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_pax.Tpo -c -o libarchive/test/libarchive_test-test_write_format_pax.obj `if test -f 'libarchive/test/test_write_format_pax.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_pax.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_pax.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_pax.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_pax.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_pax.c' object='libarchive/test/libarchive_test-test_write_format_pax.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_format_mtree_fflags.obj: libarchive/test/test_write_format_mtree_fflags.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_format_mtree_fflags.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_format_mtree_fflags.Tpo -c -o libarchive/test/test-test_write_format_mtree_fflags.obj `if test -f 'libarchive/test/test_write_format_mtree_fflags.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_mtree_fflags.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_mtree_fflags.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_format_mtree_fflags.Tpo libarchive/test/$(DEPDIR)/test-test_write_format_mtree_fflags.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_mtree_fflags.c' object='libarchive/test/test-test_write_format_mtree_fflags.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_format_pax.obj `if test -f 'libarchive/test/test_write_format_pax.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_pax.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_pax.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_format_mtree_fflags.obj `if test -f 'libarchive/test/test_write_format_mtree_fflags.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_mtree_fflags.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_mtree_fflags.c'; fi` -libarchive/test/libarchive_test-test_write_format_raw.o: libarchive/test/test_write_format_raw.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_format_raw.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_raw.Tpo -c -o libarchive/test/libarchive_test-test_write_format_raw.o `test -f 'libarchive/test/test_write_format_raw.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_raw.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_raw.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_raw.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_raw.c' object='libarchive/test/libarchive_test-test_write_format_raw.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_format_mtree_no_separator.o: libarchive/test/test_write_format_mtree_no_separator.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_format_mtree_no_separator.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_format_mtree_no_separator.Tpo -c -o libarchive/test/test-test_write_format_mtree_no_separator.o `test -f 'libarchive/test/test_write_format_mtree_no_separator.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_mtree_no_separator.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_format_mtree_no_separator.Tpo libarchive/test/$(DEPDIR)/test-test_write_format_mtree_no_separator.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_mtree_no_separator.c' object='libarchive/test/test-test_write_format_mtree_no_separator.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_format_raw.o `test -f 'libarchive/test/test_write_format_raw.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_raw.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_format_mtree_no_separator.o `test -f 'libarchive/test/test_write_format_mtree_no_separator.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_mtree_no_separator.c -libarchive/test/libarchive_test-test_write_format_raw.obj: libarchive/test/test_write_format_raw.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_format_raw.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_raw.Tpo -c -o libarchive/test/libarchive_test-test_write_format_raw.obj `if test -f 'libarchive/test/test_write_format_raw.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_raw.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_raw.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_raw.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_raw.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_raw.c' object='libarchive/test/libarchive_test-test_write_format_raw.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_format_mtree_no_separator.obj: libarchive/test/test_write_format_mtree_no_separator.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_format_mtree_no_separator.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_format_mtree_no_separator.Tpo -c -o libarchive/test/test-test_write_format_mtree_no_separator.obj `if test -f 'libarchive/test/test_write_format_mtree_no_separator.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_mtree_no_separator.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_mtree_no_separator.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_format_mtree_no_separator.Tpo libarchive/test/$(DEPDIR)/test-test_write_format_mtree_no_separator.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_mtree_no_separator.c' object='libarchive/test/test-test_write_format_mtree_no_separator.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_format_raw.obj `if test -f 'libarchive/test/test_write_format_raw.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_raw.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_raw.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_format_mtree_no_separator.obj `if test -f 'libarchive/test/test_write_format_mtree_no_separator.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_mtree_no_separator.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_mtree_no_separator.c'; fi` -libarchive/test/libarchive_test-test_write_format_raw_b64.o: libarchive/test/test_write_format_raw_b64.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_format_raw_b64.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_raw_b64.Tpo -c -o libarchive/test/libarchive_test-test_write_format_raw_b64.o `test -f 'libarchive/test/test_write_format_raw_b64.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_raw_b64.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_raw_b64.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_raw_b64.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_raw_b64.c' object='libarchive/test/libarchive_test-test_write_format_raw_b64.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_format_mtree_quoted_filename.o: libarchive/test/test_write_format_mtree_quoted_filename.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_format_mtree_quoted_filename.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_format_mtree_quoted_filename.Tpo -c -o libarchive/test/test-test_write_format_mtree_quoted_filename.o `test -f 'libarchive/test/test_write_format_mtree_quoted_filename.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_mtree_quoted_filename.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_format_mtree_quoted_filename.Tpo libarchive/test/$(DEPDIR)/test-test_write_format_mtree_quoted_filename.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_mtree_quoted_filename.c' object='libarchive/test/test-test_write_format_mtree_quoted_filename.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_format_raw_b64.o `test -f 'libarchive/test/test_write_format_raw_b64.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_raw_b64.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_format_mtree_quoted_filename.o `test -f 'libarchive/test/test_write_format_mtree_quoted_filename.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_mtree_quoted_filename.c -libarchive/test/libarchive_test-test_write_format_raw_b64.obj: libarchive/test/test_write_format_raw_b64.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_format_raw_b64.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_raw_b64.Tpo -c -o libarchive/test/libarchive_test-test_write_format_raw_b64.obj `if test -f 'libarchive/test/test_write_format_raw_b64.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_raw_b64.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_raw_b64.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_raw_b64.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_raw_b64.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_raw_b64.c' object='libarchive/test/libarchive_test-test_write_format_raw_b64.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_format_mtree_quoted_filename.obj: libarchive/test/test_write_format_mtree_quoted_filename.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_format_mtree_quoted_filename.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_format_mtree_quoted_filename.Tpo -c -o libarchive/test/test-test_write_format_mtree_quoted_filename.obj `if test -f 'libarchive/test/test_write_format_mtree_quoted_filename.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_mtree_quoted_filename.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_mtree_quoted_filename.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_format_mtree_quoted_filename.Tpo libarchive/test/$(DEPDIR)/test-test_write_format_mtree_quoted_filename.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_mtree_quoted_filename.c' object='libarchive/test/test-test_write_format_mtree_quoted_filename.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_format_raw_b64.obj `if test -f 'libarchive/test/test_write_format_raw_b64.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_raw_b64.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_raw_b64.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_format_mtree_quoted_filename.obj `if test -f 'libarchive/test/test_write_format_mtree_quoted_filename.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_mtree_quoted_filename.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_mtree_quoted_filename.c'; fi` -libarchive/test/libarchive_test-test_write_format_shar_empty.o: libarchive/test/test_write_format_shar_empty.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_format_shar_empty.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_shar_empty.Tpo -c -o libarchive/test/libarchive_test-test_write_format_shar_empty.o `test -f 'libarchive/test/test_write_format_shar_empty.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_shar_empty.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_shar_empty.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_shar_empty.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_shar_empty.c' object='libarchive/test/libarchive_test-test_write_format_shar_empty.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_format_pax.o: libarchive/test/test_write_format_pax.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_format_pax.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_format_pax.Tpo -c -o libarchive/test/test-test_write_format_pax.o `test -f 'libarchive/test/test_write_format_pax.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_pax.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_format_pax.Tpo libarchive/test/$(DEPDIR)/test-test_write_format_pax.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_pax.c' object='libarchive/test/test-test_write_format_pax.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_format_shar_empty.o `test -f 'libarchive/test/test_write_format_shar_empty.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_shar_empty.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_format_pax.o `test -f 'libarchive/test/test_write_format_pax.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_pax.c -libarchive/test/libarchive_test-test_write_format_shar_empty.obj: libarchive/test/test_write_format_shar_empty.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_format_shar_empty.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_shar_empty.Tpo -c -o libarchive/test/libarchive_test-test_write_format_shar_empty.obj `if test -f 'libarchive/test/test_write_format_shar_empty.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_shar_empty.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_shar_empty.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_shar_empty.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_shar_empty.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_shar_empty.c' object='libarchive/test/libarchive_test-test_write_format_shar_empty.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_format_pax.obj: libarchive/test/test_write_format_pax.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_format_pax.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_format_pax.Tpo -c -o libarchive/test/test-test_write_format_pax.obj `if test -f 'libarchive/test/test_write_format_pax.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_pax.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_pax.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_format_pax.Tpo libarchive/test/$(DEPDIR)/test-test_write_format_pax.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_pax.c' object='libarchive/test/test-test_write_format_pax.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_format_shar_empty.obj `if test -f 'libarchive/test/test_write_format_shar_empty.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_shar_empty.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_shar_empty.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_format_pax.obj `if test -f 'libarchive/test/test_write_format_pax.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_pax.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_pax.c'; fi` -libarchive/test/libarchive_test-test_write_format_tar.o: libarchive/test/test_write_format_tar.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_format_tar.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_tar.Tpo -c -o libarchive/test/libarchive_test-test_write_format_tar.o `test -f 'libarchive/test/test_write_format_tar.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_tar.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_tar.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_tar.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_tar.c' object='libarchive/test/libarchive_test-test_write_format_tar.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_format_raw.o: libarchive/test/test_write_format_raw.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_format_raw.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_format_raw.Tpo -c -o libarchive/test/test-test_write_format_raw.o `test -f 'libarchive/test/test_write_format_raw.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_raw.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_format_raw.Tpo libarchive/test/$(DEPDIR)/test-test_write_format_raw.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_raw.c' object='libarchive/test/test-test_write_format_raw.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_format_tar.o `test -f 'libarchive/test/test_write_format_tar.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_tar.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_format_raw.o `test -f 'libarchive/test/test_write_format_raw.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_raw.c -libarchive/test/libarchive_test-test_write_format_tar.obj: libarchive/test/test_write_format_tar.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_format_tar.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_tar.Tpo -c -o libarchive/test/libarchive_test-test_write_format_tar.obj `if test -f 'libarchive/test/test_write_format_tar.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_tar.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_tar.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_tar.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_tar.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_tar.c' object='libarchive/test/libarchive_test-test_write_format_tar.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_format_raw.obj: libarchive/test/test_write_format_raw.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_format_raw.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_format_raw.Tpo -c -o libarchive/test/test-test_write_format_raw.obj `if test -f 'libarchive/test/test_write_format_raw.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_raw.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_raw.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_format_raw.Tpo libarchive/test/$(DEPDIR)/test-test_write_format_raw.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_raw.c' object='libarchive/test/test-test_write_format_raw.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_format_tar.obj `if test -f 'libarchive/test/test_write_format_tar.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_tar.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_tar.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_format_raw.obj `if test -f 'libarchive/test/test_write_format_raw.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_raw.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_raw.c'; fi` -libarchive/test/libarchive_test-test_write_format_tar_empty.o: libarchive/test/test_write_format_tar_empty.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_format_tar_empty.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_tar_empty.Tpo -c -o libarchive/test/libarchive_test-test_write_format_tar_empty.o `test -f 'libarchive/test/test_write_format_tar_empty.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_tar_empty.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_tar_empty.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_tar_empty.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_tar_empty.c' object='libarchive/test/libarchive_test-test_write_format_tar_empty.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_format_raw_b64.o: libarchive/test/test_write_format_raw_b64.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_format_raw_b64.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_format_raw_b64.Tpo -c -o libarchive/test/test-test_write_format_raw_b64.o `test -f 'libarchive/test/test_write_format_raw_b64.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_raw_b64.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_format_raw_b64.Tpo libarchive/test/$(DEPDIR)/test-test_write_format_raw_b64.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_raw_b64.c' object='libarchive/test/test-test_write_format_raw_b64.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_format_tar_empty.o `test -f 'libarchive/test/test_write_format_tar_empty.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_tar_empty.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_format_raw_b64.o `test -f 'libarchive/test/test_write_format_raw_b64.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_raw_b64.c -libarchive/test/libarchive_test-test_write_format_tar_empty.obj: libarchive/test/test_write_format_tar_empty.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_format_tar_empty.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_tar_empty.Tpo -c -o libarchive/test/libarchive_test-test_write_format_tar_empty.obj `if test -f 'libarchive/test/test_write_format_tar_empty.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_tar_empty.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_tar_empty.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_tar_empty.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_tar_empty.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_tar_empty.c' object='libarchive/test/libarchive_test-test_write_format_tar_empty.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_format_raw_b64.obj: libarchive/test/test_write_format_raw_b64.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_format_raw_b64.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_format_raw_b64.Tpo -c -o libarchive/test/test-test_write_format_raw_b64.obj `if test -f 'libarchive/test/test_write_format_raw_b64.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_raw_b64.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_raw_b64.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_format_raw_b64.Tpo libarchive/test/$(DEPDIR)/test-test_write_format_raw_b64.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_raw_b64.c' object='libarchive/test/test-test_write_format_raw_b64.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_format_tar_empty.obj `if test -f 'libarchive/test/test_write_format_tar_empty.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_tar_empty.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_tar_empty.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_format_raw_b64.obj `if test -f 'libarchive/test/test_write_format_raw_b64.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_raw_b64.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_raw_b64.c'; fi` -libarchive/test/libarchive_test-test_write_format_tar_sparse.o: libarchive/test/test_write_format_tar_sparse.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_format_tar_sparse.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_tar_sparse.Tpo -c -o libarchive/test/libarchive_test-test_write_format_tar_sparse.o `test -f 'libarchive/test/test_write_format_tar_sparse.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_tar_sparse.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_tar_sparse.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_tar_sparse.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_tar_sparse.c' object='libarchive/test/libarchive_test-test_write_format_tar_sparse.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_format_shar_empty.o: libarchive/test/test_write_format_shar_empty.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_format_shar_empty.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_format_shar_empty.Tpo -c -o libarchive/test/test-test_write_format_shar_empty.o `test -f 'libarchive/test/test_write_format_shar_empty.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_shar_empty.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_format_shar_empty.Tpo libarchive/test/$(DEPDIR)/test-test_write_format_shar_empty.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_shar_empty.c' object='libarchive/test/test-test_write_format_shar_empty.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_format_tar_sparse.o `test -f 'libarchive/test/test_write_format_tar_sparse.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_tar_sparse.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_format_shar_empty.o `test -f 'libarchive/test/test_write_format_shar_empty.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_shar_empty.c -libarchive/test/libarchive_test-test_write_format_tar_sparse.obj: libarchive/test/test_write_format_tar_sparse.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_format_tar_sparse.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_tar_sparse.Tpo -c -o libarchive/test/libarchive_test-test_write_format_tar_sparse.obj `if test -f 'libarchive/test/test_write_format_tar_sparse.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_tar_sparse.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_tar_sparse.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_tar_sparse.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_tar_sparse.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_tar_sparse.c' object='libarchive/test/libarchive_test-test_write_format_tar_sparse.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_format_shar_empty.obj: libarchive/test/test_write_format_shar_empty.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_format_shar_empty.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_format_shar_empty.Tpo -c -o libarchive/test/test-test_write_format_shar_empty.obj `if test -f 'libarchive/test/test_write_format_shar_empty.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_shar_empty.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_shar_empty.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_format_shar_empty.Tpo libarchive/test/$(DEPDIR)/test-test_write_format_shar_empty.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_shar_empty.c' object='libarchive/test/test-test_write_format_shar_empty.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_format_tar_sparse.obj `if test -f 'libarchive/test/test_write_format_tar_sparse.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_tar_sparse.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_tar_sparse.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_format_shar_empty.obj `if test -f 'libarchive/test/test_write_format_shar_empty.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_shar_empty.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_shar_empty.c'; fi` -libarchive/test/libarchive_test-test_write_format_tar_ustar.o: libarchive/test/test_write_format_tar_ustar.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_format_tar_ustar.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_tar_ustar.Tpo -c -o libarchive/test/libarchive_test-test_write_format_tar_ustar.o `test -f 'libarchive/test/test_write_format_tar_ustar.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_tar_ustar.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_tar_ustar.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_tar_ustar.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_tar_ustar.c' object='libarchive/test/libarchive_test-test_write_format_tar_ustar.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_format_tar.o: libarchive/test/test_write_format_tar.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_format_tar.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_format_tar.Tpo -c -o libarchive/test/test-test_write_format_tar.o `test -f 'libarchive/test/test_write_format_tar.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_tar.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_format_tar.Tpo libarchive/test/$(DEPDIR)/test-test_write_format_tar.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_tar.c' object='libarchive/test/test-test_write_format_tar.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_format_tar_ustar.o `test -f 'libarchive/test/test_write_format_tar_ustar.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_tar_ustar.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_format_tar.o `test -f 'libarchive/test/test_write_format_tar.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_tar.c -libarchive/test/libarchive_test-test_write_format_tar_ustar.obj: libarchive/test/test_write_format_tar_ustar.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_format_tar_ustar.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_tar_ustar.Tpo -c -o libarchive/test/libarchive_test-test_write_format_tar_ustar.obj `if test -f 'libarchive/test/test_write_format_tar_ustar.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_tar_ustar.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_tar_ustar.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_tar_ustar.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_tar_ustar.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_tar_ustar.c' object='libarchive/test/libarchive_test-test_write_format_tar_ustar.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_format_tar.obj: libarchive/test/test_write_format_tar.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_format_tar.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_format_tar.Tpo -c -o libarchive/test/test-test_write_format_tar.obj `if test -f 'libarchive/test/test_write_format_tar.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_tar.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_tar.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_format_tar.Tpo libarchive/test/$(DEPDIR)/test-test_write_format_tar.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_tar.c' object='libarchive/test/test-test_write_format_tar.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_format_tar_ustar.obj `if test -f 'libarchive/test/test_write_format_tar_ustar.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_tar_ustar.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_tar_ustar.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_format_tar.obj `if test -f 'libarchive/test/test_write_format_tar.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_tar.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_tar.c'; fi` -libarchive/test/libarchive_test-test_write_format_tar_v7tar.o: libarchive/test/test_write_format_tar_v7tar.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_format_tar_v7tar.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_tar_v7tar.Tpo -c -o libarchive/test/libarchive_test-test_write_format_tar_v7tar.o `test -f 'libarchive/test/test_write_format_tar_v7tar.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_tar_v7tar.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_tar_v7tar.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_tar_v7tar.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_tar_v7tar.c' object='libarchive/test/libarchive_test-test_write_format_tar_v7tar.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_format_tar_empty.o: libarchive/test/test_write_format_tar_empty.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_format_tar_empty.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_format_tar_empty.Tpo -c -o libarchive/test/test-test_write_format_tar_empty.o `test -f 'libarchive/test/test_write_format_tar_empty.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_tar_empty.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_format_tar_empty.Tpo libarchive/test/$(DEPDIR)/test-test_write_format_tar_empty.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_tar_empty.c' object='libarchive/test/test-test_write_format_tar_empty.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_format_tar_v7tar.o `test -f 'libarchive/test/test_write_format_tar_v7tar.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_tar_v7tar.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_format_tar_empty.o `test -f 'libarchive/test/test_write_format_tar_empty.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_tar_empty.c -libarchive/test/libarchive_test-test_write_format_tar_v7tar.obj: libarchive/test/test_write_format_tar_v7tar.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_format_tar_v7tar.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_tar_v7tar.Tpo -c -o libarchive/test/libarchive_test-test_write_format_tar_v7tar.obj `if test -f 'libarchive/test/test_write_format_tar_v7tar.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_tar_v7tar.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_tar_v7tar.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_tar_v7tar.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_tar_v7tar.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_tar_v7tar.c' object='libarchive/test/libarchive_test-test_write_format_tar_v7tar.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_format_tar_empty.obj: libarchive/test/test_write_format_tar_empty.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_format_tar_empty.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_format_tar_empty.Tpo -c -o libarchive/test/test-test_write_format_tar_empty.obj `if test -f 'libarchive/test/test_write_format_tar_empty.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_tar_empty.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_tar_empty.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_format_tar_empty.Tpo libarchive/test/$(DEPDIR)/test-test_write_format_tar_empty.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_tar_empty.c' object='libarchive/test/test-test_write_format_tar_empty.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_format_tar_v7tar.obj `if test -f 'libarchive/test/test_write_format_tar_v7tar.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_tar_v7tar.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_tar_v7tar.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_format_tar_empty.obj `if test -f 'libarchive/test/test_write_format_tar_empty.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_tar_empty.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_tar_empty.c'; fi` -libarchive/test/libarchive_test-test_write_format_warc.o: libarchive/test/test_write_format_warc.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_format_warc.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_warc.Tpo -c -o libarchive/test/libarchive_test-test_write_format_warc.o `test -f 'libarchive/test/test_write_format_warc.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_warc.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_warc.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_warc.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_warc.c' object='libarchive/test/libarchive_test-test_write_format_warc.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_format_tar_sparse.o: libarchive/test/test_write_format_tar_sparse.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_format_tar_sparse.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_format_tar_sparse.Tpo -c -o libarchive/test/test-test_write_format_tar_sparse.o `test -f 'libarchive/test/test_write_format_tar_sparse.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_tar_sparse.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_format_tar_sparse.Tpo libarchive/test/$(DEPDIR)/test-test_write_format_tar_sparse.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_tar_sparse.c' object='libarchive/test/test-test_write_format_tar_sparse.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_format_warc.o `test -f 'libarchive/test/test_write_format_warc.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_warc.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_format_tar_sparse.o `test -f 'libarchive/test/test_write_format_tar_sparse.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_tar_sparse.c -libarchive/test/libarchive_test-test_write_format_warc.obj: libarchive/test/test_write_format_warc.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_format_warc.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_warc.Tpo -c -o libarchive/test/libarchive_test-test_write_format_warc.obj `if test -f 'libarchive/test/test_write_format_warc.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_warc.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_warc.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_warc.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_warc.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_warc.c' object='libarchive/test/libarchive_test-test_write_format_warc.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_format_tar_sparse.obj: libarchive/test/test_write_format_tar_sparse.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_format_tar_sparse.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_format_tar_sparse.Tpo -c -o libarchive/test/test-test_write_format_tar_sparse.obj `if test -f 'libarchive/test/test_write_format_tar_sparse.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_tar_sparse.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_tar_sparse.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_format_tar_sparse.Tpo libarchive/test/$(DEPDIR)/test-test_write_format_tar_sparse.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_tar_sparse.c' object='libarchive/test/test-test_write_format_tar_sparse.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_format_warc.obj `if test -f 'libarchive/test/test_write_format_warc.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_warc.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_warc.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_format_tar_sparse.obj `if test -f 'libarchive/test/test_write_format_tar_sparse.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_tar_sparse.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_tar_sparse.c'; fi` -libarchive/test/libarchive_test-test_write_format_warc_empty.o: libarchive/test/test_write_format_warc_empty.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_format_warc_empty.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_warc_empty.Tpo -c -o libarchive/test/libarchive_test-test_write_format_warc_empty.o `test -f 'libarchive/test/test_write_format_warc_empty.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_warc_empty.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_warc_empty.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_warc_empty.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_warc_empty.c' object='libarchive/test/libarchive_test-test_write_format_warc_empty.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_format_tar_ustar.o: libarchive/test/test_write_format_tar_ustar.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_format_tar_ustar.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_format_tar_ustar.Tpo -c -o libarchive/test/test-test_write_format_tar_ustar.o `test -f 'libarchive/test/test_write_format_tar_ustar.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_tar_ustar.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_format_tar_ustar.Tpo libarchive/test/$(DEPDIR)/test-test_write_format_tar_ustar.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_tar_ustar.c' object='libarchive/test/test-test_write_format_tar_ustar.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_format_warc_empty.o `test -f 'libarchive/test/test_write_format_warc_empty.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_warc_empty.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_format_tar_ustar.o `test -f 'libarchive/test/test_write_format_tar_ustar.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_tar_ustar.c -libarchive/test/libarchive_test-test_write_format_warc_empty.obj: libarchive/test/test_write_format_warc_empty.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_format_warc_empty.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_warc_empty.Tpo -c -o libarchive/test/libarchive_test-test_write_format_warc_empty.obj `if test -f 'libarchive/test/test_write_format_warc_empty.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_warc_empty.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_warc_empty.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_warc_empty.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_warc_empty.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_warc_empty.c' object='libarchive/test/libarchive_test-test_write_format_warc_empty.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_format_tar_ustar.obj: libarchive/test/test_write_format_tar_ustar.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_format_tar_ustar.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_format_tar_ustar.Tpo -c -o libarchive/test/test-test_write_format_tar_ustar.obj `if test -f 'libarchive/test/test_write_format_tar_ustar.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_tar_ustar.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_tar_ustar.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_format_tar_ustar.Tpo libarchive/test/$(DEPDIR)/test-test_write_format_tar_ustar.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_tar_ustar.c' object='libarchive/test/test-test_write_format_tar_ustar.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_format_warc_empty.obj `if test -f 'libarchive/test/test_write_format_warc_empty.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_warc_empty.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_warc_empty.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_format_tar_ustar.obj `if test -f 'libarchive/test/test_write_format_tar_ustar.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_tar_ustar.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_tar_ustar.c'; fi` -libarchive/test/libarchive_test-test_write_format_xar.o: libarchive/test/test_write_format_xar.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_format_xar.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_xar.Tpo -c -o libarchive/test/libarchive_test-test_write_format_xar.o `test -f 'libarchive/test/test_write_format_xar.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_xar.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_xar.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_xar.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_xar.c' object='libarchive/test/libarchive_test-test_write_format_xar.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_format_tar_v7tar.o: libarchive/test/test_write_format_tar_v7tar.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_format_tar_v7tar.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_format_tar_v7tar.Tpo -c -o libarchive/test/test-test_write_format_tar_v7tar.o `test -f 'libarchive/test/test_write_format_tar_v7tar.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_tar_v7tar.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_format_tar_v7tar.Tpo libarchive/test/$(DEPDIR)/test-test_write_format_tar_v7tar.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_tar_v7tar.c' object='libarchive/test/test-test_write_format_tar_v7tar.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_format_xar.o `test -f 'libarchive/test/test_write_format_xar.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_xar.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_format_tar_v7tar.o `test -f 'libarchive/test/test_write_format_tar_v7tar.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_tar_v7tar.c -libarchive/test/libarchive_test-test_write_format_xar.obj: libarchive/test/test_write_format_xar.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_format_xar.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_xar.Tpo -c -o libarchive/test/libarchive_test-test_write_format_xar.obj `if test -f 'libarchive/test/test_write_format_xar.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_xar.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_xar.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_xar.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_xar.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_xar.c' object='libarchive/test/libarchive_test-test_write_format_xar.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_format_tar_v7tar.obj: libarchive/test/test_write_format_tar_v7tar.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_format_tar_v7tar.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_format_tar_v7tar.Tpo -c -o libarchive/test/test-test_write_format_tar_v7tar.obj `if test -f 'libarchive/test/test_write_format_tar_v7tar.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_tar_v7tar.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_tar_v7tar.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_format_tar_v7tar.Tpo libarchive/test/$(DEPDIR)/test-test_write_format_tar_v7tar.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_tar_v7tar.c' object='libarchive/test/test-test_write_format_tar_v7tar.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_format_xar.obj `if test -f 'libarchive/test/test_write_format_xar.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_xar.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_xar.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_format_tar_v7tar.obj `if test -f 'libarchive/test/test_write_format_tar_v7tar.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_tar_v7tar.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_tar_v7tar.c'; fi` -libarchive/test/libarchive_test-test_write_format_xar_empty.o: libarchive/test/test_write_format_xar_empty.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_format_xar_empty.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_xar_empty.Tpo -c -o libarchive/test/libarchive_test-test_write_format_xar_empty.o `test -f 'libarchive/test/test_write_format_xar_empty.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_xar_empty.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_xar_empty.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_xar_empty.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_xar_empty.c' object='libarchive/test/libarchive_test-test_write_format_xar_empty.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_format_warc.o: libarchive/test/test_write_format_warc.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_format_warc.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_format_warc.Tpo -c -o libarchive/test/test-test_write_format_warc.o `test -f 'libarchive/test/test_write_format_warc.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_warc.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_format_warc.Tpo libarchive/test/$(DEPDIR)/test-test_write_format_warc.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_warc.c' object='libarchive/test/test-test_write_format_warc.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_format_xar_empty.o `test -f 'libarchive/test/test_write_format_xar_empty.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_xar_empty.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_format_warc.o `test -f 'libarchive/test/test_write_format_warc.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_warc.c -libarchive/test/libarchive_test-test_write_format_xar_empty.obj: libarchive/test/test_write_format_xar_empty.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_format_xar_empty.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_xar_empty.Tpo -c -o libarchive/test/libarchive_test-test_write_format_xar_empty.obj `if test -f 'libarchive/test/test_write_format_xar_empty.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_xar_empty.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_xar_empty.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_xar_empty.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_xar_empty.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_xar_empty.c' object='libarchive/test/libarchive_test-test_write_format_xar_empty.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_format_warc.obj: libarchive/test/test_write_format_warc.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_format_warc.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_format_warc.Tpo -c -o libarchive/test/test-test_write_format_warc.obj `if test -f 'libarchive/test/test_write_format_warc.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_warc.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_warc.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_format_warc.Tpo libarchive/test/$(DEPDIR)/test-test_write_format_warc.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_warc.c' object='libarchive/test/test-test_write_format_warc.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_format_xar_empty.obj `if test -f 'libarchive/test/test_write_format_xar_empty.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_xar_empty.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_xar_empty.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_format_warc.obj `if test -f 'libarchive/test/test_write_format_warc.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_warc.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_warc.c'; fi` -libarchive/test/libarchive_test-test_write_format_zip.o: libarchive/test/test_write_format_zip.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_format_zip.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_zip.Tpo -c -o libarchive/test/libarchive_test-test_write_format_zip.o `test -f 'libarchive/test/test_write_format_zip.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_zip.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_zip.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_zip.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_zip.c' object='libarchive/test/libarchive_test-test_write_format_zip.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_format_warc_empty.o: libarchive/test/test_write_format_warc_empty.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_format_warc_empty.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_format_warc_empty.Tpo -c -o libarchive/test/test-test_write_format_warc_empty.o `test -f 'libarchive/test/test_write_format_warc_empty.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_warc_empty.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_format_warc_empty.Tpo libarchive/test/$(DEPDIR)/test-test_write_format_warc_empty.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_warc_empty.c' object='libarchive/test/test-test_write_format_warc_empty.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_format_zip.o `test -f 'libarchive/test/test_write_format_zip.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_zip.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_format_warc_empty.o `test -f 'libarchive/test/test_write_format_warc_empty.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_warc_empty.c -libarchive/test/libarchive_test-test_write_format_zip.obj: libarchive/test/test_write_format_zip.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_format_zip.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_zip.Tpo -c -o libarchive/test/libarchive_test-test_write_format_zip.obj `if test -f 'libarchive/test/test_write_format_zip.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_zip.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_zip.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_zip.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_zip.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_zip.c' object='libarchive/test/libarchive_test-test_write_format_zip.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_format_warc_empty.obj: libarchive/test/test_write_format_warc_empty.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_format_warc_empty.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_format_warc_empty.Tpo -c -o libarchive/test/test-test_write_format_warc_empty.obj `if test -f 'libarchive/test/test_write_format_warc_empty.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_warc_empty.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_warc_empty.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_format_warc_empty.Tpo libarchive/test/$(DEPDIR)/test-test_write_format_warc_empty.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_warc_empty.c' object='libarchive/test/test-test_write_format_warc_empty.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_format_zip.obj `if test -f 'libarchive/test/test_write_format_zip.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_zip.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_zip.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_format_warc_empty.obj `if test -f 'libarchive/test/test_write_format_warc_empty.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_warc_empty.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_warc_empty.c'; fi` -libarchive/test/libarchive_test-test_write_format_zip_compression_store.o: libarchive/test/test_write_format_zip_compression_store.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_format_zip_compression_store.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_zip_compression_store.Tpo -c -o libarchive/test/libarchive_test-test_write_format_zip_compression_store.o `test -f 'libarchive/test/test_write_format_zip_compression_store.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_zip_compression_store.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_zip_compression_store.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_zip_compression_store.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_zip_compression_store.c' object='libarchive/test/libarchive_test-test_write_format_zip_compression_store.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_format_xar.o: libarchive/test/test_write_format_xar.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_format_xar.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_format_xar.Tpo -c -o libarchive/test/test-test_write_format_xar.o `test -f 'libarchive/test/test_write_format_xar.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_xar.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_format_xar.Tpo libarchive/test/$(DEPDIR)/test-test_write_format_xar.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_xar.c' object='libarchive/test/test-test_write_format_xar.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_format_zip_compression_store.o `test -f 'libarchive/test/test_write_format_zip_compression_store.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_zip_compression_store.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_format_xar.o `test -f 'libarchive/test/test_write_format_xar.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_xar.c -libarchive/test/libarchive_test-test_write_format_zip_compression_store.obj: libarchive/test/test_write_format_zip_compression_store.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_format_zip_compression_store.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_zip_compression_store.Tpo -c -o libarchive/test/libarchive_test-test_write_format_zip_compression_store.obj `if test -f 'libarchive/test/test_write_format_zip_compression_store.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_zip_compression_store.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_zip_compression_store.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_zip_compression_store.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_zip_compression_store.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_zip_compression_store.c' object='libarchive/test/libarchive_test-test_write_format_zip_compression_store.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_format_xar.obj: libarchive/test/test_write_format_xar.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_format_xar.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_format_xar.Tpo -c -o libarchive/test/test-test_write_format_xar.obj `if test -f 'libarchive/test/test_write_format_xar.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_xar.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_xar.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_format_xar.Tpo libarchive/test/$(DEPDIR)/test-test_write_format_xar.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_xar.c' object='libarchive/test/test-test_write_format_xar.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_format_zip_compression_store.obj `if test -f 'libarchive/test/test_write_format_zip_compression_store.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_zip_compression_store.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_zip_compression_store.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_format_xar.obj `if test -f 'libarchive/test/test_write_format_xar.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_xar.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_xar.c'; fi` -libarchive/test/libarchive_test-test_write_format_zip_empty.o: libarchive/test/test_write_format_zip_empty.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_format_zip_empty.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_zip_empty.Tpo -c -o libarchive/test/libarchive_test-test_write_format_zip_empty.o `test -f 'libarchive/test/test_write_format_zip_empty.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_zip_empty.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_zip_empty.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_zip_empty.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_zip_empty.c' object='libarchive/test/libarchive_test-test_write_format_zip_empty.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_format_xar_empty.o: libarchive/test/test_write_format_xar_empty.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_format_xar_empty.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_format_xar_empty.Tpo -c -o libarchive/test/test-test_write_format_xar_empty.o `test -f 'libarchive/test/test_write_format_xar_empty.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_xar_empty.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_format_xar_empty.Tpo libarchive/test/$(DEPDIR)/test-test_write_format_xar_empty.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_xar_empty.c' object='libarchive/test/test-test_write_format_xar_empty.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_format_zip_empty.o `test -f 'libarchive/test/test_write_format_zip_empty.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_zip_empty.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_format_xar_empty.o `test -f 'libarchive/test/test_write_format_xar_empty.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_xar_empty.c -libarchive/test/libarchive_test-test_write_format_zip_empty.obj: libarchive/test/test_write_format_zip_empty.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_format_zip_empty.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_zip_empty.Tpo -c -o libarchive/test/libarchive_test-test_write_format_zip_empty.obj `if test -f 'libarchive/test/test_write_format_zip_empty.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_zip_empty.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_zip_empty.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_zip_empty.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_zip_empty.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_zip_empty.c' object='libarchive/test/libarchive_test-test_write_format_zip_empty.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_format_xar_empty.obj: libarchive/test/test_write_format_xar_empty.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_format_xar_empty.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_format_xar_empty.Tpo -c -o libarchive/test/test-test_write_format_xar_empty.obj `if test -f 'libarchive/test/test_write_format_xar_empty.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_xar_empty.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_xar_empty.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_format_xar_empty.Tpo libarchive/test/$(DEPDIR)/test-test_write_format_xar_empty.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_xar_empty.c' object='libarchive/test/test-test_write_format_xar_empty.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_format_zip_empty.obj `if test -f 'libarchive/test/test_write_format_zip_empty.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_zip_empty.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_zip_empty.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_format_xar_empty.obj `if test -f 'libarchive/test/test_write_format_xar_empty.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_xar_empty.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_xar_empty.c'; fi` -libarchive/test/libarchive_test-test_write_format_zip_empty_zip64.o: libarchive/test/test_write_format_zip_empty_zip64.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_format_zip_empty_zip64.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_zip_empty_zip64.Tpo -c -o libarchive/test/libarchive_test-test_write_format_zip_empty_zip64.o `test -f 'libarchive/test/test_write_format_zip_empty_zip64.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_zip_empty_zip64.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_zip_empty_zip64.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_zip_empty_zip64.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_zip_empty_zip64.c' object='libarchive/test/libarchive_test-test_write_format_zip_empty_zip64.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_format_zip.o: libarchive/test/test_write_format_zip.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_format_zip.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_format_zip.Tpo -c -o libarchive/test/test-test_write_format_zip.o `test -f 'libarchive/test/test_write_format_zip.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_zip.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_format_zip.Tpo libarchive/test/$(DEPDIR)/test-test_write_format_zip.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_zip.c' object='libarchive/test/test-test_write_format_zip.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_format_zip_empty_zip64.o `test -f 'libarchive/test/test_write_format_zip_empty_zip64.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_zip_empty_zip64.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_format_zip.o `test -f 'libarchive/test/test_write_format_zip.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_zip.c -libarchive/test/libarchive_test-test_write_format_zip_empty_zip64.obj: libarchive/test/test_write_format_zip_empty_zip64.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_format_zip_empty_zip64.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_zip_empty_zip64.Tpo -c -o libarchive/test/libarchive_test-test_write_format_zip_empty_zip64.obj `if test -f 'libarchive/test/test_write_format_zip_empty_zip64.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_zip_empty_zip64.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_zip_empty_zip64.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_zip_empty_zip64.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_zip_empty_zip64.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_zip_empty_zip64.c' object='libarchive/test/libarchive_test-test_write_format_zip_empty_zip64.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_format_zip.obj: libarchive/test/test_write_format_zip.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_format_zip.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_format_zip.Tpo -c -o libarchive/test/test-test_write_format_zip.obj `if test -f 'libarchive/test/test_write_format_zip.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_zip.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_zip.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_format_zip.Tpo libarchive/test/$(DEPDIR)/test-test_write_format_zip.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_zip.c' object='libarchive/test/test-test_write_format_zip.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_format_zip_empty_zip64.obj `if test -f 'libarchive/test/test_write_format_zip_empty_zip64.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_zip_empty_zip64.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_zip_empty_zip64.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_format_zip.obj `if test -f 'libarchive/test/test_write_format_zip.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_zip.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_zip.c'; fi` -libarchive/test/libarchive_test-test_write_format_zip_file.o: libarchive/test/test_write_format_zip_file.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_format_zip_file.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_zip_file.Tpo -c -o libarchive/test/libarchive_test-test_write_format_zip_file.o `test -f 'libarchive/test/test_write_format_zip_file.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_zip_file.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_zip_file.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_zip_file.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_zip_file.c' object='libarchive/test/libarchive_test-test_write_format_zip_file.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_format_zip_compression_store.o: libarchive/test/test_write_format_zip_compression_store.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_format_zip_compression_store.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_format_zip_compression_store.Tpo -c -o libarchive/test/test-test_write_format_zip_compression_store.o `test -f 'libarchive/test/test_write_format_zip_compression_store.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_zip_compression_store.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_format_zip_compression_store.Tpo libarchive/test/$(DEPDIR)/test-test_write_format_zip_compression_store.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_zip_compression_store.c' object='libarchive/test/test-test_write_format_zip_compression_store.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_format_zip_file.o `test -f 'libarchive/test/test_write_format_zip_file.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_zip_file.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_format_zip_compression_store.o `test -f 'libarchive/test/test_write_format_zip_compression_store.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_zip_compression_store.c -libarchive/test/libarchive_test-test_write_format_zip_file.obj: libarchive/test/test_write_format_zip_file.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_format_zip_file.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_zip_file.Tpo -c -o libarchive/test/libarchive_test-test_write_format_zip_file.obj `if test -f 'libarchive/test/test_write_format_zip_file.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_zip_file.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_zip_file.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_zip_file.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_zip_file.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_zip_file.c' object='libarchive/test/libarchive_test-test_write_format_zip_file.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_format_zip_compression_store.obj: libarchive/test/test_write_format_zip_compression_store.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_format_zip_compression_store.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_format_zip_compression_store.Tpo -c -o libarchive/test/test-test_write_format_zip_compression_store.obj `if test -f 'libarchive/test/test_write_format_zip_compression_store.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_zip_compression_store.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_zip_compression_store.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_format_zip_compression_store.Tpo libarchive/test/$(DEPDIR)/test-test_write_format_zip_compression_store.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_zip_compression_store.c' object='libarchive/test/test-test_write_format_zip_compression_store.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_format_zip_file.obj `if test -f 'libarchive/test/test_write_format_zip_file.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_zip_file.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_zip_file.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_format_zip_compression_store.obj `if test -f 'libarchive/test/test_write_format_zip_compression_store.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_zip_compression_store.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_zip_compression_store.c'; fi` -libarchive/test/libarchive_test-test_write_format_zip_file_zip64.o: libarchive/test/test_write_format_zip_file_zip64.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_format_zip_file_zip64.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_zip_file_zip64.Tpo -c -o libarchive/test/libarchive_test-test_write_format_zip_file_zip64.o `test -f 'libarchive/test/test_write_format_zip_file_zip64.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_zip_file_zip64.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_zip_file_zip64.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_zip_file_zip64.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_zip_file_zip64.c' object='libarchive/test/libarchive_test-test_write_format_zip_file_zip64.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_format_zip_empty.o: libarchive/test/test_write_format_zip_empty.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_format_zip_empty.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_format_zip_empty.Tpo -c -o libarchive/test/test-test_write_format_zip_empty.o `test -f 'libarchive/test/test_write_format_zip_empty.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_zip_empty.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_format_zip_empty.Tpo libarchive/test/$(DEPDIR)/test-test_write_format_zip_empty.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_zip_empty.c' object='libarchive/test/test-test_write_format_zip_empty.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_format_zip_file_zip64.o `test -f 'libarchive/test/test_write_format_zip_file_zip64.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_zip_file_zip64.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_format_zip_empty.o `test -f 'libarchive/test/test_write_format_zip_empty.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_zip_empty.c -libarchive/test/libarchive_test-test_write_format_zip_file_zip64.obj: libarchive/test/test_write_format_zip_file_zip64.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_format_zip_file_zip64.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_zip_file_zip64.Tpo -c -o libarchive/test/libarchive_test-test_write_format_zip_file_zip64.obj `if test -f 'libarchive/test/test_write_format_zip_file_zip64.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_zip_file_zip64.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_zip_file_zip64.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_zip_file_zip64.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_zip_file_zip64.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_zip_file_zip64.c' object='libarchive/test/libarchive_test-test_write_format_zip_file_zip64.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_format_zip_empty.obj: libarchive/test/test_write_format_zip_empty.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_format_zip_empty.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_format_zip_empty.Tpo -c -o libarchive/test/test-test_write_format_zip_empty.obj `if test -f 'libarchive/test/test_write_format_zip_empty.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_zip_empty.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_zip_empty.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_format_zip_empty.Tpo libarchive/test/$(DEPDIR)/test-test_write_format_zip_empty.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_zip_empty.c' object='libarchive/test/test-test_write_format_zip_empty.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_format_zip_file_zip64.obj `if test -f 'libarchive/test/test_write_format_zip_file_zip64.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_zip_file_zip64.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_zip_file_zip64.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_format_zip_empty.obj `if test -f 'libarchive/test/test_write_format_zip_empty.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_zip_empty.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_zip_empty.c'; fi` -libarchive/test/libarchive_test-test_write_format_zip_large.o: libarchive/test/test_write_format_zip_large.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_format_zip_large.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_zip_large.Tpo -c -o libarchive/test/libarchive_test-test_write_format_zip_large.o `test -f 'libarchive/test/test_write_format_zip_large.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_zip_large.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_zip_large.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_zip_large.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_zip_large.c' object='libarchive/test/libarchive_test-test_write_format_zip_large.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_format_zip_empty_zip64.o: libarchive/test/test_write_format_zip_empty_zip64.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_format_zip_empty_zip64.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_format_zip_empty_zip64.Tpo -c -o libarchive/test/test-test_write_format_zip_empty_zip64.o `test -f 'libarchive/test/test_write_format_zip_empty_zip64.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_zip_empty_zip64.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_format_zip_empty_zip64.Tpo libarchive/test/$(DEPDIR)/test-test_write_format_zip_empty_zip64.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_zip_empty_zip64.c' object='libarchive/test/test-test_write_format_zip_empty_zip64.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_format_zip_large.o `test -f 'libarchive/test/test_write_format_zip_large.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_zip_large.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_format_zip_empty_zip64.o `test -f 'libarchive/test/test_write_format_zip_empty_zip64.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_zip_empty_zip64.c -libarchive/test/libarchive_test-test_write_format_zip_large.obj: libarchive/test/test_write_format_zip_large.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_format_zip_large.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_zip_large.Tpo -c -o libarchive/test/libarchive_test-test_write_format_zip_large.obj `if test -f 'libarchive/test/test_write_format_zip_large.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_zip_large.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_zip_large.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_zip_large.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_zip_large.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_zip_large.c' object='libarchive/test/libarchive_test-test_write_format_zip_large.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_format_zip_empty_zip64.obj: libarchive/test/test_write_format_zip_empty_zip64.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_format_zip_empty_zip64.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_format_zip_empty_zip64.Tpo -c -o libarchive/test/test-test_write_format_zip_empty_zip64.obj `if test -f 'libarchive/test/test_write_format_zip_empty_zip64.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_zip_empty_zip64.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_zip_empty_zip64.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_format_zip_empty_zip64.Tpo libarchive/test/$(DEPDIR)/test-test_write_format_zip_empty_zip64.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_zip_empty_zip64.c' object='libarchive/test/test-test_write_format_zip_empty_zip64.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_format_zip_large.obj `if test -f 'libarchive/test/test_write_format_zip_large.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_zip_large.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_zip_large.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_format_zip_empty_zip64.obj `if test -f 'libarchive/test/test_write_format_zip_empty_zip64.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_zip_empty_zip64.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_zip_empty_zip64.c'; fi` -libarchive/test/libarchive_test-test_write_format_zip_zip64.o: libarchive/test/test_write_format_zip_zip64.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_format_zip_zip64.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_zip_zip64.Tpo -c -o libarchive/test/libarchive_test-test_write_format_zip_zip64.o `test -f 'libarchive/test/test_write_format_zip_zip64.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_zip_zip64.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_zip_zip64.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_zip_zip64.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_zip_zip64.c' object='libarchive/test/libarchive_test-test_write_format_zip_zip64.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_format_zip_file.o: libarchive/test/test_write_format_zip_file.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_format_zip_file.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_format_zip_file.Tpo -c -o libarchive/test/test-test_write_format_zip_file.o `test -f 'libarchive/test/test_write_format_zip_file.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_zip_file.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_format_zip_file.Tpo libarchive/test/$(DEPDIR)/test-test_write_format_zip_file.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_zip_file.c' object='libarchive/test/test-test_write_format_zip_file.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_format_zip_zip64.o `test -f 'libarchive/test/test_write_format_zip_zip64.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_zip_zip64.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_format_zip_file.o `test -f 'libarchive/test/test_write_format_zip_file.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_zip_file.c -libarchive/test/libarchive_test-test_write_format_zip_zip64.obj: libarchive/test/test_write_format_zip_zip64.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_format_zip_zip64.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_zip_zip64.Tpo -c -o libarchive/test/libarchive_test-test_write_format_zip_zip64.obj `if test -f 'libarchive/test/test_write_format_zip_zip64.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_zip_zip64.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_zip_zip64.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_zip_zip64.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_zip_zip64.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_zip_zip64.c' object='libarchive/test/libarchive_test-test_write_format_zip_zip64.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_format_zip_file.obj: libarchive/test/test_write_format_zip_file.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_format_zip_file.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_format_zip_file.Tpo -c -o libarchive/test/test-test_write_format_zip_file.obj `if test -f 'libarchive/test/test_write_format_zip_file.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_zip_file.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_zip_file.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_format_zip_file.Tpo libarchive/test/$(DEPDIR)/test-test_write_format_zip_file.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_zip_file.c' object='libarchive/test/test-test_write_format_zip_file.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_format_zip_zip64.obj `if test -f 'libarchive/test/test_write_format_zip_zip64.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_zip_zip64.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_zip_zip64.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_format_zip_file.obj `if test -f 'libarchive/test/test_write_format_zip_file.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_zip_file.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_zip_file.c'; fi` -libarchive/test/libarchive_test-test_write_open_memory.o: libarchive/test/test_write_open_memory.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_open_memory.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_open_memory.Tpo -c -o libarchive/test/libarchive_test-test_write_open_memory.o `test -f 'libarchive/test/test_write_open_memory.c' || echo '$(srcdir)/'`libarchive/test/test_write_open_memory.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_open_memory.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_open_memory.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_open_memory.c' object='libarchive/test/libarchive_test-test_write_open_memory.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_format_zip_file_zip64.o: libarchive/test/test_write_format_zip_file_zip64.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_format_zip_file_zip64.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_format_zip_file_zip64.Tpo -c -o libarchive/test/test-test_write_format_zip_file_zip64.o `test -f 'libarchive/test/test_write_format_zip_file_zip64.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_zip_file_zip64.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_format_zip_file_zip64.Tpo libarchive/test/$(DEPDIR)/test-test_write_format_zip_file_zip64.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_zip_file_zip64.c' object='libarchive/test/test-test_write_format_zip_file_zip64.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_open_memory.o `test -f 'libarchive/test/test_write_open_memory.c' || echo '$(srcdir)/'`libarchive/test/test_write_open_memory.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_format_zip_file_zip64.o `test -f 'libarchive/test/test_write_format_zip_file_zip64.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_zip_file_zip64.c -libarchive/test/libarchive_test-test_write_open_memory.obj: libarchive/test/test_write_open_memory.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_open_memory.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_open_memory.Tpo -c -o libarchive/test/libarchive_test-test_write_open_memory.obj `if test -f 'libarchive/test/test_write_open_memory.c'; then $(CYGPATH_W) 'libarchive/test/test_write_open_memory.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_open_memory.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_open_memory.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_open_memory.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_open_memory.c' object='libarchive/test/libarchive_test-test_write_open_memory.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_format_zip_file_zip64.obj: libarchive/test/test_write_format_zip_file_zip64.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_format_zip_file_zip64.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_format_zip_file_zip64.Tpo -c -o libarchive/test/test-test_write_format_zip_file_zip64.obj `if test -f 'libarchive/test/test_write_format_zip_file_zip64.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_zip_file_zip64.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_zip_file_zip64.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_format_zip_file_zip64.Tpo libarchive/test/$(DEPDIR)/test-test_write_format_zip_file_zip64.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_zip_file_zip64.c' object='libarchive/test/test-test_write_format_zip_file_zip64.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_open_memory.obj `if test -f 'libarchive/test/test_write_open_memory.c'; then $(CYGPATH_W) 'libarchive/test/test_write_open_memory.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_open_memory.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_format_zip_file_zip64.obj `if test -f 'libarchive/test/test_write_format_zip_file_zip64.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_zip_file_zip64.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_zip_file_zip64.c'; fi` -libarchive/test/libarchive_test-test_write_read_format_zip.o: libarchive/test/test_write_read_format_zip.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_read_format_zip.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_read_format_zip.Tpo -c -o libarchive/test/libarchive_test-test_write_read_format_zip.o `test -f 'libarchive/test/test_write_read_format_zip.c' || echo '$(srcdir)/'`libarchive/test/test_write_read_format_zip.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_read_format_zip.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_read_format_zip.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_read_format_zip.c' object='libarchive/test/libarchive_test-test_write_read_format_zip.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_format_zip_large.o: libarchive/test/test_write_format_zip_large.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_format_zip_large.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_format_zip_large.Tpo -c -o libarchive/test/test-test_write_format_zip_large.o `test -f 'libarchive/test/test_write_format_zip_large.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_zip_large.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_format_zip_large.Tpo libarchive/test/$(DEPDIR)/test-test_write_format_zip_large.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_zip_large.c' object='libarchive/test/test-test_write_format_zip_large.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_read_format_zip.o `test -f 'libarchive/test/test_write_read_format_zip.c' || echo '$(srcdir)/'`libarchive/test/test_write_read_format_zip.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_format_zip_large.o `test -f 'libarchive/test/test_write_format_zip_large.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_zip_large.c -libarchive/test/libarchive_test-test_write_read_format_zip.obj: libarchive/test/test_write_read_format_zip.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_read_format_zip.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_read_format_zip.Tpo -c -o libarchive/test/libarchive_test-test_write_read_format_zip.obj `if test -f 'libarchive/test/test_write_read_format_zip.c'; then $(CYGPATH_W) 'libarchive/test/test_write_read_format_zip.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_read_format_zip.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_read_format_zip.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_read_format_zip.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_read_format_zip.c' object='libarchive/test/libarchive_test-test_write_read_format_zip.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_format_zip_large.obj: libarchive/test/test_write_format_zip_large.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_format_zip_large.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_format_zip_large.Tpo -c -o libarchive/test/test-test_write_format_zip_large.obj `if test -f 'libarchive/test/test_write_format_zip_large.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_zip_large.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_zip_large.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_format_zip_large.Tpo libarchive/test/$(DEPDIR)/test-test_write_format_zip_large.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_zip_large.c' object='libarchive/test/test-test_write_format_zip_large.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_write_read_format_zip.obj `if test -f 'libarchive/test/test_write_read_format_zip.c'; then $(CYGPATH_W) 'libarchive/test/test_write_read_format_zip.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_read_format_zip.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_format_zip_large.obj `if test -f 'libarchive/test/test_write_format_zip_large.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_zip_large.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_zip_large.c'; fi` -libarchive/test/libarchive_test-test_xattr_platform.o: libarchive/test/test_xattr_platform.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_xattr_platform.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_xattr_platform.Tpo -c -o libarchive/test/libarchive_test-test_xattr_platform.o `test -f 'libarchive/test/test_xattr_platform.c' || echo '$(srcdir)/'`libarchive/test/test_xattr_platform.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_xattr_platform.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_xattr_platform.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_xattr_platform.c' object='libarchive/test/libarchive_test-test_xattr_platform.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_format_zip_zip64.o: libarchive/test/test_write_format_zip_zip64.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_format_zip_zip64.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_format_zip_zip64.Tpo -c -o libarchive/test/test-test_write_format_zip_zip64.o `test -f 'libarchive/test/test_write_format_zip_zip64.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_zip_zip64.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_format_zip_zip64.Tpo libarchive/test/$(DEPDIR)/test-test_write_format_zip_zip64.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_zip_zip64.c' object='libarchive/test/test-test_write_format_zip_zip64.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_xattr_platform.o `test -f 'libarchive/test/test_xattr_platform.c' || echo '$(srcdir)/'`libarchive/test/test_xattr_platform.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_format_zip_zip64.o `test -f 'libarchive/test/test_write_format_zip_zip64.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_zip_zip64.c -libarchive/test/libarchive_test-test_xattr_platform.obj: libarchive/test/test_xattr_platform.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_xattr_platform.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_xattr_platform.Tpo -c -o libarchive/test/libarchive_test-test_xattr_platform.obj `if test -f 'libarchive/test/test_xattr_platform.c'; then $(CYGPATH_W) 'libarchive/test/test_xattr_platform.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_xattr_platform.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_xattr_platform.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_xattr_platform.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_xattr_platform.c' object='libarchive/test/libarchive_test-test_xattr_platform.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_format_zip_zip64.obj: libarchive/test/test_write_format_zip_zip64.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_format_zip_zip64.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_format_zip_zip64.Tpo -c -o libarchive/test/test-test_write_format_zip_zip64.obj `if test -f 'libarchive/test/test_write_format_zip_zip64.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_zip_zip64.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_zip_zip64.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_format_zip_zip64.Tpo libarchive/test/$(DEPDIR)/test-test_write_format_zip_zip64.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_zip_zip64.c' object='libarchive/test/test-test_write_format_zip_zip64.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_xattr_platform.obj `if test -f 'libarchive/test/test_xattr_platform.c'; then $(CYGPATH_W) 'libarchive/test/test_xattr_platform.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_xattr_platform.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_format_zip_zip64.obj `if test -f 'libarchive/test/test_write_format_zip_zip64.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_zip_zip64.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_zip_zip64.c'; fi` -libarchive/test/libarchive_test-test_zip_filename_encoding.o: libarchive/test/test_zip_filename_encoding.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_zip_filename_encoding.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_zip_filename_encoding.Tpo -c -o libarchive/test/libarchive_test-test_zip_filename_encoding.o `test -f 'libarchive/test/test_zip_filename_encoding.c' || echo '$(srcdir)/'`libarchive/test/test_zip_filename_encoding.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_zip_filename_encoding.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_zip_filename_encoding.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_zip_filename_encoding.c' object='libarchive/test/libarchive_test-test_zip_filename_encoding.o' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_open_memory.o: libarchive/test/test_write_open_memory.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_open_memory.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_open_memory.Tpo -c -o libarchive/test/test-test_write_open_memory.o `test -f 'libarchive/test/test_write_open_memory.c' || echo '$(srcdir)/'`libarchive/test/test_write_open_memory.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_open_memory.Tpo libarchive/test/$(DEPDIR)/test-test_write_open_memory.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_open_memory.c' object='libarchive/test/test-test_write_open_memory.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_zip_filename_encoding.o `test -f 'libarchive/test/test_zip_filename_encoding.c' || echo '$(srcdir)/'`libarchive/test/test_zip_filename_encoding.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_open_memory.o `test -f 'libarchive/test/test_write_open_memory.c' || echo '$(srcdir)/'`libarchive/test/test_write_open_memory.c -libarchive/test/libarchive_test-test_zip_filename_encoding.obj: libarchive/test/test_zip_filename_encoding.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_zip_filename_encoding.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_zip_filename_encoding.Tpo -c -o libarchive/test/libarchive_test-test_zip_filename_encoding.obj `if test -f 'libarchive/test/test_zip_filename_encoding.c'; then $(CYGPATH_W) 'libarchive/test/test_zip_filename_encoding.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_zip_filename_encoding.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_zip_filename_encoding.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_zip_filename_encoding.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_zip_filename_encoding.c' object='libarchive/test/libarchive_test-test_zip_filename_encoding.obj' libtool=no @AMDEPBACKSLASH@ +libarchive/test/test-test_write_open_memory.obj: libarchive/test/test_write_open_memory.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_open_memory.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_open_memory.Tpo -c -o libarchive/test/test-test_write_open_memory.obj `if test -f 'libarchive/test/test_write_open_memory.c'; then $(CYGPATH_W) 'libarchive/test/test_write_open_memory.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_open_memory.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_open_memory.Tpo libarchive/test/$(DEPDIR)/test-test_write_open_memory.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_open_memory.c' object='libarchive/test/test-test_write_open_memory.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/libarchive_test-test_zip_filename_encoding.obj `if test -f 'libarchive/test/test_zip_filename_encoding.c'; then $(CYGPATH_W) 'libarchive/test/test_zip_filename_encoding.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_zip_filename_encoding.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_open_memory.obj `if test -f 'libarchive/test/test_write_open_memory.c'; then $(CYGPATH_W) 'libarchive/test/test_write_open_memory.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_open_memory.c'; fi` + +libarchive/test/test-test_write_read_format_zip.o: libarchive/test/test_write_read_format_zip.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_read_format_zip.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_read_format_zip.Tpo -c -o libarchive/test/test-test_write_read_format_zip.o `test -f 'libarchive/test/test_write_read_format_zip.c' || echo '$(srcdir)/'`libarchive/test/test_write_read_format_zip.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_read_format_zip.Tpo libarchive/test/$(DEPDIR)/test-test_write_read_format_zip.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_read_format_zip.c' object='libarchive/test/test-test_write_read_format_zip.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_read_format_zip.o `test -f 'libarchive/test/test_write_read_format_zip.c' || echo '$(srcdir)/'`libarchive/test/test_write_read_format_zip.c + +libarchive/test/test-test_write_read_format_zip.obj: libarchive/test/test_write_read_format_zip.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_write_read_format_zip.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_write_read_format_zip.Tpo -c -o libarchive/test/test-test_write_read_format_zip.obj `if test -f 'libarchive/test/test_write_read_format_zip.c'; then $(CYGPATH_W) 'libarchive/test/test_write_read_format_zip.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_read_format_zip.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_write_read_format_zip.Tpo libarchive/test/$(DEPDIR)/test-test_write_read_format_zip.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_read_format_zip.c' object='libarchive/test/test-test_write_read_format_zip.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_write_read_format_zip.obj `if test -f 'libarchive/test/test_write_read_format_zip.c'; then $(CYGPATH_W) 'libarchive/test/test_write_read_format_zip.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_read_format_zip.c'; fi` + +libarchive/test/test-test_xattr_platform.o: libarchive/test/test_xattr_platform.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_xattr_platform.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_xattr_platform.Tpo -c -o libarchive/test/test-test_xattr_platform.o `test -f 'libarchive/test/test_xattr_platform.c' || echo '$(srcdir)/'`libarchive/test/test_xattr_platform.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_xattr_platform.Tpo libarchive/test/$(DEPDIR)/test-test_xattr_platform.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_xattr_platform.c' object='libarchive/test/test-test_xattr_platform.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_xattr_platform.o `test -f 'libarchive/test/test_xattr_platform.c' || echo '$(srcdir)/'`libarchive/test/test_xattr_platform.c + +libarchive/test/test-test_xattr_platform.obj: libarchive/test/test_xattr_platform.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_xattr_platform.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_xattr_platform.Tpo -c -o libarchive/test/test-test_xattr_platform.obj `if test -f 'libarchive/test/test_xattr_platform.c'; then $(CYGPATH_W) 'libarchive/test/test_xattr_platform.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_xattr_platform.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_xattr_platform.Tpo libarchive/test/$(DEPDIR)/test-test_xattr_platform.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_xattr_platform.c' object='libarchive/test/test-test_xattr_platform.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_xattr_platform.obj `if test -f 'libarchive/test/test_xattr_platform.c'; then $(CYGPATH_W) 'libarchive/test/test_xattr_platform.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_xattr_platform.c'; fi` + +libarchive/test/test-test_zip_filename_encoding.o: libarchive/test/test_zip_filename_encoding.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_zip_filename_encoding.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_zip_filename_encoding.Tpo -c -o libarchive/test/test-test_zip_filename_encoding.o `test -f 'libarchive/test/test_zip_filename_encoding.c' || echo '$(srcdir)/'`libarchive/test/test_zip_filename_encoding.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_zip_filename_encoding.Tpo libarchive/test/$(DEPDIR)/test-test_zip_filename_encoding.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_zip_filename_encoding.c' object='libarchive/test/test-test_zip_filename_encoding.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_zip_filename_encoding.o `test -f 'libarchive/test/test_zip_filename_encoding.c' || echo '$(srcdir)/'`libarchive/test/test_zip_filename_encoding.c + +libarchive/test/test-test_zip_filename_encoding.obj: libarchive/test/test_zip_filename_encoding.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_zip_filename_encoding.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_zip_filename_encoding.Tpo -c -o libarchive/test/test-test_zip_filename_encoding.obj `if test -f 'libarchive/test/test_zip_filename_encoding.c'; then $(CYGPATH_W) 'libarchive/test/test_zip_filename_encoding.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_zip_filename_encoding.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_zip_filename_encoding.Tpo libarchive/test/$(DEPDIR)/test-test_zip_filename_encoding.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_zip_filename_encoding.c' object='libarchive/test/test-test_zip_filename_encoding.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive/test/test-test_zip_filename_encoding.obj `if test -f 'libarchive/test/test_zip_filename_encoding.c'; then $(CYGPATH_W) 'libarchive/test/test_zip_filename_encoding.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_zip_filename_encoding.c'; fi` mostlyclean-libtool: -rm -f *.lo @@ -14083,7 +14907,7 @@ $(TEST_SUITE_LOG): $(TEST_LOGS) fi; \ $$success || exit 1 -check-TESTS: +check-TESTS: $(check_PROGRAMS) @list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) @@ -14147,7 +14971,10 @@ bsdcat_test.log: bsdcat_test$(EXEEXT) @am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ @am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT) -distdir: $(DISTFILES) +distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am + +distdir-am: $(DISTFILES) $(am__remove_distdir) test -d "$(distdir)" || mkdir "$(distdir)" @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ @@ -14316,12 +15143,12 @@ check-am: all-am $(MAKE) $(AM_MAKEFLAGS) check-TESTS check: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) check-am -all-am: Makefile $(LTLIBRARIES) $(PROGRAMS) $(MANS) $(DATA) $(HEADERS) \ +all-am: Makefile $(PROGRAMS) $(LTLIBRARIES) $(MANS) $(DATA) $(HEADERS) \ config.h install-binPROGRAMS: install-libLTLIBRARIES installdirs: - for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(man3dir)" "$(DESTDIR)$(man5dir)" "$(DESTDIR)$(pkgconfigdir)" "$(DESTDIR)$(includedir)"; do \ + for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(libdir)" "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(man3dir)" "$(DESTDIR)$(man5dir)" "$(DESTDIR)$(pkgconfigdir)" "$(DESTDIR)$(includedir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: $(BUILT_SOURCES) @@ -14388,7 +15215,700 @@ clean-am: clean-binPROGRAMS clean-checkPROGRAMS clean-generic \ distclean: distclean-am -rm -f $(am__CONFIG_DISTCLEAN_FILES) - -rm -rf cat/$(DEPDIR) cat/test/$(DEPDIR) cpio/$(DEPDIR) cpio/test/$(DEPDIR) libarchive/$(DEPDIR) libarchive/test/$(DEPDIR) libarchive_fe/$(DEPDIR) tar/$(DEPDIR) tar/test/$(DEPDIR) test_utils/$(DEPDIR) + -rm -f cat/$(DEPDIR)/bsdcat-bsdcat.Po + -rm -f cat/$(DEPDIR)/bsdcat-cmdline.Po + -rm -f cat/test/$(DEPDIR)/bsdcat_test-test_0.Po + -rm -f cat/test/$(DEPDIR)/bsdcat_test-test_empty_gz.Po + -rm -f cat/test/$(DEPDIR)/bsdcat_test-test_empty_lz4.Po + -rm -f cat/test/$(DEPDIR)/bsdcat_test-test_empty_xz.Po + -rm -f cat/test/$(DEPDIR)/bsdcat_test-test_empty_zstd.Po + -rm -f cat/test/$(DEPDIR)/bsdcat_test-test_error.Po + -rm -f cat/test/$(DEPDIR)/bsdcat_test-test_error_mixed.Po + -rm -f cat/test/$(DEPDIR)/bsdcat_test-test_expand_Z.Po + -rm -f cat/test/$(DEPDIR)/bsdcat_test-test_expand_bz2.Po + -rm -f cat/test/$(DEPDIR)/bsdcat_test-test_expand_gz.Po + -rm -f cat/test/$(DEPDIR)/bsdcat_test-test_expand_lz4.Po + -rm -f cat/test/$(DEPDIR)/bsdcat_test-test_expand_mixed.Po + -rm -f cat/test/$(DEPDIR)/bsdcat_test-test_expand_plain.Po + -rm -f cat/test/$(DEPDIR)/bsdcat_test-test_expand_xz.Po + -rm -f cat/test/$(DEPDIR)/bsdcat_test-test_expand_zstd.Po + -rm -f cat/test/$(DEPDIR)/bsdcat_test-test_help.Po + -rm -f cat/test/$(DEPDIR)/bsdcat_test-test_stdin.Po + -rm -f cat/test/$(DEPDIR)/bsdcat_test-test_version.Po + -rm -f cpio/$(DEPDIR)/bsdcpio-cmdline.Po + -rm -f cpio/$(DEPDIR)/bsdcpio-cpio.Po + -rm -f cpio/$(DEPDIR)/bsdcpio-cpio_windows.Po + -rm -f cpio/$(DEPDIR)/bsdcpio_test-cmdline.Po + -rm -f cpio/test/$(DEPDIR)/bsdcpio_test-test_0.Po + -rm -f cpio/test/$(DEPDIR)/bsdcpio_test-test_basic.Po + -rm -f cpio/test/$(DEPDIR)/bsdcpio_test-test_cmdline.Po + -rm -f cpio/test/$(DEPDIR)/bsdcpio_test-test_extract_cpio_Z.Po + -rm -f cpio/test/$(DEPDIR)/bsdcpio_test-test_extract_cpio_bz2.Po + -rm -f cpio/test/$(DEPDIR)/bsdcpio_test-test_extract_cpio_grz.Po + -rm -f cpio/test/$(DEPDIR)/bsdcpio_test-test_extract_cpio_gz.Po + -rm -f cpio/test/$(DEPDIR)/bsdcpio_test-test_extract_cpio_lrz.Po + -rm -f cpio/test/$(DEPDIR)/bsdcpio_test-test_extract_cpio_lz.Po + -rm -f cpio/test/$(DEPDIR)/bsdcpio_test-test_extract_cpio_lz4.Po + -rm -f cpio/test/$(DEPDIR)/bsdcpio_test-test_extract_cpio_lzma.Po + -rm -f cpio/test/$(DEPDIR)/bsdcpio_test-test_extract_cpio_lzo.Po + -rm -f cpio/test/$(DEPDIR)/bsdcpio_test-test_extract_cpio_xz.Po + -rm -f cpio/test/$(DEPDIR)/bsdcpio_test-test_extract_cpio_zstd.Po + -rm -f cpio/test/$(DEPDIR)/bsdcpio_test-test_format_newc.Po + -rm -f cpio/test/$(DEPDIR)/bsdcpio_test-test_gcpio_compat.Po + -rm -f cpio/test/$(DEPDIR)/bsdcpio_test-test_missing_file.Po + -rm -f cpio/test/$(DEPDIR)/bsdcpio_test-test_option_0.Po + -rm -f cpio/test/$(DEPDIR)/bsdcpio_test-test_option_B_upper.Po + -rm -f cpio/test/$(DEPDIR)/bsdcpio_test-test_option_C_upper.Po + -rm -f cpio/test/$(DEPDIR)/bsdcpio_test-test_option_J_upper.Po + -rm -f cpio/test/$(DEPDIR)/bsdcpio_test-test_option_L_upper.Po + -rm -f cpio/test/$(DEPDIR)/bsdcpio_test-test_option_Z_upper.Po + -rm -f cpio/test/$(DEPDIR)/bsdcpio_test-test_option_a.Po + -rm -f cpio/test/$(DEPDIR)/bsdcpio_test-test_option_b64encode.Po + -rm -f cpio/test/$(DEPDIR)/bsdcpio_test-test_option_c.Po + -rm -f cpio/test/$(DEPDIR)/bsdcpio_test-test_option_d.Po + -rm -f cpio/test/$(DEPDIR)/bsdcpio_test-test_option_f.Po + -rm -f cpio/test/$(DEPDIR)/bsdcpio_test-test_option_grzip.Po + -rm -f cpio/test/$(DEPDIR)/bsdcpio_test-test_option_help.Po + -rm -f cpio/test/$(DEPDIR)/bsdcpio_test-test_option_l.Po + -rm -f cpio/test/$(DEPDIR)/bsdcpio_test-test_option_lrzip.Po + -rm -f cpio/test/$(DEPDIR)/bsdcpio_test-test_option_lz4.Po + -rm -f cpio/test/$(DEPDIR)/bsdcpio_test-test_option_lzma.Po + -rm -f cpio/test/$(DEPDIR)/bsdcpio_test-test_option_lzop.Po + -rm -f cpio/test/$(DEPDIR)/bsdcpio_test-test_option_m.Po + -rm -f cpio/test/$(DEPDIR)/bsdcpio_test-test_option_passphrase.Po + -rm -f cpio/test/$(DEPDIR)/bsdcpio_test-test_option_t.Po + -rm -f cpio/test/$(DEPDIR)/bsdcpio_test-test_option_u.Po + -rm -f cpio/test/$(DEPDIR)/bsdcpio_test-test_option_uuencode.Po + -rm -f cpio/test/$(DEPDIR)/bsdcpio_test-test_option_version.Po + -rm -f cpio/test/$(DEPDIR)/bsdcpio_test-test_option_xz.Po + -rm -f cpio/test/$(DEPDIR)/bsdcpio_test-test_option_y.Po + -rm -f cpio/test/$(DEPDIR)/bsdcpio_test-test_option_z.Po + -rm -f cpio/test/$(DEPDIR)/bsdcpio_test-test_option_zstd.Po + -rm -f cpio/test/$(DEPDIR)/bsdcpio_test-test_owner_parse.Po + -rm -f cpio/test/$(DEPDIR)/bsdcpio_test-test_passthrough_dotdot.Po + -rm -f cpio/test/$(DEPDIR)/bsdcpio_test-test_passthrough_reverse.Po + -rm -f libarchive/$(DEPDIR)/archive_acl.Plo + -rm -f libarchive/$(DEPDIR)/archive_blake2s_ref.Plo + -rm -f libarchive/$(DEPDIR)/archive_blake2sp_ref.Plo + -rm -f libarchive/$(DEPDIR)/archive_check_magic.Plo + -rm -f libarchive/$(DEPDIR)/archive_cmdline.Plo + -rm -f libarchive/$(DEPDIR)/archive_cryptor.Plo + -rm -f libarchive/$(DEPDIR)/archive_digest.Plo + -rm -f libarchive/$(DEPDIR)/archive_disk_acl_darwin.Plo + -rm -f libarchive/$(DEPDIR)/archive_disk_acl_freebsd.Plo + -rm -f libarchive/$(DEPDIR)/archive_disk_acl_linux.Plo + -rm -f libarchive/$(DEPDIR)/archive_disk_acl_sunos.Plo + -rm -f libarchive/$(DEPDIR)/archive_entry.Plo + -rm -f libarchive/$(DEPDIR)/archive_entry_copy_bhfi.Plo + -rm -f libarchive/$(DEPDIR)/archive_entry_copy_stat.Plo + -rm -f libarchive/$(DEPDIR)/archive_entry_link_resolver.Plo + -rm -f libarchive/$(DEPDIR)/archive_entry_sparse.Plo + -rm -f libarchive/$(DEPDIR)/archive_entry_stat.Plo + -rm -f libarchive/$(DEPDIR)/archive_entry_strmode.Plo + -rm -f libarchive/$(DEPDIR)/archive_entry_xattr.Plo + -rm -f libarchive/$(DEPDIR)/archive_getdate.Plo + -rm -f libarchive/$(DEPDIR)/archive_hmac.Plo + -rm -f libarchive/$(DEPDIR)/archive_match.Plo + -rm -f libarchive/$(DEPDIR)/archive_options.Plo + -rm -f libarchive/$(DEPDIR)/archive_pack_dev.Plo + -rm -f libarchive/$(DEPDIR)/archive_pathmatch.Plo + -rm -f libarchive/$(DEPDIR)/archive_ppmd7.Plo + -rm -f libarchive/$(DEPDIR)/archive_ppmd8.Plo + -rm -f libarchive/$(DEPDIR)/archive_random.Plo + -rm -f libarchive/$(DEPDIR)/archive_rb.Plo + -rm -f libarchive/$(DEPDIR)/archive_read.Plo + -rm -f libarchive/$(DEPDIR)/archive_read_add_passphrase.Plo + -rm -f libarchive/$(DEPDIR)/archive_read_append_filter.Plo + -rm -f libarchive/$(DEPDIR)/archive_read_data_into_fd.Plo + -rm -f libarchive/$(DEPDIR)/archive_read_disk_entry_from_file.Plo + -rm -f libarchive/$(DEPDIR)/archive_read_disk_posix.Plo + -rm -f libarchive/$(DEPDIR)/archive_read_disk_set_standard_lookup.Plo + -rm -f libarchive/$(DEPDIR)/archive_read_disk_windows.Plo + -rm -f libarchive/$(DEPDIR)/archive_read_extract.Plo + -rm -f libarchive/$(DEPDIR)/archive_read_extract2.Plo + -rm -f libarchive/$(DEPDIR)/archive_read_open_fd.Plo + -rm -f libarchive/$(DEPDIR)/archive_read_open_file.Plo + -rm -f libarchive/$(DEPDIR)/archive_read_open_filename.Plo + -rm -f libarchive/$(DEPDIR)/archive_read_open_memory.Plo + -rm -f libarchive/$(DEPDIR)/archive_read_set_format.Plo + -rm -f libarchive/$(DEPDIR)/archive_read_set_options.Plo + -rm -f libarchive/$(DEPDIR)/archive_read_support_filter_all.Plo + -rm -f libarchive/$(DEPDIR)/archive_read_support_filter_by_code.Plo + -rm -f libarchive/$(DEPDIR)/archive_read_support_filter_bzip2.Plo + -rm -f libarchive/$(DEPDIR)/archive_read_support_filter_compress.Plo + -rm -f libarchive/$(DEPDIR)/archive_read_support_filter_grzip.Plo + -rm -f libarchive/$(DEPDIR)/archive_read_support_filter_gzip.Plo + -rm -f libarchive/$(DEPDIR)/archive_read_support_filter_lrzip.Plo + -rm -f libarchive/$(DEPDIR)/archive_read_support_filter_lz4.Plo + -rm -f libarchive/$(DEPDIR)/archive_read_support_filter_lzop.Plo + -rm -f libarchive/$(DEPDIR)/archive_read_support_filter_none.Plo + -rm -f libarchive/$(DEPDIR)/archive_read_support_filter_program.Plo + -rm -f libarchive/$(DEPDIR)/archive_read_support_filter_rpm.Plo + -rm -f libarchive/$(DEPDIR)/archive_read_support_filter_uu.Plo + -rm -f libarchive/$(DEPDIR)/archive_read_support_filter_xz.Plo + -rm -f libarchive/$(DEPDIR)/archive_read_support_filter_zstd.Plo + -rm -f libarchive/$(DEPDIR)/archive_read_support_format_7zip.Plo + -rm -f libarchive/$(DEPDIR)/archive_read_support_format_all.Plo + -rm -f libarchive/$(DEPDIR)/archive_read_support_format_ar.Plo + -rm -f libarchive/$(DEPDIR)/archive_read_support_format_by_code.Plo + -rm -f libarchive/$(DEPDIR)/archive_read_support_format_cab.Plo + -rm -f libarchive/$(DEPDIR)/archive_read_support_format_cpio.Plo + -rm -f libarchive/$(DEPDIR)/archive_read_support_format_empty.Plo + -rm -f libarchive/$(DEPDIR)/archive_read_support_format_iso9660.Plo + -rm -f libarchive/$(DEPDIR)/archive_read_support_format_lha.Plo + -rm -f libarchive/$(DEPDIR)/archive_read_support_format_mtree.Plo + -rm -f libarchive/$(DEPDIR)/archive_read_support_format_rar.Plo + -rm -f libarchive/$(DEPDIR)/archive_read_support_format_rar5.Plo + -rm -f libarchive/$(DEPDIR)/archive_read_support_format_raw.Plo + -rm -f libarchive/$(DEPDIR)/archive_read_support_format_tar.Plo + -rm -f libarchive/$(DEPDIR)/archive_read_support_format_warc.Plo + -rm -f libarchive/$(DEPDIR)/archive_read_support_format_xar.Plo + -rm -f libarchive/$(DEPDIR)/archive_read_support_format_zip.Plo + -rm -f libarchive/$(DEPDIR)/archive_string.Plo + -rm -f libarchive/$(DEPDIR)/archive_string_sprintf.Plo + -rm -f libarchive/$(DEPDIR)/archive_util.Plo + -rm -f libarchive/$(DEPDIR)/archive_version_details.Plo + -rm -f libarchive/$(DEPDIR)/archive_virtual.Plo + -rm -f libarchive/$(DEPDIR)/archive_windows.Plo + -rm -f libarchive/$(DEPDIR)/archive_write.Plo + -rm -f libarchive/$(DEPDIR)/archive_write_add_filter.Plo + -rm -f libarchive/$(DEPDIR)/archive_write_add_filter_b64encode.Plo + -rm -f libarchive/$(DEPDIR)/archive_write_add_filter_by_name.Plo + -rm -f libarchive/$(DEPDIR)/archive_write_add_filter_bzip2.Plo + -rm -f libarchive/$(DEPDIR)/archive_write_add_filter_compress.Plo + -rm -f libarchive/$(DEPDIR)/archive_write_add_filter_grzip.Plo + -rm -f libarchive/$(DEPDIR)/archive_write_add_filter_gzip.Plo + -rm -f libarchive/$(DEPDIR)/archive_write_add_filter_lrzip.Plo + -rm -f libarchive/$(DEPDIR)/archive_write_add_filter_lz4.Plo + -rm -f libarchive/$(DEPDIR)/archive_write_add_filter_lzop.Plo + -rm -f libarchive/$(DEPDIR)/archive_write_add_filter_none.Plo + -rm -f libarchive/$(DEPDIR)/archive_write_add_filter_program.Plo + -rm -f libarchive/$(DEPDIR)/archive_write_add_filter_uuencode.Plo + -rm -f libarchive/$(DEPDIR)/archive_write_add_filter_xz.Plo + -rm -f libarchive/$(DEPDIR)/archive_write_add_filter_zstd.Plo + -rm -f libarchive/$(DEPDIR)/archive_write_disk_posix.Plo + -rm -f libarchive/$(DEPDIR)/archive_write_disk_set_standard_lookup.Plo + -rm -f libarchive/$(DEPDIR)/archive_write_disk_windows.Plo + -rm -f libarchive/$(DEPDIR)/archive_write_open_fd.Plo + -rm -f libarchive/$(DEPDIR)/archive_write_open_file.Plo + -rm -f libarchive/$(DEPDIR)/archive_write_open_filename.Plo + -rm -f libarchive/$(DEPDIR)/archive_write_open_memory.Plo + -rm -f libarchive/$(DEPDIR)/archive_write_set_format.Plo + -rm -f libarchive/$(DEPDIR)/archive_write_set_format_7zip.Plo + -rm -f libarchive/$(DEPDIR)/archive_write_set_format_ar.Plo + -rm -f libarchive/$(DEPDIR)/archive_write_set_format_by_name.Plo + -rm -f libarchive/$(DEPDIR)/archive_write_set_format_cpio.Plo + -rm -f libarchive/$(DEPDIR)/archive_write_set_format_cpio_binary.Plo + -rm -f libarchive/$(DEPDIR)/archive_write_set_format_cpio_newc.Plo + -rm -f libarchive/$(DEPDIR)/archive_write_set_format_cpio_odc.Plo + -rm -f libarchive/$(DEPDIR)/archive_write_set_format_filter_by_ext.Plo + -rm -f libarchive/$(DEPDIR)/archive_write_set_format_gnutar.Plo + -rm -f libarchive/$(DEPDIR)/archive_write_set_format_iso9660.Plo + -rm -f libarchive/$(DEPDIR)/archive_write_set_format_mtree.Plo + -rm -f libarchive/$(DEPDIR)/archive_write_set_format_pax.Plo + -rm -f libarchive/$(DEPDIR)/archive_write_set_format_raw.Plo + -rm -f libarchive/$(DEPDIR)/archive_write_set_format_shar.Plo + -rm -f libarchive/$(DEPDIR)/archive_write_set_format_ustar.Plo + -rm -f libarchive/$(DEPDIR)/archive_write_set_format_v7tar.Plo + -rm -f libarchive/$(DEPDIR)/archive_write_set_format_warc.Plo + -rm -f libarchive/$(DEPDIR)/archive_write_set_format_xar.Plo + -rm -f libarchive/$(DEPDIR)/archive_write_set_format_zip.Plo + -rm -f libarchive/$(DEPDIR)/archive_write_set_options.Plo + -rm -f libarchive/$(DEPDIR)/archive_write_set_passphrase.Plo + -rm -f libarchive/$(DEPDIR)/filter_fork_posix.Plo + -rm -f libarchive/$(DEPDIR)/filter_fork_windows.Plo + -rm -f libarchive/$(DEPDIR)/test-archive_acl.Po + -rm -f libarchive/$(DEPDIR)/test-archive_blake2s_ref.Po + -rm -f libarchive/$(DEPDIR)/test-archive_blake2sp_ref.Po + -rm -f libarchive/$(DEPDIR)/test-archive_check_magic.Po + -rm -f libarchive/$(DEPDIR)/test-archive_cmdline.Po + -rm -f libarchive/$(DEPDIR)/test-archive_cryptor.Po + -rm -f libarchive/$(DEPDIR)/test-archive_digest.Po + -rm -f libarchive/$(DEPDIR)/test-archive_disk_acl_darwin.Po + -rm -f libarchive/$(DEPDIR)/test-archive_disk_acl_freebsd.Po + -rm -f libarchive/$(DEPDIR)/test-archive_disk_acl_linux.Po + -rm -f libarchive/$(DEPDIR)/test-archive_disk_acl_sunos.Po + -rm -f libarchive/$(DEPDIR)/test-archive_entry.Po + -rm -f libarchive/$(DEPDIR)/test-archive_entry_copy_bhfi.Po + -rm -f libarchive/$(DEPDIR)/test-archive_entry_copy_stat.Po + -rm -f libarchive/$(DEPDIR)/test-archive_entry_link_resolver.Po + -rm -f libarchive/$(DEPDIR)/test-archive_entry_sparse.Po + -rm -f libarchive/$(DEPDIR)/test-archive_entry_stat.Po + -rm -f libarchive/$(DEPDIR)/test-archive_entry_strmode.Po + -rm -f libarchive/$(DEPDIR)/test-archive_entry_xattr.Po + -rm -f libarchive/$(DEPDIR)/test-archive_getdate.Po + -rm -f libarchive/$(DEPDIR)/test-archive_hmac.Po + -rm -f libarchive/$(DEPDIR)/test-archive_match.Po + -rm -f libarchive/$(DEPDIR)/test-archive_options.Po + -rm -f libarchive/$(DEPDIR)/test-archive_pack_dev.Po + -rm -f libarchive/$(DEPDIR)/test-archive_pathmatch.Po + -rm -f libarchive/$(DEPDIR)/test-archive_ppmd7.Po + -rm -f libarchive/$(DEPDIR)/test-archive_ppmd8.Po + -rm -f libarchive/$(DEPDIR)/test-archive_random.Po + -rm -f libarchive/$(DEPDIR)/test-archive_rb.Po + -rm -f libarchive/$(DEPDIR)/test-archive_read.Po + -rm -f libarchive/$(DEPDIR)/test-archive_read_add_passphrase.Po + -rm -f libarchive/$(DEPDIR)/test-archive_read_append_filter.Po + -rm -f libarchive/$(DEPDIR)/test-archive_read_data_into_fd.Po + -rm -f libarchive/$(DEPDIR)/test-archive_read_disk_entry_from_file.Po + -rm -f libarchive/$(DEPDIR)/test-archive_read_disk_posix.Po + -rm -f libarchive/$(DEPDIR)/test-archive_read_disk_set_standard_lookup.Po + -rm -f libarchive/$(DEPDIR)/test-archive_read_disk_windows.Po + -rm -f libarchive/$(DEPDIR)/test-archive_read_extract.Po + -rm -f libarchive/$(DEPDIR)/test-archive_read_extract2.Po + -rm -f libarchive/$(DEPDIR)/test-archive_read_open_fd.Po + -rm -f libarchive/$(DEPDIR)/test-archive_read_open_file.Po + -rm -f libarchive/$(DEPDIR)/test-archive_read_open_filename.Po + -rm -f libarchive/$(DEPDIR)/test-archive_read_open_memory.Po + -rm -f libarchive/$(DEPDIR)/test-archive_read_set_format.Po + -rm -f libarchive/$(DEPDIR)/test-archive_read_set_options.Po + -rm -f libarchive/$(DEPDIR)/test-archive_read_support_filter_all.Po + -rm -f libarchive/$(DEPDIR)/test-archive_read_support_filter_by_code.Po + -rm -f libarchive/$(DEPDIR)/test-archive_read_support_filter_bzip2.Po + -rm -f libarchive/$(DEPDIR)/test-archive_read_support_filter_compress.Po + -rm -f libarchive/$(DEPDIR)/test-archive_read_support_filter_grzip.Po + -rm -f libarchive/$(DEPDIR)/test-archive_read_support_filter_gzip.Po + -rm -f libarchive/$(DEPDIR)/test-archive_read_support_filter_lrzip.Po + -rm -f libarchive/$(DEPDIR)/test-archive_read_support_filter_lz4.Po + -rm -f libarchive/$(DEPDIR)/test-archive_read_support_filter_lzop.Po + -rm -f libarchive/$(DEPDIR)/test-archive_read_support_filter_none.Po + -rm -f libarchive/$(DEPDIR)/test-archive_read_support_filter_program.Po + -rm -f libarchive/$(DEPDIR)/test-archive_read_support_filter_rpm.Po + -rm -f libarchive/$(DEPDIR)/test-archive_read_support_filter_uu.Po + -rm -f libarchive/$(DEPDIR)/test-archive_read_support_filter_xz.Po + -rm -f libarchive/$(DEPDIR)/test-archive_read_support_filter_zstd.Po + -rm -f libarchive/$(DEPDIR)/test-archive_read_support_format_7zip.Po + -rm -f libarchive/$(DEPDIR)/test-archive_read_support_format_all.Po + -rm -f libarchive/$(DEPDIR)/test-archive_read_support_format_ar.Po + -rm -f libarchive/$(DEPDIR)/test-archive_read_support_format_by_code.Po + -rm -f libarchive/$(DEPDIR)/test-archive_read_support_format_cab.Po + -rm -f libarchive/$(DEPDIR)/test-archive_read_support_format_cpio.Po + -rm -f libarchive/$(DEPDIR)/test-archive_read_support_format_empty.Po + -rm -f libarchive/$(DEPDIR)/test-archive_read_support_format_iso9660.Po + -rm -f libarchive/$(DEPDIR)/test-archive_read_support_format_lha.Po + -rm -f libarchive/$(DEPDIR)/test-archive_read_support_format_mtree.Po + -rm -f libarchive/$(DEPDIR)/test-archive_read_support_format_rar.Po + -rm -f libarchive/$(DEPDIR)/test-archive_read_support_format_rar5.Po + -rm -f libarchive/$(DEPDIR)/test-archive_read_support_format_raw.Po + -rm -f libarchive/$(DEPDIR)/test-archive_read_support_format_tar.Po + -rm -f libarchive/$(DEPDIR)/test-archive_read_support_format_warc.Po + -rm -f libarchive/$(DEPDIR)/test-archive_read_support_format_xar.Po + -rm -f libarchive/$(DEPDIR)/test-archive_read_support_format_zip.Po + -rm -f libarchive/$(DEPDIR)/test-archive_string.Po + -rm -f libarchive/$(DEPDIR)/test-archive_string_sprintf.Po + -rm -f libarchive/$(DEPDIR)/test-archive_util.Po + -rm -f libarchive/$(DEPDIR)/test-archive_version_details.Po + -rm -f libarchive/$(DEPDIR)/test-archive_virtual.Po + -rm -f libarchive/$(DEPDIR)/test-archive_windows.Po + -rm -f libarchive/$(DEPDIR)/test-archive_write.Po + -rm -f libarchive/$(DEPDIR)/test-archive_write_add_filter.Po + -rm -f libarchive/$(DEPDIR)/test-archive_write_add_filter_b64encode.Po + -rm -f libarchive/$(DEPDIR)/test-archive_write_add_filter_by_name.Po + -rm -f libarchive/$(DEPDIR)/test-archive_write_add_filter_bzip2.Po + -rm -f libarchive/$(DEPDIR)/test-archive_write_add_filter_compress.Po + -rm -f libarchive/$(DEPDIR)/test-archive_write_add_filter_grzip.Po + -rm -f libarchive/$(DEPDIR)/test-archive_write_add_filter_gzip.Po + -rm -f libarchive/$(DEPDIR)/test-archive_write_add_filter_lrzip.Po + -rm -f libarchive/$(DEPDIR)/test-archive_write_add_filter_lz4.Po + -rm -f libarchive/$(DEPDIR)/test-archive_write_add_filter_lzop.Po + -rm -f libarchive/$(DEPDIR)/test-archive_write_add_filter_none.Po + -rm -f libarchive/$(DEPDIR)/test-archive_write_add_filter_program.Po + -rm -f libarchive/$(DEPDIR)/test-archive_write_add_filter_uuencode.Po + -rm -f libarchive/$(DEPDIR)/test-archive_write_add_filter_xz.Po + -rm -f libarchive/$(DEPDIR)/test-archive_write_add_filter_zstd.Po + -rm -f libarchive/$(DEPDIR)/test-archive_write_disk_posix.Po + -rm -f libarchive/$(DEPDIR)/test-archive_write_disk_set_standard_lookup.Po + -rm -f libarchive/$(DEPDIR)/test-archive_write_disk_windows.Po + -rm -f libarchive/$(DEPDIR)/test-archive_write_open_fd.Po + -rm -f libarchive/$(DEPDIR)/test-archive_write_open_file.Po + -rm -f libarchive/$(DEPDIR)/test-archive_write_open_filename.Po + -rm -f libarchive/$(DEPDIR)/test-archive_write_open_memory.Po + -rm -f libarchive/$(DEPDIR)/test-archive_write_set_format.Po + -rm -f libarchive/$(DEPDIR)/test-archive_write_set_format_7zip.Po + -rm -f libarchive/$(DEPDIR)/test-archive_write_set_format_ar.Po + -rm -f libarchive/$(DEPDIR)/test-archive_write_set_format_by_name.Po + -rm -f libarchive/$(DEPDIR)/test-archive_write_set_format_cpio.Po + -rm -f libarchive/$(DEPDIR)/test-archive_write_set_format_cpio_binary.Po + -rm -f libarchive/$(DEPDIR)/test-archive_write_set_format_cpio_newc.Po + -rm -f libarchive/$(DEPDIR)/test-archive_write_set_format_cpio_odc.Po + -rm -f libarchive/$(DEPDIR)/test-archive_write_set_format_filter_by_ext.Po + -rm -f libarchive/$(DEPDIR)/test-archive_write_set_format_gnutar.Po + -rm -f libarchive/$(DEPDIR)/test-archive_write_set_format_iso9660.Po + -rm -f libarchive/$(DEPDIR)/test-archive_write_set_format_mtree.Po + -rm -f libarchive/$(DEPDIR)/test-archive_write_set_format_pax.Po + -rm -f libarchive/$(DEPDIR)/test-archive_write_set_format_raw.Po + -rm -f libarchive/$(DEPDIR)/test-archive_write_set_format_shar.Po + -rm -f libarchive/$(DEPDIR)/test-archive_write_set_format_ustar.Po + -rm -f libarchive/$(DEPDIR)/test-archive_write_set_format_v7tar.Po + -rm -f libarchive/$(DEPDIR)/test-archive_write_set_format_warc.Po + -rm -f libarchive/$(DEPDIR)/test-archive_write_set_format_xar.Po + -rm -f libarchive/$(DEPDIR)/test-archive_write_set_format_zip.Po + -rm -f libarchive/$(DEPDIR)/test-archive_write_set_options.Po + -rm -f libarchive/$(DEPDIR)/test-archive_write_set_passphrase.Po + -rm -f libarchive/$(DEPDIR)/test-filter_fork_posix.Po + -rm -f libarchive/$(DEPDIR)/test-filter_fork_windows.Po + -rm -f libarchive/$(DEPDIR)/test-xxhash.Po + -rm -f libarchive/$(DEPDIR)/xxhash.Plo + -rm -f libarchive/test/$(DEPDIR)/test-read_open_memory.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_acl_nfs4.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_acl_pax.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_acl_platform_nfs4.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_acl_platform_posix1e.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_acl_posix1e.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_acl_text.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_archive_api_feature.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_archive_clear_error.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_archive_cmdline.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_archive_digest.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_archive_getdate.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_archive_match_owner.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_archive_match_path.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_archive_match_time.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_archive_pathmatch.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_archive_read_add_passphrase.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_archive_read_close_twice.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_archive_read_close_twice_open_fd.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_archive_read_close_twice_open_filename.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_archive_read_multiple_data_objects.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_archive_read_next_header_empty.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_archive_read_next_header_raw.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_archive_read_open2.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_archive_read_set_filter_option.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_archive_read_set_format_option.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_archive_read_set_option.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_archive_read_set_options.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_archive_read_support.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_archive_set_error.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_archive_string.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_archive_string_conversion.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_archive_write_add_filter_by_name.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_archive_write_set_filter_option.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_archive_write_set_format_by_name.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_archive_write_set_format_filter_by_ext.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_archive_write_set_format_option.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_archive_write_set_option.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_archive_write_set_options.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_archive_write_set_passphrase.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_bad_fd.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_compat_bzip2.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_compat_cpio.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_compat_gtar.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_compat_gzip.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_compat_lz4.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_compat_lzip.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_compat_lzma.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_compat_lzop.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_compat_mac.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_compat_perl_archive_tar.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_compat_plexus_archiver_tar.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_compat_solaris_pax_sparse.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_compat_solaris_tar_acl.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_compat_star_acl.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_compat_tar_hardlink.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_compat_uudecode.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_compat_uudecode_large.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_compat_xz.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_compat_zip.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_compat_zstd.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_empty_write.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_entry.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_entry_strmode.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_extattr_freebsd.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_filter_count.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_fuzz.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_gnutar_filename_encoding.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_link_resolver.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_open_failure.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_open_fd.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_open_file.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_open_filename.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_pax_filename_encoding.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_pax_xattr_header.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_data_large.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_disk.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_disk_directory_traversals.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_disk_entry_from_file.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_extract.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_file_nonexistent.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_filter_compress.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_filter_grzip.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_filter_lrzip.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_filter_lzop.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_filter_lzop_multiple_parts.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_filter_program.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_filter_program_signature.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_filter_uudecode.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_7zip.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_7zip_encryption_data.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_7zip_encryption_header.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_7zip_encryption_partially.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_7zip_malformed.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_7zip_packinfo_digests.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_ar.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_cab.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_cab_filename.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_cpio_afio.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_cpio_bin.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_cpio_bin_Z.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_cpio_bin_be.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_cpio_bin_bz2.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_cpio_bin_gz.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_cpio_bin_le.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_cpio_bin_lzip.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_cpio_bin_lzma.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_cpio_bin_xz.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_cpio_filename.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_cpio_odc.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_cpio_svr4_bzip2_rpm.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_cpio_svr4_gzip.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_cpio_svr4_gzip_rpm.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_cpio_svr4c_Z.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_empty.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_gtar_filename.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_gtar_gz.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_gtar_lzma.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_gtar_sparse.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_gtar_sparse_skip_entry.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_iso_Z.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_iso_multi_extent.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_iso_xorriso.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_isojoliet_bz2.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_isojoliet_long.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_isojoliet_rr.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_isojoliet_versioned.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_isorr_bz2.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_isorr_ce.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_isorr_new_bz2.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_isorr_rr_moved.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_isozisofs_bz2.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_lha.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_lha_bugfix_0.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_lha_filename.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_lha_filename_utf16.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_mtree.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_mtree_crash747.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_pax_bz2.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_rar.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_rar5.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_rar_encryption_data.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_rar_encryption_header.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_rar_encryption_partially.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_rar_invalid1.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_raw.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_tar.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_tar_concatenated.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_tar_empty_filename.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_tar_empty_pax.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_tar_empty_with_gnulabel.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_tar_filename.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_tbz.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_tgz.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_tlz.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_txz.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_tz.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_ustar_filename.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_warc.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_xar.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_zip.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_zip_7075_utf8_paths.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_zip_comment_stored.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_zip_encryption_data.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_zip_encryption_header.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_zip_encryption_partially.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_zip_extra_padding.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_zip_filename.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_zip_high_compression.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_zip_jar.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_zip_mac_metadata.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_zip_malformed.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_zip_msdos.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_zip_nested.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_zip_nofiletype.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_zip_padded.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_zip_sfx.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_zip_traditional_encryption_data.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_zip_winzip_aes.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_zip_winzip_aes_large.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_zip_with_invalid_traditional_eocd.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_zip_zip64.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_large.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_pax_truncated.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_pax_xattr_rht_security_selinux.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_pax_xattr_schily.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_position.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_set_format.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_too_many_filters.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_truncated.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_truncated_filter.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_short_writes.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_sparse_basic.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_tar_filenames.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_tar_large.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_ustar_filename_encoding.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_ustar_filenames.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_warn_missing_hardlink_target.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_disk.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_disk_appledouble.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_disk_failures.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_disk_fixup.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_disk_hardlink.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_disk_hfs_compression.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_disk_lookup.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_disk_mac_metadata.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_disk_no_hfs_compression.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_disk_perms.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_disk_secure.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_disk_secure744.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_disk_secure745.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_disk_secure746.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_disk_sparse.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_disk_symlink.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_disk_times.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_filter_b64encode.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_filter_bzip2.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_filter_compress.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_filter_gzip.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_filter_gzip_timestamp.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_filter_lrzip.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_filter_lz4.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_filter_lzip.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_filter_lzma.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_filter_lzop.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_filter_program.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_filter_uuencode.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_filter_xz.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_filter_zstd.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_format_7zip.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_format_7zip_empty.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_format_7zip_large.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_format_ar.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_format_cpio.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_format_cpio_empty.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_format_cpio_newc.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_format_cpio_odc.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_format_gnutar.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_format_gnutar_filenames.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_format_iso9660.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_format_iso9660_boot.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_format_iso9660_empty.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_format_iso9660_filename.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_format_iso9660_zisofs.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_format_mtree.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_format_mtree_absolute_path.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_format_mtree_classic.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_format_mtree_classic_indent.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_format_mtree_fflags.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_format_mtree_no_separator.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_format_mtree_quoted_filename.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_format_pax.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_format_raw.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_format_raw_b64.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_format_shar_empty.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_format_tar.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_format_tar_empty.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_format_tar_sparse.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_format_tar_ustar.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_format_tar_v7tar.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_format_warc.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_format_warc_empty.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_format_xar.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_format_xar_empty.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_format_zip.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_format_zip_compression_store.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_format_zip_empty.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_format_zip_empty_zip64.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_format_zip_file.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_format_zip_file_zip64.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_format_zip_large.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_format_zip_zip64.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_open_memory.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_read_format_zip.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_xattr_platform.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_zip_filename_encoding.Po + -rm -f libarchive_fe/$(DEPDIR)/la-err.Plo + -rm -f libarchive_fe/$(DEPDIR)/la-line_reader.Plo + -rm -f libarchive_fe/$(DEPDIR)/la-passphrase.Plo + -rm -f tar/$(DEPDIR)/bsdtar-bsdtar.Po + -rm -f tar/$(DEPDIR)/bsdtar-bsdtar_windows.Po + -rm -f tar/$(DEPDIR)/bsdtar-cmdline.Po + -rm -f tar/$(DEPDIR)/bsdtar-creation_set.Po + -rm -f tar/$(DEPDIR)/bsdtar-read.Po + -rm -f tar/$(DEPDIR)/bsdtar-subst.Po + -rm -f tar/$(DEPDIR)/bsdtar-util.Po + -rm -f tar/$(DEPDIR)/bsdtar-write.Po + -rm -f tar/test/$(DEPDIR)/bsdtar_test-test_0.Po + -rm -f tar/test/$(DEPDIR)/bsdtar_test-test_basic.Po + -rm -f tar/test/$(DEPDIR)/bsdtar_test-test_copy.Po + -rm -f tar/test/$(DEPDIR)/bsdtar_test-test_empty_mtree.Po + -rm -f tar/test/$(DEPDIR)/bsdtar_test-test_extract_tar_Z.Po + -rm -f tar/test/$(DEPDIR)/bsdtar_test-test_extract_tar_bz2.Po + -rm -f tar/test/$(DEPDIR)/bsdtar_test-test_extract_tar_grz.Po + -rm -f tar/test/$(DEPDIR)/bsdtar_test-test_extract_tar_gz.Po + -rm -f tar/test/$(DEPDIR)/bsdtar_test-test_extract_tar_lrz.Po + -rm -f tar/test/$(DEPDIR)/bsdtar_test-test_extract_tar_lz.Po + -rm -f tar/test/$(DEPDIR)/bsdtar_test-test_extract_tar_lz4.Po + -rm -f tar/test/$(DEPDIR)/bsdtar_test-test_extract_tar_lzma.Po + -rm -f tar/test/$(DEPDIR)/bsdtar_test-test_extract_tar_lzo.Po + -rm -f tar/test/$(DEPDIR)/bsdtar_test-test_extract_tar_xz.Po + -rm -f tar/test/$(DEPDIR)/bsdtar_test-test_extract_tar_zstd.Po + -rm -f tar/test/$(DEPDIR)/bsdtar_test-test_format_newc.Po + -rm -f tar/test/$(DEPDIR)/bsdtar_test-test_help.Po + -rm -f tar/test/$(DEPDIR)/bsdtar_test-test_leading_slash.Po + -rm -f tar/test/$(DEPDIR)/bsdtar_test-test_missing_file.Po + -rm -f tar/test/$(DEPDIR)/bsdtar_test-test_option_C_mtree.Po + -rm -f tar/test/$(DEPDIR)/bsdtar_test-test_option_C_upper.Po + -rm -f tar/test/$(DEPDIR)/bsdtar_test-test_option_H_upper.Po + -rm -f tar/test/$(DEPDIR)/bsdtar_test-test_option_L_upper.Po + -rm -f tar/test/$(DEPDIR)/bsdtar_test-test_option_O_upper.Po + -rm -f tar/test/$(DEPDIR)/bsdtar_test-test_option_T_upper.Po + -rm -f tar/test/$(DEPDIR)/bsdtar_test-test_option_U_upper.Po + -rm -f tar/test/$(DEPDIR)/bsdtar_test-test_option_X_upper.Po + -rm -f tar/test/$(DEPDIR)/bsdtar_test-test_option_a.Po + -rm -f tar/test/$(DEPDIR)/bsdtar_test-test_option_acls.Po + -rm -f tar/test/$(DEPDIR)/bsdtar_test-test_option_b.Po + -rm -f tar/test/$(DEPDIR)/bsdtar_test-test_option_b64encode.Po + -rm -f tar/test/$(DEPDIR)/bsdtar_test-test_option_exclude.Po + -rm -f tar/test/$(DEPDIR)/bsdtar_test-test_option_exclude_vcs.Po + -rm -f tar/test/$(DEPDIR)/bsdtar_test-test_option_fflags.Po + -rm -f tar/test/$(DEPDIR)/bsdtar_test-test_option_gid_gname.Po + -rm -f tar/test/$(DEPDIR)/bsdtar_test-test_option_grzip.Po + -rm -f tar/test/$(DEPDIR)/bsdtar_test-test_option_j.Po + -rm -f tar/test/$(DEPDIR)/bsdtar_test-test_option_k.Po + -rm -f tar/test/$(DEPDIR)/bsdtar_test-test_option_keep_newer_files.Po + -rm -f tar/test/$(DEPDIR)/bsdtar_test-test_option_lrzip.Po + -rm -f tar/test/$(DEPDIR)/bsdtar_test-test_option_lz4.Po + -rm -f tar/test/$(DEPDIR)/bsdtar_test-test_option_lzma.Po + -rm -f tar/test/$(DEPDIR)/bsdtar_test-test_option_lzop.Po + -rm -f tar/test/$(DEPDIR)/bsdtar_test-test_option_n.Po + -rm -f tar/test/$(DEPDIR)/bsdtar_test-test_option_newer_than.Po + -rm -f tar/test/$(DEPDIR)/bsdtar_test-test_option_nodump.Po + -rm -f tar/test/$(DEPDIR)/bsdtar_test-test_option_older_than.Po + -rm -f tar/test/$(DEPDIR)/bsdtar_test-test_option_passphrase.Po + -rm -f tar/test/$(DEPDIR)/bsdtar_test-test_option_q.Po + -rm -f tar/test/$(DEPDIR)/bsdtar_test-test_option_r.Po + -rm -f tar/test/$(DEPDIR)/bsdtar_test-test_option_s.Po + -rm -f tar/test/$(DEPDIR)/bsdtar_test-test_option_safe_writes.Po + -rm -f tar/test/$(DEPDIR)/bsdtar_test-test_option_uid_uname.Po + -rm -f tar/test/$(DEPDIR)/bsdtar_test-test_option_uuencode.Po + -rm -f tar/test/$(DEPDIR)/bsdtar_test-test_option_xattrs.Po + -rm -f tar/test/$(DEPDIR)/bsdtar_test-test_option_xz.Po + -rm -f tar/test/$(DEPDIR)/bsdtar_test-test_option_z.Po + -rm -f tar/test/$(DEPDIR)/bsdtar_test-test_option_zstd.Po + -rm -f tar/test/$(DEPDIR)/bsdtar_test-test_patterns.Po + -rm -f tar/test/$(DEPDIR)/bsdtar_test-test_print_longpath.Po + -rm -f tar/test/$(DEPDIR)/bsdtar_test-test_stdio.Po + -rm -f tar/test/$(DEPDIR)/bsdtar_test-test_strip_components.Po + -rm -f tar/test/$(DEPDIR)/bsdtar_test-test_symlink_dir.Po + -rm -f tar/test/$(DEPDIR)/bsdtar_test-test_version.Po + -rm -f tar/test/$(DEPDIR)/bsdtar_test-test_windows.Po + -rm -f test_utils/$(DEPDIR)/bsdcat_test-test_main.Po + -rm -f test_utils/$(DEPDIR)/bsdcat_test-test_utils.Po + -rm -f test_utils/$(DEPDIR)/bsdcpio_test-test_main.Po + -rm -f test_utils/$(DEPDIR)/bsdcpio_test-test_utils.Po + -rm -f test_utils/$(DEPDIR)/bsdtar_test-test_main.Po + -rm -f test_utils/$(DEPDIR)/bsdtar_test-test_utils.Po + -rm -f test_utils/$(DEPDIR)/libarchive_test-test_main.Po + -rm -f test_utils/$(DEPDIR)/libarchive_test-test_utils.Po -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-hdr distclean-libtool distclean-local distclean-tags @@ -14437,7 +15957,700 @@ installcheck-am: maintainer-clean: maintainer-clean-am -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -rf $(top_srcdir)/autom4te.cache - -rm -rf cat/$(DEPDIR) cat/test/$(DEPDIR) cpio/$(DEPDIR) cpio/test/$(DEPDIR) libarchive/$(DEPDIR) libarchive/test/$(DEPDIR) libarchive_fe/$(DEPDIR) tar/$(DEPDIR) tar/test/$(DEPDIR) test_utils/$(DEPDIR) + -rm -f cat/$(DEPDIR)/bsdcat-bsdcat.Po + -rm -f cat/$(DEPDIR)/bsdcat-cmdline.Po + -rm -f cat/test/$(DEPDIR)/bsdcat_test-test_0.Po + -rm -f cat/test/$(DEPDIR)/bsdcat_test-test_empty_gz.Po + -rm -f cat/test/$(DEPDIR)/bsdcat_test-test_empty_lz4.Po + -rm -f cat/test/$(DEPDIR)/bsdcat_test-test_empty_xz.Po + -rm -f cat/test/$(DEPDIR)/bsdcat_test-test_empty_zstd.Po + -rm -f cat/test/$(DEPDIR)/bsdcat_test-test_error.Po + -rm -f cat/test/$(DEPDIR)/bsdcat_test-test_error_mixed.Po + -rm -f cat/test/$(DEPDIR)/bsdcat_test-test_expand_Z.Po + -rm -f cat/test/$(DEPDIR)/bsdcat_test-test_expand_bz2.Po + -rm -f cat/test/$(DEPDIR)/bsdcat_test-test_expand_gz.Po + -rm -f cat/test/$(DEPDIR)/bsdcat_test-test_expand_lz4.Po + -rm -f cat/test/$(DEPDIR)/bsdcat_test-test_expand_mixed.Po + -rm -f cat/test/$(DEPDIR)/bsdcat_test-test_expand_plain.Po + -rm -f cat/test/$(DEPDIR)/bsdcat_test-test_expand_xz.Po + -rm -f cat/test/$(DEPDIR)/bsdcat_test-test_expand_zstd.Po + -rm -f cat/test/$(DEPDIR)/bsdcat_test-test_help.Po + -rm -f cat/test/$(DEPDIR)/bsdcat_test-test_stdin.Po + -rm -f cat/test/$(DEPDIR)/bsdcat_test-test_version.Po + -rm -f cpio/$(DEPDIR)/bsdcpio-cmdline.Po + -rm -f cpio/$(DEPDIR)/bsdcpio-cpio.Po + -rm -f cpio/$(DEPDIR)/bsdcpio-cpio_windows.Po + -rm -f cpio/$(DEPDIR)/bsdcpio_test-cmdline.Po + -rm -f cpio/test/$(DEPDIR)/bsdcpio_test-test_0.Po + -rm -f cpio/test/$(DEPDIR)/bsdcpio_test-test_basic.Po + -rm -f cpio/test/$(DEPDIR)/bsdcpio_test-test_cmdline.Po + -rm -f cpio/test/$(DEPDIR)/bsdcpio_test-test_extract_cpio_Z.Po + -rm -f cpio/test/$(DEPDIR)/bsdcpio_test-test_extract_cpio_bz2.Po + -rm -f cpio/test/$(DEPDIR)/bsdcpio_test-test_extract_cpio_grz.Po + -rm -f cpio/test/$(DEPDIR)/bsdcpio_test-test_extract_cpio_gz.Po + -rm -f cpio/test/$(DEPDIR)/bsdcpio_test-test_extract_cpio_lrz.Po + -rm -f cpio/test/$(DEPDIR)/bsdcpio_test-test_extract_cpio_lz.Po + -rm -f cpio/test/$(DEPDIR)/bsdcpio_test-test_extract_cpio_lz4.Po + -rm -f cpio/test/$(DEPDIR)/bsdcpio_test-test_extract_cpio_lzma.Po + -rm -f cpio/test/$(DEPDIR)/bsdcpio_test-test_extract_cpio_lzo.Po + -rm -f cpio/test/$(DEPDIR)/bsdcpio_test-test_extract_cpio_xz.Po + -rm -f cpio/test/$(DEPDIR)/bsdcpio_test-test_extract_cpio_zstd.Po + -rm -f cpio/test/$(DEPDIR)/bsdcpio_test-test_format_newc.Po + -rm -f cpio/test/$(DEPDIR)/bsdcpio_test-test_gcpio_compat.Po + -rm -f cpio/test/$(DEPDIR)/bsdcpio_test-test_missing_file.Po + -rm -f cpio/test/$(DEPDIR)/bsdcpio_test-test_option_0.Po + -rm -f cpio/test/$(DEPDIR)/bsdcpio_test-test_option_B_upper.Po + -rm -f cpio/test/$(DEPDIR)/bsdcpio_test-test_option_C_upper.Po + -rm -f cpio/test/$(DEPDIR)/bsdcpio_test-test_option_J_upper.Po + -rm -f cpio/test/$(DEPDIR)/bsdcpio_test-test_option_L_upper.Po + -rm -f cpio/test/$(DEPDIR)/bsdcpio_test-test_option_Z_upper.Po + -rm -f cpio/test/$(DEPDIR)/bsdcpio_test-test_option_a.Po + -rm -f cpio/test/$(DEPDIR)/bsdcpio_test-test_option_b64encode.Po + -rm -f cpio/test/$(DEPDIR)/bsdcpio_test-test_option_c.Po + -rm -f cpio/test/$(DEPDIR)/bsdcpio_test-test_option_d.Po + -rm -f cpio/test/$(DEPDIR)/bsdcpio_test-test_option_f.Po + -rm -f cpio/test/$(DEPDIR)/bsdcpio_test-test_option_grzip.Po + -rm -f cpio/test/$(DEPDIR)/bsdcpio_test-test_option_help.Po + -rm -f cpio/test/$(DEPDIR)/bsdcpio_test-test_option_l.Po + -rm -f cpio/test/$(DEPDIR)/bsdcpio_test-test_option_lrzip.Po + -rm -f cpio/test/$(DEPDIR)/bsdcpio_test-test_option_lz4.Po + -rm -f cpio/test/$(DEPDIR)/bsdcpio_test-test_option_lzma.Po + -rm -f cpio/test/$(DEPDIR)/bsdcpio_test-test_option_lzop.Po + -rm -f cpio/test/$(DEPDIR)/bsdcpio_test-test_option_m.Po + -rm -f cpio/test/$(DEPDIR)/bsdcpio_test-test_option_passphrase.Po + -rm -f cpio/test/$(DEPDIR)/bsdcpio_test-test_option_t.Po + -rm -f cpio/test/$(DEPDIR)/bsdcpio_test-test_option_u.Po + -rm -f cpio/test/$(DEPDIR)/bsdcpio_test-test_option_uuencode.Po + -rm -f cpio/test/$(DEPDIR)/bsdcpio_test-test_option_version.Po + -rm -f cpio/test/$(DEPDIR)/bsdcpio_test-test_option_xz.Po + -rm -f cpio/test/$(DEPDIR)/bsdcpio_test-test_option_y.Po + -rm -f cpio/test/$(DEPDIR)/bsdcpio_test-test_option_z.Po + -rm -f cpio/test/$(DEPDIR)/bsdcpio_test-test_option_zstd.Po + -rm -f cpio/test/$(DEPDIR)/bsdcpio_test-test_owner_parse.Po + -rm -f cpio/test/$(DEPDIR)/bsdcpio_test-test_passthrough_dotdot.Po + -rm -f cpio/test/$(DEPDIR)/bsdcpio_test-test_passthrough_reverse.Po + -rm -f libarchive/$(DEPDIR)/archive_acl.Plo + -rm -f libarchive/$(DEPDIR)/archive_blake2s_ref.Plo + -rm -f libarchive/$(DEPDIR)/archive_blake2sp_ref.Plo + -rm -f libarchive/$(DEPDIR)/archive_check_magic.Plo + -rm -f libarchive/$(DEPDIR)/archive_cmdline.Plo + -rm -f libarchive/$(DEPDIR)/archive_cryptor.Plo + -rm -f libarchive/$(DEPDIR)/archive_digest.Plo + -rm -f libarchive/$(DEPDIR)/archive_disk_acl_darwin.Plo + -rm -f libarchive/$(DEPDIR)/archive_disk_acl_freebsd.Plo + -rm -f libarchive/$(DEPDIR)/archive_disk_acl_linux.Plo + -rm -f libarchive/$(DEPDIR)/archive_disk_acl_sunos.Plo + -rm -f libarchive/$(DEPDIR)/archive_entry.Plo + -rm -f libarchive/$(DEPDIR)/archive_entry_copy_bhfi.Plo + -rm -f libarchive/$(DEPDIR)/archive_entry_copy_stat.Plo + -rm -f libarchive/$(DEPDIR)/archive_entry_link_resolver.Plo + -rm -f libarchive/$(DEPDIR)/archive_entry_sparse.Plo + -rm -f libarchive/$(DEPDIR)/archive_entry_stat.Plo + -rm -f libarchive/$(DEPDIR)/archive_entry_strmode.Plo + -rm -f libarchive/$(DEPDIR)/archive_entry_xattr.Plo + -rm -f libarchive/$(DEPDIR)/archive_getdate.Plo + -rm -f libarchive/$(DEPDIR)/archive_hmac.Plo + -rm -f libarchive/$(DEPDIR)/archive_match.Plo + -rm -f libarchive/$(DEPDIR)/archive_options.Plo + -rm -f libarchive/$(DEPDIR)/archive_pack_dev.Plo + -rm -f libarchive/$(DEPDIR)/archive_pathmatch.Plo + -rm -f libarchive/$(DEPDIR)/archive_ppmd7.Plo + -rm -f libarchive/$(DEPDIR)/archive_ppmd8.Plo + -rm -f libarchive/$(DEPDIR)/archive_random.Plo + -rm -f libarchive/$(DEPDIR)/archive_rb.Plo + -rm -f libarchive/$(DEPDIR)/archive_read.Plo + -rm -f libarchive/$(DEPDIR)/archive_read_add_passphrase.Plo + -rm -f libarchive/$(DEPDIR)/archive_read_append_filter.Plo + -rm -f libarchive/$(DEPDIR)/archive_read_data_into_fd.Plo + -rm -f libarchive/$(DEPDIR)/archive_read_disk_entry_from_file.Plo + -rm -f libarchive/$(DEPDIR)/archive_read_disk_posix.Plo + -rm -f libarchive/$(DEPDIR)/archive_read_disk_set_standard_lookup.Plo + -rm -f libarchive/$(DEPDIR)/archive_read_disk_windows.Plo + -rm -f libarchive/$(DEPDIR)/archive_read_extract.Plo + -rm -f libarchive/$(DEPDIR)/archive_read_extract2.Plo + -rm -f libarchive/$(DEPDIR)/archive_read_open_fd.Plo + -rm -f libarchive/$(DEPDIR)/archive_read_open_file.Plo + -rm -f libarchive/$(DEPDIR)/archive_read_open_filename.Plo + -rm -f libarchive/$(DEPDIR)/archive_read_open_memory.Plo + -rm -f libarchive/$(DEPDIR)/archive_read_set_format.Plo + -rm -f libarchive/$(DEPDIR)/archive_read_set_options.Plo + -rm -f libarchive/$(DEPDIR)/archive_read_support_filter_all.Plo + -rm -f libarchive/$(DEPDIR)/archive_read_support_filter_by_code.Plo + -rm -f libarchive/$(DEPDIR)/archive_read_support_filter_bzip2.Plo + -rm -f libarchive/$(DEPDIR)/archive_read_support_filter_compress.Plo + -rm -f libarchive/$(DEPDIR)/archive_read_support_filter_grzip.Plo + -rm -f libarchive/$(DEPDIR)/archive_read_support_filter_gzip.Plo + -rm -f libarchive/$(DEPDIR)/archive_read_support_filter_lrzip.Plo + -rm -f libarchive/$(DEPDIR)/archive_read_support_filter_lz4.Plo + -rm -f libarchive/$(DEPDIR)/archive_read_support_filter_lzop.Plo + -rm -f libarchive/$(DEPDIR)/archive_read_support_filter_none.Plo + -rm -f libarchive/$(DEPDIR)/archive_read_support_filter_program.Plo + -rm -f libarchive/$(DEPDIR)/archive_read_support_filter_rpm.Plo + -rm -f libarchive/$(DEPDIR)/archive_read_support_filter_uu.Plo + -rm -f libarchive/$(DEPDIR)/archive_read_support_filter_xz.Plo + -rm -f libarchive/$(DEPDIR)/archive_read_support_filter_zstd.Plo + -rm -f libarchive/$(DEPDIR)/archive_read_support_format_7zip.Plo + -rm -f libarchive/$(DEPDIR)/archive_read_support_format_all.Plo + -rm -f libarchive/$(DEPDIR)/archive_read_support_format_ar.Plo + -rm -f libarchive/$(DEPDIR)/archive_read_support_format_by_code.Plo + -rm -f libarchive/$(DEPDIR)/archive_read_support_format_cab.Plo + -rm -f libarchive/$(DEPDIR)/archive_read_support_format_cpio.Plo + -rm -f libarchive/$(DEPDIR)/archive_read_support_format_empty.Plo + -rm -f libarchive/$(DEPDIR)/archive_read_support_format_iso9660.Plo + -rm -f libarchive/$(DEPDIR)/archive_read_support_format_lha.Plo + -rm -f libarchive/$(DEPDIR)/archive_read_support_format_mtree.Plo + -rm -f libarchive/$(DEPDIR)/archive_read_support_format_rar.Plo + -rm -f libarchive/$(DEPDIR)/archive_read_support_format_rar5.Plo + -rm -f libarchive/$(DEPDIR)/archive_read_support_format_raw.Plo + -rm -f libarchive/$(DEPDIR)/archive_read_support_format_tar.Plo + -rm -f libarchive/$(DEPDIR)/archive_read_support_format_warc.Plo + -rm -f libarchive/$(DEPDIR)/archive_read_support_format_xar.Plo + -rm -f libarchive/$(DEPDIR)/archive_read_support_format_zip.Plo + -rm -f libarchive/$(DEPDIR)/archive_string.Plo + -rm -f libarchive/$(DEPDIR)/archive_string_sprintf.Plo + -rm -f libarchive/$(DEPDIR)/archive_util.Plo + -rm -f libarchive/$(DEPDIR)/archive_version_details.Plo + -rm -f libarchive/$(DEPDIR)/archive_virtual.Plo + -rm -f libarchive/$(DEPDIR)/archive_windows.Plo + -rm -f libarchive/$(DEPDIR)/archive_write.Plo + -rm -f libarchive/$(DEPDIR)/archive_write_add_filter.Plo + -rm -f libarchive/$(DEPDIR)/archive_write_add_filter_b64encode.Plo + -rm -f libarchive/$(DEPDIR)/archive_write_add_filter_by_name.Plo + -rm -f libarchive/$(DEPDIR)/archive_write_add_filter_bzip2.Plo + -rm -f libarchive/$(DEPDIR)/archive_write_add_filter_compress.Plo + -rm -f libarchive/$(DEPDIR)/archive_write_add_filter_grzip.Plo + -rm -f libarchive/$(DEPDIR)/archive_write_add_filter_gzip.Plo + -rm -f libarchive/$(DEPDIR)/archive_write_add_filter_lrzip.Plo + -rm -f libarchive/$(DEPDIR)/archive_write_add_filter_lz4.Plo + -rm -f libarchive/$(DEPDIR)/archive_write_add_filter_lzop.Plo + -rm -f libarchive/$(DEPDIR)/archive_write_add_filter_none.Plo + -rm -f libarchive/$(DEPDIR)/archive_write_add_filter_program.Plo + -rm -f libarchive/$(DEPDIR)/archive_write_add_filter_uuencode.Plo + -rm -f libarchive/$(DEPDIR)/archive_write_add_filter_xz.Plo + -rm -f libarchive/$(DEPDIR)/archive_write_add_filter_zstd.Plo + -rm -f libarchive/$(DEPDIR)/archive_write_disk_posix.Plo + -rm -f libarchive/$(DEPDIR)/archive_write_disk_set_standard_lookup.Plo + -rm -f libarchive/$(DEPDIR)/archive_write_disk_windows.Plo + -rm -f libarchive/$(DEPDIR)/archive_write_open_fd.Plo + -rm -f libarchive/$(DEPDIR)/archive_write_open_file.Plo + -rm -f libarchive/$(DEPDIR)/archive_write_open_filename.Plo + -rm -f libarchive/$(DEPDIR)/archive_write_open_memory.Plo + -rm -f libarchive/$(DEPDIR)/archive_write_set_format.Plo + -rm -f libarchive/$(DEPDIR)/archive_write_set_format_7zip.Plo + -rm -f libarchive/$(DEPDIR)/archive_write_set_format_ar.Plo + -rm -f libarchive/$(DEPDIR)/archive_write_set_format_by_name.Plo + -rm -f libarchive/$(DEPDIR)/archive_write_set_format_cpio.Plo + -rm -f libarchive/$(DEPDIR)/archive_write_set_format_cpio_binary.Plo + -rm -f libarchive/$(DEPDIR)/archive_write_set_format_cpio_newc.Plo + -rm -f libarchive/$(DEPDIR)/archive_write_set_format_cpio_odc.Plo + -rm -f libarchive/$(DEPDIR)/archive_write_set_format_filter_by_ext.Plo + -rm -f libarchive/$(DEPDIR)/archive_write_set_format_gnutar.Plo + -rm -f libarchive/$(DEPDIR)/archive_write_set_format_iso9660.Plo + -rm -f libarchive/$(DEPDIR)/archive_write_set_format_mtree.Plo + -rm -f libarchive/$(DEPDIR)/archive_write_set_format_pax.Plo + -rm -f libarchive/$(DEPDIR)/archive_write_set_format_raw.Plo + -rm -f libarchive/$(DEPDIR)/archive_write_set_format_shar.Plo + -rm -f libarchive/$(DEPDIR)/archive_write_set_format_ustar.Plo + -rm -f libarchive/$(DEPDIR)/archive_write_set_format_v7tar.Plo + -rm -f libarchive/$(DEPDIR)/archive_write_set_format_warc.Plo + -rm -f libarchive/$(DEPDIR)/archive_write_set_format_xar.Plo + -rm -f libarchive/$(DEPDIR)/archive_write_set_format_zip.Plo + -rm -f libarchive/$(DEPDIR)/archive_write_set_options.Plo + -rm -f libarchive/$(DEPDIR)/archive_write_set_passphrase.Plo + -rm -f libarchive/$(DEPDIR)/filter_fork_posix.Plo + -rm -f libarchive/$(DEPDIR)/filter_fork_windows.Plo + -rm -f libarchive/$(DEPDIR)/test-archive_acl.Po + -rm -f libarchive/$(DEPDIR)/test-archive_blake2s_ref.Po + -rm -f libarchive/$(DEPDIR)/test-archive_blake2sp_ref.Po + -rm -f libarchive/$(DEPDIR)/test-archive_check_magic.Po + -rm -f libarchive/$(DEPDIR)/test-archive_cmdline.Po + -rm -f libarchive/$(DEPDIR)/test-archive_cryptor.Po + -rm -f libarchive/$(DEPDIR)/test-archive_digest.Po + -rm -f libarchive/$(DEPDIR)/test-archive_disk_acl_darwin.Po + -rm -f libarchive/$(DEPDIR)/test-archive_disk_acl_freebsd.Po + -rm -f libarchive/$(DEPDIR)/test-archive_disk_acl_linux.Po + -rm -f libarchive/$(DEPDIR)/test-archive_disk_acl_sunos.Po + -rm -f libarchive/$(DEPDIR)/test-archive_entry.Po + -rm -f libarchive/$(DEPDIR)/test-archive_entry_copy_bhfi.Po + -rm -f libarchive/$(DEPDIR)/test-archive_entry_copy_stat.Po + -rm -f libarchive/$(DEPDIR)/test-archive_entry_link_resolver.Po + -rm -f libarchive/$(DEPDIR)/test-archive_entry_sparse.Po + -rm -f libarchive/$(DEPDIR)/test-archive_entry_stat.Po + -rm -f libarchive/$(DEPDIR)/test-archive_entry_strmode.Po + -rm -f libarchive/$(DEPDIR)/test-archive_entry_xattr.Po + -rm -f libarchive/$(DEPDIR)/test-archive_getdate.Po + -rm -f libarchive/$(DEPDIR)/test-archive_hmac.Po + -rm -f libarchive/$(DEPDIR)/test-archive_match.Po + -rm -f libarchive/$(DEPDIR)/test-archive_options.Po + -rm -f libarchive/$(DEPDIR)/test-archive_pack_dev.Po + -rm -f libarchive/$(DEPDIR)/test-archive_pathmatch.Po + -rm -f libarchive/$(DEPDIR)/test-archive_ppmd7.Po + -rm -f libarchive/$(DEPDIR)/test-archive_ppmd8.Po + -rm -f libarchive/$(DEPDIR)/test-archive_random.Po + -rm -f libarchive/$(DEPDIR)/test-archive_rb.Po + -rm -f libarchive/$(DEPDIR)/test-archive_read.Po + -rm -f libarchive/$(DEPDIR)/test-archive_read_add_passphrase.Po + -rm -f libarchive/$(DEPDIR)/test-archive_read_append_filter.Po + -rm -f libarchive/$(DEPDIR)/test-archive_read_data_into_fd.Po + -rm -f libarchive/$(DEPDIR)/test-archive_read_disk_entry_from_file.Po + -rm -f libarchive/$(DEPDIR)/test-archive_read_disk_posix.Po + -rm -f libarchive/$(DEPDIR)/test-archive_read_disk_set_standard_lookup.Po + -rm -f libarchive/$(DEPDIR)/test-archive_read_disk_windows.Po + -rm -f libarchive/$(DEPDIR)/test-archive_read_extract.Po + -rm -f libarchive/$(DEPDIR)/test-archive_read_extract2.Po + -rm -f libarchive/$(DEPDIR)/test-archive_read_open_fd.Po + -rm -f libarchive/$(DEPDIR)/test-archive_read_open_file.Po + -rm -f libarchive/$(DEPDIR)/test-archive_read_open_filename.Po + -rm -f libarchive/$(DEPDIR)/test-archive_read_open_memory.Po + -rm -f libarchive/$(DEPDIR)/test-archive_read_set_format.Po + -rm -f libarchive/$(DEPDIR)/test-archive_read_set_options.Po + -rm -f libarchive/$(DEPDIR)/test-archive_read_support_filter_all.Po + -rm -f libarchive/$(DEPDIR)/test-archive_read_support_filter_by_code.Po + -rm -f libarchive/$(DEPDIR)/test-archive_read_support_filter_bzip2.Po + -rm -f libarchive/$(DEPDIR)/test-archive_read_support_filter_compress.Po + -rm -f libarchive/$(DEPDIR)/test-archive_read_support_filter_grzip.Po + -rm -f libarchive/$(DEPDIR)/test-archive_read_support_filter_gzip.Po + -rm -f libarchive/$(DEPDIR)/test-archive_read_support_filter_lrzip.Po + -rm -f libarchive/$(DEPDIR)/test-archive_read_support_filter_lz4.Po + -rm -f libarchive/$(DEPDIR)/test-archive_read_support_filter_lzop.Po + -rm -f libarchive/$(DEPDIR)/test-archive_read_support_filter_none.Po + -rm -f libarchive/$(DEPDIR)/test-archive_read_support_filter_program.Po + -rm -f libarchive/$(DEPDIR)/test-archive_read_support_filter_rpm.Po + -rm -f libarchive/$(DEPDIR)/test-archive_read_support_filter_uu.Po + -rm -f libarchive/$(DEPDIR)/test-archive_read_support_filter_xz.Po + -rm -f libarchive/$(DEPDIR)/test-archive_read_support_filter_zstd.Po + -rm -f libarchive/$(DEPDIR)/test-archive_read_support_format_7zip.Po + -rm -f libarchive/$(DEPDIR)/test-archive_read_support_format_all.Po + -rm -f libarchive/$(DEPDIR)/test-archive_read_support_format_ar.Po + -rm -f libarchive/$(DEPDIR)/test-archive_read_support_format_by_code.Po + -rm -f libarchive/$(DEPDIR)/test-archive_read_support_format_cab.Po + -rm -f libarchive/$(DEPDIR)/test-archive_read_support_format_cpio.Po + -rm -f libarchive/$(DEPDIR)/test-archive_read_support_format_empty.Po + -rm -f libarchive/$(DEPDIR)/test-archive_read_support_format_iso9660.Po + -rm -f libarchive/$(DEPDIR)/test-archive_read_support_format_lha.Po + -rm -f libarchive/$(DEPDIR)/test-archive_read_support_format_mtree.Po + -rm -f libarchive/$(DEPDIR)/test-archive_read_support_format_rar.Po + -rm -f libarchive/$(DEPDIR)/test-archive_read_support_format_rar5.Po + -rm -f libarchive/$(DEPDIR)/test-archive_read_support_format_raw.Po + -rm -f libarchive/$(DEPDIR)/test-archive_read_support_format_tar.Po + -rm -f libarchive/$(DEPDIR)/test-archive_read_support_format_warc.Po + -rm -f libarchive/$(DEPDIR)/test-archive_read_support_format_xar.Po + -rm -f libarchive/$(DEPDIR)/test-archive_read_support_format_zip.Po + -rm -f libarchive/$(DEPDIR)/test-archive_string.Po + -rm -f libarchive/$(DEPDIR)/test-archive_string_sprintf.Po + -rm -f libarchive/$(DEPDIR)/test-archive_util.Po + -rm -f libarchive/$(DEPDIR)/test-archive_version_details.Po + -rm -f libarchive/$(DEPDIR)/test-archive_virtual.Po + -rm -f libarchive/$(DEPDIR)/test-archive_windows.Po + -rm -f libarchive/$(DEPDIR)/test-archive_write.Po + -rm -f libarchive/$(DEPDIR)/test-archive_write_add_filter.Po + -rm -f libarchive/$(DEPDIR)/test-archive_write_add_filter_b64encode.Po + -rm -f libarchive/$(DEPDIR)/test-archive_write_add_filter_by_name.Po + -rm -f libarchive/$(DEPDIR)/test-archive_write_add_filter_bzip2.Po + -rm -f libarchive/$(DEPDIR)/test-archive_write_add_filter_compress.Po + -rm -f libarchive/$(DEPDIR)/test-archive_write_add_filter_grzip.Po + -rm -f libarchive/$(DEPDIR)/test-archive_write_add_filter_gzip.Po + -rm -f libarchive/$(DEPDIR)/test-archive_write_add_filter_lrzip.Po + -rm -f libarchive/$(DEPDIR)/test-archive_write_add_filter_lz4.Po + -rm -f libarchive/$(DEPDIR)/test-archive_write_add_filter_lzop.Po + -rm -f libarchive/$(DEPDIR)/test-archive_write_add_filter_none.Po + -rm -f libarchive/$(DEPDIR)/test-archive_write_add_filter_program.Po + -rm -f libarchive/$(DEPDIR)/test-archive_write_add_filter_uuencode.Po + -rm -f libarchive/$(DEPDIR)/test-archive_write_add_filter_xz.Po + -rm -f libarchive/$(DEPDIR)/test-archive_write_add_filter_zstd.Po + -rm -f libarchive/$(DEPDIR)/test-archive_write_disk_posix.Po + -rm -f libarchive/$(DEPDIR)/test-archive_write_disk_set_standard_lookup.Po + -rm -f libarchive/$(DEPDIR)/test-archive_write_disk_windows.Po + -rm -f libarchive/$(DEPDIR)/test-archive_write_open_fd.Po + -rm -f libarchive/$(DEPDIR)/test-archive_write_open_file.Po + -rm -f libarchive/$(DEPDIR)/test-archive_write_open_filename.Po + -rm -f libarchive/$(DEPDIR)/test-archive_write_open_memory.Po + -rm -f libarchive/$(DEPDIR)/test-archive_write_set_format.Po + -rm -f libarchive/$(DEPDIR)/test-archive_write_set_format_7zip.Po + -rm -f libarchive/$(DEPDIR)/test-archive_write_set_format_ar.Po + -rm -f libarchive/$(DEPDIR)/test-archive_write_set_format_by_name.Po + -rm -f libarchive/$(DEPDIR)/test-archive_write_set_format_cpio.Po + -rm -f libarchive/$(DEPDIR)/test-archive_write_set_format_cpio_binary.Po + -rm -f libarchive/$(DEPDIR)/test-archive_write_set_format_cpio_newc.Po + -rm -f libarchive/$(DEPDIR)/test-archive_write_set_format_cpio_odc.Po + -rm -f libarchive/$(DEPDIR)/test-archive_write_set_format_filter_by_ext.Po + -rm -f libarchive/$(DEPDIR)/test-archive_write_set_format_gnutar.Po + -rm -f libarchive/$(DEPDIR)/test-archive_write_set_format_iso9660.Po + -rm -f libarchive/$(DEPDIR)/test-archive_write_set_format_mtree.Po + -rm -f libarchive/$(DEPDIR)/test-archive_write_set_format_pax.Po + -rm -f libarchive/$(DEPDIR)/test-archive_write_set_format_raw.Po + -rm -f libarchive/$(DEPDIR)/test-archive_write_set_format_shar.Po + -rm -f libarchive/$(DEPDIR)/test-archive_write_set_format_ustar.Po + -rm -f libarchive/$(DEPDIR)/test-archive_write_set_format_v7tar.Po + -rm -f libarchive/$(DEPDIR)/test-archive_write_set_format_warc.Po + -rm -f libarchive/$(DEPDIR)/test-archive_write_set_format_xar.Po + -rm -f libarchive/$(DEPDIR)/test-archive_write_set_format_zip.Po + -rm -f libarchive/$(DEPDIR)/test-archive_write_set_options.Po + -rm -f libarchive/$(DEPDIR)/test-archive_write_set_passphrase.Po + -rm -f libarchive/$(DEPDIR)/test-filter_fork_posix.Po + -rm -f libarchive/$(DEPDIR)/test-filter_fork_windows.Po + -rm -f libarchive/$(DEPDIR)/test-xxhash.Po + -rm -f libarchive/$(DEPDIR)/xxhash.Plo + -rm -f libarchive/test/$(DEPDIR)/test-read_open_memory.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_acl_nfs4.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_acl_pax.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_acl_platform_nfs4.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_acl_platform_posix1e.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_acl_posix1e.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_acl_text.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_archive_api_feature.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_archive_clear_error.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_archive_cmdline.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_archive_digest.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_archive_getdate.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_archive_match_owner.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_archive_match_path.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_archive_match_time.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_archive_pathmatch.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_archive_read_add_passphrase.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_archive_read_close_twice.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_archive_read_close_twice_open_fd.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_archive_read_close_twice_open_filename.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_archive_read_multiple_data_objects.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_archive_read_next_header_empty.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_archive_read_next_header_raw.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_archive_read_open2.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_archive_read_set_filter_option.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_archive_read_set_format_option.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_archive_read_set_option.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_archive_read_set_options.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_archive_read_support.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_archive_set_error.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_archive_string.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_archive_string_conversion.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_archive_write_add_filter_by_name.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_archive_write_set_filter_option.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_archive_write_set_format_by_name.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_archive_write_set_format_filter_by_ext.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_archive_write_set_format_option.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_archive_write_set_option.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_archive_write_set_options.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_archive_write_set_passphrase.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_bad_fd.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_compat_bzip2.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_compat_cpio.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_compat_gtar.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_compat_gzip.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_compat_lz4.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_compat_lzip.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_compat_lzma.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_compat_lzop.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_compat_mac.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_compat_perl_archive_tar.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_compat_plexus_archiver_tar.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_compat_solaris_pax_sparse.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_compat_solaris_tar_acl.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_compat_star_acl.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_compat_tar_hardlink.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_compat_uudecode.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_compat_uudecode_large.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_compat_xz.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_compat_zip.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_compat_zstd.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_empty_write.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_entry.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_entry_strmode.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_extattr_freebsd.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_filter_count.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_fuzz.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_gnutar_filename_encoding.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_link_resolver.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_open_failure.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_open_fd.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_open_file.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_open_filename.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_pax_filename_encoding.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_pax_xattr_header.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_data_large.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_disk.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_disk_directory_traversals.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_disk_entry_from_file.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_extract.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_file_nonexistent.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_filter_compress.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_filter_grzip.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_filter_lrzip.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_filter_lzop.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_filter_lzop_multiple_parts.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_filter_program.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_filter_program_signature.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_filter_uudecode.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_7zip.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_7zip_encryption_data.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_7zip_encryption_header.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_7zip_encryption_partially.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_7zip_malformed.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_7zip_packinfo_digests.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_ar.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_cab.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_cab_filename.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_cpio_afio.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_cpio_bin.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_cpio_bin_Z.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_cpio_bin_be.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_cpio_bin_bz2.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_cpio_bin_gz.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_cpio_bin_le.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_cpio_bin_lzip.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_cpio_bin_lzma.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_cpio_bin_xz.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_cpio_filename.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_cpio_odc.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_cpio_svr4_bzip2_rpm.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_cpio_svr4_gzip.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_cpio_svr4_gzip_rpm.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_cpio_svr4c_Z.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_empty.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_gtar_filename.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_gtar_gz.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_gtar_lzma.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_gtar_sparse.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_gtar_sparse_skip_entry.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_iso_Z.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_iso_multi_extent.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_iso_xorriso.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_isojoliet_bz2.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_isojoliet_long.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_isojoliet_rr.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_isojoliet_versioned.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_isorr_bz2.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_isorr_ce.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_isorr_new_bz2.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_isorr_rr_moved.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_isozisofs_bz2.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_lha.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_lha_bugfix_0.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_lha_filename.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_lha_filename_utf16.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_mtree.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_mtree_crash747.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_pax_bz2.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_rar.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_rar5.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_rar_encryption_data.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_rar_encryption_header.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_rar_encryption_partially.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_rar_invalid1.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_raw.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_tar.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_tar_concatenated.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_tar_empty_filename.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_tar_empty_pax.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_tar_empty_with_gnulabel.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_tar_filename.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_tbz.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_tgz.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_tlz.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_txz.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_tz.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_ustar_filename.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_warc.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_xar.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_zip.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_zip_7075_utf8_paths.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_zip_comment_stored.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_zip_encryption_data.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_zip_encryption_header.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_zip_encryption_partially.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_zip_extra_padding.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_zip_filename.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_zip_high_compression.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_zip_jar.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_zip_mac_metadata.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_zip_malformed.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_zip_msdos.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_zip_nested.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_zip_nofiletype.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_zip_padded.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_zip_sfx.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_zip_traditional_encryption_data.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_zip_winzip_aes.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_zip_winzip_aes_large.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_zip_with_invalid_traditional_eocd.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_zip_zip64.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_large.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_pax_truncated.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_pax_xattr_rht_security_selinux.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_pax_xattr_schily.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_position.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_set_format.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_too_many_filters.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_truncated.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_read_truncated_filter.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_short_writes.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_sparse_basic.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_tar_filenames.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_tar_large.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_ustar_filename_encoding.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_ustar_filenames.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_warn_missing_hardlink_target.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_disk.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_disk_appledouble.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_disk_failures.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_disk_fixup.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_disk_hardlink.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_disk_hfs_compression.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_disk_lookup.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_disk_mac_metadata.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_disk_no_hfs_compression.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_disk_perms.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_disk_secure.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_disk_secure744.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_disk_secure745.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_disk_secure746.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_disk_sparse.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_disk_symlink.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_disk_times.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_filter_b64encode.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_filter_bzip2.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_filter_compress.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_filter_gzip.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_filter_gzip_timestamp.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_filter_lrzip.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_filter_lz4.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_filter_lzip.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_filter_lzma.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_filter_lzop.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_filter_program.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_filter_uuencode.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_filter_xz.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_filter_zstd.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_format_7zip.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_format_7zip_empty.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_format_7zip_large.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_format_ar.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_format_cpio.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_format_cpio_empty.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_format_cpio_newc.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_format_cpio_odc.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_format_gnutar.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_format_gnutar_filenames.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_format_iso9660.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_format_iso9660_boot.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_format_iso9660_empty.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_format_iso9660_filename.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_format_iso9660_zisofs.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_format_mtree.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_format_mtree_absolute_path.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_format_mtree_classic.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_format_mtree_classic_indent.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_format_mtree_fflags.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_format_mtree_no_separator.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_format_mtree_quoted_filename.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_format_pax.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_format_raw.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_format_raw_b64.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_format_shar_empty.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_format_tar.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_format_tar_empty.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_format_tar_sparse.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_format_tar_ustar.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_format_tar_v7tar.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_format_warc.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_format_warc_empty.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_format_xar.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_format_xar_empty.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_format_zip.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_format_zip_compression_store.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_format_zip_empty.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_format_zip_empty_zip64.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_format_zip_file.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_format_zip_file_zip64.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_format_zip_large.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_format_zip_zip64.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_open_memory.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_write_read_format_zip.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_xattr_platform.Po + -rm -f libarchive/test/$(DEPDIR)/test-test_zip_filename_encoding.Po + -rm -f libarchive_fe/$(DEPDIR)/la-err.Plo + -rm -f libarchive_fe/$(DEPDIR)/la-line_reader.Plo + -rm -f libarchive_fe/$(DEPDIR)/la-passphrase.Plo + -rm -f tar/$(DEPDIR)/bsdtar-bsdtar.Po + -rm -f tar/$(DEPDIR)/bsdtar-bsdtar_windows.Po + -rm -f tar/$(DEPDIR)/bsdtar-cmdline.Po + -rm -f tar/$(DEPDIR)/bsdtar-creation_set.Po + -rm -f tar/$(DEPDIR)/bsdtar-read.Po + -rm -f tar/$(DEPDIR)/bsdtar-subst.Po + -rm -f tar/$(DEPDIR)/bsdtar-util.Po + -rm -f tar/$(DEPDIR)/bsdtar-write.Po + -rm -f tar/test/$(DEPDIR)/bsdtar_test-test_0.Po + -rm -f tar/test/$(DEPDIR)/bsdtar_test-test_basic.Po + -rm -f tar/test/$(DEPDIR)/bsdtar_test-test_copy.Po + -rm -f tar/test/$(DEPDIR)/bsdtar_test-test_empty_mtree.Po + -rm -f tar/test/$(DEPDIR)/bsdtar_test-test_extract_tar_Z.Po + -rm -f tar/test/$(DEPDIR)/bsdtar_test-test_extract_tar_bz2.Po + -rm -f tar/test/$(DEPDIR)/bsdtar_test-test_extract_tar_grz.Po + -rm -f tar/test/$(DEPDIR)/bsdtar_test-test_extract_tar_gz.Po + -rm -f tar/test/$(DEPDIR)/bsdtar_test-test_extract_tar_lrz.Po + -rm -f tar/test/$(DEPDIR)/bsdtar_test-test_extract_tar_lz.Po + -rm -f tar/test/$(DEPDIR)/bsdtar_test-test_extract_tar_lz4.Po + -rm -f tar/test/$(DEPDIR)/bsdtar_test-test_extract_tar_lzma.Po + -rm -f tar/test/$(DEPDIR)/bsdtar_test-test_extract_tar_lzo.Po + -rm -f tar/test/$(DEPDIR)/bsdtar_test-test_extract_tar_xz.Po + -rm -f tar/test/$(DEPDIR)/bsdtar_test-test_extract_tar_zstd.Po + -rm -f tar/test/$(DEPDIR)/bsdtar_test-test_format_newc.Po + -rm -f tar/test/$(DEPDIR)/bsdtar_test-test_help.Po + -rm -f tar/test/$(DEPDIR)/bsdtar_test-test_leading_slash.Po + -rm -f tar/test/$(DEPDIR)/bsdtar_test-test_missing_file.Po + -rm -f tar/test/$(DEPDIR)/bsdtar_test-test_option_C_mtree.Po + -rm -f tar/test/$(DEPDIR)/bsdtar_test-test_option_C_upper.Po + -rm -f tar/test/$(DEPDIR)/bsdtar_test-test_option_H_upper.Po + -rm -f tar/test/$(DEPDIR)/bsdtar_test-test_option_L_upper.Po + -rm -f tar/test/$(DEPDIR)/bsdtar_test-test_option_O_upper.Po + -rm -f tar/test/$(DEPDIR)/bsdtar_test-test_option_T_upper.Po + -rm -f tar/test/$(DEPDIR)/bsdtar_test-test_option_U_upper.Po + -rm -f tar/test/$(DEPDIR)/bsdtar_test-test_option_X_upper.Po + -rm -f tar/test/$(DEPDIR)/bsdtar_test-test_option_a.Po + -rm -f tar/test/$(DEPDIR)/bsdtar_test-test_option_acls.Po + -rm -f tar/test/$(DEPDIR)/bsdtar_test-test_option_b.Po + -rm -f tar/test/$(DEPDIR)/bsdtar_test-test_option_b64encode.Po + -rm -f tar/test/$(DEPDIR)/bsdtar_test-test_option_exclude.Po + -rm -f tar/test/$(DEPDIR)/bsdtar_test-test_option_exclude_vcs.Po + -rm -f tar/test/$(DEPDIR)/bsdtar_test-test_option_fflags.Po + -rm -f tar/test/$(DEPDIR)/bsdtar_test-test_option_gid_gname.Po + -rm -f tar/test/$(DEPDIR)/bsdtar_test-test_option_grzip.Po + -rm -f tar/test/$(DEPDIR)/bsdtar_test-test_option_j.Po + -rm -f tar/test/$(DEPDIR)/bsdtar_test-test_option_k.Po + -rm -f tar/test/$(DEPDIR)/bsdtar_test-test_option_keep_newer_files.Po + -rm -f tar/test/$(DEPDIR)/bsdtar_test-test_option_lrzip.Po + -rm -f tar/test/$(DEPDIR)/bsdtar_test-test_option_lz4.Po + -rm -f tar/test/$(DEPDIR)/bsdtar_test-test_option_lzma.Po + -rm -f tar/test/$(DEPDIR)/bsdtar_test-test_option_lzop.Po + -rm -f tar/test/$(DEPDIR)/bsdtar_test-test_option_n.Po + -rm -f tar/test/$(DEPDIR)/bsdtar_test-test_option_newer_than.Po + -rm -f tar/test/$(DEPDIR)/bsdtar_test-test_option_nodump.Po + -rm -f tar/test/$(DEPDIR)/bsdtar_test-test_option_older_than.Po + -rm -f tar/test/$(DEPDIR)/bsdtar_test-test_option_passphrase.Po + -rm -f tar/test/$(DEPDIR)/bsdtar_test-test_option_q.Po + -rm -f tar/test/$(DEPDIR)/bsdtar_test-test_option_r.Po + -rm -f tar/test/$(DEPDIR)/bsdtar_test-test_option_s.Po + -rm -f tar/test/$(DEPDIR)/bsdtar_test-test_option_safe_writes.Po + -rm -f tar/test/$(DEPDIR)/bsdtar_test-test_option_uid_uname.Po + -rm -f tar/test/$(DEPDIR)/bsdtar_test-test_option_uuencode.Po + -rm -f tar/test/$(DEPDIR)/bsdtar_test-test_option_xattrs.Po + -rm -f tar/test/$(DEPDIR)/bsdtar_test-test_option_xz.Po + -rm -f tar/test/$(DEPDIR)/bsdtar_test-test_option_z.Po + -rm -f tar/test/$(DEPDIR)/bsdtar_test-test_option_zstd.Po + -rm -f tar/test/$(DEPDIR)/bsdtar_test-test_patterns.Po + -rm -f tar/test/$(DEPDIR)/bsdtar_test-test_print_longpath.Po + -rm -f tar/test/$(DEPDIR)/bsdtar_test-test_stdio.Po + -rm -f tar/test/$(DEPDIR)/bsdtar_test-test_strip_components.Po + -rm -f tar/test/$(DEPDIR)/bsdtar_test-test_symlink_dir.Po + -rm -f tar/test/$(DEPDIR)/bsdtar_test-test_version.Po + -rm -f tar/test/$(DEPDIR)/bsdtar_test-test_windows.Po + -rm -f test_utils/$(DEPDIR)/bsdcat_test-test_main.Po + -rm -f test_utils/$(DEPDIR)/bsdcat_test-test_utils.Po + -rm -f test_utils/$(DEPDIR)/bsdcpio_test-test_main.Po + -rm -f test_utils/$(DEPDIR)/bsdcpio_test-test_utils.Po + -rm -f test_utils/$(DEPDIR)/bsdtar_test-test_main.Po + -rm -f test_utils/$(DEPDIR)/bsdtar_test-test_utils.Po + -rm -f test_utils/$(DEPDIR)/libarchive_test-test_main.Po + -rm -f test_utils/$(DEPDIR)/libarchive_test-test_utils.Po -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic @@ -14461,18 +16674,19 @@ uninstall-man: uninstall-man1 uninstall-man3 uninstall-man5 .MAKE: all check check-am install install-am install-strip -.PHONY: CTAGS GTAGS TAGS all all-am am--refresh check check-TESTS \ - check-am clean clean-binPROGRAMS clean-checkPROGRAMS \ - clean-cscope clean-generic clean-libLTLIBRARIES clean-libtool \ - clean-noinstLTLIBRARIES cscope cscopelist-am ctags ctags-am \ - dist dist-all dist-bzip2 dist-gzip dist-hook dist-lzip \ - dist-shar dist-tarZ dist-xz dist-zip distcheck distclean \ - distclean-compile distclean-generic distclean-hdr \ - distclean-libtool distclean-local distclean-tags \ - distcleancheck distdir distuninstallcheck dvi dvi-am html \ - html-am info info-am install install-am install-binPROGRAMS \ - install-data install-data-am install-dvi install-dvi-am \ - install-exec install-exec-am install-html install-html-am \ +.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles am--refresh check \ + check-TESTS check-am clean clean-binPROGRAMS \ + clean-checkPROGRAMS clean-cscope clean-generic \ + clean-libLTLIBRARIES clean-libtool clean-noinstLTLIBRARIES \ + cscope cscopelist-am ctags ctags-am dist dist-all dist-bzip2 \ + dist-gzip dist-hook dist-lzip dist-shar dist-tarZ dist-xz \ + dist-zip distcheck distclean distclean-compile \ + distclean-generic distclean-hdr distclean-libtool \ + distclean-local distclean-tags distcleancheck distdir \ + distuninstallcheck dvi dvi-am html html-am info info-am \ + install install-am install-binPROGRAMS install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am \ install-includeHEADERS install-info install-info-am \ install-libLTLIBRARIES install-man install-man1 install-man3 \ install-man5 install-pdf install-pdf-am install-pkgconfigDATA \ diff --git a/dependencies/libarchive-3.4.2/NEWS b/dependencies/libarchive-3.5.2/NEWS similarity index 98% rename from dependencies/libarchive-3.4.2/NEWS rename to dependencies/libarchive-3.5.2/NEWS index 15360f5..0964106 100644 --- a/dependencies/libarchive-3.4.2/NEWS +++ b/dependencies/libarchive-3.5.2/NEWS @@ -1,3 +1,17 @@ +Aug 22, 2021: libarchive 3.5.2 released + +Dec 26, 2020: libarchive 3.5.1 released + +Dec 01, 2020: libarchive 3.5.0 released + +Oct 14, 2020: Support for system extended attributes + +May 20, 2020: libarchive 3.4.3 released + +Apr 30, 2020: Support for pzstd compressed files + +Apr 16, 2020: Support for RHT.security.selinux tar extended attribute + Feb 11, 2020: libarchive 3.4.2 released Jan 23, 2020: Important fixes for writing XAR archives diff --git a/dependencies/libarchive-3.4.2/README.md b/dependencies/libarchive-3.5.2/README.md similarity index 99% rename from dependencies/libarchive-3.4.2/README.md rename to dependencies/libarchive-3.5.2/README.md index 2912b3d..d5ef70c 100644 --- a/dependencies/libarchive-3.4.2/README.md +++ b/dependencies/libarchive-3.5.2/README.md @@ -70,7 +70,7 @@ know about any errors or omissions you find. ## Supported Formats -Currently, the library automatically detects and reads the following fomats: +Currently, the library automatically detects and reads the following formats: * Old V7 tar archives * POSIX ustar * GNU tar format (including GNU long filenames, long link names, and sparse files) @@ -79,6 +79,7 @@ Currently, the library automatically detects and reads the following fomats: * POSIX octet-oriented cpio * SVR4 ASCII cpio * Binary cpio (big-endian or little-endian) + * PWB binary cpio * ISO9660 CD-ROM images (with optional Rockridge or Joliet extensions) * ZIP archives (with uncompressed or "deflate" compressed entries, including support for encrypted Zip archives) * ZIPX archives (with support for bzip2, ppmd8, lzma and xz compressed entries) @@ -110,6 +111,8 @@ The library can create archives in any of the following formats: * Old V7 tar format * POSIX octet-oriented cpio * SVR4 "newc" cpio + * Binary cpio (little-endian) + * PWB binary cpio * shar archives * ZIP archives (with uncompressed or "deflate" compressed entries) * GNU and BSD 'ar' archives diff --git a/dependencies/libarchive-3.4.2/aclocal.m4 b/dependencies/libarchive-3.5.2/aclocal.m4 similarity index 98% rename from dependencies/libarchive-3.4.2/aclocal.m4 rename to dependencies/libarchive-3.5.2/aclocal.m4 index 62cc146..e35d2fb 100644 --- a/dependencies/libarchive-3.4.2/aclocal.m4 +++ b/dependencies/libarchive-3.5.2/aclocal.m4 @@ -1,6 +1,6 @@ -# generated automatically by aclocal 1.15.1 -*- Autoconf -*- +# generated automatically by aclocal 1.16.1 -*- Autoconf -*- -# Copyright (C) 1996-2017 Free Software Foundation, Inc. +# Copyright (C) 1996-2018 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -1055,8 +1055,8 @@ int forced_loaded() { return 2;} _LT_EOF echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&AS_MESSAGE_LOG_FD $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&AS_MESSAGE_LOG_FD - echo "$AR cru libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD - $AR cru libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD + echo "$AR cr libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD + $AR cr libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD echo "$RANLIB libconftest.a" >&AS_MESSAGE_LOG_FD $RANLIB libconftest.a 2>&AS_MESSAGE_LOG_FD cat > conftest.c << _LT_EOF @@ -1506,7 +1506,7 @@ need_locks=$enable_libtool_lock m4_defun([_LT_PROG_AR], [AC_CHECK_TOOLS(AR, [ar], false) : ${AR=ar} -: ${AR_FLAGS=cru} +: ${AR_FLAGS=cr} _LT_DECL([], [AR], [1], [The archiver]) _LT_DECL([], [AR_FLAGS], [1], [Flags to create an archive]) @@ -4077,7 +4077,8 @@ _LT_EOF if AC_TRY_EVAL(ac_compile); then # Now try to grab the symbols. nlist=conftest.nm - if AC_TRY_EVAL(NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) && test -s "$nlist"; then + $ECHO "$as_me:$LINENO: $NM conftest.$ac_objext | $lt_cv_sys_global_symbol_pipe > $nlist" >&AS_MESSAGE_LOG_FD + if eval "$NM" conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist 2>&AS_MESSAGE_LOG_FD && test -s "$nlist"; then # Try sorting and uniquifying the output. if sort "$nlist" | uniq > "$nlist"T; then mv -f "$nlist"T "$nlist" @@ -4717,6 +4718,12 @@ m4_if([$1], [CXX], [ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; + # flang / f18. f95 an alias for gfortran or flang on Debian + flang* | f18* | f95*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; # icc used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. icc* | ifort*) @@ -6448,7 +6455,7 @@ if test yes != "$_lt_caught_CXX_error"; then # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. - output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP " \-L"' else GXX=no @@ -6823,7 +6830,7 @@ if test yes != "$_lt_caught_CXX_error"; then # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. - output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' + output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP " \-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) if test yes = "$GXX"; then @@ -6888,7 +6895,7 @@ if test yes != "$_lt_caught_CXX_error"; then # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. - output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' + output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP " \-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) if test yes = "$GXX"; then @@ -7227,7 +7234,7 @@ if test yes != "$_lt_caught_CXX_error"; then # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. - output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP " \-L"' else # FIXME: insert proper C++ library support @@ -7311,7 +7318,7 @@ if test yes != "$_lt_caught_CXX_error"; then # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. - output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP " \-L"' else # g++ 2.7 appears to require '-G' NOT '-shared' on this # platform. @@ -7322,7 +7329,7 @@ if test yes != "$_lt_caught_CXX_error"; then # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. - output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' + output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP " \-L"' fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R $wl$libdir' @@ -9343,7 +9350,7 @@ AS_VAR_COPY([$1], [pkg_cv_][$1]) AS_VAR_IF([$1], [""], [$5], [$4])dnl ])dnl PKG_CHECK_VAR -# Copyright (C) 2002-2017 Free Software Foundation, Inc. +# Copyright (C) 2002-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -9355,10 +9362,10 @@ AS_VAR_IF([$1], [""], [$5], [$4])dnl # generated from the m4 files accompanying Automake X.Y. # (This private macro should not be called outside this file.) AC_DEFUN([AM_AUTOMAKE_VERSION], -[am__api_version='1.15' +[am__api_version='1.16' dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to dnl require some minimum version. Point them to the right macro. -m4_if([$1], [1.15.1], [], +m4_if([$1], [1.16.1], [], [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl ]) @@ -9374,14 +9381,14 @@ m4_define([_AM_AUTOCONF_VERSION], []) # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. # This function is AC_REQUIREd by AM_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], -[AM_AUTOMAKE_VERSION([1.15.1])dnl +[AM_AUTOMAKE_VERSION([1.16.1])dnl m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) # AM_AUX_DIR_EXPAND -*- Autoconf -*- -# Copyright (C) 2001-2017 Free Software Foundation, Inc. +# Copyright (C) 2001-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -9433,7 +9440,7 @@ am_aux_dir=`cd "$ac_aux_dir" && pwd` # AM_CONDITIONAL -*- Autoconf -*- -# Copyright (C) 1997-2017 Free Software Foundation, Inc. +# Copyright (C) 1997-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -9464,7 +9471,7 @@ AC_CONFIG_COMMANDS_PRE( Usually this means the macro was only invoked conditionally.]]) fi])]) -# Copyright (C) 1999-2017 Free Software Foundation, Inc. +# Copyright (C) 1999-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -9655,13 +9662,12 @@ _AM_SUBST_NOTMAKE([am__nodep])dnl # Generate code to set up dependency tracking. -*- Autoconf -*- -# Copyright (C) 1999-2017 Free Software Foundation, Inc. +# Copyright (C) 1999-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. - # _AM_OUTPUT_DEPENDENCY_COMMANDS # ------------------------------ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], @@ -9669,49 +9675,41 @@ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], # Older Autoconf quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. - case $CONFIG_FILES in - *\'*) eval set x "$CONFIG_FILES" ;; - *) set x $CONFIG_FILES ;; - esac + # TODO: see whether this extra hack can be removed once we start + # requiring Autoconf 2.70 or later. + AS_CASE([$CONFIG_FILES], + [*\'*], [eval set x "$CONFIG_FILES"], + [*], [set x $CONFIG_FILES]) shift - for mf + # Used to flag and report bootstrapping failures. + am_rc=0 + for am_mf do # Strip MF so we end up with the name of the file. - mf=`echo "$mf" | sed -e 's/:.*$//'` - # Check whether this is an Automake generated Makefile or not. - # We used to match only the files named 'Makefile.in', but - # some people rename them; so instead we look at the file content. - # Grep'ing the first line is not enough: some people post-process - # each Makefile.in and add a new line on top of each file to say so. - # Grep'ing the whole file is not good either: AIX grep has a line + am_mf=`AS_ECHO(["$am_mf"]) | sed -e 's/:.*$//'` + # Check whether this is an Automake generated Makefile which includes + # dependency-tracking related rules and includes. + # Grep'ing the whole file directly is not great: AIX grep has a line # limit of 2048, but all sed's we know have understand at least 4000. - if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then - dirpart=`AS_DIRNAME("$mf")` - else - continue - fi - # Extract the definition of DEPDIR, am__include, and am__quote - # from the Makefile without running 'make'. - DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` - test -z "$DEPDIR" && continue - am__include=`sed -n 's/^am__include = //p' < "$mf"` - test -z "$am__include" && continue - am__quote=`sed -n 's/^am__quote = //p' < "$mf"` - # Find all dependency output files, they are included files with - # $(DEPDIR) in their names. We invoke sed twice because it is the - # simplest approach to changing $(DEPDIR) to its actual value in the - # expansion. - for file in `sed -n " - s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ - sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do - # Make sure the directory exists. - test -f "$dirpart/$file" && continue - fdir=`AS_DIRNAME(["$file"])` - AS_MKDIR_P([$dirpart/$fdir]) - # echo "creating $dirpart/$file" - echo '# dummy' > "$dirpart/$file" - done + sed -n 's,^am--depfiles:.*,X,p' "$am_mf" | grep X >/dev/null 2>&1 \ + || continue + am_dirpart=`AS_DIRNAME(["$am_mf"])` + am_filepart=`AS_BASENAME(["$am_mf"])` + AM_RUN_LOG([cd "$am_dirpart" \ + && sed -e '/# am--include-marker/d' "$am_filepart" \ + | $MAKE -f - am--depfiles]) || am_rc=$? done + if test $am_rc -ne 0; then + AC_MSG_FAILURE([Something went wrong bootstrapping makefile fragments + for automatic dependency tracking. Try re-running configure with the + '--disable-dependency-tracking' option to at least be able to build + the package (albeit without support for automatic dependency tracking).]) + fi + AS_UNSET([am_dirpart]) + AS_UNSET([am_filepart]) + AS_UNSET([am_mf]) + AS_UNSET([am_rc]) + rm -f conftest-deps.mk } ])# _AM_OUTPUT_DEPENDENCY_COMMANDS @@ -9720,18 +9718,17 @@ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], # ----------------------------- # This macro should only be invoked once -- use via AC_REQUIRE. # -# This code is only required when automatic dependency tracking -# is enabled. FIXME. This creates each '.P' file that we will -# need in order to bootstrap the dependency handling code. +# This code is only required when automatic dependency tracking is enabled. +# This creates each '.Po' and '.Plo' makefile fragment that we'll need in +# order to bootstrap the dependency handling code. AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], [AC_CONFIG_COMMANDS([depfiles], [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], - [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) -]) + [AMDEP_TRUE="$AMDEP_TRUE" MAKE="${MAKE-make}"])]) # Do all the work for Automake. -*- Autoconf -*- -# Copyright (C) 1996-2017 Free Software Foundation, Inc. +# Copyright (C) 1996-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -9818,8 +9815,8 @@ AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl AC_REQUIRE([AC_PROG_MKDIR_P])dnl # For better backward compatibility. To be removed once Automake 1.9.x # dies out for good. For more background, see: -# -# +# +# AC_SUBST([mkdir_p], ['$(MKDIR_P)']) # We need awk for the "check" target (and possibly the TAP driver). The # system "awk" is bad on some platforms. @@ -9886,7 +9883,7 @@ END Aborting the configuration process, to ensure you take notice of the issue. You can download and install GNU coreutils to get an 'rm' implementation -that behaves properly: . +that behaves properly: . If you want to complete the configuration process using your problematic 'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM @@ -9928,7 +9925,7 @@ for _am_header in $config_headers :; do done echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) -# Copyright (C) 2001-2017 Free Software Foundation, Inc. +# Copyright (C) 2001-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -9949,7 +9946,7 @@ if test x"${install_sh+set}" != xset; then fi AC_SUBST([install_sh])]) -# Copyright (C) 2003-2017 Free Software Foundation, Inc. +# Copyright (C) 2003-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -9971,7 +9968,7 @@ AC_SUBST([am__leading_dot])]) # Add --enable-maintainer-mode option to configure. -*- Autoconf -*- # From Jim Meyering -# Copyright (C) 1996-2017 Free Software Foundation, Inc. +# Copyright (C) 1996-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -10006,7 +10003,7 @@ AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) # Check to see how 'make' treats includes. -*- Autoconf -*- -# Copyright (C) 2001-2017 Free Software Foundation, Inc. +# Copyright (C) 2001-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -10014,49 +10011,42 @@ AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) # AM_MAKE_INCLUDE() # ----------------- -# Check to see how make treats includes. +# Check whether make has an 'include' directive that can support all +# the idioms we need for our automatic dependency tracking code. AC_DEFUN([AM_MAKE_INCLUDE], -[am_make=${MAKE-make} -cat > confinc << 'END' +[AC_MSG_CHECKING([whether ${MAKE-make} supports the include directive]) +cat > confinc.mk << 'END' am__doit: - @echo this is the am__doit target + @echo this is the am__doit target >confinc.out .PHONY: am__doit END -# If we don't find an include directive, just comment out the code. -AC_MSG_CHECKING([for style of include used by $am_make]) am__include="#" am__quote= -_am_result=none -# First try GNU make style include. -echo "include confinc" > confmf -# Ignore all kinds of additional output from 'make'. -case `$am_make -s -f confmf 2> /dev/null` in #( -*the\ am__doit\ target*) - am__include=include - am__quote= - _am_result=GNU - ;; -esac -# Now try BSD make style include. -if test "$am__include" = "#"; then - echo '.include "confinc"' > confmf - case `$am_make -s -f confmf 2> /dev/null` in #( - *the\ am__doit\ target*) - am__include=.include - am__quote="\"" - _am_result=BSD - ;; - esac -fi -AC_SUBST([am__include]) -AC_SUBST([am__quote]) -AC_MSG_RESULT([$_am_result]) -rm -f confinc confmf -]) +# BSD make does it like this. +echo '.include "confinc.mk" # ignored' > confmf.BSD +# Other make implementations (GNU, Solaris 10, AIX) do it like this. +echo 'include confinc.mk # ignored' > confmf.GNU +_am_result=no +for s in GNU BSD; do + AM_RUN_LOG([${MAKE-make} -f confmf.$s && cat confinc.out]) + AS_CASE([$?:`cat confinc.out 2>/dev/null`], + ['0:this is the am__doit target'], + [AS_CASE([$s], + [BSD], [am__include='.include' am__quote='"'], + [am__include='include' am__quote=''])]) + if test "$am__include" != "#"; then + _am_result="yes ($s style)" + break + fi +done +rm -f confinc.* confmf.* +AC_MSG_RESULT([${_am_result}]) +AC_SUBST([am__include])]) +AC_SUBST([am__quote])]) # Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- -# Copyright (C) 1997-2017 Free Software Foundation, Inc. +# Copyright (C) 1997-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -10095,7 +10085,7 @@ fi # Helper functions for option handling. -*- Autoconf -*- -# Copyright (C) 2001-2017 Free Software Foundation, Inc. +# Copyright (C) 2001-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -10124,7 +10114,7 @@ AC_DEFUN([_AM_SET_OPTIONS], AC_DEFUN([_AM_IF_OPTION], [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) -# Copyright (C) 1999-2017 Free Software Foundation, Inc. +# Copyright (C) 1999-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -10171,7 +10161,7 @@ AC_LANG_POP([C])]) # For backward compatibility. AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])]) -# Copyright (C) 2001-2017 Free Software Foundation, Inc. +# Copyright (C) 2001-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -10190,7 +10180,7 @@ AC_DEFUN([AM_RUN_LOG], # Check to make sure that the build environment is sane. -*- Autoconf -*- -# Copyright (C) 1996-2017 Free Software Foundation, Inc. +# Copyright (C) 1996-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -10271,7 +10261,7 @@ AC_CONFIG_COMMANDS_PRE( rm -f conftest.file ]) -# Copyright (C) 2009-2017 Free Software Foundation, Inc. +# Copyright (C) 2009-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -10331,7 +10321,7 @@ AC_SUBST([AM_BACKSLASH])dnl _AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl ]) -# Copyright (C) 2001-2017 Free Software Foundation, Inc. +# Copyright (C) 2001-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -10359,7 +10349,7 @@ fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" AC_SUBST([INSTALL_STRIP_PROGRAM])]) -# Copyright (C) 2006-2017 Free Software Foundation, Inc. +# Copyright (C) 2006-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -10378,7 +10368,7 @@ AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) # Check how to create a tarball. -*- Autoconf -*- -# Copyright (C) 2004-2017 Free Software Foundation, Inc. +# Copyright (C) 2004-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, diff --git a/dependencies/libarchive-3.4.2/build/autoconf/ax_append_compile_flags.m4 b/dependencies/libarchive-3.5.2/build/autoconf/ax_append_compile_flags.m4 similarity index 100% rename from dependencies/libarchive-3.4.2/build/autoconf/ax_append_compile_flags.m4 rename to dependencies/libarchive-3.5.2/build/autoconf/ax_append_compile_flags.m4 diff --git a/dependencies/libarchive-3.4.2/build/autoconf/ax_append_flag.m4 b/dependencies/libarchive-3.5.2/build/autoconf/ax_append_flag.m4 similarity index 100% rename from dependencies/libarchive-3.4.2/build/autoconf/ax_append_flag.m4 rename to dependencies/libarchive-3.5.2/build/autoconf/ax_append_flag.m4 diff --git a/dependencies/libarchive-3.4.2/build/autoconf/ax_check_compile_flag.m4 b/dependencies/libarchive-3.5.2/build/autoconf/ax_check_compile_flag.m4 similarity index 100% rename from dependencies/libarchive-3.4.2/build/autoconf/ax_check_compile_flag.m4 rename to dependencies/libarchive-3.5.2/build/autoconf/ax_check_compile_flag.m4 diff --git a/dependencies/libarchive-3.4.2/build/autoconf/ax_require_defined.m4 b/dependencies/libarchive-3.5.2/build/autoconf/ax_require_defined.m4 similarity index 100% rename from dependencies/libarchive-3.4.2/build/autoconf/ax_require_defined.m4 rename to dependencies/libarchive-3.5.2/build/autoconf/ax_require_defined.m4 diff --git a/dependencies/libarchive-3.4.2/build/autoconf/check_stdcall_func.m4 b/dependencies/libarchive-3.5.2/build/autoconf/check_stdcall_func.m4 similarity index 100% rename from dependencies/libarchive-3.4.2/build/autoconf/check_stdcall_func.m4 rename to dependencies/libarchive-3.5.2/build/autoconf/check_stdcall_func.m4 diff --git a/dependencies/libarchive-3.4.2/build/autoconf/compile b/dependencies/libarchive-3.5.2/build/autoconf/compile similarity index 95% rename from dependencies/libarchive-3.4.2/build/autoconf/compile rename to dependencies/libarchive-3.5.2/build/autoconf/compile index a85b723..99e5052 100755 --- a/dependencies/libarchive-3.4.2/build/autoconf/compile +++ b/dependencies/libarchive-3.5.2/build/autoconf/compile @@ -1,9 +1,9 @@ #! /bin/sh # Wrapper for compilers which do not understand '-c -o'. -scriptversion=2012-10-14.11; # UTC +scriptversion=2018-03-07.03; # UTC -# Copyright (C) 1999-2014 Free Software Foundation, Inc. +# Copyright (C) 1999-2018 Free Software Foundation, Inc. # Written by Tom Tromey . # # This program is free software; you can redistribute it and/or modify @@ -17,7 +17,7 @@ scriptversion=2012-10-14.11; # UTC # 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 . +# along with this program. If not, see . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a @@ -255,7 +255,8 @@ EOF echo "compile $scriptversion" exit $? ;; - cl | *[/\\]cl | cl.exe | *[/\\]cl.exe ) + cl | *[/\\]cl | cl.exe | *[/\\]cl.exe | \ + icl | *[/\\]icl | icl.exe | *[/\\]icl.exe ) func_cl_wrapper "$@" # Doesn't return... ;; esac @@ -339,9 +340,9 @@ exit $ret # Local Variables: # mode: shell-script # sh-indentation: 2 -# eval: (add-hook 'write-file-hooks 'time-stamp) +# eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-time-zone: "UTC" +# time-stamp-time-zone: "UTC0" # time-stamp-end: "; # UTC" # End: diff --git a/dependencies/libarchive-3.4.2/build/autoconf/config.guess b/dependencies/libarchive-3.5.2/build/autoconf/config.guess similarity index 100% rename from dependencies/libarchive-3.4.2/build/autoconf/config.guess rename to dependencies/libarchive-3.5.2/build/autoconf/config.guess diff --git a/dependencies/libarchive-3.4.2/build/autoconf/config.rpath b/dependencies/libarchive-3.5.2/build/autoconf/config.rpath similarity index 100% rename from dependencies/libarchive-3.4.2/build/autoconf/config.rpath rename to dependencies/libarchive-3.5.2/build/autoconf/config.rpath diff --git a/dependencies/libarchive-3.4.2/build/autoconf/config.sub b/dependencies/libarchive-3.5.2/build/autoconf/config.sub similarity index 100% rename from dependencies/libarchive-3.4.2/build/autoconf/config.sub rename to dependencies/libarchive-3.5.2/build/autoconf/config.sub diff --git a/dependencies/libarchive-3.4.2/build/autoconf/depcomp b/dependencies/libarchive-3.5.2/build/autoconf/depcomp similarity index 99% rename from dependencies/libarchive-3.4.2/build/autoconf/depcomp rename to dependencies/libarchive-3.5.2/build/autoconf/depcomp index b39f98f..65cbf70 100755 --- a/dependencies/libarchive-3.4.2/build/autoconf/depcomp +++ b/dependencies/libarchive-3.5.2/build/autoconf/depcomp @@ -1,9 +1,9 @@ #! /bin/sh # depcomp - compile a program generating dependencies as side-effects -scriptversion=2016-01-11.22; # UTC +scriptversion=2018-03-07.03; # UTC -# Copyright (C) 1999-2017 Free Software Foundation, Inc. +# Copyright (C) 1999-2018 Free Software Foundation, Inc. # 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 @@ -16,7 +16,7 @@ scriptversion=2016-01-11.22; # UTC # 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 . +# along with this program. If not, see . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a @@ -783,7 +783,7 @@ exit 0 # Local Variables: # mode: shell-script # sh-indentation: 2 -# eval: (add-hook 'write-file-hooks 'time-stamp) +# eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC0" diff --git a/dependencies/libarchive-3.4.2/build/autoconf/iconv.m4 b/dependencies/libarchive-3.5.2/build/autoconf/iconv.m4 similarity index 100% rename from dependencies/libarchive-3.4.2/build/autoconf/iconv.m4 rename to dependencies/libarchive-3.5.2/build/autoconf/iconv.m4 diff --git a/dependencies/libarchive-3.4.2/build/autoconf/install-sh b/dependencies/libarchive-3.5.2/build/autoconf/install-sh similarity index 94% rename from dependencies/libarchive-3.4.2/build/autoconf/install-sh rename to dependencies/libarchive-3.5.2/build/autoconf/install-sh index 59990a1..8175c64 100755 --- a/dependencies/libarchive-3.4.2/build/autoconf/install-sh +++ b/dependencies/libarchive-3.5.2/build/autoconf/install-sh @@ -1,7 +1,7 @@ #!/bin/sh # install - install a program, script, or datafile -scriptversion=2014-09-12.12; # UTC +scriptversion=2018-03-11.20; # UTC # This originates from X11R5 (mit/util/scripts/install.sh), which was # later released in X11R6 (xc/config/util/install.sh) with the @@ -271,15 +271,18 @@ do fi dst=$dst_arg - # If destination is a directory, append the input filename; won't work - # if double slashes aren't ignored. + # If destination is a directory, append the input filename. if test -d "$dst"; then if test "$is_target_a_directory" = never; then echo "$0: $dst_arg: Is a directory" >&2 exit 1 fi dstdir=$dst - dst=$dstdir/`basename "$src"` + dstbase=`basename "$src"` + case $dst in + */) dst=$dst$dstbase;; + *) dst=$dst/$dstbase;; + esac dstdir_status=0 else dstdir=`dirname "$dst"` @@ -288,6 +291,11 @@ do fi fi + case $dstdir in + */) dstdirslash=$dstdir;; + *) dstdirslash=$dstdir/;; + esac + obsolete_mkdir_used=false if test $dstdir_status != 0; then @@ -324,14 +332,16 @@ do # is incompatible with FreeBSD 'install' when (umask & 300) != 0. ;; *) - # $RANDOM is not portable (e.g. dash); use it when possible to - # lower collision chance + # Note that $RANDOM variable is not portable (e.g. dash); Use it + # here however when possible just to lower collision chance. tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ + trap 'ret=$?; rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" 2>/dev/null; exit $ret' 0 - # As "mkdir -p" follows symlinks and we work in /tmp possibly; so - # create the $tmpdir first (and fail if unsuccessful) to make sure - # that nobody tries to guess the $tmpdir name. + # Because "mkdir -p" follows existing symlinks and we likely work + # directly in world-writeable /tmp, make sure that the '$tmpdir' + # directory is successfully created first before we actually test + # 'mkdir -p' feature. if (umask $mkdir_umask && $mkdirprog $mkdir_mode "$tmpdir" && exec $mkdirprog $mkdir_mode -p -- "$tmpdir/a/b") >/dev/null 2>&1 @@ -434,8 +444,8 @@ do else # Make a couple of temp file names in the proper directory. - dsttmp=$dstdir/_inst.$$_ - rmtmp=$dstdir/_rm.$$_ + dsttmp=${dstdirslash}_inst.$$_ + rmtmp=${dstdirslash}_rm.$$_ # Trap to clean up those temp files at exit. trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 @@ -500,9 +510,9 @@ do done # Local variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) +# eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-time-zone: "UTC" +# time-stamp-time-zone: "UTC0" # time-stamp-end: "; # UTC" # End: diff --git a/dependencies/libarchive-3.4.2/build/autoconf/la_uid_t.m4 b/dependencies/libarchive-3.5.2/build/autoconf/la_uid_t.m4 similarity index 100% rename from dependencies/libarchive-3.4.2/build/autoconf/la_uid_t.m4 rename to dependencies/libarchive-3.5.2/build/autoconf/la_uid_t.m4 diff --git a/dependencies/libarchive-3.4.2/build/autoconf/lib-ld.m4 b/dependencies/libarchive-3.5.2/build/autoconf/lib-ld.m4 similarity index 100% rename from dependencies/libarchive-3.4.2/build/autoconf/lib-ld.m4 rename to dependencies/libarchive-3.5.2/build/autoconf/lib-ld.m4 diff --git a/dependencies/libarchive-3.4.2/build/autoconf/lib-link.m4 b/dependencies/libarchive-3.5.2/build/autoconf/lib-link.m4 similarity index 100% rename from dependencies/libarchive-3.4.2/build/autoconf/lib-link.m4 rename to dependencies/libarchive-3.5.2/build/autoconf/lib-link.m4 diff --git a/dependencies/libarchive-3.4.2/build/autoconf/lib-prefix.m4 b/dependencies/libarchive-3.5.2/build/autoconf/lib-prefix.m4 similarity index 100% rename from dependencies/libarchive-3.4.2/build/autoconf/lib-prefix.m4 rename to dependencies/libarchive-3.5.2/build/autoconf/lib-prefix.m4 diff --git a/dependencies/libarchive-3.4.2/build/autoconf/ltmain.sh b/dependencies/libarchive-3.5.2/build/autoconf/ltmain.sh similarity index 98% rename from dependencies/libarchive-3.4.2/build/autoconf/ltmain.sh rename to dependencies/libarchive-3.5.2/build/autoconf/ltmain.sh index a736cf9..0cb7f90 100644 --- a/dependencies/libarchive-3.4.2/build/autoconf/ltmain.sh +++ b/dependencies/libarchive-3.5.2/build/autoconf/ltmain.sh @@ -31,7 +31,7 @@ PROGRAM=libtool PACKAGE=libtool -VERSION="2.4.6 Debian-2.4.6-2" +VERSION="2.4.6 Debian-2.4.6-14" package_revision=2.4.6 @@ -387,7 +387,7 @@ EXIT_SKIP=77 # $? = 77 is used to indicate a skipped test to automake. # putting '$debug_cmd' at the start of all your functions, you can get # bash to show function call trace with: # -# debug_cmd='eval echo "${FUNCNAME[0]} $*" >&2' bash your-script-name +# debug_cmd='echo "${FUNCNAME[0]} $*" >&2' bash your-script-name debug_cmd=${debug_cmd-":"} exit_cmd=: @@ -1370,7 +1370,7 @@ func_lt_ver () #! /bin/sh # Set a version string for this script. -scriptversion=2014-01-07.03; # UTC +scriptversion=2015-10-07.11; # UTC # A portable, pluggable option parser for Bourne shell. # Written by Gary V. Vaughan, 2010 @@ -1530,6 +1530,8 @@ func_run_hooks () { $debug_cmd + _G_rc_run_hooks=false + case " $hookable_fns " in *" $1 "*) ;; *) func_fatal_error "'$1' does not support hook funcions.n" ;; @@ -1538,16 +1540,16 @@ func_run_hooks () eval _G_hook_fns=\$$1_hooks; shift for _G_hook in $_G_hook_fns; do - eval $_G_hook '"$@"' - - # store returned options list back into positional - # parameters for next 'cmd' execution. - eval _G_hook_result=\$${_G_hook}_result - eval set dummy "$_G_hook_result"; shift + if eval $_G_hook '"$@"'; then + # store returned options list back into positional + # parameters for next 'cmd' execution. + eval _G_hook_result=\$${_G_hook}_result + eval set dummy "$_G_hook_result"; shift + _G_rc_run_hooks=: + fi done - func_quote_for_eval ${1+"$@"} - func_run_hooks_result=$func_quote_for_eval_result + $_G_rc_run_hooks && func_run_hooks_result=$_G_hook_result } @@ -1557,10 +1559,16 @@ func_run_hooks () ## --------------- ## # In order to add your own option parsing hooks, you must accept the -# full positional parameter list in your hook function, remove any -# options that you action, and then pass back the remaining unprocessed +# full positional parameter list in your hook function, you may remove/edit +# any options that you action, and then pass back the remaining unprocessed # options in '_result', escaped suitably for -# 'eval'. Like this: +# 'eval'. In this case you also must return $EXIT_SUCCESS to let the +# hook's caller know that it should pay attention to +# '_result'. Returning $EXIT_FAILURE signalizes that +# arguments are left untouched by the hook and therefore caller will ignore the +# result variable. +# +# Like this: # # my_options_prep () # { @@ -1570,9 +1578,11 @@ func_run_hooks () # usage_message=$usage_message' # -s, --silent don'\''t print informational messages # ' -# -# func_quote_for_eval ${1+"$@"} -# my_options_prep_result=$func_quote_for_eval_result +# # No change in '$@' (ignored completely by this hook). There is +# # no need to do the equivalent (but slower) action: +# # func_quote_for_eval ${1+"$@"} +# # my_options_prep_result=$func_quote_for_eval_result +# false # } # func_add_hook func_options_prep my_options_prep # @@ -1581,25 +1591,37 @@ func_run_hooks () # { # $debug_cmd # +# args_changed=false +# # # Note that for efficiency, we parse as many options as we can # # recognise in a loop before passing the remainder back to the # # caller on the first unrecognised argument we encounter. # while test $# -gt 0; do # opt=$1; shift # case $opt in -# --silent|-s) opt_silent=: ;; +# --silent|-s) opt_silent=: +# args_changed=: +# ;; # # Separate non-argument short options: # -s*) func_split_short_opt "$_G_opt" # set dummy "$func_split_short_opt_name" \ # "-$func_split_short_opt_arg" ${1+"$@"} # shift +# args_changed=: # ;; -# *) set dummy "$_G_opt" "$*"; shift; break ;; +# *) # Make sure the first unrecognised option "$_G_opt" +# # is added back to "$@", we could need that later +# # if $args_changed is true. +# set dummy "$_G_opt" ${1+"$@"}; shift; break ;; # esac # done # -# func_quote_for_eval ${1+"$@"} -# my_silent_option_result=$func_quote_for_eval_result +# if $args_changed; then +# func_quote_for_eval ${1+"$@"} +# my_silent_option_result=$func_quote_for_eval_result +# fi +# +# $args_changed # } # func_add_hook func_parse_options my_silent_option # @@ -1611,16 +1633,32 @@ func_run_hooks () # $opt_silent && $opt_verbose && func_fatal_help "\ # '--silent' and '--verbose' options are mutually exclusive." # -# func_quote_for_eval ${1+"$@"} -# my_option_validation_result=$func_quote_for_eval_result +# false # } # func_add_hook func_validate_options my_option_validation # -# You'll alse need to manually amend $usage_message to reflect the extra +# You'll also need to manually amend $usage_message to reflect the extra # options you parse. It's preferable to append if you can, so that # multiple option parsing hooks can be added safely. +# func_options_finish [ARG]... +# ---------------------------- +# Finishing the option parse loop (call 'func_options' hooks ATM). +func_options_finish () +{ + $debug_cmd + + _G_func_options_finish_exit=false + if func_run_hooks func_options ${1+"$@"}; then + func_options_finish_result=$func_run_hooks_result + _G_func_options_finish_exit=: + fi + + $_G_func_options_finish_exit +} + + # func_options [ARG]... # --------------------- # All the functions called inside func_options are hookable. See the @@ -1630,17 +1668,28 @@ func_options () { $debug_cmd - func_options_prep ${1+"$@"} - eval func_parse_options \ - ${func_options_prep_result+"$func_options_prep_result"} - eval func_validate_options \ - ${func_parse_options_result+"$func_parse_options_result"} + _G_rc_options=false - eval func_run_hooks func_options \ - ${func_validate_options_result+"$func_validate_options_result"} + for my_func in options_prep parse_options validate_options options_finish + do + if eval func_$my_func '${1+"$@"}'; then + eval _G_res_var='$'"func_${my_func}_result" + eval set dummy "$_G_res_var" ; shift + _G_rc_options=: + fi + done - # save modified positional parameters for caller - func_options_result=$func_run_hooks_result + # Save modified positional parameters for caller. As a top-level + # options-parser function we always need to set the 'func_options_result' + # variable (regardless the $_G_rc_options value). + if $_G_rc_options; then + func_options_result=$_G_res_var + else + func_quote_for_eval ${1+"$@"} + func_options_result=$func_quote_for_eval_result + fi + + $_G_rc_options } @@ -1649,9 +1698,9 @@ func_options () # All initialisations required before starting the option parse loop. # Note that when calling hook functions, we pass through the list of # positional parameters. If a hook function modifies that list, and -# needs to propogate that back to rest of this script, then the complete +# needs to propagate that back to rest of this script, then the complete # modified list must be put in 'func_run_hooks_result' before -# returning. +# returning $EXIT_SUCCESS (otherwise $EXIT_FAILURE is returned). func_hookable func_options_prep func_options_prep () { @@ -1661,10 +1710,14 @@ func_options_prep () opt_verbose=false opt_warning_types= - func_run_hooks func_options_prep ${1+"$@"} + _G_rc_options_prep=false + if func_run_hooks func_options_prep ${1+"$@"}; then + _G_rc_options_prep=: + # save modified positional parameters for caller + func_options_prep_result=$func_run_hooks_result + fi - # save modified positional parameters for caller - func_options_prep_result=$func_run_hooks_result + $_G_rc_options_prep } @@ -1678,18 +1731,20 @@ func_parse_options () func_parse_options_result= + _G_rc_parse_options=false # this just eases exit handling while test $# -gt 0; do # Defer to hook functions for initial option parsing, so they # get priority in the event of reusing an option name. - func_run_hooks func_parse_options ${1+"$@"} - - # Adjust func_parse_options positional parameters to match - eval set dummy "$func_run_hooks_result"; shift + if func_run_hooks func_parse_options ${1+"$@"}; then + eval set dummy "$func_run_hooks_result"; shift + _G_rc_parse_options=: + fi # Break out of the loop if we already parsed every option. test $# -gt 0 || break + _G_match_parse_options=: _G_opt=$1 shift case $_G_opt in @@ -1704,7 +1759,10 @@ func_parse_options () ;; --warnings|--warning|-W) - test $# = 0 && func_missing_arg $_G_opt && break + if test $# = 0 && func_missing_arg $_G_opt; then + _G_rc_parse_options=: + break + fi case " $warning_categories $1" in *" $1 "*) # trailing space prevents matching last $1 above @@ -1757,15 +1815,25 @@ func_parse_options () shift ;; - --) break ;; + --) _G_rc_parse_options=: ; break ;; -*) func_fatal_help "unrecognised option: '$_G_opt'" ;; - *) set dummy "$_G_opt" ${1+"$@"}; shift; break ;; + *) set dummy "$_G_opt" ${1+"$@"}; shift + _G_match_parse_options=false + break + ;; esac + + $_G_match_parse_options && _G_rc_parse_options=: done - # save modified positional parameters for caller - func_quote_for_eval ${1+"$@"} - func_parse_options_result=$func_quote_for_eval_result + + if $_G_rc_parse_options; then + # save modified positional parameters for caller + func_quote_for_eval ${1+"$@"} + func_parse_options_result=$func_quote_for_eval_result + fi + + $_G_rc_parse_options } @@ -1778,16 +1846,21 @@ func_validate_options () { $debug_cmd + _G_rc_validate_options=false + # Display all warnings if -W was not given. test -n "$opt_warning_types" || opt_warning_types=" $warning_categories" - func_run_hooks func_validate_options ${1+"$@"} + if func_run_hooks func_validate_options ${1+"$@"}; then + # save modified positional parameters for caller + func_validate_options_result=$func_run_hooks_result + _G_rc_validate_options=: + fi # Bail if the options were screwed! $exit_cmd $EXIT_FAILURE - # save modified positional parameters for caller - func_validate_options_result=$func_run_hooks_result + $_G_rc_validate_options } @@ -2068,7 +2141,7 @@ include the following information: compiler: $LTCC compiler flags: $LTCFLAGS linker: $LD (gnu? $with_gnu_ld) - version: $progname $scriptversion Debian-2.4.6-2 + version: $progname $scriptversion Debian-2.4.6-14 automake: `($AUTOMAKE --version) 2>/dev/null |$SED 1q` autoconf: `($AUTOCONF --version) 2>/dev/null |$SED 1q` @@ -2270,6 +2343,8 @@ libtool_options_prep () nonopt= preserve_args= + _G_rc_lt_options_prep=: + # Shorthand for --mode=foo, only valid as the first argument case $1 in clean|clea|cle|cl) @@ -2293,11 +2368,18 @@ libtool_options_prep () uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u) shift; set dummy --mode uninstall ${1+"$@"}; shift ;; + *) + _G_rc_lt_options_prep=false + ;; esac - # Pass back the list of options. - func_quote_for_eval ${1+"$@"} - libtool_options_prep_result=$func_quote_for_eval_result + if $_G_rc_lt_options_prep; then + # Pass back the list of options. + func_quote_for_eval ${1+"$@"} + libtool_options_prep_result=$func_quote_for_eval_result + fi + + $_G_rc_lt_options_prep } func_add_hook func_options_prep libtool_options_prep @@ -2309,9 +2391,12 @@ libtool_parse_options () { $debug_cmd + _G_rc_lt_parse_options=false + # Perform our own loop to consume as many options as possible in # each iteration. while test $# -gt 0; do + _G_match_lt_parse_options=: _G_opt=$1 shift case $_G_opt in @@ -2386,15 +2471,22 @@ libtool_parse_options () func_append preserve_args " $_G_opt" ;; - # An option not handled by this hook function: - *) set dummy "$_G_opt" ${1+"$@"}; shift; break ;; + # An option not handled by this hook function: + *) set dummy "$_G_opt" ${1+"$@"} ; shift + _G_match_lt_parse_options=false + break + ;; esac + $_G_match_lt_parse_options && _G_rc_lt_parse_options=: done + if $_G_rc_lt_parse_options; then + # save modified positional parameters for caller + func_quote_for_eval ${1+"$@"} + libtool_parse_options_result=$func_quote_for_eval_result + fi - # save modified positional parameters for caller - func_quote_for_eval ${1+"$@"} - libtool_parse_options_result=$func_quote_for_eval_result + $_G_rc_lt_parse_options } func_add_hook func_parse_options libtool_parse_options @@ -7275,10 +7367,13 @@ func_mode_link () # -specs=* GCC specs files # -stdlib=* select c++ std lib with clang # -fsanitize=* Clang/GCC memory and address sanitizer + # -fuse-ld=* Linker select flags for GCC + # -static-* direct GCC to link specific libraries statically + # -fcilkplus Cilk Plus language extension features for C/C++ -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \ -O*|-g*|-flto*|-fwhopr*|-fuse-linker-plugin|-fstack-protector*|-stdlib=*| \ - -specs=*|-fsanitize=*) + -specs=*|-fsanitize=*|-fuse-ld=*|-static-*|-fcilkplus) func_quote_for_eval "$arg" arg=$func_quote_for_eval_result func_append compile_command " $arg" diff --git a/dependencies/libarchive-3.4.2/build/autoconf/missing b/dependencies/libarchive-3.5.2/build/autoconf/missing similarity index 94% rename from dependencies/libarchive-3.4.2/build/autoconf/missing rename to dependencies/libarchive-3.5.2/build/autoconf/missing index f62bbae..625aeb1 100755 --- a/dependencies/libarchive-3.4.2/build/autoconf/missing +++ b/dependencies/libarchive-3.5.2/build/autoconf/missing @@ -1,9 +1,9 @@ #! /bin/sh # Common wrapper for a few potentially missing GNU programs. -scriptversion=2013-10-28.13; # UTC +scriptversion=2018-03-07.03; # UTC -# Copyright (C) 1996-2014 Free Software Foundation, Inc. +# Copyright (C) 1996-2018 Free Software Foundation, Inc. # Originally written by Fran,cois Pinard , 1996. # This program is free software; you can redistribute it and/or modify @@ -17,7 +17,7 @@ scriptversion=2013-10-28.13; # UTC # 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 . +# along with this program. If not, see . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a @@ -101,9 +101,9 @@ else exit $st fi -perl_URL=http://www.perl.org/ -flex_URL=http://flex.sourceforge.net/ -gnu_software_URL=http://www.gnu.org/software +perl_URL=https://www.perl.org/ +flex_URL=https://github.com/westes/flex +gnu_software_URL=https://www.gnu.org/software program_details () { @@ -207,9 +207,9 @@ give_advice "$1" | sed -e '1s/^/WARNING: /' \ exit $st # Local variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) +# eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-time-zone: "UTC" +# time-stamp-time-zone: "UTC0" # time-stamp-end: "; # UTC" # End: diff --git a/dependencies/libarchive-3.4.2/build/autoconf/test-driver b/dependencies/libarchive-3.5.2/build/autoconf/test-driver similarity index 94% rename from dependencies/libarchive-3.4.2/build/autoconf/test-driver rename to dependencies/libarchive-3.5.2/build/autoconf/test-driver index 8e575b0..b8521a4 100755 --- a/dependencies/libarchive-3.4.2/build/autoconf/test-driver +++ b/dependencies/libarchive-3.5.2/build/autoconf/test-driver @@ -1,9 +1,9 @@ #! /bin/sh # test-driver - basic testsuite driver script. -scriptversion=2013-07-13.22; # UTC +scriptversion=2018-03-07.03; # UTC -# Copyright (C) 2011-2014 Free Software Foundation, Inc. +# Copyright (C) 2011-2018 Free Software Foundation, Inc. # # 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 @@ -16,7 +16,7 @@ scriptversion=2013-07-13.22; # UTC # 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 . +# along with this program. If not, see . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a @@ -140,9 +140,9 @@ echo ":copy-in-global-log: $gcopy" >> $trs_file # Local Variables: # mode: shell-script # sh-indentation: 2 -# eval: (add-hook 'write-file-hooks 'time-stamp) +# eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-time-zone: "UTC" +# time-stamp-time-zone: "UTC0" # time-stamp-end: "; # UTC" # End: diff --git a/dependencies/libarchive-3.4.2/build/autogen.sh b/dependencies/libarchive-3.5.2/build/autogen.sh similarity index 100% rename from dependencies/libarchive-3.4.2/build/autogen.sh rename to dependencies/libarchive-3.5.2/build/autogen.sh diff --git a/dependencies/libarchive-3.4.2/build/bump-version.sh b/dependencies/libarchive-3.5.2/build/bump-version.sh similarity index 100% rename from dependencies/libarchive-3.4.2/build/bump-version.sh rename to dependencies/libarchive-3.5.2/build/bump-version.sh diff --git a/dependencies/libarchive-3.4.2/build/clean.sh b/dependencies/libarchive-3.5.2/build/clean.sh similarity index 100% rename from dependencies/libarchive-3.4.2/build/clean.sh rename to dependencies/libarchive-3.5.2/build/clean.sh diff --git a/dependencies/libarchive-3.4.2/build/cmake/CheckFileOffsetBits.c b/dependencies/libarchive-3.5.2/build/cmake/CheckFileOffsetBits.c similarity index 100% rename from dependencies/libarchive-3.4.2/build/cmake/CheckFileOffsetBits.c rename to dependencies/libarchive-3.5.2/build/cmake/CheckFileOffsetBits.c diff --git a/dependencies/libarchive-3.4.2/build/cmake/CheckFileOffsetBits.cmake b/dependencies/libarchive-3.5.2/build/cmake/CheckFileOffsetBits.cmake similarity index 100% rename from dependencies/libarchive-3.4.2/build/cmake/CheckFileOffsetBits.cmake rename to dependencies/libarchive-3.5.2/build/cmake/CheckFileOffsetBits.cmake diff --git a/dependencies/libarchive-3.4.2/build/cmake/CheckFuncs.cmake b/dependencies/libarchive-3.5.2/build/cmake/CheckFuncs.cmake similarity index 100% rename from dependencies/libarchive-3.4.2/build/cmake/CheckFuncs.cmake rename to dependencies/libarchive-3.5.2/build/cmake/CheckFuncs.cmake diff --git a/dependencies/libarchive-3.4.2/build/cmake/CheckFuncs_stub.c.in b/dependencies/libarchive-3.5.2/build/cmake/CheckFuncs_stub.c.in similarity index 100% rename from dependencies/libarchive-3.4.2/build/cmake/CheckFuncs_stub.c.in rename to dependencies/libarchive-3.5.2/build/cmake/CheckFuncs_stub.c.in diff --git a/dependencies/libarchive-3.4.2/build/cmake/CheckHeaderDirent.cmake b/dependencies/libarchive-3.5.2/build/cmake/CheckHeaderDirent.cmake similarity index 100% rename from dependencies/libarchive-3.4.2/build/cmake/CheckHeaderDirent.cmake rename to dependencies/libarchive-3.5.2/build/cmake/CheckHeaderDirent.cmake diff --git a/dependencies/libarchive-3.4.2/build/cmake/CheckTypeExists.cmake b/dependencies/libarchive-3.5.2/build/cmake/CheckTypeExists.cmake similarity index 100% rename from dependencies/libarchive-3.4.2/build/cmake/CheckTypeExists.cmake rename to dependencies/libarchive-3.5.2/build/cmake/CheckTypeExists.cmake diff --git a/dependencies/libarchive-3.4.2/build/cmake/CreatePkgConfigFile.cmake b/dependencies/libarchive-3.5.2/build/cmake/CreatePkgConfigFile.cmake similarity index 90% rename from dependencies/libarchive-3.4.2/build/cmake/CreatePkgConfigFile.cmake rename to dependencies/libarchive-3.5.2/build/cmake/CreatePkgConfigFile.cmake index fc8529a..bc5a43f 100644 --- a/dependencies/libarchive-3.4.2/build/cmake/CreatePkgConfigFile.cmake +++ b/dependencies/libarchive-3.5.2/build/cmake/CreatePkgConfigFile.cmake @@ -24,10 +24,10 @@ ENDFOREACH() # thus there's a good chance it'll make some binutils versions unhappy... # This only affects Libs.private (looked up for static builds) though. CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/build/pkgconfig/libarchive.pc.in - ${CMAKE_CURRENT_SOURCE_DIR}/build/pkgconfig/libarchive.pc + ${CMAKE_CURRENT_BINARY_DIR}/build/pkgconfig/libarchive.pc @ONLY) # And install it, of course ;). IF(ENABLE_INSTALL) - INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/build/pkgconfig/libarchive.pc + INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/build/pkgconfig/libarchive.pc DESTINATION "lib/pkgconfig") ENDIF() diff --git a/dependencies/libarchive-3.4.2/build/cmake/FindLibGCC.cmake b/dependencies/libarchive-3.5.2/build/cmake/FindLibGCC.cmake similarity index 100% rename from dependencies/libarchive-3.4.2/build/cmake/FindLibGCC.cmake rename to dependencies/libarchive-3.5.2/build/cmake/FindLibGCC.cmake diff --git a/dependencies/libarchive-3.4.2/build/cmake/FindMbedTLS.cmake b/dependencies/libarchive-3.5.2/build/cmake/FindMbedTLS.cmake similarity index 100% rename from dependencies/libarchive-3.4.2/build/cmake/FindMbedTLS.cmake rename to dependencies/libarchive-3.5.2/build/cmake/FindMbedTLS.cmake diff --git a/dependencies/libarchive-3.4.2/build/cmake/FindNettle.cmake b/dependencies/libarchive-3.5.2/build/cmake/FindNettle.cmake similarity index 100% rename from dependencies/libarchive-3.4.2/build/cmake/FindNettle.cmake rename to dependencies/libarchive-3.5.2/build/cmake/FindNettle.cmake diff --git a/dependencies/libarchive-3.4.2/build/cmake/FindPCREPOSIX.cmake b/dependencies/libarchive-3.5.2/build/cmake/FindPCREPOSIX.cmake similarity index 100% rename from dependencies/libarchive-3.4.2/build/cmake/FindPCREPOSIX.cmake rename to dependencies/libarchive-3.5.2/build/cmake/FindPCREPOSIX.cmake diff --git a/dependencies/libarchive-3.4.2/build/cmake/LibarchiveCodeCoverage.cmake b/dependencies/libarchive-3.5.2/build/cmake/LibarchiveCodeCoverage.cmake similarity index 100% rename from dependencies/libarchive-3.4.2/build/cmake/LibarchiveCodeCoverage.cmake rename to dependencies/libarchive-3.5.2/build/cmake/LibarchiveCodeCoverage.cmake diff --git a/dependencies/libarchive-3.4.2/build/cmake/config.h.in b/dependencies/libarchive-3.5.2/build/cmake/config.h.in similarity index 99% rename from dependencies/libarchive-3.4.2/build/cmake/config.h.in rename to dependencies/libarchive-3.5.2/build/cmake/config.h.in index fcbd80c..5ddd2f3 100644 --- a/dependencies/libarchive-3.4.2/build/cmake/config.h.in +++ b/dependencies/libarchive-3.5.2/build/cmake/config.h.in @@ -1,4 +1,5 @@ /* config.h. Generated from build/cmake/config.h.in by cmake configure */ +#define __LIBARCHIVE_CONFIG_H_INCLUDED 1 /* * Ensure we have C99-style int64_t, etc, all defined. @@ -743,6 +744,9 @@ typedef uint64_t uintmax_t; /* Define to 1 if you have the `link' function. */ #cmakedefine HAVE_LINK 1 +/* Define to 1 if you have the `linkat' function. */ +#cmakedefine HAVE_LINKAT 1 + /* Define to 1 if you have the header file. */ #cmakedefine HAVE_LINUX_FIEMAP_H 1 @@ -958,6 +962,9 @@ typedef uint64_t uintmax_t; /* Define to 1 if you have the `strchr' function. */ #cmakedefine HAVE_STRCHR 1 +/* Define to 1 if you have the `strnlen' function. */ +#cmakedefine HAVE_STRNLEN 1 + /* Define to 1 if you have the `strdup' function. */ #cmakedefine HAVE_STRDUP 1 diff --git a/dependencies/libarchive-3.4.2/build/pkgconfig/libarchive.pc.in b/dependencies/libarchive-3.5.2/build/pkgconfig/libarchive.pc.in similarity index 100% rename from dependencies/libarchive-3.4.2/build/pkgconfig/libarchive.pc.in rename to dependencies/libarchive-3.5.2/build/pkgconfig/libarchive.pc.in diff --git a/dependencies/libarchive-3.5.2/build/version b/dependencies/libarchive-3.5.2/build/version new file mode 100644 index 0000000..5fce0ed --- /dev/null +++ b/dependencies/libarchive-3.5.2/build/version @@ -0,0 +1 @@ +3005002 diff --git a/dependencies/libarchive-3.4.2/cat/CMakeLists.txt b/dependencies/libarchive-3.5.2/cat/CMakeLists.txt similarity index 100% rename from dependencies/libarchive-3.4.2/cat/CMakeLists.txt rename to dependencies/libarchive-3.5.2/cat/CMakeLists.txt diff --git a/dependencies/libarchive-3.4.2/cat/bsdcat.1 b/dependencies/libarchive-3.5.2/cat/bsdcat.1 similarity index 100% rename from dependencies/libarchive-3.4.2/cat/bsdcat.1 rename to dependencies/libarchive-3.5.2/cat/bsdcat.1 diff --git a/dependencies/libarchive-3.4.2/cat/bsdcat.c b/dependencies/libarchive-3.5.2/cat/bsdcat.c similarity index 100% rename from dependencies/libarchive-3.4.2/cat/bsdcat.c rename to dependencies/libarchive-3.5.2/cat/bsdcat.c diff --git a/dependencies/libarchive-3.4.2/cat/bsdcat.h b/dependencies/libarchive-3.5.2/cat/bsdcat.h similarity index 100% rename from dependencies/libarchive-3.4.2/cat/bsdcat.h rename to dependencies/libarchive-3.5.2/cat/bsdcat.h diff --git a/dependencies/libarchive-3.4.2/cat/bsdcat_platform.h b/dependencies/libarchive-3.5.2/cat/bsdcat_platform.h similarity index 100% rename from dependencies/libarchive-3.4.2/cat/bsdcat_platform.h rename to dependencies/libarchive-3.5.2/cat/bsdcat_platform.h diff --git a/dependencies/libarchive-3.4.2/cat/cmdline.c b/dependencies/libarchive-3.5.2/cat/cmdline.c similarity index 100% rename from dependencies/libarchive-3.4.2/cat/cmdline.c rename to dependencies/libarchive-3.5.2/cat/cmdline.c diff --git a/dependencies/libarchive-3.4.2/cat/test/CMakeLists.txt b/dependencies/libarchive-3.5.2/cat/test/CMakeLists.txt similarity index 100% rename from dependencies/libarchive-3.4.2/cat/test/CMakeLists.txt rename to dependencies/libarchive-3.5.2/cat/test/CMakeLists.txt diff --git a/dependencies/libarchive-3.4.2/cat/test/list.h b/dependencies/libarchive-3.5.2/cat/test/list.h similarity index 100% rename from dependencies/libarchive-3.4.2/cat/test/list.h rename to dependencies/libarchive-3.5.2/cat/test/list.h index 57f2f2a..5246122 100644 --- a/dependencies/libarchive-3.4.2/cat/test/list.h +++ b/dependencies/libarchive-3.5.2/cat/test/list.h @@ -5,13 +5,13 @@ DEFINE_TEST(test_empty_xz) DEFINE_TEST(test_empty_zstd) DEFINE_TEST(test_error) DEFINE_TEST(test_error_mixed) -DEFINE_TEST(test_expand_Z) DEFINE_TEST(test_expand_bz2) DEFINE_TEST(test_expand_gz) DEFINE_TEST(test_expand_lz4) DEFINE_TEST(test_expand_mixed) DEFINE_TEST(test_expand_plain) DEFINE_TEST(test_expand_xz) +DEFINE_TEST(test_expand_Z) DEFINE_TEST(test_expand_zstd) DEFINE_TEST(test_help) DEFINE_TEST(test_stdin) diff --git a/dependencies/libarchive-3.4.2/cat/test/test.h b/dependencies/libarchive-3.5.2/cat/test/test.h similarity index 100% rename from dependencies/libarchive-3.4.2/cat/test/test.h rename to dependencies/libarchive-3.5.2/cat/test/test.h diff --git a/dependencies/libarchive-3.4.2/cat/test/test_0.c b/dependencies/libarchive-3.5.2/cat/test/test_0.c similarity index 100% rename from dependencies/libarchive-3.4.2/cat/test/test_0.c rename to dependencies/libarchive-3.5.2/cat/test/test_0.c diff --git a/dependencies/libarchive-3.4.2/cat/test/test_empty.gz.uu b/dependencies/libarchive-3.5.2/cat/test/test_empty.gz.uu similarity index 100% rename from dependencies/libarchive-3.4.2/cat/test/test_empty.gz.uu rename to dependencies/libarchive-3.5.2/cat/test/test_empty.gz.uu diff --git a/dependencies/libarchive-3.4.2/cat/test/test_empty.lz4.uu b/dependencies/libarchive-3.5.2/cat/test/test_empty.lz4.uu similarity index 100% rename from dependencies/libarchive-3.4.2/cat/test/test_empty.lz4.uu rename to dependencies/libarchive-3.5.2/cat/test/test_empty.lz4.uu diff --git a/dependencies/libarchive-3.4.2/cat/test/test_empty.xz.uu b/dependencies/libarchive-3.5.2/cat/test/test_empty.xz.uu similarity index 100% rename from dependencies/libarchive-3.4.2/cat/test/test_empty.xz.uu rename to dependencies/libarchive-3.5.2/cat/test/test_empty.xz.uu diff --git a/dependencies/libarchive-3.4.2/cat/test/test_empty.zst.uu b/dependencies/libarchive-3.5.2/cat/test/test_empty.zst.uu similarity index 100% rename from dependencies/libarchive-3.4.2/cat/test/test_empty.zst.uu rename to dependencies/libarchive-3.5.2/cat/test/test_empty.zst.uu diff --git a/dependencies/libarchive-3.4.2/cat/test/test_empty_gz.c b/dependencies/libarchive-3.5.2/cat/test/test_empty_gz.c similarity index 100% rename from dependencies/libarchive-3.4.2/cat/test/test_empty_gz.c rename to dependencies/libarchive-3.5.2/cat/test/test_empty_gz.c diff --git a/dependencies/libarchive-3.4.2/cat/test/test_empty_lz4.c b/dependencies/libarchive-3.5.2/cat/test/test_empty_lz4.c similarity index 100% rename from dependencies/libarchive-3.4.2/cat/test/test_empty_lz4.c rename to dependencies/libarchive-3.5.2/cat/test/test_empty_lz4.c diff --git a/dependencies/libarchive-3.4.2/cat/test/test_empty_xz.c b/dependencies/libarchive-3.5.2/cat/test/test_empty_xz.c similarity index 100% rename from dependencies/libarchive-3.4.2/cat/test/test_empty_xz.c rename to dependencies/libarchive-3.5.2/cat/test/test_empty_xz.c diff --git a/dependencies/libarchive-3.4.2/cat/test/test_empty_zstd.c b/dependencies/libarchive-3.5.2/cat/test/test_empty_zstd.c similarity index 100% rename from dependencies/libarchive-3.4.2/cat/test/test_empty_zstd.c rename to dependencies/libarchive-3.5.2/cat/test/test_empty_zstd.c diff --git a/dependencies/libarchive-3.4.2/cat/test/test_error.c b/dependencies/libarchive-3.5.2/cat/test/test_error.c similarity index 100% rename from dependencies/libarchive-3.4.2/cat/test/test_error.c rename to dependencies/libarchive-3.5.2/cat/test/test_error.c diff --git a/dependencies/libarchive-3.4.2/cat/test/test_error_mixed.c b/dependencies/libarchive-3.5.2/cat/test/test_error_mixed.c similarity index 100% rename from dependencies/libarchive-3.4.2/cat/test/test_error_mixed.c rename to dependencies/libarchive-3.5.2/cat/test/test_error_mixed.c diff --git a/dependencies/libarchive-3.4.2/cat/test/test_expand.Z.uu b/dependencies/libarchive-3.5.2/cat/test/test_expand.Z.uu similarity index 100% rename from dependencies/libarchive-3.4.2/cat/test/test_expand.Z.uu rename to dependencies/libarchive-3.5.2/cat/test/test_expand.Z.uu diff --git a/dependencies/libarchive-3.4.2/cat/test/test_expand.bz2.uu b/dependencies/libarchive-3.5.2/cat/test/test_expand.bz2.uu similarity index 100% rename from dependencies/libarchive-3.4.2/cat/test/test_expand.bz2.uu rename to dependencies/libarchive-3.5.2/cat/test/test_expand.bz2.uu diff --git a/dependencies/libarchive-3.4.2/cat/test/test_expand.gz.uu b/dependencies/libarchive-3.5.2/cat/test/test_expand.gz.uu similarity index 100% rename from dependencies/libarchive-3.4.2/cat/test/test_expand.gz.uu rename to dependencies/libarchive-3.5.2/cat/test/test_expand.gz.uu diff --git a/dependencies/libarchive-3.4.2/cat/test/test_expand.lz4.uu b/dependencies/libarchive-3.5.2/cat/test/test_expand.lz4.uu similarity index 100% rename from dependencies/libarchive-3.4.2/cat/test/test_expand.lz4.uu rename to dependencies/libarchive-3.5.2/cat/test/test_expand.lz4.uu diff --git a/dependencies/libarchive-3.4.2/cat/test/test_expand.plain.uu b/dependencies/libarchive-3.5.2/cat/test/test_expand.plain.uu similarity index 100% rename from dependencies/libarchive-3.4.2/cat/test/test_expand.plain.uu rename to dependencies/libarchive-3.5.2/cat/test/test_expand.plain.uu diff --git a/dependencies/libarchive-3.4.2/cat/test/test_expand.xz.uu b/dependencies/libarchive-3.5.2/cat/test/test_expand.xz.uu similarity index 100% rename from dependencies/libarchive-3.4.2/cat/test/test_expand.xz.uu rename to dependencies/libarchive-3.5.2/cat/test/test_expand.xz.uu diff --git a/dependencies/libarchive-3.4.2/cat/test/test_expand.zst.uu b/dependencies/libarchive-3.5.2/cat/test/test_expand.zst.uu similarity index 100% rename from dependencies/libarchive-3.4.2/cat/test/test_expand.zst.uu rename to dependencies/libarchive-3.5.2/cat/test/test_expand.zst.uu diff --git a/dependencies/libarchive-3.4.2/cat/test/test_expand_Z.c b/dependencies/libarchive-3.5.2/cat/test/test_expand_Z.c similarity index 100% rename from dependencies/libarchive-3.4.2/cat/test/test_expand_Z.c rename to dependencies/libarchive-3.5.2/cat/test/test_expand_Z.c diff --git a/dependencies/libarchive-3.4.2/cat/test/test_expand_bz2.c b/dependencies/libarchive-3.5.2/cat/test/test_expand_bz2.c similarity index 100% rename from dependencies/libarchive-3.4.2/cat/test/test_expand_bz2.c rename to dependencies/libarchive-3.5.2/cat/test/test_expand_bz2.c diff --git a/dependencies/libarchive-3.4.2/cat/test/test_expand_gz.c b/dependencies/libarchive-3.5.2/cat/test/test_expand_gz.c similarity index 100% rename from dependencies/libarchive-3.4.2/cat/test/test_expand_gz.c rename to dependencies/libarchive-3.5.2/cat/test/test_expand_gz.c diff --git a/dependencies/libarchive-3.4.2/cat/test/test_expand_lz4.c b/dependencies/libarchive-3.5.2/cat/test/test_expand_lz4.c similarity index 100% rename from dependencies/libarchive-3.4.2/cat/test/test_expand_lz4.c rename to dependencies/libarchive-3.5.2/cat/test/test_expand_lz4.c diff --git a/dependencies/libarchive-3.4.2/cat/test/test_expand_mixed.c b/dependencies/libarchive-3.5.2/cat/test/test_expand_mixed.c similarity index 100% rename from dependencies/libarchive-3.4.2/cat/test/test_expand_mixed.c rename to dependencies/libarchive-3.5.2/cat/test/test_expand_mixed.c diff --git a/dependencies/libarchive-3.4.2/cat/test/test_expand_plain.c b/dependencies/libarchive-3.5.2/cat/test/test_expand_plain.c similarity index 100% rename from dependencies/libarchive-3.4.2/cat/test/test_expand_plain.c rename to dependencies/libarchive-3.5.2/cat/test/test_expand_plain.c diff --git a/dependencies/libarchive-3.4.2/cat/test/test_expand_xz.c b/dependencies/libarchive-3.5.2/cat/test/test_expand_xz.c similarity index 100% rename from dependencies/libarchive-3.4.2/cat/test/test_expand_xz.c rename to dependencies/libarchive-3.5.2/cat/test/test_expand_xz.c diff --git a/dependencies/libarchive-3.4.2/cat/test/test_expand_zstd.c b/dependencies/libarchive-3.5.2/cat/test/test_expand_zstd.c similarity index 100% rename from dependencies/libarchive-3.4.2/cat/test/test_expand_zstd.c rename to dependencies/libarchive-3.5.2/cat/test/test_expand_zstd.c diff --git a/dependencies/libarchive-3.4.2/cat/test/test_help.c b/dependencies/libarchive-3.5.2/cat/test/test_help.c similarity index 100% rename from dependencies/libarchive-3.4.2/cat/test/test_help.c rename to dependencies/libarchive-3.5.2/cat/test/test_help.c diff --git a/dependencies/libarchive-3.4.2/cat/test/test_stdin.c b/dependencies/libarchive-3.5.2/cat/test/test_stdin.c similarity index 100% rename from dependencies/libarchive-3.4.2/cat/test/test_stdin.c rename to dependencies/libarchive-3.5.2/cat/test/test_stdin.c diff --git a/dependencies/libarchive-3.4.2/cat/test/test_version.c b/dependencies/libarchive-3.5.2/cat/test/test_version.c similarity index 100% rename from dependencies/libarchive-3.4.2/cat/test/test_version.c rename to dependencies/libarchive-3.5.2/cat/test/test_version.c diff --git a/dependencies/libarchive-3.4.2/config.h.in b/dependencies/libarchive-3.5.2/config.h.in similarity index 98% rename from dependencies/libarchive-3.4.2/config.h.in rename to dependencies/libarchive-3.5.2/config.h.in index 1a94a69..8abfedc 100644 --- a/dependencies/libarchive-3.4.2/config.h.in +++ b/dependencies/libarchive-3.5.2/config.h.in @@ -691,6 +691,9 @@ /* Define to 1 if you have the `link' function. */ #undef HAVE_LINK +/* Define to 1 if you have the `linkat' function. */ +#undef HAVE_LINKAT + /* Define to 1 if you have the header file. */ #undef HAVE_LINUX_FIEMAP_H @@ -984,6 +987,9 @@ /* Define to 1 if you have the `strncpy_s' function. */ #undef HAVE_STRNCPY_S +/* Define to 1 if you have the `strnlen' function. */ +#undef HAVE_STRNLEN + /* Define to 1 if you have the `strrchr' function. */ #undef HAVE_STRRCHR @@ -993,6 +999,12 @@ /* Define to 1 if the system has the type `struct richacl'. */ #undef HAVE_STRUCT_RICHACL +/* Define to 1 if the system has the type `struct statfs'. */ +#undef HAVE_STRUCT_STATFS + +/* Define to 1 if `f_iosize' is a member of `struct statfs'. */ +#undef HAVE_STRUCT_STATFS_F_IOSIZE + /* Define to 1 if `f_namemax' is a member of `struct statfs'. */ #undef HAVE_STRUCT_STATFS_F_NAMEMAX @@ -1365,6 +1377,9 @@ /* Define to '0x0502' for Windows Server 2003 APIs. */ #undef _WIN32_WINNT +/* Internal macro for sanity checks */ +#undef __LIBARCHIVE_CONFIG_H_INCLUDED + /* Define to empty if `const' does not conform to ANSI C. */ #undef const diff --git a/dependencies/libarchive-3.4.2/configure b/dependencies/libarchive-3.5.2/configure similarity index 98% rename from dependencies/libarchive-3.4.2/configure rename to dependencies/libarchive-3.5.2/configure index ec6d059..e3190e2 100755 --- a/dependencies/libarchive-3.4.2/configure +++ b/dependencies/libarchive-3.5.2/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for libarchive 3.4.2. +# Generated by GNU Autoconf 2.69 for libarchive 3.5.2. # # Report bugs to . # @@ -590,8 +590,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='libarchive' PACKAGE_TARNAME='libarchive' -PACKAGE_VERSION='3.4.2' -PACKAGE_STRING='libarchive 3.4.2' +PACKAGE_VERSION='3.5.2' +PACKAGE_STRING='libarchive 3.5.2' PACKAGE_BUGREPORT='libarchive-discuss@googlegroups.com' PACKAGE_URL='' @@ -696,7 +696,6 @@ am__nodep AMDEPBACKSLASH AMDEP_FALSE AMDEP_TRUE -am__quote am__include DEPDIR OBJEXT @@ -793,7 +792,8 @@ PACKAGE_VERSION PACKAGE_TARNAME PACKAGE_NAME PATH_SEPARATOR -SHELL' +SHELL +am__quote' ac_subst_files='' ac_user_opts=' enable_option_checking @@ -1397,7 +1397,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures libarchive 3.4.2 to adapt to many kinds of systems. +\`configure' configures libarchive 3.5.2 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1468,7 +1468,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of libarchive 3.4.2:";; + short | recursive ) echo "Configuration of libarchive 3.5.2:";; esac cat <<\_ACEOF @@ -1635,7 +1635,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -libarchive configure 3.4.2 +libarchive configure 3.5.2 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2474,7 +2474,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by libarchive $as_me 3.4.2, which was +It was created by libarchive $as_me 3.5.2, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -2857,7 +2857,7 @@ ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. # M4 scripts # Must follow AC_CONFIG macros above... -am__api_version='1.15' +am__api_version='1.16' # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or @@ -3343,7 +3343,7 @@ fi # Define the identity of the package. PACKAGE='libarchive' - VERSION='3.4.2' + VERSION='3.5.2' cat >>confdefs.h <<_ACEOF @@ -3373,8 +3373,8 @@ MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} # For better backward compatibility. To be removed once Automake 1.9.x # dies out for good. For more background, see: -# -# +# +# mkdir_p='$(MKDIR_P)' # We need awk for the "check" target (and possibly the TAP driver). The @@ -3425,7 +3425,7 @@ END Aborting the configuration process, to ensure you take notice of the issue. You can download and install GNU coreutils to get an 'rm' implementation -that behaves properly: . +that behaves properly: . If you want to complete the configuration process using your problematic 'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM @@ -3503,7 +3503,7 @@ AM_BACKSLASH='\' # Libtool interface version bumps on any API change, so increments # whenever libarchive minor version does. -ARCHIVE_MINOR=$(( (3004002 / 1000) % 1000 )) +ARCHIVE_MINOR=$(( (3005002 / 1000) % 1000 )) # Libarchive 2.7 == libtool interface 9 = 2 + 7 # Libarchive 2.8 == libtool interface 10 = 2 + 8 # Libarchive 2.9 == libtool interface 11 = 2 + 8 @@ -3511,37 +3511,40 @@ ARCHIVE_MINOR=$(( (3004002 / 1000) % 1000 )) # Libarchive 3.1 == libtool interface 13 ARCHIVE_INTERFACE=`echo $((13 + ${ARCHIVE_MINOR}))` # Libarchive revision is bumped on any source change === libtool revision -ARCHIVE_REVISION=$(( 3004002 % 1000 )) +ARCHIVE_REVISION=$(( 3005002 % 1000 )) # Libarchive minor is bumped on any interface addition === libtool age ARCHIVE_LIBTOOL_VERSION=$ARCHIVE_INTERFACE:$ARCHIVE_REVISION:$ARCHIVE_MINOR # Stick the version numbers into config.h -$as_echo "#define LIBARCHIVE_VERSION_STRING \"3.4.2\"" >>confdefs.h +$as_echo "#define __LIBARCHIVE_CONFIG_H_INCLUDED 1" >>confdefs.h + + +$as_echo "#define LIBARCHIVE_VERSION_STRING \"3.5.2\"" >>confdefs.h cat >>confdefs.h <<_ACEOF -#define LIBARCHIVE_VERSION_NUMBER "3004002" +#define LIBARCHIVE_VERSION_NUMBER "3005002" _ACEOF -$as_echo "#define BSDCPIO_VERSION_STRING \"3.4.2\"" >>confdefs.h +$as_echo "#define BSDCPIO_VERSION_STRING \"3.5.2\"" >>confdefs.h -$as_echo "#define BSDTAR_VERSION_STRING \"3.4.2\"" >>confdefs.h +$as_echo "#define BSDTAR_VERSION_STRING \"3.5.2\"" >>confdefs.h -$as_echo "#define BSDCAT_VERSION_STRING \"3.4.2\"" >>confdefs.h +$as_echo "#define BSDCAT_VERSION_STRING \"3.5.2\"" >>confdefs.h # The shell variables here must be the same as the AC_SUBST() variables # below, but the shell variable names apparently cannot be the same as # the m4 macro names above. Why? Ask autoconf. -BSDCPIO_VERSION_STRING=3.4.2 -BSDTAR_VERSION_STRING=3.4.2 -BSDCAT_VERSION_STRING=3.4.2 -LIBARCHIVE_VERSION_STRING=3.4.2 -LIBARCHIVE_VERSION_NUMBER=3004002 +BSDCPIO_VERSION_STRING=3.5.2 +BSDTAR_VERSION_STRING=3.5.2 +BSDCAT_VERSION_STRING=3.5.2 +LIBARCHIVE_VERSION_STRING=3.5.2 +LIBARCHIVE_VERSION_NUMBER=3005002 # Substitute the above version numbers into the various files below. # Yes, I believe this is the fourth time we define what are essentially @@ -4514,45 +4517,45 @@ DEPDIR="${am__leading_dot}deps" ac_config_commands="$ac_config_commands depfiles" - -am_make=${MAKE-make} -cat > confinc << 'END' +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} supports the include directive" >&5 +$as_echo_n "checking whether ${MAKE-make} supports the include directive... " >&6; } +cat > confinc.mk << 'END' am__doit: - @echo this is the am__doit target + @echo this is the am__doit target >confinc.out .PHONY: am__doit END -# If we don't find an include directive, just comment out the code. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5 -$as_echo_n "checking for style of include used by $am_make... " >&6; } am__include="#" am__quote= -_am_result=none -# First try GNU make style include. -echo "include confinc" > confmf -# Ignore all kinds of additional output from 'make'. -case `$am_make -s -f confmf 2> /dev/null` in #( -*the\ am__doit\ target*) - am__include=include - am__quote= - _am_result=GNU - ;; -esac -# Now try BSD make style include. -if test "$am__include" = "#"; then - echo '.include "confinc"' > confmf - case `$am_make -s -f confmf 2> /dev/null` in #( - *the\ am__doit\ target*) - am__include=.include - am__quote="\"" - _am_result=BSD +# BSD make does it like this. +echo '.include "confinc.mk" # ignored' > confmf.BSD +# Other make implementations (GNU, Solaris 10, AIX) do it like this. +echo 'include confinc.mk # ignored' > confmf.GNU +_am_result=no +for s in GNU BSD; do + { echo "$as_me:$LINENO: ${MAKE-make} -f confmf.$s && cat confinc.out" >&5 + (${MAKE-make} -f confmf.$s && cat confinc.out) >&5 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } + case $?:`cat confinc.out 2>/dev/null` in #( + '0:this is the am__doit target') : + case $s in #( + BSD) : + am__include='.include' am__quote='"' ;; #( + *) : + am__include='include' am__quote='' ;; +esac ;; #( + *) : ;; - esac -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5 -$as_echo "$_am_result" >&6; } -rm -f confinc confmf +esac + if test "$am__include" != "#"; then + _am_result="yes ($s style)" + break + fi +done +rm -f confinc.* confmf.* +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${_am_result}" >&5 +$as_echo "${_am_result}" >&6; } # Check whether --enable-dependency-tracking was given. if test "${enable_dependency_tracking+set}" = set; then : @@ -4702,6 +4705,182 @@ else fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C99" >&5 +$as_echo_n "checking for $CC option to accept ISO C99... " >&6; } +if ${ac_cv_prog_cc_c99+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_cv_prog_cc_c99=no +ac_save_CC=$CC +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +#include +#include +#include + +// Check varargs macros. These examples are taken from C99 6.10.3.5. +#define debug(...) fprintf (stderr, __VA_ARGS__) +#define showlist(...) puts (#__VA_ARGS__) +#define report(test,...) ((test) ? puts (#test) : printf (__VA_ARGS__)) +static void +test_varargs_macros (void) +{ + int x = 1234; + int y = 5678; + debug ("Flag"); + debug ("X = %d\n", x); + showlist (The first, second, and third items.); + report (x>y, "x is %d but y is %d", x, y); +} + +// Check long long types. +#define BIG64 18446744073709551615ull +#define BIG32 4294967295ul +#define BIG_OK (BIG64 / BIG32 == 4294967297ull && BIG64 % BIG32 == 0) +#if !BIG_OK + your preprocessor is broken; +#endif +#if BIG_OK +#else + your preprocessor is broken; +#endif +static long long int bignum = -9223372036854775807LL; +static unsigned long long int ubignum = BIG64; + +struct incomplete_array +{ + int datasize; + double data[]; +}; + +struct named_init { + int number; + const wchar_t *name; + double average; +}; + +typedef const char *ccp; + +static inline int +test_restrict (ccp restrict text) +{ + // See if C++-style comments work. + // Iterate through items via the restricted pointer. + // Also check for declarations in for loops. + for (unsigned int i = 0; *(text+i) != '\0'; ++i) + continue; + return 0; +} + +// Check varargs and va_copy. +static void +test_varargs (const char *format, ...) +{ + va_list args; + va_start (args, format); + va_list args_copy; + va_copy (args_copy, args); + + const char *str; + int number; + float fnumber; + + while (*format) + { + switch (*format++) + { + case 's': // string + str = va_arg (args_copy, const char *); + break; + case 'd': // int + number = va_arg (args_copy, int); + break; + case 'f': // float + fnumber = va_arg (args_copy, double); + break; + default: + break; + } + } + va_end (args_copy); + va_end (args); +} + +int +main () +{ + + // Check bool. + _Bool success = false; + + // Check restrict. + if (test_restrict ("String literal") == 0) + success = true; + char *restrict newvar = "Another string"; + + // Check varargs. + test_varargs ("s, d' f .", "string", 65, 34.234); + test_varargs_macros (); + + // Check flexible array members. + struct incomplete_array *ia = + malloc (sizeof (struct incomplete_array) + (sizeof (double) * 10)); + ia->datasize = 10; + for (int i = 0; i < ia->datasize; ++i) + ia->data[i] = i * 1.234; + + // Check named initializers. + struct named_init ni = { + .number = 34, + .name = L"Test wide string", + .average = 543.34343, + }; + + ni.number = 58; + + int dynamic_array[ni.number]; + dynamic_array[ni.number - 1] = 543; + + // work around unused variable warnings + return (!success || bignum == 0LL || ubignum == 0uLL || newvar[0] == 'x' + || dynamic_array[ni.number - 1] != 543); + + ; + return 0; +} +_ACEOF +for ac_arg in '' -std=gnu99 -std=c99 -c99 -AC99 -D_STDC_C99= -qlanglvl=extc99 +do + CC="$ac_save_CC $ac_arg" + if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_prog_cc_c99=$ac_arg +fi +rm -f core conftest.err conftest.$ac_objext + test "x$ac_cv_prog_cc_c99" != "xno" && break +done +rm -f conftest.$ac_ext +CC=$ac_save_CC + +fi +# AC_CACHE_VAL +case "x$ac_cv_prog_cc_c99" in + x) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +$as_echo "none needed" >&6; } ;; + xno) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +$as_echo "unsupported" >&6; } ;; + *) + CC="$CC $ac_cv_prog_cc_c99" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c99" >&5 +$as_echo "$ac_cv_prog_cc_c99" >&6; } ;; +esac +if test "x$ac_cv_prog_cc_c99" != xno; then : + +fi + ac_ext=c @@ -4842,6 +5021,7 @@ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $ ac_compiler_gnu=$ac_cv_c_compiler_gnu + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 $as_echo_n "checking for grep that handles long lines and -e... " >&6; } if ${ac_cv_path_GREP+:} false; then : @@ -6929,7 +7109,7 @@ esac fi : ${AR=ar} -: ${AR_FLAGS=cru} +: ${AR_FLAGS=cr} @@ -7430,11 +7610,8 @@ _LT_EOF test $ac_status = 0; }; then # Now try to grab the symbols. nlist=conftest.nm - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist\""; } >&5 - (eval $NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && test -s "$nlist"; then + $ECHO "$as_me:$LINENO: $NM conftest.$ac_objext | $lt_cv_sys_global_symbol_pipe > $nlist" >&5 + if eval "$NM" conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist 2>&5 && test -s "$nlist"; then # Try sorting and uniquifying the output. if sort "$nlist" | uniq > "$nlist"T; then mv -f "$nlist"T "$nlist" @@ -8653,8 +8830,8 @@ int forced_loaded() { return 2;} _LT_EOF echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&5 $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5 - echo "$AR cru libconftest.a conftest.o" >&5 - $AR cru libconftest.a conftest.o 2>&5 + echo "$AR cr libconftest.a conftest.o" >&5 + $AR cr libconftest.a conftest.o 2>&5 echo "$RANLIB libconftest.a" >&5 $RANLIB libconftest.a 2>&5 cat > conftest.c << _LT_EOF @@ -9510,6 +9687,12 @@ lt_prog_compiler_static= lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-static' ;; + # flang / f18. f95 an alias for gfortran or flang on Debian + flang* | f18* | f95*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fPIC' + lt_prog_compiler_static='-static' + ;; # icc used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. icc* | ifort*) @@ -13360,15 +13543,55 @@ fi # Set up defines needed before including any headers case $host in *mingw* | *cygwin* | *msys* ) + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifdef _WIN32_WINNT + # error _WIN32_WINNT already defined + #endif + +int +main () +{ +; + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + $as_echo "#define _WIN32_WINNT 0x0502" >>confdefs.h +$as_echo "#define NTDDI_VERSION 0x05020000" >>confdefs.h + + +fi +rm -f conftest.err conftest.i conftest.$ac_ext + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifdef WINVER + # error WINVER already defined + #endif + +int +main () +{ +; + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + + $as_echo "#define WINVER 0x0502" >>confdefs.h -$as_echo "#define NTDDI_VERSION 0x05020000" >>confdefs.h - +fi +rm -f conftest.err conftest.i conftest.$ac_ext ;; esac @@ -16545,6 +16768,22 @@ _ACEOF fi +# Check for f_iosize in struct statfs +ac_fn_c_check_member "$LINENO" "struct statfs" "f_iosize" "ac_cv_member_struct_statfs_f_iosize" " +#include +#include + +" +if test "x$ac_cv_member_struct_statfs_f_iosize" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_STATFS_F_IOSIZE 1 +_ACEOF + + +fi + + # Check for f_iosize in struct statvfs ac_fn_c_check_member "$LINENO" "struct statvfs" "f_iosize" "ac_cv_member_struct_statvfs_f_iosize" " #include @@ -17798,7 +18037,7 @@ _ACEOF fi done -for ac_func in lchflags lchmod lchown link localtime_r lstat lutimes +for ac_func in lchflags lchmod lchown link linkat localtime_r lstat lutimes do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" @@ -17869,7 +18108,7 @@ _ACEOF fi done -for ac_func in strchr strdup strerror strncpy_s strrchr symlink timegm +for ac_func in strchr strdup strerror strncpy_s strnlen strrchr symlink do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" @@ -17881,7 +18120,7 @@ _ACEOF fi done -for ac_func in tzset unlinkat unsetenv utime utimensat utimes vfork +for ac_func in timegm tzset unlinkat unsetenv utime utimensat utimes vfork do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" @@ -17975,6 +18214,22 @@ _ACEOF fi +ac_fn_c_check_type "$LINENO" "struct statfs" "ac_cv_type_struct_statfs" "#if HAVE_SYS_TYPES_H + #include + #endif + #include + +" +if test "x$ac_cv_type_struct_statfs" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_STATFS 1 +_ACEOF + + +fi + + # There are several variants of readdir_r around; we only # accept the POSIX-compliant version. cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -22265,7 +22520,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by libarchive $as_me 3.4.2, which was +This file was extended by libarchive $as_me 3.5.2, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -22331,7 +22586,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -libarchive config.status 3.4.2 +libarchive config.status 3.5.2 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" @@ -22450,7 +22705,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # # INIT-COMMANDS # -AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" +AMDEP_TRUE="$AMDEP_TRUE" MAKE="${MAKE-make}" # The HP-UX ksh and POSIX shell print the target directory to stdout @@ -23350,29 +23605,35 @@ $as_echo "$as_me: executing $ac_file commands" >&6;} # Older Autoconf quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. - case $CONFIG_FILES in - *\'*) eval set x "$CONFIG_FILES" ;; - *) set x $CONFIG_FILES ;; - esac + # TODO: see whether this extra hack can be removed once we start + # requiring Autoconf 2.70 or later. + case $CONFIG_FILES in #( + *\'*) : + eval set x "$CONFIG_FILES" ;; #( + *) : + set x $CONFIG_FILES ;; #( + *) : + ;; +esac shift - for mf + # Used to flag and report bootstrapping failures. + am_rc=0 + for am_mf do # Strip MF so we end up with the name of the file. - mf=`echo "$mf" | sed -e 's/:.*$//'` - # Check whether this is an Automake generated Makefile or not. - # We used to match only the files named 'Makefile.in', but - # some people rename them; so instead we look at the file content. - # Grep'ing the first line is not enough: some people post-process - # each Makefile.in and add a new line on top of each file to say so. - # Grep'ing the whole file is not good either: AIX grep has a line + am_mf=`$as_echo "$am_mf" | sed -e 's/:.*$//'` + # Check whether this is an Automake generated Makefile which includes + # dependency-tracking related rules and includes. + # Grep'ing the whole file directly is not great: AIX grep has a line # limit of 2048, but all sed's we know have understand at least 4000. - if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then - dirpart=`$as_dirname -- "$mf" || -$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$mf" : 'X\(//\)[^/]' \| \ - X"$mf" : 'X\(//\)$' \| \ - X"$mf" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$mf" | + sed -n 's,^am--depfiles:.*,X,p' "$am_mf" | grep X >/dev/null 2>&1 \ + || continue + am_dirpart=`$as_dirname -- "$am_mf" || +$as_expr X"$am_mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$am_mf" : 'X\(//\)[^/]' \| \ + X"$am_mf" : 'X\(//\)$' \| \ + X"$am_mf" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$am_mf" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q @@ -23390,53 +23651,48 @@ $as_echo X"$mf" | q } s/.*/./; q'` - else - continue - fi - # Extract the definition of DEPDIR, am__include, and am__quote - # from the Makefile without running 'make'. - DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` - test -z "$DEPDIR" && continue - am__include=`sed -n 's/^am__include = //p' < "$mf"` - test -z "$am__include" && continue - am__quote=`sed -n 's/^am__quote = //p' < "$mf"` - # Find all dependency output files, they are included files with - # $(DEPDIR) in their names. We invoke sed twice because it is the - # simplest approach to changing $(DEPDIR) to its actual value in the - # expansion. - for file in `sed -n " - s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ - sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do - # Make sure the directory exists. - test -f "$dirpart/$file" && continue - fdir=`$as_dirname -- "$file" || -$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$file" : 'X\(//\)[^/]' \| \ - X"$file" : 'X\(//\)$' \| \ - X"$file" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$file" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + am_filepart=`$as_basename -- "$am_mf" || +$as_expr X/"$am_mf" : '.*/\([^/][^/]*\)/*$' \| \ + X"$am_mf" : 'X\(//\)$' \| \ + X"$am_mf" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X/"$am_mf" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } - /^X\(\/\/\)[^/].*/{ + /^X\/\(\/\/\)$/{ s//\1/ q } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ + /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` - as_dir=$dirpart/$fdir; as_fn_mkdir_p - # echo "creating $dirpart/$file" - echo '# dummy' > "$dirpart/$file" - done + { echo "$as_me:$LINENO: cd "$am_dirpart" \ + && sed -e '/# am--include-marker/d' "$am_filepart" \ + | $MAKE -f - am--depfiles" >&5 + (cd "$am_dirpart" \ + && sed -e '/# am--include-marker/d' "$am_filepart" \ + | $MAKE -f - am--depfiles) >&5 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } || am_rc=$? done + if test $am_rc -ne 0; then + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "Something went wrong bootstrapping makefile fragments + for automatic dependency tracking. Try re-running configure with the + '--disable-dependency-tracking' option to at least be able to build + the package (albeit without support for automatic dependency tracking). +See \`config.log' for more details" "$LINENO" 5; } + fi + { am_dirpart=; unset am_dirpart;} + { am_filepart=; unset am_filepart;} + { am_mf=; unset am_mf;} + { am_rc=; unset am_rc;} + rm -f conftest-deps.mk } ;; "libtool":C) diff --git a/dependencies/libarchive-3.4.2/configure.ac b/dependencies/libarchive-3.5.2/configure.ac similarity index 96% rename from dependencies/libarchive-3.4.2/configure.ac rename to dependencies/libarchive-3.5.2/configure.ac index 2581087..f59ada9 100644 --- a/dependencies/libarchive-3.4.2/configure.ac +++ b/dependencies/libarchive-3.5.2/configure.ac @@ -4,8 +4,8 @@ dnl First, define all of the version numbers up front. dnl In particular, this allows the version macro to be used in AC_INIT dnl These first two version numbers are updated automatically on each release. -m4_define([LIBARCHIVE_VERSION_S],[3.4.2]) -m4_define([LIBARCHIVE_VERSION_N],[3004002]) +m4_define([LIBARCHIVE_VERSION_S],[3.5.2]) +m4_define([LIBARCHIVE_VERSION_N],[3005002]) dnl bsdtar and bsdcpio versioning tracks libarchive m4_define([BSDTAR_VERSION_S],LIBARCHIVE_VERSION_S()) @@ -47,6 +47,8 @@ ARCHIVE_REVISION=$(( LIBARCHIVE_VERSION_N() % 1000 )) ARCHIVE_LIBTOOL_VERSION=$ARCHIVE_INTERFACE:$ARCHIVE_REVISION:$ARCHIVE_MINOR # Stick the version numbers into config.h +AC_DEFINE([__LIBARCHIVE_CONFIG_H_INCLUDED], [1], + [Internal macro for sanity checks]) AC_DEFINE([LIBARCHIVE_VERSION_STRING],"LIBARCHIVE_VERSION_S()", [Version number of libarchive]) AC_DEFINE_UNQUOTED([LIBARCHIVE_VERSION_NUMBER],"LIBARCHIVE_VERSION_N()", @@ -103,7 +105,9 @@ AC_SUBST(PLATFORMCPPFLAGS) # Checks for programs. AC_PROG_CC +AC_PROG_CC_C99 AM_PROG_CC_C_O +AC_PROG_CPP AC_USE_SYSTEM_EXTENSIONS AC_LIBTOOL_WIN32_DLL AC_PROG_LIBTOOL @@ -244,9 +248,23 @@ AM_CONDITIONAL([STATIC_BSDCPIO], [ test "$static_bsdcpio" = yes ]) # Set up defines needed before including any headers case $host in *mingw* | *cygwin* | *msys* ) - AC_DEFINE([_WIN32_WINNT], 0x0502, [Define to '0x0502' for Windows Server 2003 APIs.]) - AC_DEFINE([WINVER], 0x0502, [Define to '0x0502' for Windows Server 2003 APIs.]) - AC_DEFINE([NTDDI_VERSION], 0x05020000, [Define to '0x05020000' for Windows Server 2003 APIs.]) + AC_PREPROC_IFELSE([AC_LANG_PROGRAM( + [[#ifdef _WIN32_WINNT + # error _WIN32_WINNT already defined + #endif + ]],[[;]]) + ],[ + AC_DEFINE([_WIN32_WINNT], 0x0502, [Define to '0x0502' for Windows Server 2003 APIs.]) + AC_DEFINE([NTDDI_VERSION], 0x05020000, [Define to '0x05020000' for Windows Server 2003 APIs.]) + ]) + AC_PREPROC_IFELSE([AC_LANG_PROGRAM( + [[#ifdef WINVER + # error WINVER already defined + #endif + ]],[[;]]) + ],[ + AC_DEFINE([WINVER], 0x0502, [Define to '0x0502' for Windows Server 2003 APIs.]) + ]) ;; esac @@ -363,7 +381,7 @@ if test "x$with_iconv" != "xno"; then AC_CHECK_FUNCS([locale_charset]) LIBS="${am_save_LIBS}" if test "x$ac_cv_func_locale_charset" != "xyes"; then - # If locale_charset() is not in libiconv, we have to find libcharset. + # If locale_charset() is not in libiconv, we have to find libcharset. AC_CHECK_LIB(charset,locale_charset) fi fi @@ -548,6 +566,13 @@ AC_CHECK_MEMBERS([struct statfs.f_namemax],,, #include ]) +# Check for f_iosize in struct statfs +AC_CHECK_MEMBERS([struct statfs.f_iosize],,, +[ +#include +#include +]) + # Check for f_iosize in struct statvfs AC_CHECK_MEMBERS([struct statvfs.f_iosize],,, [ @@ -631,14 +656,14 @@ AC_CHECK_FUNCS([fstat fstatat fstatfs fstatvfs ftruncate]) AC_CHECK_FUNCS([futimens futimes futimesat]) AC_CHECK_FUNCS([geteuid getpid getgrgid_r getgrnam_r]) AC_CHECK_FUNCS([getpwnam_r getpwuid_r getvfsbyname gmtime_r]) -AC_CHECK_FUNCS([lchflags lchmod lchown link localtime_r lstat lutimes]) +AC_CHECK_FUNCS([lchflags lchmod lchown link linkat localtime_r lstat lutimes]) AC_CHECK_FUNCS([mbrtowc memmove memset]) AC_CHECK_FUNCS([mkdir mkfifo mknod mkstemp]) AC_CHECK_FUNCS([nl_langinfo openat pipe poll posix_spawnp readlink readlinkat]) AC_CHECK_FUNCS([readpassphrase]) AC_CHECK_FUNCS([select setenv setlocale sigaction statfs statvfs]) -AC_CHECK_FUNCS([strchr strdup strerror strncpy_s strrchr symlink timegm]) -AC_CHECK_FUNCS([tzset unlinkat unsetenv utime utimensat utimes vfork]) +AC_CHECK_FUNCS([strchr strdup strerror strncpy_s strnlen strrchr symlink]) +AC_CHECK_FUNCS([timegm tzset unlinkat unsetenv utime utimensat utimes vfork]) AC_CHECK_FUNCS([wcrtomb wcscmp wcscpy wcslen wctomb wmemcmp wmemcpy wmemmove]) AC_CHECK_FUNCS([_ctime64_s _fseeki64]) AC_CHECK_FUNCS([_get_timezone _gmtime64_s _localtime64_s _mkgmtime64]) @@ -660,6 +685,13 @@ AC_CHECK_TYPES(struct xvfsconf,,, #include ]) +AC_CHECK_TYPES(struct statfs,,, + [#if HAVE_SYS_TYPES_H + #include + #endif + #include + ]) + # There are several variants of readdir_r around; we only # accept the POSIX-compliant version. AC_COMPILE_IFELSE( diff --git a/dependencies/libarchive-3.4.2/contrib/README b/dependencies/libarchive-3.5.2/contrib/README similarity index 100% rename from dependencies/libarchive-3.4.2/contrib/README rename to dependencies/libarchive-3.5.2/contrib/README diff --git a/dependencies/libarchive-3.4.2/contrib/android/Android.mk b/dependencies/libarchive-3.5.2/contrib/android/Android.mk similarity index 100% rename from dependencies/libarchive-3.4.2/contrib/android/Android.mk rename to dependencies/libarchive-3.5.2/contrib/android/Android.mk diff --git a/dependencies/libarchive-3.4.2/contrib/android/config/android.h b/dependencies/libarchive-3.5.2/contrib/android/config/android.h similarity index 100% rename from dependencies/libarchive-3.4.2/contrib/android/config/android.h rename to dependencies/libarchive-3.5.2/contrib/android/config/android.h diff --git a/dependencies/libarchive-3.4.2/contrib/android/config/linux_host.h b/dependencies/libarchive-3.5.2/contrib/android/config/linux_host.h similarity index 100% rename from dependencies/libarchive-3.4.2/contrib/android/config/linux_host.h rename to dependencies/libarchive-3.5.2/contrib/android/config/linux_host.h diff --git a/dependencies/libarchive-3.4.2/contrib/android/config/windows_host.h b/dependencies/libarchive-3.5.2/contrib/android/config/windows_host.h similarity index 100% rename from dependencies/libarchive-3.4.2/contrib/android/config/windows_host.h rename to dependencies/libarchive-3.5.2/contrib/android/config/windows_host.h diff --git a/dependencies/libarchive-3.4.2/contrib/android/include/Bcrypt.h b/dependencies/libarchive-3.5.2/contrib/android/include/Bcrypt.h similarity index 100% rename from dependencies/libarchive-3.4.2/contrib/android/include/Bcrypt.h rename to dependencies/libarchive-3.5.2/contrib/android/include/Bcrypt.h diff --git a/dependencies/libarchive-3.4.2/contrib/android/include/Windows.h b/dependencies/libarchive-3.5.2/contrib/android/include/Windows.h similarity index 100% rename from dependencies/libarchive-3.4.2/contrib/android/include/Windows.h rename to dependencies/libarchive-3.5.2/contrib/android/include/Windows.h diff --git a/dependencies/libarchive-3.4.2/contrib/android/include/android_lf.h b/dependencies/libarchive-3.5.2/contrib/android/include/android_lf.h similarity index 100% rename from dependencies/libarchive-3.4.2/contrib/android/include/android_lf.h rename to dependencies/libarchive-3.5.2/contrib/android/include/android_lf.h diff --git a/dependencies/libarchive-3.4.2/contrib/archivetest.c b/dependencies/libarchive-3.5.2/contrib/archivetest.c similarity index 100% rename from dependencies/libarchive-3.4.2/contrib/archivetest.c rename to dependencies/libarchive-3.5.2/contrib/archivetest.c diff --git a/dependencies/libarchive-3.4.2/contrib/libarchive.1aix53.spec b/dependencies/libarchive-3.5.2/contrib/libarchive.1aix53.spec similarity index 100% rename from dependencies/libarchive-3.4.2/contrib/libarchive.1aix53.spec rename to dependencies/libarchive-3.5.2/contrib/libarchive.1aix53.spec diff --git a/dependencies/libarchive-3.4.2/contrib/libarchive.spec b/dependencies/libarchive-3.5.2/contrib/libarchive.spec similarity index 97% rename from dependencies/libarchive-3.4.2/contrib/libarchive.spec rename to dependencies/libarchive-3.5.2/contrib/libarchive.spec index 211b391..371ae64 100644 --- a/dependencies/libarchive-3.4.2/contrib/libarchive.spec +++ b/dependencies/libarchive-3.5.2/contrib/libarchive.spec @@ -1,5 +1,5 @@ Name: {{{ git_name }}} -Version: {{{ git_version lead=3 follow=4 }}} +Version: {{{ git_version lead=3 follow=5 }}} Release: 1%{?dist} Summary: A library for handling streaming archive formats @@ -99,7 +99,7 @@ replace () print \".Dt ${binary^^} 1\"; next; } - # replace the first occurence of \"$pattern\" by \"$binary\" + # replace the first occurrence of \"$pattern\" by \"$binary\" !stop && /^.Nm $pattern/ { print \".Nm $binary\" ; stop = 1 ; diff --git a/dependencies/libarchive-3.4.2/contrib/libarchive_autodetect-st_lib_archive.m4 b/dependencies/libarchive-3.5.2/contrib/libarchive_autodetect-st_lib_archive.m4 similarity index 100% rename from dependencies/libarchive-3.4.2/contrib/libarchive_autodetect-st_lib_archive.m4 rename to dependencies/libarchive-3.5.2/contrib/libarchive_autodetect-st_lib_archive.m4 diff --git a/dependencies/libarchive-3.5.2/contrib/oss-fuzz/corpus.zip b/dependencies/libarchive-3.5.2/contrib/oss-fuzz/corpus.zip new file mode 100644 index 0000000000000000000000000000000000000000..4e9e249582461cae90991f3505ac6fee622be046 GIT binary patch literal 4675 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 +#include +#include + +#include "archive.h" + +struct Buffer { + const uint8_t *buf; + size_t len; +}; + +ssize_t reader_callback(struct archive *a, void *client_data, + const void **block) { + Buffer *buffer = reinterpret_cast(client_data); + *block = buffer->buf; + ssize_t len = buffer->len; + buffer->len = 0; + return len; +} + +extern "C" int LLVMFuzzerTestOneInput(const uint8_t *buf, size_t len) { + int ret; + ssize_t r; + struct archive *a = archive_read_new(); + + archive_read_support_filter_all(a); + archive_read_support_format_all(a); + + Buffer buffer = {buf, len}; + archive_read_open(a, &buffer, NULL, reader_callback, NULL); + + std::vector data_buffer(getpagesize(), 0); + struct archive_entry *entry; + while(1) { + ret = archive_read_next_header(a, &entry); + if (ret == ARCHIVE_EOF || ret == ARCHIVE_FATAL) + break; + if (ret == ARCHIVE_RETRY) + continue; + while ((r = archive_read_data(a, data_buffer.data(), + data_buffer.size())) > 0) + ; + if (r == ARCHIVE_FATAL) + break; + } + + archive_read_free(a); + return 0; +} diff --git a/dependencies/libarchive-3.5.2/contrib/oss-fuzz/oss-fuzz-build.sh b/dependencies/libarchive-3.5.2/contrib/oss-fuzz/oss-fuzz-build.sh new file mode 100755 index 0000000..83d8470 --- /dev/null +++ b/dependencies/libarchive-3.5.2/contrib/oss-fuzz/oss-fuzz-build.sh @@ -0,0 +1,16 @@ +# build the project +./build/autogen.sh +./configure +make -j$(nproc) all + +# build seed +cp $SRC/libarchive/contrib/oss-fuzz/corpus.zip\ + $OUT/libarchive_fuzzer_seed_corpus.zip + +# build fuzzer(s) +$CXX $CXXFLAGS -Ilibarchive \ + $SRC/libarchive/contrib/oss-fuzz/libarchive_fuzzer.cc \ + -o $OUT/libarchive_fuzzer $LIB_FUZZING_ENGINE \ + .libs/libarchive.a -Wl,-Bstatic -lbz2 -llzo2 \ + -lxml2 -llzma -lz -lcrypto -llz4 -licuuc \ + -licudata -Wl,-Bdynamic diff --git a/dependencies/libarchive-3.4.2/contrib/psota-benchmark/results.txt b/dependencies/libarchive-3.5.2/contrib/psota-benchmark/results.txt similarity index 100% rename from dependencies/libarchive-3.4.2/contrib/psota-benchmark/results.txt rename to dependencies/libarchive-3.5.2/contrib/psota-benchmark/results.txt diff --git a/dependencies/libarchive-3.4.2/contrib/psota-benchmark/tcp.sh b/dependencies/libarchive-3.5.2/contrib/psota-benchmark/tcp.sh similarity index 100% rename from dependencies/libarchive-3.4.2/contrib/psota-benchmark/tcp.sh rename to dependencies/libarchive-3.5.2/contrib/psota-benchmark/tcp.sh diff --git a/dependencies/libarchive-3.4.2/contrib/shar/shar.1 b/dependencies/libarchive-3.5.2/contrib/shar/shar.1 similarity index 100% rename from dependencies/libarchive-3.4.2/contrib/shar/shar.1 rename to dependencies/libarchive-3.5.2/contrib/shar/shar.1 diff --git a/dependencies/libarchive-3.4.2/contrib/shar/shar.c b/dependencies/libarchive-3.5.2/contrib/shar/shar.c similarity index 98% rename from dependencies/libarchive-3.4.2/contrib/shar/shar.c rename to dependencies/libarchive-3.5.2/contrib/shar/shar.c index 6d5c206..63161fc 100644 --- a/dependencies/libarchive-3.4.2/contrib/shar/shar.c +++ b/dependencies/libarchive-3.5.2/contrib/shar/shar.c @@ -170,7 +170,7 @@ out: } /* - * Write singe path to the archive. The path can be a regular file, directory + * Write single path to the archive. The path can be a regular file, directory * or device. Symbolic links are followed. */ static int diff --git a/dependencies/libarchive-3.4.2/contrib/shar/tree.c b/dependencies/libarchive-3.5.2/contrib/shar/tree.c similarity index 100% rename from dependencies/libarchive-3.4.2/contrib/shar/tree.c rename to dependencies/libarchive-3.5.2/contrib/shar/tree.c diff --git a/dependencies/libarchive-3.4.2/contrib/shar/tree.h b/dependencies/libarchive-3.5.2/contrib/shar/tree.h similarity index 100% rename from dependencies/libarchive-3.4.2/contrib/shar/tree.h rename to dependencies/libarchive-3.5.2/contrib/shar/tree.h diff --git a/dependencies/libarchive-3.4.2/contrib/shar/tree_config.h b/dependencies/libarchive-3.5.2/contrib/shar/tree_config.h similarity index 100% rename from dependencies/libarchive-3.4.2/contrib/shar/tree_config.h rename to dependencies/libarchive-3.5.2/contrib/shar/tree_config.h diff --git a/dependencies/libarchive-3.4.2/contrib/untar.c b/dependencies/libarchive-3.5.2/contrib/untar.c similarity index 100% rename from dependencies/libarchive-3.4.2/contrib/untar.c rename to dependencies/libarchive-3.5.2/contrib/untar.c diff --git a/dependencies/libarchive-3.4.2/cpio/CMakeLists.txt b/dependencies/libarchive-3.5.2/cpio/CMakeLists.txt similarity index 100% rename from dependencies/libarchive-3.4.2/cpio/CMakeLists.txt rename to dependencies/libarchive-3.5.2/cpio/CMakeLists.txt diff --git a/dependencies/libarchive-3.4.2/cpio/bsdcpio.1 b/dependencies/libarchive-3.5.2/cpio/bsdcpio.1 similarity index 97% rename from dependencies/libarchive-3.4.2/cpio/bsdcpio.1 rename to dependencies/libarchive-3.5.2/cpio/bsdcpio.1 index 514c1a2..01b508e 100644 --- a/dependencies/libarchive-3.4.2/cpio/bsdcpio.1 +++ b/dependencies/libarchive-3.5.2/cpio/bsdcpio.1 @@ -82,6 +82,13 @@ all operating modes. .It Fl 0 , Fl Fl null Read filenames separated by NUL characters instead of newlines. This is necessary if any of the filenames being read might contain newlines. +.It Fl 6 , Fl Fl pwb +When reading a binary format archive, assume it's the earlier one, +from the PWB variant of 6th Edition UNIX. +When writing a cpio archive, use the PWB format. +.It Fl 7 , Fl Fl binary +(o mode only) +When writing a cpio archive, use the (newer, non-PWB) binary format. .It Fl A (o mode only) Append to the specified archive. diff --git a/dependencies/libarchive-3.4.2/cpio/cmdline.c b/dependencies/libarchive-3.5.2/cpio/cmdline.c similarity index 98% rename from dependencies/libarchive-3.4.2/cpio/cmdline.c rename to dependencies/libarchive-3.5.2/cpio/cmdline.c index c8fc30e..2683524 100644 --- a/dependencies/libarchive-3.4.2/cpio/cmdline.c +++ b/dependencies/libarchive-3.5.2/cpio/cmdline.c @@ -51,7 +51,7 @@ __FBSDID("$FreeBSD: src/usr.bin/cpio/cmdline.c,v 1.5 2008/12/06 07:30:40 kientzl /* * Short options for cpio. Please keep this sorted. */ -static const char *short_options = "0AaBC:cdE:F:f:H:hI:iJjLlmnO:opR:rtuVvW:yZz"; +static const char *short_options = "067AaBC:cdE:F:f:H:hI:iJjLlmnO:opR:rtuVvW:yZz"; /* * Long options for cpio. Please keep this sorted. @@ -62,6 +62,7 @@ static const struct option { int equivalent; /* Equivalent short option. */ } cpio_longopts[] = { { "b64encode", 0, OPTION_B64ENCODE }, + { "binary", 0, '7' }, { "create", 0, 'o' }, { "dereference", 0, 'L' }, { "dot", 0, 'V' }, @@ -86,6 +87,7 @@ static const struct option { { "pass-through", 0, 'p' }, { "preserve-modification-time", 0, 'm' }, { "preserve-owner", 0, OPTION_PRESERVE_OWNER }, + { "pwb", 0, '6' }, { "quiet", 0, OPTION_QUIET }, { "unconditional", 0, 'u' }, { "uuencode", 0, OPTION_UUENCODE }, diff --git a/dependencies/libarchive-3.4.2/cpio/config_freebsd.h b/dependencies/libarchive-3.5.2/cpio/config_freebsd.h similarity index 100% rename from dependencies/libarchive-3.4.2/cpio/config_freebsd.h rename to dependencies/libarchive-3.5.2/cpio/config_freebsd.h diff --git a/dependencies/libarchive-3.4.2/cpio/cpio.c b/dependencies/libarchive-3.5.2/cpio/cpio.c similarity index 97% rename from dependencies/libarchive-3.4.2/cpio/cpio.c rename to dependencies/libarchive-3.5.2/cpio/cpio.c index da5c398..68a6301 100644 --- a/dependencies/libarchive-3.4.2/cpio/cpio.c +++ b/dependencies/libarchive-3.5.2/cpio/cpio.c @@ -192,6 +192,12 @@ main(int argc, char *argv[]) case '0': /* GNU convention: --null, -0 */ cpio->option_null = 1; break; + case '6': /* in/out: assume/create 6th edition (PWB) format */ + cpio->option_pwb = 1; + break; + case '7': /* out: create archive using 7th Edition binary format */ + cpio->format = "bin"; + break; case 'A': /* NetBSD/OpenBSD */ cpio->option_append = 1; break; @@ -400,11 +406,12 @@ main(int argc, char *argv[]) switch (cpio->mode) { case 'o': - /* TODO: Implement old binary format in libarchive, - use that here. */ - if (cpio->format == NULL) - cpio->format = "odc"; /* Default format */ - + if (cpio->format == NULL) { + if (cpio->option_pwb) + cpio->format = "pwb"; + else + cpio->format = "cpio"; + } mode_out(cpio); break; case 'i': @@ -462,7 +469,7 @@ static const char *long_help_msg = " -v Verbose filenames -V one dot per file\n" "Create: %p -o [options] < [list of files] > [archive]\n" " -J,-y,-z,--lzma Compress archive with xz/bzip2/gzip/lzma\n" - " --format {odc|newc|ustar} Select archive format\n" + " --format {pwb|bin|odc|newc|ustar} Select archive format\n" "List: %p -it < [archive]\n" "Extract: %p -i [options] < [archive]\n"; @@ -737,7 +744,7 @@ file_to_archive(struct cpio *cpio, const char *srcpath) */ destpath = srcpath; if (cpio->destdir) { - len = strlen(cpio->destdir) + strlen(srcpath) + 8; + len = cpio->destdir_len + strlen(srcpath) + 8; if (len >= cpio->pass_destpath_alloc) { while (len >= cpio->pass_destpath_alloc) { cpio->pass_destpath_alloc += 512; @@ -970,6 +977,8 @@ mode_in(struct cpio *cpio) lafe_errc(1, 0, "Couldn't allocate archive object"); archive_read_support_filter_all(a); archive_read_support_format_all(a); + if (cpio->option_pwb) + archive_read_set_options(a, "pwb"); if (cpio->passphrase != NULL) r = archive_read_add_passphrase(a, cpio->passphrase); else @@ -1080,6 +1089,8 @@ mode_list(struct cpio *cpio) lafe_errc(1, 0, "Couldn't allocate archive object"); archive_read_support_filter_all(a); archive_read_support_format_all(a); + if (cpio->option_pwb) + archive_read_set_options(a, "pwb"); if (cpio->passphrase != NULL) r = archive_read_add_passphrase(a, cpio->passphrase); else @@ -1228,15 +1239,14 @@ mode_pass(struct cpio *cpio, const char *destdir) struct lafe_line_reader *lr; const char *p; int r; - size_t destdir_len; /* Ensure target dir has a trailing '/' to simplify path surgery. */ - destdir_len = strlen(destdir); - cpio->destdir = malloc(destdir_len + 8); - memcpy(cpio->destdir, destdir, destdir_len); - if (destdir_len == 0 || destdir[destdir_len - 1] != '/') - cpio->destdir[destdir_len++] = '/'; - cpio->destdir[destdir_len++] = '\0'; + cpio->destdir_len = strlen(destdir); + cpio->destdir = malloc(cpio->destdir_len + 8); + memcpy(cpio->destdir, destdir, cpio->destdir_len); + if (cpio->destdir_len == 0 || destdir[cpio->destdir_len - 1] != '/') + cpio->destdir[cpio->destdir_len++] = '/'; + cpio->destdir[cpio->destdir_len] = '\0'; cpio->archive = archive_write_disk_new(); if (cpio->archive == NULL) diff --git a/dependencies/libarchive-3.4.2/cpio/cpio.h b/dependencies/libarchive-3.5.2/cpio/cpio.h similarity index 98% rename from dependencies/libarchive-3.4.2/cpio/cpio.h rename to dependencies/libarchive-3.5.2/cpio/cpio.h index abf3628..a71b664 100644 --- a/dependencies/libarchive-3.4.2/cpio/cpio.h +++ b/dependencies/libarchive-3.5.2/cpio/cpio.h @@ -62,8 +62,10 @@ struct cpio { int option_list; /* -t */ char option_null; /* --null */ int option_numeric_uid_gid; /* -n */ + int option_pwb; /* -6 */ int option_rename; /* -r */ char *destdir; + size_t destdir_len; size_t pass_destpath_alloc; char *pass_destpath; int uid_override; diff --git a/dependencies/libarchive-3.4.2/cpio/cpio_platform.h b/dependencies/libarchive-3.5.2/cpio/cpio_platform.h similarity index 100% rename from dependencies/libarchive-3.4.2/cpio/cpio_platform.h rename to dependencies/libarchive-3.5.2/cpio/cpio_platform.h diff --git a/dependencies/libarchive-3.4.2/cpio/cpio_windows.c b/dependencies/libarchive-3.5.2/cpio/cpio_windows.c similarity index 100% rename from dependencies/libarchive-3.4.2/cpio/cpio_windows.c rename to dependencies/libarchive-3.5.2/cpio/cpio_windows.c diff --git a/dependencies/libarchive-3.4.2/cpio/cpio_windows.h b/dependencies/libarchive-3.5.2/cpio/cpio_windows.h similarity index 100% rename from dependencies/libarchive-3.4.2/cpio/cpio_windows.h rename to dependencies/libarchive-3.5.2/cpio/cpio_windows.h diff --git a/dependencies/libarchive-3.4.2/cpio/test/CMakeLists.txt b/dependencies/libarchive-3.5.2/cpio/test/CMakeLists.txt similarity index 90% rename from dependencies/libarchive-3.4.2/cpio/test/CMakeLists.txt rename to dependencies/libarchive-3.5.2/cpio/test/CMakeLists.txt index d0927a8..2c3fbb0 100644 --- a/dependencies/libarchive-3.4.2/cpio/test/CMakeLists.txt +++ b/dependencies/libarchive-3.5.2/cpio/test/CMakeLists.txt @@ -13,17 +13,17 @@ IF(ENABLE_CPIO AND ENABLE_TEST) test_0.c test_basic.c test_cmdline.c - test_extract_cpio_Z - test_extract_cpio_bz2 - test_extract_cpio_grz - test_extract_cpio_gz - test_extract_cpio_lrz - test_extract_cpio_lz - test_extract_cpio_lz4 - test_extract_cpio_lzma - test_extract_cpio_lzo - test_extract_cpio_xz - test_extract_cpio_zstd + test_extract_cpio_Z.c + test_extract_cpio_bz2.c + test_extract_cpio_grz.c + test_extract_cpio_gz.c + test_extract_cpio_lrz.c + test_extract_cpio_lz.c + test_extract_cpio_lz4.c + test_extract_cpio_lzma.c + test_extract_cpio_lzo.c + test_extract_cpio_xz.c + test_extract_cpio_zstd.c test_format_newc.c test_gcpio_compat.c test_missing_file.c diff --git a/dependencies/libarchive-3.4.2/cpio/test/list.h b/dependencies/libarchive-3.5.2/cpio/test/list.h similarity index 100% rename from dependencies/libarchive-3.4.2/cpio/test/list.h rename to dependencies/libarchive-3.5.2/cpio/test/list.h index 9c170a0..92f9ec8 100644 --- a/dependencies/libarchive-3.4.2/cpio/test/list.h +++ b/dependencies/libarchive-3.5.2/cpio/test/list.h @@ -1,35 +1,34 @@ DEFINE_TEST(test_0) DEFINE_TEST(test_basic) DEFINE_TEST(test_cmdline) -DEFINE_TEST(test_extract_cpio_Z) DEFINE_TEST(test_extract_cpio_bz2) DEFINE_TEST(test_extract_cpio_grz) DEFINE_TEST(test_extract_cpio_gz) DEFINE_TEST(test_extract_cpio_lrz) -DEFINE_TEST(test_extract_cpio_lz) DEFINE_TEST(test_extract_cpio_lz4) +DEFINE_TEST(test_extract_cpio_lz) DEFINE_TEST(test_extract_cpio_lzma) DEFINE_TEST(test_extract_cpio_lzo) DEFINE_TEST(test_extract_cpio_xz) +DEFINE_TEST(test_extract_cpio_Z) DEFINE_TEST(test_extract_cpio_zstd) DEFINE_TEST(test_format_newc) DEFINE_TEST(test_gcpio_compat) DEFINE_TEST(test_missing_file) DEFINE_TEST(test_option_0) -DEFINE_TEST(test_option_B_upper) -DEFINE_TEST(test_option_C_upper) -DEFINE_TEST(test_option_J_upper) -DEFINE_TEST(test_option_L_upper) -DEFINE_TEST(test_option_Z_upper) DEFINE_TEST(test_option_a) DEFINE_TEST(test_option_b64encode) +DEFINE_TEST(test_option_B_upper) DEFINE_TEST(test_option_c) +DEFINE_TEST(test_option_C_upper) DEFINE_TEST(test_option_d) DEFINE_TEST(test_option_f) DEFINE_TEST(test_option_grzip) DEFINE_TEST(test_option_help) +DEFINE_TEST(test_option_J_upper) DEFINE_TEST(test_option_l) DEFINE_TEST(test_option_lrzip) +DEFINE_TEST(test_option_L_upper) DEFINE_TEST(test_option_lz4) DEFINE_TEST(test_option_lzma) DEFINE_TEST(test_option_lzop) @@ -43,6 +42,7 @@ DEFINE_TEST(test_option_xz) DEFINE_TEST(test_option_y) DEFINE_TEST(test_option_z) DEFINE_TEST(test_option_zstd) +DEFINE_TEST(test_option_Z_upper) DEFINE_TEST(test_owner_parse) DEFINE_TEST(test_passthrough_dotdot) DEFINE_TEST(test_passthrough_reverse) diff --git a/dependencies/libarchive-3.4.2/cpio/test/test.h b/dependencies/libarchive-3.5.2/cpio/test/test.h similarity index 100% rename from dependencies/libarchive-3.4.2/cpio/test/test.h rename to dependencies/libarchive-3.5.2/cpio/test/test.h diff --git a/dependencies/libarchive-3.4.2/cpio/test/test_0.c b/dependencies/libarchive-3.5.2/cpio/test/test_0.c similarity index 100% rename from dependencies/libarchive-3.4.2/cpio/test/test_0.c rename to dependencies/libarchive-3.5.2/cpio/test/test_0.c diff --git a/dependencies/libarchive-3.4.2/cpio/test/test_basic.c b/dependencies/libarchive-3.5.2/cpio/test/test_basic.c similarity index 98% rename from dependencies/libarchive-3.4.2/cpio/test/test_basic.c rename to dependencies/libarchive-3.5.2/cpio/test/test_basic.c index b716253..3d7d86a 100644 --- a/dependencies/libarchive-3.4.2/cpio/test/test_basic.c +++ b/dependencies/libarchive-3.5.2/cpio/test/test_basic.c @@ -230,6 +230,8 @@ DEFINE_TEST(test_basic) basic_cpio("copy_odc", "--format=odc", "", msg, msg); basic_cpio("copy_newc", "-H newc", "", result, "2 blocks\n"); basic_cpio("copy_cpio", "-H odc", "", msg, msg); + msg = "1 block\n"; + basic_cpio("copy_bin", "-H bin", "", msg, msg); msg = canSymlink() ? "9 blocks\n" : "8 blocks\n"; basic_cpio("copy_ustar", "-H ustar", "", msg, msg); diff --git a/dependencies/libarchive-3.4.2/cpio/test/test_cmdline.c b/dependencies/libarchive-3.5.2/cpio/test/test_cmdline.c similarity index 100% rename from dependencies/libarchive-3.4.2/cpio/test/test_cmdline.c rename to dependencies/libarchive-3.5.2/cpio/test/test_cmdline.c diff --git a/dependencies/libarchive-3.4.2/cpio/test/test_extract.cpio.Z.uu b/dependencies/libarchive-3.5.2/cpio/test/test_extract.cpio.Z.uu similarity index 100% rename from dependencies/libarchive-3.4.2/cpio/test/test_extract.cpio.Z.uu rename to dependencies/libarchive-3.5.2/cpio/test/test_extract.cpio.Z.uu diff --git a/dependencies/libarchive-3.4.2/cpio/test/test_extract.cpio.bz2.uu b/dependencies/libarchive-3.5.2/cpio/test/test_extract.cpio.bz2.uu similarity index 100% rename from dependencies/libarchive-3.4.2/cpio/test/test_extract.cpio.bz2.uu rename to dependencies/libarchive-3.5.2/cpio/test/test_extract.cpio.bz2.uu diff --git a/dependencies/libarchive-3.4.2/cpio/test/test_extract.cpio.grz.uu b/dependencies/libarchive-3.5.2/cpio/test/test_extract.cpio.grz.uu similarity index 100% rename from dependencies/libarchive-3.4.2/cpio/test/test_extract.cpio.grz.uu rename to dependencies/libarchive-3.5.2/cpio/test/test_extract.cpio.grz.uu diff --git a/dependencies/libarchive-3.4.2/cpio/test/test_extract.cpio.gz.uu b/dependencies/libarchive-3.5.2/cpio/test/test_extract.cpio.gz.uu similarity index 100% rename from dependencies/libarchive-3.4.2/cpio/test/test_extract.cpio.gz.uu rename to dependencies/libarchive-3.5.2/cpio/test/test_extract.cpio.gz.uu diff --git a/dependencies/libarchive-3.4.2/cpio/test/test_extract.cpio.lrz.uu b/dependencies/libarchive-3.5.2/cpio/test/test_extract.cpio.lrz.uu similarity index 100% rename from dependencies/libarchive-3.4.2/cpio/test/test_extract.cpio.lrz.uu rename to dependencies/libarchive-3.5.2/cpio/test/test_extract.cpio.lrz.uu diff --git a/dependencies/libarchive-3.4.2/cpio/test/test_extract.cpio.lz.uu b/dependencies/libarchive-3.5.2/cpio/test/test_extract.cpio.lz.uu similarity index 100% rename from dependencies/libarchive-3.4.2/cpio/test/test_extract.cpio.lz.uu rename to dependencies/libarchive-3.5.2/cpio/test/test_extract.cpio.lz.uu diff --git a/dependencies/libarchive-3.4.2/cpio/test/test_extract.cpio.lz4.uu b/dependencies/libarchive-3.5.2/cpio/test/test_extract.cpio.lz4.uu similarity index 100% rename from dependencies/libarchive-3.4.2/cpio/test/test_extract.cpio.lz4.uu rename to dependencies/libarchive-3.5.2/cpio/test/test_extract.cpio.lz4.uu diff --git a/dependencies/libarchive-3.4.2/cpio/test/test_extract.cpio.lzma.uu b/dependencies/libarchive-3.5.2/cpio/test/test_extract.cpio.lzma.uu similarity index 100% rename from dependencies/libarchive-3.4.2/cpio/test/test_extract.cpio.lzma.uu rename to dependencies/libarchive-3.5.2/cpio/test/test_extract.cpio.lzma.uu diff --git a/dependencies/libarchive-3.4.2/cpio/test/test_extract.cpio.lzo.uu b/dependencies/libarchive-3.5.2/cpio/test/test_extract.cpio.lzo.uu similarity index 100% rename from dependencies/libarchive-3.4.2/cpio/test/test_extract.cpio.lzo.uu rename to dependencies/libarchive-3.5.2/cpio/test/test_extract.cpio.lzo.uu diff --git a/dependencies/libarchive-3.4.2/cpio/test/test_extract.cpio.xz.uu b/dependencies/libarchive-3.5.2/cpio/test/test_extract.cpio.xz.uu similarity index 100% rename from dependencies/libarchive-3.4.2/cpio/test/test_extract.cpio.xz.uu rename to dependencies/libarchive-3.5.2/cpio/test/test_extract.cpio.xz.uu diff --git a/dependencies/libarchive-3.4.2/cpio/test/test_extract.cpio.zst.uu b/dependencies/libarchive-3.5.2/cpio/test/test_extract.cpio.zst.uu similarity index 100% rename from dependencies/libarchive-3.4.2/cpio/test/test_extract.cpio.zst.uu rename to dependencies/libarchive-3.5.2/cpio/test/test_extract.cpio.zst.uu diff --git a/dependencies/libarchive-3.4.2/cpio/test/test_extract_cpio_Z.c b/dependencies/libarchive-3.5.2/cpio/test/test_extract_cpio_Z.c similarity index 100% rename from dependencies/libarchive-3.4.2/cpio/test/test_extract_cpio_Z.c rename to dependencies/libarchive-3.5.2/cpio/test/test_extract_cpio_Z.c diff --git a/dependencies/libarchive-3.4.2/cpio/test/test_extract_cpio_bz2.c b/dependencies/libarchive-3.5.2/cpio/test/test_extract_cpio_bz2.c similarity index 100% rename from dependencies/libarchive-3.4.2/cpio/test/test_extract_cpio_bz2.c rename to dependencies/libarchive-3.5.2/cpio/test/test_extract_cpio_bz2.c diff --git a/dependencies/libarchive-3.4.2/cpio/test/test_extract_cpio_grz.c b/dependencies/libarchive-3.5.2/cpio/test/test_extract_cpio_grz.c similarity index 100% rename from dependencies/libarchive-3.4.2/cpio/test/test_extract_cpio_grz.c rename to dependencies/libarchive-3.5.2/cpio/test/test_extract_cpio_grz.c diff --git a/dependencies/libarchive-3.4.2/cpio/test/test_extract_cpio_gz.c b/dependencies/libarchive-3.5.2/cpio/test/test_extract_cpio_gz.c similarity index 100% rename from dependencies/libarchive-3.4.2/cpio/test/test_extract_cpio_gz.c rename to dependencies/libarchive-3.5.2/cpio/test/test_extract_cpio_gz.c diff --git a/dependencies/libarchive-3.4.2/cpio/test/test_extract_cpio_lrz.c b/dependencies/libarchive-3.5.2/cpio/test/test_extract_cpio_lrz.c similarity index 100% rename from dependencies/libarchive-3.4.2/cpio/test/test_extract_cpio_lrz.c rename to dependencies/libarchive-3.5.2/cpio/test/test_extract_cpio_lrz.c diff --git a/dependencies/libarchive-3.4.2/cpio/test/test_extract_cpio_lz.c b/dependencies/libarchive-3.5.2/cpio/test/test_extract_cpio_lz.c similarity index 100% rename from dependencies/libarchive-3.4.2/cpio/test/test_extract_cpio_lz.c rename to dependencies/libarchive-3.5.2/cpio/test/test_extract_cpio_lz.c diff --git a/dependencies/libarchive-3.4.2/cpio/test/test_extract_cpio_lz4.c b/dependencies/libarchive-3.5.2/cpio/test/test_extract_cpio_lz4.c similarity index 100% rename from dependencies/libarchive-3.4.2/cpio/test/test_extract_cpio_lz4.c rename to dependencies/libarchive-3.5.2/cpio/test/test_extract_cpio_lz4.c diff --git a/dependencies/libarchive-3.4.2/cpio/test/test_extract_cpio_lzma.c b/dependencies/libarchive-3.5.2/cpio/test/test_extract_cpio_lzma.c similarity index 100% rename from dependencies/libarchive-3.4.2/cpio/test/test_extract_cpio_lzma.c rename to dependencies/libarchive-3.5.2/cpio/test/test_extract_cpio_lzma.c diff --git a/dependencies/libarchive-3.4.2/cpio/test/test_extract_cpio_lzo.c b/dependencies/libarchive-3.5.2/cpio/test/test_extract_cpio_lzo.c similarity index 100% rename from dependencies/libarchive-3.4.2/cpio/test/test_extract_cpio_lzo.c rename to dependencies/libarchive-3.5.2/cpio/test/test_extract_cpio_lzo.c diff --git a/dependencies/libarchive-3.4.2/cpio/test/test_extract_cpio_xz.c b/dependencies/libarchive-3.5.2/cpio/test/test_extract_cpio_xz.c similarity index 100% rename from dependencies/libarchive-3.4.2/cpio/test/test_extract_cpio_xz.c rename to dependencies/libarchive-3.5.2/cpio/test/test_extract_cpio_xz.c diff --git a/dependencies/libarchive-3.4.2/cpio/test/test_extract_cpio_zstd.c b/dependencies/libarchive-3.5.2/cpio/test/test_extract_cpio_zstd.c similarity index 100% rename from dependencies/libarchive-3.4.2/cpio/test/test_extract_cpio_zstd.c rename to dependencies/libarchive-3.5.2/cpio/test/test_extract_cpio_zstd.c diff --git a/dependencies/libarchive-3.4.2/cpio/test/test_format_newc.c b/dependencies/libarchive-3.5.2/cpio/test/test_format_newc.c similarity index 95% rename from dependencies/libarchive-3.4.2/cpio/test/test_format_newc.c rename to dependencies/libarchive-3.5.2/cpio/test/test_format_newc.c index 49387a7..6e3b9e3 100644 --- a/dependencies/libarchive-3.4.2/cpio/test/test_format_newc.c +++ b/dependencies/libarchive-3.5.2/cpio/test/test_format_newc.c @@ -49,10 +49,11 @@ is_hex(const char *p, size_t l) return (1); } -static int +/* Convert up to 8 hex characters to unsigned 32-bit decimal integer */ +static uint32_t from_hex(const char *p, size_t l) { - int r = 0; + uint32_t r = 0; while (l > 0) { r *= 16; @@ -82,11 +83,11 @@ DEFINE_TEST(test_format_newc) { FILE *list; int r; - int devmajor, devminor, ino, gid; - int uid = -1; + uint32_t devmajor, devminor, ino, gid, uid; time_t t, t2, now; char *p, *e; - size_t s, fs, ns; + size_t s; + uint64_t fs, ns; char result[1024]; assertUmask(0); @@ -199,9 +200,11 @@ DEFINE_TEST(test_format_newc) #else assertEqualInt(0x81a4, from_hex(e + 14, 8)); /* Mode */ #endif - if (uid < 0) - uid = from_hex(e + 22, 8); +#if defined(_WIN32) + uid = from_hex(e + 22, 8); +#else assertEqualInt(from_hex(e + 22, 8), uid); /* uid */ +#endif gid = from_hex(e + 30, 8); /* gid */ assertEqualMem(e + 38, "00000003", 8); /* nlink */ t = from_hex(e + 46, 8); /* mtime */ @@ -215,14 +218,14 @@ DEFINE_TEST(test_format_newc) " first appearance should be empty, so this file size\n" " field should be zero"); assertEqualInt(0, from_hex(e + 54, 8)); /* File size */ - fs = from_hex(e + 54, 8); + fs = (uint64_t)from_hex(e + 54, 8); fs += PAD(fs, 4); devmajor = from_hex(e + 62, 8); /* devmajor */ devminor = from_hex(e + 70, 8); /* devminor */ assert(is_hex(e + 78, 8)); /* rdevmajor */ assert(is_hex(e + 86, 8)); /* rdevminor */ assertEqualMem(e + 94, "00000006", 8); /* Name size */ - ns = from_hex(e + 94, 8); + ns = (uint64_t)from_hex(e + 94, 8); ns += PAD(ns + 2, 4); assertEqualInt(0, from_hex(e + 102, 8)); /* check field */ assertEqualMem(e + 110, "file1\0", 6); /* Name contents */ @@ -249,14 +252,14 @@ DEFINE_TEST(test_format_newc) " at t2=%#08jx", (intmax_t)t, (intmax_t)t2); assert(t2 == t || t2 == t + 1); /* Almost same as first entry. */ assertEqualMem(e + 54, "00000005", 8); /* File size */ - fs = from_hex(e + 54, 8); + fs = (uint64_t)from_hex(e + 54, 8); fs += PAD(fs, 4); assertEqualInt(devmajor, from_hex(e + 62, 8)); /* devmajor */ assertEqualInt(devminor, from_hex(e + 70, 8)); /* devminor */ assert(is_hex(e + 78, 8)); /* rdevmajor */ assert(is_hex(e + 86, 8)); /* rdevminor */ assertEqualMem(e + 94, "00000008", 8); /* Name size */ - ns = from_hex(e + 94, 8); + ns = (uint64_t)from_hex(e + 94, 8); ns += PAD(ns + 2, 4); assertEqualInt(0, from_hex(e + 102, 8)); /* check field */ assertEqualMem(e + 110, "symlink\0\0\0", 10); /* Name contents */ @@ -285,14 +288,14 @@ DEFINE_TEST(test_format_newc) "t2=%#08jx", (intmax_t)t, (intmax_t)t2); assert(t2 == t || t2 == t + 1); /* Almost same as first entry. */ assertEqualMem(e + 54, "00000000", 8); /* File size */ - fs = from_hex(e + 54, 8); + fs = (uint64_t)from_hex(e + 54, 8); fs += PAD(fs, 4); assertEqualInt(devmajor, from_hex(e + 62, 8)); /* devmajor */ assertEqualInt(devminor, from_hex(e + 70, 8)); /* devminor */ assert(is_hex(e + 78, 8)); /* rdevmajor */ assert(is_hex(e + 86, 8)); /* rdevminor */ assertEqualMem(e + 94, "00000004", 8); /* Name size */ - ns = from_hex(e + 94, 8); + ns = (uint64_t)from_hex(e + 94, 8); ns += PAD(ns + 2, 4); assertEqualInt(0, from_hex(e + 102, 8)); /* check field */ assertEqualMem(e + 110, "dir\0\0\0", 6); /* Name contents */ @@ -319,14 +322,14 @@ DEFINE_TEST(test_format_newc) "t2=%#08jx", (intmax_t)t, (intmax_t)t2); assert(t2 == t || t2 == t + 1); /* Almost same as first entry. */ assertEqualInt(10, from_hex(e + 54, 8)); /* File size */ - fs = from_hex(e + 54, 8); + fs = (uint64_t)from_hex(e + 54, 8); fs += PAD(fs, 4); assertEqualInt(devmajor, from_hex(e + 62, 8)); /* devmajor */ assertEqualInt(devminor, from_hex(e + 70, 8)); /* devminor */ assert(is_hex(e + 78, 8)); /* rdevmajor */ assert(is_hex(e + 86, 8)); /* rdevminor */ assertEqualMem(e + 94, "00000009", 8); /* Name size */ - ns = from_hex(e + 94, 8); + ns = (uint64_t)from_hex(e + 94, 8); ns += PAD(ns + 2, 4); assertEqualInt(0, from_hex(e + 102, 8)); /* check field */ assertEqualMem(e + 110, "hardlink\0\0", 10); /* Name contents */ diff --git a/dependencies/libarchive-3.4.2/cpio/test/test_gcpio_compat.c b/dependencies/libarchive-3.5.2/cpio/test/test_gcpio_compat.c similarity index 100% rename from dependencies/libarchive-3.4.2/cpio/test/test_gcpio_compat.c rename to dependencies/libarchive-3.5.2/cpio/test/test_gcpio_compat.c diff --git a/dependencies/libarchive-3.4.2/cpio/test/test_gcpio_compat_ref.bin.uu b/dependencies/libarchive-3.5.2/cpio/test/test_gcpio_compat_ref.bin.uu similarity index 100% rename from dependencies/libarchive-3.4.2/cpio/test/test_gcpio_compat_ref.bin.uu rename to dependencies/libarchive-3.5.2/cpio/test/test_gcpio_compat_ref.bin.uu diff --git a/dependencies/libarchive-3.4.2/cpio/test/test_gcpio_compat_ref.crc.uu b/dependencies/libarchive-3.5.2/cpio/test/test_gcpio_compat_ref.crc.uu similarity index 100% rename from dependencies/libarchive-3.4.2/cpio/test/test_gcpio_compat_ref.crc.uu rename to dependencies/libarchive-3.5.2/cpio/test/test_gcpio_compat_ref.crc.uu diff --git a/dependencies/libarchive-3.4.2/cpio/test/test_gcpio_compat_ref.newc.uu b/dependencies/libarchive-3.5.2/cpio/test/test_gcpio_compat_ref.newc.uu similarity index 100% rename from dependencies/libarchive-3.4.2/cpio/test/test_gcpio_compat_ref.newc.uu rename to dependencies/libarchive-3.5.2/cpio/test/test_gcpio_compat_ref.newc.uu diff --git a/dependencies/libarchive-3.4.2/cpio/test/test_gcpio_compat_ref.ustar.uu b/dependencies/libarchive-3.5.2/cpio/test/test_gcpio_compat_ref.ustar.uu similarity index 100% rename from dependencies/libarchive-3.4.2/cpio/test/test_gcpio_compat_ref.ustar.uu rename to dependencies/libarchive-3.5.2/cpio/test/test_gcpio_compat_ref.ustar.uu diff --git a/dependencies/libarchive-3.4.2/cpio/test/test_gcpio_compat_ref_nosym.bin.uu b/dependencies/libarchive-3.5.2/cpio/test/test_gcpio_compat_ref_nosym.bin.uu similarity index 100% rename from dependencies/libarchive-3.4.2/cpio/test/test_gcpio_compat_ref_nosym.bin.uu rename to dependencies/libarchive-3.5.2/cpio/test/test_gcpio_compat_ref_nosym.bin.uu diff --git a/dependencies/libarchive-3.4.2/cpio/test/test_gcpio_compat_ref_nosym.crc.uu b/dependencies/libarchive-3.5.2/cpio/test/test_gcpio_compat_ref_nosym.crc.uu similarity index 100% rename from dependencies/libarchive-3.4.2/cpio/test/test_gcpio_compat_ref_nosym.crc.uu rename to dependencies/libarchive-3.5.2/cpio/test/test_gcpio_compat_ref_nosym.crc.uu diff --git a/dependencies/libarchive-3.4.2/cpio/test/test_gcpio_compat_ref_nosym.newc.uu b/dependencies/libarchive-3.5.2/cpio/test/test_gcpio_compat_ref_nosym.newc.uu similarity index 100% rename from dependencies/libarchive-3.4.2/cpio/test/test_gcpio_compat_ref_nosym.newc.uu rename to dependencies/libarchive-3.5.2/cpio/test/test_gcpio_compat_ref_nosym.newc.uu diff --git a/dependencies/libarchive-3.4.2/cpio/test/test_gcpio_compat_ref_nosym.ustar.uu b/dependencies/libarchive-3.5.2/cpio/test/test_gcpio_compat_ref_nosym.ustar.uu similarity index 100% rename from dependencies/libarchive-3.4.2/cpio/test/test_gcpio_compat_ref_nosym.ustar.uu rename to dependencies/libarchive-3.5.2/cpio/test/test_gcpio_compat_ref_nosym.ustar.uu diff --git a/dependencies/libarchive-3.4.2/cpio/test/test_missing_file.c b/dependencies/libarchive-3.5.2/cpio/test/test_missing_file.c similarity index 100% rename from dependencies/libarchive-3.4.2/cpio/test/test_missing_file.c rename to dependencies/libarchive-3.5.2/cpio/test/test_missing_file.c diff --git a/dependencies/libarchive-3.4.2/cpio/test/test_option_0.c b/dependencies/libarchive-3.5.2/cpio/test/test_option_0.c similarity index 100% rename from dependencies/libarchive-3.4.2/cpio/test/test_option_0.c rename to dependencies/libarchive-3.5.2/cpio/test/test_option_0.c diff --git a/dependencies/libarchive-3.4.2/cpio/test/test_option_B_upper.c b/dependencies/libarchive-3.5.2/cpio/test/test_option_B_upper.c similarity index 100% rename from dependencies/libarchive-3.4.2/cpio/test/test_option_B_upper.c rename to dependencies/libarchive-3.5.2/cpio/test/test_option_B_upper.c diff --git a/dependencies/libarchive-3.4.2/cpio/test/test_option_C_upper.c b/dependencies/libarchive-3.5.2/cpio/test/test_option_C_upper.c similarity index 100% rename from dependencies/libarchive-3.4.2/cpio/test/test_option_C_upper.c rename to dependencies/libarchive-3.5.2/cpio/test/test_option_C_upper.c diff --git a/dependencies/libarchive-3.4.2/cpio/test/test_option_J_upper.c b/dependencies/libarchive-3.5.2/cpio/test/test_option_J_upper.c similarity index 100% rename from dependencies/libarchive-3.4.2/cpio/test/test_option_J_upper.c rename to dependencies/libarchive-3.5.2/cpio/test/test_option_J_upper.c diff --git a/dependencies/libarchive-3.4.2/cpio/test/test_option_L_upper.c b/dependencies/libarchive-3.5.2/cpio/test/test_option_L_upper.c similarity index 100% rename from dependencies/libarchive-3.4.2/cpio/test/test_option_L_upper.c rename to dependencies/libarchive-3.5.2/cpio/test/test_option_L_upper.c diff --git a/dependencies/libarchive-3.4.2/cpio/test/test_option_Z_upper.c b/dependencies/libarchive-3.5.2/cpio/test/test_option_Z_upper.c similarity index 100% rename from dependencies/libarchive-3.4.2/cpio/test/test_option_Z_upper.c rename to dependencies/libarchive-3.5.2/cpio/test/test_option_Z_upper.c diff --git a/dependencies/libarchive-3.4.2/cpio/test/test_option_a.c b/dependencies/libarchive-3.5.2/cpio/test/test_option_a.c similarity index 100% rename from dependencies/libarchive-3.4.2/cpio/test/test_option_a.c rename to dependencies/libarchive-3.5.2/cpio/test/test_option_a.c diff --git a/dependencies/libarchive-3.4.2/cpio/test/test_option_b64encode.c b/dependencies/libarchive-3.5.2/cpio/test/test_option_b64encode.c similarity index 100% rename from dependencies/libarchive-3.4.2/cpio/test/test_option_b64encode.c rename to dependencies/libarchive-3.5.2/cpio/test/test_option_b64encode.c diff --git a/dependencies/libarchive-3.4.2/cpio/test/test_option_c.c b/dependencies/libarchive-3.5.2/cpio/test/test_option_c.c similarity index 100% rename from dependencies/libarchive-3.4.2/cpio/test/test_option_c.c rename to dependencies/libarchive-3.5.2/cpio/test/test_option_c.c diff --git a/dependencies/libarchive-3.4.2/cpio/test/test_option_d.c b/dependencies/libarchive-3.5.2/cpio/test/test_option_d.c similarity index 100% rename from dependencies/libarchive-3.4.2/cpio/test/test_option_d.c rename to dependencies/libarchive-3.5.2/cpio/test/test_option_d.c diff --git a/dependencies/libarchive-3.4.2/cpio/test/test_option_f.c b/dependencies/libarchive-3.5.2/cpio/test/test_option_f.c similarity index 100% rename from dependencies/libarchive-3.4.2/cpio/test/test_option_f.c rename to dependencies/libarchive-3.5.2/cpio/test/test_option_f.c diff --git a/dependencies/libarchive-3.4.2/cpio/test/test_option_f.cpio.uu b/dependencies/libarchive-3.5.2/cpio/test/test_option_f.cpio.uu similarity index 100% rename from dependencies/libarchive-3.4.2/cpio/test/test_option_f.cpio.uu rename to dependencies/libarchive-3.5.2/cpio/test/test_option_f.cpio.uu diff --git a/dependencies/libarchive-3.4.2/cpio/test/test_option_grzip.c b/dependencies/libarchive-3.5.2/cpio/test/test_option_grzip.c similarity index 100% rename from dependencies/libarchive-3.4.2/cpio/test/test_option_grzip.c rename to dependencies/libarchive-3.5.2/cpio/test/test_option_grzip.c diff --git a/dependencies/libarchive-3.4.2/cpio/test/test_option_help.c b/dependencies/libarchive-3.5.2/cpio/test/test_option_help.c similarity index 100% rename from dependencies/libarchive-3.4.2/cpio/test/test_option_help.c rename to dependencies/libarchive-3.5.2/cpio/test/test_option_help.c diff --git a/dependencies/libarchive-3.4.2/cpio/test/test_option_l.c b/dependencies/libarchive-3.5.2/cpio/test/test_option_l.c similarity index 100% rename from dependencies/libarchive-3.4.2/cpio/test/test_option_l.c rename to dependencies/libarchive-3.5.2/cpio/test/test_option_l.c diff --git a/dependencies/libarchive-3.4.2/cpio/test/test_option_lrzip.c b/dependencies/libarchive-3.5.2/cpio/test/test_option_lrzip.c similarity index 100% rename from dependencies/libarchive-3.4.2/cpio/test/test_option_lrzip.c rename to dependencies/libarchive-3.5.2/cpio/test/test_option_lrzip.c diff --git a/dependencies/libarchive-3.4.2/cpio/test/test_option_lz4.c b/dependencies/libarchive-3.5.2/cpio/test/test_option_lz4.c similarity index 100% rename from dependencies/libarchive-3.4.2/cpio/test/test_option_lz4.c rename to dependencies/libarchive-3.5.2/cpio/test/test_option_lz4.c diff --git a/dependencies/libarchive-3.4.2/cpio/test/test_option_lzma.c b/dependencies/libarchive-3.5.2/cpio/test/test_option_lzma.c similarity index 100% rename from dependencies/libarchive-3.4.2/cpio/test/test_option_lzma.c rename to dependencies/libarchive-3.5.2/cpio/test/test_option_lzma.c diff --git a/dependencies/libarchive-3.4.2/cpio/test/test_option_lzop.c b/dependencies/libarchive-3.5.2/cpio/test/test_option_lzop.c similarity index 100% rename from dependencies/libarchive-3.4.2/cpio/test/test_option_lzop.c rename to dependencies/libarchive-3.5.2/cpio/test/test_option_lzop.c diff --git a/dependencies/libarchive-3.4.2/cpio/test/test_option_m.c b/dependencies/libarchive-3.5.2/cpio/test/test_option_m.c similarity index 100% rename from dependencies/libarchive-3.4.2/cpio/test/test_option_m.c rename to dependencies/libarchive-3.5.2/cpio/test/test_option_m.c diff --git a/dependencies/libarchive-3.4.2/cpio/test/test_option_m.cpio.uu b/dependencies/libarchive-3.5.2/cpio/test/test_option_m.cpio.uu similarity index 100% rename from dependencies/libarchive-3.4.2/cpio/test/test_option_m.cpio.uu rename to dependencies/libarchive-3.5.2/cpio/test/test_option_m.cpio.uu diff --git a/dependencies/libarchive-3.4.2/cpio/test/test_option_passphrase.c b/dependencies/libarchive-3.5.2/cpio/test/test_option_passphrase.c similarity index 100% rename from dependencies/libarchive-3.4.2/cpio/test/test_option_passphrase.c rename to dependencies/libarchive-3.5.2/cpio/test/test_option_passphrase.c diff --git a/dependencies/libarchive-3.4.2/cpio/test/test_option_passphrase.zip.uu b/dependencies/libarchive-3.5.2/cpio/test/test_option_passphrase.zip.uu similarity index 100% rename from dependencies/libarchive-3.4.2/cpio/test/test_option_passphrase.zip.uu rename to dependencies/libarchive-3.5.2/cpio/test/test_option_passphrase.zip.uu diff --git a/dependencies/libarchive-3.4.2/cpio/test/test_option_t.c b/dependencies/libarchive-3.5.2/cpio/test/test_option_t.c similarity index 100% rename from dependencies/libarchive-3.4.2/cpio/test/test_option_t.c rename to dependencies/libarchive-3.5.2/cpio/test/test_option_t.c diff --git a/dependencies/libarchive-3.4.2/cpio/test/test_option_t.cpio.uu b/dependencies/libarchive-3.5.2/cpio/test/test_option_t.cpio.uu similarity index 100% rename from dependencies/libarchive-3.4.2/cpio/test/test_option_t.cpio.uu rename to dependencies/libarchive-3.5.2/cpio/test/test_option_t.cpio.uu diff --git a/dependencies/libarchive-3.4.2/cpio/test/test_option_t.stdout.uu b/dependencies/libarchive-3.5.2/cpio/test/test_option_t.stdout.uu similarity index 100% rename from dependencies/libarchive-3.4.2/cpio/test/test_option_t.stdout.uu rename to dependencies/libarchive-3.5.2/cpio/test/test_option_t.stdout.uu diff --git a/dependencies/libarchive-3.4.2/cpio/test/test_option_tv.stdout.uu b/dependencies/libarchive-3.5.2/cpio/test/test_option_tv.stdout.uu similarity index 100% rename from dependencies/libarchive-3.4.2/cpio/test/test_option_tv.stdout.uu rename to dependencies/libarchive-3.5.2/cpio/test/test_option_tv.stdout.uu diff --git a/dependencies/libarchive-3.4.2/cpio/test/test_option_u.c b/dependencies/libarchive-3.5.2/cpio/test/test_option_u.c similarity index 100% rename from dependencies/libarchive-3.4.2/cpio/test/test_option_u.c rename to dependencies/libarchive-3.5.2/cpio/test/test_option_u.c diff --git a/dependencies/libarchive-3.4.2/cpio/test/test_option_uuencode.c b/dependencies/libarchive-3.5.2/cpio/test/test_option_uuencode.c similarity index 100% rename from dependencies/libarchive-3.4.2/cpio/test/test_option_uuencode.c rename to dependencies/libarchive-3.5.2/cpio/test/test_option_uuencode.c diff --git a/dependencies/libarchive-3.4.2/cpio/test/test_option_version.c b/dependencies/libarchive-3.5.2/cpio/test/test_option_version.c similarity index 100% rename from dependencies/libarchive-3.4.2/cpio/test/test_option_version.c rename to dependencies/libarchive-3.5.2/cpio/test/test_option_version.c diff --git a/dependencies/libarchive-3.4.2/cpio/test/test_option_xz.c b/dependencies/libarchive-3.5.2/cpio/test/test_option_xz.c similarity index 100% rename from dependencies/libarchive-3.4.2/cpio/test/test_option_xz.c rename to dependencies/libarchive-3.5.2/cpio/test/test_option_xz.c diff --git a/dependencies/libarchive-3.4.2/cpio/test/test_option_y.c b/dependencies/libarchive-3.5.2/cpio/test/test_option_y.c similarity index 100% rename from dependencies/libarchive-3.4.2/cpio/test/test_option_y.c rename to dependencies/libarchive-3.5.2/cpio/test/test_option_y.c diff --git a/dependencies/libarchive-3.4.2/cpio/test/test_option_z.c b/dependencies/libarchive-3.5.2/cpio/test/test_option_z.c similarity index 100% rename from dependencies/libarchive-3.4.2/cpio/test/test_option_z.c rename to dependencies/libarchive-3.5.2/cpio/test/test_option_z.c diff --git a/dependencies/libarchive-3.4.2/cpio/test/test_option_zstd.c b/dependencies/libarchive-3.5.2/cpio/test/test_option_zstd.c similarity index 100% rename from dependencies/libarchive-3.4.2/cpio/test/test_option_zstd.c rename to dependencies/libarchive-3.5.2/cpio/test/test_option_zstd.c diff --git a/dependencies/libarchive-3.4.2/cpio/test/test_owner_parse.c b/dependencies/libarchive-3.5.2/cpio/test/test_owner_parse.c similarity index 100% rename from dependencies/libarchive-3.4.2/cpio/test/test_owner_parse.c rename to dependencies/libarchive-3.5.2/cpio/test/test_owner_parse.c diff --git a/dependencies/libarchive-3.4.2/cpio/test/test_passthrough_dotdot.c b/dependencies/libarchive-3.5.2/cpio/test/test_passthrough_dotdot.c similarity index 100% rename from dependencies/libarchive-3.4.2/cpio/test/test_passthrough_dotdot.c rename to dependencies/libarchive-3.5.2/cpio/test/test_passthrough_dotdot.c diff --git a/dependencies/libarchive-3.4.2/cpio/test/test_passthrough_reverse.c b/dependencies/libarchive-3.5.2/cpio/test/test_passthrough_reverse.c similarity index 100% rename from dependencies/libarchive-3.4.2/cpio/test/test_passthrough_reverse.c rename to dependencies/libarchive-3.5.2/cpio/test/test_passthrough_reverse.c diff --git a/dependencies/libarchive-3.4.2/doc/html/.ignore_me b/dependencies/libarchive-3.5.2/doc/html/.ignore_me similarity index 100% rename from dependencies/libarchive-3.4.2/doc/html/.ignore_me rename to dependencies/libarchive-3.5.2/doc/html/.ignore_me diff --git a/dependencies/libarchive-3.4.2/doc/html/Makefile b/dependencies/libarchive-3.5.2/doc/html/Makefile similarity index 98% rename from dependencies/libarchive-3.4.2/doc/html/Makefile rename to dependencies/libarchive-3.5.2/doc/html/Makefile index d15a786..5fdc652 100644 --- a/dependencies/libarchive-3.4.2/doc/html/Makefile +++ b/dependencies/libarchive-3.5.2/doc/html/Makefile @@ -107,15 +107,15 @@ archive_write_set_passphrase.3.html: ../../libarchive/archive_write_set_passphra cpio.5.html: ../../libarchive/cpio.5 groff -mdoc -T html ../../libarchive/cpio.5 > cpio.5.html -libarchive-formats.5.html: ../../libarchive/libarchive-formats.5 - groff -mdoc -T html ../../libarchive/libarchive-formats.5 > libarchive-formats.5.html - libarchive.3.html: ../../libarchive/libarchive.3 groff -mdoc -T html ../../libarchive/libarchive.3 > libarchive.3.html libarchive_changes.3.html: ../../libarchive/libarchive_changes.3 groff -mdoc -T html ../../libarchive/libarchive_changes.3 > libarchive_changes.3.html +libarchive-formats.5.html: ../../libarchive/libarchive-formats.5 + groff -mdoc -T html ../../libarchive/libarchive-formats.5 > libarchive-formats.5.html + libarchive_internals.3.html: ../../libarchive/libarchive_internals.3 groff -mdoc -T html ../../libarchive/libarchive_internals.3 > libarchive_internals.3.html @@ -130,4 +130,4 @@ bsdtar.1.html: ../../tar/bsdtar.1 bsdcpio.1.html: ../../cpio/bsdcpio.1 groff -mdoc -T html ../../cpio/bsdcpio.1 > bsdcpio.1.html -all: archive_entry.3.html archive_entry_acl.3.html archive_entry_linkify.3.html archive_entry_misc.3.html archive_entry_paths.3.html archive_entry_perms.3.html archive_entry_stat.3.html archive_entry_time.3.html archive_read.3.html archive_read_add_passphrase.3.html archive_read_data.3.html archive_read_disk.3.html archive_read_extract.3.html archive_read_filter.3.html archive_read_format.3.html archive_read_free.3.html archive_read_header.3.html archive_read_new.3.html archive_read_open.3.html archive_read_set_options.3.html archive_util.3.html archive_write.3.html archive_write_blocksize.3.html archive_write_data.3.html archive_write_disk.3.html archive_write_filter.3.html archive_write_finish_entry.3.html archive_write_format.3.html archive_write_free.3.html archive_write_header.3.html archive_write_new.3.html archive_write_open.3.html archive_write_set_options.3.html archive_write_set_passphrase.3.html cpio.5.html libarchive-formats.5.html libarchive.3.html libarchive_changes.3.html libarchive_internals.3.html mtree.5.html tar.5.html bsdtar.1.html bsdcpio.1.html +all: archive_entry.3.html archive_entry_acl.3.html archive_entry_linkify.3.html archive_entry_misc.3.html archive_entry_paths.3.html archive_entry_perms.3.html archive_entry_stat.3.html archive_entry_time.3.html archive_read.3.html archive_read_add_passphrase.3.html archive_read_data.3.html archive_read_disk.3.html archive_read_extract.3.html archive_read_filter.3.html archive_read_format.3.html archive_read_free.3.html archive_read_header.3.html archive_read_new.3.html archive_read_open.3.html archive_read_set_options.3.html archive_util.3.html archive_write.3.html archive_write_blocksize.3.html archive_write_data.3.html archive_write_disk.3.html archive_write_filter.3.html archive_write_finish_entry.3.html archive_write_format.3.html archive_write_free.3.html archive_write_header.3.html archive_write_new.3.html archive_write_open.3.html archive_write_set_options.3.html archive_write_set_passphrase.3.html cpio.5.html libarchive.3.html libarchive_changes.3.html libarchive-formats.5.html libarchive_internals.3.html mtree.5.html tar.5.html bsdtar.1.html bsdcpio.1.html diff --git a/dependencies/libarchive-3.4.2/doc/html/archive_entry.3.html b/dependencies/libarchive-3.5.2/doc/html/archive_entry.3.html similarity index 98% rename from dependencies/libarchive-3.4.2/doc/html/archive_entry.3.html rename to dependencies/libarchive-3.5.2/doc/html/archive_entry.3.html index 4c502b2..f0d0023 100644 --- a/dependencies/libarchive-3.4.2/doc/html/archive_entry.3.html +++ b/dependencies/libarchive-3.5.2/doc/html/archive_entry.3.html @@ -1,5 +1,5 @@ - - + + diff --git a/dependencies/libarchive-3.4.2/doc/html/archive_entry_acl.3.html b/dependencies/libarchive-3.5.2/doc/html/archive_entry_acl.3.html similarity index 95% rename from dependencies/libarchive-3.4.2/doc/html/archive_entry_acl.3.html rename to dependencies/libarchive-3.5.2/doc/html/archive_entry_acl.3.html index ee84f3d..fe89601 100644 --- a/dependencies/libarchive-3.4.2/doc/html/archive_entry_acl.3.html +++ b/dependencies/libarchive-3.5.2/doc/html/archive_entry_acl.3.html @@ -1,5 +1,5 @@ - - + + @@ -127,12 +127,12 @@ descriptions

DESCRIPTION

-

The ’’Access Control -Lists (ACLs)’’ extend the standard Unix -permission model. The ACL interface of libarchive -supports both POSIX.1e and NFSv4 style ACLs. Use of ACLs is -restricted by various levels of ACL support in operating -systems, file systems and archive formats.

+

The “Access Control Lists +(ACLs)” extend the standard Unix permission model. The +ACL interface of libarchive supports both POSIX.1e +and NFSv4 style ACLs. Use of ACLs is restricted by various +levels of ACL support in operating systems, file systems and +archive formats.

POSIX.1e Access Control Lists
@@ -430,11 +430,11 @@ formats that can be created with archive_entry_acl_to_text_w(). Existing ACL entries are preserved. To get a clean new ACL from text archive_entry_acl_clear() must be called first. -Entries prefixed with ’’default:’’ -are treated as ARCHIVE_ENTRY_ACL_TYPE_DEFAULT unless -type is ARCHIVE_ENTRY_ACL_TYPE_NFS4. Invalid entries, -non-parseable ACL entries and entries beginning with the -’#’ character (comments) are skipped.

+Entries prefixed with “default:” are treated as +ARCHIVE_ENTRY_ACL_TYPE_DEFAULT unless type is +ARCHIVE_ENTRY_ACL_TYPE_NFS4. Invalid entries, non-parseable +ACL entries and entries beginning with the ’#’ +character (comments) are skipped.

archive_entry_acl_next() @@ -476,7 +476,7 @@ ACLs.

ARCHIVE_ENTRY_ACL_STYLE_MARK_DEFAULT

Prefix each default ACL entry -with the word ’’default:’’.

+with the word “default:”.

ARCHIVE_ENTRY_ACL_STYLE_SOLARIS

@@ -511,7 +511,7 @@ returned. It the entry contains POSIX.1e ACLs and none of the flags ARCHIVE_ENTRY_ACL_TYPE_ACCESS or ARCHIVE_ENTRY_ACL_TYPE_DEFAULT are specified, both access and default entries are returned and default entries are -prefixed with ’’default:’’.

+prefixed with “default:”.

archive_entry_acl_types() diff --git a/dependencies/libarchive-3.4.2/doc/html/archive_entry_linkify.3.html b/dependencies/libarchive-3.5.2/doc/html/archive_entry_linkify.3.html similarity index 98% rename from dependencies/libarchive-3.4.2/doc/html/archive_entry_linkify.3.html rename to dependencies/libarchive-3.5.2/doc/html/archive_entry_linkify.3.html index b92ff26..c6f214c 100644 --- a/dependencies/libarchive-3.4.2/doc/html/archive_entry_linkify.3.html +++ b/dependencies/libarchive-3.5.2/doc/html/archive_entry_linkify.3.html @@ -1,5 +1,5 @@ - - + + diff --git a/dependencies/libarchive-3.4.2/doc/html/archive_entry_misc.3.html b/dependencies/libarchive-3.5.2/doc/html/archive_entry_misc.3.html similarity index 96% rename from dependencies/libarchive-3.4.2/doc/html/archive_entry_misc.3.html rename to dependencies/libarchive-3.5.2/doc/html/archive_entry_misc.3.html index e55e194..a0365c1 100644 --- a/dependencies/libarchive-3.4.2/doc/html/archive_entry_misc.3.html +++ b/dependencies/libarchive-3.5.2/doc/html/archive_entry_misc.3.html @@ -1,5 +1,5 @@ - - + + diff --git a/dependencies/libarchive-3.4.2/doc/html/archive_entry_paths.3.html b/dependencies/libarchive-3.5.2/doc/html/archive_entry_paths.3.html similarity index 98% rename from dependencies/libarchive-3.4.2/doc/html/archive_entry_paths.3.html rename to dependencies/libarchive-3.5.2/doc/html/archive_entry_paths.3.html index 510090b..127c394 100644 --- a/dependencies/libarchive-3.4.2/doc/html/archive_entry_paths.3.html +++ b/dependencies/libarchive-3.5.2/doc/html/archive_entry_paths.3.html @@ -1,5 +1,5 @@ - - + + diff --git a/dependencies/libarchive-3.4.2/doc/html/archive_entry_perms.3.html b/dependencies/libarchive-3.5.2/doc/html/archive_entry_perms.3.html similarity index 99% rename from dependencies/libarchive-3.4.2/doc/html/archive_entry_perms.3.html rename to dependencies/libarchive-3.5.2/doc/html/archive_entry_perms.3.html index 35838a5..7a912cd 100644 --- a/dependencies/libarchive-3.4.2/doc/html/archive_entry_perms.3.html +++ b/dependencies/libarchive-3.5.2/doc/html/archive_entry_perms.3.html @@ -1,5 +1,5 @@ - - + + diff --git a/dependencies/libarchive-3.4.2/doc/html/archive_entry_stat.3.html b/dependencies/libarchive-3.5.2/doc/html/archive_entry_stat.3.html similarity index 98% rename from dependencies/libarchive-3.4.2/doc/html/archive_entry_stat.3.html rename to dependencies/libarchive-3.5.2/doc/html/archive_entry_stat.3.html index 2786956..5b0e476 100644 --- a/dependencies/libarchive-3.4.2/doc/html/archive_entry_stat.3.html +++ b/dependencies/libarchive-3.5.2/doc/html/archive_entry_stat.3.html @@ -1,5 +1,5 @@ - - + + @@ -323,8 +323,8 @@ respectively.

The number of references (hardlinks) can be obtained by calling -archive_entry_nlinks() and set with -archive_entry_set_nlinks().

+archive_entry_nlink() and set with +archive_entry_set_nlink().

Identifying unique files
diff --git a/dependencies/libarchive-3.4.2/doc/html/archive_entry_time.3.html b/dependencies/libarchive-3.5.2/doc/html/archive_entry_time.3.html similarity index 98% rename from dependencies/libarchive-3.4.2/doc/html/archive_entry_time.3.html rename to dependencies/libarchive-3.5.2/doc/html/archive_entry_time.3.html index fdd3cfe..fd62535 100644 --- a/dependencies/libarchive-3.4.2/doc/html/archive_entry_time.3.html +++ b/dependencies/libarchive-3.5.2/doc/html/archive_entry_time.3.html @@ -1,5 +1,5 @@ - - + + diff --git a/dependencies/libarchive-3.4.2/doc/html/archive_read.3.html b/dependencies/libarchive-3.5.2/doc/html/archive_read.3.html similarity index 98% rename from dependencies/libarchive-3.4.2/doc/html/archive_read.3.html rename to dependencies/libarchive-3.5.2/doc/html/archive_read.3.html index e04db2f..13a14b1 100644 --- a/dependencies/libarchive-3.4.2/doc/html/archive_read.3.html +++ b/dependencies/libarchive-3.5.2/doc/html/archive_read.3.html @@ -1,5 +1,5 @@ - - + + @@ -224,7 +224,7 @@ example, many implementations of tar(1) allow you to append entries to an empty file. Of course, it is impossible to determine the format of an empty file by inspecting the contents, so this library treats empty files as having a -special ’’empty’’ format.

+special “empty” format.

BSD February 2, 2012 BSD

diff --git a/dependencies/libarchive-3.4.2/doc/html/archive_read_add_passphrase.3.html b/dependencies/libarchive-3.5.2/doc/html/archive_read_add_passphrase.3.html similarity index 96% rename from dependencies/libarchive-3.4.2/doc/html/archive_read_add_passphrase.3.html rename to dependencies/libarchive-3.5.2/doc/html/archive_read_add_passphrase.3.html index 1cd60de..d39b665 100644 --- a/dependencies/libarchive-3.4.2/doc/html/archive_read_add_passphrase.3.html +++ b/dependencies/libarchive-3.5.2/doc/html/archive_read_add_passphrase.3.html @@ -1,5 +1,5 @@ - - + + diff --git a/dependencies/libarchive-3.4.2/doc/html/archive_read_data.3.html b/dependencies/libarchive-3.5.2/doc/html/archive_read_data.3.html similarity index 98% rename from dependencies/libarchive-3.4.2/doc/html/archive_read_data.3.html rename to dependencies/libarchive-3.5.2/doc/html/archive_read_data.3.html index f9775c7..a610e15 100644 --- a/dependencies/libarchive-3.4.2/doc/html/archive_read_data.3.html +++ b/dependencies/libarchive-3.5.2/doc/html/archive_read_data.3.html @@ -1,5 +1,5 @@ - - + + diff --git a/dependencies/libarchive-3.4.2/doc/html/archive_read_disk.3.html b/dependencies/libarchive-3.5.2/doc/html/archive_read_disk.3.html similarity index 94% rename from dependencies/libarchive-3.4.2/doc/html/archive_read_disk.3.html rename to dependencies/libarchive-3.5.2/doc/html/archive_read_disk.3.html index ac1e306..c1dc2d6 100644 --- a/dependencies/libarchive-3.4.2/doc/html/archive_read_disk.3.html +++ b/dependencies/libarchive-3.5.2/doc/html/archive_read_disk.3.html @@ -1,5 +1,5 @@ - - + + @@ -188,13 +188,11 @@ is not restored.

archive_read_disk_set_symlink_hybrid()

This sets the mode used for -handling symbolic links. The -’’logical’’ mode follows all -symbolic links. The ’’physical’’ -mode does not follow any symbolic links. The -’’hybrid’’ mode currently behaves -identically to the ’’logical’’ -mode.

+handling symbolic links. The “logical” mode +follows all symbolic links. The “physical” mode +does not follow any symbolic links. The “hybrid” +mode currently behaves identically to the +“logical” mode.

archive_read_disk_gname(), @@ -348,11 +346,10 @@ was written by Tim Kientzle

BUGS

-

The -’’standard’’ user name and group -name lookup functions are not the defaults because -getgrgid(3) and getpwuid(3) are sometimes too large for -particular applications. The current design allows the +

The “standard” user +name and group name lookup functions are not the defaults +because getgrgid(3) and getpwuid(3) are sometimes too large +for particular applications. The current design allows the application author to use a more compact implementation when appropriate.

@@ -371,9 +368,8 @@ such information.

This API should provide a set of methods for walking a directory tree. That would make it a direct parallel of the archive_read(3) API. -When such methods are implemented, the -’’hybrid’’ symbolic link mode will -make sense.

+When such methods are implemented, the “hybrid” +symbolic link mode will make sense.

BSD April 3, 2017 BSD

diff --git a/dependencies/libarchive-3.4.2/doc/html/archive_read_extract.3.html b/dependencies/libarchive-3.5.2/doc/html/archive_read_extract.3.html similarity index 98% rename from dependencies/libarchive-3.4.2/doc/html/archive_read_extract.3.html rename to dependencies/libarchive-3.5.2/doc/html/archive_read_extract.3.html index 6c41457..c98352c 100644 --- a/dependencies/libarchive-3.4.2/doc/html/archive_read_extract.3.html +++ b/dependencies/libarchive-3.5.2/doc/html/archive_read_extract.3.html @@ -1,5 +1,5 @@ - - + + diff --git a/dependencies/libarchive-3.4.2/doc/html/archive_read_filter.3.html b/dependencies/libarchive-3.5.2/doc/html/archive_read_filter.3.html similarity index 89% rename from dependencies/libarchive-3.4.2/doc/html/archive_read_filter.3.html rename to dependencies/libarchive-3.5.2/doc/html/archive_read_filter.3.html index b7f240f..d38e9df 100644 --- a/dependencies/libarchive-3.4.2/doc/html/archive_read_filter.3.html +++ b/dependencies/libarchive-3.5.2/doc/html/archive_read_filter.3.html @@ -1,5 +1,5 @@ - - + + @@ -59,6 +59,12 @@ functions for reading streaming archives

int

+

archive_read_support_filter_by_code(struct archive *, +int);

+ +

int

+ +

archive_read_support_filter_bzip2(struct archive *);

int

@@ -156,14 +162,22 @@ functions may fall back on external programs if an appropriate library was not available at build time. Decompression using an external program is usually slower than decompression through built-in libraries. Note that -’’none’’ is always enabled by -default.

+“none” is always enabled by default.

archive_read_support_filter_all()

Enables all available decompression filters.

+

archive_read_support_filter_by_code()

+ +

Enables a single filter +specified by the filter code. This function does not work +with ARCHIVE_FILTER_PROGRAM. Note: In +statically-linked executables, this will cause your program +to include support for every filter. If executable size is a +concern, you may wish to avoid using this function.

+

archive_read_support_filter_program()

Data is fed through the @@ -202,8 +216,8 @@ and archive_error_string() functions.

archive_read_data(3), archive_read_format(3), archive_read_format(3), libarchive(3)

-

BSD -August 14, 2014 BSD

+

BSD June 9, +2020 BSD


diff --git a/dependencies/libarchive-3.4.2/doc/html/archive_read_format.3.html b/dependencies/libarchive-3.5.2/doc/html/archive_read_format.3.html similarity index 92% rename from dependencies/libarchive-3.4.2/doc/html/archive_read_format.3.html rename to dependencies/libarchive-3.5.2/doc/html/archive_read_format.3.html index 197fc23..cbc8261 100644 --- a/dependencies/libarchive-3.4.2/doc/html/archive_read_format.3.html +++ b/dependencies/libarchive-3.5.2/doc/html/archive_read_format.3.html @@ -1,5 +1,5 @@ - - + + @@ -153,8 +153,8 @@ variants.

archive_read_support_format_all()

Enables support for all -available formats except the ’’raw’’ -format (see below).

+available formats except the “raw” format (see +below).

archive_read_support_format_by_code()

@@ -179,11 +179,10 @@ distinct format.

archive_read_support_format_raw()

-

The -’’raw’’ format handler allows -libarchive to be used to read arbitrary data. It treats any -data stream as an archive with a single entry. The pathname -of this entry is ’’data’’; all other +

The “raw” format +handler allows libarchive to be used to read arbitrary data. +It treats any data stream as an archive with a single entry. +The pathname of this entry is “data”; all other entry fields are unset. This is not enabled by archive_read_support_format_all() in order to avoid erroneous handling of damaged archives.

@@ -213,12 +212,11 @@ example, many implementations of tar(1) allow you to append entries to an empty file. Of course, it is impossible to determine the format of an empty file by inspecting the contents, so this library treats empty files as having a -special ’’empty’’ format.

+special “empty” format.

Using the -’’raw’’ handler together with any -other handler will often work but can produce surprising -results.

+“raw” handler together with any other handler +will often work but can produce surprising results.

BSD February 2, 2012 BSD

diff --git a/dependencies/libarchive-3.4.2/doc/html/archive_read_free.3.html b/dependencies/libarchive-3.5.2/doc/html/archive_read_free.3.html similarity index 97% rename from dependencies/libarchive-3.4.2/doc/html/archive_read_free.3.html rename to dependencies/libarchive-3.5.2/doc/html/archive_read_free.3.html index d16f30a..2f54cca 100644 --- a/dependencies/libarchive-3.4.2/doc/html/archive_read_free.3.html +++ b/dependencies/libarchive-3.5.2/doc/html/archive_read_free.3.html @@ -1,5 +1,5 @@ - - + + diff --git a/dependencies/libarchive-3.4.2/doc/html/archive_read_header.3.html b/dependencies/libarchive-3.5.2/doc/html/archive_read_header.3.html similarity index 97% rename from dependencies/libarchive-3.4.2/doc/html/archive_read_header.3.html rename to dependencies/libarchive-3.5.2/doc/html/archive_read_header.3.html index a1a0dd4..e6711d6 100644 --- a/dependencies/libarchive-3.4.2/doc/html/archive_read_header.3.html +++ b/dependencies/libarchive-3.5.2/doc/html/archive_read_header.3.html @@ -1,5 +1,5 @@ - - + + diff --git a/dependencies/libarchive-3.4.2/doc/html/archive_read_new.3.html b/dependencies/libarchive-3.5.2/doc/html/archive_read_new.3.html similarity index 95% rename from dependencies/libarchive-3.4.2/doc/html/archive_read_new.3.html rename to dependencies/libarchive-3.5.2/doc/html/archive_read_new.3.html index 6841a05..3cd3b64 100644 --- a/dependencies/libarchive-3.4.2/doc/html/archive_read_new.3.html +++ b/dependencies/libarchive-3.5.2/doc/html/archive_read_new.3.html @@ -1,5 +1,5 @@ - - + + diff --git a/dependencies/libarchive-3.4.2/doc/html/archive_read_open.3.html b/dependencies/libarchive-3.5.2/doc/html/archive_read_open.3.html similarity index 98% rename from dependencies/libarchive-3.4.2/doc/html/archive_read_open.3.html rename to dependencies/libarchive-3.5.2/doc/html/archive_read_open.3.html index 25ade61..0ed14df 100644 --- a/dependencies/libarchive-3.4.2/doc/html/archive_read_open.3.html +++ b/dependencies/libarchive-3.5.2/doc/html/archive_read_open.3.html @@ -1,5 +1,5 @@ - - + + diff --git a/dependencies/libarchive-3.4.2/doc/html/archive_read_set_options.3.html b/dependencies/libarchive-3.5.2/doc/html/archive_read_set_options.3.html similarity index 92% rename from dependencies/libarchive-3.4.2/doc/html/archive_read_set_options.3.html rename to dependencies/libarchive-3.5.2/doc/html/archive_read_set_options.3.html index 861fb2c..ce14464 100644 --- a/dependencies/libarchive-3.4.2/doc/html/archive_read_set_options.3.html +++ b/dependencies/libarchive-3.5.2/doc/html/archive_read_set_options.3.html @@ -1,5 +1,5 @@ - - + + @@ -142,7 +142,7 @@ option with this name will ignore it.

The option will be provided to every module with a value of -’’1’’.

+“1”.

!option

@@ -165,12 +165,26 @@ character set name that will be used when translating file names.

Format cpio
-hdrcharset

+compat-2x

+ +

Libarchive 2.x incorrectly +encoded Unicode filenames on some platforms. This option +mimics the libarchive 2.x filename handling so that such +archives can be read correctly.

+ +

hdrcharset

The value is used as a character set name that will be used when translating file names.

+

pwb

+ +

When reading a +binary CPIO archive, assume that it is in the original PWB +cpio format, and handle file mode bits accordingly. The +default is to assume v7 format.

+

Format iso9660
joliet

diff --git a/dependencies/libarchive-3.4.2/doc/html/archive_util.3.html b/dependencies/libarchive-3.5.2/doc/html/archive_util.3.html similarity index 92% rename from dependencies/libarchive-3.4.2/doc/html/archive_util.3.html rename to dependencies/libarchive-3.5.2/doc/html/archive_util.3.html index d8701fb..acd2ee7 100644 --- a/dependencies/libarchive-3.4.2/doc/html/archive_util.3.html +++ b/dependencies/libarchive-3.5.2/doc/html/archive_util.3.html @@ -1,5 +1,5 @@ - - + + @@ -253,23 +253,14 @@ This function should be used within I/O callbacks to set system-specific error codes and error descriptions. This function accepts a printf-like format string and arguments. However, you should be careful to use only the following -printf format specifiers: ’’%c’’, -’’%d’’, -’’%jd’’, -’’%jo’’, -’’%ju’’, -’’%jx’’, -’’%ld’’, -’’%lo’’, -’’%lu’’, -’’%lx’’, -’’%o’’, -’’%u’’, -’’%s’’, -’’%x’’, -’’%%’’. Field-width specifiers and -other printf features are not uniformly supported and should -not be used.

+printf format specifiers: “%c”, +“%d”, “%jd”, “%jo”, +“%ju”, “%jx”, “%ld”, +“%lo”, “%lu”, “%lx”, +“%o”, “%u”, “%s”, +“%x”, “%%”. Field-width specifiers +and other printf features are not uniformly supported and +should not be used.

SEE ALSO

diff --git a/dependencies/libarchive-3.4.2/doc/html/archive_write.3.html b/dependencies/libarchive-3.5.2/doc/html/archive_write.3.html similarity index 96% rename from dependencies/libarchive-3.4.2/doc/html/archive_write.3.html rename to dependencies/libarchive-3.5.2/doc/html/archive_write.3.html index ccc5830..9657293 100644 --- a/dependencies/libarchive-3.4.2/doc/html/archive_write.3.html +++ b/dependencies/libarchive-3.5.2/doc/html/archive_write.3.html @@ -1,5 +1,5 @@ - - + + @@ -274,11 +274,11 @@ limitations and provides a generic key/value attribute facility for vendor-defined extensions. One oversight in POSIX is the failure to provide a standard attribute for large device numbers. This library uses -’’SCHILY.devminor’’ and -’’SCHILY.devmajor’’ for device -numbers that exceed the range supported by the -backwards-compatible ustar header. These keys are compatible -with Joerg Schilling’s star archiver. Other +“SCHILY.devminor” and +“SCHILY.devmajor” for device numbers that exceed +the range supported by the backwards-compatible ustar +header. These keys are compatible with Joerg +Schilling’s star archiver. Other implementations may not recognize these keys and will thus be unable to correctly restore device nodes with large device numbers from archives created by this library.

diff --git a/dependencies/libarchive-3.4.2/doc/html/archive_write_blocksize.3.html b/dependencies/libarchive-3.5.2/doc/html/archive_write_blocksize.3.html similarity index 95% rename from dependencies/libarchive-3.4.2/doc/html/archive_write_blocksize.3.html rename to dependencies/libarchive-3.5.2/doc/html/archive_write_blocksize.3.html index 5548a0a..e87406f 100644 --- a/dependencies/libarchive-3.4.2/doc/html/archive_write_blocksize.3.html +++ b/dependencies/libarchive-3.5.2/doc/html/archive_write_blocksize.3.html @@ -1,5 +1,5 @@ - - + + @@ -97,8 +97,8 @@ compression. The uncompressed data is always unpadded. The default is to pad the last block to the full block size (note that archive_write_open_filename() will set this based on the file type). Unlike the other -’’set’’ functions, this function can -be called after the archive is opened.

+“set” functions, this function can be called +after the archive is opened.

archive_write_get_bytes_in_last_block()

diff --git a/dependencies/libarchive-3.4.2/doc/html/archive_write_data.3.html b/dependencies/libarchive-3.5.2/doc/html/archive_write_data.3.html similarity index 97% rename from dependencies/libarchive-3.4.2/doc/html/archive_write_data.3.html rename to dependencies/libarchive-3.5.2/doc/html/archive_write_data.3.html index 9984207..3a6c693 100644 --- a/dependencies/libarchive-3.4.2/doc/html/archive_write_data.3.html +++ b/dependencies/libarchive-3.5.2/doc/html/archive_write_data.3.html @@ -1,5 +1,5 @@ - - + + diff --git a/dependencies/libarchive-3.4.2/doc/html/archive_write_disk.3.html b/dependencies/libarchive-3.5.2/doc/html/archive_write_disk.3.html similarity index 97% rename from dependencies/libarchive-3.4.2/doc/html/archive_write_disk.3.html rename to dependencies/libarchive-3.5.2/doc/html/archive_write_disk.3.html index 6936137..9d8aaad 100644 --- a/dependencies/libarchive-3.4.2/doc/html/archive_write_disk.3.html +++ b/dependencies/libarchive-3.5.2/doc/html/archive_write_disk.3.html @@ -1,5 +1,5 @@ - - + + @@ -358,12 +358,11 @@ of the final object happen to match those specified in the entry.

The -’’standard’’ user-id and group-id -lookup functions are not the defaults because getgrnam(3) -and getpwnam(3) are sometimes too large for particular -applications. The current design allows the application -author to use a more compact implementation when -appropriate.

+“standard” user-id and group-id lookup functions +are not the defaults because getgrnam(3) and getpwnam(3) are +sometimes too large for particular applications. The current +design allows the application author to use a more compact +implementation when appropriate.

There should be a corresponding archive_read_disk interface that diff --git a/dependencies/libarchive-3.4.2/doc/html/archive_write_filter.3.html b/dependencies/libarchive-3.5.2/doc/html/archive_write_filter.3.html similarity index 98% rename from dependencies/libarchive-3.4.2/doc/html/archive_write_filter.3.html rename to dependencies/libarchive-3.5.2/doc/html/archive_write_filter.3.html index 9444515..a1b24ef 100644 --- a/dependencies/libarchive-3.4.2/doc/html/archive_write_filter.3.html +++ b/dependencies/libarchive-3.5.2/doc/html/archive_write_filter.3.html @@ -1,5 +1,5 @@ - - + + diff --git a/dependencies/libarchive-3.4.2/doc/html/archive_write_finish_entry.3.html b/dependencies/libarchive-3.5.2/doc/html/archive_write_finish_entry.3.html similarity index 96% rename from dependencies/libarchive-3.4.2/doc/html/archive_write_finish_entry.3.html rename to dependencies/libarchive-3.5.2/doc/html/archive_write_finish_entry.3.html index c3b6eda..843e0b0 100644 --- a/dependencies/libarchive-3.4.2/doc/html/archive_write_finish_entry.3.html +++ b/dependencies/libarchive-3.5.2/doc/html/archive_write_finish_entry.3.html @@ -1,5 +1,5 @@ - - + + diff --git a/dependencies/libarchive-3.4.2/doc/html/archive_write_format.3.html b/dependencies/libarchive-3.5.2/doc/html/archive_write_format.3.html similarity index 90% rename from dependencies/libarchive-3.4.2/doc/html/archive_write_format.3.html rename to dependencies/libarchive-3.5.2/doc/html/archive_write_format.3.html index fbdff7b..50f5bd1 100644 --- a/dependencies/libarchive-3.4.2/doc/html/archive_write_format.3.html +++ b/dependencies/libarchive-3.5.2/doc/html/archive_write_format.3.html @@ -1,5 +1,5 @@ - - + + @@ -33,7 +33,10 @@ ARCHIVE_WRITE_FORMAT(3)

archive_write_set_format_ar_svr4, archive_write_set_format_by_name, archive_write_set_format_cpio, +archive_write_set_format_cpio_bin, archive_write_set_format_cpio_newc, +archive_write_set_format_cpio_odc, +archive_write_set_format_cpio_pwb, archive_write_set_format_filter_by_ext, archive_write_set_format_filter_by_ext_def, archive_write_set_format_gnutar, @@ -103,11 +106,26 @@ creating archives

int

+

archive_write_set_format_cpio_bin(struct archive *);

+ +

int

+ +

archive_write_set_format_cpio_newc(struct archive *);

int

+

archive_write_set_format_cpio_odc(struct archive *);

+ +

int

+ + +

archive_write_set_format_cpio_pwb(struct archive *);

+ +

int

+ +

archive_write_set_format_filter_by_ext(struct archive *, const char *filename);

@@ -207,7 +225,7 @@ archive with the same format as an existing archive.

based on the common name.

-

archive_write_set_format_filter_by_ext(), +

archive_write_set_format_filter_by_ext() archive_write_set_format_filter_by_ext_def()

Sets both filters and format @@ -217,10 +235,13 @@ based on the output filename. Supported extensions: .7z,

archive_write_set_format_7zip() -archive_write_set_format_ar_bsd(), -archive_write_set_format_ar_svr4(), +archive_write_set_format_ar_bsd() +archive_write_set_format_ar_svr4() archive_write_set_format_cpio() +archive_write_set_format_cpio_bin() archive_write_set_format_cpio_newc() +archive_write_set_format_cpio_odc() +archive_write_set_format_cpio_pwb() archive_write_set_format_gnutar() archive_write_set_format_iso9660() archive_write_set_format_mtree() diff --git a/dependencies/libarchive-3.4.2/doc/html/archive_write_free.3.html b/dependencies/libarchive-3.5.2/doc/html/archive_write_free.3.html similarity index 97% rename from dependencies/libarchive-3.4.2/doc/html/archive_write_free.3.html rename to dependencies/libarchive-3.5.2/doc/html/archive_write_free.3.html index d0535ad..e3c2621 100644 --- a/dependencies/libarchive-3.4.2/doc/html/archive_write_free.3.html +++ b/dependencies/libarchive-3.5.2/doc/html/archive_write_free.3.html @@ -1,5 +1,5 @@ - - + + diff --git a/dependencies/libarchive-3.4.2/doc/html/archive_write_header.3.html b/dependencies/libarchive-3.5.2/doc/html/archive_write_header.3.html similarity index 96% rename from dependencies/libarchive-3.4.2/doc/html/archive_write_header.3.html rename to dependencies/libarchive-3.5.2/doc/html/archive_write_header.3.html index 1a857e5..9195154 100644 --- a/dependencies/libarchive-3.4.2/doc/html/archive_write_header.3.html +++ b/dependencies/libarchive-3.5.2/doc/html/archive_write_header.3.html @@ -1,5 +1,5 @@ - - + + diff --git a/dependencies/libarchive-3.4.2/doc/html/archive_write_new.3.html b/dependencies/libarchive-3.5.2/doc/html/archive_write_new.3.html similarity index 95% rename from dependencies/libarchive-3.4.2/doc/html/archive_write_new.3.html rename to dependencies/libarchive-3.5.2/doc/html/archive_write_new.3.html index 9abd63e..c02916f 100644 --- a/dependencies/libarchive-3.4.2/doc/html/archive_write_new.3.html +++ b/dependencies/libarchive-3.5.2/doc/html/archive_write_new.3.html @@ -1,5 +1,5 @@ - - + + diff --git a/dependencies/libarchive-3.4.2/doc/html/archive_write_open.3.html b/dependencies/libarchive-3.5.2/doc/html/archive_write_open.3.html similarity index 83% rename from dependencies/libarchive-3.4.2/doc/html/archive_write_open.3.html rename to dependencies/libarchive-3.5.2/doc/html/archive_write_open.3.html index 4042853..01f3603 100644 --- a/dependencies/libarchive-3.4.2/doc/html/archive_write_open.3.html +++ b/dependencies/libarchive-3.5.2/doc/html/archive_write_open.3.html @@ -1,5 +1,5 @@ - - + + @@ -26,7 +26,7 @@ ARCHIVE_WRITE_OPEN(3)

NAME

archive_write_open, -archive_write_open_fd, +archive_write_open2, archive_write_open_fd, archive_write_open_FILE, archive_write_open_filename, archive_write_open_memory — functions for @@ -54,6 +54,16 @@ creating archives

int

+

archive_write_open2(struct archive *, +void *client_data, +archive_open_callback *, +archive_write_callback *, +archive_close_callback *, +archive_free_callback *);

+ +

int

+ +

archive_write_open_fd(struct archive *, int fd);

@@ -87,6 +97,14 @@ compression layer to write the constructed archive. This does not alter the default archive padding.

+

archive_write_open2()

+ +

Same as +archive_write_open() with an additional fourth free +callback. This function should be preferred to +archive_write_open().

+ +

archive_write_open_fd()

A convenience form of @@ -115,9 +133,8 @@ require correct blocking.

A convenience form of archive_write_open() that accepts a filename. A NULL argument indicates that the output should be written to -standard output; an argument of -’’-’’ will open a file with that -name. If you have not invoked +standard output; an argument of “-” will open a +file with that name. If you have not invoked archive_write_set_bytes_in_last_block(), then archive_write_open_filename() will adjust the last-block padding depending on the file: it will enable @@ -125,7 +142,7 @@ padding when writing to standard output or to a character or block device node, it will disable padding otherwise. You can override this by manually invoking archive_write_set_bytes_in_last_block() before -calling archive_write_open(). The +calling archive_write_open2(). The archive_write_open_filename() function is safe for use with tape drives or other block-oriented devices.

@@ -133,7 +150,7 @@ use with tape drives or other block-oriented devices.

archive_write_open_memory()

A convenience form of -archive_write_open() that accepts a pointer to a +archive_write_open2() that accepts a pointer to a block of memory that will receive the archive. The final size_t * argument points to a variable that will be updated after each write to reflect how much of the buffer @@ -158,7 +175,7 @@ behavior.

need to define and register callback functions that will be invoked to write data to the resulting archive. These functions are registered by calling -archive_write_open():

+archive_write_open2():

typedef int archive_open_callback(struct archive @@ -169,7 +186,10 @@ callback is invoked by archive_write_open(). It should return ARCHIVE_OK if the underlying file or data source is successfully opened. If the open fails, it should call archive_set_error() to register an error -code and message and return ARCHIVE_FATAL.

+code and message and return ARCHIVE_FATAL. Please +note that if open fails, close is not called and resources +must be freed inside the open callback or with the free +callback.

typedef la_ssize_t

@@ -197,10 +217,19 @@ int
archive_close_callback(struct archive

The close callback is invoked by archive_close when the archive -processing is complete. The callback should return +processing is complete. If the open callback fails, the +close callback is not invoked. The callback should return ARCHIVE_OK on success. On failure, the callback should invoke archive_set_error() to register an -error code and message and return ARCHIVE_FATAL.

+error code and message and return

+ +

typedef +int archive_free_callback(struct archive +*, void *client_data)

+ +

The free +callback is always invoked on archive_free. The return code +of this callback is not processed.

Note that if the client-provided write callback function returns a non-zero @@ -234,7 +263,7 @@ archive_write_set_options(3), libarchive(3), cpio(5), mtree(5), tar(5)

BSD -February 2, 2012 BSD

+November 12, 2020 BSD


diff --git a/dependencies/libarchive-3.4.2/doc/html/archive_write_set_options.3.html b/dependencies/libarchive-3.5.2/doc/html/archive_write_set_options.3.html similarity index 91% rename from dependencies/libarchive-3.4.2/doc/html/archive_write_set_options.3.html rename to dependencies/libarchive-3.5.2/doc/html/archive_write_set_options.3.html index e000e25..1c23d5e 100644 --- a/dependencies/libarchive-3.4.2/doc/html/archive_write_set_options.3.html +++ b/dependencies/libarchive-3.5.2/doc/html/archive_write_set_options.3.html @@ -1,5 +1,5 @@ - - + + @@ -138,7 +138,7 @@ option with this name will ignore it.

The option will be provided to every module with a value of -’’1’’.

+“1”.

!option

@@ -187,11 +187,9 @@ enabled by default.

compression
=type

Use type as compression -method. Supported values are -’’bzip2’’, -’’gzipi’’, -’’lzo’’ (ultra fast), and -’’zpaq’’ (best, extremely slow).

+method. Supported values are “bzip2”, +“gzipi”, “lzo” (ultra fast), and +“zpaq” (best, extremely slow).

compression-level

@@ -265,19 +263,17 @@ compression-level

The value is interpreted as a decimal integer specifying the compression level. Supported -values are from 1 to 22.

+values depend on the library version, common values are from +1 to 22.

Format 7zip
compression

The value is one of -’’store’’, -’’deflate’’, -’’bzip2’’, -’’lzma1’’, -’’lzma2’’ or -’’ppmd’’ to indicate how the -following entries should be compressed. Note that this +“store”, “deflate”, +“bzip2”, “lzma1”, +“lzma2” or “ppmd” to indicate how +the following entries should be compressed. Note that this setting is ignored for directories, symbolic links, and other special entries.

@@ -289,7 +285,7 @@ between 0 and 9 are supported. The interpretation of the compression level depends on the chosen compression method.

-

Format cpio
+

Format bin
hdrcharset

The value is used as a @@ -598,8 +594,8 @@ cksum, device, flags, gid,

Enable a particular keyword in the mtree output. Prefix with an exclamation mark to disable the corresponding keyword. The default is equivalent to -’’device, flags, gid, gname, link, mode, nlink, -size, time, type, uid, uname’’.

+“device, flags, gid, gname, link, mode, nlink, size, +time, type, uid, uname”.

all

@@ -624,29 +620,38 @@ hdrcharset

character set name that will be used when translating file names.

+

Format odc
+hdrcharset

+ +

The value is used as a +character set name that will be used when translating file +names.

+ +

Format pwb
+hdrcharset

+ +

The value is used as a +character set name that will be used when translating file +names.

+

Format pax
hdrcharset

The value is used as a character set name that will be used when translating file, group and user names. The value is one of -’’BINARY’’ or -’’UTF-8’’. With -’’BINARY’’ there is no character -conversion, with ’’UTF-8’’ names are -converted to UTF-8.

+“BINARY” or “UTF-8”. With +“BINARY” there is no character conversion, with +“UTF-8” names are converted to UTF-8.

xattrheader

When storing extended attributes, this option configures which headers should be -written. The value is one of -’’all’’, -’’LIBARCHIVE’’, or -’’SCHILY’’. By default, both -’’LIBARCHIVE.xattr’’ and -’’SCHILY.xattr’’ headers are -written.

+written. The value is one of “all”, +“LIBARCHIVE”, or “SCHILY”. By +default, both “LIBARCHIVE.xattr” and +“SCHILY.xattr” headers are written.

Format ustar
hdrcharset

@@ -665,28 +670,22 @@ group and user names.

Format warc
omit-warcinfo

-

Set to -’’true’’ to disable output of the -warcinfo record.

+

Set to “true” to +disable output of the warcinfo record.

Format xar
checksum
=type

Use type as file -checksum method. Supported values are -’’none’’, -’’md5’’, and -’’sha1’’ (default).

+checksum method. Supported values are “none”, +“md5”, and “sha1” (default).

compression=type

Use type as compression -method. Supported values are -’’none’’, -’’bzip2’’, -’’gzip’’ (default), -’’lzma’’ and -’’xz’’.

+method. Supported values are “none”, +“bzip2”, “gzip” (default), +“lzma” and “xz”.

compression_level

@@ -697,17 +696,15 @@ from 1 to 9 specifying the compression level.

Use type as table of contents checksum method. Supported values are -’’none’’, -’’md5’’ and -’’sha1’’ (default).

+“none”, “md5” and “sha1” +(default).

Format zip
compression

The value is either -’’store’’ or -’’deflate’’ to indicate how the -following entries should be compressed. Note that this +“store” or “deflate” to indicate how +the following entries should be compressed. Note that this setting is ignored for directories, symbolic links, and other special entries.

@@ -716,10 +713,9 @@ other special entries.

The value is interpreted as a decimal integer specifying the compression level. Values between 0 and 9 are supported. A compression level of 0 -switches the compression method to -’’store’’, other values will enable -’’deflate’’ compression with the -given level.

+switches the compression method to “store”, +other values will enable “deflate” compression +with the given level.

encryption

@@ -729,11 +725,10 @@ traditional zip encryption.

encryption=type

Use type as encryption -type. Supported values are -’’zipcrypt’’ (traditional zip -encryption), ’’aes128’’ (WinZip -AES-128 encryption) and ’’aes256’’ -(WinZip AES-256 encryption).

+type. Supported values are “zipcrypt” +(traditional zip encryption), “aes128” (WinZip +AES-128 encryption) and “aes256” (WinZip AES-256 +encryption).

experimental

diff --git a/dependencies/libarchive-3.4.2/doc/html/archive_write_set_passphrase.3.html b/dependencies/libarchive-3.5.2/doc/html/archive_write_set_passphrase.3.html similarity index 96% rename from dependencies/libarchive-3.4.2/doc/html/archive_write_set_passphrase.3.html rename to dependencies/libarchive-3.5.2/doc/html/archive_write_set_passphrase.3.html index f8c765b..30734c9 100644 --- a/dependencies/libarchive-3.4.2/doc/html/archive_write_set_passphrase.3.html +++ b/dependencies/libarchive-3.5.2/doc/html/archive_write_set_passphrase.3.html @@ -1,5 +1,5 @@ - - + + diff --git a/dependencies/libarchive-3.4.2/doc/html/bsdcpio.1.html b/dependencies/libarchive-3.5.2/doc/html/bsdcpio.1.html similarity index 93% rename from dependencies/libarchive-3.4.2/doc/html/bsdcpio.1.html rename to dependencies/libarchive-3.5.2/doc/html/bsdcpio.1.html index 862e8fe..d68897c 100644 --- a/dependencies/libarchive-3.4.2/doc/html/bsdcpio.1.html +++ b/dependencies/libarchive-3.5.2/doc/html/bsdcpio.1.html @@ -1,5 +1,5 @@ - - + + @@ -81,6 +81,18 @@ modes.

characters instead of newlines. This is necessary if any of the filenames being read might contain newlines.

+

-6, --pwb

+ +

When reading a binary format +archive, assume it’s the earlier one, from the PWB +variant of 6th Edition UNIX. When writing a cpio archive, +use the PWB format.

+ +

-7, --binary

+ +

(o mode only) When writing a +cpio archive, use the (newer, non-PWB) binary format.

+

-A

(o mode only) @@ -430,10 +442,9 @@ pattern:

This example copies files from src to dest that are more -than 2 days old and which contain the word -’’

+than 2 days old and which contain the word “

-

foobar ’’:

+

foobar ”:

find src -mtime +2 | xargs grep -l foobar | @@ -467,14 +478,12 @@ libarchive-formats(5), tar(5)

There is no current POSIX standard for the cpio command; it appeared in ISO/IEC -9945-1:1996 (’’POSIX.1’’) but was -dropped from IEEE Std 1003.1-2001 -(’’POSIX.1’’).

+9945-1:1996 (“POSIX.1”) but was dropped from +IEEE Std 1003.1-2001 (“POSIX.1”).

The cpio, ustar, and pax interchange file formats are defined by IEEE Std -1003.1-2001 (’’POSIX.1’’) for the -pax command.

+1003.1-2001 (“POSIX.1”) for the pax command.

HISTORY

@@ -482,12 +491,12 @@ pax command.

find utilities were written by Dick Haight while working in AT&T’s Unix Support Group. They first appeared in 1977 in PWB/UNIX 1.0, the -’’Programmer’s Work Bench’’ -system developed for use within AT&T. They were first -released outside of AT&T as part of System III Unix in -1981. As a result, cpio actually predates tar, -even though it was not well-known outside of AT&T until -some time later.

+“Programmer’s Work Bench” system developed +for use within AT&T. They were first released outside of +AT&T as part of System III Unix in 1981. As a result, +cpio actually predates tar, even though it was +not well-known outside of AT&T until some time +later.

This is a complete re-implementation based on the libarchive(3) @@ -502,8 +511,8 @@ to transfer files between systems with dissimilar user and group numbering. Older cpio formats limit the user and group numbers to 16 or 18 bits, which is insufficient for modern systems. The cpio archive formats cannot support files over -4 gigabytes, except for the ’’odc’’ -variant, which can support files up to 8 gigabytes.

+4 gigabytes, except for the “odc” variant, which +can support files up to 8 gigabytes.

BSD September 16, 2014 BSD

diff --git a/dependencies/libarchive-3.4.2/doc/html/bsdtar.1.html b/dependencies/libarchive-3.5.2/doc/html/bsdtar.1.html similarity index 95% rename from dependencies/libarchive-3.4.2/doc/html/bsdtar.1.html rename to dependencies/libarchive-3.5.2/doc/html/bsdtar.1.html index fbcf26a..7ae3e72 100644 --- a/dependencies/libarchive-3.4.2/doc/html/bsdtar.1.html +++ b/dependencies/libarchive-3.5.2/doc/html/bsdtar.1.html @@ -1,5 +1,5 @@ - - + + @@ -32,9 +32,9 @@ tape archives

tar [bundled-flags 

-

args ⟩] [⟨
-file
⟩ | ⟨
-pattern
⟩ ...]

+

args ⟩ ] [⟨
+file
⟩  | ⟨
+pattern
⟩  ...]

tar {-c} [options] @@ -54,10 +54,9 @@ and ISO 9660 cdrom images and can create tar, pax, cpio, ar, zip, 7-zip, and shar archives.

The first -synopsis form shows a ’’bundled’’ -option word. This usage is provided for compatibility with -historical implementations. See COMPATIBILITY below for -details.

+synopsis form shows a “bundled” option word. +This usage is provided for compatibility with historical +implementations. See COMPATIBILITY below for details.

The other synopsis forms show the preferred usage. The first option to @@ -176,9 +175,9 @@ format,

tar -a -jcf archive.tgz source.c source.h

-

ignores the -’’-j’’ option, and creates a new -archive with restricted pax format and gzip compression,

+

ignores the “-j” +option, and creates a new archive with restricted pax format +and gzip compression,

tar -a -jcf archive.xxx source.c source.h

@@ -265,15 +264,13 @@ mode as root.

(c, r, u mode only) Use the specified format for the created archive. Supported formats -include ’’cpio’’, -’’pax’’, -’’shar’’, and -’’ustar’’. Other formats may also be -supported; see libarchive-formats(5) for more information -about currently-supported formats. In r and u modes, when -extending an existing archive, the format specified here -must be compatible with the format of the existing archive -on disk.

+include “cpio”, “pax”, +“shar”, and “ustar”. Other formats +may also be supported; see libarchive-formats(5) for more +information about currently-supported formats. In r and u +modes, when extending an existing archive, the format +specified here must be compatible with the format of the +existing archive on disk.

-f file, --file file

@@ -735,8 +732,9 @@ improve compression ratio.

zstd:compression-level

-

A decimal integer from 1 to 22 -specifying the zstd compression level.

+

A decimal integer specifying +the zstd compression level. Supported values depend on the +library version, common values are from 1 to 22.

lzop:compression-level

@@ -758,8 +756,8 @@ output. Supported keywords include: cksum, nlink, rmd160, sha1, sha256, sha384, sha512, size, time, uid, uname. The default is equivalent to: -’’device, flags, gid, gname, link, mode, nlink, -size, time, type, uid, uname’’.

+“device, flags, gid, gname, link, mode, nlink, size, +time, type, uid, uname”.

mtree:all

@@ -929,13 +927,12 @@ checks.

In x or t mode, tar will read the list of names to be extracted from filename. In c mode, tar will read names to be archived from -filename. The special name -’’-C’’ on a line by itself will -cause the current directory to be changed to the directory -specified on the following line. Names are terminated by -newlines unless --null is specified. Note that ---null also disables the special handling of lines -containing ’’-C’’. Note: If you are +filename. The special name “-C” on a line +by itself will cause the current directory to be changed to +the directory specified on the following line. Names are +terminated by newlines unless --null is specified. +Note that --null also disables the special handling +of lines containing “-C”. Note: If you are generating lists of files using find(1), you probably want to use -n as well.

@@ -1152,10 +1149,9 @@ $ tar -cvf output.tar @input.mtree

The --newer and --newer-mtime switches accept a variety of common date and time specifications, including -’’12 Mar 2005 7:14:29pm’’, -’’2005-03-12 19:14’’, -’’5 minutes ago’’, and -’’19:14 PST May 1’’.

+“12 Mar 2005 7:14:29pm”, “2005-03-12 +19:14”, “5 minutes ago”, and “19:14 +PST May 1”.

The --options argument can be used to control various @@ -1283,18 +1279,16 @@ libarchive-formats(5), tar(5)

There is no current POSIX standard for the tar command; it appeared in ISO/IEC -9945-1:1996 (’’POSIX.1’’) but was -dropped from IEEE Std 1003.1-2001 -(’’POSIX.1’’). The options supported -by this implementation were developed by surveying a number -of existing tar implementations as well as the old POSIX -specification for tar and the current POSIX specification -for pax.

+9945-1:1996 (“POSIX.1”) but was dropped from +IEEE Std 1003.1-2001 (“POSIX.1”). The options +supported by this implementation were developed by surveying +a number of existing tar implementations as well as the old +POSIX specification for tar and the current POSIX +specification for pax.

The ustar and pax interchange file formats are defined by IEEE Std -1003.1-2001 (’’POSIX.1’’) for the -pax command.

+1003.1-2001 (“POSIX.1”) for the pax command.

HISTORY

@@ -1315,9 +1309,9 @@ library. It was first released with FreeBSD 5.4 in May,

BUGS

This program follows ISO/IEC -9945-1:1996 (’’POSIX.1’’) for the -definition of the -l option. Note that GNU tar prior -to version 1.15 treated -l as a synonym for the +9945-1:1996 (“POSIX.1”) for the definition of +the -l option. Note that GNU tar prior to version +1.15 treated -l as a synonym for the --one-file-system option.

The -C diff --git a/dependencies/libarchive-3.4.2/doc/html/cpio.5.html b/dependencies/libarchive-3.5.2/doc/html/cpio.5.html similarity index 50% rename from dependencies/libarchive-3.4.2/doc/html/cpio.5.html rename to dependencies/libarchive-3.5.2/doc/html/cpio.5.html index de28c5c..672be05 100644 --- a/dependencies/libarchive-3.4.2/doc/html/cpio.5.html +++ b/dependencies/libarchive-3.5.2/doc/html/cpio.5.html @@ -1,5 +1,5 @@ - - + + @@ -46,69 +46,47 @@ those integers (binary, octal, or hexadecimal). The header is followed by the pathname of the entry (the length of the pathname is stored in the header) and any file data. The end of the archive is indicated by a special record with the -pathname ’’TRAILER!!!’’.

+pathname “TRAILER!!!”.

PWB format
-XXX Any documentation of the original PWB/UNIX 1.0 format? -XXX

- -

Old Binary -Format
-The old binary cpio format stores numbers as 2-byte -and 4-byte binary values. Each entry begins with a header in -the following format:

+The PWB binary cpio format is the original format, +when cpio was introduced as part of the Programmer’s +Work Bench system, a variant of 6th Edition UNIX. It stores +numbers as 2-byte and 4-byte binary values. Each entry +begins with a header in the following format:

struct -header_old_cpio {
-unsigned short c_magic;
-unsigned short c_dev;
-unsigned short c_ino;
-unsigned short c_mode;
-unsigned short c_uid;
-unsigned short c_gid;
-unsigned short c_nlink;
-unsigned short c_rdev;

+header_pwb_cpio {
+short h_magic;
+short h_dev;
+short h_ino;
+short h_mode;
+short h_uid;
+short h_gid;
+short h_nlink;
+short h_majmin;
+long h_mtime;
+short h_namesize;
+long h_filesize;
+};

- - - - - -
+

The short +fields here are 16-bit integer values, while the long +fields are 32 bit integers. Since PWB UNIX, like the 6th +Edition UNIX it was based on, only ran on PDP-11 computers, +they are in PDP-endian format, which has little-endian +shorts, and big-endian longs. That is, the long integer +whose hexadecimal representation is 0x12345678 would be +stored in four successive bytes as 0x34, 0x12, 0x78, 0x56. +The fields are as follows:

+

h_magic

-

unsigned short c_mtime[2];

-
+

The integer value octal +070707.

-

unsigned short c_namesize;

- - - - - -
- - -

unsigned short c_filesize[2];

- -

};

- -

The unsigned -short fields here are 16-bit integer values; the -unsigned int fields are 32-bit integer values. The -fields are as follows

- -

magic

- -

The integer -value octal 070707. This value can be used to determine -whether this archive is written with little-endian or -big-endian integers.

- -

dev, ino

+

h_dev, h_ino

The device and inode numbers from the disk. These are used by programs that read @@ -117,37 +95,27 @@ the same file. Programs that synthesize cpio archives should be careful to set these to distinct values for each entry.

-

mode

+

h_mode

The mode -specifies both the regular permissions and the file type. It -consists of several bit fields as follows:

+specifies both the regular permissions and the file type, +and it also holds a couple of bits that are irrelevant to +the cpio format, because the field is actually a raw copy of +the mode field in the inode representing the file. These are +the IALLOC flag, which shows that the inode entry is in use, +and the ILARG flag, which shows that the file it represents +is large enough to have indirect blocks pointers in the +inode. The mode is decoded as follows:

-

0170000

+

0100000

-

This masks the -file type bits.

- -

0140000

- -

File type value -for sockets.

- -

0120000

- -

File type value -for symbolic links. For symbolic links, the link body is -stored as file data.

- -

0100000

- -

File type value -for regular files.

+

IALLOC flag - +irrelevant to cpio.

0060000

-

File type value -for block special devices.

+

This masks the +file type bits.

0040000

@@ -159,10 +127,15 @@ for directories.

File type value for character special devices.

-

0010000

+

0060000

File type value -for named pipes or FIFOs.

+for block special devices.

+ +

0010000

+ +

ILARG flag - +irrelevant to cpio.

0004000

@@ -174,9 +147,7 @@ for named pipes or FIFOs.

0001000

-

Sticky bit. On -some systems, this modifies the behavior of executables -and/or directories.

+

Sticky bit.

0000777

@@ -184,68 +155,166 @@ and/or directories.

bits specify read/write/execute permissions for world, group, and user following standard POSIX conventions.

-

uid, gid

+

h_uid, h_gid

The numeric user id and group id of the owner.

-

nlink

+

h_nlink

-

The number of -links to this file. Directories always have a value of at -least two here. Note that hardlinked files include file data -with every copy in the archive.

+

The number of links to this +file. Directories always have a value of at least two here. +Note that hardlinked files include file data with every copy +in the archive.

-

rdev

+

h_majmin

-

For block -special and character special entries, this field contains -the associated device number. For all other entry types, it +

For block special and character +special entries, this field contains the associated device +number, with the major number in the high byte, and the +minor number in the low byte. For all other entry types, it should be set to zero by writers and ignored by readers.

-

mtime

+

h_mtime

-

Modification -time of the file, indicated as the number of seconds since -the start of the epoch, 00:00:00 UTC January 1, 1970. The -four-byte integer is stored with the most-significant 16 -bits first followed by the least-significant 16 bits. Each -of the two 16 bit values are stored in machine-native byte -order.

+

Modification time of the file, +indicated as the number of seconds since the start of the +epoch, 00:00:00 UTC January 1, 1970.

-

namesize

+

h_namesize

The number of bytes in the pathname that follows the header. This count includes the trailing NUL byte.

-

filesize

+

h_filesize

The size of the file. Note that -this archive format is limited to four gigabyte file sizes. -See mtime above for a description of the storage of -four-byte integers.

+this archive format is limited to 16 megabyte file sizes, +because PWB UNIX, like 6th Edition, only used an unsigned 24 +bit integer for the file size internally.

The pathname -immediately follows the fixed header. If the namesize +immediately follows the fixed header. If h_namesize is odd, an additional NUL byte is added after the pathname. -The file data is then appended, padded with NUL bytes to an -even length.

+The file data is then appended, again with an additional NUL +appended if needed to get the next header at an even +offset.

Hardlinked files are not given special treatment; the full file contents are included with each copy of the file.

+

New Binary +Format
+The new binary cpio format showed up when cpio was +adopted into late 7th Edition UNIX. It is exactly like the +PWB binary format, described above, except for three +changes:

+ +

First, UNIX now +ran on more than one hardware type, so the endianness of 16 +bit integers must be determined by observing the magic +number at the start of the header. The 32 bit integers are +still always stored with the most significant word first, +though, so each of those two, in the struct shown above, was +stored as an array of two 16 bit integers, in the +traditional order. Those 16 bit integers, like all the +others in the struct, were accessed using a macro that byte +swapped them if necessary.

+ +

Next, 7th +Edition had more file types to store, and the IALLOC and +ILARG flag bits were re-purposed to accommodate these. The +revised use of the various bits is as follows:

+ +

0170000

+ +

This masks the +file type bits.

+ +

0140000

+ +

File type value +for sockets.

+ +

0120000

+ +

File type value +for symbolic links. For symbolic links, the link body is +stored as file data.

+ +

0100000

+ +

File type value +for regular files.

+ +

0060000

+ +

File type value +for block special devices.

+ +

0040000

+ +

File type value +for directories.

+ +

0020000

+ +

File type value +for character special devices.

+ +

0010000

+ +

File type value +for named pipes or FIFOs.

+ +

0004000

+ +

SUID bit.

+ +

0002000

+ +

SGID bit.

+ +

0001000

+ +

Sticky bit.

+ +

0000777

+ +

The lower 9 +bits specify read/write/execute permissions for world, +group, and user following standard POSIX conventions.

+ +

Finally, the +file size field now represents a signed 32 bit integer in +the underlying file system, so the maximum file size has +increased to 2 gigabytes.

+ +

Note that there +is no obvious way to tell which of the two binary formats an +archive uses, other than to see which one makes more sense. +The typical error scenario is that a PWB format archive +unpacked as if it were in the new format will create named +sockets instead of directories, and then fail to unpack +files that should go in those directories. Running +bsdcpio -itv on an unknown archive will make it +obvious which it is: if it’s PWB format, directories +will be listed with an ’s’ instead of a +’d’ as the first character of the mode string, +and the larger files will have a ’?’ in that +position.

+

Portable ASCII Format
Version 2 of the Single UNIX Specification -(’’SUSv2’’) standardized an ASCII -variant that is portable across all platforms. It is -commonly known as the ’’old -character’’ format or as the -’’odc’’ format. It stores the same -numeric fields as the old binary format, but represents them -as 6-character or 11-character octal values.

+(“SUSv2”) standardized an ASCII variant that is +portable across all platforms. It is commonly known as the +“old character” format or as the +“odc” format. It stores the same numeric fields +as the old binary format, but represents them as 6-character +or 11-character octal values.

struct cpio_odc_header {
@@ -263,10 +332,10 @@ char c_filesize[11];
};

The fields are -identical to those in the old binary format. The name and -file body follow the fixed header. Unlike the old binary -format, there is no additional padding after the pathname or -file contents. If the files being archived are themselves +identical to those in the new binary format. The name and +file body follow the fixed header. Unlike the binary +formats, there is no additional padding after the pathname +or file contents. If the files being archived are themselves entirely ASCII, then the resulting archive will be entirely ASCII, except for the NUL byte that terminates the name field.

@@ -297,12 +366,12 @@ char c_check[8];

Except as specified below, the fields here match those specified for -the old binary format above.

+the new binary format above.

magic

The string -’’070701’’.

+“070701”.

check

@@ -319,18 +388,18 @@ ASCII format, which supports 8 gigabyte files).

In this format, hardlinked files are handled by setting the filesize to zero -for each entry except the last one that appears in the +for each entry except the first one that appears in the archive.

New CRC Format
The CRC format is identical to the new ASCII format described in the previous section except that the magic -field is set to ’’070702’’ and the -check field is set to the sum of all bytes in the -file data. This sum is computed treating all bytes as -unsigned values and using unsigned arithmetic. Only the -least-significant 32 bits of the sum are stored.

+field is set to “070702” and the check +field is set to the sum of all bytes in the file data. This +sum is computed treating all bytes as unsigned values and +using unsigned arithmetic. Only the least-significant 32 +bits of the sum are stored.

HP variants
@@ -355,39 +424,37 @@ XXX

The cpio utility is no longer a part of POSIX or the Single Unix Standard. It last appeared in Version 2 of the Single UNIX Specification -(’’SUSv2’’). It has been supplanted -in subsequent standards by pax(1). The portable ASCII format -is currently part of the specification for the pax(1) -utility.

+(“SUSv2”). It has been supplanted in subsequent +standards by pax(1). The portable ASCII format is currently +part of the specification for the pax(1) utility.

HISTORY

The original cpio utility was written by Dick Haight while working in AT&T’s Unix Support Group. It appeared in 1977 as part of PWB/UNIX -1.0, the ’’Programmer’s Work -Bench’’ derived from Version 6 AT&T -UNIX that was used internally at AT&T. Both the old -binary and old character formats were in use by 1980, -according to the System III source released by SCO under -their ’’Ancient Unix’’ license. The -character format was adopted as part of IEEE Std 1003.1-1988 -(’’POSIX.1’’). XXX when did +1.0, the “Programmer’s Work Bench” derived +from AT&T UNIX 6th Edition UNIX that was used internally +at AT&T. Both the new binary and old character formats +were in use by 1980, according to the System III source +released by SCO under their “Ancient Unix” +license. The character format was adopted as part of IEEE +Std 1003.1-1988 (“POSIX.1”). XXX when did "newc" appear? Who invented it? When did HP come out with their variant? When did Sun introduce ACLs and extended attributes? XXX

BUGS

-

The -’’CRC’’ format is mis-named, as it -uses a simple checksum and not a cyclic redundancy -check.

+

The “CRC” format is +mis-named, as it uses a simple checksum and not a cyclic +redundancy check.

-

The old binary -format is limited to 16 bits for user id, group id, device, -and inode numbers. It is limited to 4 gigabyte file -sizes.

+

The binary +formats are limited to 16 bits for user id, group id, +device, and inode numbers. They are limited to 16 megabyte +and 2 gigabyte file sizes for the older and newer variants, +respectively.

The old ASCII format is limited to 18 bits for the user id, group id, diff --git a/dependencies/libarchive-3.4.2/doc/html/libarchive-formats.5.html b/dependencies/libarchive-3.5.2/doc/html/libarchive-formats.5.html similarity index 84% rename from dependencies/libarchive-3.4.2/doc/html/libarchive-formats.5.html rename to dependencies/libarchive-3.5.2/doc/html/libarchive-formats.5.html index 345c300..037207b 100644 --- a/dependencies/libarchive-3.4.2/doc/html/libarchive-formats.5.html +++ b/dependencies/libarchive-3.5.2/doc/html/libarchive-formats.5.html @@ -1,5 +1,5 @@ - - + + @@ -34,9 +34,9 @@ library

The libarchive(3) library reads and writes a variety of streaming archive formats. Generally speaking, all of these archive formats consist of a series -of ’’entries’’. Each entry stores a -single file system object, such as a file, directory, or -symbolic link.

+of “entries”. Each entry stores a single file +system object, such as a file, directory, or symbolic +link.

The following provides a brief description of each format supported by @@ -52,10 +52,9 @@ all supported formats.

Tar Formats
The libarchive(3) library can read most tar archives. It can -write POSIX-standard ’’ustar’’ and -’’pax interchange’’ formats as well -as v7 tar format and a subset of the legacy GNU tar -format.

+write POSIX-standard “ustar” and “pax +interchange” formats as well as v7 tar format and a +subset of the legacy GNU tar format.

All tar formats store each entry in one or more 512-byte records. The first @@ -99,11 +98,10 @@ standard are in all lowercase; vendors are allowed to define custom keys by preceding them with the vendor name in all uppercase. When writing pax archives, libarchive uses many of the SCHILY keys defined by Joerg Schilling’s -’’star’’ archiver and a few -LIBARCHIVE keys. The libarchive library can read most of the -SCHILY keys and most of the GNU keys introduced by GNU tar. -It silently ignores any keywords that it does not -understand.

+“star” archiver and a few LIBARCHIVE keys. The +libarchive library can read most of the SCHILY keys and most +of the GNU keys introduced by GNU tar. It silently ignores +any keywords that it does not understand.

The pax interchange format converts filenames to Unicode and stores @@ -241,46 +239,48 @@ extended attribute records written by Solaris tar.

The first tar program appeared in Seventh Edition Unix in 1979. The first official standard for the tar file format was the -’’ustar’’ (Unix Standard Tar) format -defined by POSIX in 1988. POSIX.1-2001 extended the ustar -format to create the ’’pax -interchange’’ format.

+“ustar” (Unix Standard Tar) format defined by +POSIX in 1988. POSIX.1-2001 extended the ustar format to +create the “pax interchange” format.

Cpio Formats
-The libarchive library can read a number of common cpio -variants and can write ’’odc’’ and -’’newc’’ format archives. A cpio -archive stores each entry as a fixed-size header followed by -a variable-length filename and variable-length data. Unlike -the tar format, the cpio format does only minimal padding of -the header or file data. There are several cpio variants, -which differ primarily in how they store the initial header: -some store the values as octal or hexadecimal numbers in -ASCII, others as binary values of varying byte order and -length.

+The libarchive library can read and write a number of common +cpio variants. A cpio archive stores each entry as a +fixed-size header followed by a variable-length filename and +variable-length data. Unlike the tar format, the cpio format +does only minimal padding of the header or file data. There +are several cpio variants, which differ primarily in how +they store the initial header: some store the values as +octal or hexadecimal numbers in ASCII, others as binary +values of varying byte order and length.

binary

The libarchive library transparently reads both big-endian and -little-endian variants of the original binary cpio format. -This format used 32-bit binary values for file size and -mtime, and 16-bit binary values for the other fields.

+little-endian variants of the the two binary cpio formats; +the original one from PWB/UNIX, and the later, more widely +used, variant. This format used 32-bit binary values for +file size and mtime, and 16-bit binary values for the other +fields. The formats support only the file types present in +UNIX at the time of their creation. File sizes are limited +to 24 bits in the PWB format, because of the limits of the +file system, and to 31 bits in the newer binary format, +where signed 32 bit longs were used.

odc

-

The libarchive -library can both read and write this POSIX-standard format, -which is officially known as the ’’cpio -interchange format’’ or the -’’octet-oriented cpio archive -format’’ and sometimes unofficially referred to -as the ’’old character format’’. -This format stores the header contents as octal values in -ASCII. It is standard, portable, and immune from byte-order -confusion. File sizes and mtime are limited to 33 bits (8GB -file size), other fields are limited to 18 bits.

+

This is the +POSIX standardized format, which is officially known as the +“cpio interchange format” or the +“octet-oriented cpio archive format” and +sometimes unofficially referred to as the “old +character format”. This format stores the header +contents as octal values in ASCII. It is standard, portable, +and immune from byte-order confusion. File sizes and mtime +are limited to 33 bits (8GB file size), other fields are +limited to 18 bits.

SVR4/newc

@@ -312,10 +312,10 @@ systems with dissimilar user numbering.

Shar Formats
-A ’’shell archive’’ is a shell -script that, when executed on a POSIX-compliant system, will -recreate a collection of file system objects. The libarchive -library can write two different kinds of shar archives:

+A “shell archive” is a shell script that, when +executed on a POSIX-compliant system, will recreate a +collection of file system objects. The libarchive library +can write two different kinds of shar archives:

shar

@@ -379,15 +379,15 @@ variables.

format
Libarchive can read and write zip format archives that have uncompressed entries and entries compressed with the -’’deflate’’ algorithm. Other zip -compression algorithms are not supported. It can extract jar -archives, archives that use Zip64 extensions and -self-extracting zip archives. Libarchive can use either of -two different strategies for reading Zip archives: a -streaming strategy which is fast and can handle extremely -large archives, and a seeking strategy which can correctly -process self-extracting Zip archives and archives with -deleted members or other in-place modifications.

+“deflate” algorithm. Other zip compression +algorithms are not supported. It can extract jar archives, +archives that use Zip64 extensions and self-extracting zip +archives. Libarchive can use either of two different +strategies for reading Zip archives: a streaming strategy +which is fast and can handle extremely large archives, and a +seeking strategy which can correctly process self-extracting +Zip archives and archives with deleted members or other +in-place modifications.

The streaming reader processes Zip archives as they are read. It can read @@ -468,9 +468,8 @@ Libarchive can read and write 7-Zip format archives. TODO: Need more information

CAB
-Libarchive can read Microsoft Cabinet ( -’’CAB’’) format archives. TODO: Need -more information.

+Libarchive can read Microsoft Cabinet ( “CAB”) +format archives. TODO: Need more information.

LHA
TODO: Information about libarchive’s LHA support

@@ -484,8 +483,8 @@ the RARv3 format. Libarchive can also read self-extracting RAR archives.

Warc
-Libarchive can read and write ’’web -archives’’. TODO: Need more information

+Libarchive can read and write “web archives”. +TODO: Need more information

XAR
Libarchive can read and write the XAR format used by many diff --git a/dependencies/libarchive-3.4.2/doc/html/libarchive.3.html b/dependencies/libarchive-3.5.2/doc/html/libarchive.3.html similarity index 95% rename from dependencies/libarchive-3.4.2/doc/html/libarchive.3.html rename to dependencies/libarchive-3.5.2/doc/html/libarchive.3.html index efaa08a..647e86a 100644 --- a/dependencies/libarchive-3.4.2/doc/html/libarchive.3.html +++ b/dependencies/libarchive-3.5.2/doc/html/libarchive.3.html @@ -1,5 +1,5 @@ - - + + @@ -53,12 +53,12 @@ for:

most variants of the POSIX -’’ustar’’ format,

+“ustar” format,

-

the POSIX ’’pax -interchange’’ format,

+

the POSIX “pax +interchange” format,

@@ -117,17 +117,16 @@ format to use. The library can write

POSIX-standard -’’ustar’’ archives,

+“ustar” archives,

-

POSIX ’’pax -interchange format’’ archives,

+

POSIX “pax interchange +format” archives,

-

POSIX octet-oriented cpio -archives,

+

cpio archives,

diff --git a/dependencies/libarchive-3.4.2/doc/html/libarchive_changes.3.html b/dependencies/libarchive-3.5.2/doc/html/libarchive_changes.3.html similarity index 96% rename from dependencies/libarchive-3.4.2/doc/html/libarchive_changes.3.html rename to dependencies/libarchive-3.5.2/doc/html/libarchive_changes.3.html index a19bff3..0ac6352 100644 --- a/dependencies/libarchive-3.4.2/doc/html/libarchive_changes.3.html +++ b/dependencies/libarchive-3.5.2/doc/html/libarchive_changes.3.html @@ -1,5 +1,5 @@ - - + + @@ -57,13 +57,13 @@ can be easily converted to UTF-8.

Libarchive3 uses the standard iconv library to convert between character sets -and is introducing the notion of a ’’default -character set for the archive’’. To support -this, archive_entry objects can now be bound to a particular -archive when they are created. The automatic character set -conversions performed by archive_entry objects when reading -and writing filenames, usernames, and other strings will now -use an appropriate default character set:

+and is introducing the notion of a “default character +set for the archive”. To support this, archive_entry +objects can now be bound to a particular archive when they +are created. The automatic character set conversions +performed by archive_entry objects when reading and writing +filenames, usernames, and other strings will now use an +appropriate default character set:

If the archive_entry object is bound to an archive, it will use the diff --git a/dependencies/libarchive-3.4.2/doc/html/libarchive_internals.3.html b/dependencies/libarchive-3.5.2/doc/html/libarchive_internals.3.html similarity index 99% rename from dependencies/libarchive-3.4.2/doc/html/libarchive_internals.3.html rename to dependencies/libarchive-3.5.2/doc/html/libarchive_internals.3.html index bff4352..2220bca 100644 --- a/dependencies/libarchive-3.4.2/doc/html/libarchive_internals.3.html +++ b/dependencies/libarchive-3.5.2/doc/html/libarchive_internals.3.html @@ -1,5 +1,5 @@ - - + + diff --git a/dependencies/libarchive-3.4.2/doc/html/mtree.5.html b/dependencies/libarchive-3.5.2/doc/html/mtree.5.html similarity index 94% rename from dependencies/libarchive-3.4.2/doc/html/mtree.5.html rename to dependencies/libarchive-3.5.2/doc/html/mtree.5.html index 1dda8b5..812aba3 100644 --- a/dependencies/libarchive-3.4.2/doc/html/mtree.5.html +++ b/dependencies/libarchive-3.5.2/doc/html/mtree.5.html @@ -1,5 +1,5 @@ - - + + @@ -175,8 +175,8 @@ pathname of a file that holds the contents of this file.

The file flags as a symbolic name. See chflags(1) for information on these names. If no flags are to be set the string -’’none’’ may be used to override the -current default.

+“none” may be used to override the current +default.

gid

@@ -239,9 +239,9 @@ file hierarchy.

resdevice

The -’’resident’’ device number of the -file, e.g. the ID of the device that contains the file. Its -format is the same as the one for device.

+“resident” device number of the file, e.g. the +ID of the device that contains the file. Its format is the +same as the one for device.

ripemd160digest

@@ -261,8 +261,7 @@ the file.

sha1

The FIPS 160-1 -(’’SHA-1’’) message digest of the -file.

+(“SHA-1”) message digest of the file.

sha1digest

@@ -272,8 +271,7 @@ file.

sha256

The FIPS 180-2 -(’’SHA-256’’) message digest of the -file.

+(“SHA-256”) message digest of the file.

sha256digest

@@ -283,8 +281,7 @@ file.

sha384

The FIPS 180-2 -(’’SHA-384’’) message digest of the -file.

+(“SHA-384”) message digest of the file.

sha384digest

@@ -294,8 +291,7 @@ file.

sha512

The FIPS 180-2 -(’’SHA-512’’) message digest of the -file.

+(“SHA-512”) message digest of the file.

sha512digest

@@ -373,8 +369,7 @@ digests were added in FreeBSD 4.0, as new attacks have demonstrated weaknesses in MD5. The SHA-256 digest was added in FreeBSD 6.0. Support for file flags was added in FreeBSD 4.0, and mostly comes from NetBSD. The -’’full’’ entry format was added by -NetBSD.

+“full” entry format was added by NetBSD.

BSD September 4, 2013 BSD

diff --git a/dependencies/libarchive-3.4.2/doc/html/tar.5.html b/dependencies/libarchive-3.5.2/doc/html/tar.5.html similarity index 84% rename from dependencies/libarchive-3.4.2/doc/html/tar.5.html rename to dependencies/libarchive-3.5.2/doc/html/tar.5.html index b3f0f03..d009950 100644 --- a/dependencies/libarchive-3.4.2/doc/html/tar.5.html +++ b/dependencies/libarchive-3.5.2/doc/html/tar.5.html @@ -1,5 +1,5 @@ - - + + @@ -50,16 +50,15 @@ entirely of zero bytes.

compatibility with tape drives that use fixed block sizes, programs that read or write tar files always read or write a fixed number of records with each I/O operation. These -’’blocks’’ are always a multiple of -the record size. The maximum block size supported by early +“blocks” are always a multiple of the record +size. The maximum block size supported by early implementations was 10240 bytes or 20 records. This is still the default for most implementations although block sizes of 1MiB (2048 records) or larger are commonly used with modern -high-speed tape drives. (Note: the terms -’’block’’ and -’’record’’ here are not entirely -standard; this document follows the convention established -by John Gilmore in documenting pdtar.)

+high-speed tape drives. (Note: the terms “block” +and “record” here are not entirely standard; +this document follows the convention established by John +Gilmore in documenting pdtar.)

Old-Style Archive Format
@@ -239,25 +238,25 @@ size and mtime fields must end in a space; the checksum is terminated by a null and a space. Early implementations filled the numeric fields with leading spaces. This seems to have been common practice until the IEEE Std 1003.1-1988 -(’’POSIX.1’’) standard was released. -For best portability, modern implementations should fill the -numeric fields with leading zeros.

+(“POSIX.1”) standard was released. For best +portability, modern implementations should fill the numeric +fields with leading zeros.

Pre-POSIX Archives
An early draft of IEEE Std 1003.1-1988 -(’’POSIX.1’’) served as the basis -for John Gilmore’s pdtar program and many -system implementations from the late 1980s and early 1990s. -These archives generally follow the POSIX ustar format -described below with the following variations:

+(“POSIX.1”) served as the basis for John +Gilmore’s pdtar program and many system +implementations from the late 1980s and early 1990s. These +archives generally follow the POSIX ustar format described +below with the following variations:

The magic value consists of the -five characters ’’ustar’’ followed -by a space. The version field contains a space character -followed by a null.

+five characters “ustar” followed by a space. The +version field contains a space character followed by a +null.

@@ -273,13 +272,13 @@ archives.

POSIX ustar Archives
-IEEE Std 1003.1-1988 (’’POSIX.1’’) -defined a standard tar file format to be read and written by -compliant implementations of tar(1). This format is often -called the ’’ustar’’ format, after -the magic value used in the header. (The name is an acronym -for ’’Unix Standard TAR’’.) It -extends the historic format with new fields:

+IEEE Std 1003.1-1988 (“POSIX.1”) defined a +standard tar file format to be read and written by compliant +implementations of tar(1). This format is often called the +“ustar” format, after the magic value used in +the header. (The name is an acronym for “Unix Standard +TAR”.) It extends the historic format with new +fields:

struct header_posix_ustar {

@@ -432,40 +431,40 @@ header_posix_ustar {

the earlier linkflag field with several new type values:

-

’’0’’

+

“0”

Regular file. NUL should be treated as a synonym, for compatibility purposes.

-

’’1’’

+

“1”

Hard link.

-

’’2’’

+

“2”

Symbolic link.

-

’’3’’

+

“3”

Character device node.

-

’’4’’

+

“4”

Block device node.

-

’’5’’

+

“5”

Directory.

-

’’6’’

+

“6”

FIFO node.

-

’’7’’

+

“7”

Reserved.

@@ -493,16 +492,16 @@ should be set to zero by writers and ignored by readers.

magic

Contains the -magic value ’’ustar’’ followed by a -NUL byte to indicate that this is a POSIX standard archive. -Full compliance requires the uname and gname fields be -properly set.

+magic value “ustar” followed by a NUL byte to +indicate that this is a POSIX standard archive. Full +compliance requires the uname and gname fields be properly +set.

version

Version. This should be -’’00’’ (two copies of the ASCII -digit zero) for POSIX standard archives.

+“00” (two copies of the ASCII digit zero) for +POSIX standard archives.

uname, gname

@@ -589,17 +588,16 @@ implementation.

Interchange Format
There are many attributes that cannot be portably stored in a POSIX ustar archive. IEEE Std 1003.1-2001 -(’’POSIX.1’’) defined a -’’pax interchange format’’ that uses -two new types of entries to hold text-formatted metadata -that applies to following entries. Note that a pax -interchange format archive is a ustar archive in every -respect. The new data is stored in ustar-compatible archive -entries that use the ’’x’’ or -’’g’’ typeflag. In particular, older -implementations that do not fully support these extensions -will extract the metadata into regular files, where the -metadata can be examined as necessary.

+(“POSIX.1”) defined a “pax interchange +format” that uses two new types of entries to hold +text-formatted metadata that applies to following entries. +Note that a pax interchange format archive is a ustar +archive in every respect. The new data is stored in +ustar-compatible archive entries that use the +“x” or “g” typeflag. In particular, +older implementations that do not fully support these +extensions will extract the metadata into regular files, +where the metadata can be examined as necessary.

An entry in a pax interchange format archive consists of one or two @@ -640,17 +638,16 @@ pax extended attributes are assumed to be in UTF-8, including pathnames, user names, and group names. In some cases, it is not possible to translate local conventions into UTF-8. If this key is present and the value is the -six-character ASCII string -’’BINARY’’, then all textual values -are assumed to be in a platform-dependent multi-byte -encoding. Note that there are only two valid values for this -key: ’’BINARY’’ or -’’ISO-IR 10646 2000 UTF-8’’. -No other values are permitted by the standard, and the -latter value should generally not be used as it is the -default when this key is not specified. In particular, this -flag should not be used as a general mechanism to allow -filenames to be stored in arbitrary encodings.

+six-character ASCII string “BINARY”, then all +textual values are assumed to be in a platform-dependent +multi-byte encoding. Note that there are only two valid +values for this key: “BINARY” or +“ISO-IR 10646 2000 UTF-8”. No +other values are permitted by the standard, and the latter +value should generally not be used as it is the default when +this key is not specified. In particular, this flag should +not be used as a general mechanism to allow filenames to be +stored in arbitrary encodings.

uname, uid, gname, gid

@@ -739,8 +736,8 @@ it.

The time when the file was created. (This should not be confused with the POSIX -’’ctime’’ attribute, which refers to -the time when the file metadata was last changed.)

+“ctime” attribute, which refers to the time when +the file metadata was last changed.)

LIBARCHIVE.xattr.namespace.key

@@ -748,13 +745,11 @@ the time when the file metadata was last changed.)

Libarchive stores POSIX.1e-style extended attributes using keys of this form. The key value is URL-encoded: All non-ASCII -characters and the two special characters -’’=’’ and -’’%’’ are encoded as -’’%’’ followed by two uppercase -hexadecimal digits. The value of this key is the extended -attribute value encoded in base 64. XXX Detail the base-64 -format here XXX

+characters and the two special characters “=” +and “%” are encoded as “%” followed +by two uppercase hexadecimal digits. The value of this key +is the extended attribute value encoded in base 64. XXX +Detail the base-64 format here XXX

VENDOR.*

@@ -1137,23 +1132,21 @@ equal to realsize.

They contained a list of files to be renamed or symlinked after extraction; this was originally used to support long names. The contents of this record are a text description of -the operations to be done, in the form ’’Rename -%s to %s\n’’ or ’’Symlink %s to -%s\n’’; in either case, both filenames are -escaped using K&R C syntax. Due to security concerns, -"N" records are now generally ignored when reading -archives.

+the operations to be done, in the form “Rename %s to +%s\n” or “Symlink %s to %s\n”; in either +case, both filenames are escaped using K&R C syntax. Due +to security concerns, "N" records are now +generally ignored when reading archives.

S

This is a -’’sparse’’ regular file. Sparse -files are stored as a series of fragments. The header -contains a list of fragment offset/length pairs. If more -than four such entries are required, the header is extended -as necessary with ’’extra’’ header -extensions (an older format that is no longer used), or -’’sparse’’ extensions.

+“sparse” regular file. Sparse files are stored +as a series of fragments. The header contains a list of +fragment offset/length pairs. If more than four such entries +are required, the header is extended as necessary with +“extra” header extensions (an older format that +is no longer used), or “sparse” extensions.

V

@@ -1164,16 +1157,15 @@ This entry should generally be ignored on extraction.

magic

The magic field -holds the five characters ’’ustar’’ -followed by a space. Note that POSIX ustar archives have a -trailing null.

+holds the five characters “ustar” followed by a +space. Note that POSIX ustar archives have a trailing +null.

version

The version field holds a space character followed by a null. Note that POSIX ustar archives -use two copies of the ASCII digit -’’0’’.

+use two copies of the ASCII digit “0”.

atime, ctime

@@ -1200,10 +1192,10 @@ written to the file at appropriate offsets.

isextended

If this is set to non-zero, the -header will be followed by additional ’’sparse -header’’ records. Each such record contains -information about as many as 21 additional sparse blocks as -shown here:

+header will be followed by additional “sparse +header” records. Each such record contains information +about as many as 21 additional sparse blocks as shown +here:

struct gnu_sparse_header {

@@ -1288,52 +1280,49 @@ interchange format archives when you specify the format closely, using some SCHILY tags and introducing new keywords to store sparse file information. There have been three iterations of the sparse file support, -referred to as ’’0.0’’, -’’0.1’’, and -’’1.0’’.

+referred to as “0.0”, “0.1”, and +“1.0”.

GNU.sparse.numblocks, GNU.sparse.offset, GNU.sparse.numbytes, GNU.sparse.size

-

The -’’0.0’’ format used an initial -GNU.sparse.numblocks attribute to indicate the number -of blocks in the file, a pair of GNU.sparse.offset -and GNU.sparse.numbytes to indicate the offset and -size of each block, and a single GNU.sparse.size to -indicate the full size of the file. This is not the same as -the size in the tar header because the latter value does not -include the size of any holes. This format required that the -order of attributes be preserved and relied on readers -accepting multiple appearances of the same attribute names, -which is not officially permitted by the standards.

+

The “0.0” format +used an initial GNU.sparse.numblocks attribute to +indicate the number of blocks in the file, a pair of +GNU.sparse.offset and GNU.sparse.numbytes to +indicate the offset and size of each block, and a single +GNU.sparse.size to indicate the full size of the +file. This is not the same as the size in the tar header +because the latter value does not include the size of any +holes. This format required that the order of attributes be +preserved and relied on readers accepting multiple +appearances of the same attribute names, which is not +officially permitted by the standards.

GNU.sparse.map

-

The -’’0.1’’ format used a single -attribute that stored a comma-separated list of decimal -numbers. Each pair of numbers indicated the offset and size, -respectively, of a block of data. This does not work well if -the archive is extracted by an archiver that does not -recognize this extension, since many pax implementations -simply discard unrecognized attributes.

+

The “0.1” format +used a single attribute that stored a comma-separated list +of decimal numbers. Each pair of numbers indicated the +offset and size, respectively, of a block of data. This does +not work well if the archive is extracted by an archiver +that does not recognize this extension, since many pax +implementations simply discard unrecognized attributes.

GNU.sparse.major, GNU.sparse.minor, GNU.sparse.name, GNU.sparse.realsize

-

The -’’1.0’’ format stores the sparse -block map in one or more 512-byte blocks prepended to the -file data in the entry body. The pax attributes indicate the -existence of this map (via the GNU.sparse.major and -GNU.sparse.minor fields) and the full size of the -file. The GNU.sparse.name holds the true name of the -file. To avoid confusion, the name stored in the regular tar -header is a modified name so that extraction errors will be -apparent to users.

+

The “1.0” format +stores the sparse block map in one or more 512-byte blocks +prepended to the file data in the entry body. The pax +attributes indicate the existence of this map (via the +GNU.sparse.major and GNU.sparse.minor fields) +and the full size of the file. The GNU.sparse.name +holds the true name of the file. To avoid confusion, the +name stored in the regular tar header is a modified name so +that extraction errors will be apparent to users.

Solaris Tar
@@ -1341,9 +1330,9 @@ XXX More Details Needed XXX

Solaris tar (beginning with SunOS XXX 5.7 ?? XXX) supports an -’’extended’’ format that is -fundamentally similar to pax interchange format, with the -following differences:

+“extended” format that is fundamentally similar +to pax interchange format, with the following +differences:

@@ -1380,17 +1369,17 @@ Tar
The tar distributed with Apple’s Mac OS X stores most regular files as two separate files in the tar archive. The two files have the same name except that the first one has -’’._’’ prepended to the last path -element. This special file stores an AppleDouble-encoded -binary blob with additional metadata about the second file, -including ACL, extended attributes, and resources. To -recreate the original file on disk, each separate file can -be extracted and the Mac OS X copyfile() function can -be used to unpack the separate metadata file and apply it to -th regular file. Conversely, the same function provides a -’’pack’’ option to encode the -extended metadata from a file into a separate file whose -contents can then be put into a tar archive.

+“._” prepended to the last path element. This +special file stores an AppleDouble-encoded binary blob with +additional metadata about the second file, including ACL, +extended attributes, and resources. To recreate the original +file on disk, each separate file can be extracted and the +Mac OS X copyfile() function can be used to unpack +the separate metadata file and apply it to th regular file. +Conversely, the same function provides a “pack” +option to encode the extended metadata from a file into a +separate file whose contents can then be put into a tar +archive.

Note that the Apple extended attributes interact badly with long @@ -1526,11 +1515,11 @@ interchange format per-file extensions.

The tar utility is no longer a part of POSIX or the Single Unix Standard. It last appeared in Version 2 of the Single UNIX Specification -(’’SUSv2’’). It has been supplanted -in subsequent standards by pax(1). The ustar format is -currently part of the specification for the pax(1) utility. -The pax interchange file format is new with IEEE Std -1003.1-2001 (’’POSIX.1’’).

+(“SUSv2”). It has been supplanted in subsequent +standards by pax(1). The ustar format is currently part of +the specification for the pax(1) utility. The pax +interchange file format is new with IEEE Std 1003.1-2001 +(“POSIX.1”).

HISTORY

diff --git a/dependencies/libarchive-3.4.2/doc/man/.ignore_me b/dependencies/libarchive-3.5.2/doc/man/.ignore_me similarity index 100% rename from dependencies/libarchive-3.4.2/doc/man/.ignore_me rename to dependencies/libarchive-3.5.2/doc/man/.ignore_me diff --git a/dependencies/libarchive-3.4.2/doc/man/Makefile b/dependencies/libarchive-3.5.2/doc/man/Makefile similarity index 98% rename from dependencies/libarchive-3.4.2/doc/man/Makefile rename to dependencies/libarchive-3.5.2/doc/man/Makefile index 1d56a6d..82bac3b 100644 --- a/dependencies/libarchive-3.4.2/doc/man/Makefile +++ b/dependencies/libarchive-3.5.2/doc/man/Makefile @@ -107,15 +107,15 @@ archive_write_set_passphrase.3: ../mdoc2man.awk ../../libarchive/archive_write_s cpio.5: ../mdoc2man.awk ../../libarchive/cpio.5 awk -f ../mdoc2man.awk < ../../libarchive/cpio.5 > cpio.5 -libarchive-formats.5: ../mdoc2man.awk ../../libarchive/libarchive-formats.5 - awk -f ../mdoc2man.awk < ../../libarchive/libarchive-formats.5 > libarchive-formats.5 - libarchive.3: ../mdoc2man.awk ../../libarchive/libarchive.3 awk -f ../mdoc2man.awk < ../../libarchive/libarchive.3 > libarchive.3 libarchive_changes.3: ../mdoc2man.awk ../../libarchive/libarchive_changes.3 awk -f ../mdoc2man.awk < ../../libarchive/libarchive_changes.3 > libarchive_changes.3 +libarchive-formats.5: ../mdoc2man.awk ../../libarchive/libarchive-formats.5 + awk -f ../mdoc2man.awk < ../../libarchive/libarchive-formats.5 > libarchive-formats.5 + libarchive_internals.3: ../mdoc2man.awk ../../libarchive/libarchive_internals.3 awk -f ../mdoc2man.awk < ../../libarchive/libarchive_internals.3 > libarchive_internals.3 @@ -130,4 +130,4 @@ bsdtar.1: ../mdoc2man.awk ../../tar/bsdtar.1 bsdcpio.1: ../mdoc2man.awk ../../cpio/bsdcpio.1 awk -f ../mdoc2man.awk < ../../cpio/bsdcpio.1 > bsdcpio.1 -all: archive_entry.3 archive_entry_acl.3 archive_entry_linkify.3 archive_entry_misc.3 archive_entry_paths.3 archive_entry_perms.3 archive_entry_stat.3 archive_entry_time.3 archive_read.3 archive_read_add_passphrase.3 archive_read_data.3 archive_read_disk.3 archive_read_extract.3 archive_read_filter.3 archive_read_format.3 archive_read_free.3 archive_read_header.3 archive_read_new.3 archive_read_open.3 archive_read_set_options.3 archive_util.3 archive_write.3 archive_write_blocksize.3 archive_write_data.3 archive_write_disk.3 archive_write_filter.3 archive_write_finish_entry.3 archive_write_format.3 archive_write_free.3 archive_write_header.3 archive_write_new.3 archive_write_open.3 archive_write_set_options.3 archive_write_set_passphrase.3 cpio.5 libarchive-formats.5 libarchive.3 libarchive_changes.3 libarchive_internals.3 mtree.5 tar.5 bsdtar.1 bsdcpio.1 +all: archive_entry.3 archive_entry_acl.3 archive_entry_linkify.3 archive_entry_misc.3 archive_entry_paths.3 archive_entry_perms.3 archive_entry_stat.3 archive_entry_time.3 archive_read.3 archive_read_add_passphrase.3 archive_read_data.3 archive_read_disk.3 archive_read_extract.3 archive_read_filter.3 archive_read_format.3 archive_read_free.3 archive_read_header.3 archive_read_new.3 archive_read_open.3 archive_read_set_options.3 archive_util.3 archive_write.3 archive_write_blocksize.3 archive_write_data.3 archive_write_disk.3 archive_write_filter.3 archive_write_finish_entry.3 archive_write_format.3 archive_write_free.3 archive_write_header.3 archive_write_new.3 archive_write_open.3 archive_write_set_options.3 archive_write_set_passphrase.3 cpio.5 libarchive.3 libarchive_changes.3 libarchive-formats.5 libarchive_internals.3 mtree.5 tar.5 bsdtar.1 bsdcpio.1 diff --git a/dependencies/libarchive-3.4.2/doc/man/archive_entry.3 b/dependencies/libarchive-3.5.2/doc/man/archive_entry.3 similarity index 100% rename from dependencies/libarchive-3.4.2/doc/man/archive_entry.3 rename to dependencies/libarchive-3.5.2/doc/man/archive_entry.3 diff --git a/dependencies/libarchive-3.4.2/doc/man/archive_entry_acl.3 b/dependencies/libarchive-3.5.2/doc/man/archive_entry_acl.3 similarity index 100% rename from dependencies/libarchive-3.4.2/doc/man/archive_entry_acl.3 rename to dependencies/libarchive-3.5.2/doc/man/archive_entry_acl.3 diff --git a/dependencies/libarchive-3.4.2/doc/man/archive_entry_linkify.3 b/dependencies/libarchive-3.5.2/doc/man/archive_entry_linkify.3 similarity index 100% rename from dependencies/libarchive-3.4.2/doc/man/archive_entry_linkify.3 rename to dependencies/libarchive-3.5.2/doc/man/archive_entry_linkify.3 diff --git a/dependencies/libarchive-3.4.2/doc/man/archive_entry_misc.3 b/dependencies/libarchive-3.5.2/doc/man/archive_entry_misc.3 similarity index 100% rename from dependencies/libarchive-3.4.2/doc/man/archive_entry_misc.3 rename to dependencies/libarchive-3.5.2/doc/man/archive_entry_misc.3 diff --git a/dependencies/libarchive-3.4.2/doc/man/archive_entry_paths.3 b/dependencies/libarchive-3.5.2/doc/man/archive_entry_paths.3 similarity index 100% rename from dependencies/libarchive-3.4.2/doc/man/archive_entry_paths.3 rename to dependencies/libarchive-3.5.2/doc/man/archive_entry_paths.3 diff --git a/dependencies/libarchive-3.4.2/doc/man/archive_entry_perms.3 b/dependencies/libarchive-3.5.2/doc/man/archive_entry_perms.3 similarity index 100% rename from dependencies/libarchive-3.4.2/doc/man/archive_entry_perms.3 rename to dependencies/libarchive-3.5.2/doc/man/archive_entry_perms.3 diff --git a/dependencies/libarchive-3.4.2/doc/man/archive_entry_stat.3 b/dependencies/libarchive-3.5.2/doc/man/archive_entry_stat.3 similarity index 99% rename from dependencies/libarchive-3.4.2/doc/man/archive_entry_stat.3 rename to dependencies/libarchive-3.5.2/doc/man/archive_entry_stat.3 index c4f98a7..b482782 100644 --- a/dependencies/libarchive-3.4.2/doc/man/archive_entry_stat.3 +++ b/dependencies/libarchive-3.5.2/doc/man/archive_entry_stat.3 @@ -260,9 +260,9 @@ and set and unset the size, respectively. .PP The number of references (hardlinks) can be obtained by calling -\fB\%archive_entry_nlinks\fP() +\fB\%archive_entry_nlink\fP() and set with -\fB\%archive_entry_set_nlinks\fP(). +\fB\%archive_entry_set_nlink\fP(). .SS Identifying unique files The functions \fB\%archive_entry_dev\fP() diff --git a/dependencies/libarchive-3.4.2/doc/man/archive_entry_time.3 b/dependencies/libarchive-3.5.2/doc/man/archive_entry_time.3 similarity index 100% rename from dependencies/libarchive-3.4.2/doc/man/archive_entry_time.3 rename to dependencies/libarchive-3.5.2/doc/man/archive_entry_time.3 diff --git a/dependencies/libarchive-3.4.2/doc/man/archive_read.3 b/dependencies/libarchive-3.5.2/doc/man/archive_read.3 similarity index 100% rename from dependencies/libarchive-3.4.2/doc/man/archive_read.3 rename to dependencies/libarchive-3.5.2/doc/man/archive_read.3 diff --git a/dependencies/libarchive-3.4.2/doc/man/archive_read_add_passphrase.3 b/dependencies/libarchive-3.5.2/doc/man/archive_read_add_passphrase.3 similarity index 100% rename from dependencies/libarchive-3.4.2/doc/man/archive_read_add_passphrase.3 rename to dependencies/libarchive-3.5.2/doc/man/archive_read_add_passphrase.3 diff --git a/dependencies/libarchive-3.4.2/doc/man/archive_read_data.3 b/dependencies/libarchive-3.5.2/doc/man/archive_read_data.3 similarity index 100% rename from dependencies/libarchive-3.4.2/doc/man/archive_read_data.3 rename to dependencies/libarchive-3.5.2/doc/man/archive_read_data.3 diff --git a/dependencies/libarchive-3.4.2/doc/man/archive_read_disk.3 b/dependencies/libarchive-3.5.2/doc/man/archive_read_disk.3 similarity index 100% rename from dependencies/libarchive-3.4.2/doc/man/archive_read_disk.3 rename to dependencies/libarchive-3.5.2/doc/man/archive_read_disk.3 diff --git a/dependencies/libarchive-3.4.2/doc/man/archive_read_extract.3 b/dependencies/libarchive-3.5.2/doc/man/archive_read_extract.3 similarity index 100% rename from dependencies/libarchive-3.4.2/doc/man/archive_read_extract.3 rename to dependencies/libarchive-3.5.2/doc/man/archive_read_extract.3 diff --git a/dependencies/libarchive-3.4.2/doc/man/archive_read_filter.3 b/dependencies/libarchive-3.5.2/doc/man/archive_read_filter.3 similarity index 89% rename from dependencies/libarchive-3.4.2/doc/man/archive_read_filter.3 rename to dependencies/libarchive-3.5.2/doc/man/archive_read_filter.3 index 3a12af0..afb2764 100644 --- a/dependencies/libarchive-3.4.2/doc/man/archive_read_filter.3 +++ b/dependencies/libarchive-3.5.2/doc/man/archive_read_filter.3 @@ -1,4 +1,4 @@ -.TH ARCHIVE_READ_FILTER 3 "August 14, 2014" "" +.TH ARCHIVE_READ_FILTER 3 "June 9, 2020" "" .SH NAME .ad l \fB\%archive_read_support_filter_all\fP, @@ -28,6 +28,10 @@ Streaming Archive Library (libarchive, -larchive) .br \fIint\fP .br +\fB\%archive_read_support_filter_by_code\fP(\fI\%struct\ archive\ *\fP, \fI\%int\fP); +.br +\fIint\fP +.br \fB\%archive_read_support_filter_bzip2\fP(\fI\%struct\ archive\ *\fP); .br \fIint\fP @@ -115,6 +119,15 @@ is always enabled by default. \fB\%archive_read_support_filter_all\fP() Enables all available decompression filters. .TP +\fB\%archive_read_support_filter_by_code\fP() +Enables a single filter specified by the filter code. +This function does not work with +\fBARCHIVE_FILTER_PROGRAM\fP. +Note: In statically-linked executables, this will cause +your program to include support for every filter. +If executable size is a concern, you may wish to avoid +using this function. +.TP \fB\%archive_read_support_filter_program\fP() Data is fed through the specified external program before being dearchived. Note that this disables automatic detection of the compression format, diff --git a/dependencies/libarchive-3.4.2/doc/man/archive_read_format.3 b/dependencies/libarchive-3.5.2/doc/man/archive_read_format.3 similarity index 100% rename from dependencies/libarchive-3.4.2/doc/man/archive_read_format.3 rename to dependencies/libarchive-3.5.2/doc/man/archive_read_format.3 diff --git a/dependencies/libarchive-3.4.2/doc/man/archive_read_free.3 b/dependencies/libarchive-3.5.2/doc/man/archive_read_free.3 similarity index 100% rename from dependencies/libarchive-3.4.2/doc/man/archive_read_free.3 rename to dependencies/libarchive-3.5.2/doc/man/archive_read_free.3 diff --git a/dependencies/libarchive-3.4.2/doc/man/archive_read_header.3 b/dependencies/libarchive-3.5.2/doc/man/archive_read_header.3 similarity index 100% rename from dependencies/libarchive-3.4.2/doc/man/archive_read_header.3 rename to dependencies/libarchive-3.5.2/doc/man/archive_read_header.3 diff --git a/dependencies/libarchive-3.4.2/doc/man/archive_read_new.3 b/dependencies/libarchive-3.5.2/doc/man/archive_read_new.3 similarity index 100% rename from dependencies/libarchive-3.4.2/doc/man/archive_read_new.3 rename to dependencies/libarchive-3.5.2/doc/man/archive_read_new.3 diff --git a/dependencies/libarchive-3.4.2/doc/man/archive_read_open.3 b/dependencies/libarchive-3.5.2/doc/man/archive_read_open.3 similarity index 100% rename from dependencies/libarchive-3.4.2/doc/man/archive_read_open.3 rename to dependencies/libarchive-3.5.2/doc/man/archive_read_open.3 diff --git a/dependencies/libarchive-3.4.2/doc/man/archive_read_set_options.3 b/dependencies/libarchive-3.5.2/doc/man/archive_read_set_options.3 similarity index 93% rename from dependencies/libarchive-3.4.2/doc/man/archive_read_set_options.3 rename to dependencies/libarchive-3.5.2/doc/man/archive_read_set_options.3 index a1c321f..01a87c9 100644 --- a/dependencies/libarchive-3.4.2/doc/man/archive_read_set_options.3 +++ b/dependencies/libarchive-3.5.2/doc/man/archive_read_set_options.3 @@ -156,9 +156,20 @@ used when translating file names. Format cpio .RS 5 .TP +\fBcompat-2x\fP +Libarchive 2.x incorrectly encoded Unicode filenames on +some platforms. +This option mimics the libarchive 2.x filename handling +so that such archives can be read correctly. +.TP \fBhdrcharset\fP The value is used as a character set name that will be used when translating file names. +.TP +\fBpwb\fP +When reading a binary CPIO archive, assume that it is +in the original PWB cpio format, and handle file mode +bits accordingly. The default is to assume v7 format. .RE .TP Format iso9660 diff --git a/dependencies/libarchive-3.4.2/doc/man/archive_util.3 b/dependencies/libarchive-3.5.2/doc/man/archive_util.3 similarity index 100% rename from dependencies/libarchive-3.4.2/doc/man/archive_util.3 rename to dependencies/libarchive-3.5.2/doc/man/archive_util.3 diff --git a/dependencies/libarchive-3.4.2/doc/man/archive_write.3 b/dependencies/libarchive-3.5.2/doc/man/archive_write.3 similarity index 100% rename from dependencies/libarchive-3.4.2/doc/man/archive_write.3 rename to dependencies/libarchive-3.5.2/doc/man/archive_write.3 diff --git a/dependencies/libarchive-3.4.2/doc/man/archive_write_blocksize.3 b/dependencies/libarchive-3.5.2/doc/man/archive_write_blocksize.3 similarity index 100% rename from dependencies/libarchive-3.4.2/doc/man/archive_write_blocksize.3 rename to dependencies/libarchive-3.5.2/doc/man/archive_write_blocksize.3 diff --git a/dependencies/libarchive-3.4.2/doc/man/archive_write_data.3 b/dependencies/libarchive-3.5.2/doc/man/archive_write_data.3 similarity index 100% rename from dependencies/libarchive-3.4.2/doc/man/archive_write_data.3 rename to dependencies/libarchive-3.5.2/doc/man/archive_write_data.3 diff --git a/dependencies/libarchive-3.4.2/doc/man/archive_write_disk.3 b/dependencies/libarchive-3.5.2/doc/man/archive_write_disk.3 similarity index 100% rename from dependencies/libarchive-3.4.2/doc/man/archive_write_disk.3 rename to dependencies/libarchive-3.5.2/doc/man/archive_write_disk.3 diff --git a/dependencies/libarchive-3.4.2/doc/man/archive_write_filter.3 b/dependencies/libarchive-3.5.2/doc/man/archive_write_filter.3 similarity index 100% rename from dependencies/libarchive-3.4.2/doc/man/archive_write_filter.3 rename to dependencies/libarchive-3.5.2/doc/man/archive_write_filter.3 diff --git a/dependencies/libarchive-3.4.2/doc/man/archive_write_finish_entry.3 b/dependencies/libarchive-3.5.2/doc/man/archive_write_finish_entry.3 similarity index 100% rename from dependencies/libarchive-3.4.2/doc/man/archive_write_finish_entry.3 rename to dependencies/libarchive-3.5.2/doc/man/archive_write_finish_entry.3 diff --git a/dependencies/libarchive-3.4.2/doc/man/archive_write_format.3 b/dependencies/libarchive-3.5.2/doc/man/archive_write_format.3 similarity index 89% rename from dependencies/libarchive-3.4.2/doc/man/archive_write_format.3 rename to dependencies/libarchive-3.5.2/doc/man/archive_write_format.3 index 80ed63d..9f8c0b3 100644 --- a/dependencies/libarchive-3.4.2/doc/man/archive_write_format.3 +++ b/dependencies/libarchive-3.5.2/doc/man/archive_write_format.3 @@ -8,7 +8,10 @@ \fB\%archive_write_set_format_ar_svr4\fP, \fB\%archive_write_set_format_by_name\fP, \fB\%archive_write_set_format_cpio\fP, +\fB\%archive_write_set_format_cpio_bin\fP, \fB\%archive_write_set_format_cpio_newc\fP, +\fB\%archive_write_set_format_cpio_odc\fP, +\fB\%archive_write_set_format_cpio_pwb\fP, \fB\%archive_write_set_format_filter_by_ext\fP, \fB\%archive_write_set_format_filter_by_ext_def\fP, \fB\%archive_write_set_format_gnutar\fP, @@ -64,10 +67,22 @@ Streaming Archive Library (libarchive, -larchive) .br \fIint\fP .br +\fB\%archive_write_set_format_cpio_bin\fP(\fI\%struct\ archive\ *\fP); +.br +\fIint\fP +.br \fB\%archive_write_set_format_cpio_newc\fP(\fI\%struct\ archive\ *\fP); .br \fIint\fP .br +\fB\%archive_write_set_format_cpio_odc\fP(\fI\%struct\ archive\ *\fP); +.br +\fIint\fP +.br +\fB\%archive_write_set_format_cpio_pwb\fP(\fI\%struct\ archive\ *\fP); +.br +\fIint\fP +.br \fB\%archive_write_set_format_filter_by_ext\fP(\fI\%struct\ archive\ *\fP, \fI\%const\ char\ *filename\fP); .br \fIint\fP @@ -143,16 +158,19 @@ to create a new archive with the same format as an existing archive. \fB\%archive_write_set_format_by_name\fP() Sets the corresponding format based on the common name. .TP -\fB\%archive_write_set_format_filter_by_ext\fP(), +\fB\%archive_write_set_format_filter_by_ext\fP() \fB\%archive_write_set_format_filter_by_ext_def\fP() Sets both filters and format based on the output filename. Supported extensions: .7z, .zip, .jar, .cpio, .iso, .a, .ar, .tar, .tgz, .tar.gz, .tar.bz2, .tar.xz .TP \fB\%archive_write_set_format_7zip\fP() -\fB\%archive_write_set_format_ar_bsd\fP(), -\fB\%archive_write_set_format_ar_svr4\fP(), +\fB\%archive_write_set_format_ar_bsd\fP() +\fB\%archive_write_set_format_ar_svr4\fP() \fB\%archive_write_set_format_cpio\fP() +\fB\%archive_write_set_format_cpio_bin\fP() \fB\%archive_write_set_format_cpio_newc\fP() +\fB\%archive_write_set_format_cpio_odc\fP() +\fB\%archive_write_set_format_cpio_pwb\fP() \fB\%archive_write_set_format_gnutar\fP() \fB\%archive_write_set_format_iso9660\fP() \fB\%archive_write_set_format_mtree\fP() diff --git a/dependencies/libarchive-3.4.2/doc/man/archive_write_free.3 b/dependencies/libarchive-3.5.2/doc/man/archive_write_free.3 similarity index 100% rename from dependencies/libarchive-3.4.2/doc/man/archive_write_free.3 rename to dependencies/libarchive-3.5.2/doc/man/archive_write_free.3 diff --git a/dependencies/libarchive-3.4.2/doc/man/archive_write_header.3 b/dependencies/libarchive-3.5.2/doc/man/archive_write_header.3 similarity index 100% rename from dependencies/libarchive-3.4.2/doc/man/archive_write_header.3 rename to dependencies/libarchive-3.5.2/doc/man/archive_write_header.3 diff --git a/dependencies/libarchive-3.4.2/doc/man/archive_write_new.3 b/dependencies/libarchive-3.5.2/doc/man/archive_write_new.3 similarity index 100% rename from dependencies/libarchive-3.4.2/doc/man/archive_write_new.3 rename to dependencies/libarchive-3.5.2/doc/man/archive_write_new.3 diff --git a/dependencies/libarchive-3.4.2/doc/man/archive_write_open.3 b/dependencies/libarchive-3.5.2/doc/man/archive_write_open.3 similarity index 86% rename from dependencies/libarchive-3.4.2/doc/man/archive_write_open.3 rename to dependencies/libarchive-3.5.2/doc/man/archive_write_open.3 index ab76795..f14f33d 100644 --- a/dependencies/libarchive-3.4.2/doc/man/archive_write_open.3 +++ b/dependencies/libarchive-3.5.2/doc/man/archive_write_open.3 @@ -1,7 +1,8 @@ -.TH ARCHIVE_WRITE_OPEN 3 "February 2, 2012" "" +.TH ARCHIVE_WRITE_OPEN 3 "November 12, 2020" "" .SH NAME .ad l \fB\%archive_write_open\fP, +\fB\%archive_write_open2\fP, \fB\%archive_write_open_fd\fP, \fB\%archive_write_open_FILE\fP, \fB\%archive_write_open_filename\fP, @@ -20,6 +21,10 @@ Streaming Archive Library (libarchive, -larchive) .br \fIint\fP .br +\fB\%archive_write_open2\fP(\fI\%struct\ archive\ *\fP, \fI\%void\ *client_data\fP, \fI\%archive_open_callback\ *\fP, \fI\%archive_write_callback\ *\fP, \fI\%archive_close_callback\ *\fP, \fI\%archive_free_callback\ *\fP); +.br +\fIint\fP +.br \fB\%archive_write_open_fd\fP(\fI\%struct\ archive\ *\fP, \fI\%int\ fd\fP); .br \fIint\fP @@ -44,6 +49,12 @@ pointers to three callback functions which will be invoked by the compression layer to write the constructed archive. This does not alter the default archive padding. .TP +\fB\%archive_write_open2\fP() +Same as +\fB\%archive_write_open\fP() +with an additional fourth free callback. This function should be preferred to +\fB\%archive_write_open\fP(). +.TP \fB\%archive_write_open_fd\fP() A convenience form of \fB\%archive_write_open\fP() @@ -86,7 +97,7 @@ to a character or block device node, it will disable padding otherwise. You can override this by manually invoking \fB\%archive_write_set_bytes_in_last_block\fP() before calling -\fB\%archive_write_open\fP(). +\fB\%archive_write_open2\fP(). The \fB\%archive_write_open_filename\fP() function is safe for use with tape drives or other @@ -94,7 +105,7 @@ block-oriented devices. .TP \fB\%archive_write_open_memory\fP() A convenience form of -\fB\%archive_write_open\fP() +\fB\%archive_write_open2\fP() that accepts a pointer to a block of memory that will receive the archive. The final @@ -126,7 +137,7 @@ To use this library, you will need to define and register callback functions that will be invoked to write data to the resulting archive. These functions are registered by calling -\fB\%archive_write_open\fP(): +\fB\%archive_write_open2\fP(): .RS 5 .IP \fItypedef int\fP @@ -143,6 +154,8 @@ If the open fails, it should call \fB\%archive_set_error\fP() to register an error code and message and return \fBARCHIVE_FATAL\fP. +Please note that if open fails, close is not called and resources must be +freed inside the open callback or with the free callback. .RS 5 .IP \fItypedef la_ssize_t\fP @@ -168,7 +181,8 @@ to register an error code and message and return -1. .RE .PP The close callback is invoked by archive_close when -the archive processing is complete. +the archive processing is complete. If the open callback fails, the close +callback is not invoked. The callback should return \fBARCHIVE_OK\fP on success. @@ -176,7 +190,14 @@ On failure, the callback should invoke \fB\%archive_set_error\fP() to register an error code and message and return -\fBARCHIVE_FATAL\fP. +.RS 5 +.IP +\fItypedef int\fP +\fB\%archive_free_callback\fP(\fI\%struct\ archive\ *\fP, \fI\%void\ *client_data\fP) +.RE +.PP +The free callback is always invoked on archive_free. +The return code of this callback is not processed. .PP Note that if the client-provided write callback function returns a non-zero value, that error will be propagated back to the caller diff --git a/dependencies/libarchive-3.4.2/doc/man/archive_write_set_options.3 b/dependencies/libarchive-3.5.2/doc/man/archive_write_set_options.3 similarity index 98% rename from dependencies/libarchive-3.4.2/doc/man/archive_write_set_options.3 rename to dependencies/libarchive-3.5.2/doc/man/archive_write_set_options.3 index e5a4f7b..b5b8009 100644 --- a/dependencies/libarchive-3.4.2/doc/man/archive_write_set_options.3 +++ b/dependencies/libarchive-3.5.2/doc/man/archive_write_set_options.3 @@ -251,7 +251,8 @@ Filter zstd .TP \fBcompression-level\fP The value is interpreted as a decimal integer specifying the -compression level. Supported values are from 1 to 22. +compression level. Supported values depend on the library version, +common values are from 1 to 22. .RE .TP Format 7zip @@ -278,7 +279,7 @@ The interpretation of the compression level depends on the chosen compression method. .RE .TP -Format cpio +Format bin .RS 5 .TP \fBhdrcharset\fP @@ -568,6 +569,22 @@ The value is used as a character set name that will be used when translating file names. .RE .TP +Format odc +.RS 5 +.TP +\fBhdrcharset\fP +The value is used as a character set name that will be +used when translating file names. +.RE +.TP +Format pwb +.RS 5 +.TP +\fBhdrcharset\fP +The value is used as a character set name that will be +used when translating file names. +.RE +.TP Format pax .RS 5 .TP diff --git a/dependencies/libarchive-3.4.2/doc/man/archive_write_set_passphrase.3 b/dependencies/libarchive-3.5.2/doc/man/archive_write_set_passphrase.3 similarity index 100% rename from dependencies/libarchive-3.4.2/doc/man/archive_write_set_passphrase.3 rename to dependencies/libarchive-3.5.2/doc/man/archive_write_set_passphrase.3 diff --git a/dependencies/libarchive-3.4.2/doc/man/bsdcpio.1 b/dependencies/libarchive-3.5.2/doc/man/bsdcpio.1 similarity index 97% rename from dependencies/libarchive-3.4.2/doc/man/bsdcpio.1 rename to dependencies/libarchive-3.5.2/doc/man/bsdcpio.1 index 8f31df6..81135e1 100644 --- a/dependencies/libarchive-3.4.2/doc/man/bsdcpio.1 +++ b/dependencies/libarchive-3.5.2/doc/man/bsdcpio.1 @@ -66,6 +66,15 @@ all operating modes. Read filenames separated by NUL characters instead of newlines. This is necessary if any of the filenames being read might contain newlines. .TP +\fB\-6\fP, \fB\-Fl\fP pwb +When reading a binary format archive, assume it's the earlier one, +from the PWB variant of 6th Edition UNIX. +When writing a cpio archive, use the PWB format. +.TP +\fB\-7\fP, \fB\-Fl\fP binary +(o mode only) +When writing a cpio archive, use the (newer, non-PWB) binary format. +.TP \fB\-A\fP (o mode only) Append to the specified archive. diff --git a/dependencies/libarchive-3.4.2/doc/man/bsdtar.1 b/dependencies/libarchive-3.5.2/doc/man/bsdtar.1 similarity index 99% rename from dependencies/libarchive-3.4.2/doc/man/bsdtar.1 rename to dependencies/libarchive-3.5.2/doc/man/bsdtar.1 index 1a7d9db..512db63 100644 --- a/dependencies/libarchive-3.4.2/doc/man/bsdtar.1 +++ b/dependencies/libarchive-3.5.2/doc/man/bsdtar.1 @@ -709,7 +709,8 @@ Use the previous block of the block being compressed for a compression dictionary to improve compression ratio. .TP \fBzstd:compression-level\fP -A decimal integer from 1 to 22 specifying the zstd compression level. +A decimal integer specifying the zstd compression level. Supported values depend +on the library version, common values are from 1 to 22. .TP \fBlzop:compression-level\fP A decimal integer from 1 to 9 specifying the lzop compression level. diff --git a/dependencies/libarchive-3.4.2/doc/man/cpio.5 b/dependencies/libarchive-3.5.2/doc/man/cpio.5 similarity index 61% rename from dependencies/libarchive-3.4.2/doc/man/cpio.5 rename to dependencies/libarchive-3.5.2/doc/man/cpio.5 index 481f775..4dd0bc8 100644 --- a/dependencies/libarchive-3.4.2/doc/man/cpio.5 +++ b/dependencies/libarchive-3.5.2/doc/man/cpio.5 @@ -30,43 +30,47 @@ The end of the archive is indicated by a special record with the pathname ``TRAILER!!!''. .SS PWB format -XXX Any documentation of the original PWB/UNIX 1.0 format? XXX -.SS Old Binary Format -The old binary +The PWB binary \fB\%cpio\fP -format stores numbers as 2-byte and 4-byte binary values. +format is the original format, when cpio was introduced as part of the +Programmer's Work Bench system, a variant of 6th Edition UNIX. It +stores numbers as 2-byte and 4-byte binary values. Each entry begins with a header in the following format: +.PP .RS 4 .nf -struct header_old_cpio { - unsigned short c_magic; - unsigned short c_dev; - unsigned short c_ino; - unsigned short c_mode; - unsigned short c_uid; - unsigned short c_gid; - unsigned short c_nlink; - unsigned short c_rdev; - unsigned short c_mtime[2]; - unsigned short c_namesize; - unsigned short c_filesize[2]; +struct header_pwb_cpio { + short h_magic; + short h_dev; + short h_ino; + short h_mode; + short h_uid; + short h_gid; + short h_nlink; + short h_majmin; + long h_mtime; + short h_namesize; + long h_filesize; }; .RE .PP The -\fIunsigned\fP short -fields here are 16-bit integer values; the -\fIunsigned\fP int -fields are 32-bit integer values. -The fields are as follows +\fIshort\fP +fields here are 16-bit integer values, while the +\fIlong\fP +fields are 32 bit integers. Since PWB UNIX, like the 6th Edition UNIX +it was based on, only ran on PDP-11 computers, they +are in PDP-endian format, which has little-endian shorts, and +big-endian longs. That is, the long integer whose hexadecimal +representation is 0x12345678 would be stored in four successive bytes +as 0x34, 0x12, 0x78, 0x56. +The fields are as follows: .RS 5 .TP -\fImagic\fP +\fIh_magic\fP The integer value octal 070707. -This value can be used to determine whether this archive is -written with little-endian or big-endian integers. .TP -\fIdev\fP, \fIino\fP +\fIh_dev\fP, \fIh_ino\fP The device and inode numbers from the disk. These are used by programs that read \fB\%cpio\fP @@ -75,9 +79,110 @@ Programs that synthesize \fB\%cpio\fP archives should be careful to set these to distinct values for each entry. .TP -\fImode\fP -The mode specifies both the regular permissions and the file type. -It consists of several bit fields as follows: +\fIh_mode\fP +The mode specifies both the regular permissions and the file type, and +it also holds a couple of bits that are irrelevant to the cpio format, +because the field is actually a raw copy of the mode field in the inode +representing the file. These are the IALLOC flag, which shows that +the inode entry is in use, and the ILARG flag, which shows that the +file it represents is large enough to have indirect blocks pointers in +the inode. +The mode is decoded as follows: +.PP +.RS 5 +.TP +0100000 +IALLOC flag - irrelevant to cpio. +.TP +0060000 +This masks the file type bits. +.TP +0040000 +File type value for directories. +.TP +0020000 +File type value for character special devices. +.TP +0060000 +File type value for block special devices. +.TP +0010000 +ILARG flag - irrelevant to cpio. +.TP +0004000 +SUID bit. +.TP +0002000 +SGID bit. +.TP +0001000 +Sticky bit. +.TP +0000777 +The lower 9 bits specify read/write/execute permissions +for world, group, and user following standard POSIX conventions. +.RE +.TP +\fIh_uid\fP, \fIh_gid\fP +The numeric user id and group id of the owner. +.TP +\fIh_nlink\fP +The number of links to this file. +Directories always have a value of at least two here. +Note that hardlinked files include file data with every copy in the archive. +.TP +\fIh_majmin\fP +For block special and character special entries, +this field contains the associated device number, with the major +number in the high byte, and the minor number in the low byte. +For all other entry types, it should be set to zero by writers +and ignored by readers. +.TP +\fIh_mtime\fP +Modification time of the file, indicated as the number +of seconds since the start of the epoch, +00:00:00 UTC January 1, 1970. +.TP +\fIh_namesize\fP +The number of bytes in the pathname that follows the header. +This count includes the trailing NUL byte. +.TP +\fIh_filesize\fP +The size of the file. Note that this archive format is limited to 16 +megabyte file sizes, because PWB UNIX, like 6th Edition, only used +an unsigned 24 bit integer for the file size internally. +.RE +.PP +The pathname immediately follows the fixed header. +If +\fBh_namesize\fP +is odd, an additional NUL byte is added after the pathname. +The file data is then appended, again with an additional NUL +appended if needed to get the next header at an even offset. +.PP +Hardlinked files are not given special treatment; +the full file contents are included with each copy of the +file. +.SS New Binary Format +The new binary +\fB\%cpio\fP +format showed up when cpio was adopted into late 7th Edition UNIX. +It is exactly like the PWB binary format, described above, except for +three changes: +.PP +First, UNIX now ran on more than one hardware type, so the endianness +of 16 bit integers must be determined by observing the magic number at +the start of the header. The 32 bit integers are still always stored +with the most significant word first, though, so each of those two, in +the struct shown above, was stored as an array of two 16 bit integers, +in the traditional order. Those 16 bit integers, like all the others +in the struct, were accessed using a macro that byte swapped them if +necessary. +.PP +Next, 7th Edition had more file types to store, and the IALLOC and ILARG +flag bits were re-purposed to accommodate these. The revised use of the +various bits is as follows: +.PP .RS 5 .TP 0170000 @@ -113,58 +218,27 @@ SGID bit. .TP 0001000 Sticky bit. -On some systems, this modifies the behavior of executables and/or directories. .TP 0000777 The lower 9 bits specify read/write/execute permissions for world, group, and user following standard POSIX conventions. .RE -.TP -\fIuid\fP, \fIgid\fP -The numeric user id and group id of the owner. -.TP -\fInlink\fP -The number of links to this file. -Directories always have a value of at least two here. -Note that hardlinked files include file data with every copy in the archive. -.TP -\fIrdev\fP -For block special and character special entries, -this field contains the associated device number. -For all other entry types, it should be set to zero by writers -and ignored by readers. -.TP -\fImtime\fP -Modification time of the file, indicated as the number -of seconds since the start of the epoch, -00:00:00 UTC January 1, 1970. -The four-byte integer is stored with the most-significant 16 bits first -followed by the least-significant 16 bits. -Each of the two 16 bit values are stored in machine-native byte order. -.TP -\fInamesize\fP -The number of bytes in the pathname that follows the header. -This count includes the trailing NUL byte. -.TP -\fIfilesize\fP -The size of the file. -Note that this archive format is limited to -four gigabyte file sizes. -See -\fImtime\fP -above for a description of the storage of four-byte integers. -.RE .PP -The pathname immediately follows the fixed header. -If the -\fBnamesize\fP -is odd, an additional NUL byte is added after the pathname. -The file data is then appended, padded with NUL -bytes to an even length. +Finally, the file size field now represents a signed 32 bit integer in +the underlying file system, so the maximum file size has increased to +2 gigabytes. .PP -Hardlinked files are not given special treatment; -the full file contents are included with each copy of the -file. +Note that there is no obvious way to tell which of the two binary +formats an archive uses, other than to see which one makes more +sense. The typical error scenario is that a PWB format archive +unpacked as if it were in the new format will create named sockets +instead of directories, and then fail to unpack files that should +go in those directories. Running +\fIbsdcpio\fP -itv +on an unknown archive will make it obvious which it is: if it's +PWB format, directories will be listed with an 's' instead of +a 'd' as the first character of the mode string, and the larger +files will have a '?' in that position. .SS Portable ASCII Format Version 2 of the Single UNIX Specification (``SUSv2'') standardized an ASCII variant that is portable across all @@ -176,6 +250,7 @@ format or as the format. It stores the same numeric fields as the old binary format, but represents them as 6-character or 11-character octal values. +.PP .RS 4 .nf struct cpio_odc_header { @@ -193,9 +268,9 @@ struct cpio_odc_header { }; .RE .PP -The fields are identical to those in the old binary format. +The fields are identical to those in the new binary format. The name and file body follow the fixed header. -Unlike the old binary format, there is no additional padding +Unlike the binary formats, there is no additional padding after the pathname or file contents. If the files being archived are themselves entirely ASCII, then the resulting archive will be entirely ASCII, except for the @@ -204,6 +279,7 @@ NUL byte that terminates the name field. The "new" ASCII format uses 8-byte hexadecimal fields for all numbers and separates device numbers into separate fields for major and minor numbers. +.PP .RS 4 .nf struct cpio_newc_header { @@ -225,7 +301,7 @@ struct cpio_newc_header { .RE .PP Except as specified below, the fields here match those specified -for the old binary format above. +for the new binary format above. .RS 5 .TP \fImagic\fP @@ -244,7 +320,7 @@ Note that this format supports only 4 gigabyte files (unlike the older ASCII format, which supports 8 gigabyte files). .PP In this format, hardlinked files are handled by setting the -filesize to zero for each entry except the last one that +filesize to zero for each entry except the first one that appears in the archive. .SS New CRC Format The CRC format is identical to the new ASCII format described @@ -291,9 +367,9 @@ while working in AT&T's Unix Support Group. It appeared in 1977 as part of PWB/UNIX 1.0, the ``Programmer's Work Bench'' derived from -At v6 +At 6th Edition UNIX that was used internally at AT&T. -Both the old binary and old character formats were in use +Both the new binary and old character formats were in use by 1980, according to the System III source released by SCO under their ``Ancient Unix'' @@ -308,9 +384,9 @@ The format is mis-named, as it uses a simple checksum and not a cyclic redundancy check. .PP -The old binary format is limited to 16 bits for user id, -group id, device, and inode numbers. -It is limited to 4 gigabyte file sizes. +The binary formats are limited to 16 bits for user id, group id, +device, and inode numbers. They are limited to 16 megabyte and 2 +gigabyte file sizes for the older and newer variants, respectively. .PP The old ASCII format is limited to 18 bits for the user id, group id, device, and inode numbers. diff --git a/dependencies/libarchive-3.4.2/doc/man/libarchive-formats.5 b/dependencies/libarchive-3.5.2/doc/man/libarchive-formats.5 similarity index 93% rename from dependencies/libarchive-3.4.2/doc/man/libarchive-formats.5 rename to dependencies/libarchive-3.5.2/doc/man/libarchive-formats.5 index 091cbfb..2d5d191 100644 --- a/dependencies/libarchive-3.4.2/doc/man/libarchive-formats.5 +++ b/dependencies/libarchive-3.5.2/doc/man/libarchive-formats.5 @@ -182,30 +182,29 @@ POSIX.1-2001 extended the ustar format to create the ``pax interchange'' format. .SS Cpio Formats -The libarchive library can read a number of common cpio variants and can write -``odc'' -and -``newc'' -format archives. -A cpio archive stores each entry as a fixed-size header followed -by a variable-length filename and variable-length data. -Unlike the tar format, the cpio format does only minimal padding -of the header or file data. -There are several cpio variants, which differ primarily in -how they store the initial header: some store the values as -octal or hexadecimal numbers in ASCII, others as binary values of -varying byte order and length. +The libarchive library can read and write a number of common cpio +variants. A cpio archive stores each entry as a fixed-size header +followed by a variable-length filename and variable-length data. +Unlike the tar format, the cpio format does only minimal padding of +the header or file data. There are several cpio variants, which +differ primarily in how they store the initial header: some store the +values as octal or hexadecimal numbers in ASCII, others as binary +values of varying byte order and length. .RS 5 .TP \fBbinary\fP -The libarchive library transparently reads both big-endian and little-endian -variants of the original binary cpio format. -This format used 32-bit binary values for file size and mtime, -and 16-bit binary values for the other fields. +The libarchive library transparently reads both big-endian and +little-endian variants of the the two binary cpio formats; the +original one from PWB/UNIX, and the later, more widely used, variant. +This format used 32-bit binary values for file size and mtime, and +16-bit binary values for the other fields. The formats support only +the file types present in UNIX at the time of their creation. File +sizes are limited to 24 bits in the PWB format, because of the limits +of the file system, and to 31 bits in the newer binary format, where +signed 32 bit longs were used. .TP \fBodc\fP -The libarchive library can both read and write this -POSIX-standard format, which is officially known as the +This is the POSIX standardized format, which is officially known as the ``cpio interchange format'' or the ``octet-oriented cpio archive format'' diff --git a/dependencies/libarchive-3.4.2/doc/man/libarchive.3 b/dependencies/libarchive-3.5.2/doc/man/libarchive.3 similarity index 99% rename from dependencies/libarchive-3.4.2/doc/man/libarchive.3 rename to dependencies/libarchive-3.5.2/doc/man/libarchive.3 index 245a826..310ad15 100644 --- a/dependencies/libarchive-3.4.2/doc/man/libarchive.3 +++ b/dependencies/libarchive-3.5.2/doc/man/libarchive.3 @@ -79,7 +79,7 @@ POSIX ``pax interchange format'' archives, .IP \(bu -POSIX octet-oriented cpio archives, +cpio archives, .IP \(bu Zip archive, .IP \(bu diff --git a/dependencies/libarchive-3.4.2/doc/man/libarchive_changes.3 b/dependencies/libarchive-3.5.2/doc/man/libarchive_changes.3 similarity index 100% rename from dependencies/libarchive-3.4.2/doc/man/libarchive_changes.3 rename to dependencies/libarchive-3.5.2/doc/man/libarchive_changes.3 diff --git a/dependencies/libarchive-3.4.2/doc/man/libarchive_internals.3 b/dependencies/libarchive-3.5.2/doc/man/libarchive_internals.3 similarity index 100% rename from dependencies/libarchive-3.4.2/doc/man/libarchive_internals.3 rename to dependencies/libarchive-3.5.2/doc/man/libarchive_internals.3 diff --git a/dependencies/libarchive-3.4.2/doc/man/mtree.5 b/dependencies/libarchive-3.5.2/doc/man/mtree.5 similarity index 100% rename from dependencies/libarchive-3.4.2/doc/man/mtree.5 rename to dependencies/libarchive-3.5.2/doc/man/mtree.5 diff --git a/dependencies/libarchive-3.4.2/doc/man/tar.5 b/dependencies/libarchive-3.5.2/doc/man/tar.5 similarity index 100% rename from dependencies/libarchive-3.4.2/doc/man/tar.5 rename to dependencies/libarchive-3.5.2/doc/man/tar.5 diff --git a/dependencies/libarchive-3.4.2/doc/mdoc2man.awk b/dependencies/libarchive-3.5.2/doc/mdoc2man.awk similarity index 100% rename from dependencies/libarchive-3.4.2/doc/mdoc2man.awk rename to dependencies/libarchive-3.5.2/doc/mdoc2man.awk diff --git a/dependencies/libarchive-3.4.2/doc/mdoc2wiki.awk b/dependencies/libarchive-3.5.2/doc/mdoc2wiki.awk similarity index 100% rename from dependencies/libarchive-3.4.2/doc/mdoc2wiki.awk rename to dependencies/libarchive-3.5.2/doc/mdoc2wiki.awk diff --git a/dependencies/libarchive-3.4.2/doc/pdf/.ignore_me b/dependencies/libarchive-3.5.2/doc/pdf/.ignore_me similarity index 100% rename from dependencies/libarchive-3.4.2/doc/pdf/.ignore_me rename to dependencies/libarchive-3.5.2/doc/pdf/.ignore_me diff --git a/dependencies/libarchive-3.4.2/doc/pdf/Makefile b/dependencies/libarchive-3.5.2/doc/pdf/Makefile similarity index 99% rename from dependencies/libarchive-3.4.2/doc/pdf/Makefile rename to dependencies/libarchive-3.5.2/doc/pdf/Makefile index b5bf21e..48a5311 100644 --- a/dependencies/libarchive-3.4.2/doc/pdf/Makefile +++ b/dependencies/libarchive-3.5.2/doc/pdf/Makefile @@ -107,15 +107,15 @@ archive_write_set_passphrase.3.pdf: ../../libarchive/archive_write_set_passphras cpio.5.pdf: ../../libarchive/cpio.5 groff -mdoc -T ps ../../libarchive/cpio.5 | ps2pdf - - > cpio.5.pdf -libarchive-formats.5.pdf: ../../libarchive/libarchive-formats.5 - groff -mdoc -T ps ../../libarchive/libarchive-formats.5 | ps2pdf - - > libarchive-formats.5.pdf - libarchive.3.pdf: ../../libarchive/libarchive.3 groff -mdoc -T ps ../../libarchive/libarchive.3 | ps2pdf - - > libarchive.3.pdf libarchive_changes.3.pdf: ../../libarchive/libarchive_changes.3 groff -mdoc -T ps ../../libarchive/libarchive_changes.3 | ps2pdf - - > libarchive_changes.3.pdf +libarchive-formats.5.pdf: ../../libarchive/libarchive-formats.5 + groff -mdoc -T ps ../../libarchive/libarchive-formats.5 | ps2pdf - - > libarchive-formats.5.pdf + libarchive_internals.3.pdf: ../../libarchive/libarchive_internals.3 groff -mdoc -T ps ../../libarchive/libarchive_internals.3 | ps2pdf - - > libarchive_internals.3.pdf @@ -130,4 +130,4 @@ bsdtar.1.pdf: ../../tar/bsdtar.1 bsdcpio.1.pdf: ../../cpio/bsdcpio.1 groff -mdoc -T ps ../../cpio/bsdcpio.1 | ps2pdf - - > bsdcpio.1.pdf -all: archive_entry.3.pdf archive_entry_acl.3.pdf archive_entry_linkify.3.pdf archive_entry_misc.3.pdf archive_entry_paths.3.pdf archive_entry_perms.3.pdf archive_entry_stat.3.pdf archive_entry_time.3.pdf archive_read.3.pdf archive_read_add_passphrase.3.pdf archive_read_data.3.pdf archive_read_disk.3.pdf archive_read_extract.3.pdf archive_read_filter.3.pdf archive_read_format.3.pdf archive_read_free.3.pdf archive_read_header.3.pdf archive_read_new.3.pdf archive_read_open.3.pdf archive_read_set_options.3.pdf archive_util.3.pdf archive_write.3.pdf archive_write_blocksize.3.pdf archive_write_data.3.pdf archive_write_disk.3.pdf archive_write_filter.3.pdf archive_write_finish_entry.3.pdf archive_write_format.3.pdf archive_write_free.3.pdf archive_write_header.3.pdf archive_write_new.3.pdf archive_write_open.3.pdf archive_write_set_options.3.pdf archive_write_set_passphrase.3.pdf cpio.5.pdf libarchive-formats.5.pdf libarchive.3.pdf libarchive_changes.3.pdf libarchive_internals.3.pdf mtree.5.pdf tar.5.pdf bsdtar.1.pdf bsdcpio.1.pdf +all: archive_entry.3.pdf archive_entry_acl.3.pdf archive_entry_linkify.3.pdf archive_entry_misc.3.pdf archive_entry_paths.3.pdf archive_entry_perms.3.pdf archive_entry_stat.3.pdf archive_entry_time.3.pdf archive_read.3.pdf archive_read_add_passphrase.3.pdf archive_read_data.3.pdf archive_read_disk.3.pdf archive_read_extract.3.pdf archive_read_filter.3.pdf archive_read_format.3.pdf archive_read_free.3.pdf archive_read_header.3.pdf archive_read_new.3.pdf archive_read_open.3.pdf archive_read_set_options.3.pdf archive_util.3.pdf archive_write.3.pdf archive_write_blocksize.3.pdf archive_write_data.3.pdf archive_write_disk.3.pdf archive_write_filter.3.pdf archive_write_finish_entry.3.pdf archive_write_format.3.pdf archive_write_free.3.pdf archive_write_header.3.pdf archive_write_new.3.pdf archive_write_open.3.pdf archive_write_set_options.3.pdf archive_write_set_passphrase.3.pdf cpio.5.pdf libarchive.3.pdf libarchive_changes.3.pdf libarchive-formats.5.pdf libarchive_internals.3.pdf mtree.5.pdf tar.5.pdf bsdtar.1.pdf bsdcpio.1.pdf diff --git a/dependencies/libarchive-3.4.2/doc/pdf/archive_entry.3.pdf b/dependencies/libarchive-3.5.2/doc/pdf/archive_entry.3.pdf similarity index 55% rename from dependencies/libarchive-3.4.2/doc/pdf/archive_entry.3.pdf rename to dependencies/libarchive-3.5.2/doc/pdf/archive_entry.3.pdf index 724b5861415cfe1b738f460279ecfa96c88cefa0..0a159f20982e1bdc96fb3fdc49cbbfb9479b93ea 100644 GIT binary patch delta 11919 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

Z+BKtje5(X-zRoPdkZX?nx&~O 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 DZns0g literal 0 HcmV?d00001 diff --git a/dependencies/libarchive-3.5.2/doc/pdf/archive_entry_paths.3.pdf b/dependencies/libarchive-3.5.2/doc/pdf/archive_entry_paths.3.pdf new file mode 100644 index 0000000000000000000000000000000000000000..3165b31d4b0cbc931c3e42d039f84bdfdea25f16 GIT binary patch literal 25125 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%0DWcHEcxv^?r`$JW=G!*e6ws$#hw7 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 T@0(G=f$f0;*MO?%snYyE%ipN1 literal 0 HcmV?d00001 diff --git a/dependencies/libarchive-3.5.2/doc/pdf/archive_entry_stat.3.pdf b/dependencies/libarchive-3.5.2/doc/pdf/archive_entry_stat.3.pdf new file mode 100644 index 0000000000000000000000000000000000000000..432760b4672a6aecf7d49c20bb4da4d70ad40913 GIT binary patch literal 33264 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 PfN=I~T3S(gF|7Xw7B6>M literal 0 HcmV?d00001 diff --git a/dependencies/libarchive-3.5.2/doc/pdf/archive_entry_time.3.pdf b/dependencies/libarchive-3.5.2/doc/pdf/archive_entry_time.3.pdf new file mode 100644 index 0000000000000000000000000000000000000000..29289ce084209a62d598e513f47ccf49282599d5 GIT binary patch literal 23334 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 literal 0 HcmV?d00001 diff --git a/dependencies/libarchive-3.5.2/doc/pdf/archive_read_add_passphrase.3.pdf b/dependencies/libarchive-3.5.2/doc/pdf/archive_read_add_passphrase.3.pdf new file mode 100644 index 0000000000000000000000000000000000000000..4600a06e8971105c55313599bb9eed937829e194 GIT binary patch literal 22201 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 IpQmSk0na)I8UO$Q literal 0 HcmV?d00001 diff --git a/dependencies/libarchive-3.5.2/doc/pdf/archive_read_data.3.pdf b/dependencies/libarchive-3.5.2/doc/pdf/archive_read_data.3.pdf new file mode 100644 index 0000000000000000000000000000000000000000..ed8628f8eb4fa9f4548d61dac7bcff14522f6aee GIT binary patch literal 26233 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 BS4sc? literal 0 HcmV?d00001 diff --git a/dependencies/libarchive-3.5.2/doc/pdf/archive_read_disk.3.pdf b/dependencies/libarchive-3.5.2/doc/pdf/archive_read_disk.3.pdf new file mode 100644 index 0000000000000000000000000000000000000000..ff4845ee8d420381e31b639d86939dbd851aa7c7 GIT binary patch literal 40240 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 Cr(aY6 literal 0 HcmV?d00001 diff --git a/dependencies/libarchive-3.5.2/doc/pdf/archive_read_filter.3.pdf b/dependencies/libarchive-3.5.2/doc/pdf/archive_read_filter.3.pdf new file mode 100644 index 0000000000000000000000000000000000000000..830ff89a35b09e5c0fd9cd40e7679b4baf1b36b9 GIT binary patch literal 26171 zcmce-1yr2N(l&~_yF+lz;1(pfyG!uF-7Uf0-GWK4+ir zp8xyrx@*?V+gjaS-SyVfRW($KqT);}PuUTu1`cEL5U8l6Y+db)4V^9QY>GicDloCMrVWV#=VWh@B0n!otYH+QQjG7U&AJ<_8fVV{-V}PF_J#NKHiy)KXYT zRYa1E$w^d9T}niZ-`>R3&C$Xc2r6-MHnDSY<`)Dd6=U|fB=G%vm?;Z2EqOHvgWew z0yAF6xQgb2Sl^8M_lN}ZY06gCsBl+8(S%agTr7xDEC^(&rZYIN{f}Yra^@DivueV+ zzK7!jpNJM$&76?Y`oRWczLLl{aJ@j3#UX&eJksvdqEXcEqvLiI^JOAjs!5LN=_c=X zq^&1jljrF8cz05ASHZE{m_85?b0pt)m&-$4|He4N+^ql~ZXpr;y11yV;_2=|{c5Zb zPC#-8f^hAJxh zBdBJPCkPaULk6nV4fxEdOd$Luf3q6c9+0a zdwf^85v=SzsFPIcOs$wgO+(3tW1PCR3!SqR1W$`s*wCU(LaA!`vls^O^PQVJXz(M7*Hz2?Km zPSEl&7Fa(%BPe*P(6*9Alht7QVK~%$~pem%NuqiAA zibhnL0G^#ojfCJW5@!Kcu39uQmr&UA?ij)p-2ApNbm1p;>hJbC&g;hYJ&*KUC~#lx zRr#Ca6;Y73s}Q2vg^*xzY6% zj?wH>L2IZan&gBoSMoN-#N_&BhTCH*mm3rr?IrmktFOX~2^%jOKT#&TtWLxRI*~zE6-RTvCM)m8JTFXtkx?pb-6=)$^2{ezI4`Wyw~Jx&^;=< zxdn%5M!*Exn*0<(Q0hT&AH?bF{pjt7m{FXuGYDpcPI zgPp7h@YGE4Ivk3sPlaqo2U9=E;K3+4F(Um!cm{biXKLr0Be^e`tZ=Y*Bg97846v%| zr~$i|$J-8E*FPt$lF%RbK2waw^T4|k*x0ACc(uXt#S{e*!kbw?`hx5AjsH!qTtMu| z9L0h6)sf&+pUkJG)8`Ry-BL6*zu4tZ6m}BBRC{JcQb)oxitLP2SP5jtJsa*M+$3Mk zePw{d;(g!qb?3@oxA0m_)q2p)1xLdoD`{(hwk-dH`v%-xG0Ljjm#Qz<6zeUj&0`MP z`s2;hCTtFPqWIh<8&Ef4Nv3LbqN#zjon%Yh*Q&7;yl= zq{#azXgVxjsDm*A_xchWwpqD(`m(%ehADURS+CKru^h>rQ-DasIc~gro74n2eC{Wh zuV@SN2d%?zb3J@*gqk5OV_KJa*1_f5Ytp;Lq; zZ=es1oQ_Z7HU;kK(8ZI8($?6QjCc2>$(V}{7I>bqY3>?|F}SC63JFbL7yUlkL0&^u z0l$*tVq3^Dsng4w#^Fwvo(_sx8rL-yq9B^U?~2b4?ciVfS1Huq z;`ePd8#=_Ve`pJ8_jG`94an!-JeWSL%)j>Apz!-Ht($$?i@gb^Wac*h>`S)-Ox>BV+}sJe0q1IDK?N~Ppj z(ez2b7{WP|G~5Eu#Db;w+;<|>1$Ci$f{RUbTuLLPKspz!uMU{dkqYSMVNKS+W!{DO zZSDd?GGSY>GVGR^jTorcGKIU`*A``{J-$`Q-Vn64=3?m`jg)&B8#I$JB-Y{VrIcD6 z7-t?M_`s#p@;8)PD9=h+k@gjvO-LZM$Rt-M_M{q!`f#6YlgSaXSQIjdMvG#%3}BQcq^u$kp@_LdwtWWIP&^bvB0Vqhs~J_wIm zb}D{`3U1>=a$=b`qkY{euQ zK&b)D6qW;C*w;NT#J)#W+>=HkuzPL>OCo*q||j0 zsR%}95q2Zu;pF~$%7u%m!>(C69`;OQME=39R z73LX#7*Ug-V$}P<9N0$ThK4RH+_t@%>ua!9!fJ^YWL1Wat1K~3jqe!-fWEwx*`>sR zJ9p%9S;j24~io6c=%a1=u!q0Om&y4_FNvmvGG7OgUO0N>8}e5q&|pP9}` z36+SvkKH=6oC!0M<#gV+w$oqq)Q&Fxvy)~NPGOUC5U`eJ<3$%R!Qp)T{G-ci-0`aw zCALLjv;(1-anf>Iqzbne;(d@zIK)_TULRHy6x^#Whcb(JhlpFJ+X?eWtf-ahbi#e{ zIlLuza)%fWxW#cYiY%qb4U*RcW7;s+Z78D3=aL%g2Z5+m1?vdG(|wq_SbfTy?ef{ha0) zIN%nIQ^|IM<&8+JmOzg9L;$zURU@AxaL_HfQm$U9EdAa7e zfp~bCAK;{Vtlg9;RBo035jmCj{lUFL_hgV~}$( zUTd~z6@`^V#pjdbC)YF~6^Q!(hAtj)!vnlvW#;&eFWCQr7pfliK!Bp584w@`G_f!g zwsR-bc|ac=JRD@)?5r;k0LpgGpc@1kGpLm#(AJrZ?E#2@ih)jcE{?`PC(y-1(b3LW z1?a2;0NtR-0IEQDXHY*ecV`Ke$F3|~Ke~w9fx5GBKW0F85r7CN52ENq_Hc($MgSH4 z#6K)Npn{*5n*Tp0$ojw#(3&16$ohLWe@*Zako`Hs2PXWOAZWcH7Lq;k(1{EnV`1V% zri1W<;Nv=!5nhmiD7k>v&idyXe^dBLK*Z45(Av)I7p0$UmIFE)nt*D^*nSlJ#iR$O z{>h`?{6+vMD9Vws2nhV*<{vGUxey*V<1aFg`|*>GG7BdH%a7}$G7CEb%i}5l$}Fr1 zEUXV40wtLdSRRfCD9MfRxRZZTdgS6SO8+*_BU^vfva%wu{-XGQHRJ=4pG1WXoq!J; z2#`_Nkku4o0I}TB0_ga-siHt9V@C^nXFEqS)<-@*^8B$1wCfg*PR=6chK^)B8~|Cv zpJ^5rZh(e`iL<$r4jCsiGXnF&?>~P3Dt+M0uU3yKP_G{)fBZg(hArqiZeeQ%8o*Y_ z*2&^`Ud6@8`9UBbjudDEf6K$KI|4}7elJtS!^X(Y`p<>@B16XZHwWdPiZe%1at(qkQHF2Cyjr{^z9 zf3*2yls`%zsr`-S|7OP?hWpnyn3AHXwzLF;s)Y^EiRmBr>xY0pO7Fuv@6VUmpZmql z^IK3@IsVR&f6M(Bg1`lOX>)RNkv%+rrGL<2<9<-tAZCDSdDz*1wBX`K;ADB2=|fu% z4$i;zeP|6T|6j1|LGAn-$3#UHG&O&6Oxe!H(Dq-C_{02^|BH7E2mAlPGB%JFe)v92 z{(+$n=|{#QaDYzWpWh#BdH8)OW#!_2{QfKjvHBPLezEg`Q4cKoQS&&?BTFC3xk0Ii z_CMblAQnF|^EYe%8tX?2G$LpOcF;CFjQ!{Hf$pza{+iRT`Eh~f__OYDH9uDOu(1y< zfAxCY%Aad}p!|F6e>^@c%%G+q7CbHtl=_E84@5xUKh6Oe+Ye~)pVZeM@3{Z1`eI?@ z1^{hL44uqDAcq-XYJtGQ!3J<}v2zBR7+G5bO`U&d94*Yuo&V5pkNDwF?fD>of8mSA zV<&HD1NZ*)$9?uJiMR~0CI-z zf95QloIuFqj}pzFBe1ivfd&M@AP|zL1sDR10LB0l01#jbFb7xwtN}IvJAfm=8Q@}T z0(5jTwsQmmT%)BXokNs>ToUL*!lA+2atGf@A zmv60_5Ub6Yk4PWCO@y@C#Yx#fQPIA@+Rj05Co2--bZX){Ibu5EZ58P;j0}X5P8=6{`vahSf+O=9GvNDseclKo8-G}%Yre-i!%-ggmC&~>3`b1iP+4Q71U)v!H3m9ERV&mxa8`LRlp(Zh?x#FW+&lqdBa1SAkRS3N3vF-y74R_sSKu zr|y?=#!-1?quFzrrjk~6^7Ox}6#jKQP+9X|xMXH9YHiX2@OH*ztqAo8!*+eSP zhZ?@Ww8-q3E62^czECf1+odBxCFVm~%P{dXTPmaKHM(k<$j)iRrB|au*-_mn3@gR* zmrfI?S*CguQPZK}2z%FUvjju3hJJ(8GOg;yj+vdA{#czPuAw{@50z#I)^CDjj+c>Ngsi` z0F$Jtq`%WvlEpt+jjmpJ)x~x*Alb#<5-gytT0F~AAe7HB6$7pMMygPac4kO;G6SPZ zE9ax$uFRoBNVf$`%7iWXrMR~lmP8Me0lK5a=gsfTW+yv)2mDLVMCYNVtKx-o$lc%5 zMZo2hJZ)=!yDnm!e;u49@89FdHo~@P%|Ho%0M!8DZZ)aGj{AjC*WZ+av>O+KALePt zr^B5xZdJ8h94SZg?bDIAkp(*$2`RR5=Ci)JE@nYCH;l`&!IEGI{V_ksv29{T1-J|% z>h(i4$$Yt#FhHBaD(~X=lCSA+u1;8XXhrrLE?dPLit5wHN~22Rm`&b)tw49)psyq) z^4Hl#H$i?v^h|;fh5L4BZ}XNwNY&(3~tfahs>|v z@T{!3)_x~)%3@Kk$7(vVqBSs~q)&k>a%%TDAY;LBqTm+jFkeKOOxz#nz7Ev3Vl_*k zIq4RVQXgflx=+<^eM(-4bb;#*2xqdN`zMCD#RxCPRIT4`IS0diaI(#@);ox#q>695|=mS}J zs|)^cQ~kSJ>+v%8-{{Hz;cobczU1Ztp+}ZK_2q-Q`mb~)H`jmCl|27n>B=9P((JdU zw0+c-P5>u+Lu25B&itF!1bF^UZ~luxhV>6~&HsVkx_^$f?RPx7Xt?S27SAuC7-D^50E5&sVapU#@)GM&lFo?_1}q zE6XXMrODsjzNue&y_#g=zM^L;!gHuC=t|rK@m3JdXHBAZ1FRRT8ys90t@~NatRNK} ziU6XGg2*--R7~H;+I#+Q!36<>>x5k5hxD|JfT6*mWNE#y$OTF%h7`t^aff5HV}nB} z?V2NAL+$~&53=FDo1p|&w(f6M=rMvF|&_ZbbxBhuX7E*gP zo7j8!S|52@JS3=~&=n}r!up?(hq;GHQm>G?VwQ*^)r8E;98wsCHHC4Lr>~)nuXCdF z|JLN%{=0g)r2X%hmq@)Ln(b39>}`HW0g7i0WPA!LywE-r;d8s9gl+%98| zZN0kSL%sy6gf4@U#PP=tiFEDJP#;q_)?NfV zt&UbYI(>ApjzkNhV8I}ln&+B~g``;Hy&>}c{{4zDRH95J(1%!IiC(DRQ&jwI%$Omh z5&G9@f#=h*1elceeb7j7(8|hhG4iAUd8>+4Nov?hoD~Vd(fM#uL6x0LQP@C^^ zZX-DS@2)+A#4{(sO20@SPMg*>aD~d1L3NN`zM{^C3+jnbS#@I=OKhBkKKeN75H+a| zCe6eek%v701-Em*?c;q-<9@+>smqXWE;T@OvAmHt-TLU#=$i>sBeV;7kM^y4pJje$G-wT|x;Z+0*UUQ3L%=cp5<= zvy3avVeP;^QMZfrYP?3v#wAH9%nIrY(-&ga;&z>B)JngwN~?gZClCtCD7P$l1Pe9mK42JLM5~KE1#EyKYw{Cpu947B(u2DS-P~jlC*z7qlFER#HAmxm zau{)Ey+p9mG`wR3A&7^x>yspyH&&Raq;GGZZ99BP3BJZE_sh!Zbts!#YCeIeT=5F5 z0pjSS&rr8-M0aM3$9h)IFT}1>%uKtX?d3l_ZL(-ZV9}@(b{@6N=reWt5b;9Ly+j3o zA-X|Evn8!oBGlfVMRe6_#&Iu}6ij$2&i@9-gR5|GbDmvP82U2yd0lBfB|`!4XU4c! zVF9TXLvB(tvNgKg-$P5(@ysVHZMVfU3Fke%Yy3(J_X4|SwlZBk`U=ii6!C&Mq9>(c^Kb^HL}$=aHtv&_ z0+kHB=H&Gyd{YfJ-75lFoOD=A9lrpdPYw9}BIwO&exc&+EyT=g+4iFo9>*AXmd^C2 z-#n^P`oUj`9wvQ(QM9X_C>NvM3-!RF-n374WVwW)_}#l*qcGlA*M4^mn_# zwb$Dr+TWM1PZUID1GprCzMCiptJf4WYkOr!2=>WO#YZ_aKBbmX_3S~7esJiuDwSeEXItfK7Y@QTeKl0fiRjKbK#Z+ooAcEzPk2=|BgDH+)gR8VqWrm-u%K^f)uR*Ovfd^v1N#nD+`Q6 zJV2=l_9e07aB+~pCPOu3SqO63fc;MQGmErZijcQSDF};#V0&vK9^yqQV&1xkL>q|D z(#ugorj&&RZ!y(MRfieUXO6P8V22jxH5Lu*&(mZ93op+2H_xnGSgVlj(qk z1Jv$+YdZjS{cSrC0*C;_0O9}%fFwW)AOnyE$N}U53IIg_$N&dW2Wb4wx?l?O(*Vo> zW}v`CkVD}ogt7)YIe{z=wg6if8zYdp0ThV>f>ibZdyvb)&IDwK_zPP(yV?CKzH$e6 z{0qkVS69^^HpKrPW3h8GbN-33G(DVEK6DD?jt-(n7!CW0GM9u$4v{Sd9f!Xs3nf?V zRt{#ZFPtc{m~I)JF}2S4oH#XNEHj;qq9{h4>kAQ{b4@S5*0ww4wyn2K9}ZLXth#N* z^V=4sjq*^(aYxekNtZDJulu6oZ!fz>pKM5=5uupPU|485*t(voL=?soj|3F^Z}RlO zQ~1a9+XxZb3VMH2vQd&rs}Y_1VI`uO^Ymq&n;^!`G9 z$#k(`i>Nj&!`O0?O8V_Z`A4S&HsIho*C4lV?34p~S(Ef|9cj zb>Bc279Al#|LP`ahCRSZ?$J-<@cHKSRNww!5bKQKn7kpW)m#6aq|p}5wFZr>^e%A{ z@BR?v2UPFd98c$|-P=hs(uMC6fUw|#ZK->HalRd#j^Iw-S$27D+wa`l&4jnA-(iH( zb42VJ+&BH!kS8DppbgZ0F}(@oi!-KM9BbirBMAb8%i&PjO#PxOdF*q#`2CW zL)`Yx&Gt)j+R#H_od@hytvO+VZ+rsNOWjnAoJq{BPbWN2t#%~9$J}B=12O`}CshU= zbE@WM)d&)|bBJge5v&V(tgS1GV`ttoz@&RJZGtxn-YOrLTMdx(C(tZ-caUW20C8E8 zH>V@*1w7iT2Aqf#ae3(*!zV~RJ{Bf<@Yu``b**o&%n3J!vCDl8X2pcYJ?U=4mSAh^ zx51Bgt|kdBYcx@s7X^aN!gAX^htM+_@us=Kh$?!rqRI|KCA5OYjeqYh2nyE?b?2HC zRT>rjYDZe3-)il#ztl23{_6Hr!t7oqu&D$AY7eX!(QXnNnLQl|Ghw}VT=2@Ji_W{F zqlNgUWNf1mLQPH1rJ?!_9#~YaWKzW<0xi4adeA{$M0-Z|OV7F{jp8MmL)C?uDBupU zEfDntBIfPq`gwxGoXoHBunPxFo*D0$n$$NaH3&4P z@O=wDMl)ZMAE`3DlCQAyS}|)N&ii7PBNZ%xq%E36KQnhB?I~{{Mrt=<14r(~@O<~; zB`5V=^mm>QCO1qOIE~fLD8{fW)+~FlV^7}Zu#^!ZfG0`!()f>0uj=VVM#a@xBI?B~0SCvS4t%~Kx-PS`)< zmTGZTYBh-UC2|v>4kWC;bZxF6igwe8IzFK!1*YV*I&~}okz|m@BGH`wMqZYssv}L7!1?YEYz0v;0y5#T-a1 zoZX*mMJk$)>^1KDeO3cJmBgRln^fZ24UVqpab5Gv9O6KtNJ>X|9<(C+jusKJ-leNe zOIC>nkuLmlsEija-w+m5s{+_K6nK0lk7UcM~)#(0DDy0m&niwcZ=uYw?@hd&h- z202B9hkcD`$c9xBe1_NM%hk?kJL2iQ^Ct1h`9afQXt%ef@Sh|*+v@8_fkyQzXX=)W6~#@QK55-IYG%R^P4k#88Nds z>8$fPtBSN;a$gzdCVX8Ma)4^!aRip+F&m|Eb$4wuq*8rcv<%Iv4UZMys?YFdbnd;o4fw6=O_7qdAsrz3v2I zE-1mAc<^26vLuU+G}-!o!FAzknxIdO(gJ%*j&kyl$zfJTfINV z$r1}A#L-~jgdcXcq@vA7xGj9asUecD;6Am|R*b8Nd##2YYSR9i`qY-ioq&-+epOYs zU<4e4ez5-LAhEmUJbG5Za0(o=U{_VDlpI^}+1ZjnO5gGZ*3r3ZIx6H6^Fj2UmOb;u zn4%Z&-B{RpxQt44t^>sTDDet0EXt$=@+X8`wL0|PpqgVHH{~bUmzOs-?GrXT&{A#dM4^4aBirb)+h}#1l@Lfme33S zVQ{|eEo&_+RBUPYA&xs;ES|c?W;|y%uqT6E+F%UoMz*8WpCuMs+ErbgpCDd|QB3r0 zP+@4GE$d$M*3A0;`R4jow+rn}&Q|7yao&Zol};9{Rgd^~Gz5Y`mT)!%|NdBBqjCz= zS~h)EL4CERZU=M$WKDi`M}O6RPu~9d^~zUq?$AvdEzsRjK60Dw9%9(YF_e;^{|w*R z?4>NEaSah;V3~sovo=M%B9AdfXs0iDl`cQ|)Nwb%xeeQE$d!=M zvuw=Rez}ke56v2g!2!RLYsg3c>HG8VFvHDnq z;BQ|f@UG~yX?z1aoRxoz zows#r?$IkP8_~~ECp;((tdohbZ1Oehe%H9sR1$n_F&=jQ4d5rUw#;{oV`)%%Y2*VL z*=6RhvAeyto#&FFUbr&`>qK{fBrELAjW`x)Oh!7^lI6CYi6@eveoaj;i?ncIz*{B>CO0qJRW$1JS`!I`}UcOKJ~Nqio5I!`=h@5 z)|YNgbnVbMar3oP?Zj0Cm$$82@hHYPa*TJBPO?Ld{|8dR~uK^8WtrHsGAz&5~kN(Yp!FGd|F5 zUCDVzer~{ zK5w(;Bi0BuZYyKlPhZhAL?EA(J|d9)q3Ld|7}o1sx7hxiRyMgGS`yOLL|fUqYcm1T zWD~e1rXdT7i}=jT^uWNj4TooB?zk~BZq`~%-($c}48BYCQ_~2%o!E9MpFZ6>Ia_1W zYZkkP2T;%v;4}1nG`2(1eS@q@s+W2ZL9Z#3FDlwC>iArw9Xu@i$thyOj*k)g=`bHg zB9aq@0eB{s?s6Ay#g5p@xBAZc>($%H&*kAAtfAmR8@7t&CdlyAs|0w`wya|~$m9%` zIq%{+m$GktPI>se+98XlCE*0ucqyhyowRtFU#W(`zzVTv<->%afHhs3oj_8Kz?s&A zu~mP@sZV{uWMFrA-4_ku)!~N;jUfWVc5=WZU!<|uE=HzsDvx7OSs9x`kb1+W8xda` zM>y`%UP)4geY|WrnH)OtG26YSDQ`QMH}tpjeE#2ymVDu=4>5aYh9%AetP| zg`Ns6_A3tai?bG(5ay|JtY?D$`o*CQtqxF*X>Yr_`z|YhM5Pjx@TD_cU}pOAosiTu zN?hc~*zjsg9nHPsuI+^bxBoO<5&pj7!M3&wRd?%$Qv0%_RNiW)9tzDcBYMlTg+l?p zyKnU*g&hQtwZ2DpP5x~5*)RE=H5?;?F=H%D22ok~#NINJzWDdPKe%|yOcREfu#uE5R{BcXo}8AZvRz&TW`@OzfM+?47ZIBj}cP!_RX!Ci=}-<>*rLZ~LYS@MRKC z%1J##Lu(`@g`Z%tab4b^B0$X5*je=8nm>EJux586^Q_=`4j4j5t8^L5{sH0#b50-V zu+{YRmgT}%VZymp%7_h?x0RtD8qzrLsCl4dGHNgtZIuNBbeLrYQE-JAO2kzTE}Q*k z5GcP-WzD7ENd%#AM|`8%394DrY_EEQ3CGuM+{lxWK2kv)Lp-+gEgu%vZlwPW`RH6r z<_Q1ug4p(4C9>Xi^IlPc#d?3Ocg?Gii{_CXam4aw<~j9vOby9jVLHcjECDdmIi+Q+ z7ga)9w`&B6o9xZ|OV1}zZe1hhX1eX_4gA>xOdImMM=4QWg}RA=MbRskmI)Pt?Gidi z@g~IC#eMs5)Qzm$mMPc6!5p&M1!JnlQR2$rmxGsB>T>2u(WP!S15O67`W*u`9E0q9s=F|8|&Ub2lqYN_Lv_md!P^=ke`$1 zcU%xBD0=F_F!wVo=pn%8FWVld-QR3`|H0Dt63bN?;eN6kuAMT4LtCDuy;Haxjp z^$llkG-^5PLJ0-REG*pYkO-`31p@fiog^6?WqRN>1y2~12X%F5?^{?1HKiUU+%fH! zB@LEJ^>qu;4RzLLQFZkTX~*vpNS*x0(!cN@d~ZIs^ZB;umEFhMDS$Lw`%33LyjHp| zk3A@DWl?OyTK)AVMJHWP>nFp{QOZi|;|4zPSJy`w0V@cBJ##s)U=l}6ytO#JH)k6s zw)&4EZ~%I>dMf2}JKI~Ik-r?(x+RC0?271h!iSB~j}9w^Fy`QHYXzlm$EzD*A^*kL(O zgC1Fw#XBc7rK^kd2=PeK8oQ0w>Ir0Hq{tUB^iCt%k>Cuv>!leP*mKf2OD+&Qn|BL1 zwy zcL!EBS~e-FH_Wgh{%sbm!7}5=Ps>$(Sg>V1ZU_aRT=H82hL$!x#_(w3`N7$}KaVVP zWj(!1Z7(L%s9#Ev>wsD0+?qVyIf7Af=7(VLrV<<*eC6p$mv+;hd1@GFsXv~oT>tge z)-HkC`>ZA2I2=wceGyZ3x?;LkvsO*KKx~X_(`#uSx>-jqf>x^<0*zDz>8a4bepqxL zX7-OvoOS&3^KVWa_-4vg}+#h~d zb%F`yRq2O%bAMVcU?uDDv`o;=ofxBAbp+qhvUJ!1nUgc6f#&M?a6SnAqa02gbG-aj zHv}swt6vujL_Ezjr9{73-ywx2_z@bFLpur=4{e}FjxT?#P@<}8K)iR}b|vQpL3vwT zak>U}3Kd;9<9Dr8Uel;t@-+ARuH400N8fAuWD?%I|B{rzbjflJ-oafa^W;I}!0dZ|?xd3a>L>Kj>8 z8XSeyYTMr?0w4&-;)RrN=-$$*o~Gx=+GVjRe~~m9OhQsC^pJ4kaFMs zV7qTQfs-<}So^#Bbng8{wTNA)WsWD`cJVV8nHPruy%xw^;mVye4GpXv91|0oJq_c; zwIfN!Et_ki7uOw0uV&BY=m-y-sfJyR)ts4tY;R%tVqQ(Y1DL(duU0+dlZ~yi$v0XR zH-fNh+q9SEoL)WR`*=i0+4feL&SKIr0hwQ1R>s0z#=pcdYL1fHFQ)oHH~E?5$fusq z9<=15zVG+=@Dm0xn#i%;|elcC{hqpDr0U$A_W7E6(}%{iV=~D#!$y~8kMd6$ zJvHMeb8r*!2PR4WvL2Yb%=5Dp3J`W-T*-x;oa>fON%($Zx7sUn(>xc;vEj@PNm^81 z*oD|%Tqf~4LTksF5s9E9f*LTIq+<_i2KA1}=2D3sqwM(dic+3ueh? z5L&%wq}51194^zb5(3`<@(yspxKwtt@P>MxWKikQ?Tbbcg@@lPY<%VAAGO~0I}4C> zt)eN+p>pC(t8+w-W6BPN>=NBhffg*dPFb_*A#^RBwf;z_JEDx0&5m-^7BmAzx~UDL zt<&bf@Y$SK*Ue#du$3i}?Bet#+-vE~1!rL?oRw%iCd`wdH3l<G1okc@HQU*mEhG3BIC z5VX_NQ6v8BlDBvux-7=^$><*ZxOXPC|1Kn@Y^NhwWSiS^!8})rFm#pgLou@iIBHSf zMHH7TYQyd5SCoXPR~Nnm5hzEux-L(y)4y|e2G|h`xH;a=bicU8^p{%snwI~~k}#dK z!|Untt0I=O`lSl-R#x1#JGrE9Q=yUGgraVdu&w7&#Pj%(-(C|JTe~g+U9{=u^&4&r zTN||v8R|X0lZc8GV%|^ryq)B5VCMFA+N#x82pqIU%h5_AMZ9`Ccvf3s)N8 z6a2q}l|OX#@Ba||Qw+1xKZn)-a71!};0h}!hWRnbo0I#uClcge`~_CH|K^C~OWnL#&*_rwg6*08ymyNpynUJ z-=NrLQwxyq(HvmzVQ&t!1;sgA0<0cmok5;Q3tJ$_=V%A|1^FEx{`>eC7yg)f3=03{ zjQr1G<3IeAKpTr6!~co~b2fJbf}+Cy-EZjzc=TKXJb{jOe_}1Rhah_8zp&P0{{J|% zngjHo&cC}aLF%GakY(%jrYLqKwGpP3l}$r*gL+|C2U-`Bg|Y_qvPS8nBLh1xyWxhiZ}waVl}!OFbJw4bJl!gq)=+ytnjJql zE|0J8Tr~rSvHaf}jdEjU;H7mg(eSYF4Sw;U+w3vIku}sav6GPUNr|-EVfM#|O6`GR z)3wAoDQ;ttG3)z|YcR{$8}wGYiKhE3JzJssU^uy>hKYxYhKZAx+IT%(t!z~rFRt$7 zOG1!d++NM36r%oH9}_WZ%3?}!YT#jnT;zLMeQuA>!rAY4M*>gk@4s}dx_-MqQb6l} zrjxKDx01Zkz;7er`L1$gS?d@W5<%YX6n%tEx{8aBO}vSDKM2b?P+$< zK0-yLD!8K|hH4tovqVW!nqm+-D8b>9$2SjS)IC+u5(K8+5wxX8=|;ER2G#jZOSL9= z4T7JMCZ@g0=;U+Rn;9wTl3(PqF(F9LV!J!XCp6VGeK$hng6weQ({mpbW5$&Ff%72a zqfhExKH+-fgiS-n;8F0R$Tiop!nhXSrv@INldXMV?|Cz zaOTWjLPIjj^Xw9Zc_z`g#2tPuTYGdSzX2Q7Y9-srtXxBs%a^-B6%rWzUaklviqbEA zY1K){)+6W=ddeAKo$ItP7)5!dy`E>`s*1KnS3&WQr1l{@zRU5nhAh}=5iB9d9w1gr zVQ|*j4TDT{mB|{ZgM-HL|xF@z*u#>8W?(Lc0c4$LUd1tWeeM|1_ z>`Nm7XRVj;Ht0Dh7%=%&ErR}rYE6NzK8`H;bVkSCYbh?bn&RH_qCK|HVP!^-gy)YT z-X>NyHWx^96>PTLBYg~xftVYCC4}rtv9Lf2&r8#q90pJV|7z$Le-*#(F_c9`kv@k*~B- zB0K2RGzL=^jEmINu~t$|y^@h|3o=Z|2&oc*o*#*?=WAd`NaJyoF8l-*L6DGuHkb(6 zr{Z-$C7fgF>g7UGGs#JZUlm39^+Z~r9hh_O`e&Nh;0Qpp3Gp#*{lH@U(J@cHL>RNu zl%GJX1Lhz z6yKbX6i$5uzTG0mICr9}tAt7fZ=EjSW_%r*>)WO4@La4dJCGrj)Ak_f^ZGM0&ioRH z>*wrL?!%3J0?QQ;G!|Z|054620X&S_`6MSpRCtRMnSlmG(ifk<5ZuCbO0^z)z4|l| z`XNdWioFyw4mGh5dVKi4Qnpb{PK0zv#8yXZFRV&nB#NJ@`IxI3hYTXe0{wuK2t}5c z)(dfBz@#~~5~-ix5eSyzn>#gg{z=0MWhs>CV7r??@q zgIwW-S=?K16P^$vjq(yay%7{%k+)b?f6rCs0C1Tv8HKS3x>6ya?s+>SVpBL%3r^av zF*8IovcTJPT_rTGb8c^F*Gsr0d_yiFUy3**MxO(L(6N-Nlx`>sdm*0fYtwl&(20bu z7k)5QDGdvMJ8`qsP0Z3^jPI{oKO~(#6n@D~aoz1`Fge3hl4ohj=)+iw+?&hZ~oKlP$ zrLW_#_Sj*N@4$H_Dy@*)yo;J%6^O)YWTmBNWW(Pm#TOk2&tJ1$%5o^6_SnK6%(1u| zM%rW}E*@?rW2A|BWdx(2Kp=EaYz^P91s09U^ZWD?D zlfccnKju$^a(BcnHqkX&A}Uu9UyoMOt*O)Hz%SQGwp5rrfvp#peZf#m`y4IG1WQs~ zrtmCr1WJoMCuYDc3#}J+SB=g^TII=ypo#aAHhjc477F@6l>`I(*t#tG+1D=4DP8(K z*(S?3Sg?r7#_|;cRy6#VQwXEPW?Ns|)Q2e`qmRo&zn*ciEHfrlF*v@XabYGTW~9ar zhzP`}?RZ}VMxHZ4i-2AA1ksL#y^KDb-Zu@kbXe{M%t9~(m1@A?NQqMtXi~;EIGKpP#yul`$1mx)>93nI4X68-U_P;gw3+- zzhPuhE2XzlM8JB{l2qa=KR6-@Pb%3C6;{@?Zv8}LgMDNNAbs*W)RW{yj;K0tUp1M| z4^L8c?=0~HZB!GAX=n&In7Y6lCaz4@b$byiRfSx!of9tUQ46XKHQK;yf^u5M=|n$P zfj4x3Bl>q`u2OG!q8ODX%b1;+ zVJz9Q??NcXSjWsX$Qq$+C0tS>Mp1UMW>+Cg*+Qv^%34bHwD_J;w|k}6@4kMo*FCTK z_52>af4d3dj zQ2=_8|E+oI-R2m5L*nFAQ%qNzrgdyqqEl;6h6J1CnTuNQ_wWgrR7t7U(xx_jB{S+> zh~wDUo5`N}ny}kXF#L zsWUT?b~Q1#@2jxXvGUqgOyoiJfh6aiaR$ZMj)?L29@IFLa8f;h-I{#k&o>&m*^O34 z`vW!|UlxE$n@{#Bw{F9=-NQa|AeN#Y7nUfBoEr$Tzd!mqXgFtqyC>mGtU{piX2@m9 z?%m1~jL(lgjogdWmb62^=V%cQH5qQF^^ZYx7WZCYZxdLqp1(FF;zBWuaAlolFO$D3 zD|B0R(P!(Pe0M%9L|Jq${(knQnS^*xn|i6|HoY#(GLUG6nnTk3Cpji<-W)s~tnyqB z6`AnOBzGYYSfRCz{UFtX>>v!1O~ z&b09Jog5$Gr|&%kMswJW^UD^!|2|I*nh>!QZori*eL1h%@`vIQ4Y5yO~-d zyADz(KBuYd%u5SmVRg~h-m2k-cN5#~44r57XE>wpaG5JFwtj0Xr>K}*tF2r>POmH_ zb!LWQ8ckzvKS;x$1c@0B zoDFH>y@lmJfJRkdc~vYvznP8h3~w)gRRemI5i&(RmX{`k_;Z`G6srDGQ_T*-9b6Nx zJ+qjk9&i9`2c5$|2n)O()rHo_SgvTDo4%SF#=Lgc&5GbW@kx9A!eSeb=&+-$Au)VV zm+8nsO;;A>o!AuK-Tv5pO&mTwM`-@gjBf!;$OHP@yG}1}t@sk?)M-ZJ?}Z$Dc|9#D zUVR!~le8eGU{Hul`obcTb$L3!w#;1JxQv19yPkEgBcrOSK)&>3y|;2(x2fG!cZl<} ze5unHRnO2~vQbNIitS6+8wxvS>9osXattZVfSBOO!q#0+oXC!tmm!r)SFaA}?z#VZ z(fxYynci6UHtEsKL~-HU4TVpq%6h61vl=OI3_A)-w6>WHh(QIzj@K| zm>`zJs@JRMl#m2u%tQXtlG%qXE6EpYCPI^A_IC)SC8py`@>ff{wx`ixa^5>CFj2fx zY>QWBZw&96PTu3;KyB1i+MX&g_QE62KyyS2d+u-hK{cMOoUt{q}YoMHIiuPhms zhhKRT|BMG$RB)1Q%=3Iijfr7mq5o3loFUoBuDHy;c=zp~yZtf|RgCaY6O!8s#36^T zJa{oS+Y^ZWZ2WYVkvHQUH+;nPg6nPp($lccI`r77pm)>VzVAhe;RQu;)zR7|9=u2R zg}T~Q_pno-=ZCIKZTYgI6(pICJ~qcMf8KcsmfpTBNzvBOpc}h80&o&{9UTpKp7K|s zN2*bK{}77sx^sGVmv&I<__wXEi#z*GxW|7BKfAIP`YK}!{{>+#rd1VhfC`%+zo}JmNP-2psdL+0he^ae>NNt-tBs% zD7-!TT4`!~Ej-CT^y%`_ZnwvS-f9XNqEzrUPlGZ0hp1|wz zbLQ79$7^<6ojZJ%*D|5MKC4CN+Xel+`U}NwV}~oF=Ve>kO9h?B{J+poP!e8n5Umbh zdMk}r7<=BHvAi!y+vRIUPwlz+jQ)$Ao<+?|cs5yUwNzN1`5A}UT-`YF>*Bm*5v#5B z(bXn~9OQuEEO^D+Xoj^@pWO{NK_jOkClTu{WxV$lgxMco(b>z@)^6|`fu}s!^ijhi zMl-!)?ujplUP)YV)eE}2(vIpw3>XxZBs8@(w`vo?R5f!*+;2l&aF2^=6T;( zUvQt@qN$=iv_hD-(av5HY-;;@?PZij>S?JS=Z+oR*Lk#GCqoFVDN#GV7M83q5(l@n z-x)IW-+LUfgWlpe7($j!`N}JYfI=0s#qu-rZ`YMU%MeBreD*_@0wxhYFG_fGzz~Uy z=+~6!ycJQ#!Zum-NS!?EJ&zmLxmGmxff(7F^d^<(C0?d>Ej@+>FWo(1=KUmdu6CKi z>C^)c;16Jb#LJgS*ED!Fusd>}s$hYQ@QRcIC(+=ZM9jJPJmIu+1hscW*%Vp9@~16& z%GL!0J(Q9$n_sCL|F)7AbLzdhJI&IOg7)!@j{-V!Znsxs8}>U{bPe--@or7hVhL*Q z9kjbk6)j0}Sl%bsxy#G2Kp}7R1`7}6tnG27$ECw z@r0c@YOB^?19d+HSw(Aw#D_(xG-oFDt?d0wKPXsb(fOR3>bo*vhUHM^67nkuG3mBO zpMI3vvZZopXj9}IL~@(rPBn&CMD5PnIPLrGv=okFj=9lK61(GioRz7Zl^nN@=hYZL zK9omCCsb@&$&GjG)(Ef_J}BO6XCF9nV2tJ9{L7@s*!KDo{_^ZSl?Leo#e*}+#dW^# zs{_?xCzamsshL&io4D}MBG})^IzQ`y1Kshh$PKxvGadJnC;@an{ff(#on8i?+~>j) z$Mb1t2EOs>dlzkmaED7F7QCC!z2EYAvZ148q+q40V^P;X!8p4wht)M&zg?p=s_h`Z@2pZ@b1nW`RH&CwMT1Mg!~WsM(yaZq)F$a9auJT8vs&r{&Omq^ z7&314ANQksw_TeTo~<5snmNB<^tf-#Eq|~A*4-%=EEY3R>ny+2k<=fSI$}^awZh(z zy{RK|<>RB<5s$OWHcuB@4~-A$As!u@^1ejfTo|J6n=0|yc=4c`yZrJyw|!%ooIW+d z3r~#h1SJeM=Zy}jrNvzx1PzEm6SMg8h)rF*i^6 z57%d`V>x+&L+w!g+i@X1=tfim_)Lj3E zNIuyA7UAlU+ZDuXm5&#aSU(;g73LP(_;>#rvF4x8Cj3Q}`_+kg+moDJCUs#+#eo1hiqV7X(Nsy!E=T<6BojY;@~5&#YlW;(XBXF}W|US2K^czXoK(LoMDf}-s0aR95u zQ4R`laNtlP35iA^f$dlhMB-oW01*7|{Q(yMhbUkifHOQmSak3rlIR48rlBra)0yhw z`JHG7#>rsd5ZI6I|5s4~x%qumKtg{Eg94y~*8?zij=pNZ#w|r89EpI!u}~z^6p6ya zQFtWWN&)tZ5|DSmN_B0k*S}c(L+Kw@RJtiJ5fq*1R7XefDdxs7VEhp>NTdwy0ND?yN*WEI46VHd0S3%Oh@t{;(bL6~Oj2B{I2E$z z_Y<-Uvx4wsJBkwl;sbRcIof%VJt2x_lr?RK@7W-`D1JX#vxEKJ)^BpPCITuNNE__u z{X!80{*R9TuA#qgk^lyS0P$wt0yh9L{(-IftC|n}u9zi&=dzdu0?ce?i5yY`DhY{z zW06QC3XTG*3J!+=A3zPLzJJm9Q4NQFS1%Gj0iiy0k|RLoLZLy-+tl|1*jkD~VZe^y zA2O6I4uE|z4>0A242eNtfi11;WN?%$64+b$iwp$^*ih?ba0C_@ko7VI0==<4ISjB^ zylj$q;g~8*MR26u{D0uZKZ1L2Bz{a5NVFt6u~h_z~Qo_ZwR*oJmRjrM)#I z+{vt!mZtx4xzBa^+LSg}0=6YK+oC%y=F9RTB8*Op$4Kbr|s0}h% zwA_aFuqY;RHXRN$&Aa)1z_s-l9{kX8J54I3uC*Td6}?zvVlNDK-k2fQUl-9Q8MKZ8H;V*mgE literal 0 HcmV?d00001 diff --git a/dependencies/libarchive-3.4.2/doc/pdf/archive_read_format.3.pdf b/dependencies/libarchive-3.5.2/doc/pdf/archive_read_format.3.pdf similarity index 54% rename from dependencies/libarchive-3.4.2/doc/pdf/archive_read_format.3.pdf rename to dependencies/libarchive-3.5.2/doc/pdf/archive_read_format.3.pdf index 54bf0df297db26813bf0f8d2974cca9c29af3148..554df99236e5f232e660e29f26388c888339104f 100644 GIT binary patch delta 11770 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 delta 11544 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 Y#MRx~)xr`T^yk^&MW?5iRF*>jUlX+uMgRZ+ diff --git a/dependencies/libarchive-3.5.2/doc/pdf/archive_read_free.3.pdf b/dependencies/libarchive-3.5.2/doc/pdf/archive_read_free.3.pdf new file mode 100644 index 0000000000000000000000000000000000000000..5c5c370aaaa6d8ff8c0e0dcfcc932b62199a7f59 GIT binary patch literal 22789 zcmb?@1yo$i(rzHZ-3jgvgS)%C2ZzDkEx5b82ZFl=_YmA&f(3U-fI#34IhJ$oz5l!K zUvJIY%x#u7dR}>YeXJTN5B_BMFEr2B_m$G%WGd6U#u(RbRvNv=#2beh# z(JRsu(VM6UiHj+NzD4Y8Km`^?7S^z@Ac#r6ou4O#6UHLg;Yf( ziRhg~#nh!l#Q5w@Ox+wUoPnSmCub8o7iT^J(5-@tv%QP6xP>+FIr(4p1j|OmNMvVZ z3Cqh1kOkVBIhzx)gL0GsASup3MA+O4vq z{^;xq5EKx7n&fcsK_038Y##h=iP@{SX+PNCeJ5w`nttio0TC$4x5z)b z%!UpVB6_?{CBD*UEo8sr)bKXTW8`b5ukK@e>znEnyR-F54O-`;yXLFAZ@w%v(1_le z9cw-6!?#~|>05_S%L_e)&*a6HO@K=8&Jwqhc1|Lo(d;Wyy_YBq1}52q!>E~v0p0|g zL_6j^q+dR@>Cwm(j8YAb#=difI=fHy1e4KnTYeE4$JpRUIZRYK{q~#Ex*GG+T9Jp= zh^xO?sB;yAcn&xog#TNf^Q$-vtqwx2f(Indvcj0bK_BD>qHBMM?}lxMPe^<(h!NlU zrB_gW#xcx{3at|!_E7hpJP$yl3qXuxk9K*92~{J=jh6^nCIU@;OF3)(ptKxqJX*kc zD6f^NvYe$PY)>~C;PCaa!_DQ+vqNX%#|t!^{&m3BlkL+<)&wQH1TOB_C2t0@N>^lv zfqv+dQb9QZlD~0kK}dG9Ue20AR*WEL5Q6-my}eIoWbhhsZ>NGa_?1&JJntl@4@_Ok z8G~umUD}(`_A$T$hk!K$2Prt0;@dlvWJQc|(2T#H)JTFy_J5Wb$BGKtAVgeNZ-?~_>otMt z%&6$@;&vYHq;Xce78zaA$8lE>$ldQo__1EaZa1GQU=6UV$~D_ag*&Vyejq`2{hE1c zKMEvOs!v5*CQVY$ne*JTBs`iE>;kw_(XR3f8{=_(S98T}_=@eap04+UR&=W=WirL# z2)|&~Ow=M_??&o7Edg%Cp)zX7So^b z%W@;?(nMlOg9g`Ugu*+f<~qmU`ola~x25M1^cAdWg$7T#erBg|CkXkdVK}QC_5mW1 zd+VF#2hNWUv!s=ybMXm*qOnfW?XTq3S=Cy2itI}UE0&H#=rr+qhv;x-V5>M+THn9$ zo{aBz!xbijkMzdFMw4aKCW!Tblq};f9W`u6NufbUGhRMUgv3A2xE zG6|;GE|@IC&JByouRFQmM&HLI-p!}Kqj75$!@m09#ncFe)+Zk5t-A6>76E>Du9Npm zThk9X?6hOvenvA@sFW13L=4K(arZJ8p_meUn9-L4Ib_p&VL$X#pfTcXdG(>k8H+}} zbisWNwGb3{xmr_8`0-|7ubrE(cdvD&8ZIQP&BUU z<_*40Ih}h~U>%o5J1!1(!;cSKZb%2rT&ohNt9n3kK`Em{2V7lz*uX>?ZMST*KydHe z#S1QUz4#(HYS83x{q&mYC598{&i$T9h8#8g-j5YPienmdAf{OM(lHn?y3!<=kg7&r z4~q@Dbl@qtq($n0@qDdE&eWRi^9)Dy!;tO}3FXSV*tS6r{`t4M{pr|lhzH%&Vw&W} z6z55T_jQZ3OcoQzx~b6*xUF>W%lYB`IL5tkmg|a7VGN|3*|Uuw4!|`b;Jq2^c?8Qu zVM3(h{MWf>=l!nb-!pnQ?NpdJl|@W7AcK*Oo;ggonzpO)uZ}>}tDG7Wk_Q^H?GNi} z3=;cGp($tM#{hNBZd%kMvvnH6N^Nc6k^`6<`5OIUg-a_k$Y|p#%IX3Vpsoiw*m~`$ zDDG$XKA3afa>inu>okm+2ny(zlKC2f*Ibh($(;j^9P%~$D`=Mj4~euA1@c47c;TK*xEjAUlQ+ASPioH|BFsz? zn7bX{?M&P5*5k=*MHrkfKT$Zcx~{K7@bpEFo-<8D`Ow~g8JJ0)g?4z3sDgxL0Ts`#uOa^_|qN>+AH*Bjx!bGEFRk z-jMihU9DB~M_eioTeEFib~zm_!Y6}1DzKM>>6VV@51$-v}G zZQ`y#tQI})x!Io8Ai3{m$)pTLjHj~kX54#y6m7~}LWvGCvMMC{<-;~|MMOz#OYq(z z`B&c}_jo+?vlFBh@F(>zHWI1Y6pi!M^*?fAer&dVDnB`vxV^()g!Zxp+M4|CPeFIj zKKR-5K7TWDvNOZ}p2zx^e^&Ld2Lcog&42(opoxW{u$?>68%9tu8y6c9Co8iqEI`@L z8RV^r7(ulhfws;>EYGeSlnr#Ub8$2VI)R+LqNAO$3efot0EAYE0IEQDXHYvacV`Ke zpG}##erqCb2WrmzEL|BEEGZyY_NGXG0TE2@x~rKlpW7+_rN_@<{!z-r0n7BW9H7j^4$Jf#7*b|p zg=P9V5>PHPEEDsy0MIQXEYnXD0hBpme=7Hv(4Rtn7b}X-{Z0AVC^i#x7Tl_471%WU}Cub3JLq{SmHh`?*@AphhTmTIV6K8X$ zH$?1=jIfN)fB)_ESMIZ#|ELA~oc@>GKWaU%3R@8Bv#>P-b!IDM>tyj~TE)f4`FSlq z&o{`(f6nJ0>ld`l{v5K3hmDb)^{<2aLktn~Z^r!((teiyZor=_|BrS*W&fG@r*5Ja zrlvs9;s>pE(BfkTfQ$xov~aSr0ReE`Uv&NDx%yLAMF~w6QTacnhhD+R+QPvF_%GA+ z^AY%UM1M^a3-hnj#QDcG{ch@KbN`1AXcGU&&;N(=f1U2<9{*SrfAs!)`e%QCl>PGk zzgZT~Ps=}_1T9GkZE@j0O)YF^ZSpU6{`vg>@9g}n@xS~0%>R$J{H@g=b$&_xVx{NY zze;|)`a;kDC9R`FIxo&-qYN6xEiNpjEZ7 z0XotD+u3-2TPy$HXM^+4cM~i#+dqf@kMw_>h~Mjh$~l;siP+gWet!RP|63^w=krS) zWF}B47c1*;H8?n7*_oa-eXh&K#{Rdq&$U7M{|l2nznK4NF+~w!WfiU8Ev9T|V`%%& z1^m;M{@*Re#PZjB;$Kb1!oouId_61wT>5vC`sF@vt(bAB=9 zALe{E)U%0xGu9t{Jm+$PO#5uW=e7Eqfq$CvPs9Gz%WroeEkHF{L6h*T&#&LlQvcBL zH*KC%&vzW4>-UnMBl&G)&y)IG`bV3e)A;*1f9dt7UcaP&j*^Lyk@1(g1<3(rD+B(M zd-)ge@Q1g1b_f5RdwHHYppA*4)89PHFN@`;-}<|k|G7xy4Q+t`4h#r`Fx?w^5Oknt z;smXG5FlU&t=DG`21FgPu)qR@oQ$7w9VizB$qel!ffi=wzbBu8#B<^KiQ~kH7`}PCHx#g=5$yZ zQ+R%R7VEYGXs^7(`C(UoU4lqeg2?uRIte2|bW}`eNs^49)MKg$7_bB)0AZfyEWrgB zA~emZZTYK%h!5z^mGf$%^3BC=o(zNEC{O~tJikj!qzmji?78`VcI!I3abT=^`Ek=e zj3}L#LnXng#W&SuyQUm(u^A78G3)JD02BeO<3~hpCv!82<@A-hL&~q<_8u^t?bzro z20DmlDxwh%HafBa#i^-oadgF094y9Wo%f!fbM2fJXdQij4De|tq^1+Q+z4_&B+zNe zH;HBtrl)69OgP2HNdZr%R#uJ4USC$6wAghvYCJrB>t?hrRZU6EOa%a_R&yxUiKRZL zrzih-9U^8pwMe%Af5R%I< ziy>42zlx{IL6tkkVdlfTcI0)4tWa9}Pe^+j$OQd^$2%mh38vkzNU>kF2k9v;v_*Np z;y2-d`C;GEDw;oOl|kj$fRHipL8nNG#&U{9Glt{9h2ovGhG4kRYoGhf?T{5`%C{92 zEhUXL?78E_dD<&&dcYopKIO%Rd8132p%2)RDndy^wwrLedG>U9;rAf0 zi$ZI3Zo^3JU-sc_!0J5lL%cG$;F*al97YWm;Dy&Y`r6qQ8v1#Er#=+vJ(cQ<5S9%a zNOrzjNN*f}eZ}yDksQFRBueq}slK=Lp1AYqWkAO~1iZlG$Pcg2D(r}3vN)tK za`WGY`eB~HVQoR&vq=LhTf=bzO!cn|*R8hutiSZtbiI!YAoR!QJm7(;iP>dn7H<`r z$tb3;ESsGQ5~}8yPdfO9U6O^_!VoE+=X-S*f@JM|V*RQ*ZB!i09_Pg%R7(7t9_|`J zbJc?z8rCxKc)~8hV&>N_-^Edu;$1owJXR3s(y+0Q=pIf^DJ(UdTKNk+Mda>;Japsr zfO$vZaBppH#H+p(;-lcxOk2XU8crW%mb7_0swIk7)2Wx=s2506GOHYIt@45=_PMf| zG-4^)h}jhR(wzW!lw6I@F5ZfB=?aqBjol9H*3@H(H5vbi*?i&VTv8i`-2H{a!VZ(D z&U@K*n}Wtt+TduJ5@8|Qt^#2EM)6{u*%1o&@O!0h{tf~4h*)TRbDvoT)TKHP}yIh>cjX0WTGz}@DKk;bWDW-V>JLw9bd?hJau(R(0QyehaD zQ|y4y+0jkca9tOE$?spb-rMyO>Jc94+`6A}gAbCE3EZT@R&*=^Xu{C8?&3+n=9TD= zNC;4DfhI~;&E+6X6*|({;V}2+C2a9c$C<dA;a;f;hxB{{fX50~pP%JMdOT6AftmM24bwaY0)DT1~UtkuIxNK`!E!5SD`+v-SyRu^Oto@ zP5R*}7EhniQdiHKi%R8+??O%WulVmC_(s7$IX%RXm1c0OmeAKO6~udvQofC+M~^@? zY2+YYKZZcSEbv++Rrhl;@HF7g;l_61#%`=}Kf&1t*L~01U9bt5SZxg&C$`TJaHARG zqBOKe0^CN6&6GENHeoBIn|U9(Q^1=qZt_xt-;p$8(YhO-OUhtkdiYO|;B^5={)&S4_q z3XM2cLOKV4+mpvE0OpX2*2Zxy?68UVhy_u`4z_&D92*irW2%o-j;2pofv^uIZ3miP z6Oje$Rbkn7*D&rjay7wq%P&iMZU`>?UI{)&B6EfiHWusdRR_}&$j6bdo#dr`+| z)7aD+yELc_(9BnciAT6tiBT1*2@?wv^~XgE+Ah}Bm@rY*?v^=(1QD z$G%z?+;xOByiZ`4G4(RkXQ{52kNo45{A{JH+fPTHp2|m z>g|;binPp05y2T>an*1iU*lQcK8e40VFWuXHjt4p{T0{I@k$N$MM?mC-YZ%`3U??I ze~upBILO_=U;~uAZpk`KB1o4FW;Vd#5>>JJ2lK{#e@)U(IY3@DQ(_uc@I6!S+fVN@ zdC4^u!s8Uu7&3d%?W$<1o!>Osx24^E$Q?J0_!=)5Cvq{WZYR@iWl6K`n4b8_@$0a> z9U#fA$B#|%bdHDC;5BOxP8%Cs<`!IUu=d+RWX2UpI5?^N%JDDuLaFTnSNl=d2w!M1 z>tBV%NC;fbzKdg|BSZZNW5Jviq(#>k(O+H~COl-0=ZVPov>!d9Ihw9M?6a>lu4upr zHlvb~(xIL(EYcX>So!|7=20 z1$Q+@%%WVOR=`Ke)Q5HI`Zp)+nxv&9Z2Yms9q}&kiLO4g9y$w|ep>{3?e)4{<+FpO zD_3u(GnLnnQ(7AsI*>fcL&x28mzoES7JFOi!RQ<2Y$KW*(pDc$6}(;^os^Td)aWtb z%NRkvO;$1k7G?9yo;3q03@*xL%&fE{13YcL?&L?BQ{r6OT*}w==L&+krRFPcluc>f z&Z^y5xw9(X5zO~-OVv-=lrZARlrIU9Al+%QvayOUN4I`D<&L9bu927jXhV?>oU>+n zf6zcIcg-YyT*|gQRwJF`K(ptio`DjO+CjN2U}N=ROKG`+3LZMQTqTY>(*DdMEQxO@}V;!eFd*N4BjizJv^ zn4UFZUCyRfdtilWu`4))PVRf6xgokIbZWm}uA90+?B2atb(O{g8?Jt}RY^|~`*|CN zy{4xP<$(255q05^scv%Z>_BOrI14Jej?^Ca1x47fwL+&Dxq1 z%z!AKg3mUkZu-?x(fXR%grl;}03LUpSl5K?stH>l<-5!}Tr>62ox(PZa1+Xzq~a>l zscIyYAG2!jFU{!`_&BMfHpF_llE|H07aE1Sc6yFdYp^NN4w=&Wws7l}uI2caSQ|d24MO;Uivp+(Cum0i&^32ZzrI%N4MU|PMu9~U zMuUQZfFXu|EcuZd%iq{H9TuzZ>jU4b-t28RNSR~njtp7WY#yF@7?!zwysJGTz4d-c zgd2|ruDnf#)D5@$#H1O+QQ$SZS!+%o8fosH#Bg5npK%=XL|{7F!-fp|HLBLg58lEIUR+7uFSh>gojVH)7w50eUBkjz1&Gt> z|7{l*qLzFbmO|}yo)~%%7dI(mSO5_$1YIVOy2x3f6|m%4-zc|USTxqj#%gg8;G&3` z9|7L$Kc&P=Gg{*G@%3P^gCZ+~{?7KGH-}87@Yk&L#K--X&)*m(?%O9u-l2X};w7+~ z-cHCEE_fLB7$Gn6`havLJmZo7dRy2n_H#`0gZIM34OvK#R1#A-l+-pcb-t7MFy+vG zJx|=3D_N#6`MEoiK;r-trB~l>REyJ@ua5G%qL!+nX7=Oc14QJs8%Lpp#&qtdY8o2k z;t7(c+1*s>;gQRMIjhKF*9Fxg0a6s1>3a6}PMA@Ttd46>H!sALZuluucsmOmfofmN zGUggvta8Rz61!~egf>G8%w#zDYFK`B4#*5qSmGy(jTM?I;g&AV)~m873)vJfmyXRk z9{N}ke0|jzpe;34oKvW-R9+f9t1@d>YE}|jx>5>6kCo0leJ?uucDwh9V5jnn)?iWW z{mt!GkQNLfMauNi0pO13R-ftnO4Hi6379rY3I)1scNz<`X{1EG93A$%z7@C6K9<9W z)DSA3#qg_BzEIM7D6QOF&KTb2+Q?rZJn};)b%f013zDi{MC%nLmZ~Y6zbMr@Rn=-7 zPkF&8DS8H#I@CU4Q|s9SXB+*-5Xdw8-jURYp@9}dX5VoV`;!(17wwnvR#o+AIo}s) z^{kzQPgx)8%koPm0r;r-4U4+!n;?nmas7mUJe!e2Ueko+)qu!LC?!lF| zr=0T11K?XR8z5a|I^^}>8i`m&!s1&I-=_Napz?L0szS2ufz=AMmbf%HqamU0qk)~} zz1db?6wUgw!^WpAOGt=gPYAW^t+0lO^2jI9)!JFeC|L0jWqs3*+$2|MxsYKQ1+P6E zTJIv^c7p-sc*0c!6Op`fg>6*88wM}59vLQ##mVv+x)O6kc66d!#Q}C}La2Ty_6b2+ zXeiAWVFI0P4Bh+N_2j@L?Fk?>~wgijn(CYvg}gIDP@Cpy~P;u@C;Ve1E2ki#PiT3EJz6 zdQ;_l<5(H~7XquS-e0l;m$>Q!2~{~ zgA0+}A{M>!$VDr*W(O=yT1rv>&2qMP341MRXrKC$EavI?G47kYFJ#q*FNTaZ>QP>NePP_U zpw)^x>#3$a!dXM`~0T|uTZl0Z@m_OQGl>D@aA@m36SDN(^BJepe?`QPeeK{wQ5NlX@ zaMxhpB*LY2o(kq_Y?piulWvVXfvCZN{UTGBo=IvE6-x&5v9mVdLWNb#QX{a@$C>D> z4pB7E2f;E)A|Qc_*~1b61A(pWNOZY$jz`=appIUHW&WrY>1T7 z6|%AAB&!>lphKTh74WY_3w06pDKu%QkFItn#GyrV)@Yrx=NaGesAnzov+r+3@22p< zl+t+?zNG=9#mrQjhF0eACwn;c9T4z6^wuUxuTz%U)<`#+P|rvyXajj!W8fOFbusfW z99;0|z1p{oxjSJCJ}3o?JeXU+hoK;b*BPXVK%OIhkH6t~w<7Pmf9k2`zIbFGmvC7A zEfUwo)1|}S?8NEVbP?{$NkxZ6?mBq3Y*6>N5E%Fq3iV*-I8{Ft&0f{RTMZL=mnbVr zgksW|(yEz28$H0a$gS7)65YoP4bZ(Q(1}EMcpENZhn;pATBj9?sgboC%N#H7UTX61UbB`7#ojr#5S^<A44819(nOaRCH=z$(d_PD#4sd zn^fvr+}3c29s`f~$0fZ@JdWPJNbKWYqrqilm^ds0&*kJSPpHak4XkK$z8?d1Gn^hH zm*Pw8hS4F(A_%14G;XxA-?LYrW2|g+3K=lqDMpAPJoJ9snm2NXR#)G(F0Y8g5~fZx z(s{h8*hqK!Rz++$d?nrwT_;lyTrZ^QS7Cg@)m8a}9^1+L0eCoz{i> zhd00pTd`#+93k2KiSHFa@!7tW^UlQEQD5Jw*>A%0}FrKJCcfoTso*!^PEdeeG0rzz zOXKh(+(_XfaWDHzCxJaQ?qx>XO^r)pk%lONghJGu7-JGh1*KFN^zF)ycL(*o#~K

rMm?f4^Ra&bE!31I*hO?@~_IA?R^0oxWel>sn*5xjjsgbR?vqTWvVRMNn z0|O;-AZ*vYUh$m#t>(o+)&imVT+w6nH~+S|Rm^(n6D92eox$n5y~_|+e9yDV4P+gI z&detQd9oZ5Z4J@&1VSSRky;%tzT4fF~Viy4f&aW-TE?gKN={34tf2aJsabzVSW0@{?s5toD z?^qq-T(&<>@%v5R^fu0(^+4EV47tAX9?9DS@$XMtPO66OLhoJaMC~ZJjc{T!$3n%# zjWr1h2abMldQ84F--}+IC5mAba-i1@Vp2yxkl=IZ#|zI$2)tvhO4YG>w7bs+@hzIT{(Kj_&Or_0 z%Hk&kyJ|{f5dEzEt$?!IPJ}lW5?$!;E)wK2ou-rcH=u>ZBW`tJ#w3 z-GvTuGAeL*(C*8B6fvi(55dmSX_arxmmOSw*kr);DDT9=#;SZvq{It3AZC>pY3dLn zB*R(2RXMBAcP?D~R5BT}OW8R}$GegJrhJIf$J>yz*C^Ix zzOb#^(nbKvecAbVmu3?6_wFBM!D=lKnxmb3UqHMvvCW#?w*Szb2x;2UvSiIzWXU_% zBpnx6AXeH|OR!fIGQTYxI=-|O&|rJMGD`4{x^YaFaTP4PLic!UD}0@z*|0mY-?0hh za7NH-y1^pqyK4RHgliyNR%Oh$Nl(=@Ph-Ael_py4FLCNHa~0y2lf~>-*Eo}Yv&3gg z%!$b{lMA-ooM1|5pZSxLuD?wcN}+$%w>X&T|2Ny<=QHTv&z%29cKY8(#r#Q3bAe9O zLBurIpGWlUpg4)=9qjL?^v~z*e{F(6_5QXA{tvt~D5wB*F8}LEJSg1bZ(Cbo(B@VY zw7r!AZEWQL@}SMFB4~T70@~oJfws6>zp>AM+nW9iUHoNh`b+TJf4?iNplx)#<5JEbM;SIYqcTsdGySHQ5)@>x2m(rx_bj3Z=`# z`l1z_u~k6#bv>xPAgXRUPE<~*mAgOkM;FrLo5LsCaYk7KliARtcgFl-kqV3LBZsQcxIBZH?+0WOKayeM3sY8I^2O=cCjs+Jz3I&6AL zxEpr`G}WOe$Y=%0cdXqV=()(bgh<|yBZjXZa;OZ}=$7`@s{7EP%6r^k3-?^!wFC~Y zZhMSlQzr0%v3j45u5sir{77prCemnFO_l3_Tw&jty4XE|RB`45r}ZWm7$5TS^rTL| zZO^_i46@XpNKz6FUe4^~Ur@nu~hgkprjI zsuo8h4OV(OET|s}#g~zFiJrZlZ*g&9F`Q@0(Cp}Sut75H4ivqBHNj-dB~i*M5(%8g zRcqOynoH7=vA@1cP3szOFi}h>*@xZZqZ8~VC>7N;h#OjwW3jOK4|{#6cPY04)7jiE zK%WjsU%zefS+v8EkJaaBue_@Kk#3(ZD)_Br9T>_5+}!a|yH!VDJ6e{FI3TdIr#4c4 zJ3C$sMp=@>jAu-c|JDu8Ovvot#RQ%}IYTDVZ`OBAstI<2OzzN*$iYPw>>|?z*}=GYf33({(>OI9i~KR7yF2&LGSlxo(t}J>5jt+Gr4J&k2SA>v z%o>lj6F-K5I07U)bU*six0c9G7FVqOs6LbbbX_B27iO8~$@`_4$3;f>7@*hkGGDlA z_fkUxeHYWjgz`YcIBDZVl5WT522b~_8P#T)B0^$}n; z@UBMnl2;7ylB0V)ryf*%z5con#j`WLnP_s!@y?$1xvn{tZs{Fi{u3YjzZ%z@@R&=} zyt1_^?_6LG?}uo&){(u;iYLJ6+B+ZAjR7oE`S_=F>F&`CPK9~*Cgu)EQV&fzGOQYZ zhzsMjT(1Lmg)_t2-yDXl3W*#;_jh-d&<=2{osCGb!;r&CVY1B%*TrcE=N!btSdgJ( zCaM;Z>m%|nd@3hPG$BJyA?h7`2}eWK4hyZP1Q{k6+8fXvBB)({R9;ic&q1FTtVU3XR8%3M7jTL7{v*t?1KS3Kh4KF>f-m zp|rJ^+fKm61#)CFajiblQE8+ckCeZ$5(3)-au0Gqx>R*Daff-HXOh36J`|0{i-@>g z-ulkXH)j3C|1wb0wVJXhkKBnpz1|Tao<2A1WtZreR0x5>o74@P9$eS5dFv%=ol#}< zTvo)Bw&2-UgxlJX+Hcw%Xiv?#b=(|254AEy5nW%rh0c=BUUn9i!d#ERrbjyu-k>#8 zSi=@5A9<8y%37&(wGr0a?vj*?Si);pWl|06WDe77S+jp0J zJWaSpv*G}1JE4F%<$DpC7+ISDz;w4Z?M@|4W9bF?69w+)QNy4a7{+Xb_g=H3xgDP) zHz$I!Sq#3>20=wOy4vOaI1%yj_tmc3$v&YjZ8>mYs!fMeuheYu6f!vtz@mh66$SPW zkOAD`p5pP7(-Jb!le1a`7^sQG6ipYET0n!i2OD_i^Gm09yj3?zxFD|0&=k2vz7K2c_vuYc6S5{YMb!(+*+8v_Cg>sAMY#$u?PuKrZt>}W_XdWM zoYs<6jHt}Zy*BC^t1=>u-6nY2sMvE(&~YT>5_~JkR|LG~P)U_NN!w+jw_2`GMeJZ@ ze7k#Xr;q4!SGA`+F=0BIJH@_zud(j?#lL3O|MUH@`&TKO$YAg zw4$Y6IB&^`7w3b)Dexi2z8Z4s}vCO{(cHFa1X8>Vs4vQ}H0z4Rp6U19@)5 z=%LJEqkHpTjD_aMU0qFTXau#Wt+*b`YeT)_@BWOj?sYD^1>(CV?I+MA`+~6~>SAx; zR?xDj=LlOnB%~On*2dlSE?PNY>j@?{x#_6Fp_Mr^^T{67-XPD=6cn&;yjk zt^O)}Gr7i+Ii*U>0WAl!RQIDs->rNSVVPhzlVHA{DI|!_b-;R2L>T8`+2N#@GS#c| zr9#im5YofM*?0Kb)~RwoaTlY@{P$!}Vt38d$#0xluZ?Zbmxrb0y}d+mIOx3X%?%I) zUkT2TEK~{LB^{URAnY4U>&PlVZV|LFzmW0Ldcrei5$L_~pf=gJl9-voh2&25?z3hL z;Ku>~5QQ_xlZ0s3ia5+H^~JNru`)+|#DLqvnx4iIk~J&z$86gUM)^Ku9dc(+x;bW| zo3m@MMcWF?57%ICFEDyjPb!65?3*!etfNS!CLsGP=g=C3Mav^ILVd|MG_%Y|85hgU zN$UC|JijV8b#^zCwk;Cnx+bW|NAUyMM=d7DC!MTy$5k>{L5?KpKG9FI2QM472{9Np zbDtz6Un>sxF{qS9qqcCkdTbVsm^#(Rhg>}&rMfAH+{~7Zaj(kY&&`_Fx3AiVh78#g ze{IYcw$+aXpq5xAGnmR{FAOf^-BfaYsLAckYzM!kkq|q)bP3kZgRo2-PS8rQ7hA;F-{Ofx+b=kL9Jn6RTW%HP= zKN8#0q8Ts~LlPrJnd>?xOCgQ&=F8z`?MQiiiRtE2uu=k*!Ak11+D04DAcjixI@I{C zDY9a|-%(U*8IKPN;M9++Di(4C8X357dTr3Tr+&V)sBN5!TH^aYz?QpZWujXAUiKxK z;QKMfqAJmYhek#f=2tK5p#>|)JeMN?Fo{Zh5UxeE-6S9uC#6C#|DoB?LnyryJ_$xJ zy0WkwTA=Zb_}qcaY@?7p!FQg|IhqAjkeG@_%^Zf8)91c|G-gRsW)R@CHA(8%BE%1r zU57zSTfG{JIip}-#kyqRyVj3-NpHVtV1F5X>^diNERu)ZmzBHAgN9T#5M3ZCpEyLU z=6|tY^hU&+x!mdS$V#VC3^KBZW;zu|+ArDGvid||Cdpg!L$0vQ&E9UX1n|qJZ9!hh z_6dW7NM3Av%VERiBCR0A27dP+>{UkmgoW}1$HhvIa z%+YLvvo1#AajtgTm|7Ok&uqR=%hk0F2`nDOx>8&qOt8UXgKu`29_p(OEhg3j>&RR+ z8Ro!kwV()RUUT3iK$nYY-%;A7`KTL#yMD#kPJ3Ah0cn#j-hkam1dC}k0yn%CR_3U! zkYVph@ZV@{9 zSUVYkyMsxO59jUBvE6QXCrx#p_1)1mEAYj^bN0Do?T8xZ!fqc;ZoxcTCQ{=(T_5K) z)(~A((@QwZ$y%h9;a)|v&ADK?=IG&~CZVBG!y?KoL9kDT-Ppf2$vvz#Kf+|6Q{!mX zd(Y?Vbtl$W51C%Z^zD|#Ek{@?iQQ0G`D4EjvC-ubc;;|W=3AyBUpe9nSCx#qjAd1_ z@~NjtQ%t2A^DWlmte~P%`f*W4Q@Ui!?a26=4oRh|+#S9do3`y3VBI>P%ZHw^-1Bx2eYbgytgS z>7{%VpCO10kGLm3fFC2f2G(vt*4_cB?Azt`8kI6=AIv+{%xiMV2}1|sD|O7=wUgGl zCr^~Q=?^%CIxAb&@$PrWjxJVql_J?Xg(+XHcD(`$QSO zJjp(1Yn3`|E>YuIrCHf5Y#*b+{UFhoIhmLtdMD=I0rv4mD?@9nIq%v>g(WlG?6$pA zPL(|_)2Tv>{Gp)^T?QvF)n=`BwV3J9w4I8clt-eJh7Q@p%t9?Krrx>?jceuQ%$5)< zzP-S4u@@4KLKL*u3eAcT;Df8XffdRY#uZXJv$PNd=)V!MB|BrOAIarGUGuDDaA#!e zZqS)e%?+(s6sD(*9L@4h`oQm>@t`wxX2z0^({!cuv?`lD)qDcaJ!jx>Luh1^PM`^z zt8IF>fqjyT>Sdz8Ln#20TfctnRKfGkUH~$4c8Eu{tR9EI*pTY0)ehI$OO)4y_$a-R zN#l6svJ(PS7=^7Z#h=W3>qGgq5(pVGB)etvM{Z^|yvez#^<_HcVm~h^Q-)~M-d`L} zBiE}02~+)u;Z4p(6hN10(LlyxneW5F4TP;w7{pS$Dj4Mg4rNoJVqOt9Z?0;cbJ#0S zCC;O=)igQ0{^%T;)}E=KVz&CtXt%uCoM};;X^~Eo%RmW3R+q7d*E#v+LL6HDsIgvs zWg+2sJ9;N8Cl84@9d80=xo$u>M$={+Alicu+sn=w@rI=$dQRRkR!rrP9lR8rMcXHi zw67A#u@nsyR1_$M2PXMg<#=ikkNtr3jH=!!GBtfqwqVNEJU`#mU@}i(jPhXS;g%99 z^wNQ$dV)~o4&e0RjPY^%$bE^-%}3o|nmWB0GJ!-2X6%G2HijWQ7YnSH>|&@kyaj~_ z*&6#glmN<>kdSL0S*@(bB+%JY;XK}k_9i9r84r9R4QmRU!aZ2wr%j{(`#2k*b z)I3kzXAY!k-?z8NM}Zv3Pfhz@BT)i3c;7yXPBf}e_A}}BHU(WaM7-3@l0S6bJ%GV% zFp|Pm9lK&sUPRDrP0DI2;LOMF!XMU%2 zq1EdF{VN{Vh)zYd#M1nd;wG6>6pCrl*d(bRKe~<|Kh1Qy%dW6c_;LjVH#b0`96bWa zxFi*lj#f^}FD_&FqN@mIJcvLJgX7x0DP*LSKd|xzm7rdZa8);4Hf1gdLZrpeCSE<5 z1dwrD;(b(p=Y>n778F5IM=c^~xQRG-RZ#cHG+dRApe8>(SV6<0lb23-F(Nc=K8HA( zJdiYI&avgcq(?Crsfq*SBuhP`&7*v6_W*2PJ9C=R2}qUDOF#YwitR zPe9>RZDWj71X$10e=_Y$7r088oqqeHQhGk%_CX z$k_WB$9Rh_<;-tj5yj){*CUFJu9nk_dQv`(#}2K?55v)m|C#UL9-J5Xq5bg@7wTnwjM)Ea<=kVUID-IQ zHHv`6sEyK6Wh;i&;N9+idwX}g-W>vmROQehR*FG9?snn4r+bTcQhC_WiUGB@Qfh2# z-^Q3|2)@uNN*Xb?hFI&n)x@;gYU-oCR4WxbyF7$DQqzRZ{joPY^Udrx-|Qc|-~3`H zT(?KRJDK4spQIkT>>c)KTWqCMH|6!Cs~SdERIg#@33u$H4sA``9X#HVIOnGmq2Y~f zSzmwqNlsB?z}S2tan0=3o2>!oyp8)z1+@*ei{JcZPxi-?-$1v|Pa2yL^>*ftsF&1h zw=FkwTfTq4FlGO`CAL$4hop>-mX@N<4~r(goIJO7T=JL8SB5q>S6{1okk?r@`w363 z@z&4O8ZBFDHm%|fjm^F@&)=vpoLpeMC{@Khh<>lO@#0(c-uU&NoQL9HZ8>|_UhfhU zJ@H9r?j#t#c;(YkUEdt%+aK4YjNNeXQBljT)a}uo9e*VKe1H2p)$W4E(2JVc`zKW{ zx};loxbxbt%+->Q@IBQjq4uUDSvJ&sz2?WZhXpG)om-)q7~9g6TsJQMX2T24KPTjV zHa4@ad~1}!bL;Mjgo0)9Rfevw>X`cZsr8%pG1F!kAD!HIuBk40EwiiSe$k}38m+Kl z+QpQI3A=YlJFcESxbsj{<*-(63RCDldj4`n=lI8MqsLTycPDe!>OjX{ZD>qIm-|A; zb2%e@uZ7MA+NZ8NyJEzZhTN`3lcnkO(p!Nm`>PKeyB%})hsQfR$A5mHvp7ize6Y+n zGLHObT--gOedjLyvF4_VEE|nhRx{D9QSn`^BSKpm>0$i6QuflU-_OiHa^ttNi4!eV zTd}U#!r=!_MZU0AFg5+ZF82a#o;EY*TeAB)nQ2zF&}y$(LQpKr5+ouJQh|ob zzuF^NgDQ_d3H&L6IP&|?;#pN=?{p1n=VI z*!+-O3L>`KIKe9dpa`nc=L2km!VD!~CE_LnT$CJ=i#I71m*$eXPh1YUf;gAeQ)0w} zDmyP&%Ulv}TI^A@?cLdMIZWLriXHKEtU+?6h@he&ZA9Pm!W4rI(J^!bJ$*<*+o=%` z$dAB?2Go9?mA%zGeXwGl0Xu8t0)dq+m&kN8R1%^{Jwk{kX{aia#Nh{OP<_wP=&6S3 zgVoE7J{DO}L^IGmA|IHiM}{btgl$U$WF$f?Y~=}) zQFMfilyM>vdNR>0%vK{a$Og(Z@WCofMrl}xHcXG!G2uQaq>J=H(-C^4UJnqTu<;Np z1AYd^0$ZpeW7f;4wSjtw(M9NKv~p8&n4Tu$-bkd0^s8Yb=S3%fQ4Jf9MRa(MD8%Z3 zR5QRY#n8aY87L!>9x#4kG7TeB&<5BdQlszZR}!s&RS^N-ixG<)@E{(gpJHegC-3jgx+}+(0AV6?;2<{djSnvc04!21%Gnx71 zp8x#!>8E>_uBuwK_FiwlwKln;s5m_n11kdgz+p^20y(*qt*f1}p|gdZEjN+9p|d%_ z%!!Czk)DX&L`6tkOc`_)v9keHSQuGYTR3~j0$qXDd>{ct^bWt;$tx%dsi}y8S_%uP zibxXCJBf4&T8xbRs zoslI1FE2nAXlv$dPQ(r>Q3imdI0GGt0OHn$&OlM1v7HH!pC7@=*%4@HgW#SytFdgm zERO0uuTD1+su*0qifbpSBp43ttuii2j3)_0@Xwz^gA8}3nv(a)(_dZGWe`)2Ke(#0 zM_t}@WH1}cOuJAQWfT+jp8b??w4O33k>ds#z>m_7TJYM{GW9^8g3e_VU_lpRb zWuM;_@9xp)Vmf@q*HzV2F7{{;vHM*4hT{e)W)oHRKs|dOW{indhR9NSzgi-bg^t%> zoJ6rW^Pq-XYKDo1@w1_U7pEQNK6vY}bw9&*zU~P)ekIsV63voJN2Njc`oXOajx`}U zCWd-e_UJAXW18dHp=slRIKc^Xsjnl9KkZT^^uMj(uWNX0S~c4+mgZzbDgBn`Z^_v9 z@mXPJ;i6d`?MBIwq;Vg1-%JrZp9-dnq{OQpDc$XWmedKxO7Bl2{cd5Js4(oMx>@#t zZ2(3}u+uPjm-PfEmungv2@#udq^y{p4zrFAj$4J`p5>%!8<8m8UwLJ@%2+5Cwmboo zYPbp29~;umoy-y#P^Qn|f*^x!O9rYvQ`Z+uzoHt9!Pl%T;^6=dHsDjSHyebEBaJt- zM>D?+9Avmnk66UW(wF*3zc*2-BD<;I!O(krm4lhg+j&o`w(5A5FXB)vATV@@B@xc& z_Ik$y7LiCZDY2AYi|}HQEEya)R+`5@%gxgn#hN!v*AS>H}&Urb8^+BLY~LQ%Q5eL#4~Qp@zyp z*`T~?W`DDzjV(5k-O6eF0AD8QZrK{E8M+Iri|=Os?uLjdXc zfVHY1G_&JryzP))!9~-`@bTnZi{ff?)Yg^ODfY3uTN6k9+^|jGTFFJeTT>|3C1hm&2;VX+xDqn|zJ5i@ zdHGOS9O89wU^8@{+}LpnhwnKn)|(OUB~@wv43T%e!;DL6QY7S^JcQpr@JmCqnYw&@ zWQ%^=g6#E`4EBf(%T=2StS$+-QmY&za`^m{q#r&DFq4h#vtR8j9azqlxZIg_B8Ej8 z#aEc2e6V;vL?J|x9ccMhNFVZC_=zG4iJpA#c)hSy)6zvUN)D_xJi`JCIr81;(N_g` zuFj3TO_ulNq|V`HSgoNH@G!JQ7vH5)NkbjJYbAOznC>$xLN;{BjpoO!YCs0`m{w6} zpxWB+tM9l3gFz@0P4;cBX?KTax(vnvW3W_M$xBP(Wdp1LKF_B_Nw3(*xVoE!BhSO=* znyO3t7_NhSVAeD$0&{Hk0Z!10^>bED^FN@k^r23j+kig&>FPoSqgT0x6dUdxs z7gSUQpJBVX4O3S<_(9skbM#C^aX6QQhj@sbPNo2fDOjHDG=`H-dZF^p@9n zryF9q{Dj^2tT}ch|INqb-kB@gO9~#5NX0fnW{PV4<>LLoA?s60ulr|jd++^#wkE&) z4=DBIvz|QF)0K&xjTPZn8S7vEOx4342v9UM0|MlLCKiUmcJ4&ljG$^ZE;b@gR%TrU zfU=!4$h#3Sf?7EOZJmi&o?IWO80ci@;%E$X0y#xRM>}H`ptCjrG=9wgC;=*hqSDEc+Ory+j&TaYx+1c`pk(1{2j zV`1V%q>b=2e`N$+B9H_ZkVvK{X}`KM{n_4%6Py7*Cr00J$JPR=6chK@vBYyerqUuh<0Mu577iL<$r zHW51`BLd^o@4x;2Rr)l|f3!k)%KuC0k5)fQpX|aGgp(|6%|OH13fVeY{FzsAF>-#g z#-|+zsrk;AoB;=JIMT)0U)&j9W9)!Y(S7z_qVzJc4z%LS9t|_Q8~3gHi%xq$lAie1^6!; z_2VY^eMNt56btk38^!d;M*ULulfwVQ2egg<_4EI;{x3uMx#fTS{$&7vjQ+zcevI}H zgZX6||7+uTx@-POCYmJt8wb?(Z+-u5?jLRbl>gN8_wSF~ z|K`Shn$SP@MoCdrOIm_f)xrkoME`Gh=IIHp{D0pWPOd+117@~Ami`~EKbH0%>OiAC zsg{G8nTVa8}T=;`}3`6q=wrGF?EfemC2 zzkh$`ek$ijYmTRB|M>i-$Ul_%q^2hY{Z!Q-BRrLI{#5Kwy8|irhZ_G>>R!&S!s{f(DAe5&~4+0bPOq?LA2SEgOkhMOs7$EY6g#`g1nN;H0r!1^@!6Ep#VNh*LLzzARrFaZDorT}w*1;83$1F!|y0qg;e04IPmzy;u9 zYXWq1GPZLB0$c&^)IS#e#O#19_s3J@FUR~N|Le~B$=du*+JI*MJN6LygXLl3V&UZH z|C7(jQnON2-NojA*77MEfyPk>gUNGH41+j0zbuJNu)8P-jd55kmzWeT3_`|lJDOpn zFSdZFmToX$rPa?!kw=KsU2wvHK@HQQHQ2JG4@b--UH;Sb^~+^Dx8Oe65&>=}pUe@r zwG;2`OOJL5(QtaII7!i4nndg&cM3FOK4wB#`0+;|G1}JLjE@zXnaz-9 z#PX|$O&;yWYN&Edk!&P#%y4$7fxWpPyKrY$2Zsx_!d)O4<w!kz0W5vI zdvxZ6geknNK{;39Hza&)#PqaeTx{}bUtU&9s&Lw_?KhGWOQqHFect}C^XBmr0frd8 zoJygYi7EB_54-(+Cz6sYX_@giOk%;x8D%JCRjMyv$crh)&D^SDY|C6LJ*a|RXzxSP zgdr3QQxQswQ|0%na2uX6be^tHGIcLrsTIs!HzvKJk)B^OvYA?&5A?&}=UO=mKqg3b%rrw_J6%Svl-#VbaTCiBf;@R13xph+st9F6qj78l?$70&;L%}XKSPgsMJzKZ2-4^Wy z-Ky}V^?jH6?c1aa4=puFw^V+P2?wV`<<~1h*Z!?IE|3x&mUZ-pNYw9Z#j5D3Xc!nO ziISqp2j)U~IIl%vk1eIYj2iQNQrAM7{5+*C_ztG1uK zXRh}OWzHpvED#7gXdMiIag{=PZlyX)wWvu`4FC1jeeOXF)DW|2D5}9_pk|(|Z8{M} z&mc|qvaNs-gEjo4BH9*e!i3x#J=gd#i$WB2lJUGSfg$V;yC&MBz!bzFrw~5T(?Mij z=$b7=%QDYNa96eptCt(|)q1s98)~^JI@c!=VxLYB?=HK|CvurOz*B;9`I-#B<$s$(w*}}Hs?8EsuIQ@)I;PIWK2k@|T^9G(c1=x$ zL=J02_q!g5@M(x2UFh~E#C6U2zZ=?XM~4j-H-)x$UjLrZrhd`k>)QUIwa`kwnIsh~ z7?HPAQyJ(iYV06~89_f9*faOhDq&J0$NlCeAYY879&qO&rKNQ`A7RgProB;TXT})GIfi~#69yW!nIyp zH)@3U=K}rWk6b={#O3LHu_`J?j>;@N#K4vCgl}guVLbXF?)8M}hy^Flk#WGs{J->s zQ@L`U7ZO?+eodbZ^2wm4)L^~2D0?^d9C#%wv+Il=Wskf+qqII&IpkTY| zbJrbu;Gr=T5yT#rI4g-FW%y-(z#UqzeP6B>6#zR)V?fzeep%V&47{ZomfreW);_Fw z>~g$n7m+>D+URh%v)$o<(p1BkMaf5tQ%%{dgzn~sV1#YWJe&;2pV5~AGnv9y(#|#g z)nZ8PI&ZwZ5fZOzdX9Z2#rzG;;%X>F`Dd;rdd8Jdq-FDA_&~q@nl&4};mA~=zxRZ- zBHFMh%zHwL+t-hg)oE{Xie?TUzgDB*pIGxMdsi3SyB}#D&OPY4T?wMdCv1zk#Bk|b) zdK-LnLA{90R){H&4UE~bliF7hbow_>;!Yz3?lXbqN7$mz=^n|eF^c7 ze;zV?K4}OQg^P1kf9tIfI9sV_?)xKFi5%V`D3-ihUy`ecU(Gl1G zD|BQGLPk%x$o2;wa6|r*t4Hc72}60jtb##@XgUf z$)B#p;QLLb&Z3#vV%LH-zh0+8#JYY2of!2vdbU_B?{hJY0w^LHbW!+>k|=EqNE8MC z`h;9pW?~FD%*y4>w6q!~7Q?y9-tBL9@eqs0c)`xLQ<)x9mFQn01g2gr2G_27OkrP% zq-D{Lf6B-zkxV-JNJEq8Lo}WsGd)#gg~8(pCpms|<936|Z zNkQ*@O_H@BYJy6Lp4Q83^sFX8L#&cmIm|>@P`2BXI4CIUC7R9~$#70W>NmVZnIzVz z(Xnh>^o~Jy5xy871t9QRd*I!tuO%0H0jPjNgi8yV;mm&1h6JtPkRiHq#peiDnlB~l zU*mWYcdT_!LQ&Tg(ee)&me{r;fAzTl{7sp(nj`-H|$Zv z=L_CfXe7#J1+_@VopVre&-w7Kp{&4kblaA`bp%^FaNyv&h$R<5~SHaA7iq9WpZWnQ9)dqM-ZBb)E?m`#8d2PtCrpptFh*T$a+UU*s zzA=DWl&p!_YlN5vzp30A6LLa&YV71D7_A7p6KOmx8L)D}FiIIVt!hy=!IZz2k3UrO zc9jZrHn(x zzy*jvpBmEDt)oeF$0`~%egq44to9l%E3!|;yLyKwuq?7lh!$TU%E_4%_`EUI6a0$S zRHc7B{N7vjs;j(e270ga#wCDz=mT!_$MNir_JR@ACvO z=LY&4lrK81%S_m;I9i;n1R&7Qxk=)mYs9%+G-bKHL#oTZC6MX5k8*dgY&PP`ZLNEU0PN+Qp_O=Cf zp`HC53hU&B1~rURlHN$6t(;OT>>k&bl`55X7F~%&WB+$N?*e@$O01Mx5Ra~}G!LU$ z*!FbwQbzQ9t_XuvwMfy(Hz;mrw6dmn%gs4s0;f5n2jdy)whkpHu{;%Hk zKM}A$T`Ma)h&|u}QD&e7I~&WN!~@%3!~@$C5AY}Pzy@O50Dln=T}Vl0rCI^0Em(VyaK2LG(o(?PgcSVU(1KE}jJMu+nvgJMK|-$&QLv_^jtK{hfaSxc`w)IZn0 zs8RbBf+C3Cpcc$uc$#9%B+n*(`g@^Gw*?&P3mHpI8?=e@ot1cyTFns28Mw5U!nvs*9 zsFs4EC-s`Tghb#2nFaSl0e6X{mR6>Uauaa}XGJ-QMO&R{dSU~4cm&bSVr|Z^FaCRwiOM{{Hr#dtfsf$XAiw`9octwY{q=6%nus4JTb}mJ~(p;@yb|}O@(2F zS@b#^J!1-VkCLQ}53dqMsEN{$;#D{#GJOs}s|auE#W5nNNp?@ukZcvc%hXVyBf)&G zfJz%C8X(b&uJ9b)sK0SNC)5Miea=CE(2ZZ55Etv#$_F1?;ep5;{Vs!%oAV+*MzYr$Q@}!*K603mD z*2*o-WQ)Ylxm(o33QeddUY>riysL`5ohxdvw7wDXYZlGlo#cDSe$#x%n`12rAx7${ zS(QE6HX12~K!v@?)f;L7j&qN4jjhv<5`3-XcZo!1w0>~N%$-&VqXjvwQ=y_7Xi3B| z;t<>H>Yd^*tlXB1SBiw_28rkEu5@62+|Ln4K7P{{Xd6|rMzKLMQ1WF%`P=A(-z{S9 z+w+;j6cW;Ats~e> zbL|b@M_a+X#uw_gl5Y`geQ$=2x`d)OV;j{C)#_i>pEyy&_`x=QWDi}mto66umjT~n zPX(3Bn3na4E##^U&!4B%+jO;zO2ia!vT{JZDD?FU2VeWdv^R@q%99uHAi@Gq6Df;p ztmZze*IF}R?UHIk!NMsjBn-xlWb^S=)rTd`z89h5RWqgMmWtwRfPtp6HBzu7irIyM zu2O4?XO~|iH}GFl+rUv@!*N+Rc6x#VMK0A$xD3ws`zL5ZKWj441`m;)9x$z2a=76h z%f4`(aD)5-YkKXp_@M+)*+b38{n6jKuH|Z zxLyN1cZ`<;Au7F%`<3;Rg8N)VQ7v3Vvo9r^LcfIFHG~GRgcb$VQWaGX;*XO0Cr0Vj zF^=}Zk&Kc^cwDN#gne(QgSb2v&$`E0$DxhGV~M9Gi2M?tbopeMwIez%t=fKMYFoW_ z<2}MqaDSkjt!_#GTL_wR(+WBptKwD47cBS8B^Wah!LQT^N0qVFs1~-X_;;%7Qf)Rr zyPPnm)Wpg@3~U3&le3qOQZQOrYyetwn$F_Diu@=G*rUX=Osl;uwBolChxD~p%>!?i z-`Ei%Xog$xM?*G4>6L8k!)3vbpljWeV-E$`ua*X)0;qAQdt>{9)woL?Ak8_NuBL5H zYo7T!yS35tZ@6$W7TwTzlOu8SsnD*e+&5d|E}%#+tA6i?eEn=MR~Vv2fU27DnM5Cj z2zC^@nub)`pvsoKX(3i5p`1ie{2C>!cAMS=O2BweOvz{K@`0^4%VIXuT1{^adNxy` zDHjKA4cN4n>;d+H(dz@GZR`Fq5p6Dkav05zpICi(xwbrsm|w_lNf!|_zGLxkF=i*D zpd>K1X-qPxO}4O-=8 z4tl-x24;wd(^tc_!q~3Jvvo1a>1l&zfv|Qe_guvsGX~1H)@q0TotgrBB>%|2pvaIh+;oxOlPsDoWq`J zd_J!pNTX<@=FYkY&8h~MgM)hIA64K-o_fysy30B*Q6e9UJUIjwDWhUBv@90Afd}pC zMX=Mjd=QXTw)Ha;K4Zg&H~Hg8;yf{x8>|!KUt1t&zv)c;8m4cXeSXH@NJ+BaxG}MP!}xI9b?9Wwx3TJt(wx7g5-9#lp4W1` z(H;BngC!~aH?OcprU`#3$A^yCLO-uunV7gO-sTRMNHU!iWVXy^+pta*s_9x)oC7V>-*EWdT$K^x3-MQc9CNm^B2g^cVRHgM zEy=sKyG+an@|fBMcW9K^PL=j8LI;nc-?bZ@Wz2Upe_M;1mSFp48?L)tY!OFTYB`x! zj~S)C>s4w)1$oA^Q7;I=u7Aop5XW+8_?L5_tQn+`HLm|QnN3Q1Oe|_kmQf(7v05Np!I@TslgfAx7R%rt_rZo|M3K zEjZ#!0>l*y#u;C>Ogx$|MgF7-r!BJ1sYU0shxm$3eM_fM`MY8DeC010Nt@S6K)IGq zqv{_02Lj+tvTIJ8*A-4948x1pu1W>%3xOxN>&KqiZSwD+-zC~CHWBmrQcD(17^Q{< z*%M?wqZA_6aW6Q%sYvPlV%M>9*5Q|qc^d;zDIqq}v>dK1(tkY2(f7K?H?yDo-ihUw z$8Y|@5KG;ix-w|(Q_FNcKI!-KIt;w?!j>WXeIB#S`x3GiXzV7jFGjr)=izvXnIz_T zHxpn`#$7objCX=v9m~Gl8;!*iiPz^Bv|p^$ONt)%`=YSk>9#m-I7w|$VLBtY<2`#t zWGc{kI6pUUuZ+gc#Cf$CnlqWOVTwP?BEn9RddT{T#q^sNas2=mpIN&* z`6-@qza#s4EfX{Al(zPHqxNVOsS*=G5xGt&4fC$!_lY&*96Ve+2=y|;9q#~9BUL5} zE|l9vPeXx&I91LR~y8R&hd#;C1 zoj%|^sp|dx$JO~r;Q|uM7+5y2!UJn~S$+~nU_MM=<@uIH3!p?hp&V5mzcPA0Lw9Rr zeSBthoF(R7`#PwEBTx^)7LPxS9YK7qEt2E){rHE8d!)%?ecL#$)Hr!^--V(|6zFb> zReUyy4^1PAwz#?Tlz#}`W~VAu~9@db?+{_JJQCm7|LY3Xr+ zI7BWZHyJ)GndCu2=KD;n9c3jkDCcb+m8HHph0&wbbZZ^HxmWIrY1x6F-P@p9B}9{6 z^_NIgb^OE37vV9H(*13n}Kfvh3Hg{1!17 zVOxT4)u^%S^{lAW@~*pG$n@A;Pj6|x#T=Vnm7%lHw7%-EQj12lao*pw94|kCPK=lt z+eqQv8yk4wn-D8ktQCq-tCdpSs=(u1+TbB?=<&Gw00 zpD;HOuqc31DUM(joVi^3t0*M^>xfsm?K;F5rUY&a{0@95N0&8F+dBdxY*?sBnv`WP zSPrKR#@uf-Z%;}2c_Q+6PY&#`z~0Y<1Q9Whr>b}E0aqxmOTOp)8xGr%}P~89j7fN)>8rYO>(7bDSKWtN+t7B87cA{EZp3%2&`xo0{GUwBoQ20 zde9{)S2&ahMRizrA1s8LQkN3en3i{0y`@s!`=#jm_ts`n@9UP*PWlrFodU+vulWuh z8c*zeZ;*e)wc%JkhGDz^l*b6rn5BY(Pi0}XSks7hDeW4j}*AQn2(0ue*6 zG`t-N_Tc+&%F%%@PU_#13&p-IxCNeASTvqfaAa7mw|{OAg#ndW4BmkSt*BY{SSw%^^hbf*CQyzRRXESfyLsU47Ss0b9}K zhETZcQqUAQyz<#&>?LJ9A2_Sm@#rc?Hp6{tYYCBh-AamF8_Y8M*5ucnBN!EDJ_uSb za)GfSpVzOc)2>>xz8VHu>W`-?*WLJR?ct~mX0LF^VX|}RiL5+%7<$HW**O&*C%B_ec8Qoj!;1eCv;L_4u`t-%8ejp+dmT9Ur|@brjpt zvV6n=iJd*Ap7Q(2;X*Llq8w%%W4!$LP6%c~X8#T*h}FFBbXXUFJVBW??)g^S#}~*WK(c-JgYBNx1a`9660L_<(|M2Q)gpFbmbtHaw@Y|j zWONS!dQFgd!f$uJsjFk`V49dveo;40TtAYe+p@XD)4gm<@|pWKPmO!vOg`djtmaG) zWa)$Djq#c62blF0RI7gDm5qI8Q(*K-+z7(1<+Hsk`}C(H-o+zovX(w!YKuw71SCFj zSs4p=nSe6KsChC9|Cs6non#)#(cP|N4=TQHf8D#1nd$C~=WUkqT`qA@EHg_W%cs%iB&S?y%RV z8RXj3`=U{JZ{A!jZQgM6eYD>8{}w3e`i`3ba7sWy-ou z7p`mhob@8L&Zsg*4lD9eOYjU7;b$!vE$tQu+GBHW9XE$hL(NQ)MCV_<;WDMOmYjv9 zFxR4A(my{9UZ*uvSbZr_G4deEl(}5xY9p-oxkFMef`jcSz)Q?YE%cfI{njIOk~3~f zQ5KIeV|5y(e(IxfVQ=@0Df zfp+-(ZjN^|ow|3=1Ekh&(h6=Zansq`JQ-GfikZIEtyGCOGh?ma%O%}Tg++Sdin>L@ zHlIb|FJMRBX5yDvyRHCTw5S*K>+g!18?+2*>pUI^L`908KTi4fO|m&Ka{AfYHtR99 zJy(^t-BZs!#jU-)4a{GCR13N0NCWJ`|0`Je?G2ItdS0UR??Zfl9+z-{;0iM+M)N7~ zl!%>^^N;fq&?(3tV1@JP@Z!(o5_S$y)t|>DpsxQ3tuQhDJGAm=FedxIhb}*lMV{cx zPvG+ESD>b`osEs*k8sVO!K$FBO;Zb3AixZCJYw!)Zw|Bt#VT0-8O3R53j{@S+CRNh zWDPWR{+V)o3N!`S|2#Bt_<3vsw6QR@v$nJSiH$%J4$kI|Kv1N^zaFEw0o(x|fY(4r zyT2i*A1_w?hM<0n5&54ZC^kke_TLedhJ}X8eDfNU$w`%(Dr0)7TxC`LfMx}(g^gHW z`HQN6QJO$z6hi{$Sg3fx+IUo9BGeGZab^?}niqXF19RNVul6ktYD)M@w(G_rZm>oe)Mz-x^pS}czP-dG4 zMyr1J4H9t%`$0o%n@wMf-Mt0AP$d~Zi5_J%svW9CxLOd$SBedhN{VQ-_TC&g0VAXh z1t`>(a6u!Knrt`{-f*N|y-i3X!kQdT!B#mhNo#Us^yM&-AY6x3dy1Xs1iixD!4v3j zdr6F#x=50rzYpi?EqthFw<^irQ3sQaZv%zOG zxHDWgocEs(N#E1%(B&ks@3yGRw=uJ;b6)OxD4n%C_{?8_x%0b5I-|sFq<3#${}3#L z^;Wl3-`#sdB;|qu@-43JhepiiHSJz~47jKRrKZyu9zgiQnYb z5e}0JLDykqHz)~F1gp7ahb+!q5~sLjg<%n{P`V43AwFm_A^1}3%cezPdQ<0S&`%K& zPpLGMzRB!_Sn{wW-7}>)Vu)pdXG=H{v&J`qwN%yTB-a=e5%Jk&3f zShtnCOnd8ktH}rv((CO&4=*P*he9hp0(v*x%6vWt*V0B8QYLSD$6-eA zRL?#G_0i3yw3f3NANI&Fw&86V#arigX-Zq9xMLv?_PWRZgQ8`f7 znh35?K~=MpoYcdnrZOxQ+dLW%__#P}iVRw{9`xwB+kjUhSbN`k-YLR);C4tv1aXlZ z_s-VusflK+a1*XJ|`hDJ?(9w}HqC`y$Sp!L z4%H-RnV23x0~rwm=~m76Fj3PMO2Q7o8X=w+84W40JE9a0b@`5ZMmTqjhlehMJ$atn{~?*Hx`qM^H|CRor+_bt4f^8|S9HnL5C zgY%l@L!%9OAEa*^c{ny2@AsomFsR@Ynf4#tqG8DhlI)<*sks=63$*6bfY`)SPj86#6c@fpH0106RvzgsGheFR+=__BG zcCz8AgNA*#G=y>994$|x&#`}=n-T(Mn@dp#{Ko9oj4VAZdCkMzl#wisYk*K@M^9%B z!>SW4SH#JgFH?_#X&~i-h5^T4bqR!+^&N+iENfxKSTp<1jo5=&Z?n zd8kx9oLOHxDlK-!0d6;YvdRWkl)iI*!F<4TMbcjT%GRu5wn?WIeD#E`OYjC`ZD*%P zoeM!Zp@doyl1&i@qquI9RfQ(k&HeV|tA)UYOSL_31Iv5n7rkd9o1)-^qL;G8@MPvH z*cJ@btm|PqkkbBY+Pi+m&1FoV+7G{e{K|u+%)`HrPO_O?s;q^Qesymn*Q2gw%rOt2 zX_(=dn6^CD9Eheedgbsbh*dM6%@Rst72OEE4@P3?6}ra)kGnWigdAqD=DeO|gV$KY`NC4M$8 zL84|3PK_^CZRxv5qLVDgU~T^%fwZheLo=o!&L&AJ^5tjN(y`EqTEO;i^d{R?0hlfx zLR{6SLTY7A(~`@Ieu?{&=}A3yolT`NW{S9K{k(St%$A7P!CItL5IfA;96C@ZXIlL9 z%pY)S(nZ@_cT~Kh61fX#l)#x{%T-=TWhfzxBNc~-f`b9Q6tyk+&H7V*v#hlY1$uXsu|5AQ28AltE1>0Wp%f;|pZ;4r2iULg#papkve@{OJD>oN!g+j)m8jp02!Q>RO? zD)f_ANkW0o6Mz<^H>ZjL1J4jo_{l2}uUr)P~<;$pWm6$r>sI!Wv&8O>P zQT;AMgerl|EL@zpZ0ZQ`nwO_~BE<8dH&){Bp6QI-$*QH@kBs@@Sec>l3*#~+k(*;+ zf5XsJ)`Q6{5Ho`b4o-YnQbfsIRd{5$wOiJxwqfEmB>gO8Dt3pe1qFKNV`F8%7*jjc z-%dokP_?2#6v;%8K|vvWzI1z$E6w9ob{)e9S?$!>;_}WV16o?k+0Tht@mi&?6yv5{ z?>x_8P~ryph;_=|(67sE(BLMOGA5-(3=dlcDXib^nv3Nv<$}}j55C$Surym=8EbV+ zxLAZ5y$eB_S7;lUec26^YU<*;>*b9OqM5=KV#>XxYclNqf71u@f0gjEWqUkK$(r2qne?C?tSVHGZ0nKI3p5?Yt1y|UfE+-YM#?mu^ zcpFMK2sbC?!OyfJ31}QSYYOdlgDm^a<`n+SE3~wpI-I06;m=21B6;E<*G3pyX&uS0 zxn2CF8)52+5HQO|&PMRV%4^eLkvRD_n9G?ul$Gd0$fmwlO1;jKTEx>pgD(_}ch$fH z$PEp~8x9ZkZKc?ZF(iUExUj$n;yQNubhLUrc{aB@LvHNMK&DwnqRfTOR`=&3h!~mUK0XH^?$zD+r^IFZP ztlKZc8>z^fUgGdLm(_#q!Y8jz{1%X|Dc9Bg#VOMfT`QF*^NZl920~wSN_=$*V~Gw= zk7r2BT&-tuT6YYyOopc1xB{r?z4}u1dc#p_)+Y>5!1oCtL^F7L~mdxZcqc6-q5j9y_Ma>DR-3rl&?IUi4Rao%n~mFsLuxyKkf6fCy!|G?%SXIf%YTTuO_eFOX+VGr zQ*_EFM%c&ww9&ypbz=I}BJ%6bsL%H;2xuR|cC94q{SXXJ_N-}+X-emC1UdHJ*R#2> zE^~K5Pvn;+)K5#YwIzCrUubxvO?-0M62)Kjz;S4B|A08FY3)ra{M@UnZE1yTWsXX| z6jfCsB^#>5oKWdJTx28Xj_4{Y0aM>-HN!8I34@IN?K?5!IdAzMgZ=qanPZ7=WdUwt zKXs}oCavsvH`#6lM@EsnHNPZ(0=lthFXRU{_~*7fD(u@gZDy2I^vW=O_2rNdKfL-dbnqTtzuWb9|47!`6C9(zgYr%K&5AYhJGLcQQ z9WrDhZr8iNPF(n78!BlAJRh3euTTAMfZOirHMRY9D~B?<(IK@hdYqD%P6_i}~npgM*t3Ktm!?yo{Il zIruPlT`eN~6JG{brwdAONa(nV5o3i3;XvFtph!Xcfcl1X_|EiZPlT#=?u zf-dEIgJRhc%#wkN;wYqxBo0>imL)3zXoXYPmyGpi0_3pcC!;Ztbmsj9wt{T)ZHxou zJ*0A9$q`~2*fzC#^ADuhymDB)vs4Q%xh_obO=eYvhXwW18Hik#9g}R4g?VH?V#Hp= zz`K4lDy@#w6Bi3Vt~JgYh21sc%qquhTz@SZ$mw+%H;Cc?g1ed3-)2yL7F;uDORPbz$3L?Fz+H7ixyNdr6p3!StT|f zNt1$jBnOIMr1NivoY1?O?cX0J{k96)0}g4K-f29jXS&ICQc|Su=W?)s)G)oT{s+GMIj8DuKHWE>s&qOASNegs39&Y zs;X(Pr*C5Fs`*O12922zI5wi}^E%1P%ENs;!hP(5AYPnOkI#I>g(Jao0dNK&Hpvr{?`mIl= ztdU&*r{ph@@h z?Y_;eEy`z6ja%9;hi^!Zcu=(B?YPn7Lh{CDUrTf4wAY)FqZj-saBRRU(U9nd*ID zydW?BvjFLq6%X%h`l&78PD$IEW%dc{XRT3M0uL>|R<$%1D=IYApE%e&wRr!?Rd3!s zGDV&{Y(v!xe^wr@^Jz|56FDk+=8pLrR}X)lmeO#(w(de==8w7OgZPs2>X6qbai#j-InA96)T6t^2D5@p(Cp%7f3=i!awd@E>(@g{3;9gm3Rl|mM%Ue9~Zgi*rTegZ}`6z@-+HT zQqzbl^26sgf5Lf|bQj*~s;8f(roLLd%G7+izHrk#= zZBJR4xU*v2Smldozw9k%603JcOs}qL3a`I?V7K7$-hjmR0RQ47`S7rORPsY~aiP5W z%cpeR-iA@u*hzT@7B=2G9@a4HXi?UZ--fjMui#|YIFJ7oZK}Sx?8R3B<6GC?e6NLh zR%El(2e-8rZ;S8}PAFIAN1Tub$~GoGs^e~MJkhvxt+nNwx|9a5TRu}AwVPf;gVt`S zbzBM99TGe4$Z+5BFJAX`mEL=tKJoVI`dgbW?lua`KR*)T?f*}mm-yVzfn{S{-*0_f z@O$&8!S`xQ=J-9V2>Gzx`|Nke$o_Y9-MFCMufTVKgnCNI6I8L?_2U%PbJI`~;erw^ zlirDF^r=Rx6n$1&h9X9t6kSBCaFsnupJt57V)XN~X2)x@Oj?l+jga|CBGiC!(sNvD zJICP04LT4g!Iw^sii?e&%nDp$m&I-Yo)O}*n5_=6ONzRih~bJe)xmYg#D$y0m@xq(xH#73s0&sE z2uOr=tk$roMl?O$s1s`l+Mp8~aUV$ASI9 z58#l3d4Mx9u&Q+FT0J90XUvU7W~A91&JI`-BI43GiggZuu%d#s88|9f(9UU)fJUqW zCXyjj0p$d6_mCtwxR67V@gyb2DKUw^Bf-3yOCL)SYgwqTL3~aQ}KVc z$zZRnPTL)@J)JSTb3z9-nPxp3n*$b?fQWTkvBAawCJM6BZUvgjjuW$y%^ypDP#{o4?G({r@q|-(c zJa_`d9*DKmMv}O&uMGzqP;)$VI3Z&BWu7*ig}C&w5hA>wj)bB2)lotLyieuPA3+b` zm!kRb-jSz{6!QDUOc8XyScH5EAUGavae(hYRg0w_XfMc`)@sMQ>A=pf-!G^He5C@NV7040^>})wNiiZmn ukqRMBDTQ(+O-JH-kqV{k<%%R0rs#008K-+Qv$-MyPP1}OwBNs%i*!{0 literal 0 HcmV?d00001 diff --git a/dependencies/libarchive-3.5.2/doc/pdf/archive_read_new.3.pdf b/dependencies/libarchive-3.5.2/doc/pdf/archive_read_new.3.pdf new file mode 100644 index 0000000000000000000000000000000000000000..69eab908f60f7cec2b980bd476f06459d3258ee7 GIT binary patch literal 20202 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 literal 0 HcmV?d00001 diff --git a/dependencies/libarchive-3.5.2/doc/pdf/archive_read_open.3.pdf b/dependencies/libarchive-3.5.2/doc/pdf/archive_read_open.3.pdf new file mode 100644 index 0000000000000000000000000000000000000000..3fad700ce0bc7e54e72e4c826d40d5f819a9165c GIT binary patch literal 30177 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 KIC%{P^8W+iKB86t literal 0 HcmV?d00001 diff --git a/dependencies/libarchive-3.5.2/doc/pdf/archive_util.3.pdf b/dependencies/libarchive-3.5.2/doc/pdf/archive_util.3.pdf new file mode 100644 index 0000000000000000000000000000000000000000..3cee5fe9b4bd099d4416e824411e4f27607a311a GIT binary patch literal 28970 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�>2(8?N{}wQ)xja!ayI!X&NS{sSgh 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 literal 0 HcmV?d00001 diff --git a/dependencies/libarchive-3.5.2/doc/pdf/archive_write.3.pdf b/dependencies/libarchive-3.5.2/doc/pdf/archive_write.3.pdf new file mode 100644 index 0000000000000000000000000000000000000000..5c318d5d49cc145f75d114888a3a41011f40d2ca GIT binary patch literal 37778 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 !a1_z9C! zpuNVjSQ?MORd>s?oKy+O^}RJvHYA}fe?@Y}rw@^Q{qV5NAoKZz-S=b1GZ|9bh5o(3q&Kq?^1A|KyYpZ^$JapkSMw_tx8#tlG>J2;@V)5uThFppo z+Fo)=rxy1a)k@^yDlvhZ-mgnu=jRR0P@qc!!IM!O($;sU{>4Y^cf@chY_g=$%KaAR z`v^gSk`ky<(LpLLNo9`f#y+kou0B2F<^K3<(4?_5(g!4G{zaYRolKo9`kbd8YwY^4 zWkI!mu7SGf;+>Gb?`nBTzEz|uw<1t%P)boGL}F1SODrY5jel+AFr#Are6xPP#>F#L zA;F$;GqM4Dxhc3JO7UwQS{);=J*4}{yx!EdznBn%2#cL+Se33hbLA`C$tpQSn#8^g z7m#y;hbFa#zHvX_vbm`e&V@v7D4z6D44T}l0DM$uf^(cE+#J4Xvr>t7z>JWMna(g9 zq+D80CkFVP4TJO%W0po0Rt*p_5?1}09xGfG z^j9U2u!^q`nN}r+6}#E);U^Np8#`jZq3jxo_Zpn6+Zuk9nGb^6w zIqz6;Y@OnkTg$w6j-J;RY#BsS*2hps4_;g}IpXT` z`p2xJ-dRL_QZTz>y#Vr$1CLB>j+d$*W*08^Q}@Y>(U;8# z&N+;&GwJJ^j0NljwLDoqLKHPK^;qRvyEg_Y)=dD*L70kqx*nW0<3yWKzM87~4Td{jS99}{xqDvy^$6r*^hAtfc2gr-cW^!eP+RGeNNx=Y0~ zNwTbEl--`R4`D$QVq8m#)SW~_%s$Px z6uWOC(cT8)ky?WP>njSzF&vV*k;S=LeVe^vhv|0+NFkrTK`sf*2hH5wJF(-j>QIYF zPWbd@cMLXn5oSoja^zdPcy1jDsPeV5B29Uar~OtXp2N5|0F(QLW(HcjifZACB{9-l z!fmOwQooIt!IO=iz?1q_?!^m^ni-clJi0k&C%^RP9Mr=&$DKX2Fh)czk{iHJt*AVS z<5mu81S8n8>UhTKP}xoTps&L7#v!6_6LzeKBGAmM;_=;WnzY*nQsr})_XgdQMq$u3 z1I@T0O&ZI}M)AMskP>;jpw?TQLFyc^j<;!4rxnnJw?s-z|FXc*zMgyTGoYnnGrQt%` zoz=hds7Kc$2`MEQ?JqNRl)SOOlsOrHQ$`$^NZY5p`Ak`1_3*5=k=wcr-P?N`pet<3 zZl$l0ja+ibf9$Kc{;i6b4%I63ZATWnlysVnd>qKBHoF#+-9Vs^=qWvZv{T~p>QXnit==^ zeZI)hVW?0ach9=t?6ZFo<8&->$_KiqGEnID8k*MrlvRZZn>gDR_5Wb@8j-x zcSwF%tI-~yIuB*Cl6g+bIiqCsoD4ax&Fr^z$AmVs*Y==KidwHO-6xSS;y#U1Ye>Z) z9b6iB821$SFQ>M&aKL{5jq?Nh^E;}m7L{urEg!waNk8{tFIzjsn3_NfZq}!wG3+OEM zsWSJ0Z^TQ|B8f8VE}lh|;&Okpo>^wdI|m&qE2!7Y{w$Og2(EOu-3#R3luU|D-N3`rzq4g^`dUml8v4JX`15GeaNv zQA=#7IZjUg!2Fv!Fwvyvtsg+#kipgX`fCB0B-~x{!fQ_GP2ob;{%0u_u zv>hj7=NB)x;Nq_G&_&{D8{>P1^imgOtW{Rff}$WKm8?IEB$PyX<(IS8_vw9#qw8kW61ta& zbx2wqicS1EtwCC5s%}m)NZ2SZaoR*tKecom+dA{JI^w)FH-S8=X6v)N7j8TO8Q-S# zFlkX~=pm~?M)1I&D5U{+D`A>uCuk-|Eyi6UX3TeG2%}(yXrjdn*6|!?RKCt^WI9ge zF)5aIETBfkf{J9YmfwGrF>n;Uh~RJ+E`WC^h^Ip6@%!uo3*Jqyq`al;(k*80|EzQg zISkt@&Ctl`5epHx_uilW&mb7|IZn=&}L{NrD&8smkrb41H`fG!z1UlAM8ppsZx zz9uYLSInh7uXmy^i*0+Z{dLJSZ98DH9!Bn@)sVRwk8aCR(~}ST8H4NG0zvp|r5GPAE27QP>``dk%j%6g6!$%pRWPn zod4l908AnJUy_Hg{xfdocj}P8(}w&`8S*<{$RF639~2=bU_y{Tm_U9f0kQps!_4_- z>N3y|hQz--_W$L5>VN*&4+1f>|AaU(Qv;K6ETPYOR4FKpY4cn85W-qk&1vqBOu2~& zt#4Y>rr(4uypL%ViOcsX7Dmx3}mfpsh|0FX>Y?9?ryrqmzq>>@8zm= z4gvYWv|Dw^kWc5wHhP&EBg=WE(`jqnL^!&2ewOz*v>0?twfpa;yE*T-8Xv9}n0u)a z)GZyQ61KhRTwT&l;@Zz^Xj3f6Hp@oEQz~}+f_r>7qB?srL8&vHrH*ympEo*3$Yt-g z9=~_ASYJLiuy+6)R4HytWR@x@jSe~D-wMukT}b1k>uI*v9EF|)EMRTo5mb;ln=BOH zgg(dMMs~n4=BNl!@4J70YQ&>!4499PA9!s{RS|Tm&ttp=Xo#gcEH^jqT;<<>}-#v{*pms{Ko;~El*>_3jf)@8vrR~xLZiPD5G%~aCE>kT)+^o z!d|LnTq@_P>_F{y25(3+*`}=6lH|@e@#|)~_$vbBrnPT@d(myGv5gw%dlhzxT?F>4 z+B_asyB6D8i(06msX!j{`waMbDoiOYklk)4!y;GO#3a^7>C&UP(k1fpqKcC?HN{6p zDRTStLGE~p^3llf^9lC5GcH3k%hl@WtmzeJEilvWLuUFg!Px9ksJVeHhm7jx*PXx% z8qd#!y(@&Q`OwIZP=Tot`X;KYTrBW53&E^)i_p|!d>rBj4ET)aVC^3mK_VaEQQHxs zWDPXsorriRm1vI)JFA>rvsJg!_(B9P59lZI1961#w1RJR%)lwVa%!9^WiHXWEBXp1m3VhH0}P{9 zc|;Rgj6b~=GnY?Baq%I2>D}v%W8jg0HT^U$lt=G7PIW~lFgeGqSxvXr zS$+jpJUp-O-Fpt%U;9FrMv3WelAjWV*tEhS_Uj(Nv8DFy1(it{pnPR1wBTFIc~^fI z>dk&Tdmpqx246>NU}K&bP0=uFij{M&m_LO@3TU@|FZ?$yAHs<7y59^7X-j?KMW_|3(2 zJ;!7PetgMG#5IrPeal2+&}))o!*5pCgIuDImDy(C{&VqfLkLQ;oIha8>6y_K?s}W# z%cOjoN75N!=|n}JHW9Ng>9|SAZuPaQ7ORRyi6B-DX$b2qIe34n$|PQ2kLh+Qd0@+t zmbs1yOYXv}+LlOVOJ!dKJZyBSv@A?5ig)RAR)md`%bLb0aDAO*s^bB%*NeCe%ZbsM zpJ}DK5>H}MGSf59*=tS}p;o7Lk!q88(*5znE<_Uy>QzY*a~0H#9N$>O40W&@?M`wI zcvxKN2|eq<2Zs7a*v1JP3qaY{xVP?7f8FDP|0p*Jy*e2b)kYT87Sw7H!3H4{L3dvr zabUa%@G)D6|1D^bTx8{b(&6OUaI~y{q>ba;6;xiW-Avm~yE!t7a0Z7AQ9>$_u8AWj zm5dr?(yHAign?CZUR6=`iwu%;7GQvs*y$o+?8H=o%FKk?TFjE$;{ye4o_Z1D`T*bCIDcdB#LW}TG3t;22&7X1wcO& zJuWZyVVLyE%6=O;&+1H|_M6E-qikNbjQ5K+XY1UGmV!M#e&>)(_AHVTf{cvA>%_vayswJ4^z4LYKXfs4S646eMS^DfOEmDw4Q6Vyl7OZ78 zsIJX&O+PBH1}j+F+N*-($#q*0{2*y3Xx%FVN|C#dKKtlRZpsFq0hJ6PKm3mI`VII52kq^b?5iM&4FuGQn$>BDQGzgzHVTrcRM>vQ z!r{AB{-p-FKD4@Sw`)Jt#!Q%T7wzGH_#vS7Cv^U#M1JaU(hEbm;F zA$mx$oc#1wqmNguwkkT1p{u-L$zrJ;6#whFhj{63An)A=UU26bJmS|8s=cpDiE zRK$Skn+2^Rl>&x#LUw575QW_BW^G0xt$=fc$LMt9+tX$l2NzHI=eNxoi|$xm|O?+EQ8`|zmf9LfS9R}GCnpCwojP&m7w6@oiV={JL3wr%hi)LaAy#q znj7pcw&Xe|jOXycjpxr?9)2Hi%~Q41MDFz9bch&nZ!fUpdn?m2RB=L!A_w{H89a|x z@8Y*_oJJR*O?>#5(!>w~K1_LGWiElZ4ghX-V9vFCUhF)3QMoNqlu7)BOE_9L|LqRh zHVRhXM{kZ$72A3OnoFAe+!MNM1q9)C47DDrirWCUz=O&-KDVPg_oz;RYQTJ*XVf}E zkK?xU)R|%fI@hHT^WG-?^UlxZx1b4fsk^A`fU)kN>;RRaG~L7P4-yW0C-CG8B&YUA z?siTP%+TfWi0sj(NSPc!<27J zfJ=);bbL&@c(-ZI0k9F}ZTF_6wu+l!(_#cBWikP6%{F9v0>s?V=oH0xdvUG;X#bd4 z4@*?ib$iEdTV@p^h+%3{hnFurDArB~GY)v7Aw+MtLDWuTfT`TWq42vthcF{ab zlc3?Daok#+Q943{VcaIfV`=k+6iRd@Gdq~@>*{^6{$9bhm&dcVMn$C2;+uH)73spLC@ z1}MWPzL`YMPAKhidJ6Nwo%+;>hba+tcf?t2Fk|qyzxDSgZnuI)hZ1a8<~s?DqG6EU ztb~{`d9j$iCP_DEZaf{EYjMGfw(yp%6iurR@v=xX!5m>ic&@!&OFX5V4ckIaprP?D z_pANI+0}Xw%eUSSisU$qw|Y08m1H-hZmoMCnD^535#Z&_1Kovq6}7+rrotg#OQbPl z1bc?Mb3}TwsvDTzV3~GmvEOQPBMUdOfVUwCk5hK7f7utoY&zjLZZjy3N;9>ll`P`N z$8aBDV^Ij+FQSbDXikLZnPIpYYqe=eU5`bScC??|ausN9yAZV{R^lXKTuzdoijWA# z4W&}q*sgu(TGTUPYfF@?)kh<N2qr0`s(~GPL z?exKWdtH1fMdNA;m_bT<(2!`XSk5V6SWY~SrZ$2 zw8d*S{26&6dhha$?mVBQk+eyo64$i{Nht3k{_PNF;Ev}VCbw(~h=7~SlU--#(){M* zM>cpBCL)6#v-WN?gM*h0&Z0)v*O7dzvlQDho64ADyZV)9ywcc4(UX&tpGTi%JhEv9 z?_xnnJ}<{nVVm`#YkXGF=ddqMd{M7sT|MDkO>_XbT8#t|yix5j7Uej?oZgNqEYA_F zpUtNiYy}F?FQAF?!RY?P) zMGp(Ri`sG;K#1)XZc1`=T20R20JIX8>W(a#ZXL_Htf75mp+LwvcPU2>V76JnXbV)E z3kuZ$RMtM;OL~k?(io=3!dMlGUo4*x1|zY}RzI@jEYh0ywiXcRA5=MT2C$;;QFms4{X5Of{uulWqM3pGkrSMZ|{zWyt^HVQ@a{Id!4vUJ*q%wqLH0aH3C z)>7>fA44tGx*$ZceC;;|agWf#m4(iKUj_RiC-&FlnSTh4{hM`OObcTcJCK3P`%w`ywLi02JJA2A6FvAW8H1S`10y|v;g5p;IF)B+V@>>2u%5n+lOs2k zlarYthd!e*8;c>k5gn7hK06&FqcJNTSkeeABgzCaVrDg90vLhV{wU7&FV+01Jn#i@ zflT0b0H-*>GKPju21fSWRHAZH#G@9!9grNZg_+;f%-5kK3%LuNq zp#g`njXhXW2^^KSwqPKjo+G%S8NefviiZn)(a{Wi=91?}#PM4?{+_Tjdx{_qOFe57 zZYozgLnC87Crd{v9%btv-iE*ThNT(L?};Dz82){)f9R_pCU8W9yN%(``GN<5`2Xnh ze|MvQPm*Bza&9V@rz!AnMCN~i&ioP0ul^~Rsli(bPXPjM@TU-YCB*R*S^zd65Xb~z z0!I}9Kn4DS-N4cJ-+25h8eaWVyiotC8R=?oWDHi50kI)GO;f*rzx5GlX}@tHUK;DN$T?_ z8<3Ha?Qec;Y^=ZjHz0uNNr&gBya0BtBv*VHUQhNeGUMzGymFF;IYQ~xBg&ded1{Nr3_ZECcw`&MgaTY#xo-mkmXlD zAb^?u*Z&J-WCcgd&-Vkeg8nv6nE>Fh`o#~x#`^bmVP||2rTwYSV8tTPujMi^gGcYb z{T%J}z}iFhU~yt%21PS>BXCR;gH@7k9EpFNAtz=Kw>GvR1~(d5ua-evh**=0Uq}QX z%*6OKj+xj&%wP>eCJ{j(BMTFo5GxC#h!D?z@1gx9bnD=#XYcr9B4J`-VF4jfPzcM4 GApAdrFcQ%K literal 0 HcmV?d00001 diff --git a/dependencies/libarchive-3.5.2/doc/pdf/archive_write_blocksize.3.pdf b/dependencies/libarchive-3.5.2/doc/pdf/archive_write_blocksize.3.pdf new file mode 100644 index 0000000000000000000000000000000000000000..99473f739a626cfed7d8ede26412bd60cee4b23d GIT binary patch literal 25921 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 EzZ_tG5C8xG literal 0 HcmV?d00001 diff --git a/dependencies/libarchive-3.5.2/doc/pdf/archive_write_data.3.pdf b/dependencies/libarchive-3.5.2/doc/pdf/archive_write_data.3.pdf new file mode 100644 index 0000000000000000000000000000000000000000..f40d11804ebc11bda1c077beed13d8129a624501 GIT binary patch literal 23135 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 DV2G&x delta 11136 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 diff --git a/dependencies/libarchive-3.5.2/doc/pdf/archive_write_finish_entry.3.pdf b/dependencies/libarchive-3.5.2/doc/pdf/archive_write_finish_entry.3.pdf new file mode 100644 index 0000000000000000000000000000000000000000..c06343c5fc01099dca77e9dd8e5be0358ca6fc85 GIT binary patch literal 23833 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 z

=R*gf&P8yjy4JMz9qH#Av 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 NWC8~IB5yat{{TF(b1VP= literal 0 HcmV?d00001 diff --git a/dependencies/libarchive-3.5.2/doc/pdf/archive_write_format.3.pdf b/dependencies/libarchive-3.5.2/doc/pdf/archive_write_format.3.pdf new file mode 100644 index 0000000000000000000000000000000000000000..777a4970fad34a9ed43c794bc5abefa183a601b9 GIT binary patch literal 27360 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 literal 0 HcmV?d00001 diff --git a/dependencies/libarchive-3.5.2/doc/pdf/archive_write_free.3.pdf b/dependencies/libarchive-3.5.2/doc/pdf/archive_write_free.3.pdf new file mode 100644 index 0000000000000000000000000000000000000000..0ef0d7d38c4e3a51160fb2a803326dd46862380f GIT binary patch literal 22624 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 literal 0 HcmV?d00001 diff --git a/dependencies/libarchive-3.5.2/doc/pdf/archive_write_header.3.pdf b/dependencies/libarchive-3.5.2/doc/pdf/archive_write_header.3.pdf new file mode 100644 index 0000000000000000000000000000000000000000..9cd76030066d95648c13dbd8d8b6249de8bdc9a4 GIT binary patch literal 22488 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 cu|2&kJiL58tZlIW+$sSgyaqECY#-J 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�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

i5k1&zpahO~}O1&;a;=0G|lp0%ZUI6>DH? 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 IKeMs&FV>rt00000 literal 0 HcmV?d00001 diff --git a/dependencies/libarchive-3.5.2/doc/pdf/bsdcpio.1.pdf b/dependencies/libarchive-3.5.2/doc/pdf/bsdcpio.1.pdf new file mode 100644 index 0000000000000000000000000000000000000000..ff11dc50141f28e45e783841e1261a645aa44667 GIT binary patch literal 39464 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 OeFlY=R$Ng6<^KTb%p&Um literal 0 HcmV?d00001 diff --git a/dependencies/libarchive-3.5.2/doc/pdf/cpio.5.pdf b/dependencies/libarchive-3.5.2/doc/pdf/cpio.5.pdf new file mode 100644 index 0000000000000000000000000000000000000000..29722b2fb07bbc0836a248a09de5cbb4672c0dc7 GIT binary patch literal 39944 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 XT#{H+0xn35Er8jMOI6j?-;E0Z=M_3C literal 0 HcmV?d00001 diff --git a/dependencies/libarchive-3.5.2/doc/pdf/libarchive-formats.5.pdf b/dependencies/libarchive-3.5.2/doc/pdf/libarchive-formats.5.pdf new file mode 100644 index 0000000000000000000000000000000000000000..b4f1b57845e3ad0f92afdf73ee435c99b79c62d7 GIT binary patch literal 42891 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 literal 0 HcmV?d00001 diff --git a/dependencies/libarchive-3.5.2/doc/pdf/libarchive.3.pdf b/dependencies/libarchive-3.5.2/doc/pdf/libarchive.3.pdf new file mode 100644 index 0000000000000000000000000000000000000000..6450684b53fd3423ae72a8431008206f30ba5318 GIT binary patch literal 31661 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 literal 0 HcmV?d00001 diff --git a/dependencies/libarchive-3.5.2/doc/pdf/libarchive_changes.3.pdf b/dependencies/libarchive-3.5.2/doc/pdf/libarchive_changes.3.pdf new file mode 100644 index 0000000000000000000000000000000000000000..566bd8d1ffd776bb14bf19a3335df9bd3bb8f09d GIT binary patch literal 35697 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 G%Krlf8vMHe delta 15610 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 PP96XpC8dOtB;5Z1#09Qu diff --git a/dependencies/libarchive-3.5.2/doc/pdf/mtree.5.pdf b/dependencies/libarchive-3.5.2/doc/pdf/mtree.5.pdf new file mode 100644 index 0000000000000000000000000000000000000000..13b63f0330991d27d8f0a905c1c27cb66da9e7ff GIT binary patch literal 32505 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 literal 0 HcmV?d00001 diff --git a/dependencies/libarchive-3.4.2/doc/text/.ignore_me b/dependencies/libarchive-3.5.2/doc/text/.ignore_me similarity index 100% rename from dependencies/libarchive-3.4.2/doc/text/.ignore_me rename to dependencies/libarchive-3.5.2/doc/text/.ignore_me diff --git a/dependencies/libarchive-3.4.2/doc/text/Makefile b/dependencies/libarchive-3.5.2/doc/text/Makefile similarity index 99% rename from dependencies/libarchive-3.4.2/doc/text/Makefile rename to dependencies/libarchive-3.5.2/doc/text/Makefile index cace75d..d533e84 100644 --- a/dependencies/libarchive-3.4.2/doc/text/Makefile +++ b/dependencies/libarchive-3.5.2/doc/text/Makefile @@ -107,15 +107,15 @@ archive_write_set_passphrase.3.txt: ../../libarchive/archive_write_set_passphras cpio.5.txt: ../../libarchive/cpio.5 nroff -mdoc ../../libarchive/cpio.5 | col -b > cpio.5.txt -libarchive-formats.5.txt: ../../libarchive/libarchive-formats.5 - nroff -mdoc ../../libarchive/libarchive-formats.5 | col -b > libarchive-formats.5.txt - libarchive.3.txt: ../../libarchive/libarchive.3 nroff -mdoc ../../libarchive/libarchive.3 | col -b > libarchive.3.txt libarchive_changes.3.txt: ../../libarchive/libarchive_changes.3 nroff -mdoc ../../libarchive/libarchive_changes.3 | col -b > libarchive_changes.3.txt +libarchive-formats.5.txt: ../../libarchive/libarchive-formats.5 + nroff -mdoc ../../libarchive/libarchive-formats.5 | col -b > libarchive-formats.5.txt + libarchive_internals.3.txt: ../../libarchive/libarchive_internals.3 nroff -mdoc ../../libarchive/libarchive_internals.3 | col -b > libarchive_internals.3.txt @@ -130,4 +130,4 @@ bsdtar.1.txt: ../../tar/bsdtar.1 bsdcpio.1.txt: ../../cpio/bsdcpio.1 nroff -mdoc ../../cpio/bsdcpio.1 | col -b > bsdcpio.1.txt -all: archive_entry.3.txt archive_entry_acl.3.txt archive_entry_linkify.3.txt archive_entry_misc.3.txt archive_entry_paths.3.txt archive_entry_perms.3.txt archive_entry_stat.3.txt archive_entry_time.3.txt archive_read.3.txt archive_read_add_passphrase.3.txt archive_read_data.3.txt archive_read_disk.3.txt archive_read_extract.3.txt archive_read_filter.3.txt archive_read_format.3.txt archive_read_free.3.txt archive_read_header.3.txt archive_read_new.3.txt archive_read_open.3.txt archive_read_set_options.3.txt archive_util.3.txt archive_write.3.txt archive_write_blocksize.3.txt archive_write_data.3.txt archive_write_disk.3.txt archive_write_filter.3.txt archive_write_finish_entry.3.txt archive_write_format.3.txt archive_write_free.3.txt archive_write_header.3.txt archive_write_new.3.txt archive_write_open.3.txt archive_write_set_options.3.txt archive_write_set_passphrase.3.txt cpio.5.txt libarchive-formats.5.txt libarchive.3.txt libarchive_changes.3.txt libarchive_internals.3.txt mtree.5.txt tar.5.txt bsdtar.1.txt bsdcpio.1.txt +all: archive_entry.3.txt archive_entry_acl.3.txt archive_entry_linkify.3.txt archive_entry_misc.3.txt archive_entry_paths.3.txt archive_entry_perms.3.txt archive_entry_stat.3.txt archive_entry_time.3.txt archive_read.3.txt archive_read_add_passphrase.3.txt archive_read_data.3.txt archive_read_disk.3.txt archive_read_extract.3.txt archive_read_filter.3.txt archive_read_format.3.txt archive_read_free.3.txt archive_read_header.3.txt archive_read_new.3.txt archive_read_open.3.txt archive_read_set_options.3.txt archive_util.3.txt archive_write.3.txt archive_write_blocksize.3.txt archive_write_data.3.txt archive_write_disk.3.txt archive_write_filter.3.txt archive_write_finish_entry.3.txt archive_write_format.3.txt archive_write_free.3.txt archive_write_header.3.txt archive_write_new.3.txt archive_write_open.3.txt archive_write_set_options.3.txt archive_write_set_passphrase.3.txt cpio.5.txt libarchive.3.txt libarchive_changes.3.txt libarchive-formats.5.txt libarchive_internals.3.txt mtree.5.txt tar.5.txt bsdtar.1.txt bsdcpio.1.txt diff --git a/dependencies/libarchive-3.4.2/doc/text/archive_entry.3.txt b/dependencies/libarchive-3.5.2/doc/text/archive_entry.3.txt similarity index 96% rename from dependencies/libarchive-3.4.2/doc/text/archive_entry.3.txt rename to dependencies/libarchive-3.5.2/doc/text/archive_entry.3.txt index 8e4600d..f3d57db 100644 --- a/dependencies/libarchive-3.4.2/doc/text/archive_entry.3.txt +++ b/dependencies/libarchive-3.5.2/doc/text/archive_entry.3.txt @@ -2,7 +2,7 @@ ARCHIVE_ENTRY(3) BSD Library Functions Manual ARCHIVE_ENTRY(3) NAME archive_entry_clear, archive_entry_clone, archive_entry_free, - archive_entry_new -- functions for managing archive entry descriptions + archive_entry_new — functions for managing archive entry descriptions LIBRARY Streaming Archive Library (libarchive, -larchive) @@ -65,8 +65,8 @@ DESCRIPTION Stores the provided data in the object. In particular, for strings, the pointer is stored, not the referenced string. archive_entry_copy_XXXX() - As above, except that the referenced data is copied into the - object. + As above, except that the referenced data is copied into the ob‐ + ject. archive_entry_XXXX() Returns the specified data. In the case of strings, a const- qualified pointer to the string is returned. @@ -76,7 +76,7 @@ DESCRIPTION For example, if you store a narrow string and read the corresponding wide string, the object will transparently convert formats using the current locale. Similarly, if you store a wide string and then store a narrow - string for the same data, the previously-set wide string will be dis- + string for the same data, the previously-set wide string will be dis‐ carded in favor of the new data. SEE ALSO diff --git a/dependencies/libarchive-3.4.2/doc/text/archive_entry_acl.3.txt b/dependencies/libarchive-3.5.2/doc/text/archive_entry_acl.3.txt similarity index 90% rename from dependencies/libarchive-3.4.2/doc/text/archive_entry_acl.3.txt rename to dependencies/libarchive-3.5.2/doc/text/archive_entry_acl.3.txt index 34281cf..f0e118c 100644 --- a/dependencies/libarchive-3.4.2/doc/text/archive_entry_acl.3.txt +++ b/dependencies/libarchive-3.5.2/doc/text/archive_entry_acl.3.txt @@ -6,8 +6,8 @@ NAME archive_entry_acl_from_text, archive_entry_acl_from_text_w, archive_entry_acl_next, archive_entry_acl_reset, archive_entry_acl_to_text, archive_entry_acl_to_text_w, - archive_entry_acl_types -- functions for manipulating Access Control - Lists in archive entry descriptions + archive_entry_acl_types — functions for manipulating Access Control Lists + in archive entry descriptions LIBRARY Streaming Archive Library (libarchive, -larchive) @@ -57,7 +57,7 @@ SYNOPSIS archive_entry_acl_types(struct archive_entry *a); DESCRIPTION - The ``Access Control Lists (ACLs)'' extend the standard Unix permission + The “Access Control Lists (ACLs)” extend the standard Unix permission model. The ACL interface of libarchive supports both POSIX.1e and NFSv4 style ACLs. Use of ACLs is restricted by various levels of ACL support in operating systems, file systems and archive formats. @@ -86,9 +86,9 @@ DESCRIPTION and ARCHIVE_ENTRY_ACL_OTHER are equivalent to user, group and other in the classic Unix permission model and specify non-extended ACL entries. - All files have an access ACL (ARCHIVE_ENTRY_ACL_TYPE_ACCESS). This spec- - ifies the permissions required for access to the file itself. Directo- - ries have an additional ACL (ARCHIVE_ENTRY_ACL_TYPE_DEFAULT), which con- + All files have an access ACL (ARCHIVE_ENTRY_ACL_TYPE_ACCESS). This spec‐ + ifies the permissions required for access to the file itself. Directo‐ + ries have an additional ACL (ARCHIVE_ENTRY_ACL_TYPE_DEFAULT), which con‐ trols the initial access ACL for newly-created directory entries. NFSv4 Access Control Lists @@ -96,14 +96,14 @@ DESCRIPTION Entries (ACEs). There are four possible types of a NFSv4 ACE: - ARCHIVE_ENTRY_ACL_TYPE_ALLOW Allow principal to perform actions - requiring given permissions. - ARCHIVE_ENTRY_ACL_TYPE_DENY Prevent principal from performing - actions requiring given permissions. + ARCHIVE_ENTRY_ACL_TYPE_ALLOW Allow principal to perform actions re‐ + quiring given permissions. + ARCHIVE_ENTRY_ACL_TYPE_DENY Prevent principal from performing ac‐ + tions requiring given permissions. ARCHIVE_ENTRY_ACL_TYPE_AUDIT Log access attempts by principal which require given permissions. - ARCHIVE_ENTRY_ACL_TYPE_ALARM Trigger a system alarm on access - attempts by principal which require + ARCHIVE_ENTRY_ACL_TYPE_ALARM Trigger a system alarm on access at‐ + tempts by principal which require given permissions. The tag specifies the principal to which the permission applies. Valid @@ -182,7 +182,7 @@ DESCRIPTION classic Unix permissions are updated. An archive entry cannot contain both POSIX.1e and NFSv4 ACL entries. - archive_entry_acl_clear() removes all ACL entries and resets the enumera- + archive_entry_acl_clear() removes all ACL entries and resets the enumera‐ tion pointer. archive_entry_acl_count() counts the ACL entries that have the given type @@ -195,8 +195,8 @@ DESCRIPTION ARCHIVE_ENTRY_ACL_TYPE_AUDIT ARCHIVE_ENTRY_ACL_TYPE_ALARM for NFSv4 ACLs. For POSIX.1e ACLs if ARCHIVE_ENTRY_ACL_TYPE_ACCESS is - included and at least one extended ACL entry is found, the three non- - extended ACLs are added. + included and at least one extended ACL entry is found, the three non-ex‐ + tended ACLs are added. archive_entry_acl_from_text() and archive_entry_acl_from_text_w() add new (or merge with existing) ACL entries from (wide) text. The argument type @@ -207,23 +207,23 @@ DESCRIPTION Supports all formats that can be created with archive_entry_acl_to_text() or respectively archive_entry_acl_to_text_w(). Existing ACL entries are preserved. To get a clean new ACL from text archive_entry_acl_clear() - must be called first. Entries prefixed with ``default:'' are treated as + must be called first. Entries prefixed with “default:” are treated as ARCHIVE_ENTRY_ACL_TYPE_DEFAULT unless type is ARCHIVE_ENTRY_ACL_TYPE_NFS4. Invalid entries, non-parseable ACL entries - and entries beginning with the '#' character (comments) are skipped. + and entries beginning with the ‘#’ character (comments) are skipped. archive_entry_acl_next() return the next entry of the ACL list. This - functions may only be called after archive_entry_acl_reset() has indi- + functions may only be called after archive_entry_acl_reset() has indi‐ cated the presence of extended ACL entries. archive_entry_acl_reset() prepare reading the list of ACL entries with archive_entry_acl_next(). The function returns 0 if no non-extended ACLs are found. In this case, the access permissions should be obtained by - archive_entry_mode(3) or set using chmod(2). Otherwise, the function - returns the same value as archive_entry_acl_count(). + archive_entry_mode(3) or set using chmod(2). Otherwise, the function re‐ + turns the same value as archive_entry_acl_count(). archive_entry_acl_to_text() and archive_entry_acl_to_text_w() convert the - ACL entries for the given type into a (wide) string of ACL entries sepa- + ACL entries for the given type into a (wide) string of ACL entries sepa‐ rated by newline. If the pointer len_p is not NULL, then the function shall return the length of the string (not including the NULL terminator) in the location pointed to by len_p. The flag argument is a bitwise-or. @@ -234,7 +234,7 @@ DESCRIPTION ARCHIVE_ENTRY_ACL_TYPE_DEFAULT Output POSIX.1e default ACLs. ARCHIVE_ENTRY_ACL_STYLE_MARK_DEFAULT - Prefix each default ACL entry with the word ``default:''. + Prefix each default ACL entry with the word “default:”. ARCHIVE_ENTRY_ACL_STYLE_SOLARIS The mask and other ACLs don not contain a double colon. @@ -250,23 +250,22 @@ DESCRIPTION ARCHIVE_ENTRY_ACL_STYLE_SEPARATOR_COMMA Separate ACL entries with comma instead of newline. - If the archive entry contains NFSv4 ACLs, all types of NFSv4 ACLs are - returned. It the entry contains POSIX.1e ACLs and none of the flags - ARCHIVE_ENTRY_ACL_TYPE_ACCESS or ARCHIVE_ENTRY_ACL_TYPE_DEFAULT are spec- + If the archive entry contains NFSv4 ACLs, all types of NFSv4 ACLs are re‐ + turned. It the entry contains POSIX.1e ACLs and none of the flags + ARCHIVE_ENTRY_ACL_TYPE_ACCESS or ARCHIVE_ENTRY_ACL_TYPE_DEFAULT are spec‐ ified, both access and default entries are returned and default entries - are prefixed with ``default:''. + are prefixed with “default:”. - archive_entry_acl_types() get ACL entry types contained in an archive - entry's ACL. As POSIX.1e and NFSv4 ACL entries cannot be mixed, this - function is a very efficient way to detect if an ACL already contains + archive_entry_acl_types() get ACL entry types contained in an archive en‐ + try's ACL. As POSIX.1e and NFSv4 ACL entries cannot be mixed, this func‐ + tion is a very efficient way to detect if an ACL already contains POSIX.1e or NFSv4 ACL entries. RETURN VALUES - archive_entry_acl_count() and archive_entry_acl_reset() returns the num- + archive_entry_acl_count() and archive_entry_acl_reset() returns the num‐ ber of ACL entries that match the given type mask. For POSIX.1e ACLS if - the type mask includes ARCHIVE_ENTRY_ACL_TYPE_ACCESS and at least one - extended ACL entry exists, the three classic Unix permissions are - counted. + the type mask includes ARCHIVE_ENTRY_ACL_TYPE_ACCESS and at least one ex‐ + tended ACL entry exists, the three classic Unix permissions are counted. archive_entry_acl_from_text() and archive_entry_acl_from_text_w() return ARCHIVE_OK if all entries were successfully parsed and ARCHIVE_WARN if diff --git a/dependencies/libarchive-3.4.2/doc/text/archive_entry_linkify.3.txt b/dependencies/libarchive-3.5.2/doc/text/archive_entry_linkify.3.txt similarity index 82% rename from dependencies/libarchive-3.4.2/doc/text/archive_entry_linkify.3.txt rename to dependencies/libarchive-3.5.2/doc/text/archive_entry_linkify.3.txt index abbcd61..6c8a5dd 100644 --- a/dependencies/libarchive-3.4.2/doc/text/archive_entry_linkify.3.txt +++ b/dependencies/libarchive-3.5.2/doc/text/archive_entry_linkify.3.txt @@ -3,7 +3,7 @@ ARCHIVE_ENTRY_LINKIFY(3) BSD Library Functions Manual ARCHIVE_ENTRY_LINKIFY(3) NAME archive_entry_linkresolver, archive_entry_linkresolver_new, archive_entry_linkresolver_set_strategy, archive_entry_linkresolver_free, - archive_entry_linkify -- hardlink resolver functions + archive_entry_linkify — hardlink resolver functions LIBRARY Streaming Archive Library (libarchive, -larchive) @@ -27,8 +27,8 @@ SYNOPSIS DESCRIPTION Programs that want to create archives have to deal with hardlinks. - Hardlinks are handled in different ways by the archive formats. The - basic strategies are: + Hardlinks are handled in different ways by the archive formats. The ba‐ + sic strategies are: 1. Ignore hardlinks and store the body for each reference (old cpio, zip). @@ -37,23 +37,23 @@ DESCRIPTION 3. Store the body the last time an inode is seen (new cpio). - The archive_entry_linkresolver functions help by providing a unified - interface and handling the complexity behind the scene. + The archive_entry_linkresolver functions help by providing a unified in‐ + terface and handling the complexity behind the scene. - The archive_entry_linkresolver functions assume that archive_entry - instances have valid nlinks, inode and device values. The inode and - device value is used to match entries. The nlinks value is used to - determined if all references have been found and if the internal refer- - ences can be recycled. + The archive_entry_linkresolver functions assume that archive_entry in‐ + stances have valid nlinks, inode and device values. The inode and device + value is used to match entries. The nlinks value is used to determined + if all references have been found and if the internal references can be + recycled. - The archive_entry_linkresolver_new() function allocates a new link - resolver. The instance can be freed using + The archive_entry_linkresolver_new() function allocates a new link re‐ + solver. The instance can be freed using archive_entry_linkresolver_free(). All deferred entries are flushed and the internal storage is freed. - The archive_entry_linkresolver_set_strategy() function selects the opti- - mal hardlink strategy for the given format. The format code can be - obtained from archive_format(3). The function can be called more than + The archive_entry_linkresolver_set_strategy() function selects the opti‐ + mal hardlink strategy for the given format. The format code can be ob‐ + tained from archive_format(3). The function can be called more than once, but it is recommended to flush all deferred entries first. The archive_entry_linkify() function is the core of @@ -66,16 +66,16 @@ DESCRIPTION 2. For tar like archive formats, *sparse is set to NULL. If *entry is NULL, no action is taken. If the hardlink count of *entry is larger - than 1 and the file type is a regular file or symbolic link, the - internal list is searched for a matching inode. If such an inode is + than 1 and the file type is a regular file or symbolic link, the in‐ + ternal list is searched for a matching inode. If such an inode is found, the link count is decremented and the file size of *entry is set to 0 to notify that no body should be written. If no such inode is found, a copy of the entry is added to the internal cache with a link count reduced by one. 3. For new cpio like archive formats a value for *entry of NULL is used - to flush deferred entries. In that case *entry is set to an arbi- - trary deferred entry and the entry itself is removed from the inter- + to flush deferred entries. In that case *entry is set to an arbi‐ + trary deferred entry and the entry itself is removed from the inter‐ nal list. If the internal list is empty, *entry is set to NULL. In either case, *sparse is set to NULL and the function returns. If the hardlink count of *entry is one or the file type is a directory @@ -83,8 +83,8 @@ DESCRIPTION Otherwise, the internal list is searched for a matching inode. If such an inode is not found, the entry is added to the internal list, both *entry and *sparse are set to NULL and the function returns. - If such an inode is found, the link count is decremented. If it - remains larger than one, the existing entry on the internal list is + If such an inode is found, the link count is decremented. If it re‐ + mains larger than one, the existing entry on the internal list is swapped with *entry after retaining the link count. The existing entry is returned in *entry. If the link count reached one, the new entry is also removed from the internal list and returned in @@ -101,8 +101,8 @@ DESCRIPTION 4. If *sparse is not NULL, archive it. 5. After all entries have been written to disk, call - archive_entry_linkify() with *entry set to NULL and archive the - returned entry as long as it is not NULL. + archive_entry_linkify() with *entry set to NULL and archive the re‐ + turned entry as long as it is not NULL. RETURN VALUES archive_entry_linkresolver_new() returns NULL on malloc(3) failures. diff --git a/dependencies/libarchive-3.4.2/doc/text/archive_entry_misc.3.txt b/dependencies/libarchive-3.5.2/doc/text/archive_entry_misc.3.txt similarity index 86% rename from dependencies/libarchive-3.4.2/doc/text/archive_entry_misc.3.txt rename to dependencies/libarchive-3.5.2/doc/text/archive_entry_misc.3.txt index 7cc9676..77fd7fa 100644 --- a/dependencies/libarchive-3.4.2/doc/text/archive_entry_misc.3.txt +++ b/dependencies/libarchive-3.5.2/doc/text/archive_entry_misc.3.txt @@ -1,7 +1,7 @@ ARCHIVE_ENTRY_MISC(3) BSD Library Functions Manual ARCHIVE_ENTRY_MISC(3) NAME - archive_entry_symlink_type, archive_entry_set_symlink_type -- miscella- + archive_entry_symlink_type, archive_entry_set_symlink_type — miscella‐ neous functions for manipulating properties of archive_entry LIBRARY @@ -19,13 +19,13 @@ SYNOPSIS DESCRIPTION The function archive_entry_symlink_type() returns and the function archive_entry_set_symlink_type() sets the type of the symbolic link - stored in an archive entry. These functions have special meaning on - operating systems that support multiple symbolic link types (e.g. Micro- - soft Windows). + stored in an archive entry. These functions have special meaning on op‐ + erating systems that support multiple symbolic link types (e.g. Microsoft + Windows). Supported values are: - AE_SYMLINK_TYPE_UNDEFINED Symbolic link target type is not defined - (default on unix systems) + AE_SYMLINK_TYPE_UNDEFINED Symbolic link target type is not defined (de‐ + fault on unix systems) AE_SYMLINK_TYPE_FILE Symbolic link points to a file AE_SYMLINK_TYPE_DIRECTORY Symbolic link points to a directory diff --git a/dependencies/libarchive-3.4.2/doc/text/archive_entry_paths.3.txt b/dependencies/libarchive-3.5.2/doc/text/archive_entry_paths.3.txt similarity index 98% rename from dependencies/libarchive-3.4.2/doc/text/archive_entry_paths.3.txt rename to dependencies/libarchive-3.5.2/doc/text/archive_entry_paths.3.txt index 9e639f8..b883257 100644 --- a/dependencies/libarchive-3.4.2/doc/text/archive_entry_paths.3.txt +++ b/dependencies/libarchive-3.5.2/doc/text/archive_entry_paths.3.txt @@ -12,7 +12,7 @@ NAME archive_entry_sourcepath, archive_entry_copy_sourcepath, archive_entry_symlink, archive_entry_symlink_w, archive_entry_set_symlink, archive_entry_copy_symlink, - archive_entry_copy_symlink_w, archive_entry_update_symlink_utf8 -- func- + archive_entry_copy_symlink_w, archive_entry_update_symlink_utf8 — func‐ tions for manipulating path names in archive entry descriptions LIBRARY @@ -103,7 +103,7 @@ SYNOPSIS DESCRIPTION Path names supported by archive_entry(3): hardlink Destination of the hardlink. - link Update only. For a symlink, update the destination. Other- + link Update only. For a symlink, update the destination. Other‐ wise, make the entry a hardlink and alter the destination for that. pathname Path in the archive @@ -117,11 +117,11 @@ DESCRIPTION wchar_t * Wide character strings in the current locale. The accessor functions are named XXX_w(). - UTF-8 Unicode strings encoded as UTF-8. These are convenience func- + UTF-8 Unicode strings encoded as UTF-8. These are convenience func‐ tions to update both the multibyte and wide character strings at the same time. - The sourcepath is a pure filesystem concept and never stored in an ar- + The sourcepath is a pure filesystem concept and never stored in an ar‐ chive directly. For that reason, it is only available as multibyte string. The link path diff --git a/dependencies/libarchive-3.4.2/doc/text/archive_entry_perms.3.txt b/dependencies/libarchive-3.5.2/doc/text/archive_entry_perms.3.txt similarity index 96% rename from dependencies/libarchive-3.4.2/doc/text/archive_entry_perms.3.txt rename to dependencies/libarchive-3.5.2/doc/text/archive_entry_perms.3.txt index e5b09ec..ace02cc 100644 --- a/dependencies/libarchive-3.4.2/doc/text/archive_entry_perms.3.txt +++ b/dependencies/libarchive-3.5.2/doc/text/archive_entry_perms.3.txt @@ -10,9 +10,9 @@ NAME archive_entry_copy_gname, archive_entry_copy_gname_w, archive_entry_update_gname_utf8, archive_entry_fflags, archive_entry_fflags_text, archive_entry_set_fflags, - archive_entry_copy_fflags_text, archive_entry_copy_fflags_text_w -- func- - tions for manipulating ownership and permissions in archive entry - descriptions + archive_entry_copy_fflags_text, archive_entry_copy_fflags_text_w — func‐ + tions for manipulating ownership and permissions in archive entry de‐ + scriptions LIBRARY Streaming Archive Library (libarchive, -larchive) @@ -119,7 +119,7 @@ DESCRIPTION wchar_t * Wide character strings in the current locale. The accessor functions are named XXX_w(). - UTF-8 Unicode strings encoded as UTF-8. These are convenience func- + UTF-8 Unicode strings encoded as UTF-8. These are convenience func‐ tions to update both the multibyte and wide character strings at the same time. @@ -133,7 +133,7 @@ DESCRIPTION text, even if it is ill-formed. If you need to canonicalize a textual flags string, you should first set the text form, then request the bitmap form, then use that to set the bitmap form. Setting the bitmap format - will clear the internal text representation and force it to be recon- + will clear the internal text representation and force it to be recon‐ structed when you next request the text form. The bitmap format consists of two integers, one containing bits that @@ -152,8 +152,8 @@ DESCRIPTION This is a platform-specific operation; names that are not meaningful on the current platform will be ignored. The function returns a pointer to the start of the first name that was not recognized, or NULL if every - name was recognized. Note that every name -- including names that follow - an unrecognized name -- will be evaluated, and the bitmaps will be set to + name was recognized. Note that every name — including names that follow + an unrecognized name — will be evaluated, and the bitmaps will be set to reflect every name that is recognized. (In particular, this differs from strtofflags(3), which stops parsing at the first unrecognized name.) @@ -163,7 +163,7 @@ SEE ALSO BUGS The platform types uid_t and gid_t are often 16 or 32 bit wide. In this - case it is possible that the ids can not be correctly restored from ar- + case it is possible that the ids can not be correctly restored from ar‐ chives and get truncated. BSD February 2, 2012 BSD diff --git a/dependencies/libarchive-3.4.2/doc/text/archive_entry_stat.3.txt b/dependencies/libarchive-3.5.2/doc/text/archive_entry_stat.3.txt similarity index 89% rename from dependencies/libarchive-3.4.2/doc/text/archive_entry_stat.3.txt rename to dependencies/libarchive-3.5.2/doc/text/archive_entry_stat.3.txt index ef69bb6..9969685 100644 --- a/dependencies/libarchive-3.4.2/doc/text/archive_entry_stat.3.txt +++ b/dependencies/libarchive-3.5.2/doc/text/archive_entry_stat.3.txt @@ -11,8 +11,8 @@ NAME archive_entry_ino_is_set, archive_entry_ino64, archive_entry_set_ino64, archive_entry_nlink, archive_entry_rdev, archive_entry_set_rdev, archive_entry_rdevmajor, archive_entry_set_rdevmajor, - archive_entry_rdevminor, archive_entry_set_rdevminor -- accessor func- - tions for manipulating archive entry descriptions + archive_entry_rdevminor, archive_entry_set_rdevminor — accessor functions + for manipulating archive entry descriptions LIBRARY Streaming Archive Library (libarchive, -larchive) @@ -113,14 +113,13 @@ SYNOPSIS DESCRIPTION Copying to and from struct stat The function archive_entry_stat() converts the various fields stored in - the archive entry to the format used by stat(2). The return value - remains valid until either archive_entry_clear() or archive_entry_free() - is called. It is not affected by calls to the set accessor functions. - It currently sets the following values in struct stat: st_atime, - st_ctime, st_dev, st_gid, st_ino, st_mode, st_mtime, st_nlink, st_rdev, - st_size, st_uid. In addition, st_birthtime and high-precision informa- - tion for time-related fields will be included on platforms that support - it. + the archive entry to the format used by stat(2). The return value re‐ + mains valid until either archive_entry_clear() or archive_entry_free() is + called. It is not affected by calls to the set accessor functions. It + currently sets the following values in struct stat: st_atime, st_ctime, + st_dev, st_gid, st_ino, st_mode, st_mtime, st_nlink, st_rdev, st_size, + st_uid. In addition, st_birthtime and high-precision information for + time-related fields will be included on platforms that support it. The function archive_entry_copy_stat() copies fields from the platform's struct stat. Fields not provided by struct stat are unchanged. @@ -137,7 +136,7 @@ DESCRIPTION AE_IFDIR Directory AE_IFIFO Named pipe (fifo) Not all file types are supported by all platforms. The constants used by - stat(2) may have different numeric values from the corresponding con- + stat(2) may have different numeric values from the corresponding con‐ stants above. The functions archive_entry_mode() and archive_entry_set_mode() get/set a @@ -152,7 +151,7 @@ DESCRIPTION unset the size, respectively. The number of references (hardlinks) can be obtained by calling - archive_entry_nlinks() and set with archive_entry_set_nlinks(). + archive_entry_nlink() and set with archive_entry_set_nlink(). Identifying unique files The functions archive_entry_dev() and archive_entry_ino64() are used by @@ -167,11 +166,11 @@ DESCRIPTION The inode number can be obtained using archive_entry_ino(). This is a legacy interface that uses the platform ino_t, which may be very small. - To set the inode number, archive_entry_set_ino64() is the preferred - interface. + To set the inode number, archive_entry_set_ino64() is the preferred in‐ + terface. Accessor functions for block and character devices - Block and character devices are characterised either using a device num- + Block and character devices are characterised either using a device num‐ ber or a pair of major and minor number. The combined device number can be obtained with archive_device_rdev() and set with archive_device_set_rdev(). The major and minor numbers are accessed by diff --git a/dependencies/libarchive-3.4.2/doc/text/archive_entry_time.3.txt b/dependencies/libarchive-3.5.2/doc/text/archive_entry_time.3.txt similarity index 97% rename from dependencies/libarchive-3.4.2/doc/text/archive_entry_time.3.txt rename to dependencies/libarchive-3.5.2/doc/text/archive_entry_time.3.txt index d2d5328..49052c3 100644 --- a/dependencies/libarchive-3.4.2/doc/text/archive_entry_time.3.txt +++ b/dependencies/libarchive-3.5.2/doc/text/archive_entry_time.3.txt @@ -10,7 +10,7 @@ NAME archive_entry_ctime_is_set, archive_entry_set_ctime, archive_entry_unset_ctime, archive_entry_mtime, archive_entry_mtime_nsec, archive_entry_mtime_is_set, archive_entry_set_mtime, - archive_entry_unset_mtime -- functions for manipulating times in archive + archive_entry_unset_mtime — functions for manipulating times in archive entry descriptions LIBRARY @@ -95,7 +95,7 @@ DESCRIPTION All timestamp fields are optional. The XXX_unset() functions can be used to mark the corresponding field as missing. The current state can be - queried using XXX_is_set(). Unset time fields have a second and nanosec- + queried using XXX_is_set(). Unset time fields have a second and nanosec‐ ond field of 0. SEE ALSO diff --git a/dependencies/libarchive-3.4.2/doc/text/archive_read.3.txt b/dependencies/libarchive-3.5.2/doc/text/archive_read.3.txt similarity index 93% rename from dependencies/libarchive-3.4.2/doc/text/archive_read.3.txt rename to dependencies/libarchive-3.5.2/doc/text/archive_read.3.txt index 0481d95..a9c3ad1 100644 --- a/dependencies/libarchive-3.4.2/doc/text/archive_read.3.txt +++ b/dependencies/libarchive-3.5.2/doc/text/archive_read.3.txt @@ -1,7 +1,7 @@ ARCHIVE_READ(3) BSD Library Functions Manual ARCHIVE_READ(3) NAME - archive_read -- functions for reading streaming archives + archive_read — functions for reading streaming archives LIBRARY Streaming Archive Library (libarchive, -larchive) @@ -11,9 +11,9 @@ SYNOPSIS DESCRIPTION These functions provide a complete API for reading streaming archives. - The general process is to first create the struct archive object, set - options, initialize the reader, iterate over the archive headers and - associated data, then close the archive and release all resources. + The general process is to first create the struct archive object, set op‐ + tions, initialize the reader, iterate over the archive headers and asso‐ + ciated data, then close the archive and release all resources. Create archive object See archive_read_new(3). @@ -24,10 +24,10 @@ DESCRIPTION Enable filters and formats See archive_read_filter(3) and archive_read_format(3). - You can then modify this object for the desired operations with the vari- + You can then modify this object for the desired operations with the vari‐ ous archive_read_set_XXX() and archive_read_support_XXX() functions. In particular, you will need to invoke appropriate - archive_read_support_XXX() functions to enable the corresponding compres- + archive_read_support_XXX() functions to enable the corresponding compres‐ sion and format support. Note that these latter functions perform two distinct operations: they cause the corresponding support code to be linked into your program, and they enable the corresponding auto-detect @@ -43,7 +43,7 @@ DESCRIPTION See archive_read_open(3). Once you have prepared the struct archive object, you call - archive_read_open() to actually open the archive and prepare it for read- + archive_read_open() to actually open the archive and prepare it for read‐ ing. There are several variants of this function; the most basic expects you to provide pointers to several functions that can provide blocks of bytes from the archive. There are convenience forms that allow you to @@ -58,11 +58,11 @@ DESCRIPTION Each archive entry consists of a header followed by a certain amount of data. You can obtain the next header with archive_read_next_header(), - which returns a pointer to an struct archive_entry structure with infor- + which returns a pointer to an struct archive_entry structure with infor‐ mation about the current archive element. If the entry is a regular file, then the header will be followed by the file data. You can use archive_read_data() (which works much like the read(2) system call) to - read this data from the archive, or archive_read_data_block() which pro- + read this data from the archive, or archive_read_data_block() which pro‐ vides a slightly more efficient interface. You may prefer to use the higher-level archive_read_data_skip(), which reads and discards the data for this entry, archive_read_data_into_fd(), which copies the data to the @@ -147,10 +147,10 @@ AUTHORS The libarchive library was written by Tim Kientzle . BUGS - Many traditional archiver programs treat empty files as valid empty ar- + Many traditional archiver programs treat empty files as valid empty ar‐ chives. For example, many implementations of tar(1) allow you to append entries to an empty file. Of course, it is impossible to determine the format of an empty file by inspecting the contents, so this library - treats empty files as having a special ``empty'' format. + treats empty files as having a special “empty” format. BSD February 2, 2012 BSD diff --git a/dependencies/libarchive-3.4.2/doc/text/archive_read_add_passphrase.3.txt b/dependencies/libarchive-3.5.2/doc/text/archive_read_add_passphrase.3.txt similarity index 93% rename from dependencies/libarchive-3.4.2/doc/text/archive_read_add_passphrase.3.txt rename to dependencies/libarchive-3.5.2/doc/text/archive_read_add_passphrase.3.txt index 67d572e..f3075b7 100644 --- a/dependencies/libarchive-3.4.2/doc/text/archive_read_add_passphrase.3.txt +++ b/dependencies/libarchive-3.5.2/doc/text/archive_read_add_passphrase.3.txt @@ -1,8 +1,8 @@ ARCHIVE_READ_ADD_PASS... BSD Library Functions Manual ARCHIVE_READ_ADD_PASS... NAME - archive_read_add_passphrase, archive_read_set_passphrase_callback -- - functions for reading encrypted archives + archive_read_add_passphrase, archive_read_set_passphrase_callback — func‐ + tions for reading encrypted archives LIBRARY Streaming Archive Library (libarchive, -larchive) @@ -26,7 +26,7 @@ DESCRIPTION archive_read_set_passphrase_callback() Register a callback function that will be invoked to get a - passphrase for decryption after trying all the passphrases regis- + passphrase for decryption after trying all the passphrases regis‐ tered by the archive_read_add_passphrase() function failed. SEE ALSO diff --git a/dependencies/libarchive-3.4.2/doc/text/archive_read_data.3.txt b/dependencies/libarchive-3.5.2/doc/text/archive_read_data.3.txt similarity index 93% rename from dependencies/libarchive-3.4.2/doc/text/archive_read_data.3.txt rename to dependencies/libarchive-3.5.2/doc/text/archive_read_data.3.txt index 9cda859..b39ebe0 100644 --- a/dependencies/libarchive-3.4.2/doc/text/archive_read_data.3.txt +++ b/dependencies/libarchive-3.5.2/doc/text/archive_read_data.3.txt @@ -2,7 +2,7 @@ ARCHIVE_READ_DATA(3) BSD Library Functions Manual ARCHIVE_READ_DATA(3) NAME archive_read_data, archive_read_data_block, archive_read_data_skip, - archive_read_data_into_fd -- functions for reading streaming archives + archive_read_data_into_fd — functions for reading streaming archives LIBRARY Streaming Archive Library (libarchive, -larchive) @@ -27,35 +27,35 @@ DESCRIPTION archive_read_data() Read data associated with the header just read. Internally, this is a convenience function that calls archive_read_data_block() - and fills any gaps with nulls so that callers see a single con- + and fills any gaps with nulls so that callers see a single con‐ tinuous stream of data. archive_read_data_block() Return the next available block of data for this entry. Unlike archive_read_data(), the archive_read_data_block() function avoids copying data and allows you to correctly handle sparse - files, as supported by some archive formats. The library guaran- + files, as supported by some archive formats. The library guaran‐ tees that offsets will increase and that blocks will not overlap. Note that the blocks returned from this function can be much larger than the block size read from disk, due to compression and internal buffer optimizations. archive_read_data_skip() A convenience function that repeatedly calls - archive_read_data_block() to skip all of the data for this ar- + archive_read_data_block() to skip all of the data for this ar‐ chive entry. Note that this function is invoked automatically by - archive_read_next_header2() if the previous entry was not com- + archive_read_next_header2() if the previous entry was not com‐ pletely consumed. archive_read_data_into_fd() A convenience function that repeatedly calls - archive_read_data_block() to copy the entire entry to the pro- + archive_read_data_block() to copy the entire entry to the pro‐ vided file descriptor. RETURN VALUES Most functions return zero on success, non-zero on error. The possible return codes include: ARCHIVE_OK (the operation succeeded), ARCHIVE_WARN (the operation succeeded but a non-critical error was encountered), - ARCHIVE_EOF (end-of-archive was encountered), ARCHIVE_RETRY (the opera- - tion failed but can be retried), and ARCHIVE_FATAL (there was a fatal - error; the archive should be closed immediately). + ARCHIVE_EOF (end-of-archive was encountered), ARCHIVE_RETRY (the opera‐ + tion failed but can be retried), and ARCHIVE_FATAL (there was a fatal er‐ + ror; the archive should be closed immediately). archive_read_data() returns a count of bytes actually read or zero at the end of the entry. On error, a value of ARCHIVE_FATAL, ARCHIVE_WARN, or diff --git a/dependencies/libarchive-3.4.2/doc/text/archive_read_disk.3.txt b/dependencies/libarchive-3.5.2/doc/text/archive_read_disk.3.txt similarity index 83% rename from dependencies/libarchive-3.4.2/doc/text/archive_read_disk.3.txt rename to dependencies/libarchive-3.5.2/doc/text/archive_read_disk.3.txt index 925fa71..b9f8d90 100644 --- a/dependencies/libarchive-3.4.2/doc/text/archive_read_disk.3.txt +++ b/dependencies/libarchive-3.5.2/doc/text/archive_read_disk.3.txt @@ -7,7 +7,7 @@ NAME archive_read_disk_set_symlink_hybrid, archive_read_disk_entry_from_file, archive_read_disk_gname, archive_read_disk_uname, archive_read_disk_set_uname_lookup, archive_read_disk_set_gname_lookup, - archive_read_disk_set_standard_lookup -- functions for reading objects + archive_read_disk_set_standard_lookup — functions for reading objects from disk LIBRARY @@ -70,55 +70,55 @@ DESCRIPTION (file flag) set. By default, the nodump file attribute is ignored. ARCHIVE_READDISK_MAC_COPYFILE - Mac OS X specific. Read metadata (ACLs and extended - attributes) with copyfile(3). By default, metadata is - read using copyfile(3). + Mac OS X specific. Read metadata (ACLs and extended at‐ + tributes) with copyfile(3). By default, metadata is read + using copyfile(3). ARCHIVE_READDISK_NO_ACL Do not read Access Control Lists. By default, ACLs are read from disk. ARCHIVE_READDISK_NO_FFLAGS Do not read file attributes (file flags). By default, file attributes are read from disk. See chattr(1) - (Linux) or chflags(1) (FreeBSD, Mac OS X) for more infor- + (Linux) or chflags(1) (FreeBSD, Mac OS X) for more infor‐ mation on file attributes. ARCHIVE_READDISK_NO_TRAVERSE_MOUNTS Do not traverse mount points. By default, mount points are traversed. ARCHIVE_READDISK_NO_XATTR - Do not read extended file attributes (xattrs). By - default, extended file attributes are read from disk. - See xattr(7) (Linux), xattr(2) (Mac OS X), or - getextattr(8) (FreeBSD) for more information on extended - file attributes. + Do not read extended file attributes (xattrs). By de‐ + fault, extended file attributes are read from disk. See + xattr(7) (Linux), xattr(2) (Mac OS X), or getextattr(8) + (FreeBSD) for more information on extended file at‐ + tributes. ARCHIVE_READDISK_RESTORE_ATIME - Restore access time of traversed files. By default, - access time of traversed files is not restored. + Restore access time of traversed files. By default, ac‐ + cess time of traversed files is not restored. archive_read_disk_set_symlink_logical(), archive_read_disk_set_symlink_physical(), archive_read_disk_set_symlink_hybrid() This sets the mode used for handling symbolic links. The - ``logical'' mode follows all symbolic links. The ``physical'' - mode does not follow any symbolic links. The ``hybrid'' mode - currently behaves identically to the ``logical'' mode. + “logical” mode follows all symbolic links. The “physical” mode + does not follow any symbolic links. The “hybrid” mode currently + behaves identically to the “logical” mode. archive_read_disk_gname(), archive_read_disk_uname() - Returns a user or group name given a gid or uid value. By - default, these always return a NULL string. + Returns a user or group name given a gid or uid value. By de‐ + fault, these always return a NULL string. archive_read_disk_set_gname_lookup(), archive_read_disk_set_uname_lookup() These allow you to override the functions used for user and group name lookups. You may also provide a void * pointer to a private data structure and a cleanup function for that data. The cleanup - function will be invoked when the struct archive object is - destroyed or when new lookup functions are registered. + function will be invoked when the struct archive object is de‐ + stroyed or when new lookup functions are registered. archive_read_disk_set_standard_lookup() This convenience function installs a standard set of user and group name lookup functions. These functions use getpwuid(3) and getgrgid(3) to convert ids to names, defaulting to NULL if the - names cannot be looked up. These functions also implement a sim- + names cannot be looked up. These functions also implement a sim‐ ple memory cache to reduce the number of calls to getpwuid(3) and getgrgid(3). @@ -130,15 +130,15 @@ DESCRIPTION source path will be used.) Information is read from disk using the path name from the struct - archive_entry object. If a file descriptor is provided, some - information will be obtained using that file descriptor, on plat- + archive_entry object. If a file descriptor is provided, some in‐ + formation will be obtained using that file descriptor, on plat‐ forms that support the appropriate system calls. If a pointer to a struct stat is provided, information from that - structure will be used instead of reading from the disk where - appropriate. This can provide performance benefits in scenarios + structure will be used instead of reading from the disk where ap‐ + propriate. This can provide performance benefits in scenarios where struct stat information has already been read from the disk - as a side effect of some other operation. (For example, direc- + as a side effect of some other operation. (For example, direc‐ tory traversal libraries often provide this information.) Where necessary, user and group ids are converted to user and @@ -182,14 +182,14 @@ RETURN VALUES negative error codes for errors. Specific error codes include: ARCHIVE_RETRY for operations that might succeed if retried, ARCHIVE_WARN for unusual conditions that do not prevent further operations, and - ARCHIVE_FATAL for serious errors that make remaining operations impossi- + ARCHIVE_FATAL for serious errors that make remaining operations impossi‐ ble. archive_read_disk_new() returns a pointer to a newly-allocated struct archive object or NULL if the allocation failed for any reason. archive_read_disk_gname() and archive_read_disk_uname() return const char - * pointers to the textual name or NULL if the lookup failed for any rea- + * pointers to the textual name or NULL if the lookup failed for any rea‐ son. The returned pointer points to internal storage that may be reused on the next call to either of these functions; callers should copy the string if they need to continue accessing it. @@ -204,30 +204,30 @@ SEE ALSO HISTORY The libarchive library first appeared in FreeBSD 5.3. The - archive_read_disk interface was added to libarchive 2.6 and first - appeared in FreeBSD 8.0. + archive_read_disk interface was added to libarchive 2.6 and first ap‐ + peared in FreeBSD 8.0. AUTHORS The libarchive library was written by Tim Kientzle . BUGS - The ``standard'' user name and group name lookup functions are not the - defaults because getgrgid(3) and getpwuid(3) are sometimes too large for - particular applications. The current design allows the application - author to use a more compact implementation when appropriate. + The “standard” user name and group name lookup functions are not the de‐ + faults because getgrgid(3) and getpwuid(3) are sometimes too large for + particular applications. The current design allows the application au‐ + thor to use a more compact implementation when appropriate. The full list of metadata read from disk by archive_read_disk_entry_from_file() is necessarily system-dependent. - The archive_read_disk_entry_from_file() function reads as much informa- + The archive_read_disk_entry_from_file() function reads as much informa‐ tion as it can from disk. Some method should be provided to limit this so that clients who do not need ACLs, for instance, can avoid the extra work needed to look up such information. This API should provide a set of methods for walking a directory tree. That would make it a direct parallel of the archive_read(3) API. When - such methods are implemented, the ``hybrid'' symbolic link mode will make + such methods are implemented, the “hybrid” symbolic link mode will make sense. BSD April 3, 2017 BSD diff --git a/dependencies/libarchive-3.4.2/doc/text/archive_read_extract.3.txt b/dependencies/libarchive-3.5.2/doc/text/archive_read_extract.3.txt similarity index 80% rename from dependencies/libarchive-3.4.2/doc/text/archive_read_extract.3.txt rename to dependencies/libarchive-3.5.2/doc/text/archive_read_extract.3.txt index 1cccb51..aaf1237 100644 --- a/dependencies/libarchive-3.4.2/doc/text/archive_read_extract.3.txt +++ b/dependencies/libarchive-3.5.2/doc/text/archive_read_extract.3.txt @@ -2,7 +2,7 @@ ARCHIVE_READ_EXTRACT(3) BSD Library Functions Manual ARCHIVE_READ_EXTRACT(3) NAME archive_read_extract, archive_read_extract2, - archive_read_extract_set_progress_callback -- functions for reading + archive_read_extract_set_progress_callback — functions for reading streaming archives LIBRARY @@ -29,12 +29,11 @@ DESCRIPTION archive_write_disk(3) interfaces. The first call to archive_read_extract() creates a restore object using archive_write_disk_new(3) and - archive_write_disk_set_standard_lookup(3), then transparently - invokes archive_write_disk_set_options(3), - archive_write_header(3), archive_write_data(3), and - archive_write_finish_entry(3) to create the entry on disk and - copy data into it. The flags argument is passed unmodified to - archive_write_disk_set_options(3). + archive_write_disk_set_standard_lookup(3), then transparently in‐ + vokes archive_write_disk_set_options(3), archive_write_header(3), + archive_write_data(3), and archive_write_finish_entry(3) to cre‐ + ate the entry on disk and copy data into it. The flags argument + is passed unmodified to archive_write_disk_set_options(3). archive_read_extract2() This is another version of archive_read_extract() that allows you to provide your own restore object. In particular, this allows @@ -46,21 +45,21 @@ DESCRIPTION options yourself. archive_read_extract_set_progress_callback() Sets a pointer to a user-defined callback that can be used for - updating progress displays during extraction. The progress func- + updating progress displays during extraction. The progress func‐ tion will be invoked during the extraction of large regular files. The progress function will be invoked with the pointer - provided to this call. Generally, the data pointed to should - include a reference to the archive object and the archive_entry - object so that various statistics can be retrieved for the - progress display. + provided to this call. Generally, the data pointed to should in‐ + clude a reference to the archive object and the archive_entry ob‐ + ject so that various statistics can be retrieved for the progress + display. RETURN VALUES Most functions return zero on success, non-zero on error. The possible return codes include: ARCHIVE_OK (the operation succeeded), ARCHIVE_WARN (the operation succeeded but a non-critical error was encountered), - ARCHIVE_EOF (end-of-archive was encountered), ARCHIVE_RETRY (the opera- - tion failed but can be retried), and ARCHIVE_FATAL (there was a fatal - error; the archive should be closed immediately). + ARCHIVE_EOF (end-of-archive was encountered), ARCHIVE_RETRY (the opera‐ + tion failed but can be retried), and ARCHIVE_FATAL (there was a fatal er‐ + ror; the archive should be closed immediately). ERRORS Detailed error codes and textual descriptions are available from the diff --git a/dependencies/libarchive-3.4.2/doc/text/archive_read_filter.3.txt b/dependencies/libarchive-3.5.2/doc/text/archive_read_filter.3.txt similarity index 84% rename from dependencies/libarchive-3.4.2/doc/text/archive_read_filter.3.txt rename to dependencies/libarchive-3.5.2/doc/text/archive_read_filter.3.txt index 9cfb5f8..01b6c97 100644 --- a/dependencies/libarchive-3.4.2/doc/text/archive_read_filter.3.txt +++ b/dependencies/libarchive-3.5.2/doc/text/archive_read_filter.3.txt @@ -7,7 +7,7 @@ NAME archive_read_support_filter_none, archive_read_support_filter_rpm, archive_read_support_filter_uu, archive_read_support_filter_xz, archive_read_support_filter_zstd, archive_read_support_filter_program, - archive_read_support_filter_program_signature -- functions for reading + archive_read_support_filter_program_signature — functions for reading streaming archives LIBRARY @@ -19,6 +19,9 @@ SYNOPSIS int archive_read_support_filter_all(struct archive *); + int + archive_read_support_filter_by_code(struct archive *, int); + int archive_read_support_filter_bzip2(struct archive *); @@ -83,14 +86,20 @@ DESCRIPTION specified compression. These functions may fall back on external programs if an appropriate library was not available at build time. Decompression using an external program is usually slower - than decompression through built-in libraries. Note that - ``none'' is always enabled by default. + than decompression through built-in libraries. Note that “none” + is always enabled by default. archive_read_support_filter_all() Enables all available decompression filters. + archive_read_support_filter_by_code() + Enables a single filter specified by the filter code. This func‐ + tion does not work with ARCHIVE_FILTER_PROGRAM. Note: In stati‐ + cally-linked executables, this will cause your program to include + support for every filter. If executable size is a concern, you + may wish to avoid using this function. archive_read_support_filter_program() Data is fed through the specified external program before being dearchived. Note that this disables automatic detection of the - compression format, so it makes no sense to specify this in con- + compression format, so it makes no sense to specify this in con‐ junction with any other decompression option. archive_read_support_filter_program_signature() This feeds data through the specified external program but only @@ -112,4 +121,4 @@ SEE ALSO archive_read(3), archive_read_data(3), archive_read_format(3), archive_read_format(3), libarchive(3) -BSD August 14, 2014 BSD +BSD June 9, 2020 BSD diff --git a/dependencies/libarchive-3.4.2/doc/text/archive_read_format.3.txt b/dependencies/libarchive-3.5.2/doc/text/archive_read_format.3.txt similarity index 78% rename from dependencies/libarchive-3.4.2/doc/text/archive_read_format.3.txt rename to dependencies/libarchive-3.5.2/doc/text/archive_read_format.3.txt index c5eb5c7..cd80251 100644 --- a/dependencies/libarchive-3.4.2/doc/text/archive_read_format.3.txt +++ b/dependencies/libarchive-3.5.2/doc/text/archive_read_format.3.txt @@ -8,7 +8,7 @@ NAME archive_read_support_format_lha, archive_read_support_format_mtree, archive_read_support_format_rar, archive_read_support_format_raw, archive_read_support_format_tar, archive_read_support_format_xar, - archive_read_support_format_zip -- functions for reading streaming ar- + archive_read_support_format_zip — functions for reading streaming ar‐ chives LIBRARY @@ -74,33 +74,33 @@ DESCRIPTION archive_read_support_format_tar(), archive_read_support_format_xar(), archive_read_support_format_zip() - Enables support---including auto-detection code---for the speci- + Enables support---including auto-detection code---for the speci‐ fied archive format. For example, archive_read_support_format_tar() enables support for a variety of standard tar formats, old-style tar, ustar, pax interchange format, and many common variants. archive_read_support_format_all() - Enables support for all available formats except the ``raw'' for- - mat (see below). + Enables support for all available formats except the “raw” format + (see below). archive_read_support_format_by_code() Enables a single format specified by the format code. This can be useful when reading a single archive twice; use - archive_format() after reading the first time and pass the - resulting code to this function to selectively enable only the - necessary format support. Note: In statically-linked executa- - bles, this will cause your program to include support for every - format. If executable size is a concern, you may wish to avoid - using this function. + archive_format() after reading the first time and pass the re‐ + sulting code to this function to selectively enable only the nec‐ + essary format support. Note: In statically-linked executables, + this will cause your program to include support for every format. + If executable size is a concern, you may wish to avoid using this + function. archive_read_support_format_empty() - Enables support for treating empty files as empty archives. - Because empty files are valid for several different formats, it - is not possible to accurately determine a format for an empty - file based purely on contents. So empty files are treated by + Enables support for treating empty files as empty archives. Be‐ + cause empty files are valid for several different formats, it is + not possible to accurately determine a format for an empty file + based purely on contents. So empty files are treated by libarchive as a distinct format. archive_read_support_format_raw() - The ``raw'' format handler allows libarchive to be used to read - arbitrary data. It treats any data stream as an archive with a - single entry. The pathname of this entry is ``data''; all other + The “raw” format handler allows libarchive to be used to read ar‐ + bitrary data. It treats any data stream as an archive with a + single entry. The pathname of this entry is “data”; all other entry fields are unset. This is not enabled by archive_read_support_format_all() in order to avoid erroneous handling of damaged archives. @@ -117,13 +117,13 @@ SEE ALSO archive_read_set_options(3), archive_util(3), libarchive(3), tar(5) BUGS - Many traditional archiver programs treat empty files as valid empty ar- + Many traditional archiver programs treat empty files as valid empty ar‐ chives. For example, many implementations of tar(1) allow you to append entries to an empty file. Of course, it is impossible to determine the format of an empty file by inspecting the contents, so this library - treats empty files as having a special ``empty'' format. + treats empty files as having a special “empty” format. - Using the ``raw'' handler together with any other handler will often work + Using the “raw” handler together with any other handler will often work but can produce surprising results. BSD February 2, 2012 BSD diff --git a/dependencies/libarchive-3.4.2/doc/text/archive_read_free.3.txt b/dependencies/libarchive-3.5.2/doc/text/archive_read_free.3.txt similarity index 98% rename from dependencies/libarchive-3.4.2/doc/text/archive_read_free.3.txt rename to dependencies/libarchive-3.5.2/doc/text/archive_read_free.3.txt index ae2ea19..508b267 100644 --- a/dependencies/libarchive-3.4.2/doc/text/archive_read_free.3.txt +++ b/dependencies/libarchive-3.5.2/doc/text/archive_read_free.3.txt @@ -1,7 +1,7 @@ ARCHIVE_READ_FREE(3) BSD Library Functions Manual ARCHIVE_READ_FREE(3) NAME - archive_read_close, archive_read_finish, archive_read_free -- functions + archive_read_close, archive_read_finish, archive_read_free — functions for reading streaming archives LIBRARY @@ -25,7 +25,7 @@ DESCRIPTION archive_read_finish() This is a deprecated synonym for archive_read_free(). The new name was introduced with libarchive 3.0. Applications that need - to compile with either libarchive 2 or libarchive 3 should con- + to compile with either libarchive 2 or libarchive 3 should con‐ tinue to use the archive_read_finish() name. Both names will be supported until libarchive 4.0 is released, which is not expected to occur earlier than 2013. diff --git a/dependencies/libarchive-3.4.2/doc/text/archive_read_header.3.txt b/dependencies/libarchive-3.5.2/doc/text/archive_read_header.3.txt similarity index 88% rename from dependencies/libarchive-3.4.2/doc/text/archive_read_header.3.txt rename to dependencies/libarchive-3.5.2/doc/text/archive_read_header.3.txt index 0998d35..855711a 100644 --- a/dependencies/libarchive-3.4.2/doc/text/archive_read_header.3.txt +++ b/dependencies/libarchive-3.5.2/doc/text/archive_read_header.3.txt @@ -1,8 +1,8 @@ ARCHIVE_READ_HEADER(3) BSD Library Functions Manual ARCHIVE_READ_HEADER(3) NAME - archive_read_next_header, archive_read_next_header2 -- functions for - reading streaming archives + archive_read_next_header, archive_read_next_header2 — functions for read‐ + ing streaming archives LIBRARY Streaming Archive Library (libarchive, -larchive) @@ -29,9 +29,9 @@ DESCRIPTION RETURN VALUES These functions return ARCHIVE_OK (the operation succeeded), ARCHIVE_WARN (the operation succeeded but a non-critical error was encountered), - ARCHIVE_EOF (end-of-archive was encountered), ARCHIVE_RETRY (the opera- - tion failed but can be retried), and ARCHIVE_FATAL (there was a fatal - error; the archive should be closed immediately). + ARCHIVE_EOF (end-of-archive was encountered), ARCHIVE_RETRY (the opera‐ + tion failed but can be retried), and ARCHIVE_FATAL (there was a fatal er‐ + ror; the archive should be closed immediately). ERRORS Detailed error codes and textual descriptions are available from the diff --git a/dependencies/libarchive-3.4.2/doc/text/archive_read_new.3.txt b/dependencies/libarchive-3.5.2/doc/text/archive_read_new.3.txt similarity index 91% rename from dependencies/libarchive-3.4.2/doc/text/archive_read_new.3.txt rename to dependencies/libarchive-3.5.2/doc/text/archive_read_new.3.txt index 302bedd..706285c 100644 --- a/dependencies/libarchive-3.4.2/doc/text/archive_read_new.3.txt +++ b/dependencies/libarchive-3.5.2/doc/text/archive_read_new.3.txt @@ -1,7 +1,7 @@ ARCHIVE_READ_NEW(3) BSD Library Functions Manual ARCHIVE_READ_NEW(3) NAME - archive_read_new -- functions for reading streaming archives + archive_read_new — functions for reading streaming archives LIBRARY Streaming Archive Library (libarchive, -larchive) diff --git a/dependencies/libarchive-3.4.2/doc/text/archive_read_open.3.txt b/dependencies/libarchive-3.5.2/doc/text/archive_read_open.3.txt similarity index 93% rename from dependencies/libarchive-3.4.2/doc/text/archive_read_open.3.txt rename to dependencies/libarchive-3.5.2/doc/text/archive_read_open.3.txt index 3960485..7ef2937 100644 --- a/dependencies/libarchive-3.4.2/doc/text/archive_read_open.3.txt +++ b/dependencies/libarchive-3.5.2/doc/text/archive_read_open.3.txt @@ -3,7 +3,7 @@ ARCHIVE_READ_OPEN(3) BSD Library Functions Manual ARCHIVE_READ_OPEN(3) NAME archive_read_open, archive_read_open2, archive_read_open_fd, archive_read_open_FILE, archive_read_open_filename, - archive_read_open_memory -- functions for reading streaming archives + archive_read_open_memory — functions for reading streaming archives LIBRARY Streaming Archive Library (libarchive, -larchive) @@ -52,7 +52,7 @@ DESCRIPTION pointer. This function should not be used with tape drives or other devices that require strict I/O blocking. archive_read_open_fd() - Like archive_read_open(), except that it accepts a file descrip- + Like archive_read_open(), except that it accepts a file descrip‐ tor and block size rather than a set of function pointers. Note that the file descriptor will not be automatically closed at end- of-archive. This function is safe for use with tape drives or @@ -60,16 +60,16 @@ DESCRIPTION archive_read_open_file() This is a deprecated synonym for archive_read_open_filename(). archive_read_open_filename() - Like archive_read_open(), except that it accepts a simple file- - name and a block size. A NULL filename represents standard - input. This function is safe for use with tape drives or other + Like archive_read_open(), except that it accepts a simple file‐ + name and a block size. A NULL filename represents standard in‐ + put. This function is safe for use with tape drives or other blocked devices. archive_read_open_memory() Like archive_read_open(), except that it accepts a pointer and size of a block of memory containing the archive data. - A complete description of the struct archive and struct archive_entry - objects can be found in the overview manual page for libarchive(3). + A complete description of the struct archive and struct archive_entry ob‐ + jects can be found in the overview manual page for libarchive(3). CLIENT CALLBACKS The callback functions must match the following prototypes: @@ -88,8 +88,8 @@ CLIENT CALLBACKS The open callback is invoked by archive_open(). It should return ARCHIVE_OK if the underlying file or data source is successfully opened. - If the open fails, it should call archive_set_error() to register an - error code and message and return ARCHIVE_FATAL. + If the open fails, it should call archive_set_error() to register an er‐ + ror code and message and return ARCHIVE_FATAL. The read callback is invoked whenever the library requires raw bytes from the archive. The read callback should read data into a buffer, set the @@ -98,8 +98,8 @@ CLIENT CALLBACKS callback again only after it has consumed this data. The library imposes no constraints on the size of the data blocks returned. On end-of-file, the read callback should return zero. On error, the read callback should - invoke archive_set_error() to register an error code and message and - return -1. + invoke archive_set_error() to register an error code and message and re‐ + turn -1. The skip callback is invoked when the library wants to ignore a block of data. The return value is the number of bytes actually skipped, which @@ -110,7 +110,7 @@ CLIENT CALLBACKS gains when reading uncompressed archives from slow disk drives or other media that can skip quickly. - The close callback is invoked by archive_close when the archive process- + The close callback is invoked by archive_close when the archive process‐ ing is complete. The callback should return ARCHIVE_OK on success. On failure, the callback should invoke archive_set_error() to register an error code and message and return ARCHIVE_FATAL. diff --git a/dependencies/libarchive-3.4.2/doc/text/archive_read_set_options.3.txt b/dependencies/libarchive-3.5.2/doc/text/archive_read_set_options.3.txt similarity index 86% rename from dependencies/libarchive-3.4.2/doc/text/archive_read_set_options.3.txt rename to dependencies/libarchive-3.5.2/doc/text/archive_read_set_options.3.txt index ff159a2..fa516fd 100644 --- a/dependencies/libarchive-3.4.2/doc/text/archive_read_set_options.3.txt +++ b/dependencies/libarchive-3.5.2/doc/text/archive_read_set_options.3.txt @@ -2,8 +2,8 @@ ARCHIVE_READ_OPTIONS(3) BSD Library Functions Manual ARCHIVE_READ_OPTIONS(3) NAME archive_read_set_filter_option, archive_read_set_format_option, - archive_read_set_option, archive_read_set_options -- functions control- - ling options for reading archives + archive_read_set_option, archive_read_set_options — functions controlling + options for reading archives LIBRARY Streaming Archive Library (libarchive, -larchive) @@ -25,14 +25,14 @@ SYNOPSIS archive_read_set_options(struct archive *, const char *options); DESCRIPTION - These functions provide a way for libarchive clients to configure spe- + These functions provide a way for libarchive clients to configure spe‐ cific read modules. archive_read_set_filter_option(), archive_read_set_format_option() Specifies an option that will be passed to currently-registered filters (including decompression filters) or format readers. - If option and value are both NULL, these functions will do noth- + If option and value are both NULL, these functions will do noth‐ ing and ARCHIVE_OK will be returned. If option is NULL but value is not, these functions will do nothing and ARCHIVE_FAILED will be returned. @@ -51,7 +51,7 @@ DESCRIPTION archive_read_set_option() Calls archive_read_set_format_option(), then archive_read_set_filter_option(). If either function returns - ARCHIVE_FATAL, ARCHIVE_FATAL will be returned immediately. Oth- + ARCHIVE_FATAL, ARCHIVE_FATAL will be returned immediately. Oth‐ erwise, greater of the two values will be returned. archive_read_set_options() @@ -68,7 +68,7 @@ DESCRIPTION Modules that do not accept an option with this name will ignore it. option The option will be provided to every module with a value - of ``1''. + of “1”. !option The option will be provided to every module with a NULL value. @@ -82,9 +82,17 @@ OPTIONS The value is used as a character set name that will be used when translating file names. Format cpio + compat-2x + Libarchive 2.x incorrectly encoded Unicode filenames on + some platforms. This option mimics the libarchive 2.x + filename handling so that such archives can be read cor‐ + rectly. hdrcharset The value is used as a character set name that will be used when translating file names. + pwb When reading a binary CPIO archive, assume that it is in + the original PWB cpio format, and handle file mode bits + accordingly. The default is to assume v7 format. Format iso9660 joliet Support Joliet extensions. Defaults to enabled, use !joliet to disable. @@ -107,7 +115,7 @@ OPTIONS compat-2x Libarchive 2.x incorrectly encoded Unicode filenames on some platforms. This option mimics the libarchive 2.x - filename handling so that such archives can be read cor- + filename handling so that such archives can be read cor‐ rectly. hdrcharset The value is used as a character set name that will be @@ -115,12 +123,12 @@ OPTIONS mac-ext Support Mac OS metadata extension that records data in special files beginning with a period and underscore. - Defaults to enabled on Mac OS, disabled on other plat- + Defaults to enabled on Mac OS, disabled on other plat‐ forms. Use !mac-ext to disable. read_concatenated_archives Ignore zeroed blocks in the archive, which occurs when multiple tar archives have been concatenated together. - Without this option, only the contents of the first con- + Without this option, only the contents of the first con‐ catenated archive would be read. ERRORS diff --git a/dependencies/libarchive-3.4.2/doc/text/archive_util.3.txt b/dependencies/libarchive-3.5.2/doc/text/archive_util.3.txt similarity index 89% rename from dependencies/libarchive-3.4.2/doc/text/archive_util.3.txt rename to dependencies/libarchive-3.5.2/doc/text/archive_util.3.txt index 77c41bd..4827c0a 100644 --- a/dependencies/libarchive-3.4.2/doc/text/archive_util.3.txt +++ b/dependencies/libarchive-3.5.2/doc/text/archive_util.3.txt @@ -5,7 +5,7 @@ NAME archive_copy_error, archive_errno, archive_error_string, archive_file_count, archive_filter_code, archive_filter_count, archive_filter_name, archive_format, archive_format_name, - archive_position, archive_set_error -- libarchive utility functions + archive_position, archive_set_error — libarchive utility functions LIBRARY Streaming Archive Library (libarchive, -larchive) @@ -70,8 +70,8 @@ DESCRIPTION Copies error information from one archive to another. archive_errno() Returns a numeric error code (see errno(2)) indicating the reason - for the most recent error return. Note that this can not be - reliably used to detect whether an error has occurred. It should + for the most recent error return. Note that this can not be re‐ + liably used to detect whether an error has occurred. It should be used only after another libarchive function has returned an error status. archive_error_string() @@ -87,13 +87,13 @@ DESCRIPTION archive_filter_count() for details of the numbering. archive_filter_count() Returns the number of filters in the current pipeline. For read - archive handles, these filters are added automatically by the - automatic format detection. For write archive handles, these - filters are added by calls to the various - archive_write_add_filter_XXX() functions. Filters in the result- + archive handles, these filters are added automatically by the au‐ + tomatic format detection. For write archive handles, these fil‐ + ters are added by calls to the various + archive_write_add_filter_XXX() functions. Filters in the result‐ ing pipeline are numbered so that filter 0 is the filter closest to the format handler. As a convenience, functions that expect a - filter number will accept -1 as a synonym for the highest-num- + filter number will accept -1 as a synonym for the highest-num‐ bered filter. For example, when reading a uuencoded gzipped tar archive, there @@ -104,13 +104,13 @@ DESCRIPTION archive_position(a, 2) which would return the number of bytes currently read from the archive, while archive_position(a, 1) would return the number of bytes after uudecoding, and - archive_position(a, 0) would return the number of bytes after - decompression. + archive_position(a, 0) would return the number of bytes after de‐ + compression. archive_filter_name() Returns a textual name identifying the indicated filter. See archive_filter_count() for details of the numbering. archive_format() - Returns a numeric code indicating the format of the current ar- + Returns a numeric code indicating the format of the current ar‐ chive entry. This value is set by a successful call to archive_read_next_header(). Note that it is common for this value to change from entry to entry. For example, a tar archive @@ -123,20 +123,20 @@ DESCRIPTION Returns the number of bytes read from or written to the indicated filter. In particular, archive_position(a, 0) returns the number of bytes read or written by the format handler, while - archive_position(a, -1) returns the number of bytes read or writ- + archive_position(a, -1) returns the number of bytes read or writ‐ ten to the archive. See archive_filter_count() for details of the numbering here. archive_set_error() Sets the numeric error code and error description that will be returned by archive_errno() and archive_error_string(). This - function should be used within I/O callbacks to set system-spe- + function should be used within I/O callbacks to set system-spe‐ cific error codes and error descriptions. This function accepts a printf-like format string and arguments. However, you should be careful to use only the following printf format specifiers: - ``%c'', ``%d'', ``%jd'', ``%jo'', ``%ju'', ``%jx'', ``%ld'', - ``%lo'', ``%lu'', ``%lx'', ``%o'', ``%u'', ``%s'', ``%x'', - ``%%''. Field-width specifiers and other printf features are not - uniformly supported and should not be used. + “%c”, “%d”, “%jd”, “%jo”, “%ju”, “%jx”, “%ld”, “%lo”, “%lu”, + “%lx”, “%o”, “%u”, “%s”, “%x”, “%%”. Field-width specifiers and + other printf features are not uniformly supported and should not + be used. SEE ALSO archive_read(3), archive_write(3), libarchive(3), printf(3) diff --git a/dependencies/libarchive-3.4.2/doc/text/archive_write.3.txt b/dependencies/libarchive-3.5.2/doc/text/archive_write.3.txt similarity index 87% rename from dependencies/libarchive-3.4.2/doc/text/archive_write.3.txt rename to dependencies/libarchive-3.5.2/doc/text/archive_write.3.txt index ce77dab..f8d08b3 100644 --- a/dependencies/libarchive-3.4.2/doc/text/archive_write.3.txt +++ b/dependencies/libarchive-3.5.2/doc/text/archive_write.3.txt @@ -1,7 +1,7 @@ ARCHIVE_WRITE(3) BSD Library Functions Manual ARCHIVE_WRITE(3) NAME - archive_write -- functions for creating archives + archive_write — functions for creating archives LIBRARY Streaming Archive Library (libarchive, -larchive) @@ -25,7 +25,7 @@ DESCRIPTION See archive_write_filter(3), archive_write_format(3) and archive_write_blocksize(3). - You can then modify this object for the desired operations with the vari- + You can then modify this object for the desired operations with the vari‐ ous archive_write_set_XXX() functions. In particular, you will need to invoke appropriate archive_write_add_XXX() and archive_write_set_XXX() functions to enable the corresponding compression and format support. @@ -38,8 +38,8 @@ DESCRIPTION Once you have prepared the struct archive object, you call archive_write_open() to actually open the archive and prepare it for - writing. There are several variants of this function; the most basic - expects you to provide pointers to several functions that can provide + writing. There are several variants of this function; the most basic ex‐ + pects you to provide pointers to several functions that can provide blocks of bytes from the archive. There are convenience forms that allow you to specify a filename, file descriptor, FILE * object, or a block of memory from which to write the archive data. @@ -57,12 +57,12 @@ DESCRIPTION Release resources See archive_write_free(3). - After all entries have been written, use the archive_write_free() func- + After all entries have been written, use the archive_write_free() func‐ tion to release all resources. EXAMPLES - The following sketch illustrates basic usage of the library. In this - example, the callback functions are simply wrappers around the standard + The following sketch illustrates basic usage of the library. In this ex‐ + ample, the callback functions are simply wrappers around the standard open(2), write(2), and close(2) system calls. #ifdef __linux__ @@ -173,20 +173,20 @@ AUTHORS BUGS There are many peculiar bugs in historic tar implementations that may cause certain programs to reject archives written by this library. For - example, several historic implementations calculated header checksums - incorrectly and will thus reject valid archives; GNU tar does not fully + example, several historic implementations calculated header checksums in‐ + correctly and will thus reject valid archives; GNU tar does not fully support pax interchange format; some old tar implementations required specific field terminations. The default pax interchange format eliminates most of the historic tar - limitations and provides a generic key/value attribute facility for ven- + limitations and provides a generic key/value attribute facility for ven‐ dor-defined extensions. One oversight in POSIX is the failure to provide a standard attribute for large device numbers. This library uses - ``SCHILY.devminor'' and ``SCHILY.devmajor'' for device numbers that - exceed the range supported by the backwards-compatible ustar header. - These keys are compatible with Joerg Schilling's star archiver. Other - implementations may not recognize these keys and will thus be unable to - correctly restore device nodes with large device numbers from archives - created by this library. + “SCHILY.devminor” and “SCHILY.devmajor” for device numbers that exceed + the range supported by the backwards-compatible ustar header. These keys + are compatible with Joerg Schilling's star archiver. Other implementa‐ + tions may not recognize these keys and will thus be unable to correctly + restore device nodes with large device numbers from archives created by + this library. BSD February 2, 2012 BSD diff --git a/dependencies/libarchive-3.4.2/doc/text/archive_write_blocksize.3.txt b/dependencies/libarchive-3.5.2/doc/text/archive_write_blocksize.3.txt similarity index 94% rename from dependencies/libarchive-3.4.2/doc/text/archive_write_blocksize.3.txt rename to dependencies/libarchive-3.5.2/doc/text/archive_write_blocksize.3.txt index ee161af..8f92638 100644 --- a/dependencies/libarchive-3.4.2/doc/text/archive_write_blocksize.3.txt +++ b/dependencies/libarchive-3.5.2/doc/text/archive_write_blocksize.3.txt @@ -3,7 +3,7 @@ ARCHIVE_WRITE_BLOCKSI... BSD Library Functions Manual ARCHIVE_WRITE_BLOCKSI... NAME archive_write_get_bytes_per_block, archive_write_set_bytes_per_block, archive_write_get_bytes_in_last_block, - archive_write_set_bytes_in_last_block -- functions for creating archives + archive_write_set_bytes_in_last_block — functions for creating archives LIBRARY Streaming Archive Library (libarchive, -larchive) @@ -43,11 +43,11 @@ DESCRIPTION the other blocks. Otherwise, the final block will be padded to a multiple of this size. In particular, setting it to 1 will cause the final block to not be padded. For compressed output, any - padding generated by this option is applied only after the com- + padding generated by this option is applied only after the com‐ pression. The uncompressed data is always unpadded. The default is to pad the last block to the full block size (note that archive_write_open_filename() will set this based on the file - type). Unlike the other ``set'' functions, this function can be + type). Unlike the other “set” functions, this function can be called after the archive is opened. archive_write_get_bytes_in_last_block() diff --git a/dependencies/libarchive-3.4.2/doc/text/archive_write_data.3.txt b/dependencies/libarchive-3.5.2/doc/text/archive_write_data.3.txt similarity index 79% rename from dependencies/libarchive-3.4.2/doc/text/archive_write_data.3.txt rename to dependencies/libarchive-3.5.2/doc/text/archive_write_data.3.txt index b152279..96f8d1c 100644 --- a/dependencies/libarchive-3.4.2/doc/text/archive_write_data.3.txt +++ b/dependencies/libarchive-3.5.2/doc/text/archive_write_data.3.txt @@ -1,8 +1,8 @@ ARCHIVE_WRITE_DATA(3) BSD Library Functions Manual ARCHIVE_WRITE_DATA(3) NAME - archive_write_data, archive_write_data_block -- functions for creating - archives + archive_write_data, archive_write_data_block — functions for creating ar‐ + chives LIBRARY Streaming Archive Library (libarchive, -larchive) @@ -26,7 +26,7 @@ DESCRIPTION like archive_write_data() except that it performs a seek on the file being written to the specified offset before writing the data. This is useful when restoring sparse files from archive - formats that support sparse files. Returns number of bytes writ- + formats that support sparse files. Returns number of bytes writ‐ ten or -1 on error. (Note: This is currently not supported for archive_write handles, only for archive_write_disk handles. @@ -39,11 +39,11 @@ ERRORS archive_errno() and archive_error_string() functions. BUGS - In libarchive 3.x, this function sometimes returns zero on success - instead of returning the number of bytes written. Specifically, this - occurs when writing to an archive_write_disk handle. Clients should - treat any value less than zero as an error and consider any non-negative - value as success. + In libarchive 3.x, this function sometimes returns zero on success in‐ + stead of returning the number of bytes written. Specifically, this oc‐ + curs when writing to an archive_write_disk handle. Clients should treat + any value less than zero as an error and consider any non-negative value + as success. SEE ALSO tar(1), archive_write_finish_entry(3), archive_write_set_options(3), diff --git a/dependencies/libarchive-3.4.2/doc/text/archive_write_disk.3.txt b/dependencies/libarchive-3.5.2/doc/text/archive_write_disk.3.txt similarity index 76% rename from dependencies/libarchive-3.4.2/doc/text/archive_write_disk.3.txt rename to dependencies/libarchive-3.5.2/doc/text/archive_write_disk.3.txt index d27016e..1536edc 100644 --- a/dependencies/libarchive-3.4.2/doc/text/archive_write_disk.3.txt +++ b/dependencies/libarchive-3.5.2/doc/text/archive_write_disk.3.txt @@ -4,7 +4,7 @@ NAME archive_write_disk_new, archive_write_disk_set_options, archive_write_disk_set_skip_file, archive_write_disk_set_group_lookup, archive_write_disk_set_standard_lookup, - archive_write_disk_set_user_lookup -- functions for creating objects on + archive_write_disk_set_user_lookup — functions for creating objects on disk LIBRARY @@ -37,13 +37,13 @@ SYNOPSIS DESCRIPTION These functions provide a complete API for creating objects on disk from - struct archive_entry descriptions. They are most naturally used when - extracting objects from an archive using the archive_read() interface. - The general process is to read struct archive_entry objects from an ar- - chive, then write those objects to a struct archive object created using - the archive_write_disk() family functions. This interface is deliber- - ately very similar to the archive_write() interface used to write objects - to a streaming archive. + struct archive_entry descriptions. They are most naturally used when ex‐ + tracting objects from an archive using the archive_read() interface. The + general process is to read struct archive_entry objects from an archive, + then write those objects to a struct archive object created using the + archive_write_disk() family functions. This interface is deliberately + very similar to the archive_write() interface used to write objects to a + streaming archive. archive_write_disk_new() Allocates and initializes a struct archive object suitable for @@ -52,84 +52,84 @@ DESCRIPTION archive_write_disk_set_skip_file() Records the device and inode numbers of a file that should not be overwritten. This is typically used to ensure that an extraction - process does not overwrite the archive from which objects are - being read. This capability is technically unnecessary but can - be a significant performance optimization in practice. + process does not overwrite the archive from which objects are be‐ + ing read. This capability is technically unnecessary but can be + a significant performance optimization in practice. archive_write_disk_set_options() The options field consists of a bitwise OR of one or more of the following values: ARCHIVE_EXTRACT_ACL - Attempt to restore Access Control Lists. By default, - extended ACLs are ignored. + Attempt to restore Access Control Lists. By default, ex‐ + tended ACLs are ignored. ARCHIVE_EXTRACT_CLEAR_NOCHANGE_FFLAGS Before removing a file system object prior to replacing - it, clear platform-specific file flags which might pre- + it, clear platform-specific file flags which might pre‐ vent its removal. ARCHIVE_EXTRACT_FFLAGS - Attempt to restore file attributes (file flags). By - default, file attributes are ignored. See chattr(1) - (Linux) or chflags(1) (FreeBSD, Mac OS X) for more infor- + Attempt to restore file attributes (file flags). By de‐ + fault, file attributes are ignored. See chattr(1) + (Linux) or chflags(1) (FreeBSD, Mac OS X) for more infor‐ mation on file attributes. ARCHIVE_EXTRACT_MAC_METADATA Mac OS X specific. Restore metadata using copyfile(3). By default, copyfile(3) metadata is ignored. ARCHIVE_EXTRACT_NO_OVERWRITE - Existing files on disk will not be overwritten. By - default, existing regular files are truncated and over- - written; existing directories will have their permissions - updated; other pre-existing objects are unlinked and - recreated from scratch. + Existing files on disk will not be overwritten. By de‐ + fault, existing regular files are truncated and overwrit‐ + ten; existing directories will have their permissions up‐ + dated; other pre-existing objects are unlinked and recre‐ + ated from scratch. ARCHIVE_EXTRACT_OWNER The user and group IDs should be set on the restored - file. By default, the user and group IDs are not - restored. + file. By default, the user and group IDs are not re‐ + stored. ARCHIVE_EXTRACT_PERM Full permissions (including SGID, SUID, and sticky bits) should be restored exactly as specified, without obeying the current umask. Note that SUID and SGID bits can only be restored if the user and group ID of the object on - disk are correct. If ARCHIVE_EXTRACT_OWNER is not speci- + disk are correct. If ARCHIVE_EXTRACT_OWNER is not speci‐ fied, then SUID and SGID bits will only be restored if the default user and group IDs of newly-created objects on disk happen to match those specified in the archive entry. By default, only basic permissions are restored, and umask is obeyed. ARCHIVE_EXTRACT_SAFE_WRITES - Extract files atomically, by first creating a unique tem- - porary file and then renaming it to its required destina- + Extract files atomically, by first creating a unique tem‐ + porary file and then renaming it to its required destina‐ tion name. This avoids a race where an application might see a partial file (or no file) during extraction. ARCHIVE_EXTRACT_SECURE_NOABSOLUTEPATHS Refuse to extract an absolute path. The default is to not refuse such paths. ARCHIVE_EXTRACT_SECURE_NODOTDOT - Refuse to extract a path that contains a .. element any- + Refuse to extract a path that contains a .. element any‐ where within it. The default is to not refuse such - paths. Note that paths ending in .. always cause an - error, regardless of this flag. + paths. Note that paths ending in .. always cause an er‐ + ror, regardless of this flag. ARCHIVE_EXTRACT_SECURE_SYMLINKS Refuse to extract any object whose final location would be altered by a symlink on disk. This is intended to - help guard against a variety of mischief caused by ar- + help guard against a variety of mischief caused by ar‐ chives that (deliberately or otherwise) extract files outside of the current directory. The default is not to perform this check. If ARCHIVE_EXTRACT_SPARSE Scan data for blocks of NUL bytes and try to recreate - them with holes. This results in sparse files, indepen- + them with holes. This results in sparse files, indepen‐ dent of whether the archive format supports or uses them. ARCHIVE_EXTRACT_UNLINK is specified together with this option, the library will remove any intermediate symlinks it finds and return an error only if such symlink could not be removed. ARCHIVE_EXTRACT_TIME - The timestamps (mtime, ctime, and atime) should be - restored. By default, they are ignored. Note that - restoring of atime is not currently supported. + The timestamps (mtime, ctime, and atime) should be re‐ + stored. By default, they are ignored. Note that restor‐ + ing of atime is not currently supported. ARCHIVE_EXTRACT_UNLINK - Existing files on disk will be unlinked before any - attempt to create them. In some cases, this can prove to + Existing files on disk will be unlinked before any at‐ + tempt to create them. In some cases, this can prove to be a significant performance improvement. By default, existing files are truncated and rewritten, but the file is not recreated. In particular, the default behavior @@ -147,7 +147,7 @@ DESCRIPTION describe the ownership of the file itself and also appear in ACL lists. By default, the library uses the ids and ignores the names, but this can be overridden by registering user and group - lookup functions. To register, you must provide a lookup func- + lookup functions. To register, you must provide a lookup func‐ tion which accepts both a name and id and returns a suitable id. You may also provide a void * pointer to a private data structure and a cleanup function for that data. The cleanup function will @@ -157,7 +157,7 @@ DESCRIPTION This convenience function installs a standard set of user and group lookup functions. These functions use getpwnam(3) and getgrnam(3) to convert names to ids, defaulting to the ids if the - names cannot be looked up. These functions also implement a sim- + names cannot be looked up. These functions also implement a sim‐ ple memory cache to reduce the number of calls to getpwnam(3) and getgrnam(3). More information about the struct archive object and the overall design @@ -169,7 +169,7 @@ RETURN VALUES non-zero error codes for errors. Specific error codes include: ARCHIVE_RETRY for operations that might succeed if retried, ARCHIVE_WARN for unusual conditions that do not prevent further operations, and - ARCHIVE_FATAL for serious errors that make remaining operations impossi- + ARCHIVE_FATAL for serious errors that make remaining operations impossi‐ ble. archive_write_disk_new() returns a pointer to a newly-allocated struct @@ -187,8 +187,8 @@ SEE ALSO HISTORY The libarchive library first appeared in FreeBSD 5.3. The - archive_write_disk interface was added to libarchive 2.0 and first - appeared in FreeBSD 6.3. + archive_write_disk interface was added to libarchive 2.0 and first ap‐ + peared in FreeBSD 6.3. AUTHORS The libarchive library was written by Tim Kientzle . @@ -196,13 +196,13 @@ AUTHORS BUGS Directories are actually extracted in two distinct phases. Directories are created during archive_write_header(), but final permissions are not - set until archive_write_close(). This separation is necessary to cor- - rectly handle borderline cases such as a non-writable directory contain- + set until archive_write_close(). This separation is necessary to cor‐ + rectly handle borderline cases such as a non-writable directory contain‐ ing files, but can cause unexpected results. In particular, directory permissions are not fully restored until the archive is closed. If you use chdir(2) to change the current directory between calls to archive_read_extract() or before calling archive_read_close(), you may - confuse the permission-setting logic with the result that directory per- + confuse the permission-setting logic with the result that directory per‐ missions are restored incorrectly. The library attempts to create objects with filenames longer than @@ -217,8 +217,8 @@ BUGS with a single request. Of course, this does not work if the ARCHIVE_EXTRACT_NODOTDOT option is specified. - Implicit directories are always created obeying the current umask. - Explicit objects are created obeying the current umask unless + Implicit directories are always created obeying the current umask. Ex‐ + plicit objects are created obeying the current umask unless ARCHIVE_EXTRACT_PERM is specified, in which case they current umask is ignored. @@ -228,10 +228,10 @@ BUGS only if the user and group of the final object happen to match those specified in the entry. - The ``standard'' user-id and group-id lookup functions are not the - defaults because getgrnam(3) and getpwnam(3) are sometimes too large for - particular applications. The current design allows the application - author to use a more compact implementation when appropriate. + The “standard” user-id and group-id lookup functions are not the defaults + because getgrnam(3) and getpwnam(3) are sometimes too large for particu‐ + lar applications. The current design allows the application author to + use a more compact implementation when appropriate. There should be a corresponding archive_read_disk interface that walks a directory hierarchy and returns archive entry objects. diff --git a/dependencies/libarchive-3.4.2/doc/text/archive_write_filter.3.txt b/dependencies/libarchive-3.5.2/doc/text/archive_write_filter.3.txt similarity index 99% rename from dependencies/libarchive-3.4.2/doc/text/archive_write_filter.3.txt rename to dependencies/libarchive-3.5.2/doc/text/archive_write_filter.3.txt index 341c8bf..99523f3 100644 --- a/dependencies/libarchive-3.4.2/doc/text/archive_write_filter.3.txt +++ b/dependencies/libarchive-3.5.2/doc/text/archive_write_filter.3.txt @@ -8,7 +8,7 @@ NAME archive_write_add_filter_lzip, archive_write_add_filter_lzma, archive_write_add_filter_lzop, archive_write_add_filter_none, archive_write_add_filter_program, archive_write_add_filter_uuencode, - archive_write_add_filter_xz, archive_write_add_filter_zstd -- functions + archive_write_add_filter_xz, archive_write_add_filter_zstd — functions enabling output filters LIBRARY @@ -79,7 +79,7 @@ DESCRIPTION always properly blocked. archive_write_add_filter_none() - This is never necessary. It is provided only for backwards com- + This is never necessary. It is provided only for backwards com‐ patibility. archive_write_add_filter_program() diff --git a/dependencies/libarchive-3.4.2/doc/text/archive_write_finish_entry.3.txt b/dependencies/libarchive-3.5.2/doc/text/archive_write_finish_entry.3.txt similarity index 80% rename from dependencies/libarchive-3.4.2/doc/text/archive_write_finish_entry.3.txt rename to dependencies/libarchive-3.5.2/doc/text/archive_write_finish_entry.3.txt index 165a60d..399e2e4 100644 --- a/dependencies/libarchive-3.4.2/doc/text/archive_write_finish_entry.3.txt +++ b/dependencies/libarchive-3.5.2/doc/text/archive_write_finish_entry.3.txt @@ -1,7 +1,7 @@ ARCHIVE_WRITE_FINISH_... BSD Library Functions Manual ARCHIVE_WRITE_FINISH_... NAME - archive_write_finish_entry -- functions for creating archives + archive_write_finish_entry — functions for creating archives LIBRARY Streaming Archive Library (libarchive, -larchive) @@ -13,17 +13,17 @@ SYNOPSIS archive_write_finish_entry(struct archive *); DESCRIPTION - Close out the entry just written. In particular, this writes out the - final padding required by some formats. Ordinarily, clients never need - to call this, as it is called automatically by archive_write_header() and + Close out the entry just written. In particular, this writes out the fi‐ + nal padding required by some formats. Ordinarily, clients never need to + call this, as it is called automatically by archive_write_header() and archive_write_close() as needed. For archive_write_disk handles, this flushes pending file attribute changes like modification time. RETURN VALUES This function returns ARCHIVE_OK on success, or one of several non-zero error codes for errors. Specific error codes include: ARCHIVE_RETRY for - operations that might succeed if retried, ARCHIVE_WARN for unusual condi- - tions that do not prevent further operations, and ARCHIVE_FATAL for seri- + operations that might succeed if retried, ARCHIVE_WARN for unusual condi‐ + tions that do not prevent further operations, and ARCHIVE_FATAL for seri‐ ous errors that make remaining operations impossible. ERRORS diff --git a/dependencies/libarchive-3.4.2/doc/text/archive_write_format.3.txt b/dependencies/libarchive-3.5.2/doc/text/archive_write_format.3.txt similarity index 88% rename from dependencies/libarchive-3.4.2/doc/text/archive_write_format.3.txt rename to dependencies/libarchive-3.5.2/doc/text/archive_write_format.3.txt index e45c1e5..1acbe7b 100644 --- a/dependencies/libarchive-3.4.2/doc/text/archive_write_format.3.txt +++ b/dependencies/libarchive-3.5.2/doc/text/archive_write_format.3.txt @@ -4,7 +4,9 @@ NAME archive_write_set_format, archive_write_set_format_7zip, archive_write_set_format_ar, archive_write_set_format_ar_bsd, archive_write_set_format_ar_svr4, archive_write_set_format_by_name, - archive_write_set_format_cpio, archive_write_set_format_cpio_newc, + archive_write_set_format_cpio, archive_write_set_format_cpio_bin, + archive_write_set_format_cpio_newc, archive_write_set_format_cpio_odc, + archive_write_set_format_cpio_pwb, archive_write_set_format_filter_by_ext, archive_write_set_format_filter_by_ext_def, archive_write_set_format_gnutar, archive_write_set_format_iso9660, @@ -14,7 +16,7 @@ NAME archive_write_set_format_shar, archive_write_set_format_shar_dump, archive_write_set_format_ustar, archive_write_set_format_v7tar, archive_write_set_format_warc, archive_write_set_format_xar, - archive_write_set_format_zip -- functions for creating archives + archive_write_set_format_zip — functions for creating archives LIBRARY Streaming Archive Library (libarchive, -larchive) @@ -43,9 +45,18 @@ SYNOPSIS int archive_write_set_format_cpio(struct archive *); + int + archive_write_set_format_cpio_bin(struct archive *); + int archive_write_set_format_cpio_newc(struct archive *); + int + archive_write_set_format_cpio_odc(struct archive *); + + int + archive_write_set_format_cpio_pwb(struct archive *); + int archive_write_set_format_filter_by_ext(struct archive *, const char *filename); @@ -107,16 +118,19 @@ DESCRIPTION archive_write_set_format_by_name() Sets the corresponding format based on the common name. - archive_write_set_format_filter_by_ext(), + archive_write_set_format_filter_by_ext() archive_write_set_format_filter_by_ext_def() - Sets both filters and format based on the output filename. Sup- + Sets both filters and format based on the output filename. Sup‐ ported extensions: .7z, .zip, .jar, .cpio, .iso, .a, .ar, .tar, .tgz, .tar.gz, .tar.bz2, .tar.xz - archive_write_set_format_7zip() archive_write_set_format_ar_bsd(), - archive_write_set_format_ar_svr4(), + archive_write_set_format_7zip() archive_write_set_format_ar_bsd() + archive_write_set_format_ar_svr4() archive_write_set_format_cpio() + archive_write_set_format_cpio_bin() archive_write_set_format_cpio_newc() + archive_write_set_format_cpio_odc() + archive_write_set_format_cpio_pwb() archive_write_set_format_gnutar() archive_write_set_format_iso9660() archive_write_set_format_mtree() @@ -128,7 +142,7 @@ DESCRIPTION archive_write_set_format_ustar() archive_write_set_format_v7tar() archive_write_set_format_warc() archive_write_set_format_xar() archive_write_set_format_zip() - Set the format as specified. More details on the formats sup- + Set the format as specified. More details on the formats sup‐ ported by libarchive can be found in the libarchive-formats(5) manual page. diff --git a/dependencies/libarchive-3.4.2/doc/text/archive_write_free.3.txt b/dependencies/libarchive-3.5.2/doc/text/archive_write_free.3.txt similarity index 92% rename from dependencies/libarchive-3.4.2/doc/text/archive_write_free.3.txt rename to dependencies/libarchive-3.5.2/doc/text/archive_write_free.3.txt index 3e4703d..34a047f 100644 --- a/dependencies/libarchive-3.4.2/doc/text/archive_write_free.3.txt +++ b/dependencies/libarchive-3.5.2/doc/text/archive_write_free.3.txt @@ -2,7 +2,7 @@ ARCHIVE_WRITE_FREE(3) BSD Library Functions Manual ARCHIVE_WRITE_FREE(3) NAME archive_write_fail, archive_write_close, archive_write_finish, - archive_write_free -- functions for creating archives + archive_write_free — functions for creating archives LIBRARY Streaming Archive Library (libarchive, -larchive) @@ -28,7 +28,7 @@ DESCRIPTION being unusable; after calling this function, the only call that can succeed is archive_write_free() to release the resources. This can be used to speed recovery when the archive creation must - be aborted. Note that the created archive is likely to be mal- + be aborted. Note that the created archive is likely to be mal‐ formed in this case; archive_write_close() @@ -38,8 +38,8 @@ DESCRIPTION This is a deprecated synonym for archive_write_free(). archive_write_free() - Invokes archive_write_close() if necessary, then releases all - resources. If you need detailed information about + Invokes archive_write_close() if necessary, then releases all re‐ + sources. If you need detailed information about archive_write_close() failures, you should be careful to call it separately, as you cannot obtain error information after archive_write_free() returns. diff --git a/dependencies/libarchive-3.4.2/doc/text/archive_write_header.3.txt b/dependencies/libarchive-3.5.2/doc/text/archive_write_header.3.txt similarity index 90% rename from dependencies/libarchive-3.4.2/doc/text/archive_write_header.3.txt rename to dependencies/libarchive-3.5.2/doc/text/archive_write_header.3.txt index 9989271..430c018 100644 --- a/dependencies/libarchive-3.4.2/doc/text/archive_write_header.3.txt +++ b/dependencies/libarchive-3.5.2/doc/text/archive_write_header.3.txt @@ -1,7 +1,7 @@ ARCHIVE_WRITE_HEADER(3) BSD Library Functions Manual ARCHIVE_WRITE_HEADER(3) NAME - archive_write_header -- functions for creating archives + archive_write_header — functions for creating archives LIBRARY Streaming Archive Library (libarchive, -larchive) @@ -14,14 +14,14 @@ SYNOPSIS DESCRIPTION Build and write a header using the data in the provided struct - archive_entry structure. See archive_entry(3) for information on creat- + archive_entry structure. See archive_entry(3) for information on creat‐ ing and populating struct archive_entry objects. RETURN VALUES This function returns ARCHIVE_OK on success, or one of the following on error: ARCHIVE_RETRY for operations that might succeed if retried, - ARCHIVE_WARN for unusual conditions that do not prevent further opera- - tions, and ARCHIVE_FATAL for serious errors that make remaining opera- + ARCHIVE_WARN for unusual conditions that do not prevent further opera‐ + tions, and ARCHIVE_FATAL for serious errors that make remaining opera‐ tions impossible. ERRORS diff --git a/dependencies/libarchive-3.4.2/doc/text/archive_write_new.3.txt b/dependencies/libarchive-3.5.2/doc/text/archive_write_new.3.txt similarity index 91% rename from dependencies/libarchive-3.4.2/doc/text/archive_write_new.3.txt rename to dependencies/libarchive-3.5.2/doc/text/archive_write_new.3.txt index 5b8ac3c..38608c8 100644 --- a/dependencies/libarchive-3.4.2/doc/text/archive_write_new.3.txt +++ b/dependencies/libarchive-3.5.2/doc/text/archive_write_new.3.txt @@ -1,7 +1,7 @@ ARCHIVE_WRITE_NEW(3) BSD Library Functions Manual ARCHIVE_WRITE_NEW(3) NAME - archive_write_new -- functions for creating archives + archive_write_new — functions for creating archives LIBRARY Streaming Archive Library (libarchive, -larchive) diff --git a/dependencies/libarchive-3.4.2/doc/text/archive_write_open.3.txt b/dependencies/libarchive-3.5.2/doc/text/archive_write_open.3.txt similarity index 65% rename from dependencies/libarchive-3.4.2/doc/text/archive_write_open.3.txt rename to dependencies/libarchive-3.5.2/doc/text/archive_write_open.3.txt index 59cfa61..c8dbec0 100644 --- a/dependencies/libarchive-3.4.2/doc/text/archive_write_open.3.txt +++ b/dependencies/libarchive-3.5.2/doc/text/archive_write_open.3.txt @@ -1,9 +1,9 @@ ARCHIVE_WRITE_OPEN(3) BSD Library Functions Manual ARCHIVE_WRITE_OPEN(3) NAME - archive_write_open, archive_write_open_fd, archive_write_open_FILE, - archive_write_open_filename, archive_write_open_memory -- functions for - creating archives + archive_write_open, archive_write_open2, archive_write_open_fd, + archive_write_open_FILE, archive_write_open_filename, + archive_write_open_memory — functions for creating archives LIBRARY Streaming Archive Library (libarchive, -larchive) @@ -16,6 +16,11 @@ SYNOPSIS archive_open_callback *, archive_write_callback *, archive_close_callback *); + int + archive_write_open2(struct archive *, void *client_data, + archive_open_callback *, archive_write_callback *, + archive_close_callback *, archive_free_callback *); + int archive_write_open_fd(struct archive *, int fd); @@ -33,9 +38,13 @@ DESCRIPTION archive_write_open() Freeze the settings, open the archive, and prepare for writing entries. This is the most generic form of this function, which - accepts pointers to three callback functions which will be - invoked by the compression layer to write the constructed ar- - chive. This does not alter the default archive padding. + accepts pointers to three callback functions which will be in‐ + voked by the compression layer to write the constructed archive. + This does not alter the default archive padding. + + archive_write_open2() + Same as archive_write_open() with an additional fourth free call‐ + back. This function should be preferred to archive_write_open(). archive_write_open_fd() A convenience form of archive_write_open() that accepts a file @@ -52,27 +61,29 @@ DESCRIPTION A deprecated synonym for archive_write_open_filename(). archive_write_open_filename() - A convenience form of archive_write_open() that accepts a file- - name. A NULL argument indicates that the output should be writ- - ten to standard output; an argument of ``-'' will open a file - with that name. If you have not invoked + A convenience form of archive_write_open() that accepts a file‐ + name. A NULL argument indicates that the output should be writ‐ + ten to standard output; an argument of “-” will open a file with + that name. If you have not invoked archive_write_set_bytes_in_last_block(), then archive_write_open_filename() will adjust the last-block padding depending on the file: it will enable padding when writing to standard output or to a character or block device node, it will - disable padding otherwise. You can override this by manually - invoking archive_write_set_bytes_in_last_block() before calling - archive_write_open(). The archive_write_open_filename() function - is safe for use with tape drives or other block-oriented devices. + disable padding otherwise. You can override this by manually in‐ + voking archive_write_set_bytes_in_last_block() before calling + archive_write_open2(). The archive_write_open_filename() func‐ + tion is safe for use with tape drives or other block-oriented de‐ + vices. archive_write_open_memory() - A convenience form of archive_write_open() that accepts a pointer - to a block of memory that will receive the archive. The final - size_t * argument points to a variable that will be updated after - each write to reflect how much of the buffer is currently in use. - You should be careful to ensure that this variable remains allo- - cated until after the archive is closed. This function will dis- - able padding unless you have specifically set the block size. + A convenience form of archive_write_open2() that accepts a + pointer to a block of memory that will receive the archive. The + final size_t * argument points to a variable that will be updated + after each write to reflect how much of the buffer is currently + in use. You should be careful to ensure that this variable re‐ + mains allocated until after the archive is closed. This function + will disable padding unless you have specifically set the block + size. More information about the struct archive object and the overall design of the library can be found in the libarchive(3) overview. @@ -81,23 +92,25 @@ DESCRIPTION for writes or the end-of-file padding behavior. CLIENT CALLBACKS - To use this library, you will need to define and register callback func- + To use this library, you will need to define and register callback func‐ tions that will be invoked to write data to the resulting archive. These - functions are registered by calling archive_write_open(): + functions are registered by calling archive_write_open2(): typedef int archive_open_callback(struct archive *, void *client_data) The open callback is invoked by archive_write_open(). It should return ARCHIVE_OK if the underlying file or data source is successfully opened. - If the open fails, it should call archive_set_error() to register an - error code and message and return ARCHIVE_FATAL. + If the open fails, it should call archive_set_error() to register an er‐ + ror code and message and return ARCHIVE_FATAL. Please note that if open + fails, close is not called and resources must be freed inside the open + callback or with the free callback. typedef la_ssize_t archive_write_callback(struct archive *, void *client_data, const void *buffer, size_t length) The write callback is invoked whenever the library needs to write raw - bytes to the archive. For correct blocking, each call to the write call- + bytes to the archive. For correct blocking, each call to the write call‐ back function should translate into a single write(2) system call. This is especially critical when writing archives to tape drives. On success, the write callback should return the number of bytes actually written. @@ -107,10 +120,17 @@ CLIENT CALLBACKS typedef int archive_close_callback(struct archive *, void *client_data) - The close callback is invoked by archive_close when the archive process- - ing is complete. The callback should return ARCHIVE_OK on success. On - failure, the callback should invoke archive_set_error() to register an - error code and message and return ARCHIVE_FATAL. + The close callback is invoked by archive_close when the archive process‐ + ing is complete. If the open callback fails, the close callback is not + invoked. The callback should return ARCHIVE_OK on success. On failure, + the callback should invoke archive_set_error() to register an error code + and message and return + + typedef int archive_free_callback(struct archive *, void + *client_data) + + The free callback is always invoked on archive_free. The return code of + this callback is not processed. Note that if the client-provided write callback function returns a non- zero value, that error will be propagated back to the caller through @@ -132,4 +152,4 @@ SEE ALSO archive_write_filter(3), archive_write_format(3), archive_write_new(3), archive_write_set_options(3), libarchive(3), cpio(5), mtree(5), tar(5) -BSD February 2, 2012 BSD +BSD November 12, 2020 BSD diff --git a/dependencies/libarchive-3.4.2/doc/text/archive_write_set_options.3.txt b/dependencies/libarchive-3.5.2/doc/text/archive_write_set_options.3.txt similarity index 77% rename from dependencies/libarchive-3.4.2/doc/text/archive_write_set_options.3.txt rename to dependencies/libarchive-3.5.2/doc/text/archive_write_set_options.3.txt index 97538b9..094fa40 100644 --- a/dependencies/libarchive-3.4.2/doc/text/archive_write_set_options.3.txt +++ b/dependencies/libarchive-3.5.2/doc/text/archive_write_set_options.3.txt @@ -2,7 +2,7 @@ ARCHIVE_WRITE_OPTIONS(3) BSD Library Functions Manual ARCHIVE_WRITE_OPTIONS(3) NAME archive_write_set_filter_option, archive_write_set_format_option, - archive_write_set_option, archive_write_set_options -- functions control- + archive_write_set_option, archive_write_set_options — functions control‐ ling options for writing archives LIBRARY @@ -25,15 +25,15 @@ SYNOPSIS archive_write_set_options(struct archive *, const char *options); DESCRIPTION - These functions provide a way for libarchive clients to configure spe- + These functions provide a way for libarchive clients to configure spe‐ cific write modules. archive_write_set_filter_option(), archive_write_set_format_option() - Specifies an option that will be passed to the currently-regis- - tered filters (including decompression filters) or format read- + Specifies an option that will be passed to the currently-regis‐ + tered filters (including decompression filters) or format read‐ ers. - If option and value are both NULL, these functions will do noth- + If option and value are both NULL, these functions will do noth‐ ing and ARCHIVE_OK will be returned. If option is NULL but value is not, these functions will do nothing and ARCHIVE_FAILED will be returned. @@ -54,7 +54,7 @@ DESCRIPTION archive_write_set_option() Calls archive_write_set_format_option(), then archive_write_set_filter_option(). If either function returns - ARCHIVE_FATAL, ARCHIVE_FATAL will be returned immediately. Oth- + ARCHIVE_FATAL, ARCHIVE_FATAL will be returned immediately. Oth‐ erwise, the greater of the two values will be returned. archive_write_set_options() @@ -67,7 +67,7 @@ DESCRIPTION Modules that do not accept an option with this name will ignore it. option The option will be provided to every module with a value - of ``1''. + of “1”. !option The option will be provided to every module with a NULL value. @@ -95,8 +95,8 @@ OPTIONS Filter lrzip compression=type Use type as compression method. Supported values are - ``bzip2'', ``gzipi'', ``lzo'' (ultra fast), and ``zpaq'' - (best, extremely slow). + “bzip2”, “gzipi”, “lzo” (ultra fast), and “zpaq” (best, + extremely slow). compression-level The value is interpreted as a decimal integer specifying the lrzip compression level. Supported values are from 1 @@ -133,26 +133,27 @@ OPTIONS the compression level. Supported values are from 0 to 9. threads The value is interpreted as a decimal integer specifying - the number of threads for multi-threaded lzma compres- + the number of threads for multi-threaded lzma compres‐ sion. If supported, the default value is read from lzma_cputhreads(). Filter zstd compression-level The value is interpreted as a decimal integer specifying - the compression level. Supported values are from 1 to 22. + the compression level. Supported values depend on the li‐ + brary version, common values are from 1 to 22. Format 7zip compression - The value is one of ``store'', ``deflate'', ``bzip2'', - ``lzma1'', ``lzma2'' or ``ppmd'' to indicate how the fol- - lowing entries should be compressed. Note that this set- - ting is ignored for directories, symbolic links, and - other special entries. + The value is one of “store”, “deflate”, “bzip2”, “lzma1”, + “lzma2” or “ppmd” to indicate how the following entries + should be compressed. Note that this setting is ignored + for directories, symbolic links, and other special en‐ + tries. compression-level The value is interpreted as a decimal integer specifying - the compression level. Values between 0 and 9 are sup- - ported. The interpretation of the compression level - depends on the chosen compression method. - Format cpio + the compression level. Values between 0 and 9 are sup‐ + ported. The interpretation of the compression level de‐ + pends on the chosen compression method. + Format bin hdrcharset The value is used as a character set name that will be used when translating file names. @@ -168,7 +169,7 @@ OPTIONS volume. Default: none. application-id=filename The file with the specified name will be identified in - the ISO9660 metadata as holding the application identi- + the ISO9660 metadata as holding the application identi‐ fier for this volume. Default: none. biblio-file=filename The file with the specified name will be identified in @@ -183,17 +184,17 @@ OPTIONS the ISO9660 metadata as holding the publisher information for this volume. Default: none. volume-id=string - The specified string will be used as the Volume Identi- + The specified string will be used as the Volume Identi‐ fier in the ISO9660 metadata. It is limited to 32 bytes. Default: none. Format iso9660 - boot support - These options are used to make an ISO9660 image that can be - directly booted on various systems. + These options are used to make an ISO9660 image that can be di‐ + rectly booted on various systems. boot=filename The file matching this name will be used as the El Torito boot image file. boot-catalog=name - The name that will be used for the El Torito boot cata- + The name that will be used for the El Torito boot cata‐ log. Default: boot.catalog boot-info-table The boot image file provided by the boot=filename option @@ -214,38 +215,38 @@ OPTIONS Specifies the boot semantics used by the El Torito boot image: If the value is fd, then the boot image is assumed to be a bootable floppy image. If the value is hd, then - the boot image is assumed to be a bootable hard disk - image. If the value is no-emulation, the boot image is + the boot image is assumed to be a bootable hard disk im‐ + age. If the value is no-emulation, the boot image is used without floppy or hard disk emulation. If the boot - image is exactly 1.2MB, 1.44MB, or 2.88MB, then the - default is fd, otherwise the default is no-emulation. + image is exactly 1.2MB, 1.44MB, or 2.88MB, then the de‐ + fault is fd, otherwise the default is no-emulation. Format iso9660 - filename and size extensions Various extensions to the base ISO9660 format. allow-ldots - If enabled, allows filenames to begin with a leading - period. If disabled, filenames that begin with a leading + If enabled, allows filenames to begin with a leading pe‐ + riod. If disabled, filenames that begin with a leading period will have that period replaced by an underscore character in the standard ISO9660 namespace. This does - not impact names stored in the Rockridge or Joliet exten- + not impact names stored in the Rockridge or Joliet exten‐ sion area. Default: disabled. allow-lowercase - If enabled, allows filenames to contain lowercase charac- - ters. If disabled, filenames will be forced to upper- + If enabled, allows filenames to contain lowercase charac‐ + ters. If disabled, filenames will be forced to upper‐ case. This does not impact names stored in the Rockridge or Joliet extension area. Default: disabled. allow-multidot If enabled, allows filenames to contain multiple period characters, in violation of the ISO9660 specification. - If disabled, additional periods will be converted to - underscore characters. This does not impact names stored - in the Rockridge or Joliet extension area. Default: dis- + If disabled, additional periods will be converted to un‐ + derscore characters. This does not impact names stored + in the Rockridge or Joliet extension area. Default: dis‐ abled. allow-period If enabled, allows filenames to contain trailing period characters, in violation of the ISO9660 specification. - If disabled, trailing periods will be converted to under- + If disabled, trailing periods will be converted to under‐ score characters. This does not impact names stored in - the Rockridge or Joliet extension area. Default: dis- + the Rockridge or Joliet extension area. Default: dis‐ abled. allow-pvd-lowercase If enabled, the Primary Volume Descriptor may contain @@ -255,22 +256,22 @@ OPTIONS allow-sharp-tilde If enabled, sharp and tilde characters will be permitted in filenames, in violation if the ISO9660 specification. - If disabled, such characters will be converted to under- + If disabled, such characters will be converted to under‐ score characters. Default: disabled. allow-vernum If enabled, version numbers will be included with files. - If disabled, version numbers will be suppressed, in vio- + If disabled, version numbers will be suppressed, in vio‐ lation of the ISO9660 standard. This does not impact names stored in the Rockridge or Joliet extension area. Default: enabled. iso-level - This enables support for file size and file name exten- + This enables support for file size and file name exten‐ sions in the core ISO9660 area. The name extensions specified here do not affect the names stored in the Rockridge or Joliet extension areas. iso-level=1 - The most compliant form of ISO9660 image. File- - names are limited to 8.3 uppercase format, direc- + The most compliant form of ISO9660 image. File‐ + names are limited to 8.3 uppercase format, direc‐ tory names are limited to 8 uppercase characters, files are limited to 4 GiB, the complete ISO9660 image cannot exceed 4 GiB. @@ -287,7 +288,7 @@ OPTIONS up to 193 characters and may include arbitrary 8-bit characters. joliet Microsoft's Joliet extensions store a completely separate - set of directory information about each file. In partic- + set of directory information about each file. In partic‐ ular, this information includes Unicode filenames of up to 255 characters. Default: enabled. limit-depth @@ -306,43 +307,43 @@ OPTIONS filenames (except lowercase characters unless allow-lowercase is also specified). This violates ISO9660 standards. This does not impact names stored in - the Rockridge or Joliet extension area. Default: dis- + the Rockridge or Joliet extension area. Default: dis‐ abled. rockridge The Rockridge extensions store an additional set of POSIX-style file information with each file, including mtime, atime, ctime, permissions, and long filenames with - arbitrary 8-bit characters. These extensions also sup- + arbitrary 8-bit characters. These extensions also sup‐ port symbolic links and other POSIX file types. Default: enabled. Format iso9660 - zisofs support - The zisofs extensions permit each file to be independently com- + The zisofs extensions permit each file to be independently com‐ pressed using a gzip-compatible compression. This can provide significant size savings, but requires the reading system to have support for these extensions. These extensions are disabled by default. compression-level=number The compression level used by the deflate compressor. - Ranges from 0 (least effort) to 9 (most effort). - Default: 6 + Ranges from 0 (least effort) to 9 (most effort). De‐ + fault: 6 zisofs Synonym for zisofs=direct. zisofs=direct Compress each file in the archive. Unlike zisofs=indirect, this is handled entirely within libarchive and does not require a separate utility. For best results, libarchive tests each file and will store - the file uncompressed if the compression does not actu- + the file uncompressed if the compression does not actu‐ ally save any space. In particular, files under 2k will never be compressed. Note that boot image files are never compressed. zisofs=indirect Recognizes files that have already been compressed with - the mkzftree utility and sets up the necessary file meta- + the mkzftree utility and sets up the necessary file meta‐ data so that readers will correctly identify these as zisofs-compressed files. zisofs-exclude=filename Specifies a filename that should not be compressed when - using zisofs=direct. This option can be provided multi- + using zisofs=direct. This option can be provided multi‐ ple times to suppress compression on many files. Format mtree cksum, device, flags, gid, gname, indent, link, md5, mode, nlink, @@ -350,9 +351,9 @@ OPTIONS uname Enable a particular keyword in the mtree output. Prefix with an exclamation mark to disable the corresponding - keyword. The default is equivalent to ``device, flags, + keyword. The default is equivalent to “device, flags, gid, gname, link, mode, nlink, size, time, type, uid, - uname''. + uname”. all Enables all of the above keywords. use-set Enables generation of /set lines that specify default @@ -362,19 +363,27 @@ OPTIONS hdrcharset The value is used as a character set name that will be used when translating file names. + Format odc + hdrcharset + The value is used as a character set name that will be + used when translating file names. + Format pwb + hdrcharset + The value is used as a character set name that will be + used when translating file names. Format pax hdrcharset The value is used as a character set name that will be used when translating file, group and user names. The - value is one of ``BINARY'' or ``UTF-8''. With ``BINARY'' - there is no character conversion, with ``UTF-8'' names - are converted to UTF-8. + value is one of “BINARY” or “UTF-8”. With “BINARY” there + is no character conversion, with “UTF-8” names are con‐ + verted to UTF-8. xattrheader When storing extended attributes, this option configures which headers should be written. The value is one of - ``all'', ``LIBARCHIVE'', or ``SCHILY''. By default, both - ``LIBARCHIVE.xattr'' and ``SCHILY.xattr'' headers are - written. + “all”, “LIBARCHIVE”, or “SCHILY”. By default, both + “LIBARCHIVE.xattr” and “SCHILY.xattr” headers are writ‐ + ten. Format ustar hdrcharset The value is used as a character set name that will be @@ -385,43 +394,42 @@ OPTIONS used when translating file, group and user names. Format warc omit-warcinfo - Set to ``true'' to disable output of the warcinfo record. + Set to “true” to disable output of the warcinfo record. Format xar checksum=type Use type as file checksum method. Supported values are - ``none'', ``md5'', and ``sha1'' (default). + “none”, “md5”, and “sha1” (default). compression=type Use type as compression method. Supported values are - ``none'', ``bzip2'', ``gzip'' (default), ``lzma'' and - ``xz''. + “none”, “bzip2”, “gzip” (default), “lzma” and “xz”. compression_level The value is a decimal integer from 1 to 9 specifying the compression level. toc-checksum=type Use type as table of contents checksum method. Supported - values are ``none'', ``md5'' and ``sha1'' (default). + values are “none”, “md5” and “sha1” (default). Format zip compression - The value is either ``store'' or ``deflate'' to indicate - how the following entries should be compressed. Note - that this setting is ignored for directories, symbolic - links, and other special entries. + The value is either “store” or “deflate” to indicate how + the following entries should be compressed. Note that + this setting is ignored for directories, symbolic links, + and other special entries. compression-level The value is interpreted as a decimal integer specifying - the compression level. Values between 0 and 9 are sup- - ported. A compression level of 0 switches the compres- - sion method to ``store'', other values will enable - ``deflate'' compression with the given level. + the compression level. Values between 0 and 9 are sup‐ + ported. A compression level of 0 switches the compres‐ + sion method to “store”, other values will enable + “deflate” compression with the given level. encryption Enable encryption using traditional zip encryption. encryption=type Use type as encryption type. Supported values are - ``zipcrypt'' (traditional zip encryption), ``aes128'' - (WinZip AES-128 encryption) and ``aes256'' (WinZip - AES-256 encryption). + “zipcrypt” (traditional zip encryption), “aes128” (WinZip + AES-128 encryption) and “aes256” (WinZip AES-256 + encryption). experimental This boolean option enables or disables experimental Zip - features that may not be compatible with other Zip imple- + features that may not be compatible with other Zip imple‐ mentations. fakecrc32 This boolean option disables CRC calculations. All CRC @@ -431,23 +439,23 @@ OPTIONS The value is used as a character set name that will be used when translating file names. zip64 Zip64 extensions provide additional file size information - for entries larger than 4 GiB. They also provide - extended file offset and archive size information when - archives exceed 4 GiB. By default, the Zip writer selec- - tively enables these extensions only as needed. In par- + for entries larger than 4 GiB. They also provide ex‐ + tended file offset and archive size information when ar‐ + chives exceed 4 GiB. By default, the Zip writer selec‐ + tively enables these extensions only as needed. In par‐ ticular, if the file size is unknown, the Zip writer will include Zip64 extensions to guard against the possibility that the file might be larger than 4 GiB. Setting this boolean option will force the writer to use - Zip64 extensions even for small files that would not oth- - erwise require them. This is primarily useful for test- + Zip64 extensions even for small files that would not oth‐ + erwise require them. This is primarily useful for test‐ ing. Disabling this option with !zip64 will force the Zip writer to avoid Zip64 extensions: It will reject files - with size greater than 4 GiB, it will reject any new - entries once the total archive size reaches 4 GiB, and it + with size greater than 4 GiB, it will reject any new en‐ + tries once the total archive size reaches 4 GiB, and it will not use Zip64 extensions for files with unknown size. In particular, this can improve compatibility when generating archives where the entry sizes are not known @@ -456,7 +464,7 @@ OPTIONS EXAMPLES The following example creates an archive write handle to create a gzip- compressed ISO9660 format image. The two options here specify that the - ISO9660 archive will use kernel.img as the boot image for El Torito boot- + ISO9660 archive will use kernel.img as the boot image for El Torito boot‐ ing, and that the gzip compressor should use the maximum compression level. diff --git a/dependencies/libarchive-3.4.2/doc/text/archive_write_set_passphrase.3.txt b/dependencies/libarchive-3.5.2/doc/text/archive_write_set_passphrase.3.txt similarity index 98% rename from dependencies/libarchive-3.4.2/doc/text/archive_write_set_passphrase.3.txt rename to dependencies/libarchive-3.5.2/doc/text/archive_write_set_passphrase.3.txt index 9717d80..2acea6e 100644 --- a/dependencies/libarchive-3.4.2/doc/text/archive_write_set_passphrase.3.txt +++ b/dependencies/libarchive-3.5.2/doc/text/archive_write_set_passphrase.3.txt @@ -1,7 +1,7 @@ ARCHIVE_WRITE_SET_PAS... BSD Library Functions Manual ARCHIVE_WRITE_SET_PAS... NAME - archive_write_set_passphrase, archive_write_set_passphrase_callback -- + archive_write_set_passphrase, archive_write_set_passphrase_callback — functions for writing encrypted archives LIBRARY diff --git a/dependencies/libarchive-3.4.2/doc/text/bsdcpio.1.txt b/dependencies/libarchive-3.5.2/doc/text/bsdcpio.1.txt similarity index 90% rename from dependencies/libarchive-3.4.2/doc/text/bsdcpio.1.txt rename to dependencies/libarchive-3.5.2/doc/text/bsdcpio.1.txt index 78b9757..6a0d3be 100644 --- a/dependencies/libarchive-3.4.2/doc/text/bsdcpio.1.txt +++ b/dependencies/libarchive-3.5.2/doc/text/bsdcpio.1.txt @@ -1,7 +1,7 @@ CPIO(1) BSD General Commands Manual CPIO(1) NAME - cpio -- copy files to and from archives + cpio — copy files to and from archives SYNOPSIS cpio -i [options] [pattern ...] [< archive] @@ -15,7 +15,7 @@ DESCRIPTION The first option to cpio is a mode indicator from the following list: -i Input. Read an archive from standard input (unless overridden) - and extract the contents to disk or (if the -t option is speci- + and extract the contents to disk or (if the -t option is speci‐ fied) list the contents to standard output. If one or more file patterns are specified, only files matching one of the patterns will be extracted. @@ -26,15 +26,24 @@ DESCRIPTION copy the files to the specified directory. OPTIONS - Unless specifically stated otherwise, options are applicable in all oper- + Unless specifically stated otherwise, options are applicable in all oper‐ ating modes. -0, --null Read filenames separated by NUL characters instead of newlines. - This is necessary if any of the filenames being read might con- + This is necessary if any of the filenames being read might con‐ tain newlines. - -A (o mode only) Append to the specified archive. (Not yet imple- + -6, --pwb + When reading a binary format archive, assume it's the earlier + one, from the PWB variant of 6th Edition UNIX. When writing a + cpio archive, use the PWB format. + + -7, --binary + (o mode only) When writing a cpio archive, use the (newer, non- + PWB) binary format. + + -A (o mode only) Append to the specified archive. (Not yet imple‐ mented.) -a (o and p modes) Reset access times on files after they are read. @@ -67,7 +76,7 @@ OPTIONS cpio Synonym for odc. newc The SVR4 portable cpio format. odc The old POSIX.1 portable octet-oriented cpio format. - pax The POSIX.1 pax format, an extension of the ustar for- + pax The POSIX.1 pax format, an extension of the ustar for‐ mat. ustar The POSIX.1 tar format. @@ -87,7 +96,7 @@ OPTIONS --insecure (i and p mode only) Disable security checks during extraction or copying. This allows extraction via symbolic links, absolute - paths, and path names containing '..' in the name. + paths, and path names containing ‘..’ in the name. -J, --xz (o mode only) Compress the file with xz-compatible compression @@ -102,18 +111,18 @@ OPTIONS instead. -l, --link - (p mode only) Create links from the target directory to the orig- + (p mode only) Create links from the target directory to the orig‐ inal files, instead of copying. --lrzip (o mode only) Compress the resulting archive with lrzip(1). In input mode, this option is ignored. - --lz4 (o mode only) Compress the archive with lz4-compatible compres- + --lz4 (o mode only) Compress the archive with lz4-compatible compres‐ sion before writing it. In input mode, this option is ignored; lz4 compression is recognized automatically on input. - --zstd (o mode only) Compress the archive with zstd-compatible compres- + --zstd (o mode only) Compress the archive with zstd-compatible compres‐ sion before writing it. In input mode, this option is ignored; zstd compression is recognized automatically on input. @@ -183,11 +192,11 @@ OPTIONS restore the contents to disk. -u, --unconditional - (i and p modes) Unconditionally overwrite existing files. Ordi- + (i and p modes) Unconditionally overwrite existing files. Ordi‐ narily, an older file will not overwrite a newer file on disk. -V, --dot - Print a dot to stderr for each file as it is processed. Super- + Print a dot to stderr for each file as it is processed. Super‐ seded by -v. -v, --verbose @@ -197,15 +206,15 @@ OPTIONS --version Print the program version information and exit. - -y (o mode only) Compress the archive with bzip2-compatible compres- + -y (o mode only) Compress the archive with bzip2-compatible compres‐ sion before writing it. In input mode, this option is ignored; bzip2 compression is recognized automatically on input. - -Z (o mode only) Compress the archive with compress-compatible com- - pression before writing it. In input mode, this option is - ignored; compression is recognized automatically on input. + -Z (o mode only) Compress the archive with compress-compatible com‐ + pression before writing it. In input mode, this option is ig‐ + nored; compression is recognized automatically on input. - -z (o mode only) Compress the archive with gzip-compatible compres- + -z (o mode only) Compress the archive with gzip-compatible compres‐ sion before writing it. In input mode, this option is ignored; gzip compression is recognized automatically on input. @@ -221,32 +230,32 @@ ENVIRONMENT more information. EXAMPLES - The cpio command is traditionally used to copy file hierarchies in con- + The cpio command is traditionally used to copy file hierarchies in con‐ junction with the find(1) command. The first example here simply copies all files from src to dest: find src | cpio -pmud dest By carefully selecting options to the find(1) command and combining it - with other standard utilities, it is possible to exercise very fine con- + with other standard utilities, it is possible to exercise very fine con‐ trol over which files are copied. This next example copies files from - src to dest that are more than 2 days old and whose names match a partic- + src to dest that are more than 2 days old and whose names match a partic‐ ular pattern: find src -mtime +2 | grep foo[bar] | cpio -pdmu dest This example copies files from src to dest that are more than 2 days old - and which contain the word ``foobar'': + and which contain the word “foobar”: find src -mtime +2 | xargs grep -l foobar | cpio -pdmu dest COMPATIBILITY The mode options i, o, and p and the options a, B, c, d, f, l, m, r, t, u, and v comply with SUSv2. - The old POSIX.1 standard specified that only -i, -o, and -p were inter- + The old POSIX.1 standard specified that only -i, -o, and -p were inter‐ preted as command-line options. Each took a single argument of a list of modifier characters. For example, the standard syntax allows -imu but does not support -miu or -i -m -u, since m and u are only modifiers to -i, they are not command-line options in their own right. The syntax - supported by this implementation is backwards-compatible with the stan- + supported by this implementation is backwards-compatible with the stan‐ dard. For best compatibility, scripts should limit themselves to the standard syntax. @@ -256,16 +265,16 @@ SEE ALSO STANDARDS There is no current POSIX standard for the cpio command; it appeared in - ISO/IEC 9945-1:1996 (``POSIX.1'') but was dropped from IEEE Std - 1003.1-2001 (``POSIX.1''). + ISO/IEC 9945-1:1996 (“POSIX.1”) but was dropped from IEEE Std 1003.1-2001 + (“POSIX.1”). The cpio, ustar, and pax interchange file formats are defined by IEEE Std - 1003.1-2001 (``POSIX.1'') for the pax command. + 1003.1-2001 (“POSIX.1”) for the pax command. HISTORY The original cpio and find utilities were written by Dick Haight while working in AT&T's Unix Support Group. They first appeared in 1977 in - PWB/UNIX 1.0, the ``Programmer's Work Bench'' system developed for use + PWB/UNIX 1.0, the “Programmer's Work Bench” system developed for use within AT&T. They were first released outside of AT&T as part of System III Unix in 1981. As a result, cpio actually predates tar, even though it was not well-known outside of AT&T until some time later. @@ -277,8 +286,8 @@ BUGS user and group names, only numbers. As a result, it cannot be reliably used to transfer files between systems with dissimilar user and group numbering. Older cpio formats limit the user and group numbers to 16 or - 18 bits, which is insufficient for modern systems. The cpio archive for- - mats cannot support files over 4 gigabytes, except for the ``odc'' vari- - ant, which can support files up to 8 gigabytes. + 18 bits, which is insufficient for modern systems. The cpio archive for‐ + mats cannot support files over 4 gigabytes, except for the “odc” variant, + which can support files up to 8 gigabytes. BSD September 16, 2014 BSD diff --git a/dependencies/libarchive-3.4.2/doc/text/bsdtar.1.txt b/dependencies/libarchive-3.5.2/doc/text/bsdtar.1.txt similarity index 84% rename from dependencies/libarchive-3.4.2/doc/text/bsdtar.1.txt rename to dependencies/libarchive-3.5.2/doc/text/bsdtar.1.txt index e653b93..75d6f0c 100644 --- a/dependencies/libarchive-3.4.2/doc/text/bsdtar.1.txt +++ b/dependencies/libarchive-3.5.2/doc/text/bsdtar.1.txt @@ -1,10 +1,10 @@ TAR(1) BSD General Commands Manual TAR(1) NAME - tar -- manipulate tape archives + tar — manipulate tape archives SYNOPSIS - tar [bundled-flags ] [ | ...] + tar [bundled-flags ⟨args⟩] [⟨file⟩ | ⟨pattern⟩ ...] tar {-c} [options] [files | directories] tar {-r | -u} -f archive-file [options] [files | directories] tar {-t | -x} [options] [patterns] @@ -15,8 +15,8 @@ DESCRIPTION 9660 cdrom images and can create tar, pax, cpio, ar, zip, 7-zip, and shar archives. - The first synopsis form shows a ``bundled'' option word. This usage is - provided for compatibility with historical implementations. See COMPATI- + The first synopsis form shows a “bundled” option word. This usage is + provided for compatibility with historical implementations. See COMPATI‐ BILITY below for details. The other synopsis forms show the preferred usage. The first option to @@ -27,58 +27,58 @@ DESCRIPTION this only works on uncompressed archives stored in regular files. The -f option is required. The long option form is --append. -t List archive contents to stdout. The long option form is --list. - -u Like -r, but new entries are added only if they have a modifica- + -u Like -r, but new entries are added only if they have a modifica‐ tion date newer than the corresponding entry in the archive. - Note that this only works on uncompressed archives stored in reg- + Note that this only works on uncompressed archives stored in reg‐ ular files. The -f option is required. The long form is --update. -x Extract to disk from the archive. If a file with the same name - appears more than once in the archive, each copy will be - extracted, with later copies overwriting (replacing) earlier + appears more than once in the archive, each copy will be ex‐ + tracted, with later copies overwriting (replacing) earlier copies. The long option form is --extract. In -c, -r, or -u mode, each specified file or directory is added to the - archive in the order specified on the command line. By default, the con- + archive in the order specified on the command line. By default, the con‐ tents of each directory are also archived. - In extract or list mode, the entire command line is read and parsed - before the archive is opened. The pathnames or patterns on the command + In extract or list mode, the entire command line is read and parsed be‐ + fore the archive is opened. The pathnames or patterns on the command line indicate which items in the archive should be processed. Patterns are shell-style globbing patterns as documented in tcsh(1). OPTIONS - Unless specifically stated otherwise, options are applicable in all oper- + Unless specifically stated otherwise, options are applicable in all oper‐ ating modes. @archive - (c and r modes only) The specified archive is opened and the - entries in it will be appended to the current archive. As a sim- - ple example, + (c and r modes only) The specified archive is opened and the en‐ + tries in it will be appended to the current archive. As a simple + example, tar -c -f - newfile @original.tar writes a new archive to standard output containing a file newfile and all of the entries from original.tar. In contrast, tar -c -f - newfile original.tar creates a new archive with only two entries. Similarly, tar -czf - --format pax @- - reads an archive from standard input (whose format will be deter- + reads an archive from standard input (whose format will be deter‐ mined automatically) and converts it into a gzip-compressed pax- - format archive on stdout. In this way, tar can be used to con- + format archive on stdout. In this way, tar can be used to con‐ vert archives from one format to another. -a, --auto-compress - (c mode only) Use the archive suffix to decide a set of the for- + (c mode only) Use the archive suffix to decide a set of the for‐ mat and the compressions. As a simple example, tar -a -cf archive.tgz source.c source.h - creates a new archive with restricted pax format and gzip com- + creates a new archive with restricted pax format and gzip com‐ pression, tar -a -cf archive.tar.bz2.uu source.c source.h - creates a new archive with restricted pax format and bzip2 com- + creates a new archive with restricted pax format and bzip2 com‐ pression and uuencode compression, tar -a -cf archive.zip source.c source.h creates a new archive with zip format, tar -a -jcf archive.tgz source.c source.h - ignores the ``-j'' option, and creates a new archive with - restricted pax format and gzip compression, + ignores the “-j” option, and creates a new archive with re‐ + stricted pax format and gzip compression, tar -a -jcf archive.xxx source.c source.h if it is unknown suffix or no suffix, creates a new archive with restricted pax format and bzip2 compression. @@ -114,14 +114,14 @@ OPTIONS might prevent removal. --exclude pattern - Do not process files or directories that match the specified pat- + Do not process files or directories that match the specified pat‐ tern. Note that exclusions take precedence over patterns or filenames specified on the command line. --exclude-vcs - Do not process files or directories internally used by the ver- - sion control systems 'Arch', 'Bazaar', 'CVS', 'Darcs', - 'Mercurial', 'RCS', 'SCCS', 'SVN' and 'git'. + Do not process files or directories internally used by the ver‐ + sion control systems ‘Arch’, ‘Bazaar’, ‘CVS’, ‘Darcs’, + ‘Mercurial’, ‘RCS’, ‘SCCS’, ‘SVN’ and ‘git’. --fflags (c, r, u, x modes only) Archive or extract platform-specific file @@ -130,12 +130,12 @@ OPTIONS mode as root. --format format - (c, r, u mode only) Use the specified format for the created ar- - chive. Supported formats include ``cpio'', ``pax'', ``shar'', - and ``ustar''. Other formats may also be supported; see - libarchive-formats(5) for more information about currently-sup- - ported formats. In r and u modes, when extending an existing ar- - chive, the format specified here must be compatible with the for- + (c, r, u mode only) Use the specified format for the created ar‐ + chive. Supported formats include “cpio”, “pax”, “shar”, and + “ustar”. Other formats may also be supported; see + libarchive-formats(5) for more information about currently-sup‐ + ported formats. In r and u modes, when extending an existing ar‐ + chive, the format specified here must be compatible with the for‐ mat of the existing archive on disk. -f file, --file file @@ -170,29 +170,29 @@ OPTIONS --help Show usage. --hfsCompression - (x mode only) Mac OS X specific (v10.6 or later). Compress - extracted regular files with HFS+ compression. + (x mode only) Mac OS X specific (v10.6 or later). Compress ex‐ + tracted regular files with HFS+ compression. --ignore-zeros - An alias of --options read_concatenated_archives for compatibil- + An alias of --options read_concatenated_archives for compatibil‐ ity with GNU tar. --include pattern - Process only files or directories that match the specified pat- - tern. Note that exclusions specified with --exclude take prece- - dence over inclusions. If no inclusions are explicitly speci- + Process only files or directories that match the specified pat‐ + tern. Note that exclusions specified with --exclude take prece‐ + dence over inclusions. If no inclusions are explicitly speci‐ fied, all entries are processed by default. The --include option is especially useful when filtering archives. For example, the command tar -c -f new.tar --include='*foo*' @old.tgz creates a new archive new.tar containing only the entries from - old.tgz containing the string 'foo'. + old.tgz containing the string ‘foo’. -J, --xz - (c mode only) Compress the resulting archive with xz(1). In - extract or list modes, this option is ignored. Note that this - tar implementation recognizes XZ compression automatically when - reading archives. + (c mode only) Compress the resulting archive with xz(1). In ex‐ + tract or list modes, this option is ignored. Note that this tar + implementation recognizes XZ compression automatically when read‐ + ing archives. -j, --bzip, --bzip2, --bunzip2 (c mode only) Compress the resulting archive with bzip2(1). In @@ -210,7 +210,7 @@ OPTIONS the versions appearing in the archive being extracted. -L, --dereference - (c and r modes only) All symbolic links will be followed. Nor- + (c and r modes only) All symbolic links will be followed. Nor‐ mally, symbolic links are archived as such. With this option, the target of the link will be archived instead. @@ -224,22 +224,21 @@ OPTIONS tar implementation recognizes lrzip compression automatically when reading archives. - --lz4 (c mode only) Compress the archive with lz4-compatible compres- + --lz4 (c mode only) Compress the archive with lz4-compatible compres‐ sion before writing it. In extract or list modes, this option is - ignored. Note that this tar implementation recognizes lz4 com- + ignored. Note that this tar implementation recognizes lz4 com‐ pression automatically when reading archives. - --zstd (c mode only) Compress the archive with zstd-compatible compres- + --zstd (c mode only) Compress the archive with zstd-compatible compres‐ sion before writing it. In extract or list modes, this option is - ignored. Note that this tar implementation recognizes zstd com- + ignored. Note that this tar implementation recognizes zstd com‐ pression automatically when reading archives. --lzma (c mode only) Compress the resulting archive with the original - LZMA algorithm. In extract or list modes, this option is - ignored. Use of this option is discouraged and new archives - should be created with --xz instead. Note that this tar imple- - mentation recognizes LZMA compression automatically when reading - archives. + LZMA algorithm. In extract or list modes, this option is ig‐ + nored. Use of this option is discouraged and new archives should + be created with --xz instead. Note that this tar implementation + recognizes LZMA compression automatically when reading archives. --lzop (c mode only) Compress the resulting archive with lzop(1). In extract or list modes, this option is ignored. Note that this @@ -265,8 +264,8 @@ OPTIONS than the specified date. This compares ctime entries. --newer-mtime date - (c, r, u modes only) Like --newer, except it compares mtime - entries instead of ctime entries. + (c, r, u modes only) Like --newer, except it compares mtime en‐ + tries instead of ctime entries. --newer-than file (c, r, u modes only) Only include files and directories newer @@ -282,17 +281,17 @@ OPTIONS --nopreserveHFSCompression (x mode only) Mac OS X specific (v10.6 or later). Do not compress - extracted regular files which were compressed with HFS+ compres- + extracted regular files which were compressed with HFS+ compres‐ sion before archived. By default, compress the regular files again with HFS+ compression. --null (use with -I or -T) Filenames or patterns are separated by null - characters, not by newlines. This is often used to read file- + characters, not by newlines. This is often used to read file‐ names output by the -print0 option to find(1). --no-acls (c, r, u, x modes only) Do not archive or extract POSIX.1e or - NFSv4 ACLs. This is the reverse of --acls and the default behav- + NFSv4 ACLs. This is the reverse of --acls and the default behav‐ ior if tar is run as non-root in x mode (on Mac OS X as any user in c, r, u and x modes). @@ -324,8 +323,8 @@ OPTIONS --no-xattrs (c, r, u, x modes only) Do not archive or extract extended file - attributes. This is the reverse of --xattrs and the default - behavior if tar is run as non-root in x mode. + attributes. This is the reverse of --xattrs and the default be‐ + havior if tar is run as non-root in x mode. --numeric-owner This is equivalent to --uname "" --gname "". On extract, it @@ -353,8 +352,8 @@ OPTIONS than the specified date. This compares ctime entries. --older-mtime date - (c, r, u modes only) Like --older, except it compares mtime - entries instead of ctime entries. + (c, r, u modes only) Like --older, except it compares mtime en‐ + tries instead of ctime entries. --older-than file (c, r, u modes only) Only include files and directories older @@ -374,7 +373,7 @@ OPTIONS control how those formats will behave. Each option has one of the following forms: key=value - The key will be set to the specified value in every mod- + The key will be set to the specified value in every mod‐ ule that supports it. Modules that do not support this key will ignore it. key The key will be enabled in every module that supports it. @@ -394,10 +393,10 @@ OPTIONS Support Joliet extensions. This is enabled by default, use !joliet or iso9660:!joliet to disable. iso9660:rockridge - Support Rock Ridge extensions. This is enabled by - default, use !rockridge or iso9660:!rockridge to disable. + Support Rock Ridge extensions. This is enabled by de‐ + fault, use !rockridge or iso9660:!rockridge to disable. gzip:compression-level - A decimal integer from 1 to 9 specifying the gzip com- + A decimal integer from 1 to 9 specifying the gzip com‐ pression level. gzip:timestamp Store timestamp. This is enabled by default, use @@ -407,10 +406,10 @@ OPTIONS bzip2, gzip, lzo (ultra fast), and zpaq (best, extremely slow). lrzip:compression-level - A decimal integer from 1 to 9 specifying the lrzip com- + A decimal integer from 1 to 9 specifying the lrzip com‐ pression level. lz4:compression-level - A decimal integer from 1 to 9 specifying the lzop com- + A decimal integer from 1 to 9 specifying the lzop com‐ pression level. lz4:stream-checksum Enable stream checksum. This is by default, use @@ -418,28 +417,29 @@ OPTIONS lz4:block-checksum Enable block checksum (Disabled by default). lz4:block-size - A decimal integer from 4 to 7 specifying the lz4 compres- + A decimal integer from 4 to 7 specifying the lz4 compres‐ sion block size (7 is set by default). lz4:block-dependence Use the previous block of the block being compressed for a compression dictionary to improve compression ratio. zstd:compression-level - A decimal integer from 1 to 22 specifying the zstd com- - pression level. + A decimal integer specifying the zstd compression level. + Supported values depend on the library version, common + values are from 1 to 22. lzop:compression-level - A decimal integer from 1 to 9 specifying the lzop com- + A decimal integer from 1 to 9 specifying the lzop com‐ pression level. xz:compression-level - A decimal integer from 0 to 9 specifying the xz compres- + A decimal integer from 0 to 9 specifying the xz compres‐ sion level. mtree:keyword The mtree writer module allows you to specify which mtree - keywords will be included in the output. Supported key- + keywords will be included in the output. Supported key‐ words include: cksum, device, flags, gid, gname, indent, link, md5, mode, nlink, rmd160, sha1, sha256, sha384, - sha512, size, time, uid, uname. The default is equiva- - lent to: ``device, flags, gid, gname, link, mode, nlink, - size, time, type, uid, uname''. + sha512, size, time, uid, uname. The default is equiva‐ + lent to: “device, flags, gid, gname, link, mode, nlink, + size, time, type, uid, uname”. mtree:all Enables all of the above keywords. You can also use mtree:!all to disable all keywords. @@ -456,13 +456,13 @@ OPTIONS zip:encryption=type Use type as encryption type. Supported values are zipcrypt (traditional zip encryption), aes128 (WinZip - AES-128 encryption) and aes256 (WinZip AES-256 encryp- + AES-128 encryption) and aes256 (WinZip AES-256 encryp‐ tion). read_concatenated_archives Ignore zeroed blocks in the archive, which occurs when multiple tar archives have been concatenated together. - Without this option, only the contents of the first con- - catenated archive would be read. This option is compara- + Without this option, only the contents of the first con‐ + catenated archive would be read. This option is compara‐ ble to the -i, --ignore-zeros option of GNU tar. If a provided option is not supported by any module, that is a fatal error. @@ -472,8 +472,8 @@ OPTIONS begin with a / character) have the leading slash removed both when creating archives and extracting from them. Also, tar will refuse to extract archive entries whose pathnames contain .. or - whose target directory would be altered by a symlink. This - option suppresses these behaviors. + whose target directory would be altered by a symlink. This op‐ + tion suppresses these behaviors. -p, --insecure, --preserve-permissions (x mode only) Preserve file permissions. Attempt to restore the @@ -486,8 +486,8 @@ OPTIONS --passphrase passphrase The passphrase is used to extract or create an encrypted archive. - Currently, zip is the only supported format that supports encryp- - tion. You shouldn't use this option unless you realize how inse- + Currently, zip is the only supported format that supports encryp‐ + tion. You shouldn't use this option unless you realize how inse‐ cure use of this option is. --posix @@ -498,8 +498,8 @@ OPTIONS that matches each pattern or filename operand. Exit as soon as each specified pattern or filename has been matched. By default, the archive is always read to the very end, since there can be - multiple entries with the same name and, by convention, later - entries overwrite earlier entries. This option is provided as a + multiple entries with the same name and, by convention, later en‐ + tries overwrite earlier entries. This option is provided as a performance optimization. -S (x mode only) Extract files as sparse files. For every block on @@ -510,10 +510,10 @@ OPTIONS Modify file or archive member names according to pattern. The pattern has the format /old/new/[ghHprRsS] where old is a basic regular expression, new is the replacement string of the matched - part, and the optional trailing letters modify how the replace- + part, and the optional trailing letters modify how the replace‐ ment is handled. If old is not matched, the pattern is skipped. Within new, ~ is substituted with the match, \1 to \9 with the - content of the corresponding captured group. The optional trail- + content of the corresponding captured group. The optional trail‐ ing g specifies that matching should continue after the matched part and stop on the first unmatched pattern. The optional trailing s specifies that the pattern applies to the value of @@ -534,11 +534,11 @@ OPTIONS writes to it. For a short period of time, applications trying to access the file might not find it, or see incomplete results. If --safe-writes is enabled, tar first creates a unique temporary - file, then writes the new contents to the temporary file, and - finally renames the temporary file to its final name atomically - using rename(2). This guarantees that an application accessing - the file, will either see the old contents or the new contents at - all times. + file, then writes the new contents to the temporary file, and fi‐ + nally renames the temporary file to its final name atomically us‐ + ing rename(2). This guarantees that an application accessing the + file, will either see the old contents or the new contents at all + times. --same-owner (x mode only) Extract owner and group IDs. This is the reverse @@ -554,11 +554,11 @@ OPTIONS -T filename, --files-from filename In x or t mode, tar will read the list of names to be extracted from filename. In c mode, tar will read names to be archived - from filename. The special name ``-C'' on a line by itself will - cause the current directory to be changed to the directory speci- - fied on the following line. Names are terminated by newlines - unless --null is specified. Note that --null also disables the - special handling of lines containing ``-C''. Note: If you are + from filename. The special name “-C” on a line by itself will + cause the current directory to be changed to the directory speci‐ + fied on the following line. Names are terminated by newlines un‐ + less --null is specified. Note that --null also disables the + special handling of lines containing “-C”. Note: If you are generating lists of files using find(1), you probably want to use -n as well. @@ -570,9 +570,9 @@ OPTIONS (x mode only) Unlink files before creating them. This can be a minor performance optimization if most files already exist, but can make things slower if most files do not already exist. This - flag also causes tar to remove intervening directory symlinks - instead of reporting an error. See the SECURITY section below - for more details. + flag also causes tar to remove intervening directory symlinks in‐ + stead of reporting an error. See the SECURITY section below for + more details. --uid id Use the provided user id number and ignore the user name from the @@ -595,7 +595,7 @@ OPTIONS Produce verbose output. In create and extract modes, tar will list each file name as it is read from or written to the archive. In list mode, tar will produce output similar to that of ls(1). - An additional -v option will also provide ls-like details in cre- + An additional -v option will also provide ls-like details in cre‐ ate and extract mode. --version @@ -609,9 +609,9 @@ OPTIONS --exclude for more information about the handling of exclusions. --xattrs - (c, r, u, x modes only) Archive or extract extended file - attributes. This is the reverse of --no-xattrs and the default - behavior in c, r, and u modes or if tar is run in x mode as root. + (c, r, u, x modes only) Archive or extract extended file at‐ + tributes. This is the reverse of --no-xattrs and the default be‐ + havior in c, r, and u modes or if tar is run in x mode as root. -y (c mode only) Compress the resulting archive with bzip2(1). In extract or list modes, this option is ignored. Note that this @@ -634,11 +634,11 @@ ENVIRONMENT The following environment variables affect the execution of tar: TAR_READER_OPTIONS - The default options for format readers and compression read- + The default options for format readers and compression read‐ ers. The --options option overrides this. TAR_WRITER_OPTIONS - The default options for format writers and compression writ- + The default options for format writers and compression writ‐ ers. The --options option overrides this. LANG The locale to use. See environ(7) for more information. @@ -677,8 +677,8 @@ EXAMPLES tar -c -f new.tar foo1 @old.tgz -C/tmp foo2 will create a new archive new.tar. tar will read the file foo1 from the current directory and add it to the output archive. It will then read - each entry from old.tgz and add those entries to the output archive. - Finally, it will switch to the /tmp directory and add foo2 to the output + each entry from old.tgz and add those entries to the output archive. Fi‐ + nally, it will switch to the /tmp directory and add foo2 to the output archive. An input file in mtree(5) format can be used to create an output archive @@ -692,8 +692,8 @@ EXAMPLES $ tar -cvf output.tar @input.mtree The --newer and --newer-mtime switches accept a variety of common date - and time specifications, including ``12 Mar 2005 7:14:29pm'', - ``2005-03-12 19:14'', ``5 minutes ago'', and ``19:14 PST May 1''. + and time specifications, including “12 Mar 2005 7:14:29pm”, “2005-03-12 + 19:14”, “5 minutes ago”, and “19:14 PST May 1”. The --options argument can be used to control various details of archive generation or reading. For example, you can generate mtree output which @@ -707,12 +707,12 @@ EXAMPLES COMPATIBILITY The bundled-arguments format is supported for compatibility with historic - implementations. It consists of an initial word (with no leading - char- + implementations. It consists of an initial word (with no leading - char‐ acter) in which each character indicates an option. Arguments follow as separate words. The order of the arguments must match the order of the corresponding characters in the bundled command word. For example, tar tbf 32 file.tar - specifies three flags t, b, and f. The b and f flags both require argu- + specifies three flags t, b, and f. The b and f flags both require argu‐ ments, so there must be two additional items on the command line. The 32 is the argument to the b flag, and file.tar is the argument to the f flag. @@ -729,25 +729,25 @@ COMPATIBILITY SECURITY Certain security issues are common to many archiving programs, including - tar. In particular, carefully-crafted archives can request that tar - extract files to locations outside of the target directory. This can - potentially be used to cause unwitting users to overwrite files they did - not intend to overwrite. If the archive is being extracted by the supe- + tar. In particular, carefully-crafted archives can request that tar ex‐ + tract files to locations outside of the target directory. This can po‐ + tentially be used to cause unwitting users to overwrite files they did + not intend to overwrite. If the archive is being extracted by the supe‐ ruser, any file on the system can potentially be overwritten. There are three ways this can happen. Although tar has mechanisms to protect against each one, savvy users should be aware of the implications: - o Archive entries can have absolute pathnames. By default, tar - removes the leading / character from filenames before restoring + • Archive entries can have absolute pathnames. By default, tar re‐ + moves the leading / character from filenames before restoring them to guard against this problem. - o Archive entries can have pathnames that include .. components. + • Archive entries can have pathnames that include .. components. By default, tar will not extract files containing .. components in their pathname. - o Archive entries can exploit symbolic links to restore files to - other directories. An archive can restore a symbolic link to - another directory, then use that link to restore a file into that + • Archive entries can exploit symbolic links to restore files to + other directories. An archive can restore a symbolic link to an‐ + other directory, then use that link to restore a file into that directory. To guard against this, tar checks each extracted path for symlinks. If the final path element is a symlink, it will be removed and replaced with the archive entry. If -U is specified, @@ -758,11 +758,11 @@ SECURITY untrusted sources. You should examine the contents of an archive with tar -tf filename before extraction. You should use the -k option to ensure that tar will - not overwrite any existing files or the -U option to remove any pre- - existing files. You should generally not extract archives while running + not overwrite any existing files or the -U option to remove any pre-ex‐ + isting files. You should generally not extract archives while running with super-user privileges. Note that the -P option to tar disables the - security checks above and allows you to extract an archive while preserv- - ing any absolute pathnames, .. components, or symlinks to other directo- + security checks above and allows you to extract an archive while preserv‐ + ing any absolute pathnames, .. components, or symlinks to other directo‐ ries. SEE ALSO @@ -771,40 +771,39 @@ SEE ALSO STANDARDS There is no current POSIX standard for the tar command; it appeared in - ISO/IEC 9945-1:1996 (``POSIX.1'') but was dropped from IEEE Std - 1003.1-2001 (``POSIX.1''). The options supported by this implementation - were developed by surveying a number of existing tar implementations as - well as the old POSIX specification for tar and the current POSIX speci- - fication for pax. + ISO/IEC 9945-1:1996 (“POSIX.1”) but was dropped from IEEE Std 1003.1-2001 + (“POSIX.1”). The options supported by this implementation were developed + by surveying a number of existing tar implementations as well as the old + POSIX specification for tar and the current POSIX specification for pax. The ustar and pax interchange file formats are defined by IEEE Std - 1003.1-2001 (``POSIX.1'') for the pax command. + 1003.1-2001 (“POSIX.1”) for the pax command. HISTORY A tar command appeared in Seventh Edition Unix, which was released in January, 1979. There have been numerous other implementations, many of - which extended the file format. John Gilmore's pdtar public-domain - implementation (circa November, 1987) was quite influential, and formed - the basis of GNU tar. GNU tar was included as the standard system tar in + which extended the file format. John Gilmore's pdtar public-domain im‐ + plementation (circa November, 1987) was quite influential, and formed the + basis of GNU tar. GNU tar was included as the standard system tar in FreeBSD beginning with FreeBSD 1.0. This is a complete re-implementation based on the libarchive(3) library. It was first released with FreeBSD 5.4 in May, 2005. BUGS - This program follows ISO/IEC 9945-1:1996 (``POSIX.1'') for the definition + This program follows ISO/IEC 9945-1:1996 (“POSIX.1”) for the definition of the -l option. Note that GNU tar prior to version 1.15 treated -l as a synonym for the --one-file-system option. The -C dir option may differ from historic implementations. - All archive output is written in correctly-sized blocks, even if the out- + All archive output is written in correctly-sized blocks, even if the out‐ put is being compressed. Whether or not the last output block is padded - to a full block size varies depending on the format and the output - device. For tar and cpio formats, the last block of output is padded to - a full block size if the output is being written to standard output or to - a character or block device such as a tape drive. If the output is being - written to a regular file, the last block will not be padded. Many com- + to a full block size varies depending on the format and the output de‐ + vice. For tar and cpio formats, the last block of output is padded to a + full block size if the output is being written to standard output or to a + character or block device such as a tape drive. If the output is being + written to a regular file, the last block will not be padded. Many com‐ pressors, including gzip(1) and bzip2(1), complain about the null padding when decompressing an archive created by tar, although they still extract it correctly. @@ -833,9 +832,9 @@ BUGS There is not yet any support for multi-volume archives. - Converting between dissimilar archive formats (such as tar and cpio) - using the @- convention can cause hard link information to be lost. - (This is a consequence of the incompatible ways that different archive - formats store hardlink information.) + Converting between dissimilar archive formats (such as tar and cpio) us‐ + ing the @- convention can cause hard link information to be lost. (This + is a consequence of the incompatible ways that different archive formats + store hardlink information.) BSD January 31, 2020 BSD diff --git a/dependencies/libarchive-3.5.2/doc/text/cpio.5.txt b/dependencies/libarchive-3.5.2/doc/text/cpio.5.txt new file mode 100644 index 0000000..d9c9cfd --- /dev/null +++ b/dependencies/libarchive-3.5.2/doc/text/cpio.5.txt @@ -0,0 +1,292 @@ +CPIO(5) BSD File Formats Manual CPIO(5) + +NAME + cpio — format of cpio archive files + +DESCRIPTION + The cpio archive format collects any number of files, directories, and + other file system objects (symbolic links, device nodes, etc.) into a + single stream of bytes. + + General Format + Each file system object in a cpio archive comprises a header record with + basic numeric metadata followed by the full pathname of the entry and the + file data. The header record stores a series of integer values that gen‐ + erally follow the fields in struct stat. (See stat(2) for details.) The + variants differ primarily in how they store those integers (binary, oc‐ + tal, or hexadecimal). The header is followed by the pathname of the en‐ + try (the length of the pathname is stored in the header) and any file + data. The end of the archive is indicated by a special record with the + pathname “TRAILER!!!”. + + PWB format + The PWB binary cpio format is the original format, when cpio was intro‐ + duced as part of the Programmer's Work Bench system, a variant of 6th + Edition UNIX. It stores numbers as 2-byte and 4-byte binary values. + Each entry begins with a header in the following format: + + struct header_pwb_cpio { + short h_magic; + short h_dev; + short h_ino; + short h_mode; + short h_uid; + short h_gid; + short h_nlink; + short h_majmin; + long h_mtime; + short h_namesize; + long h_filesize; + }; + + The short fields here are 16-bit integer values, while the long fields + are 32 bit integers. Since PWB UNIX, like the 6th Edition UNIX it was + based on, only ran on PDP-11 computers, they are in PDP-endian format, + which has little-endian shorts, and big-endian longs. That is, the long + integer whose hexadecimal representation is 0x12345678 would be stored in + four successive bytes as 0x34, 0x12, 0x78, 0x56. The fields are as fol‐ + lows: + + h_magic + The integer value octal 070707. + + h_dev, h_ino + The device and inode numbers from the disk. These are used by + programs that read cpio archives to determine when two entries + refer to the same file. Programs that synthesize cpio archives + should be careful to set these to distinct values for each entry. + + h_mode The mode specifies both the regular permissions and the file + type, and it also holds a couple of bits that are irrelevant to + the cpio format, because the field is actually a raw copy of the + mode field in the inode representing the file. These are the + IALLOC flag, which shows that the inode entry is in use, and the + ILARG flag, which shows that the file it represents is large + enough to have indirect blocks pointers in the inode. The mode + is decoded as follows: + + 0100000 IALLOC flag - irrelevant to cpio. + 0060000 This masks the file type bits. + 0040000 File type value for directories. + 0020000 File type value for character special devices. + 0060000 File type value for block special devices. + 0010000 ILARG flag - irrelevant to cpio. + 0004000 SUID bit. + 0002000 SGID bit. + 0001000 Sticky bit. + 0000777 The lower 9 bits specify read/write/execute permissions + for world, group, and user following standard POSIX con‐ + ventions. + + h_uid, h_gid + The numeric user id and group id of the owner. + + h_nlink + The number of links to this file. Directories always have a + value of at least two here. Note that hardlinked files include + file data with every copy in the archive. + + h_majmin + For block special and character special entries, this field con‐ + tains the associated device number, with the major number in the + high byte, and the minor number in the low byte. For all other + entry types, it should be set to zero by writers and ignored by + readers. + + h_mtime + Modification time of the file, indicated as the number of seconds + since the start of the epoch, 00:00:00 UTC January 1, 1970. + + h_namesize + The number of bytes in the pathname that follows the header. + This count includes the trailing NUL byte. + + h_filesize + The size of the file. Note that this archive format is limited + to 16 megabyte file sizes, because PWB UNIX, like 6th Edition, + only used an unsigned 24 bit integer for the file size inter‐ + nally. + + The pathname immediately follows the fixed header. If h_namesize is odd, + an additional NUL byte is added after the pathname. The file data is + then appended, again with an additional NUL appended if needed to get the + next header at an even offset. + + Hardlinked files are not given special treatment; the full file contents + are included with each copy of the file. + + New Binary Format + The new binary cpio format showed up when cpio was adopted into late 7th + Edition UNIX. It is exactly like the PWB binary format, described above, + except for three changes: + + First, UNIX now ran on more than one hardware type, so the endianness of + 16 bit integers must be determined by observing the magic number at the + start of the header. The 32 bit integers are still always stored with + the most significant word first, though, so each of those two, in the + struct shown above, was stored as an array of two 16 bit integers, in the + traditional order. Those 16 bit integers, like all the others in the + struct, were accessed using a macro that byte swapped them if necessary. + + Next, 7th Edition had more file types to store, and the IALLOC and ILARG + flag bits were re-purposed to accommodate these. The revised use of the + various bits is as follows: + + 0170000 This masks the file type bits. + 0140000 File type value for sockets. + 0120000 File type value for symbolic links. For symbolic links, the + link body is stored as file data. + 0100000 File type value for regular files. + 0060000 File type value for block special devices. + 0040000 File type value for directories. + 0020000 File type value for character special devices. + 0010000 File type value for named pipes or FIFOs. + 0004000 SUID bit. + 0002000 SGID bit. + 0001000 Sticky bit. + 0000777 The lower 9 bits specify read/write/execute permissions for + world, group, and user following standard POSIX conventions. + + Finally, the file size field now represents a signed 32 bit integer in + the underlying file system, so the maximum file size has increased to 2 + gigabytes. + + Note that there is no obvious way to tell which of the two binary formats + an archive uses, other than to see which one makes more sense. The typi‐ + cal error scenario is that a PWB format archive unpacked as if it were in + the new format will create named sockets instead of directories, and then + fail to unpack files that should go in those directories. Running + bsdcpio -itv on an unknown archive will make it obvious which it is: if + it's PWB format, directories will be listed with an 's' instead of a 'd' + as the first character of the mode string, and the larger files will have + a '?' in that position. + + Portable ASCII Format + Version 2 of the Single UNIX Specification (“SUSv2”) standardized an + ASCII variant that is portable across all platforms. It is commonly + known as the “old character” format or as the “odc” format. It stores + the same numeric fields as the old binary format, but represents them as + 6-character or 11-character octal values. + + struct cpio_odc_header { + char c_magic[6]; + char c_dev[6]; + char c_ino[6]; + char c_mode[6]; + char c_uid[6]; + char c_gid[6]; + char c_nlink[6]; + char c_rdev[6]; + char c_mtime[11]; + char c_namesize[6]; + char c_filesize[11]; + }; + + The fields are identical to those in the new binary format. The name and + file body follow the fixed header. Unlike the binary formats, there is + no additional padding after the pathname or file contents. If the files + being archived are themselves entirely ASCII, then the resulting archive + will be entirely ASCII, except for the NUL byte that terminates the name + field. + + New ASCII Format + The "new" ASCII format uses 8-byte hexadecimal fields for all numbers and + separates device numbers into separate fields for major and minor num‐ + bers. + + struct cpio_newc_header { + char c_magic[6]; + char c_ino[8]; + char c_mode[8]; + char c_uid[8]; + char c_gid[8]; + char c_nlink[8]; + char c_mtime[8]; + char c_filesize[8]; + char c_devmajor[8]; + char c_devminor[8]; + char c_rdevmajor[8]; + char c_rdevminor[8]; + char c_namesize[8]; + char c_check[8]; + }; + + Except as specified below, the fields here match those specified for the + new binary format above. + + magic The string “070701”. + + check This field is always set to zero by writers and ignored by read‐ + ers. See the next section for more details. + + The pathname is followed by NUL bytes so that the total size of the fixed + header plus pathname is a multiple of four. Likewise, the file data is + padded to a multiple of four bytes. Note that this format supports only + 4 gigabyte files (unlike the older ASCII format, which supports 8 giga‐ + byte files). + + In this format, hardlinked files are handled by setting the filesize to + zero for each entry except the first one that appears in the archive. + + New CRC Format + The CRC format is identical to the new ASCII format described in the pre‐ + vious section except that the magic field is set to “070702” and the + check field is set to the sum of all bytes in the file data. This sum is + computed treating all bytes as unsigned values and using unsigned arith‐ + metic. Only the least-significant 32 bits of the sum are stored. + + HP variants + The cpio implementation distributed with HPUX used XXXX but stored device + numbers differently XXX. + + Other Extensions and Variants + Sun Solaris uses additional file types to store extended file data, in‐ + cluding ACLs and extended attributes, as special entries in cpio ar‐ + chives. + + XXX Others? XXX + +SEE ALSO + cpio(1), tar(5) + +STANDARDS + The cpio utility is no longer a part of POSIX or the Single Unix Stan‐ + dard. It last appeared in Version 2 of the Single UNIX Specification + (“SUSv2”). It has been supplanted in subsequent standards by pax(1). + The portable ASCII format is currently part of the specification for the + pax(1) utility. + +HISTORY + The original cpio utility was written by Dick Haight while working in + AT&T's Unix Support Group. It appeared in 1977 as part of PWB/UNIX 1.0, + the “Programmer's Work Bench” derived from AT&T UNIX 6th Edition UNIX + that was used internally at AT&T. Both the new binary and old character + formats were in use by 1980, according to the System III source released + by SCO under their “Ancient Unix” license. The character format was + adopted as part of IEEE Std 1003.1-1988 (“POSIX.1”). XXX when did "newc" + appear? Who invented it? When did HP come out with their variant? When + did Sun introduce ACLs and extended attributes? XXX + +BUGS + The “CRC” format is mis-named, as it uses a simple checksum and not a + cyclic redundancy check. + + The binary formats are limited to 16 bits for user id, group id, device, + and inode numbers. They are limited to 16 megabyte and 2 gigabyte file + sizes for the older and newer variants, respectively. + + The old ASCII format is limited to 18 bits for the user id, group id, de‐ + vice, and inode numbers. It is limited to 8 gigabyte file sizes. + + The new ASCII format is limited to 4 gigabyte file sizes. + + None of the cpio formats store user or group names, which are essential + when moving files between systems with dissimilar user or group number‐ + ing. + + Especially when writing older cpio variants, it may be necessary to map + actual device/inode values to synthesized values that fit the available + fields. With very large filesystems, this may be necessary even for the + newer formats. + +BSD December 23, 2011 BSD diff --git a/dependencies/libarchive-3.4.2/doc/text/libarchive-formats.5.txt b/dependencies/libarchive-3.5.2/doc/text/libarchive-formats.5.txt similarity index 70% rename from dependencies/libarchive-3.4.2/doc/text/libarchive-formats.5.txt rename to dependencies/libarchive-3.5.2/doc/text/libarchive-formats.5.txt index 18e0dc4..92fb8d5 100644 --- a/dependencies/libarchive-3.4.2/doc/text/libarchive-formats.5.txt +++ b/dependencies/libarchive-3.5.2/doc/text/libarchive-formats.5.txt @@ -1,16 +1,16 @@ LIBARCHIVE-FORMATS(5) BSD File Formats Manual LIBARCHIVE-FORMATS(5) NAME - libarchive-formats -- archive formats supported by the libarchive library + libarchive-formats — archive formats supported by the libarchive library DESCRIPTION The libarchive(3) library reads and writes a variety of streaming archive formats. Generally speaking, all of these archive formats consist of a - series of ``entries''. Each entry stores a single file system object, - such as a file, directory, or symbolic link. + series of “entries”. Each entry stores a single file system object, such + as a file, directory, or symbolic link. The following provides a brief description of each format supported by - libarchive, with some information about recognized extensions or limita- + libarchive, with some information about recognized extensions or limita‐ tions of the current library support. Note that just because a format is supported by libarchive does not imply that a program that uses libarchive will support that format. Applications that use libarchive @@ -19,16 +19,16 @@ DESCRIPTION Tar Formats The libarchive(3) library can read most tar archives. It can write - POSIX-standard ``ustar'' and ``pax interchange'' formats as well as v7 - tar format and a subset of the legacy GNU tar format. + POSIX-standard “ustar” and “pax interchange” formats as well as v7 tar + format and a subset of the legacy GNU tar format. All tar formats store each entry in one or more 512-byte records. The first record is used for file metadata, including filename, timestamp, and mode information, and the file data is stored in subsequent records. Later variants have extended this by either appropriating undefined areas of the header record, extending the header to multiple records, or by - storing special entries that modify the interpretation of subsequent - entries. + storing special entries that modify the interpretation of subsequent en‐ + tries. gnutar The libarchive(3) library can read most GNU-format tar archives. It currently supports the most popular GNU extensions, including @@ -45,70 +45,69 @@ DESCRIPTION interchange format archives. Pax interchange format archives are an extension of the older ustar format that adds a separate entry with additional attributes stored as key/value pairs immediately - before each regular entry. The presence of these additional - entries is the only difference between pax interchange format and + before each regular entry. The presence of these additional en‐ + tries is the only difference between pax interchange format and the older ustar format. The extended attributes are of unlimited length and are stored as UTF-8 Unicode strings. Keywords defined - in the standard are in all lowercase; vendors are allowed to - define custom keys by preceding them with the vendor name in all + in the standard are in all lowercase; vendors are allowed to de‐ + fine custom keys by preceding them with the vendor name in all uppercase. When writing pax archives, libarchive uses many of - the SCHILY keys defined by Joerg Schilling's ``star'' archiver - and a few LIBARCHIVE keys. The libarchive library can read most - of the SCHILY keys and most of the GNU keys introduced by GNU - tar. It silently ignores any keywords that it does not under- - stand. + the SCHILY keys defined by Joerg Schilling's “star” archiver and + a few LIBARCHIVE keys. The libarchive library can read most of + the SCHILY keys and most of the GNU keys introduced by GNU tar. + It silently ignores any keywords that it does not understand. The pax interchange format converts filenames to Unicode and stores them using the UTF-8 encoding. Prior to libarchive 3.0, libarchive erroneously assumed that the system wide-character - routines natively supported Unicode. This caused it to mis-han- - dle non-ASCII filenames on systems that did not satisfy this - assumption. + routines natively supported Unicode. This caused it to mis-han‐ + dle non-ASCII filenames on systems that did not satisfy this as‐ + sumption. restricted pax The libarchive library can also write pax archives in which it - attempts to suppress the extended attributes entry whenever pos- + attempts to suppress the extended attributes entry whenever pos‐ sible. The result will be identical to a ustar archive unless the extended attributes entry is required to store a long file name, long linkname, extended ACL, file flags, or if any of the standard ustar data (user name, group name, UID, GID, etc) cannot - be fully represented in the ustar header. In all cases, the - result can be dearchived by any program that can read POSIX-com- - pliant pax interchange format archives. Programs that correctly - read ustar format (see below) will also be able to read this for- + be fully represented in the ustar header. In all cases, the re‐ + sult can be dearchived by any program that can read POSIX-compli‐ + ant pax interchange format archives. Programs that correctly + read ustar format (see below) will also be able to read this for‐ mat; any extended attributes will be extracted as separate files stored in PaxHeader directories. ustar The libarchive library can both read and write this format. This format has the following limitations: - o Device major and minor numbers are limited to 21 bits. Nodes + • Device major and minor numbers are limited to 21 bits. Nodes with larger numbers will not be added to the archive. - o Path names in the archive are limited to 255 bytes. (Shorter + • Path names in the archive are limited to 255 bytes. (Shorter if there is no / character in exactly the right place.) - o Symbolic links and hard links are stored in the archive with + • Symbolic links and hard links are stored in the archive with the name of the referenced file. This name is limited to 100 bytes. - o Extended attributes, file flags, and other extended security + • Extended attributes, file flags, and other extended security information cannot be stored. - o Archive entries are limited to 8 gigabytes in size. - Note that the pax interchange format has none of these restric- - tions. The ustar format is old and widely supported. It is rec- + • Archive entries are limited to 8 gigabytes in size. + Note that the pax interchange format has none of these restric‐ + tions. The ustar format is old and widely supported. It is rec‐ ommended when compatibility is the primary concern. - v7 The libarchive library can read and write the legacy v7 tar for- + v7 The libarchive library can read and write the legacy v7 tar for‐ mat. This format has the following limitations: - o Only regular files, directories, and symbolic links can be - archived. Block and character device nodes, FIFOs, and sock- + • Only regular files, directories, and symbolic links can be + archived. Block and character device nodes, FIFOs, and sock‐ ets cannot be archived. - o Path names in the archive are limited to 100 bytes. - o Symbolic links and hard links are stored in the archive with + • Path names in the archive are limited to 100 bytes. + • Symbolic links and hard links are stored in the archive with the name of the referenced file. This name is limited to 100 bytes. - o User and group information are stored as numeric IDs; there + • User and group information are stored as numeric IDs; there is no provision for storing user or group names. - o Extended attributes, file flags, and other extended security + • Extended attributes, file flags, and other extended security information cannot be stored. - o Archive entries are limited to 8 gigabytes in size. + • Archive entries are limited to 8 gigabytes in size. Generally, users should prefer the ustar format for portability as the v7 tar format is both less useful and less portable. @@ -120,9 +119,9 @@ DESCRIPTION The POSIX standards require fixed-length numeric fields to be written with some character position reserved for terminators. Libarchive allows these fields to be written without terminator - characters. This extends the allowable range; in particular, - ustar archives with this extension can support entries up to 64 - gigabytes in size. Libarchive also recognizes base-256 values in + characters. This extends the allowable range; in particular, us‐ + tar archives with this extension can support entries up to 64 gi‐ + gabytes in size. Libarchive also recognizes base-256 values in most numeric fields. This essentially removes all limitations on file size, modification time, and device numbers. @@ -131,33 +130,37 @@ DESCRIPTION by Solaris tar. The first tar program appeared in Seventh Edition Unix in 1979. The - first official standard for the tar file format was the ``ustar'' (Unix + first official standard for the tar file format was the “ustar” (Unix Standard Tar) format defined by POSIX in 1988. POSIX.1-2001 extended the - ustar format to create the ``pax interchange'' format. + ustar format to create the “pax interchange” format. Cpio Formats - The libarchive library can read a number of common cpio variants and can - write ``odc'' and ``newc'' format archives. A cpio archive stores each - entry as a fixed-size header followed by a variable-length filename and - variable-length data. Unlike the tar format, the cpio format does only - minimal padding of the header or file data. There are several cpio vari- - ants, which differ primarily in how they store the initial header: some - store the values as octal or hexadecimal numbers in ASCII, others as - binary values of varying byte order and length. + The libarchive library can read and write a number of common cpio vari‐ + ants. A cpio archive stores each entry as a fixed-size header followed + by a variable-length filename and variable-length data. Unlike the tar + format, the cpio format does only minimal padding of the header or file + data. There are several cpio variants, which differ primarily in how + they store the initial header: some store the values as octal or hexadec‐ + imal numbers in ASCII, others as binary values of varying byte order and + length. binary The libarchive library transparently reads both big-endian and - little-endian variants of the original binary cpio format. This - format used 32-bit binary values for file size and mtime, and - 16-bit binary values for the other fields. + little-endian variants of the the two binary cpio formats; the + original one from PWB/UNIX, and the later, more widely used, + variant. This format used 32-bit binary values for file size and + mtime, and 16-bit binary values for the other fields. The for‐ + mats support only the file types present in UNIX at the time of + their creation. File sizes are limited to 24 bits in the PWB + format, because of the limits of the file system, and to 31 bits + in the newer binary format, where signed 32 bit longs were used. - odc The libarchive library can both read and write this POSIX-stan- - dard format, which is officially known as the ``cpio interchange - format'' or the ``octet-oriented cpio archive format'' and some- - times unofficially referred to as the ``old character format''. - This format stores the header contents as octal values in ASCII. - It is standard, portable, and immune from byte-order confusion. - File sizes and mtime are limited to 33 bits (8GB file size), - other fields are limited to 18 bits. + odc This is the POSIX standardized format, which is officially known + as the “cpio interchange format” or the “octet-oriented cpio + archive format” and sometimes unofficially referred to as the + “old character format”. This format stores the header contents + as octal values in ASCII. It is standard, portable, and immune + from byte-order confusion. File sizes and mtime are limited to + 33 bits (8GB file size), other fields are limited to 18 bits. SVR4/newc The libarchive library can read both CRC and non-CRC variants of @@ -173,32 +176,32 @@ DESCRIPTION included in Version 7 AT&T Unix. As a result, the tar command became much better known in universities and research groups that used Version 7. The combination of the find and cpio utilities provided very precise - control over file selection. Unfortunately, the format has many limita- + control over file selection. Unfortunately, the format has many limita‐ tions that make it unsuitable for widespread use. Only the POSIX format permits files over 4GB, and its 18-bit limit for most other fields makes it unsuitable for modern systems. In addition, cpio formats only store numeric UID/GID values (not usernames and group names), which can make it - very difficult to correctly transfer archives across systems with dissim- + very difficult to correctly transfer archives across systems with dissim‐ ilar user numbering. Shar Formats - A ``shell archive'' is a shell script that, when executed on a POSIX-com- + A “shell archive” is a shell script that, when executed on a POSIX-com‐ pliant system, will recreate a collection of file system objects. The libarchive library can write two different kinds of shar archives: shar The traditional shar format uses a limited set of POSIX commands, including echo(1), mkdir(1), and sed(1). It is suitable for - portably archiving small collections of plain text files. How- + portably archiving small collections of plain text files. How‐ ever, it is not generally well-suited for large archives (many implementations of sh(1) have limits on the size of a script) nor should it be used with non-text files. shardump This format is similar to shar but encodes files using - uuencode(1) so that the result will be a plain text file regard- + uuencode(1) so that the result will be a plain text file regard‐ less of the file contents. It also includes additional shell commands that attempt to reproduce as many file attributes as - possible, including owner, mode, and flags. The additional com- + possible, including owner, mode, and flags. The additional com‐ mands used to restore file attributes make shardump archives less portable than plain shar archives. @@ -207,56 +210,55 @@ DESCRIPTION CDROM images. In many cases, this can remove the need to burn a physical CDROM just in order to read the files contained in an ISO9660 image. It also avoids security and complexity issues that come with virtual mounts - and loopback devices. Libarchive supports the most common Rockridge - extensions and has partial support for Joliet extensions. If both exten- + and loopback devices. Libarchive supports the most common Rockridge ex‐ + tensions and has partial support for Joliet extensions. If both exten‐ sions are present, the Joliet extensions will be used and the Rockridge extensions will be ignored. In particular, this can create problems with hardlinks and symlinks, which are supported by Rockridge but not by Joliet. Libarchive reads ISO9660 images using a streaming strategy. This allows - it to read compressed images directly (decompressing on the fly) and - allows it to read images directly from network sockets, pipes, and other + it to read compressed images directly (decompressing on the fly) and al‐ + lows it to read images directly from network sockets, pipes, and other non-seekable data sources. This strategy works well for optimized ISO9660 images created by many popular programs. Such programs collect all directory information at the beginning of the ISO9660 image so it can be read from a physical disk with a minimum of seeking. However, not all ISO9660 images can be read in this fashion. - Libarchive can also write ISO9660 images. Such images are fully opti- + Libarchive can also write ISO9660 images. Such images are fully opti‐ mized with the directory information preceding all file data. This is - done by storing all file data to a temporary file while collecting direc- + done by storing all file data to a temporary file while collecting direc‐ tory information in memory. When the image is finished, libarchive - writes out the directory structure followed by the file data. The loca- + writes out the directory structure followed by the file data. The loca‐ tion used for the temporary file can be changed by the usual environment variables. Zip format Libarchive can read and write zip format archives that have uncompressed - entries and entries compressed with the ``deflate'' algorithm. Other zip + entries and entries compressed with the “deflate” algorithm. Other zip compression algorithms are not supported. It can extract jar archives, archives that use Zip64 extensions and self-extracting zip archives. - Libarchive can use either of two different strategies for reading Zip ar- + Libarchive can use either of two different strategies for reading Zip ar‐ chives: a streaming strategy which is fast and can handle extremely large - archives, and a seeking strategy which can correctly process self- - extracting Zip archives and archives with deleted members or other in- - place modifications. + archives, and a seeking strategy which can correctly process self-ex‐ + tracting Zip archives and archives with deleted members or other in-place + modifications. The streaming reader processes Zip archives as they are read. It can - read archives of arbitrary size from tape or network sockets, and can - decode Zip archives that have been separately compressed or encoded. - However, self-extracting Zip archives and archives with certain types of + read archives of arbitrary size from tape or network sockets, and can de‐ + code Zip archives that have been separately compressed or encoded. How‐ + ever, self-extracting Zip archives and archives with certain types of modifications cannot be correctly handled. Such archives require that - the reader first process the Central Directory, which is ordinarily - located at the end of a Zip archive and is thus inaccessible to the - streaming reader. If the program using libarchive has enabled seek sup- - port, then libarchive will use this to processes the central directory - first. + the reader first process the Central Directory, which is ordinarily lo‐ + cated at the end of a Zip archive and is thus inaccessible to the stream‐ + ing reader. If the program using libarchive has enabled seek support, + then libarchive will use this to processes the central directory first. In particular, the seeking reader must be used to correctly handle self- extracting archives. Such archives consist of a program followed by a - regular Zip archive. The streaming reader cannot parse the initial pro- - gram portion, but the seeking reader starts by reading the Central Direc- + regular Zip archive. The streaming reader cannot parse the initial pro‐ + gram portion, but the seeking reader starts by reading the Central Direc‐ tory from the end of the archive. Similarly, Zip archives that have been modified in-place can have deleted entries or other garbage data that can only be accurately detected by first reading the Central Directory. @@ -264,7 +266,7 @@ DESCRIPTION Archive (library) file format The Unix archive format (commonly created by the ar(1) archiver) is a general-purpose format which is used almost exclusively for object files - to be read by the link editor ld(1). The ar format has never been stan- + to be read by the link editor ld(1). The ar format has never been stan‐ dardised. There are two common variants: the GNU format derived from SVR4, and the BSD format, which first appeared in 4.4BSD. The two differ primarily in their handling of filenames longer than 15 characters: the @@ -274,18 +276,18 @@ DESCRIPTION may include both types of long filenames. Programs using libarchive can write GNU/SVR4 format if they provide an entry called // containing a filename table to be written into the archive before any of the entries. - Any entries whose names are not in the filename table will be written - using BSD-style long filenames. This can cause problems for programs - such as GNU ld that do not support the BSD-style long filenames. + Any entries whose names are not in the filename table will be written us‐ + ing BSD-style long filenames. This can cause problems for programs such + as GNU ld that do not support the BSD-style long filenames. mtree Libarchive can read and write files in mtree(5) format. This format is - not a true archive format, but rather a textual description of a file - hierarchy in which each line specifies the name of a file and provides - specific metadata about that file. Libarchive can read all of the key- - words supported by both the NetBSD and FreeBSD versions of mtree(8), - although many of the keywords cannot currently be stored in an - archive_entry object. When writing, libarchive supports use of the + not a true archive format, but rather a textual description of a file hi‐ + erarchy in which each line specifies the name of a file and provides spe‐ + cific metadata about that file. Libarchive can read all of the keywords + supported by both the NetBSD and FreeBSD versions of mtree(8), although + many of the keywords cannot currently be stored in an archive_entry ob‐ + ject. When writing, libarchive supports use of the archive_write_set_options(3) interface to specify which keywords should be included in the output. If libarchive was compiled with access to suitable cryptographic libraries (such as the OpenSSL libraries), it can @@ -293,33 +295,33 @@ DESCRIPTION to the mtree writer. When reading an mtree file, libarchive will locate the corresponding - files on disk using the contents keyword if present or the regular file- + files on disk using the contents keyword if present or the regular file‐ name. If it can locate and open the file on disk, it will use that to fill in any metadata that is missing from the mtree file and will read the file contents and return those to the program using libarchive. If - it cannot locate and open the file on disk, libarchive will return an - error for any attempt to read the entry body. + it cannot locate and open the file on disk, libarchive will return an er‐ + ror for any attempt to read the entry body. 7-Zip - Libarchive can read and write 7-Zip format archives. TODO: Need more - information + Libarchive can read and write 7-Zip format archives. TODO: Need more in‐ + formation CAB - Libarchive can read Microsoft Cabinet ( ``CAB'') format archives. TODO: + Libarchive can read Microsoft Cabinet ( “CAB”) format archives. TODO: Need more information. LHA TODO: Information about libarchive's LHA support RAR - Libarchive has limited support for reading RAR format archives. Cur- + Libarchive has limited support for reading RAR format archives. Cur‐ rently, libarchive can read RARv3 format archives which have been either created uncompressed, or compressed using any of the compression methods supported by the RARv3 format. Libarchive can also read self-extracting RAR archives. Warc - Libarchive can read and write ``web archives''. TODO: Need more informa- + Libarchive can read and write “web archives”. TODO: Need more informa‐ tion XAR diff --git a/dependencies/libarchive-3.4.2/doc/text/libarchive.3.txt b/dependencies/libarchive-3.5.2/doc/text/libarchive.3.txt similarity index 75% rename from dependencies/libarchive-3.4.2/doc/text/libarchive.3.txt rename to dependencies/libarchive-3.5.2/doc/text/libarchive.3.txt index 3f461d8..b570d04 100644 --- a/dependencies/libarchive-3.4.2/doc/text/libarchive.3.txt +++ b/dependencies/libarchive-3.5.2/doc/text/libarchive.3.txt @@ -1,63 +1,63 @@ LIBARCHIVE(3) BSD Library Functions Manual LIBARCHIVE(3) NAME - libarchive -- functions for reading and writing streaming archives + libarchive — functions for reading and writing streaming archives OVERVIEW The libarchive library provides a flexible interface for reading and writing archives in various formats such as tar and cpio. libarchive - also supports reading and writing archives compressed using various com- + also supports reading and writing archives compressed using various com‐ pression filters such as gzip and bzip2. The library is inherently stream-oriented; readers serially iterate through the archive, writers serially add things to the archive. In particular, note that there is - currently no built-in support for random access nor for in-place modifi- + currently no built-in support for random access nor for in-place modifi‐ cation. When reading an archive, the library automatically detects the format and the compression. The library currently has read support for: - o old-style tar archives, - o most variants of the POSIX ``ustar'' format, - o the POSIX ``pax interchange'' format, - o GNU-format tar archives, - o most common cpio archive formats, - o ISO9660 CD images (including RockRidge and Joliet extensions), - o Zip archives, - o ar archives (including GNU/SysV and BSD extensions), - o Microsoft CAB archives, - o LHA archives, - o mtree file tree descriptions, - o RAR archives, - o XAR archives. + • old-style tar archives, + • most variants of the POSIX “ustar” format, + • the POSIX “pax interchange” format, + • GNU-format tar archives, + • most common cpio archive formats, + • ISO9660 CD images (including RockRidge and Joliet extensions), + • Zip archives, + • ar archives (including GNU/SysV and BSD extensions), + • Microsoft CAB archives, + • LHA archives, + • mtree file tree descriptions, + • RAR archives, + • XAR archives. The library automatically detects archives compressed with gzip(1), - bzip2(1), xz(1), lzip(1), or compress(1) and decompresses them transpar- + bzip2(1), xz(1), lzip(1), or compress(1) and decompresses them transpar‐ ently. It can similarly detect and decode archives processed with uuencode(1) or which have an rpm(1) header. When writing an archive, you can specify the compression to be used and the format to use. The library can write - o POSIX-standard ``ustar'' archives, - o POSIX ``pax interchange format'' archives, - o POSIX octet-oriented cpio archives, - o Zip archive, - o two different variants of shar archives, - o ISO9660 CD images, - o 7-Zip archives, - o ar archives, - o mtree file tree descriptions, - o XAR archives. + • POSIX-standard “ustar” archives, + • POSIX “pax interchange format” archives, + • cpio archives, + • Zip archive, + • two different variants of shar archives, + • ISO9660 CD images, + • 7-Zip archives, + • ar archives, + • mtree file tree descriptions, + • XAR archives. Pax interchange format is an extension of the tar archive format that eliminates essentially all of the limitations of historic tar formats in - a standard fashion that is supported by POSIX-compliant pax(1) implemen- + a standard fashion that is supported by POSIX-compliant pax(1) implemen‐ tations on many systems as well as several newer implementations of - tar(1). Note that the default write format will suppress the pax - extended attributes for most entries; explicitly requesting pax format - will enable those attributes for all entries. + tar(1). Note that the default write format will suppress the pax ex‐ + tended attributes for most entries; explicitly requesting pax format will + enable those attributes for all entries. - The read and write APIs are accessed through the archive_read_XXX() func- + The read and write APIs are accessed through the archive_read_XXX() func‐ tions and the archive_write_XXX() functions, respectively, and either can be used independently of the other. - The rest of this manual page provides an overview of the library opera- + The rest of this manual page provides an overview of the library opera‐ tion. More detailed information can be found in the individual manual pages for each API or utility function. @@ -68,16 +68,16 @@ WRITING AN ARCHIVE See archive_write(3). WRITING ENTRIES TO DISK - The archive_write_disk(3) API allows you to write archive_entry(3) - objects to disk using the same API used by archive_write(3). The + The archive_write_disk(3) API allows you to write archive_entry(3) ob‐ + jects to disk using the same API used by archive_write(3). The archive_write_disk(3) API is used internally by archive_read_extract(); - using it directly can provide greater control over how entries get writ- - ten to disk. This API also makes it possible to share code between ar- + using it directly can provide greater control over how entries get writ‐ + ten to disk. This API also makes it possible to share code between ar‐ chive-to-archive copy and archive-to-disk extraction operations. READING ENTRIES FROM DISK The archive_read_disk(3) supports for populating archive_entry(3) objects - from information in the filesystem. This includes the information acces- + from information in the filesystem. This includes the information acces‐ sible from the stat(2) system call as well as ACLs, extended attributes, and other metadata. The archive_read_disk(3) API also supports iterating over directory trees, which allows directories of files to be read using @@ -87,14 +87,14 @@ DESCRIPTION Detailed descriptions of each function are provided by the corresponding manual pages. - All of the functions utilize an opaque struct archive datatype that pro- + All of the functions utilize an opaque struct archive datatype that pro‐ vides access to the archive contents. The struct archive_entry structure contains a complete description of a - single archive entry. It uses an opaque interface that is fully docu- + single archive entry. It uses an opaque interface that is fully docu‐ mented in archive_entry(3). - Users familiar with historic formats should be aware that the newer vari- + Users familiar with historic formats should be aware that the newer vari‐ ants have eliminated most restrictions on the length of textual fields. Clients should not assume that filenames, link names, user names, or group names are limited in length. In particular, pax interchange format @@ -106,12 +106,12 @@ RETURN VALUES The return value indicates the general severity of the error, ranging from ARCHIVE_WARN, which indicates a minor problem that should probably be reported to the user, to ARCHIVE_FATAL, which indicates a serious - problem that will prevent any further operations on this archive. On - error, the archive_errno() function can be used to retrieve a numeric - error code (see errno(2)). The archive_error_string() returns a textual - error message suitable for display. + problem that will prevent any further operations on this archive. On er‐ + ror, the archive_errno() function can be used to retrieve a numeric error + code (see errno(2)). The archive_error_string() returns a textual error + message suitable for display. - archive_read_new() and archive_write_new() return pointers to an allo- + archive_read_new() and archive_write_new() return pointers to an allo‐ cated and initialized struct archive object. archive_read_data() and archive_write_data() return a count of the number @@ -137,14 +137,14 @@ AUTHORS BUGS Some archive formats support information that is not supported by struct - archive_entry. Such information cannot be fully archived or restored - using this library. This includes, for example, comments, character - sets, or the arbitrary key/value pairs that can appear in pax interchange - format archives. + archive_entry. Such information cannot be fully archived or restored us‐ + ing this library. This includes, for example, comments, character sets, + or the arbitrary key/value pairs that can appear in pax interchange for‐ + mat archives. Conversely, of course, not all of the information that can be stored in an struct archive_entry is supported by all formats. For example, cpio - formats do not support nanosecond timestamps; old tar formats do not sup- + formats do not support nanosecond timestamps; old tar formats do not sup‐ port large device numbers. The ISO9660 reader cannot yet read all ISO9660 images; it should learn diff --git a/dependencies/libarchive-3.4.2/doc/text/libarchive_changes.3.txt b/dependencies/libarchive-3.5.2/doc/text/libarchive_changes.3.txt similarity index 87% rename from dependencies/libarchive-3.4.2/doc/text/libarchive_changes.3.txt rename to dependencies/libarchive-3.5.2/doc/text/libarchive_changes.3.txt index 54b6bb8..fff1b3e 100644 --- a/dependencies/libarchive-3.4.2/doc/text/libarchive_changes.3.txt +++ b/dependencies/libarchive-3.5.2/doc/text/libarchive_changes.3.txt @@ -1,7 +1,7 @@ LIBARCHIVE_CHANGES(3) BSD Library Functions Manual LIBARCHIVE_CHANGES(3) NAME - libarchive_changes -- changes in libarchive interface + libarchive_changes — changes in libarchive interface CHANGES IN LIBARCHIVE 3 This page describes user-visible changes in libarchive3, and lists public @@ -9,7 +9,7 @@ CHANGES IN LIBARCHIVE 3 libarchive3, along with their replacements if any. Multiple Filters - Libarchive2 permitted a single (input or output) filter active on an ar- + Libarchive2 permitted a single (input or output) filter active on an ar‐ chive. Libarchive3 extends this into a variable-length stack. Where archive_write_set_compression_XXX() would replace any existing filter, archive_write_add_filter_XXX() extends the write pipeline with another @@ -18,28 +18,28 @@ CHANGES IN LIBARCHIVE 3 Character Set Handling Libarchive2 assumed that the local platform uses Unicode as the native wchar_t encoding, which is true on Windows, modern Linux, and a few other - systems, but is certainly not universal. As a result, pax format ar- - chives were written incorrectly on some systems, since pax format - requires UTF-8 and libarchive 2 incorrectly assumed that wchar_t strings + systems, but is certainly not universal. As a result, pax format ar‐ + chives were written incorrectly on some systems, since pax format re‐ + quires UTF-8 and libarchive 2 incorrectly assumed that wchar_t strings can be easily converted to UTF-8. Libarchive3 uses the standard iconv library to convert between character - sets and is introducing the notion of a ``default character set for the - archive''. To support this, archive_entry objects can now be bound to a + sets and is introducing the notion of a “default character set for the + archive”. To support this, archive_entry objects can now be bound to a particular archive when they are created. The automatic character set conversions performed by archive_entry objects when reading and writing - filenames, usernames, and other strings will now use an appropriate - default character set: + filenames, usernames, and other strings will now use an appropriate de‐ + fault character set: - If the archive_entry object is bound to an archive, it will use the - default character set for that archive. + If the archive_entry object is bound to an archive, it will use the de‐ + fault character set for that archive. The platform default character encoding (as returned by nl_langinfo(CHARSET)) will be used if nothing else is specified. - Libarchive3 also introduces charset options to many of the archive read- - ers and writers to control the character set that will be used for file- - names written in those archives. When possible, this will be set auto- + Libarchive3 also introduces charset options to many of the archive read‐ + ers and writers to control the character set that will be used for file‐ + names written in those archives. When possible, this will be set auto‐ matically based on information in the archive itself. Combining this with the notion of a default character set for the archive should allow you to configure libarchive to read archives from other platforms and @@ -54,13 +54,13 @@ CHANGES IN LIBARCHIVE 3 There are a few cases where these changes will affect your source code: - o In some cases, libarchive's wider types will introduce the possibil- + • In some cases, libarchive's wider types will introduce the possibil‐ ity of truncation: for example, on a system with a 16-bit uid_t, you risk having uid 65536 be truncated to uid 0, which can cause serious security problems. - o Typedef function pointer types will be incompatible. For example, - if you define custom skip callbacks, you may have to use code simi- + • Typedef function pointer types will be incompatible. For example, + if you define custom skip callbacks, you may have to use code simi‐ lar to the following if you want to support building against libarchive2 and libarchive3: @@ -78,19 +78,19 @@ CHANGES IN LIBARCHIVE 3 Affected functions: - o archive_entry_gid(), archive_entry_set_gid() - o archive_entry_uid(), archive_entry_set_uid() - o archive_entry_ino(), archive_entry_set_ino() - o archive_read_data_block(), archive_write_data_block() - o archive_read_disk_gname(), archive_read_disk_uname() - o archive_read_disk_set_gname_lookup(), + • archive_entry_gid(), archive_entry_set_gid() + • archive_entry_uid(), archive_entry_set_uid() + • archive_entry_ino(), archive_entry_set_ino() + • archive_read_data_block(), archive_write_data_block() + • archive_read_disk_gname(), archive_read_disk_uname() + • archive_read_disk_set_gname_lookup(), archive_read_disk_set_group_lookup(), archive_read_disk_set_uname_lookup(), archive_read_disk_set_user_lookup() - o archive_skip_callback() - o archive_read_extract_set_skip_file(), + • archive_skip_callback() + • archive_read_extract_set_skip_file(), archive_write_disk_set_skip_file(), archive_write_set_skip_file() - o archive_write_disk_set_group_lookup(), + • archive_write_disk_set_group_lookup(), archive_write_disk_set_user_lookup() Where these functions or their arguments took or returned gid_t, ino_t, diff --git a/dependencies/libarchive-3.4.2/doc/text/libarchive_internals.3.txt b/dependencies/libarchive-3.5.2/doc/text/libarchive_internals.3.txt similarity index 93% rename from dependencies/libarchive-3.4.2/doc/text/libarchive_internals.3.txt rename to dependencies/libarchive-3.5.2/doc/text/libarchive_internals.3.txt index e58faae..d649ab8 100644 --- a/dependencies/libarchive-3.4.2/doc/text/libarchive_internals.3.txt +++ b/dependencies/libarchive-3.5.2/doc/text/libarchive_internals.3.txt @@ -1,12 +1,12 @@ LIBARCHIVE_INTERNALS(3) BSD Library Functions Manual LIBARCHIVE_INTERNALS(3) NAME - libarchive_internals -- description of libarchive internal interfaces + libarchive_internals — description of libarchive internal interfaces OVERVIEW The libarchive library provides a flexible interface for reading and writing streaming archive files such as tar and cpio. Internally, it - follows a modular layered design that should make it easy to add new ar- + follows a modular layered design that should make it easy to add new ar‐ chive and compression formats. GENERAL ARCHITECTURE @@ -17,7 +17,7 @@ GENERAL ARCHITECTURE files, and write them to disk. (There are plans to add a facility to read archive_entry(3) objects from disk as well.) - The read and write APIs each have four layers: a public API layer, a for- + The read and write APIs each have four layers: a public API layer, a for‐ mat layer that understands the archive file format, a compression layer, and an I/O layer. The I/O layer is completely exposed to clients who can replace it entirely with their own functions. @@ -29,24 +29,24 @@ GENERAL ARCHITECTURE READ ARCHITECTURE From the outside, clients use the archive_read(3) API to manipulate an - archive object to read entries and bodies from an archive stream. Inter- + archive object to read entries and bodies from an archive stream. Inter‐ nally, the archive object is cast to an archive_read object, which holds all read-specific data. The API has four layers: The lowest layer is the I/O layer. This layer can be overridden by clients, but most clients use the packaged I/O callbacks provided, for example, by - archive_read_open_memory(3), and archive_read_open_fd(3). The compres- + archive_read_open_memory(3), and archive_read_open_fd(3). The compres‐ sion layer calls the I/O layer to read bytes and decompresses them for the format layer. The format layer unpacks a stream of uncompressed bytes and creates archive_entry objects from the incoming data. The API layer tracks overall state (for example, it prevents clients from reading data before reading a header) and invokes the format and compression layer operations through registered function pointers. In particular, - the API layer drives the format-detection process: When opening the ar- + the API layer drives the format-detection process: When opening the ar‐ chive, it reads an initial block of data and offers it to each registered compression handler. The one with the highest bid is initialized with the first block. Similarly, the format handlers are polled to see which - handler is the best for each archive. (Prior to 2.4.0, the format bid- - ders were invoked for each entry, but this design hindered error recov- + handler is the best for each archive. (Prior to 2.4.0, the format bid‐ + ders were invoked for each entry, but this design hindered error recov‐ ery.) I/O Layer and Client Callbacks @@ -61,7 +61,7 @@ READ ARCHITECTURE The client skip callback returns the number of bytes actually skipped, which may be much smaller than the skip requested. The only requirement is that the skip not be larger. In particular, clients are allowed to - return zero for any skip that they don't want to handle. The skip call- + return zero for any skip that they don't want to handle. The skip call‐ back must never be invoked with a negative value. Keep in mind that not all clients are reading from disk: clients reading @@ -73,10 +73,10 @@ READ ARCHITECTURE Decompresssion Layer The decompression layer not only handles decompression, it also buffers - data so that the format handlers see a much nicer I/O model. The decom- + data so that the format handlers see a much nicer I/O model. The decom‐ pression API is a two stage peek/consume model. A read_ahead request specifies a minimum read amount; the decompression layer must provide a - pointer to at least that much data. If more data is immediately avail- + pointer to at least that much data. If more data is immediately avail‐ able, it should return more: the format layer handles bulk data reads by asking for a minimum of one byte and then copying as much data as is available. @@ -92,28 +92,28 @@ READ ARCHITECTURE A decompression handler has a specific lifecycle: Registration/Configuration - When the client invokes the public support function, the decom- + When the client invokes the public support function, the decom‐ pression handler invokes the internal __archive_read_register_compression() function to provide bid and initialization functions. This function returns NULL on error or - else a pointer to a struct decompressor_t. This structure con- - tains a void * config slot that can be used for storing any cus- + else a pointer to a struct decompressor_t. This structure con‐ + tains a void * config slot that can be used for storing any cus‐ tomization information. Bid The bid function is invoked with a pointer and size of a block of data. The decompressor can access its config data through the - decompressor element of the archive_read object. The bid func- + decompressor element of the archive_read object. The bid func‐ tion is otherwise stateless. In particular, it must not perform any I/O operations. The value returned by the bid function indicates its suitability for handling this data stream. A bid of zero will ensure that this decompressor is never invoked. Return zero if magic number - checks fail. Otherwise, your initial implementation should - return the number of bits actually checked. For example, if you + checks fail. Otherwise, your initial implementation should re‐ + turn the number of bits actually checked. For example, if you verify two full bytes and three bits of another byte, bid 19. Note that the initial block may be very short; be careful to only - inspect the data you are given. (The current decompressors - require two bytes for correct bidding.) + inspect the data you are given. (The current decompressors re‐ + quire two bytes for correct bidding.) Initialize The winning bidder will have its init function called. This function should initialize the remaining slots of the struct @@ -139,9 +139,9 @@ READ ARCHITECTURE Bid Formats bid by invoking the read_ahead() decompression method but not calling the consume() method. This allows each bidder to look ahead in the input stream. Bidders should not look further - ahead than necessary, as long look aheads put pressure on the - decompression layer to buffer lots of data. Most formats only - require a few hundred bytes of look ahead; look aheads of a few + ahead than necessary, as long look aheads put pressure on the de‐ + compression layer to buffer lots of data. Most formats only re‐ + quire a few hundred bytes of look ahead; look aheads of a few kilobytes are reasonable. (The ISO9660 reader sometimes looks ahead by 48k, which should be considered an upper limit.) Read header @@ -158,7 +158,7 @@ READ ARCHITECTURE The read data interface supports sparse files; this requires that each call return a block of data specifying the file offset and size. This may require you to carefully track the location so - that you can return accurate file offsets for each read. Remem- + that you can return accurate file offsets for each read. Remem‐ ber that the decompressor will return as much data as it has. Generally, you will want to request one byte, examine the return value to see how much data is available, and possibly trim that @@ -166,11 +166,11 @@ READ ARCHITECTURE block just before you return it. Skip All Data The skip data call should skip over all file data and trailing - padding. This is called automatically by the API layer just - before each header read. It is also called in response to the + padding. This is called automatically by the API layer just be‐ + fore each header read. It is also called in response to the client calling the public data_skip() function. Cleanup - On cleanup, the format should release all of its allocated mem- + On cleanup, the format should release all of its allocated mem‐ ory. API Layer @@ -179,7 +179,7 @@ READ ARCHITECTURE WRITE ARCHITECTURE The write API has a similar set of four layers: an API layer, a format layer, a compression layer, and an I/O layer. The registration here is - much simpler because only one format and one compression can be regis- + much simpler because only one format and one compression can be regis‐ tered at a time. I/O Layer and Client Callbacks @@ -200,13 +200,13 @@ WRITE_DISK ARCHITECTURE not layered internally. GENERAL SERVICES - The archive_read, archive_write, and archive_write_disk objects all con- + The archive_read, archive_write, and archive_write_disk objects all con‐ tain an initial archive object which provides common support for a set of standard services. (Recall that ANSI/ISO C90 guarantees that you can cast freely between a pointer to a structure and a pointer to the first element of that structure.) The archive object has a magic value that - indicates which API this object is associated with, slots for storing - error information, and function pointers for virtualized API functions. + indicates which API this object is associated with, slots for storing er‐ + ror information, and function pointers for virtualized API functions. MISCELLANEOUS NOTES Connecting existing archiving libraries into libarchive is generally @@ -217,12 +217,12 @@ MISCELLANEOUS NOTES very different approaches. For example, libarchive's ISO9660 support operates very differently from - most ISO9660 readers. The libarchive support utilizes a work-queue - design that keeps a list of known entries sorted by their location in the + most ISO9660 readers. The libarchive support utilizes a work-queue de‐ + sign that keeps a list of known entries sorted by their location in the input. Whenever libarchive's ISO9660 implementation is asked for the - next header, checks this list to find the next item on the disk. Direc- + next header, checks this list to find the next item on the disk. Direc‐ tories are parsed when they are encountered and new items are added to - the list. This design relies heavily on the ISO9660 image being opti- + the list. This design relies heavily on the ISO9660 image being opti‐ mized so that directories always occur earlier on the disk than the files they describe. diff --git a/dependencies/libarchive-3.4.2/doc/text/mtree.5.txt b/dependencies/libarchive-3.5.2/doc/text/mtree.5.txt similarity index 77% rename from dependencies/libarchive-3.4.2/doc/text/mtree.5.txt rename to dependencies/libarchive-3.5.2/doc/text/mtree.5.txt index f4558d5..f9e309f 100644 --- a/dependencies/libarchive-3.4.2/doc/text/mtree.5.txt +++ b/dependencies/libarchive-3.5.2/doc/text/mtree.5.txt @@ -1,7 +1,7 @@ MTREE(5) BSD File Formats Manual MTREE(5) NAME - mtree -- format of mtree dir hierarchy files + mtree — format of mtree dir hierarchy files DESCRIPTION The mtree format is a textual format that describes a collection of @@ -13,9 +13,9 @@ DESCRIPTION about a single filesystem object. Leading whitespace is always ignored. When encoding file or pathnames, any backslash character or character - outside of the 95 printable ASCII characters must be encoded as a back- - slash followed by three octal digits. When reading mtree files, any - appearance of a backslash followed by three octal digits should be con- + outside of the 95 printable ASCII characters must be encoded as a back‐ + slash followed by three octal digits. When reading mtree files, any ap‐ + pearance of a backslash followed by three octal digits should be con‐ verted into the corresponding character. Each line is interpreted independently as one of the following types: @@ -28,23 +28,23 @@ DESCRIPTION the interpretation of later lines. Relative If the first whitespace-delimited word has no / characters, - it is the name of a file in the current directory. Any rela- - tive entry that describes a directory changes the current - directory. + it is the name of a file in the current directory. Any rela‐ + tive entry that describes a directory changes the current di‐ + rectory. dot-dot As a special case, a relative entry with the filename .. - changes the current directory to the parent directory. - Options on dot-dot entries are always ignored. + changes the current directory to the parent directory. Op‐ + tions on dot-dot entries are always ignored. - Full If the first whitespace-delimited word has a / character - after the first character, it is the pathname of a file rela- + Full If the first whitespace-delimited word has a / character af‐ + ter the first character, it is the pathname of a file rela‐ tive to the starting directory. There can be multiple full entries describing the same file. - Some tools that process mtree files may require that multiple lines - describing the same file occur consecutively. It is not permitted for - the same file to be mentioned using both a relative and a full file spec- - ification. + Some tools that process mtree files may require that multiple lines de‐ + scribing the same file occur consecutively. It is not permitted for the + same file to be mentioned using both a relative and a full file specifi‐ + cation. Special commands Two special commands are currently defined: @@ -52,23 +52,23 @@ DESCRIPTION /set This command defines default values for one or more keywords. It is followed on the same line by one or more whitespace- separated keyword definitions. These definitions apply to - all following files that do not specify a value for that key- + all following files that do not specify a value for that key‐ word. /unset This command removes any default value set by a previous /set - command. It is followed on the same line by one or more key- + command. It is followed on the same line by one or more key‐ words separated by whitespace. Keywords After the filename, a full or relative entry consists of zero or more whitespace-separated keyword definitions. Each such definition consists of a key from the following list immediately followed by an '=' sign and - a value. Software programs reading mtree files should warn about unrec- + a value. Software programs reading mtree files should warn about unrec‐ ognized keywords. Currently supported keywords are as follows: - cksum The checksum of the file using the default algorithm speci- + cksum The checksum of the file using the default algorithm speci‐ fied by the cksum(1) utility. device The device number for block or char file types. The value @@ -91,9 +91,9 @@ DESCRIPTION contents The full pathname of a file that holds the contents of this file. - flags The file flags as a symbolic name. See chflags(1) for infor- + flags The file flags as a symbolic name. See chflags(1) for infor‐ mation on these names. If no flags are to be set the string - ``none'' may be used to override the current default. + “none” may be used to override the current default. gid The file group as a numeric value. @@ -109,7 +109,7 @@ DESCRIPTION md5digest A synonym for md5. - mode The current file's permissions as a numeric (octal) or sym- + mode The current file's permissions as a numeric (octal) or sym‐ bolic value. nlink The number of hard links the file is expected to have. @@ -120,9 +120,9 @@ DESCRIPTION optional The file is optional; do not complain about the file if it is not in the file hierarchy. - resdevice The ``resident'' device number of the file, e.g. the ID of - the device that contains the file. Its format is the same as - the one for device. + resdevice The “resident” device number of the file, e.g. the ID of the + device that contains the file. Its format is the same as the + one for device. ripemd160digest The RIPEMD160 message digest of the file. @@ -132,21 +132,21 @@ DESCRIPTION rmd160digest A synonym for ripemd160digest. - sha1 The FIPS 160-1 (``SHA-1'') message digest of the file. + sha1 The FIPS 160-1 (“SHA-1”) message digest of the file. sha1digest A synonym for sha1. - sha256 The FIPS 180-2 (``SHA-256'') message digest of the file. + sha256 The FIPS 180-2 (“SHA-256”) message digest of the file. sha256digest A synonym for sha256. - sha384 The FIPS 180-2 (``SHA-384'') message digest of the file. + sha384 The FIPS 180-2 (“SHA-384”) message digest of the file. sha384digest A synonym for sha384. - sha512 The FIPS 180-2 (``SHA-512'') message digest of the file. + sha512 The FIPS 180-2 (“SHA-512”) message digest of the file. sha512digest A synonym for sha512. @@ -178,7 +178,7 @@ HISTORY can spoof cksum(1). The SHA-1 and RIPEMD160 digests were added in FreeBSD 4.0, as new attacks have demonstrated weaknesses in MD5. The SHA-256 digest was added in FreeBSD 6.0. Support for file flags was - added in FreeBSD 4.0, and mostly comes from NetBSD. The ``full'' entry + added in FreeBSD 4.0, and mostly comes from NetBSD. The “full” entry format was added by NetBSD. BSD September 4, 2013 BSD diff --git a/dependencies/libarchive-3.4.2/doc/text/tar.5.txt b/dependencies/libarchive-3.5.2/doc/text/tar.5.txt similarity index 73% rename from dependencies/libarchive-3.4.2/doc/text/tar.5.txt rename to dependencies/libarchive-3.5.2/doc/text/tar.5.txt index 6d3c762..72aaee1 100644 --- a/dependencies/libarchive-3.4.2/doc/text/tar.5.txt +++ b/dependencies/libarchive-3.5.2/doc/text/tar.5.txt @@ -1,7 +1,7 @@ TAR(5) BSD File Formats Manual TAR(5) NAME - tar -- format of tape archive files + tar — format of tape archive files DESCRIPTION The tar archive format collects any number of files, directories, and @@ -14,19 +14,18 @@ DESCRIPTION A tar archive consists of a series of 512-byte records. Each file system object requires a header record which stores basic metadata (pathname, owner, permissions, etc.) and zero or more records containing any file - data. The end of the archive is indicated by two records consisting - entirely of zero bytes. + data. The end of the archive is indicated by two records consisting en‐ + tirely of zero bytes. For compatibility with tape drives that use fixed block sizes, programs that read or write tar files always read or write a fixed number of - records with each I/O operation. These ``blocks'' are always a multiple - of the record size. The maximum block size supported by early implemen- - tations was 10240 bytes or 20 records. This is still the default for - most implementations although block sizes of 1MiB (2048 records) or - larger are commonly used with modern high-speed tape drives. (Note: the - terms ``block'' and ``record'' here are not entirely standard; this docu- - ment follows the convention established by John Gilmore in documenting - pdtar.) + records with each I/O operation. These “blocks” are always a multiple of + the record size. The maximum block size supported by early implementa‐ + tions was 10240 bytes or 20 records. This is still the default for most + implementations although block sizes of 1MiB (2048 records) or larger are + commonly used with modern high-speed tape drives. (Note: the terms + “block” and “record” here are not entirely standard; this document fol‐ + lows the convention established by John Gilmore in documenting pdtar.) Old-Style Archive Format The original tar archive format has been extended many times to include @@ -51,10 +50,10 @@ DESCRIPTION }; All unused bytes in the header record are filled with nulls. - name Pathname, stored as a null-terminated string. Early tar imple- + name Pathname, stored as a null-terminated string. Early tar imple‐ mentations only stored regular files (including hardlinks to those files). One common early convention used a trailing "/" - character to indicate a directory name, allowing directory per- + character to indicate a directory name, allowing directory per‐ missions and owner information to be archived and restored. mode File mode, stored as an octal number in ASCII. @@ -68,8 +67,8 @@ DESCRIPTION when extracting hardlinks. Modern writers should always store a zero length for hardlink entries. - mtime Modification time of file, as an octal number in ASCII. This - indicates the number of seconds since the start of the epoch, + mtime Modification time of file, as an octal number in ASCII. This in‐ + dicates the number of seconds since the start of the epoch, 00:00:00 UTC January 1, 1970. Note that negative values should be avoided here, as they are handled inconsistently. @@ -79,7 +78,7 @@ DESCRIPTION bytes in the header using unsigned arithmetic. This field should be stored as six octal digits followed by a null and a space character. Note that many early implementations of tar used - signed arithmetic for the checksum field, which can cause inter- + signed arithmetic for the checksum field, which can cause inter‐ operability problems when transferring archives between systems. Modern robust readers compute the checksum both ways and accept the header if either computation matches. @@ -88,7 +87,7 @@ DESCRIPTION In order to preserve hardlinks and conserve tape, a file with multiple links is only written to the archive the first time it is encountered. The next time it is encountered, the linkflag is - set to an ASCII '1' and the linkname field holds the first name + set to an ASCII ‘1’ and the linkname field holds the first name under which this file appears. (Note that regular files have a null value in the linkflag field.) @@ -97,30 +96,30 @@ DESCRIPTION (this is also documented in early BSD manpages): the pathname must be null-terminated; the mode, uid, and gid fields must end in a space and a null byte; the size and mtime fields must end in a space; the checksum is - terminated by a null and a space. Early implementations filled the - numeric fields with leading spaces. This seems to have been common prac- - tice until the IEEE Std 1003.1-1988 (``POSIX.1'') standard was released. + terminated by a null and a space. Early implementations filled the nu‐ + meric fields with leading spaces. This seems to have been common prac‐ + tice until the IEEE Std 1003.1-1988 (“POSIX.1”) standard was released. For best portability, modern implementations should fill the numeric fields with leading zeros. Pre-POSIX Archives - An early draft of IEEE Std 1003.1-1988 (``POSIX.1'') served as the basis + An early draft of IEEE Std 1003.1-1988 (“POSIX.1”) served as the basis for John Gilmore's pdtar program and many system implementations from the late 1980s and early 1990s. These archives generally follow the POSIX ustar format described below with the following variations: - o The magic value consists of the five characters ``ustar'' fol- - lowed by a space. The version field contains a space character - followed by a null. - o The numeric fields are generally filled with leading spaces (not + • The magic value consists of the five characters “ustar” followed + by a space. The version field contains a space character fol‐ + lowed by a null. + • The numeric fields are generally filled with leading spaces (not leading zeros as recommended in the final standard). - o The prefix field is often not used, limiting pathnames to the 100 + • The prefix field is often not used, limiting pathnames to the 100 characters of old-style archives. POSIX ustar Archives - IEEE Std 1003.1-1988 (``POSIX.1'') defined a standard tar file format to - be read and written by compliant implementations of tar(1). This format - is often called the ``ustar'' format, after the magic value used in the - header. (The name is an acronym for ``Unix Standard TAR''.) It extends + IEEE Std 1003.1-1988 (“POSIX.1”) defined a standard tar file format to be + read and written by compliant implementations of tar(1). This format is + often called the “ustar” format, after the magic value used in the + header. (The name is an acronym for “Unix Standard TAR”.) It extends the historic format with new fields: struct header_posix_ustar { @@ -146,36 +145,36 @@ DESCRIPTION typeflag Type of entry. POSIX extended the earlier linkflag field with several new type values: - ``0'' Regular file. NUL should be treated as a synonym, for + “0” Regular file. NUL should be treated as a synonym, for compatibility purposes. - ``1'' Hard link. - ``2'' Symbolic link. - ``3'' Character device node. - ``4'' Block device node. - ``5'' Directory. - ``6'' FIFO node. - ``7'' Reserved. - Other A POSIX-compliant implementation must treat any unrecog- + “1” Hard link. + “2” Symbolic link. + “3” Character device node. + “4” Block device node. + “5” Directory. + “6” FIFO node. + “7” Reserved. + Other A POSIX-compliant implementation must treat any unrecog‐ nized typeflag value as a regular file. In particular, - writers should ensure that all entries have a valid file- + writers should ensure that all entries have a valid file‐ name so that they can be restored by readers that do not support the corresponding extension. Uppercase letters "A" through "Z" are reserved for custom extensions. Note that sockets and whiteout entries are not archivable. - It is worth noting that the size field, in particular, has dif- + It is worth noting that the size field, in particular, has dif‐ ferent meanings depending on the type. For regular files, of course, it indicates the amount of data following the header. For directories, it may be used to indicate the total size of all - files in the directory, for use by operating systems that pre- - allocate directory space. For all other types, it should be set - to zero by writers and ignored by readers. + files in the directory, for use by operating systems that pre-al‐ + locate directory space. For all other types, it should be set to + zero by writers and ignored by readers. - magic Contains the magic value ``ustar'' followed by a NUL byte to - indicate that this is a POSIX standard archive. Full compliance - requires the uname and gname fields be properly set. + magic Contains the magic value “ustar” followed by a NUL byte to indi‐ + cate that this is a POSIX standard archive. Full compliance re‐ + quires the uname and gname fields be properly set. version - Version. This should be ``00'' (two copies of the ASCII digit + Version. This should be “00” (two copies of the ASCII digit zero) for POSIX standard archives. uname, gname @@ -184,8 +183,8 @@ DESCRIPTION set and the corresponding names exist on the system. devmajor, devminor - Major and minor numbers for character device or block device - entry. + Major and minor numbers for character device or block device en‐ + try. name, prefix If the pathname is too long to fit in the 100 bytes provided by @@ -194,12 +193,12 @@ DESCRIPTION is not empty, the reader will prepend the prefix value and a / character to the regular name field to obtain the full pathname. The standard does not require a trailing / character on directory - names, though most implementations still include this for compat- + names, though most implementations still include this for compat‐ ibility reasons. Note that all unused bytes must be set to NUL. - Field termination is specified slightly differently by POSIX than by pre- + Field termination is specified slightly differently by POSIX than by pre‐ vious implementations. The magic, uname, and gname fields must have a trailing NUL. The pathname, linkname, and prefix fields must have a trailing NUL unless they fill the entire field. (In particular, it is @@ -208,7 +207,7 @@ DESCRIPTION the front, and requires them to be terminated with either space or NUL characters. - Currently, most tar implementations comply with the ustar format, occa- + Currently, most tar implementations comply with the ustar format, occa‐ sionally extending it by adding new fields to the blank area at the end of the header record. @@ -222,37 +221,37 @@ DESCRIPTION the twelfth byte for a trailing NUL character. Allowing 12 octal digits allows file sizes up to 64 GB. - Another extension, utilized by GNU tar, star, and other newer tar imple- + Another extension, utilized by GNU tar, star, and other newer tar imple‐ mentations, permits binary numbers in the standard numeric fields. This is flagged by setting the high bit of the first byte. The remainder of the field is treated as a signed twos-complement value. This permits 95-bit values for the length and time fields and 63-bit values for the uid, gid, and device numbers. In particular, this provides a consistent way to handle negative time values. GNU tar supports this extension for - the length, mtime, ctime, and atime fields. Joerg Schilling's star pro- + the length, mtime, ctime, and atime fields. Joerg Schilling's star pro‐ gram and the libarchive library support this extension for all numeric fields. Note that this extension is largely obsoleted by the extended attribute record provided by the pax interchange format. Another early GNU extension allowed base-64 values rather than octal. - This extension was short-lived and is no longer supported by any imple- + This extension was short-lived and is no longer supported by any imple‐ mentation. Pax Interchange Format There are many attributes that cannot be portably stored in a POSIX ustar - archive. IEEE Std 1003.1-2001 (``POSIX.1'') defined a ``pax interchange - format'' that uses two new types of entries to hold text-formatted meta- - data that applies to following entries. Note that a pax interchange for- + archive. IEEE Std 1003.1-2001 (“POSIX.1”) defined a “pax interchange + format” that uses two new types of entries to hold text-formatted meta‐ + data that applies to following entries. Note that a pax interchange for‐ mat archive is a ustar archive in every respect. The new data is stored - in ustar-compatible archive entries that use the ``x'' or ``g'' typeflag. - In particular, older implementations that do not fully support these - extensions will extract the metadata into regular files, where the meta- - data can be examined as necessary. + in ustar-compatible archive entries that use the “x” or “g” typeflag. In + particular, older implementations that do not fully support these exten‐ + sions will extract the metadata into regular files, where the metadata + can be examined as necessary. - An entry in a pax interchange format archive consists of one or two stan- - dard ustar entries, each with its own header and data. The first - optional entry stores the extended attributes for the following entry. - This optional first entry has an "x" typeflag and a size field that indi- + An entry in a pax interchange format archive consists of one or two stan‐ + dard ustar entries, each with its own header and data. The first op‐ + tional entry stores the extended attributes for the following entry. + This optional first entry has an "x" typeflag and a size field that indi‐ cates the total size of the extended attributes. The extended attributes themselves are stored as a series of text-format lines encoded in the portable UTF-8 encoding. Each line consists of a decimal number, a @@ -263,7 +262,7 @@ DESCRIPTION 25 ctime=1084839148.1212\n Keys in all lowercase are standard keys. Vendors can add their own keys by prefixing them with an all uppercase vendor name and a period. Note - that, unlike the historic header, numeric values are stored using deci- + that, unlike the historic header, numeric values are stored using deci‐ mal, not octal. A description of some common keys follows: atime, ctime, mtime @@ -277,13 +276,13 @@ DESCRIPTION be in UTF-8, including pathnames, user names, and group names. In some cases, it is not possible to translate local conventions into UTF-8. If this key is present and the value is the six- - character ASCII string ``BINARY'', then all textual values are - assumed to be in a platform-dependent multi-byte encoding. Note - that there are only two valid values for this key: ``BINARY'' or - ``ISO-IR 10646 2000 UTF-8''. No other values are permitted by - the standard, and the latter value should generally not be used - as it is the default when this key is not specified. In particu- - lar, this flag should not be used as a general mechanism to allow + character ASCII string “BINARY”, then all textual values are as‐ + sumed to be in a platform-dependent multi-byte encoding. Note + that there are only two valid values for this key: “BINARY” or + “ISO-IR 10646 2000 UTF-8”. No other values are permitted by the + standard, and the latter value should generally not be used as it + is the default when this key is not specified. In particular, + this flag should not be used as a general mechanism to allow filenames to be stored in arbitrary encodings. uname, uid, gname, gid @@ -300,7 +299,7 @@ DESCRIPTION UTF8 and can thus include non-ASCII characters. realtime.*, security.* - These keys are reserved and may be used for future standardiza- + These keys are reserved and may be used for future standardiza‐ tion. size The size of the file. Note that there is no length limit on this @@ -308,7 +307,7 @@ DESCRIPTION than the historic 8GB limit. SCHILY.* - Vendor-specific attributes used by Joerg Schilling's star imple- + Vendor-specific attributes used by Joerg Schilling's star imple‐ mentation. SCHILY.acl.access, SCHILY.acl.default, SCHILY.acl.ace @@ -341,35 +340,35 @@ DESCRIPTION LIBARCHIVE.creationtime The time when the file was created. (This should not be confused - with the POSIX ``ctime'' attribute, which refers to the time when + with the POSIX “ctime” attribute, which refers to the time when the file metadata was last changed.) LIBARCHIVE.xattr.namespace.key Libarchive stores POSIX.1e-style extended attributes using keys - of this form. The key value is URL-encoded: All non-ASCII char- - acters and the two special characters ``='' and ``%'' are encoded - as ``%'' followed by two uppercase hexadecimal digits. The value - of this key is the extended attribute value encoded in base 64. - XXX Detail the base-64 format here XXX + of this form. The key value is URL-encoded: All non-ASCII char‐ + acters and the two special characters “=” and “%” are encoded as + “%” followed by two uppercase hexadecimal digits. The value of + this key is the extended attribute value encoded in base 64. XXX + Detail the base-64 format here XXX VENDOR.* XXX document other vendor-specific extensions XXX Any values stored in an extended attribute override the corresponding - values in the regular tar header. Note that compliant readers should - ignore the regular fields when they are overridden. This is important, - as existing archivers are known to store non-compliant values in the - standard header fields in this situation. There are no limits on length - for any of these fields. In particular, numeric fields can be arbitrar- - ily large. All text fields are encoded in UTF8. Compliant writers - should store only portable 7-bit ASCII characters in the standard ustar - header and use extended attributes whenever a text value contains non- - ASCII characters. + values in the regular tar header. Note that compliant readers should ig‐ + nore the regular fields when they are overridden. This is important, as + existing archivers are known to store non-compliant values in the stan‐ + dard header fields in this situation. There are no limits on length for + any of these fields. In particular, numeric fields can be arbitrarily + large. All text fields are encoded in UTF8. Compliant writers should + store only portable 7-bit ASCII characters in the standard ustar header + and use extended attributes whenever a text value contains non-ASCII + characters. In addition to the x entry described above, the pax interchange format - also supports a g entry. The g entry is identical in format, but speci- - fies attributes that serve as defaults for all subsequent archive - entries. The g entry is not widely used. + also supports a g entry. The g entry is identical in format, but speci‐ + fies attributes that serve as defaults for all subsequent archive en‐ + tries. The g entry is not widely used. Besides the new x and g entries, the pax interchange format has a few other minor variations from the earlier ustar format. The most troubling @@ -380,16 +379,16 @@ DESCRIPTION ignore the size field for hardlink entries. GNU Tar Archives - The GNU tar program started with a pre-POSIX format similar to that - described earlier and has extended it using several different mechanisms: + The GNU tar program started with a pre-POSIX format similar to that de‐ + scribed earlier and has extended it using several different mechanisms: It added new fields to the empty space in the header (some of which was later used by POSIX for conflicting purposes); it allowed the header to - be continued over multiple records; and it defined new entries that mod- + be continued over multiple records; and it defined new entries that mod‐ ify following entries (similar in principle to the x entry described above, but each GNU special entry is single-purpose, unlike the general- - purpose x entry). As a result, GNU tar archives are not POSIX compati- - ble, although more lenient POSIX-compliant readers can successfully - extract most GNU tar archives. + purpose x entry). As a result, GNU tar archives are not POSIX compati‐ + ble, although more lenient POSIX-compliant readers can successfully ex‐ + tract most GNU tar archives. struct header_gnu_tar { char name[100]; @@ -430,17 +429,17 @@ DESCRIPTION to indicate the pre-allocation of a contiguous file on disk. - D This indicates a directory entry. Unlike the POSIX-stan- + D This indicates a directory entry. Unlike the POSIX-stan‐ dard "5" typeflag, the header is followed by data records listing the names of files in this directory. Each name is preceded by an ASCII "Y" if the file is stored in this archive or "N" if the file is not stored in this archive. Each name is terminated with a null, and an extra null - marks the end of the name list. The purpose of this - entry is to support incremental backups; a program - restoring from such an archive may wish to delete files - on disk that did not exist in the directory when the ar- - chive was made. + marks the end of the name list. The purpose of this en‐ + try is to support incremental backups; a program restor‐ + ing from such an archive may wish to delete files on disk + that did not exist in the directory when the archive was + made. Note that the "D" typeflag specifically violates POSIX, which requires that unrecognized typeflags be restored as @@ -448,58 +447,58 @@ DESCRIPTION file could interfere with subsequent creation of the like-named directory. - K The data for this entry is a long linkname for the fol- + K The data for this entry is a long linkname for the fol‐ lowing regular entry. - L The data for this entry is a long pathname for the fol- + L The data for this entry is a long pathname for the fol‐ lowing regular entry. M This is a continuation of the last file on the previous volume. GNU multi-volume archives guarantee that each volume begins with a valid entry header. To ensure this, a file may be split, with part stored at the end of one - volume, and part stored at the beginning of the next vol- - ume. The "M" typeflag indicates that this entry contin- + volume, and part stored at the beginning of the next vol‐ + ume. The "M" typeflag indicates that this entry contin‐ ues an existing file. Such entries can only occur as the first or second entry in an archive (the latter only if - the first entry is a volume label). The size field spec- + the first entry is a volume label). The size field spec‐ ifies the size of this entry. The offset field at bytes - 369-380 specifies the offset where this file fragment - begins. The realsize field specifies the total size of - the file (which must equal size plus offset). When - extracting, GNU tar checks that the header file name is - the one it is expecting, that the header offset is in the - correct sequence, and that the sum of offset and size is - equal to realsize. + 369-380 specifies the offset where this file fragment be‐ + gins. The realsize field specifies the total size of the + file (which must equal size plus offset). When extract‐ + ing, GNU tar checks that the header file name is the one + it is expecting, that the header offset is in the correct + sequence, and that the sum of offset and size is equal to + realsize. N Type "N" records are no longer generated by GNU tar. They contained a list of files to be renamed or symlinked after extraction; this was originally used to support - long names. The contents of this record are a text - description of the operations to be done, in the form - ``Rename %s to %s\n'' or ``Symlink %s to %s\n''; in - either case, both filenames are escaped using K&R C syn- - tax. Due to security concerns, "N" records are now gen- - erally ignored when reading archives. + long names. The contents of this record are a text de‐ + scription of the operations to be done, in the form + “Rename %s to %s\n” or “Symlink %s to %s\n”; in either + case, both filenames are escaped using K&R C syntax. Due + to security concerns, "N" records are now generally ig‐ + nored when reading archives. - S This is a ``sparse'' regular file. Sparse files are - stored as a series of fragments. The header contains a - list of fragment offset/length pairs. If more than four - such entries are required, the header is extended as nec- - essary with ``extra'' header extensions (an older format - that is no longer used), or ``sparse'' extensions. + S This is a “sparse” regular file. Sparse files are stored + as a series of fragments. The header contains a list of + fragment offset/length pairs. If more than four such en‐ + tries are required, the header is extended as necessary + with “extra” header extensions (an older format that is + no longer used), or “sparse” extensions. V The name field should be interpreted as a tape/volume header name. This entry should generally be ignored on extraction. - magic The magic field holds the five characters ``ustar'' followed by a + magic The magic field holds the five characters “ustar” followed by a space. Note that POSIX ustar archives have a trailing null. version The version field holds a space character followed by a null. Note that POSIX ustar archives use two copies of the ASCII digit - ``0''. + “0”. atime, ctime The time the file was last accessed and the time of last change @@ -511,15 +510,15 @@ DESCRIPTION Sparse offset / numbytes Each such structure specifies a single fragment of a sparse file. The two fields store values as octal numbers. The fragments are - each padded to a multiple of 512 bytes in the archive. On - extraction, the list of fragments is collected from the header - (including any extension headers), and the data is then read and + each padded to a multiple of 512 bytes in the archive. On ex‐ + traction, the list of fragments is collected from the header (in‐ + cluding any extension headers), and the data is then read and written to the file at appropriate offsets. isextended - If this is set to non-zero, the header will be followed by addi- - tional ``sparse header'' records. Each such record contains - information about as many as 21 additional sparse blocks as shown + If this is set to non-zero, the header will be followed by addi‐ + tional “sparse header” records. Each such record contains infor‐ + mation about as many as 21 additional sparse blocks as shown here: struct gnu_sparse_header { @@ -542,14 +541,14 @@ DESCRIPTION GNU tar pax archives GNU tar 1.14 (XXX check this XXX) and later will write pax interchange format archives when you specify the --posix flag. This format follows - the pax interchange format closely, using some SCHILY tags and introduc- + the pax interchange format closely, using some SCHILY tags and introduc‐ ing new keywords to store sparse file information. There have been three - iterations of the sparse file support, referred to as ``0.0'', ``0.1'', - and ``1.0''. + iterations of the sparse file support, referred to as “0.0”, “0.1”, and + “1.0”. GNU.sparse.numblocks, GNU.sparse.offset, GNU.sparse.numbytes, GNU.sparse.size - The ``0.0'' format used an initial GNU.sparse.numblocks attribute + The “0.0” format used an initial GNU.sparse.numblocks attribute to indicate the number of blocks in the file, a pair of GNU.sparse.offset and GNU.sparse.numbytes to indicate the offset and size of each block, and a single GNU.sparse.size to indicate @@ -561,36 +560,36 @@ DESCRIPTION the standards. GNU.sparse.map - The ``0.1'' format used a single attribute that stored a comma- - separated list of decimal numbers. Each pair of numbers indi- - cated the offset and size, respectively, of a block of data. - This does not work well if the archive is extracted by an - archiver that does not recognize this extension, since many pax - implementations simply discard unrecognized attributes. + The “0.1” format used a single attribute that stored a comma-sep‐ + arated list of decimal numbers. Each pair of numbers indicated + the offset and size, respectively, of a block of data. This does + not work well if the archive is extracted by an archiver that + does not recognize this extension, since many pax implementations + simply discard unrecognized attributes. GNU.sparse.major, GNU.sparse.minor, GNU.sparse.name, GNU.sparse.realsize - The ``1.0'' format stores the sparse block map in one or more + The “1.0” format stores the sparse block map in one or more 512-byte blocks prepended to the file data in the entry body. The pax attributes indicate the existence of this map (via the GNU.sparse.major and GNU.sparse.minor fields) and the full size of the file. The GNU.sparse.name holds the true name of the file. To avoid confusion, the name stored in the regular tar - header is a modified name so that extraction errors will be - apparent to users. + header is a modified name so that extraction errors will be ap‐ + parent to users. Solaris Tar XXX More Details Needed XXX - Solaris tar (beginning with SunOS XXX 5.7 ?? XXX) supports an - ``extended'' format that is fundamentally similar to pax interchange for- - mat, with the following differences: - o Extended attributes are stored in an entry whose type is X, not + Solaris tar (beginning with SunOS XXX 5.7 ?? XXX) supports an “extended” + format that is fundamentally similar to pax interchange format, with the + following differences: + • Extended attributes are stored in an entry whose type is X, not x, as used by pax interchange format. The detailed format of - this entry appears to be the same as detailed above for the x - entry. - o An additional A header is used to store an ACL for the following - regular entry. The body of this entry contains a seven-digit - octal number followed by a zero byte, followed by the textual ACL + this entry appears to be the same as detailed above for the x en‐ + try. + • An additional A header is used to store an ACL for the following + regular entry. The body of this entry contains a seven-digit oc‐ + tal number followed by a zero byte, followed by the textual ACL description. The octal value is the number of ACL entries plus a constant that indicates the ACL type: 01000000 for POSIX.1e ACLs and 03000000 for NFSv4 ACLs. @@ -607,17 +606,17 @@ DESCRIPTION Mac OS X Tar The tar distributed with Apple's Mac OS X stores most regular files as two separate files in the tar archive. The two files have the same name - except that the first one has ``._'' prepended to the last path element. - This special file stores an AppleDouble-encoded binary blob with addi- - tional metadata about the second file, including ACL, extended - attributes, and resources. To recreate the original file on disk, each + except that the first one has “._” prepended to the last path element. + This special file stores an AppleDouble-encoded binary blob with addi‐ + tional metadata about the second file, including ACL, extended at‐ + tributes, and resources. To recreate the original file on disk, each separate file can be extracted and the Mac OS X copyfile() function can be used to unpack the separate metadata file and apply it to th regular - file. Conversely, the same function provides a ``pack'' option to encode + file. Conversely, the same function provides a “pack” option to encode the extended metadata from a file into a separate file whose contents can then be put into a tar archive. - Note that the Apple extended attributes interact badly with long file- + Note that the Apple extended attributes interact badly with long file‐ names. Since each file is stored with the full name, a separate set of extensions needs to be included in the archive for each one, doubling the overhead required for files with long names. @@ -655,11 +654,10 @@ SEE ALSO STANDARDS The tar utility is no longer a part of POSIX or the Single Unix Standard. - It last appeared in Version 2 of the Single UNIX Specification - (``SUSv2''). It has been supplanted in subsequent standards by pax(1). - The ustar format is currently part of the specification for the pax(1) - utility. The pax interchange file format is new with IEEE Std - 1003.1-2001 (``POSIX.1''). + It last appeared in Version 2 of the Single UNIX Specification (“SUSv2”). + It has been supplanted in subsequent standards by pax(1). The ustar for‐ + mat is currently part of the specification for the pax(1) utility. The + pax interchange file format is new with IEEE Std 1003.1-2001 (“POSIX.1”). HISTORY A tar command appeared in Seventh Edition Unix, which was released in diff --git a/dependencies/libarchive-3.4.2/doc/update.sh b/dependencies/libarchive-3.5.2/doc/update.sh similarity index 100% rename from dependencies/libarchive-3.4.2/doc/update.sh rename to dependencies/libarchive-3.5.2/doc/update.sh diff --git a/dependencies/libarchive-3.4.2/doc/wiki/.ignore_me b/dependencies/libarchive-3.5.2/doc/wiki/.ignore_me similarity index 100% rename from dependencies/libarchive-3.4.2/doc/wiki/.ignore_me rename to dependencies/libarchive-3.5.2/doc/wiki/.ignore_me diff --git a/dependencies/libarchive-3.4.2/doc/wiki/Makefile b/dependencies/libarchive-3.5.2/doc/wiki/Makefile similarity index 98% rename from dependencies/libarchive-3.4.2/doc/wiki/Makefile rename to dependencies/libarchive-3.5.2/doc/wiki/Makefile index 0b8cb5d..206afa1 100644 --- a/dependencies/libarchive-3.4.2/doc/wiki/Makefile +++ b/dependencies/libarchive-3.5.2/doc/wiki/Makefile @@ -107,15 +107,15 @@ ManPageArchiveWriteSetPassphrase3.wiki: ../mdoc2wiki.awk ../../libarchive/archiv ManPageCpio5.wiki: ../mdoc2wiki.awk ../../libarchive/cpio.5 awk -f ../mdoc2wiki.awk < ../../libarchive/cpio.5 > ManPageCpio5.wiki -ManPageLibarchiveFormats5.wiki: ../mdoc2wiki.awk ../../libarchive/libarchive-formats.5 - awk -f ../mdoc2wiki.awk < ../../libarchive/libarchive-formats.5 > ManPageLibarchiveFormats5.wiki - ManPageLibarchive3.wiki: ../mdoc2wiki.awk ../../libarchive/libarchive.3 awk -f ../mdoc2wiki.awk < ../../libarchive/libarchive.3 > ManPageLibarchive3.wiki ManPageLibarchiveChanges3.wiki: ../mdoc2wiki.awk ../../libarchive/libarchive_changes.3 awk -f ../mdoc2wiki.awk < ../../libarchive/libarchive_changes.3 > ManPageLibarchiveChanges3.wiki +ManPageLibarchiveFormats5.wiki: ../mdoc2wiki.awk ../../libarchive/libarchive-formats.5 + awk -f ../mdoc2wiki.awk < ../../libarchive/libarchive-formats.5 > ManPageLibarchiveFormats5.wiki + ManPageLibarchiveInternals3.wiki: ../mdoc2wiki.awk ../../libarchive/libarchive_internals.3 awk -f ../mdoc2wiki.awk < ../../libarchive/libarchive_internals.3 > ManPageLibarchiveInternals3.wiki @@ -130,4 +130,4 @@ ManPageBsdtar1.wiki: ../mdoc2wiki.awk ../../tar/bsdtar.1 ManPageBsdcpio1.wiki: ../mdoc2wiki.awk ../../cpio/bsdcpio.1 awk -f ../mdoc2wiki.awk < ../../cpio/bsdcpio.1 > ManPageBsdcpio1.wiki -all: ManPageArchiveEntry3.wiki ManPageArchiveEntryAcl3.wiki ManPageArchiveEntryLinkify3.wiki ManPageArchiveEntryMisc3.wiki ManPageArchiveEntryPaths3.wiki ManPageArchiveEntryPerms3.wiki ManPageArchiveEntryStat3.wiki ManPageArchiveEntryTime3.wiki ManPageArchiveRead3.wiki ManPageArchiveReadAddPassphrase3.wiki ManPageArchiveReadData3.wiki ManPageArchiveReadDisk3.wiki ManPageArchiveReadExtract3.wiki ManPageArchiveReadFilter3.wiki ManPageArchiveReadFormat3.wiki ManPageArchiveReadFree3.wiki ManPageArchiveReadHeader3.wiki ManPageArchiveReadNew3.wiki ManPageArchiveReadOpen3.wiki ManPageArchiveReadSetOptions3.wiki ManPageArchiveUtil3.wiki ManPageArchiveWrite3.wiki ManPageArchiveWriteBlocksize3.wiki ManPageArchiveWriteData3.wiki ManPageArchiveWriteDisk3.wiki ManPageArchiveWriteFilter3.wiki ManPageArchiveWriteFinishEntry3.wiki ManPageArchiveWriteFormat3.wiki ManPageArchiveWriteFree3.wiki ManPageArchiveWriteHeader3.wiki ManPageArchiveWriteNew3.wiki ManPageArchiveWriteOpen3.wiki ManPageArchiveWriteSetOptions3.wiki ManPageArchiveWriteSetPassphrase3.wiki ManPageCpio5.wiki ManPageLibarchiveFormats5.wiki ManPageLibarchive3.wiki ManPageLibarchiveChanges3.wiki ManPageLibarchiveInternals3.wiki ManPageMtree5.wiki ManPageTar5.wiki ManPageBsdtar1.wiki ManPageBsdcpio1.wiki +all: ManPageArchiveEntry3.wiki ManPageArchiveEntryAcl3.wiki ManPageArchiveEntryLinkify3.wiki ManPageArchiveEntryMisc3.wiki ManPageArchiveEntryPaths3.wiki ManPageArchiveEntryPerms3.wiki ManPageArchiveEntryStat3.wiki ManPageArchiveEntryTime3.wiki ManPageArchiveRead3.wiki ManPageArchiveReadAddPassphrase3.wiki ManPageArchiveReadData3.wiki ManPageArchiveReadDisk3.wiki ManPageArchiveReadExtract3.wiki ManPageArchiveReadFilter3.wiki ManPageArchiveReadFormat3.wiki ManPageArchiveReadFree3.wiki ManPageArchiveReadHeader3.wiki ManPageArchiveReadNew3.wiki ManPageArchiveReadOpen3.wiki ManPageArchiveReadSetOptions3.wiki ManPageArchiveUtil3.wiki ManPageArchiveWrite3.wiki ManPageArchiveWriteBlocksize3.wiki ManPageArchiveWriteData3.wiki ManPageArchiveWriteDisk3.wiki ManPageArchiveWriteFilter3.wiki ManPageArchiveWriteFinishEntry3.wiki ManPageArchiveWriteFormat3.wiki ManPageArchiveWriteFree3.wiki ManPageArchiveWriteHeader3.wiki ManPageArchiveWriteNew3.wiki ManPageArchiveWriteOpen3.wiki ManPageArchiveWriteSetOptions3.wiki ManPageArchiveWriteSetPassphrase3.wiki ManPageCpio5.wiki ManPageLibarchive3.wiki ManPageLibarchiveChanges3.wiki ManPageLibarchiveFormats5.wiki ManPageLibarchiveInternals3.wiki ManPageMtree5.wiki ManPageTar5.wiki ManPageBsdtar1.wiki ManPageBsdcpio1.wiki diff --git a/dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveEntry3.wiki b/dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveEntry3.wiki similarity index 89% rename from dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveEntry3.wiki rename to dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveEntry3.wiki index db4177c..7df9e52 100644 --- a/dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveEntry3.wiki +++ b/dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveEntry3.wiki @@ -36,7 +36,7 @@ it includes everything from '''struct stat''' plus associated pathname, textual group and user names, etc. These objects are used by -[[ManPageibarchive3]] +[[ManPageLibarchive3]] to represent the metadata associated with a particular entry in an archive. === Create and Destroy=== @@ -64,16 +64,16 @@ object. Due to high number of functions, the accessor functions can be found in man pages grouped by the purpose.

-
[[ManPagerchiventrycl3]]
+
[[ManPageArchiveEntryAcl3]]
Access Control List manipulation -
[[ManPagerchiventryaths3]]
+
[[ManPageArchiveEntryPaths3]]
Path name manipulation -
[[ManPagerchiventryerms3]]
+
[[ManPageArchiveEntryPerms3]]
User, group and mode manipulation -
[[ManPagerchiventrytat3]]
+
[[ManPageArchiveEntryStat3]]
Functions not in the other groups and copying to/from ''struct'' stat. -
[[ManPagerchiventryime3]]
+
[[ManPageArchiveEntryTime3]]
Time field manipulation
@@ -106,11 +106,11 @@ Similarly, if you store a wide string and then store a narrow string for the same data, the previously-set wide string will be discarded in favor of the new data. == SEE ALSO == -[[ManPagerchiventrycl3]], -[[ManPagerchiventryaths3]], -[[ManPagerchiventryerms3]], -[[ManPagerchiventryime3]], -[[ManPageibarchive3]] +[[ManPageArchiveEntryAcl3]], +[[ManPageArchiveEntryPaths3]], +[[ManPageArchiveEntryPerms3]], +[[ManPageArchiveEntryTime3]], +[[ManPageLibarchive3]] == HISTORY == The '''libarchive''' diff --git a/dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveEntryAcl3.wiki b/dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveEntryAcl3.wiki similarity index 99% rename from dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveEntryAcl3.wiki rename to dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveEntryAcl3.wiki index 7e7ed25..d4de620 100644 --- a/dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveEntryAcl3.wiki +++ b/dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveEntryAcl3.wiki @@ -343,7 +343,7 @@ prepare reading the list of ACL entries with '''archive_entry_acl_next'''(). The function returns 0 if no non-extended ACLs are found. In this case, the access permissions should be obtained by -[[ManPagerchiventryode3]] +[[ManPageArchiveEntryMode3]] or set using [[chmod(2)|http://www.freebsd.org/cgi/man.cgi?query=chmod&sektion=2]]. Otherwise, the function returns the same value as @@ -454,5 +454,5 @@ and flags on success or NULL on error. '''archive_entry_acl_types'''() returns a bitmask of ACL entry types or 0 if archive entry has no ACL entries. == SEE ALSO == -[[ManPagerchiventry3]], -[[ManPageibarchive3]] +[[ManPageArchiveEntry3]], +[[ManPageLibarchive3]] diff --git a/dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveEntryLinkify3.wiki b/dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveEntryLinkify3.wiki similarity index 98% rename from dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveEntryLinkify3.wiki rename to dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveEntryLinkify3.wiki index 1e35c59..a94b398 100644 --- a/dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveEntryLinkify3.wiki +++ b/dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveEntryLinkify3.wiki @@ -64,7 +64,7 @@ The '''archive_entry_linkresolver_set_strategy'''() function selects the optimal hardlink strategy for the given format. The format code can be obtained from -[[ManPagerchiveormat3]]. +[[ManPageArchiveFormat3]]. The function can be called more than once, but it is recommended to flush all deferred entries first. @@ -194,4 +194,4 @@ on [[malloc(3)|http://www.freebsd.org/cgi/man.cgi?query=malloc&sektion=3]] failures. == SEE ALSO == -[[ManPagerchiventry3]] +[[ManPageArchiveEntry3]] diff --git a/dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveEntryMisc3.wiki b/dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveEntryMisc3.wiki similarity index 91% rename from dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveEntryMisc3.wiki rename to dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveEntryMisc3.wiki index 02a91fd..624adc8 100644 --- a/dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveEntryMisc3.wiki +++ b/dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveEntryMisc3.wiki @@ -35,7 +35,7 @@ Symbolic link points to a file Symbolic link points to a directory == SEE ALSO == -[[ManPagerchiventry3]], -[[ManPagerchiventryaths3]], -[[ManPagerchiventrytat3]], -[[ManPageibarchive3]] +[[ManPageArchiveEntry3]], +[[ManPageArchiveEntryPaths3]], +[[ManPageArchiveEntryStat3]], +[[ManPageLibarchive3]] diff --git a/dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveEntryPaths3.wiki b/dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveEntryPaths3.wiki similarity index 97% rename from dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveEntryPaths3.wiki rename to dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveEntryPaths3.wiki index 64ccef9..32a9a04 100644 --- a/dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveEntryPaths3.wiki +++ b/dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveEntryPaths3.wiki @@ -127,7 +127,7 @@ Streaming Archive Library (libarchive, -larchive) '''archive_entry_update_symlink_utf8'''(''struct archive_entry *a'', ''const char *path''); == DESCRIPTION == Path names supported by -[[ManPagerchiventry3]]: +[[ManPageArchiveEntry3]]:
hardlink
Destination of the hardlink. @@ -140,7 +140,7 @@ the destination for that. Path in the archive
sourcepath
Path on the disk for use by -[[ManPagerchiveeadisk3]]. +[[ManPageArchiveReadDisk3]].
symlink
Destination of the symbolic link.
@@ -171,5 +171,5 @@ It doesn't have a corresponding get accessor function. is an alias for '''archive_entry_copy_XXX'''(). == SEE ALSO == -[[ManPagerchiventry3]], -[[ManPageibarchive3]] +[[ManPageArchiveEntry3]], +[[ManPageLibarchive3]] diff --git a/dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveEntryPerms3.wiki b/dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveEntryPerms3.wiki similarity index 98% rename from dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveEntryPerms3.wiki rename to dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveEntryPerms3.wiki index f18ee60..27802c2 100644 --- a/dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveEntryPerms3.wiki +++ b/dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveEntryPerms3.wiki @@ -207,11 +207,11 @@ every name that is recognized. [[strtofflags(3)|http://www.freebsd.org/cgi/man.cgi?query=strtofflags&sektion=3]], which stops parsing at the first unrecognized name.) == SEE ALSO == -[[ManPagerchiventry3]], -[[ManPagerchiventrycl3]], -[[ManPagerchiveeadisk3]], -[[ManPagerchiveriteisk3]], -[[ManPageibarchive3]] +[[ManPageArchiveEntry3]], +[[ManPageArchiveEntryAcl3]], +[[ManPageArchiveReadDisk3]], +[[ManPageArchiveWriteDisk3]], +[[ManPageLibarchive3]] == BUGS == The platform types ''uid_t'' diff --git a/dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveEntryStat3.wiki b/dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveEntryStat3.wiki similarity index 97% rename from dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveEntryStat3.wiki rename to dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveEntryStat3.wiki index 1d3f96d..881b707 100644 --- a/dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveEntryStat3.wiki +++ b/dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveEntryStat3.wiki @@ -249,16 +249,16 @@ and set and unset the size, respectively. The number of references (hardlinks) can be obtained by calling -'''archive_entry_nlinks'''() +'''archive_entry_nlink'''() and set with -'''archive_entry_set_nlinks'''(). +'''archive_entry_set_nlink'''(). === Identifying unique files=== The functions '''archive_entry_dev'''() and '''archive_entry_ino64'''() are used by -[[ManPagerchiventryinkify3]] +[[ManPageArchiveEntryLinkify3]] to find hardlinks. The pair of device and inode is supposed to identify hardlinked files. @@ -302,7 +302,7 @@ Some archive formats use the combined form, while other formats use the split form. == SEE ALSO == [[stat(2)|http://www.freebsd.org/cgi/man.cgi?query=stat&sektion=2]], -[[ManPagerchiventrycl3]], -[[ManPagerchiventryerms3]], -[[ManPagerchiventryime3]], -[[ManPageibarchive3]] +[[ManPageArchiveEntryAcl3]], +[[ManPageArchiveEntryPerms3]], +[[ManPageArchiveEntryTime3]], +[[ManPageLibarchive3]] diff --git a/dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveEntryTime3.wiki b/dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveEntryTime3.wiki similarity index 97% rename from dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveEntryTime3.wiki rename to dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveEntryTime3.wiki index f46aa84..004093a 100644 --- a/dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveEntryTime3.wiki +++ b/dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveEntryTime3.wiki @@ -111,7 +111,7 @@ These functions create and manipulate the time fields in an Supported time fields are atime (access time), birthtime (creation time), ctime (last time an inode property was changed) and mtime (modification time). -[[ManPageibarchive3]] +[[ManPageLibarchive3]] provides a high-resolution interface. The timestamps are truncated automatically depending on the archive format (for archiving) or the filesystem capabilities (for restoring). @@ -124,8 +124,8 @@ The current state can be queried using '''XXX_is_set'''(). Unset time fields have a second and nanosecond field of 0. == SEE ALSO == -[[ManPagerchiventry3]], -[[ManPageibarchive3]] +[[ManPageArchiveEntry3]], +[[ManPageLibarchive3]] == HISTORY == The '''libarchive''' diff --git a/dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveRead3.wiki b/dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveRead3.wiki similarity index 90% rename from dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveRead3.wiki rename to dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveRead3.wiki index 34cdb7f..ca26570 100644 --- a/dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveRead3.wiki +++ b/dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveRead3.wiki @@ -15,7 +15,7 @@ headers and associated data, then close the archive and release all resources. === Create archive object=== See -[[ManPagerchiveeadew3]]. +[[ManPageArchiveReadNew3]]. To read an archive, you must first obtain an initialized '''struct archive''' @@ -23,9 +23,9 @@ object from '''archive_read_new'''(). === Enable filters and formats=== See -[[ManPagerchiveeadilter3]] +[[ManPageArchiveReadFilter3]] and -[[ManPagerchiveeadormat3]]. +[[ManPageArchiveReadFormat3]]. You can then modify this object for the desired operations with the various @@ -49,10 +49,10 @@ to enable auto-detect for all formats and compression types currently supported by the library. === Set options=== See -[[ManPagerchiveeadetptions3]]. +[[ManPageArchiveReadSetOptions3]]. === Open archive=== See -[[ManPagerchiveeadpen3]]. +[[ManPageArchiveReadOpen3]]. Once you have prepared the '''struct archive''' @@ -72,10 +72,10 @@ callback functions are free to read whatever block size is most appropriate for the medium. === Consume archive=== See -[[ManPagerchiveeadeader3]], -[[ManPagerchiveeadata3]] +[[ManPageArchiveReadHeader3]], +[[ManPageArchiveReadData3]] and -[[ManPagerchiveeadxtract3]]. +[[ManPageArchiveReadExtract3]]. Each archive entry consists of a header followed by a certain amount of data. @@ -112,7 +112,7 @@ In particular, many applications will want to override the pathname, file permissions, or ownership. === Release resources=== See -[[ManPagerchiveeadree3]]. +[[ManPageArchiveReadFree3]]. Once you have finished reading data from the archive, you should call @@ -174,16 +174,16 @@ myclose(struct archive *a, void *client_data) ``` == SEE ALSO == [[ManPageBsdtar1]], -[[ManPagerchiveeadata3]], -[[ManPagerchiveeadxtract3]], -[[ManPagerchiveeadilter3]], -[[ManPagerchiveeadormat3]], -[[ManPagerchiveeadeader3]], -[[ManPagerchiveeadew3]], -[[ManPagerchiveeadpen3]], -[[ManPagerchiveeadetptions3]], -[[ManPagerchivetil3]], -[[ManPageibarchive3]], +[[ManPageArchiveReadData3]], +[[ManPageArchiveReadExtract3]], +[[ManPageArchiveReadFilter3]], +[[ManPageArchiveReadFormat3]], +[[ManPageArchiveReadHeader3]], +[[ManPageArchiveReadNew3]], +[[ManPageArchiveReadOpen3]], +[[ManPageArchiveReadSetOptions3]], +[[ManPageArchiveUtil3]], +[[ManPageLibarchive3]], [[ManPageTar5]] == HISTORY == The diff --git a/dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveReadAddPassphrase3.wiki b/dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveReadAddPassphrase3.wiki similarity index 93% rename from dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveReadAddPassphrase3.wiki rename to dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveReadAddPassphrase3.wiki index f05a683..3cb9cd3 100644 --- a/dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveReadAddPassphrase3.wiki +++ b/dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveReadAddPassphrase3.wiki @@ -37,6 +37,6 @@ function failed. == SEE ALSO == [[ManPageBsdtar1]], -[[ManPagerchiveead3]], -[[ManPagerchiveeadetptions3]], -[[ManPageibarchive3]] +[[ManPageArchiveRead3]], +[[ManPageArchiveReadSetOptions3]], +[[ManPageLibarchive3]] diff --git a/dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveReadData3.wiki b/dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveReadData3.wiki similarity index 91% rename from dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveReadData3.wiki rename to dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveReadData3.wiki index e39bbdc..baa2f99 100644 --- a/dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveReadData3.wiki +++ b/dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveReadData3.wiki @@ -89,13 +89,13 @@ and functions. == SEE ALSO == [[ManPageBsdtar1]], -[[ManPagerchiveead3]], -[[ManPagerchiveeadxtract3]], -[[ManPagerchiveeadilter3]], -[[ManPagerchiveeadormat3]], -[[ManPagerchiveeadeader3]], -[[ManPagerchiveeadpen3]], -[[ManPagerchiveeadetptions3]], -[[ManPagerchivetil3]], -[[ManPageibarchive3]], +[[ManPageArchiveRead3]], +[[ManPageArchiveReadExtract3]], +[[ManPageArchiveReadFilter3]], +[[ManPageArchiveReadFormat3]], +[[ManPageArchiveReadHeader3]], +[[ManPageArchiveReadOpen3]], +[[ManPageArchiveReadSetOptions3]], +[[ManPageArchiveUtil3]], +[[ManPageLibarchive3]], [[ManPageTar5]] diff --git a/dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveReadDisk3.wiki b/dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveReadDisk3.wiki similarity index 98% rename from dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveReadDisk3.wiki rename to dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveReadDisk3.wiki index 238274c..7fb056a 100644 --- a/dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveReadDisk3.wiki +++ b/dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveReadDisk3.wiki @@ -174,7 +174,7 @@ object with information about a particular file. The '''archive_entry''' object must have already been created with -[[ManPagerchiventryew3]] +[[ManPageArchiveEntryNew3]] and at least one of the source path or path fields must already be set. (If both are set, the source path will be used.) @@ -204,7 +204,7 @@ object. More information about the ''struct'' archive object and the overall design of the library can be found in the -[[ManPageibarchive3]] +[[ManPageLibarchive3]] overview. == EXAMPLES == The following illustrates basic usage of the library by @@ -269,11 +269,11 @@ and functions. == SEE ALSO == [[ManPageBsdtar1]], -[[ManPagerchiveead3]], -[[ManPagerchivetil3]], -[[ManPagerchiverite3]], -[[ManPagerchiveriteisk3]], -[[ManPageibarchive3]] +[[ManPageArchiveRead3]], +[[ManPageArchiveUtil3]], +[[ManPageArchiveWrite3]], +[[ManPageArchiveWriteDisk3]], +[[ManPageLibarchive3]] == HISTORY == The '''libarchive''' @@ -314,7 +314,7 @@ to look up such information. This API should provide a set of methods for walking a directory tree. That would make it a direct parallel of the -[[ManPagerchiveead3]] +[[ManPageArchiveRead3]] API. When such methods are implemented, the "hybrid" diff --git a/dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveReadExtract3.wiki b/dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveReadExtract3.wiki similarity index 81% rename from dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveReadExtract3.wiki rename to dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveReadExtract3.wiki index 9a5b82b..9cd9dec 100644 --- a/dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveReadExtract3.wiki +++ b/dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveReadExtract3.wiki @@ -24,34 +24,34 @@ Streaming Archive Library (libarchive, -larchive)
'''archive_read_extract'''(), '''archive_read_extract_set_skip_file'''()
A convenience function that wraps the corresponding -[[ManPagerchiveriteisk3]] +[[ManPageArchiveWriteDisk3]] interfaces. The first call to '''archive_read_extract'''() creates a restore object using -[[ManPagerchiveriteiskew3]] +[[ManPageArchiveWriteDiskNew3]] and -[[ManPagerchiveriteiskettandardookup3]], +[[ManPageArchiveWriteDiskSetStandardLookup3]], then transparently invokes -[[ManPagerchiveriteisketptions3]], -[[ManPagerchiveriteeader3]], -[[ManPagerchiveriteata3]], +[[ManPageArchiveWriteDiskSetOptions3]], +[[ManPageArchiveWriteHeader3]], +[[ManPageArchiveWriteData3]], and -[[ManPagerchiveriteinishntry3]] +[[ManPageArchiveWriteFinishEntry3]] to create the entry on disk and copy data into it. The ''flags'' argument is passed unmodified to -[[ManPagerchiveriteisketptions3]]. +[[ManPageArchiveWriteDiskSetOptions3]].
'''archive_read_extract2'''()
This is another version of '''archive_read_extract'''() that allows you to provide your own restore object. In particular, this allows you to override the standard lookup functions using -[[ManPagerchiveriteisketroupookup3]], +[[ManPageArchiveWriteDiskSetGroupLookup3]], and -[[ManPagerchiveriteisketserookup3]]. +[[ManPageArchiveWriteDiskSetUserLookup3]]. Note that '''archive_read_extract2'''() does not accept a @@ -91,12 +91,12 @@ and functions. == SEE ALSO == [[ManPageBsdtar1]], -[[ManPagerchiveead3]], -[[ManPagerchiveeadata3]], -[[ManPagerchiveeadilter3]], -[[ManPagerchiveeadormat3]], -[[ManPagerchiveeadpen3]], -[[ManPagerchiveeadetptions3]], -[[ManPagerchivetil3]], -[[ManPageibarchive3]], +[[ManPageArchiveRead3]], +[[ManPageArchiveReadData3]], +[[ManPageArchiveReadFilter3]], +[[ManPageArchiveReadFormat3]], +[[ManPageArchiveReadOpen3]], +[[ManPageArchiveReadSetOptions3]], +[[ManPageArchiveUtil3]], +[[ManPageLibarchive3]], [[ManPageTar5]] diff --git a/dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveReadFilter3.wiki b/dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveReadFilter3.wiki similarity index 87% rename from dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveReadFilter3.wiki rename to dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveReadFilter3.wiki index 85b0cd3..84c85c3 100644 --- a/dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveReadFilter3.wiki +++ b/dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveReadFilter3.wiki @@ -25,6 +25,10 @@ Streaming Archive Library (libarchive, -larchive)
''int''
+'''archive_read_support_filter_by_code'''(''struct archive *'', ''int''); +
+''int'' +
'''archive_read_support_filter_bzip2'''(''struct archive *'');
''int'' @@ -110,6 +114,14 @@ Note that is always enabled by default.
'''archive_read_support_filter_all'''()
Enables all available decompression filters. +
'''archive_read_support_filter_by_code'''()
+Enables a single filter specified by the filter code. +This function does not work with +'''ARCHIVE_FILTER_PROGRAM'''. +Note: In statically-linked executables, this will cause +your program to include support for every filter. +If executable size is a concern, you may wish to avoid +using this function.
'''archive_read_support_filter_program'''()
Data is fed through the specified external program before being dearchived. Note that this disables automatic detection of the compression format, @@ -136,8 +148,8 @@ and '''archive_error_string'''() functions. == SEE ALSO == -[[ManPagerchiveead3]], -[[ManPagerchiveeadata3]], -[[ManPagerchiveeadormat3]], -[[ManPagerchiveeadormat3]], -[[ManPageibarchive3]] +[[ManPageArchiveRead3]], +[[ManPageArchiveReadData3]], +[[ManPageArchiveReadFormat3]], +[[ManPageArchiveReadFormat3]], +[[ManPageLibarchive3]] diff --git a/dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveReadFormat3.wiki b/dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveReadFormat3.wiki similarity index 97% rename from dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveReadFormat3.wiki rename to dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveReadFormat3.wiki index 13d17ad..f6289fa 100644 --- a/dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveReadFormat3.wiki +++ b/dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveReadFormat3.wiki @@ -150,11 +150,11 @@ and functions. == SEE ALSO == [[ManPageBsdtar1]], -[[ManPagerchiveeadata3]], -[[ManPagerchiveeadilter3]], -[[ManPagerchiveeadetptions3]], -[[ManPagerchivetil3]], -[[ManPageibarchive3]], +[[ManPageArchiveReadData3]], +[[ManPageArchiveReadFilter3]], +[[ManPageArchiveReadSetOptions3]], +[[ManPageArchiveUtil3]], +[[ManPageLibarchive3]], [[ManPageTar5]] == BUGS == Many traditional archiver programs treat diff --git a/dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveReadFree3.wiki b/dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveReadFree3.wiki similarity index 87% rename from dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveReadFree3.wiki rename to dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveReadFree3.wiki index d85030d..852ea6f 100644 --- a/dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveReadFree3.wiki +++ b/dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveReadFree3.wiki @@ -58,11 +58,11 @@ and '''archive_error_string'''() functions. == SEE ALSO == -[[ManPagerchiveeadata3]], -[[ManPagerchiveeadilter3]], -[[ManPagerchiveeadormat3]], -[[ManPagerchiveeadew3]], -[[ManPagerchiveeadpen3]], -[[ManPagerchiveeadetptions3]], -[[ManPagerchivetil3]], -[[ManPageibarchive3]] +[[ManPageArchiveReadData3]], +[[ManPageArchiveReadFilter3]], +[[ManPageArchiveReadFormat3]], +[[ManPageArchiveReadNew3]], +[[ManPageArchiveReadOpen3]], +[[ManPageArchiveReadSetOptions3]], +[[ManPageArchiveUtil3]], +[[ManPageLibarchive3]] diff --git a/dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveReadHeader3.wiki b/dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveReadHeader3.wiki similarity index 85% rename from dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveReadHeader3.wiki rename to dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveReadHeader3.wiki index f2d39a8..212d6a7 100644 --- a/dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveReadHeader3.wiki +++ b/dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveReadHeader3.wiki @@ -51,13 +51,13 @@ and functions. == SEE ALSO == [[ManPageBsdtar1]], -[[ManPagerchiveead3]], -[[ManPagerchiveeadata3]], -[[ManPagerchiveeadxtract3]], -[[ManPagerchiveeadilter3]], -[[ManPagerchiveeadormat3]], -[[ManPagerchiveeadpen3]], -[[ManPagerchiveeadetptions3]], -[[ManPagerchivetil3]], -[[ManPageibarchive3]], +[[ManPageArchiveRead3]], +[[ManPageArchiveReadData3]], +[[ManPageArchiveReadExtract3]], +[[ManPageArchiveReadFilter3]], +[[ManPageArchiveReadFormat3]], +[[ManPageArchiveReadOpen3]], +[[ManPageArchiveReadSetOptions3]], +[[ManPageArchiveUtil3]], +[[ManPageLibarchive3]], [[ManPageTar5]] diff --git a/dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveReadNew3.wiki b/dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveReadNew3.wiki similarity index 74% rename from dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveReadNew3.wiki rename to dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveReadNew3.wiki index 67c4f1f..7b312be 100644 --- a/dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveReadNew3.wiki +++ b/dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveReadNew3.wiki @@ -20,13 +20,13 @@ is returned on error. A complete description of the '''struct archive''' object can be found in the overview manual page for -[[ManPageibarchive3]]. +[[ManPageLibarchive3]]. == SEE ALSO == [[ManPageBsdtar1]], -[[ManPagerchiveeadata3]], -[[ManPagerchiveeadilter3]], -[[ManPagerchiveeadormat3]], -[[ManPagerchiveeadetptions3]], -[[ManPagerchivetil3]], -[[ManPageibarchive3]], +[[ManPageArchiveReadData3]], +[[ManPageArchiveReadFilter3]], +[[ManPageArchiveReadFormat3]], +[[ManPageArchiveReadSetOptions3]], +[[ManPageArchiveUtil3]], +[[ManPageLibarchive3]], [[ManPageTar5]] diff --git a/dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveReadOpen3.wiki b/dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveReadOpen3.wiki similarity index 96% rename from dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveReadOpen3.wiki rename to dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveReadOpen3.wiki index afaca2b..3accc5d 100644 --- a/dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveReadOpen3.wiki +++ b/dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveReadOpen3.wiki @@ -92,7 +92,7 @@ A complete description of the and '''struct archive_entry''' objects can be found in the overview manual page for -[[ManPageibarchive3]]. +[[ManPageLibarchive3]]. == CLIENT CALLBACKS == The callback functions must match the following prototypes:
    @@ -180,11 +180,11 @@ and functions. == SEE ALSO == [[ManPageBsdtar1]], -[[ManPagerchiveead3]], -[[ManPagerchiveeadata3]], -[[ManPagerchiveeadilter3]], -[[ManPagerchiveeadormat3]], -[[ManPagerchiveeadetptions3]], -[[ManPagerchivetil3]], -[[ManPageibarchive3]], +[[ManPageArchiveRead3]], +[[ManPageArchiveReadData3]], +[[ManPageArchiveReadFilter3]], +[[ManPageArchiveReadFormat3]], +[[ManPageArchiveReadSetOptions3]], +[[ManPageArchiveUtil3]], +[[ManPageLibarchive3]], [[ManPageTar5]] diff --git a/dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveReadSetOptions3.wiki b/dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveReadSetOptions3.wiki similarity index 91% rename from dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveReadSetOptions3.wiki rename to dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveReadSetOptions3.wiki index bb739bc..49be450 100644 --- a/dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveReadSetOptions3.wiki +++ b/dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveReadSetOptions3.wiki @@ -146,9 +146,18 @@ used when translating file names.
Format cpio
-
'''hdrcharset'''
+
'''compat-2x'''
+Libarchive 2.x incorrectly encoded Unicode filenames on +some platforms. +This option mimics the libarchive 2.x filename handling +so that such archives can be read correctly. +
'''hdrcharset'''
The value is used as a character set name that will be used when translating file names. +
'''pwb'''
+When reading a binary CPIO archive, assume that it is +in the original PWB cpio format, and handle file mode +bits accordingly. The default is to assume v7 format.
Format iso9660
@@ -213,6 +222,6 @@ and functions. == SEE ALSO == [[ManPageBsdtar1]], -[[ManPagerchiveead3]], -[[ManPagerchiveriteetptions3]], -[[ManPageibarchive3]] +[[ManPageArchiveRead3]], +[[ManPageArchiveWriteSetOptions3]], +[[ManPageLibarchive3]] diff --git a/dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveUtil3.wiki b/dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveUtil3.wiki similarity index 97% rename from dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveUtil3.wiki rename to dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveUtil3.wiki index 8869fbb..a2b6376 100644 --- a/dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveUtil3.wiki +++ b/dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveUtil3.wiki @@ -79,7 +79,7 @@ Streaming Archive Library (libarchive, -larchive) These functions provide access to various information about the '''struct archive''' object used in the -[[ManPageibarchive3]] +[[ManPageLibarchive3]] library.
'''archive_clear_error'''()
@@ -111,9 +111,9 @@ to
'''archive_file_count'''()
Returns a count of the number of files processed by this archive object. The count is incremented by calls to -[[ManPagerchiveriteeader3]] +[[ManPageArchiveWriteHeader3]] or -[[ManPagerchiveeadexteader3]]. +[[ManPageArchiveReadNextHeader3]].
'''archive_filter_code'''()
Returns a numeric code identifying the indicated filter. See @@ -202,9 +202,9 @@ Field-width specifiers and other printf features are not uniformly supported and should not be used.
== SEE ALSO == -[[ManPagerchiveead3]], -[[ManPagerchiverite3]], -[[ManPageibarchive3]], +[[ManPageArchiveRead3]], +[[ManPageArchiveWrite3]], +[[ManPageLibarchive3]], [[printf(3)|http://www.freebsd.org/cgi/man.cgi?query=printf&sektion=3]] == HISTORY == The diff --git a/dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveWrite3.wiki b/dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveWrite3.wiki similarity index 94% rename from dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveWrite3.wiki rename to dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveWrite3.wiki index 708ec27..efcd74a 100644 --- a/dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveWrite3.wiki +++ b/dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveWrite3.wiki @@ -15,7 +15,7 @@ object, set any desired options, initialize the archive, append entries, then close the archive and release all resources. === Create archive object=== See -[[ManPagerchiveriteew3]]. +[[ManPageArchiveWriteNew3]]. To write an archive, you must first obtain an initialized '''struct archive''' @@ -23,10 +23,10 @@ object from '''archive_write_new'''(). === Enable filters and formats, configure block size and padding=== See -[[ManPagerchiveriteilter3]], -[[ManPagerchiveriteormat3]] +[[ManPageArchiveWriteFilter3]], +[[ManPageArchiveWriteFormat3]] and -[[ManPagerchiveritelocksize3]]. +[[ManPageArchiveWriteBlocksize3]]. You can then modify this object for the desired operations with the various @@ -40,10 +40,10 @@ functions to enable the corresponding compression and format support. === Set options=== See -[[ManPagerchiveriteetptions3]]. +[[ManPageArchiveWriteSetOptions3]]. === Open archive=== See -[[ManPagerchiveritepen3]]. +[[ManPageArchiveWriteOpen3]]. Once you have prepared the '''struct archive''' @@ -59,9 +59,9 @@ specify a filename, file descriptor, object, or a block of memory from which to write the archive data. === Produce archive=== See -[[ManPagerchiveriteeader3]] +[[ManPageArchiveWriteHeader3]] and -[[ManPagerchiveriteata3]]. +[[ManPageArchiveWriteData3]]. Individual archive entries are written in a three-step process: @@ -78,7 +78,7 @@ field, which specifies the type of object and field, which specifies the size of the data portion of the object. === Release resources=== See -[[ManPagerchiveriteree3]]. +[[ManPageArchiveWriteFree3]]. After all entries have been written, use the '''archive_write_free'''() @@ -180,8 +180,8 @@ int main(int argc, const char **argv) ``` == SEE ALSO == [[ManPageBsdtar1]], -[[ManPagerchiveriteetptions3]], -[[ManPageibarchive3]], +[[ManPageArchiveWriteSetOptions3]], +[[ManPageLibarchive3]], [[ManPageCpio5]], [[ManPageMtree5]], [[ManPageTar5]] diff --git a/dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveWriteBlocksize3.wiki b/dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveWriteBlocksize3.wiki similarity index 98% rename from dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveWriteBlocksize3.wiki rename to dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveWriteBlocksize3.wiki index 00beced..eddc34c 100644 --- a/dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveWriteBlocksize3.wiki +++ b/dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveWriteBlocksize3.wiki @@ -86,8 +86,8 @@ and functions. == SEE ALSO == [[ManPageBsdtar1]], -[[ManPagerchiveriteetptions3]], -[[ManPageibarchive3]], +[[ManPageArchiveWriteSetOptions3]], +[[ManPageLibarchive3]], [[ManPageCpio5]], [[ManPageMtree5]], [[ManPageTar5]] diff --git a/dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveWriteData3.wiki b/dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveWriteData3.wiki similarity index 94% rename from dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveWriteData3.wiki rename to dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveWriteData3.wiki index 8670f8a..31d4598 100644 --- a/dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveWriteData3.wiki +++ b/dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveWriteData3.wiki @@ -53,9 +53,9 @@ Clients should treat any value less than zero as an error and consider any non-negative value as success. == SEE ALSO == [[ManPageBsdtar1]], -[[ManPagerchiveriteinishntry3]], -[[ManPagerchiveriteetptions3]], -[[ManPageibarchive3]], +[[ManPageArchiveWriteFinishEntry3]], +[[ManPageArchiveWriteSetOptions3]], +[[ManPageLibarchive3]], [[ManPageCpio5]], [[ManPageMtree5]], [[ManPageTar5]] diff --git a/dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveWriteDisk3.wiki b/dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveWriteDisk3.wiki similarity index 98% rename from dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveWriteDisk3.wiki rename to dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveWriteDisk3.wiki index e3eea00..1fca52c 100644 --- a/dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveWriteDisk3.wiki +++ b/dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveWriteDisk3.wiki @@ -208,10 +208,10 @@ and More information about the ''struct'' archive object and the overall design of the library can be found in the -[[ManPageibarchive3]] +[[ManPageLibarchive3]] overview. Many of these functions are also documented under -[[ManPagerchiverite3]]. +[[ManPageArchiveWrite3]]. == RETURN VALUES == Most functions return '''ARCHIVE_OK''' @@ -245,9 +245,9 @@ and functions. == SEE ALSO == [[ManPageBsdtar1]], -[[ManPagerchiveead3]], -[[ManPagerchiverite3]], -[[ManPageibarchive3]] +[[ManPageArchiveRead3]], +[[ManPageArchiveWrite3]], +[[ManPageLibarchive3]] == HISTORY == The '''libarchive''' diff --git a/dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveWriteFilter3.wiki b/dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveWriteFilter3.wiki similarity index 96% rename from dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveWriteFilter3.wiki rename to dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveWriteFilter3.wiki index 84d7816..bf6cf3a 100644 --- a/dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveWriteFilter3.wiki +++ b/dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveWriteFilter3.wiki @@ -125,10 +125,10 @@ and functions. == SEE ALSO == [[ManPageBsdtar1]], -[[ManPagerchiverite3]], -[[ManPagerchiveriteormat3]], -[[ManPagerchiveriteetptions3]], -[[ManPageibarchive3]], +[[ManPageArchiveWrite3]], +[[ManPageArchiveWriteFormat3]], +[[ManPageArchiveWriteSetOptions3]], +[[ManPageLibarchive3]], [[ManPageCpio5]], [[ManPageMtree5]], [[ManPageTar5]] diff --git a/dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveWriteFinishEntry3.wiki b/dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveWriteFinishEntry3.wiki similarity index 93% rename from dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveWriteFinishEntry3.wiki rename to dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveWriteFinishEntry3.wiki index a1f2a32..bf6e6a1 100644 --- a/dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveWriteFinishEntry3.wiki +++ b/dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveWriteFinishEntry3.wiki @@ -42,9 +42,9 @@ and functions. == SEE ALSO == [[ManPageBsdtar1]], -[[ManPagerchiveriteata3]], -[[ManPagerchiveriteetptions3]], -[[ManPageibarchive3]], +[[ManPageArchiveWriteData3]], +[[ManPageArchiveWriteSetOptions3]], +[[ManPageLibarchive3]], [[ManPageCpio5]], [[ManPageMtree5]], [[ManPageTar5]] diff --git a/dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveWriteFormat3.wiki b/dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveWriteFormat3.wiki similarity index 86% rename from dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveWriteFormat3.wiki rename to dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveWriteFormat3.wiki index 2a92d79..b5423b1 100644 --- a/dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveWriteFormat3.wiki +++ b/dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveWriteFormat3.wiki @@ -7,7 +7,10 @@ ARCHIVE_WRITE_FORMAT(3) manual page '''archive_write_set_format_ar_svr4''', '''archive_write_set_format_by_name''', '''archive_write_set_format_cpio''', +'''archive_write_set_format_cpio_bin''', '''archive_write_set_format_cpio_newc''', +'''archive_write_set_format_cpio_odc''', +'''archive_write_set_format_cpio_pwb''', '''archive_write_set_format_filter_by_ext''', '''archive_write_set_format_filter_by_ext_def''', '''archive_write_set_format_gnutar''', @@ -61,10 +64,22 @@ Streaming Archive Library (libarchive, -larchive)
''int''
+'''archive_write_set_format_cpio_bin'''(''struct archive *''); +
+''int'' +
'''archive_write_set_format_cpio_newc'''(''struct archive *'');
''int''
+'''archive_write_set_format_cpio_odc'''(''struct archive *''); +
+''int'' +
+'''archive_write_set_format_cpio_pwb'''(''struct archive *''); +
+''int'' +
'''archive_write_set_format_filter_by_ext'''(''struct archive *'', ''const char *filename'');
''int'' @@ -137,17 +152,20 @@ to create a new archive with the same format as an existing archive.
'''archive_write_set_format_by_name'''()
Sets the corresponding format based on the common name.
-'''archive_write_set_format_filter_by_ext'''(), +'''archive_write_set_format_filter_by_ext'''() '''archive_write_set_format_filter_by_ext_def'''()
Sets both filters and format based on the output filename. Supported extensions: .7z, .zip, .jar, .cpio, .iso, .a, .ar, .tar, .tgz, .tar.gz, .tar.bz2, .tar.xz
'''archive_write_set_format_7zip'''() -'''archive_write_set_format_ar_bsd'''(), -'''archive_write_set_format_ar_svr4'''(), +'''archive_write_set_format_ar_bsd'''() +'''archive_write_set_format_ar_svr4'''() '''archive_write_set_format_cpio'''() +'''archive_write_set_format_cpio_bin'''() '''archive_write_set_format_cpio_newc'''() +'''archive_write_set_format_cpio_odc'''() +'''archive_write_set_format_cpio_pwb'''() '''archive_write_set_format_gnutar'''() '''archive_write_set_format_iso9660'''() '''archive_write_set_format_mtree'''() @@ -165,7 +183,7 @@ Supported extensions: .7z, .zip, .jar, .cpio, .iso, .a, .ar, .tar, .tgz, .tar.gz
Set the format as specified. More details on the formats supported by libarchive can be found in the -[[ManPageibarchiveormats5]] +[[ManPageLibarchiveFormats5]] manual page.
== RETURN VALUES == @@ -181,10 +199,10 @@ and functions. == SEE ALSO == [[ManPageBsdtar1]], -[[ManPagerchiverite3]], -[[ManPagerchiveriteetptions3]], -[[ManPageibarchive3]], +[[ManPageArchiveWrite3]], +[[ManPageArchiveWriteSetOptions3]], +[[ManPageLibarchive3]], [[ManPageCpio5]], -[[ManPageibarchiveormats5]], +[[ManPageLibarchiveFormats5]], [[ManPageMtree5]], [[ManPageTar5]] diff --git a/dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveWriteFree3.wiki b/dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveWriteFree3.wiki similarity index 96% rename from dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveWriteFree3.wiki rename to dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveWriteFree3.wiki index 06341bf..0e5c4be 100644 --- a/dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveWriteFree3.wiki +++ b/dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveWriteFree3.wiki @@ -66,8 +66,8 @@ and functions. == SEE ALSO == [[ManPageBsdtar1]], -[[ManPagerchiveriteetptions3]], -[[ManPageibarchive3]], +[[ManPageArchiveWriteSetOptions3]], +[[ManPageLibarchive3]], [[ManPageCpio5]], [[ManPageMtree5]], [[ManPageTar5]] diff --git a/dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveWriteHeader3.wiki b/dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveWriteHeader3.wiki similarity index 92% rename from dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveWriteHeader3.wiki rename to dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveWriteHeader3.wiki index 7087ede..a2389cd 100644 --- a/dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveWriteHeader3.wiki +++ b/dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveWriteHeader3.wiki @@ -15,7 +15,7 @@ Build and write a header using the data in the provided '''struct archive_entry''' structure. See -[[ManPagerchiventry3]] +[[ManPageArchiveEntry3]] for information on creating and populating '''struct archive_entry''' objects. @@ -37,8 +37,8 @@ and functions. == SEE ALSO == [[ManPageBsdtar1]], -[[ManPagerchiveriteetptions3]], -[[ManPageibarchive3]], +[[ManPageArchiveWriteSetOptions3]], +[[ManPageLibarchive3]], [[ManPageCpio5]], [[ManPageMtree5]], [[ManPageTar5]] diff --git a/dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveWriteNew3.wiki b/dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveWriteNew3.wiki similarity index 85% rename from dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveWriteNew3.wiki rename to dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveWriteNew3.wiki index b9c787c..da0d45b 100644 --- a/dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveWriteNew3.wiki +++ b/dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveWriteNew3.wiki @@ -20,12 +20,12 @@ is returned on error. A complete description of the '''struct archive''' object can be found in the overview manual page for -[[ManPageibarchive3]]. +[[ManPageLibarchive3]]. == SEE ALSO == [[ManPageBsdtar1]], -[[ManPagerchiverite3]], -[[ManPagerchiveriteetptions3]], -[[ManPageibarchive3]], +[[ManPageArchiveWrite3]], +[[ManPageArchiveWriteSetOptions3]], +[[ManPageLibarchive3]], [[ManPageCpio5]], [[ManPageMtree5]], [[ManPageTar5]] diff --git a/dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveWriteOpen3.wiki b/dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveWriteOpen3.wiki similarity index 83% rename from dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveWriteOpen3.wiki rename to dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveWriteOpen3.wiki index 579aaf3..31abd29 100644 --- a/dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveWriteOpen3.wiki +++ b/dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveWriteOpen3.wiki @@ -1,6 +1,7 @@ ARCHIVE_WRITE_OPEN(3) manual page == NAME == '''archive_write_open''', +'''archive_write_open2''', '''archive_write_open_fd''', '''archive_write_open_FILE''', '''archive_write_open_filename''', @@ -17,6 +18,10 @@ Streaming Archive Library (libarchive, -larchive)
''int''
+'''archive_write_open2'''(''struct archive *'', ''void *client_data'', ''archive_open_callback *'', ''archive_write_callback *'', ''archive_close_callback *'', ''archive_free_callback *''); +
+''int'' +
'''archive_write_open_fd'''(''struct archive *'', ''int fd'');
''int'' @@ -38,6 +43,11 @@ This is the most generic form of this function, which accepts pointers to three callback functions which will be invoked by the compression layer to write the constructed archive. This does not alter the default archive padding. +
'''archive_write_open2'''()
+Same as +'''archive_write_open'''() +with an additional fourth free callback. This function should be preferred to +'''archive_write_open'''().
'''archive_write_open_fd'''()
A convenience form of '''archive_write_open'''() @@ -77,14 +87,14 @@ to a character or block device node, it will disable padding otherwise. You can override this by manually invoking '''archive_write_set_bytes_in_last_block'''() before calling -'''archive_write_open'''(). +'''archive_write_open2'''(). The '''archive_write_open_filename'''() function is safe for use with tape drives or other block-oriented devices.
'''archive_write_open_memory'''()
A convenience form of -'''archive_write_open'''() +'''archive_write_open2'''() that accepts a pointer to a block of memory that will receive the archive. The final @@ -101,13 +111,13 @@ have specifically set the block size. More information about the ''struct'' archive object and the overall design of the library can be found in the -[[ManPageibarchive3]] +[[ManPageLibarchive3]] overview. Note that the convenience forms above vary in how they block the output. See -[[ManPagerchiveritelocksize3]] +[[ManPageArchiveWriteBlocksize3]] if you need to control the block size used for writes or the end-of-file padding behavior. == CLIENT CALLBACKS == @@ -115,7 +125,7 @@ To use this library, you will need to define and register callback functions that will be invoked to write data to the resulting archive. These functions are registered by calling -'''archive_write_open'''(): +'''archive_write_open2'''():
  • ''typedef int'' @@ -132,6 +142,8 @@ If the open fails, it should call '''archive_set_error'''() to register an error code and message and return '''ARCHIVE_FATAL'''. +Please note that if open fails, close is not called and resources must be +freed inside the open callback or with the free callback.
    • ''typedef la_ssize_t'' @@ -157,7 +169,8 @@ to register an error code and message and return -1.
    The close callback is invoked by archive_close when -the archive processing is complete. +the archive processing is complete. If the open callback fails, the close +callback is not invoked. The callback should return '''ARCHIVE_OK''' on success. @@ -165,7 +178,14 @@ On failure, the callback should invoke '''archive_set_error'''() to register an error code and message and return -'''ARCHIVE_FATAL'''. +
      +
    • +''typedef int'' +'''archive_free_callback'''(''struct archive *'', ''void *client_data'') +
    + +The free callback is always invoked on archive_free. +The return code of this callback is not processed. Note that if the client-provided write callback function returns a non-zero value, that error will be propagated back to the caller @@ -196,13 +216,13 @@ and functions. == SEE ALSO == [[ManPageBsdtar1]], -[[ManPagerchiverite3]], -[[ManPagerchiveritelocksize3]], -[[ManPagerchiveriteilter3]], -[[ManPagerchiveriteormat3]], -[[ManPagerchiveriteew3]], -[[ManPagerchiveriteetptions3]], -[[ManPageibarchive3]], +[[ManPageArchiveWrite3]], +[[ManPageArchiveWriteBlocksize3]], +[[ManPageArchiveWriteFilter3]], +[[ManPageArchiveWriteFormat3]], +[[ManPageArchiveWriteNew3]], +[[ManPageArchiveWriteSetOptions3]], +[[ManPageLibarchive3]], [[ManPageCpio5]], [[ManPageMtree5]], [[ManPageTar5]] diff --git a/dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveWriteSetOptions3.wiki b/dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveWriteSetOptions3.wiki similarity index 97% rename from dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveWriteSetOptions3.wiki rename to dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveWriteSetOptions3.wiki index ceae9bf..177fe3d 100644 --- a/dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveWriteSetOptions3.wiki +++ b/dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveWriteSetOptions3.wiki @@ -214,7 +214,8 @@ If supported, the default value is read from
    '''compression-level'''
    The value is interpreted as a decimal integer specifying the -compression level. Supported values are from 1 to 22. +compression level. Supported values depend on the library version, +common values are from 1 to 22.
Format 7zip
@@ -237,7 +238,7 @@ Values between 0 and 9 are supported. The interpretation of the compression level depends on the chosen compression method.
-
Format cpio
+
Format bin
'''hdrcharset'''
The value is used as a character set name that will be @@ -477,6 +478,18 @@ XXX needs explanation XXX The value is used as a character set name that will be used when translating file names.
+
Format odc
+
+
'''hdrcharset'''
+The value is used as a character set name that will be +used when translating file names. +
+
Format pwb
+
+
'''hdrcharset'''
+The value is used as a character set name that will be +used when translating file names. +
Format pax
'''hdrcharset'''
@@ -649,9 +662,9 @@ and functions. == SEE ALSO == [[ManPageBsdtar1]], -[[ManPagerchiveeadetptions3]], -[[ManPagerchiverite3]], -[[ManPageibarchive3]] +[[ManPageArchiveReadSetOptions3]], +[[ManPageArchiveWrite3]], +[[ManPageLibarchive3]] == HISTORY == The '''libarchive''' diff --git a/dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveWriteSetPassphrase3.wiki b/dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveWriteSetPassphrase3.wiki similarity index 92% rename from dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveWriteSetPassphrase3.wiki rename to dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveWriteSetPassphrase3.wiki index f61d67c..fea416e 100644 --- a/dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveWriteSetPassphrase3.wiki +++ b/dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveWriteSetPassphrase3.wiki @@ -37,6 +37,6 @@ function.
== SEE ALSO == [[ManPageBsdtar1]], -[[ManPagerchiverite3]], -[[ManPagerchiveriteetptions3]], -[[ManPageibarchive3]] +[[ManPageArchiveWrite3]], +[[ManPageArchiveWriteSetOptions3]], +[[ManPageLibarchive3]] diff --git a/dependencies/libarchive-3.4.2/doc/wiki/ManPageBsdcpio1.wiki b/dependencies/libarchive-3.5.2/doc/wiki/ManPageBsdcpio1.wiki similarity index 96% rename from dependencies/libarchive-3.4.2/doc/wiki/ManPageBsdcpio1.wiki rename to dependencies/libarchive-3.5.2/doc/wiki/ManPageBsdcpio1.wiki index fce973e..fc7647e 100644 --- a/dependencies/libarchive-3.4.2/doc/wiki/ManPageBsdcpio1.wiki +++ b/dependencies/libarchive-3.5.2/doc/wiki/ManPageBsdcpio1.wiki @@ -57,6 +57,13 @@ all operating modes.
-0, --null
Read filenames separated by NUL characters instead of newlines. This is necessary if any of the filenames being read might contain newlines. +
-6, --pwb
+When reading a binary format archive, assume it's the earlier one, +from the PWB variant of 6th Edition UNIX. +When writing a cpio archive, use the PWB format. +
-7, --binary
+(o mode only) +When writing a cpio archive, use the (newer, non-PWB) binary format.
-A
(o mode only) Append to the specified archive. @@ -114,10 +121,10 @@ The POSIX.1 tar format. The default format is ''odc''. See -[[ManPageibarchiveormats5]] +[[ManPageLibarchiveFormats5]] for more complete information about the formats currently supported by the underlying -[[ManPageibarchive3]] +[[ManPageLibarchive3]] library.
-h, --help
Print usage information. @@ -369,9 +376,9 @@ standard syntax. [[mt(1)|http://www.freebsd.org/cgi/man.cgi?query=mt&sektion=1]], [[pax(1)|http://www.freebsd.org/cgi/man.cgi?query=pax&sektion=1]], [[ManPageBsdtar1]], -[[ManPageibarchive3]], +[[ManPageLibarchive3]], [[ManPageCpio5]], -[[ManPageibarchiveormats5]], +[[ManPageLibarchiveFormats5]], [[ManPageTar5]] == STANDARDS == There is no current POSIX standard for the cpio command; it appeared @@ -401,7 +408,7 @@ actually predates even though it was not well-known outside of AT&T until some time later. This is a complete re-implementation based on the -[[ManPageibarchive3]] +[[ManPageLibarchive3]] library. == BUGS == The cpio archive format has several basic limitations: diff --git a/dependencies/libarchive-3.4.2/doc/wiki/ManPageBsdtar1.wiki b/dependencies/libarchive-3.5.2/doc/wiki/ManPageBsdtar1.wiki similarity index 99% rename from dependencies/libarchive-3.4.2/doc/wiki/ManPageBsdtar1.wiki rename to dependencies/libarchive-3.5.2/doc/wiki/ManPageBsdtar1.wiki index 8b35562..4736bbb 100644 --- a/dependencies/libarchive-3.4.2/doc/wiki/ManPageBsdtar1.wiki +++ b/dependencies/libarchive-3.5.2/doc/wiki/ManPageBsdtar1.wiki @@ -228,7 +228,7 @@ Supported formats include and "ustar". Other formats may also be supported; see -[[ManPageibarchiveormats5]] +[[ManPageLibarchiveFormats5]] for more information about currently-supported formats. In r and u modes, when extending an existing archive, the format specified here must be compatible with the format of the existing archive on disk. @@ -571,9 +571,9 @@ only to modules whose name matches The complete list of supported modules and keys for create and append modes is in -[[ManPagerchiveriteetptions3]] +[[ManPageArchiveWriteSetOptions3]] and for extract and list modes in -[[ManPagerchiveeadetptions3]]. +[[ManPageArchiveReadSetOptions3]]. Examples of supported options:
@@ -624,7 +624,8 @@ A decimal integer from 4 to 7 specifying the lz4 compression block size Use the previous block of the block being compressed for a compression dictionary to improve compression ratio.
'''zstd:compression-level'''
-A decimal integer from 1 to 22 specifying the zstd compression level. +A decimal integer specifying the zstd compression level. Supported values depend +on the library version, common values are from 1 to 22.
'''lzop:compression-level'''
A decimal integer from 1 to 9 specifying the lzop compression level.
'''xz:compression-level'''
@@ -1064,9 +1065,9 @@ For more details, see the explanation of the and '''archive_write_set_options'''() API calls that are described in -[[ManPagerchiveead3]] +[[ManPageArchiveRead3]] and -[[ManPagerchiverite3]]. +[[ManPageArchiveWrite3]]. == COMPATIBILITY == The bundled-arguments format is supported for compatibility with historic implementations. @@ -1209,8 +1210,8 @@ components, or symlinks to other directories. [[pax(1)|http://www.freebsd.org/cgi/man.cgi?query=pax&sektion=1]], [[shar(1)|http://www.freebsd.org/cgi/man.cgi?query=shar&sektion=1]], [[xz(1)|http://www.freebsd.org/cgi/man.cgi?query=xz&sektion=1]], -[[ManPageibarchive3]], -[[ManPageibarchiveormats5]], +[[ManPageLibarchive3]], +[[ManPageLibarchiveFormats5]], [[ManPageTar5]] == STANDARDS == There is no current POSIX standard for the tar command; it appeared @@ -1242,7 +1243,7 @@ beginning with FreeBSD 1.0. This is a complete re-implementation based on the -[[ManPageibarchive3]] +[[ManPageLibarchive3]] library. It was first released with FreeBSD 5.4 diff --git a/dependencies/libarchive-3.4.2/doc/wiki/ManPageCpio5.wiki b/dependencies/libarchive-3.5.2/doc/wiki/ManPageCpio5.wiki similarity index 61% rename from dependencies/libarchive-3.4.2/doc/wiki/ManPageCpio5.wiki rename to dependencies/libarchive-3.5.2/doc/wiki/ManPageCpio5.wiki index 3835302..4850863 100644 --- a/dependencies/libarchive-3.4.2/doc/wiki/ManPageCpio5.wiki +++ b/dependencies/libarchive-3.5.2/doc/wiki/ManPageCpio5.wiki @@ -28,40 +28,44 @@ The end of the archive is indicated by a special record with the pathname "TRAILER!!!". === PWB format=== -XXX Any documentation of the original PWB/UNIX 1.0 format? XXX -=== Old Binary Format=== -The old binary +The PWB binary '''cpio''' -format stores numbers as 2-byte and 4-byte binary values. +format is the original format, when cpio was introduced as part of the +Programmer's Work Bench system, a variant of 6th Edition UNIX. It +stores numbers as 2-byte and 4-byte binary values. Each entry begins with a header in the following format: + ```text -struct header_old_cpio { - unsigned short c_magic; - unsigned short c_dev; - unsigned short c_ino; - unsigned short c_mode; - unsigned short c_uid; - unsigned short c_gid; - unsigned short c_nlink; - unsigned short c_rdev; - unsigned short c_mtime[2]; - unsigned short c_namesize; - unsigned short c_filesize[2]; +struct header_pwb_cpio { + short h_magic; + short h_dev; + short h_ino; + short h_mode; + short h_uid; + short h_gid; + short h_nlink; + short h_majmin; + long h_mtime; + short h_namesize; + long h_filesize; }; ``` The -''unsigned'' short -fields here are 16-bit integer values; the -''unsigned'' int -fields are 32-bit integer values. -The fields are as follows +''short'' +fields here are 16-bit integer values, while the +''long'' +fields are 32 bit integers. Since PWB UNIX, like the 6th Edition UNIX +it was based on, only ran on PDP-11 computers, they +are in PDP-endian format, which has little-endian shorts, and +big-endian longs. That is, the long integer whose hexadecimal +representation is 0x12345678 would be stored in four successive bytes +as 0x34, 0x12, 0x78, 0x56. +The fields are as follows:
-
''magic''
+
''h_magic''
The integer value octal 070707. -This value can be used to determine whether this archive is -written with little-endian or big-endian integers. -
''dev'', ''ino''
+
''h_dev'', ''h_ino''
The device and inode numbers from the disk. These are used by programs that read '''cpio''' @@ -69,9 +73,94 @@ archives to determine when two entries refer to the same file. Programs that synthesize '''cpio''' archives should be careful to set these to distinct values for each entry. -
''mode''
-The mode specifies both the regular permissions and the file type. -It consists of several bit fields as follows: +
''h_mode''
+The mode specifies both the regular permissions and the file type, and +it also holds a couple of bits that are irrelevant to the cpio format, +because the field is actually a raw copy of the mode field in the inode +representing the file. These are the IALLOC flag, which shows that +the inode entry is in use, and the ILARG flag, which shows that the +file it represents is large enough to have indirect blocks pointers in +the inode. +The mode is decoded as follows: + +
+
0100000
+IALLOC flag - irrelevant to cpio. +
0060000
+This masks the file type bits. +
0040000
+File type value for directories. +
0020000
+File type value for character special devices. +
0060000
+File type value for block special devices. +
0010000
+ILARG flag - irrelevant to cpio. +
0004000
+SUID bit. +
0002000
+SGID bit. +
0001000
+Sticky bit. +
0000777
+The lower 9 bits specify read/write/execute permissions +for world, group, and user following standard POSIX conventions. +
+
''h_uid'', ''h_gid''
+The numeric user id and group id of the owner. +
''h_nlink''
+The number of links to this file. +Directories always have a value of at least two here. +Note that hardlinked files include file data with every copy in the archive. +
''h_majmin''
+For block special and character special entries, +this field contains the associated device number, with the major +number in the high byte, and the minor number in the low byte. +For all other entry types, it should be set to zero by writers +and ignored by readers. +
''h_mtime''
+Modification time of the file, indicated as the number +of seconds since the start of the epoch, +00:00:00 UTC January 1, 1970. +
''h_namesize''
+The number of bytes in the pathname that follows the header. +This count includes the trailing NUL byte. +
''h_filesize''
+The size of the file. Note that this archive format is limited to 16 +megabyte file sizes, because PWB UNIX, like 6th Edition, only used +an unsigned 24 bit integer for the file size internally. +
+ +The pathname immediately follows the fixed header. +If +'''h_namesize''' +is odd, an additional NUL byte is added after the pathname. +The file data is then appended, again with an additional NUL +appended if needed to get the next header at an even offset. + +Hardlinked files are not given special treatment; +the full file contents are included with each copy of the +file. +=== New Binary Format=== +The new binary +'''cpio''' +format showed up when cpio was adopted into late 7th Edition UNIX. +It is exactly like the PWB binary format, described above, except for +three changes: + +First, UNIX now ran on more than one hardware type, so the endianness +of 16 bit integers must be determined by observing the magic number at +the start of the header. The 32 bit integers are still always stored +with the most significant word first, though, so each of those two, in +the struct shown above, was stored as an array of two 16 bit integers, +in the traditional order. Those 16 bit integers, like all the others +in the struct, were accessed using a macro that byte swapped them if +necessary. + +Next, 7th Edition had more file types to store, and the IALLOC and ILARG +flag bits were re-purposed to accommodate these. The revised use of the +various bits is as follows: +
0170000
This masks the file type bits. @@ -96,51 +185,26 @@ SUID bit. SGID bit.
0001000
Sticky bit. -On some systems, this modifies the behavior of executables and/or directories.
0000777
The lower 9 bits specify read/write/execute permissions for world, group, and user following standard POSIX conventions.
-
''uid'', ''gid''
-The numeric user id and group id of the owner. -
''nlink''
-The number of links to this file. -Directories always have a value of at least two here. -Note that hardlinked files include file data with every copy in the archive. -
''rdev''
-For block special and character special entries, -this field contains the associated device number. -For all other entry types, it should be set to zero by writers -and ignored by readers. -
''mtime''
-Modification time of the file, indicated as the number -of seconds since the start of the epoch, -00:00:00 UTC January 1, 1970. -The four-byte integer is stored with the most-significant 16 bits first -followed by the least-significant 16 bits. -Each of the two 16 bit values are stored in machine-native byte order. -
''namesize''
-The number of bytes in the pathname that follows the header. -This count includes the trailing NUL byte. -
''filesize''
-The size of the file. -Note that this archive format is limited to -four gigabyte file sizes. -See -''mtime'' -above for a description of the storage of four-byte integers. -
-The pathname immediately follows the fixed header. -If the -'''namesize''' -is odd, an additional NUL byte is added after the pathname. -The file data is then appended, padded with NUL -bytes to an even length. +Finally, the file size field now represents a signed 32 bit integer in +the underlying file system, so the maximum file size has increased to +2 gigabytes. -Hardlinked files are not given special treatment; -the full file contents are included with each copy of the -file. +Note that there is no obvious way to tell which of the two binary +formats an archive uses, other than to see which one makes more +sense. The typical error scenario is that a PWB format archive +unpacked as if it were in the new format will create named sockets +instead of directories, and then fail to unpack files that should +go in those directories. Running +''bsdcpio'' -itv +on an unknown archive will make it obvious which it is: if it's +PWB format, directories will be listed with an 's' instead of +a 'd' as the first character of the mode string, and the larger +files will have a '?' in that position. === Portable ASCII Format=== Version 2 of the Single UNIX Specification (``SUSv2'') standardized an ASCII variant that is portable across all @@ -152,6 +216,7 @@ format or as the format. It stores the same numeric fields as the old binary format, but represents them as 6-character or 11-character octal values. + ```text struct cpio_odc_header { char c_magic[6]; @@ -168,9 +233,9 @@ struct cpio_odc_header { }; ``` -The fields are identical to those in the old binary format. +The fields are identical to those in the new binary format. The name and file body follow the fixed header. -Unlike the old binary format, there is no additional padding +Unlike the binary formats, there is no additional padding after the pathname or file contents. If the files being archived are themselves entirely ASCII, then the resulting archive will be entirely ASCII, except for the @@ -179,6 +244,7 @@ NUL byte that terminates the name field. The "new" ASCII format uses 8-byte hexadecimal fields for all numbers and separates device numbers into separate fields for major and minor numbers. + ```text struct cpio_newc_header { char c_magic[6]; @@ -199,7 +265,7 @@ struct cpio_newc_header { ``` Except as specified below, the fields here match those specified -for the old binary format above. +for the new binary format above.
''magic''
The string @@ -216,7 +282,7 @@ Note that this format supports only 4 gigabyte files (unlike the older ASCII format, which supports 8 gigabyte files). In this format, hardlinked files are handled by setting the -filesize to zero for each entry except the last one that +filesize to zero for each entry except the first one that appears in the archive. === New CRC Format=== The CRC format is identical to the new ASCII format described @@ -260,9 +326,9 @@ while working in AT&T's Unix Support Group. It appeared in 1977 as part of PWB/UNIX 1.0, the "Programmer's Work Bench" derived from -At v6 +At 6th Edition UNIX that was used internally at AT&T. -Both the old binary and old character formats were in use +Both the new binary and old character formats were in use by 1980, according to the System III source released by SCO under their "Ancient Unix" @@ -276,9 +342,9 @@ The format is mis-named, as it uses a simple checksum and not a cyclic redundancy check. -The old binary format is limited to 16 bits for user id, -group id, device, and inode numbers. -It is limited to 4 gigabyte file sizes. +The binary formats are limited to 16 bits for user id, group id, +device, and inode numbers. They are limited to 16 megabyte and 2 +gigabyte file sizes for the older and newer variants, respectively. The old ASCII format is limited to 18 bits for the user id, group id, device, and inode numbers. diff --git a/dependencies/libarchive-3.4.2/doc/wiki/ManPageLibarchive3.wiki b/dependencies/libarchive-3.5.2/doc/wiki/ManPageLibarchive3.wiki similarity index 94% rename from dependencies/libarchive-3.4.2/doc/wiki/ManPageLibarchive3.wiki rename to dependencies/libarchive-3.5.2/doc/wiki/ManPageLibarchive3.wiki index 2d7ae34..40f0340 100644 --- a/dependencies/libarchive-3.4.2/doc/wiki/ManPageLibarchive3.wiki +++ b/dependencies/libarchive-3.5.2/doc/wiki/ManPageLibarchive3.wiki @@ -77,7 +77,7 @@ POSIX "pax interchange format" archives,
  • -POSIX octet-oriented cpio archives, +cpio archives,
  • Zip archive,
  • @@ -117,19 +117,19 @@ More detailed information can be found in the individual manual pages for each API or utility function. == READING AN ARCHIVE == See -[[ManPagerchiveead3]]. +[[ManPageArchiveRead3]]. == WRITING AN ARCHIVE == See -[[ManPagerchiverite3]]. +[[ManPageArchiveWrite3]]. == WRITING ENTRIES TO DISK == The -[[ManPagerchiveriteisk3]] +[[ManPageArchiveWriteDisk3]] API allows you to write -[[ManPagerchiventry3]] +[[ManPageArchiveEntry3]] objects to disk using the same API used by -[[ManPagerchiverite3]]. +[[ManPageArchiveWrite3]]. The -[[ManPagerchiveriteisk3]] +[[ManPageArchiveWriteDisk3]] API is used internally by '''archive_read_extract'''('';'') using it directly can provide greater control over how entries @@ -139,21 +139,21 @@ archive-to-archive copy and archive-to-disk extraction operations. == READING ENTRIES FROM DISK == The -[[ManPagerchiveeadisk3]] +[[ManPageArchiveReadDisk3]] supports for populating -[[ManPagerchiventry3]] +[[ManPageArchiveEntry3]] objects from information in the filesystem. This includes the information accessible from the [[stat(2)|http://www.freebsd.org/cgi/man.cgi?query=stat&sektion=2]] system call as well as ACLs, extended attributes, and other metadata. The -[[ManPagerchiveeadisk3]] +[[ManPageArchiveReadDisk3]] API also supports iterating over directory trees, which allows directories of files to be read using an API compatible with the -[[ManPagerchiveead3]] +[[ManPageArchiveRead3]] API. == DESCRIPTION == Detailed descriptions of each function are provided by the @@ -168,7 +168,7 @@ The structure contains a complete description of a single archive entry. It uses an opaque interface that is fully documented in -[[ManPagerchiventry3]]. +[[ManPageArchiveEntry3]]. Users familiar with historic formats should be aware that the newer variants have eliminated most restrictions on the length of textual fields. @@ -216,14 +216,14 @@ and functions can be used to obtain more information. == ENVIRONMENT == There are character set conversions within the -[[ManPagerchiventry3]] +[[ManPageArchiveEntry3]] functions that are impacted by the currently-selected locale. == SEE ALSO == [[ManPageBsdtar1]], -[[ManPagerchiventry3]], -[[ManPagerchiveead3]], -[[ManPagerchivetil3]], -[[ManPagerchiverite3]], +[[ManPageArchiveEntry3]], +[[ManPageArchiveRead3]], +[[ManPageArchiveUtil3]], +[[ManPageArchiveWrite3]], [[ManPageTar5]] == HISTORY == The diff --git a/dependencies/libarchive-3.4.2/doc/wiki/ManPageLibarchiveChanges3.wiki b/dependencies/libarchive-3.5.2/doc/wiki/ManPageLibarchiveChanges3.wiki similarity index 96% rename from dependencies/libarchive-3.4.2/doc/wiki/ManPageLibarchiveChanges3.wiki rename to dependencies/libarchive-3.5.2/doc/wiki/ManPageLibarchiveChanges3.wiki index 2ccb83c..2f851d5 100644 --- a/dependencies/libarchive-3.4.2/doc/wiki/ManPageLibarchiveChanges3.wiki +++ b/dependencies/libarchive-3.5.2/doc/wiki/ManPageLibarchiveChanges3.wiki @@ -291,13 +291,13 @@ ARCHIVE_DEFAULT_BYTES_PER_BLOCK ```
  • == SEE ALSO == -[[ManPagerchiveead3]], -[[ManPagerchiveeadilter3]], -[[ManPagerchiveeadormat3]], -[[ManPagerchiveeadetptions3]], -[[ManPagerchivetil3]], -[[ManPagerchiverite3]], -[[ManPagerchiveriteilter3]], -[[ManPagerchiveriteormat3]], -[[ManPagerchiveriteetptions3]], -[[ManPageibarchive3]] +[[ManPageArchiveRead3]], +[[ManPageArchiveReadFilter3]], +[[ManPageArchiveReadFormat3]], +[[ManPageArchiveReadSetOptions3]], +[[ManPageArchiveUtil3]], +[[ManPageArchiveWrite3]], +[[ManPageArchiveWriteFilter3]], +[[ManPageArchiveWriteFormat3]], +[[ManPageArchiveWriteSetOptions3]], +[[ManPageLibarchive3]] diff --git a/dependencies/libarchive-3.4.2/doc/wiki/ManPageLibarchiveFormats5.wiki b/dependencies/libarchive-3.5.2/doc/wiki/ManPageLibarchiveFormats5.wiki similarity index 93% rename from dependencies/libarchive-3.4.2/doc/wiki/ManPageLibarchiveFormats5.wiki rename to dependencies/libarchive-3.5.2/doc/wiki/ManPageLibarchiveFormats5.wiki index 7623d91..5414eba 100644 --- a/dependencies/libarchive-3.4.2/doc/wiki/ManPageLibarchiveFormats5.wiki +++ b/dependencies/libarchive-3.5.2/doc/wiki/ManPageLibarchiveFormats5.wiki @@ -4,7 +4,7 @@ LIBARCHIVE-FORMATS(5) manual page - archive formats supported by the libarchive library == DESCRIPTION == The -[[ManPageibarchive3]] +[[ManPageLibarchive3]] library reads and writes a variety of streaming archive formats. Generally speaking, all of these archive formats consist of a series of "entries". @@ -21,7 +21,7 @@ to support, though many programs do use libarchive convenience functions to enable all supported formats. === Tar Formats=== The -[[ManPageibarchive3]] +[[ManPageLibarchive3]] library can read most tar archives. It can write POSIX-standard "ustar" @@ -40,7 +40,7 @@ subsequent entries.
    '''gnutar'''
    The -[[ManPageibarchive3]] +[[ManPageLibarchive3]] library can read most GNU-format tar archives. It currently supports the most popular GNU extensions, including modern long filename and linkname support, as well as atime and ctime data. @@ -50,12 +50,12 @@ It can read GNU sparse file entries, including the new POSIX-based formats. The -[[ManPageibarchive3]] +[[ManPageLibarchive3]] library can write GNU tar format, including long filename and linkname support, as well as atime and ctime data.
    '''pax'''
    The -[[ManPageibarchive3]] +[[ManPageLibarchive3]] library can read and write POSIX-compliant pax interchange format archives. Pax interchange format archives are an extension of the older ustar @@ -173,28 +173,27 @@ POSIX.1-2001 extended the ustar format to create the "pax interchange" format. === Cpio Formats=== -The libarchive library can read a number of common cpio variants and can write -"odc" -and -"newc" -format archives. -A cpio archive stores each entry as a fixed-size header followed -by a variable-length filename and variable-length data. -Unlike the tar format, the cpio format does only minimal padding -of the header or file data. -There are several cpio variants, which differ primarily in -how they store the initial header: some store the values as -octal or hexadecimal numbers in ASCII, others as binary values of -varying byte order and length. +The libarchive library can read and write a number of common cpio +variants. A cpio archive stores each entry as a fixed-size header +followed by a variable-length filename and variable-length data. +Unlike the tar format, the cpio format does only minimal padding of +the header or file data. There are several cpio variants, which +differ primarily in how they store the initial header: some store the +values as octal or hexadecimal numbers in ASCII, others as binary +values of varying byte order and length.
    '''binary'''
    -The libarchive library transparently reads both big-endian and little-endian -variants of the original binary cpio format. -This format used 32-bit binary values for file size and mtime, -and 16-bit binary values for the other fields. +The libarchive library transparently reads both big-endian and +little-endian variants of the the two binary cpio formats; the +original one from PWB/UNIX, and the later, more widely used, variant. +This format used 32-bit binary values for file size and mtime, and +16-bit binary values for the other fields. The formats support only +the file types present in UNIX at the time of their creation. File +sizes are limited to 24 bits in the PWB format, because of the limits +of the file system, and to 31 bits in the newer binary format, where +signed 32 bit longs were used.
    '''odc'''
    -The libarchive library can both read and write this -POSIX-standard format, which is officially known as the +This is the POSIX standardized format, which is officially known as the "cpio interchange format" or the "octet-oriented cpio archive format" @@ -379,7 +378,7 @@ although many of the keywords cannot currently be stored in an '''archive_entry''' object. When writing, libarchive supports use of the -[[ManPagerchiveriteetptions3]] +[[ManPageArchiveWriteSetOptions3]] interface to specify which keywords should be included in the output. If libarchive was compiled with access to suitable diff --git a/dependencies/libarchive-3.4.2/doc/wiki/ManPageLibarchiveInternals3.wiki b/dependencies/libarchive-3.5.2/doc/wiki/ManPageLibarchiveInternals3.wiki similarity index 97% rename from dependencies/libarchive-3.4.2/doc/wiki/ManPageLibarchiveInternals3.wiki rename to dependencies/libarchive-3.5.2/doc/wiki/ManPageLibarchiveInternals3.wiki index cf913b7..086762f 100644 --- a/dependencies/libarchive-3.4.2/doc/wiki/ManPageLibarchiveInternals3.wiki +++ b/dependencies/libarchive-3.5.2/doc/wiki/ManPageLibarchiveInternals3.wiki @@ -13,15 +13,15 @@ make it easy to add new archive and compression formats. Externally, libarchive exposes most operations through an opaque, object-style interface. The -[[ManPagerchiventry3]] +[[ManPageArchiveEntry3]] objects store information about a single filesystem object. The rest of the library provides facilities to write -[[ManPagerchiventry3]] +[[ManPageArchiveEntry3]] objects to archive files, read them from archive files, and write them to disk. (There are plans to add a facility to read -[[ManPagerchiventry3]] +[[ManPageArchiveEntry3]] objects from disk as well.) The read and write APIs each have four layers: a public API @@ -37,7 +37,7 @@ an archive or disk writer, and then use a single set of code to select and write entries, regardless of the target. == READ ARCHITECTURE == From the outside, clients use the -[[ManPagerchiveead3]] +[[ManPageArchiveRead3]] API to manipulate an '''archive''' object to read entries and bodies from an archive stream. @@ -50,9 +50,9 @@ The API has four layers: The lowest layer is the I/O layer. This layer can be overridden by clients, but most clients use the packaged I/O callbacks provided, for example, by -[[ManPagerchiveeadpenemory3]], +[[ManPageArchiveReadOpenMemory3]], and -[[ManPagerchiveeadpend3]]. +[[ManPageArchiveReadOpenFd3]]. The compression layer calls the I/O layer to read bytes and decompresses them for the format layer. The format layer unpacks a stream of uncompressed bytes and @@ -319,11 +319,11 @@ Fortunately, such archives are very rare, and libarchive can read most ZIP archives, though it cannot always extract as much information as a dedicated ZIP program. == SEE ALSO == -[[ManPagerchiventry3]], -[[ManPagerchiveead3]], -[[ManPagerchiverite3]], -[[ManPagerchiveriteisk3]], -[[ManPageibarchive3]] +[[ManPageArchiveEntry3]], +[[ManPageArchiveRead3]], +[[ManPageArchiveWrite3]], +[[ManPageArchiveWriteDisk3]], +[[ManPageLibarchive3]] == HISTORY == The '''libarchive''' diff --git a/dependencies/libarchive-3.4.2/doc/wiki/ManPageMtree5.wiki b/dependencies/libarchive-3.5.2/doc/wiki/ManPageMtree5.wiki similarity index 100% rename from dependencies/libarchive-3.4.2/doc/wiki/ManPageMtree5.wiki rename to dependencies/libarchive-3.5.2/doc/wiki/ManPageMtree5.wiki diff --git a/dependencies/libarchive-3.4.2/doc/wiki/ManPageTar5.wiki b/dependencies/libarchive-3.5.2/doc/wiki/ManPageTar5.wiki similarity index 100% rename from dependencies/libarchive-3.4.2/doc/wiki/ManPageTar5.wiki rename to dependencies/libarchive-3.5.2/doc/wiki/ManPageTar5.wiki diff --git a/dependencies/libarchive-3.4.2/examples/minitar/README b/dependencies/libarchive-3.5.2/examples/minitar/README similarity index 100% rename from dependencies/libarchive-3.4.2/examples/minitar/README rename to dependencies/libarchive-3.5.2/examples/minitar/README diff --git a/dependencies/libarchive-3.4.2/examples/minitar/minitar.c b/dependencies/libarchive-3.5.2/examples/minitar/minitar.c similarity index 100% rename from dependencies/libarchive-3.4.2/examples/minitar/minitar.c rename to dependencies/libarchive-3.5.2/examples/minitar/minitar.c diff --git a/dependencies/libarchive-3.4.2/examples/tarfilter.c b/dependencies/libarchive-3.5.2/examples/tarfilter.c similarity index 100% rename from dependencies/libarchive-3.4.2/examples/tarfilter.c rename to dependencies/libarchive-3.5.2/examples/tarfilter.c diff --git a/dependencies/libarchive-3.4.2/examples/untar.c b/dependencies/libarchive-3.5.2/examples/untar.c similarity index 100% rename from dependencies/libarchive-3.4.2/examples/untar.c rename to dependencies/libarchive-3.5.2/examples/untar.c diff --git a/dependencies/libarchive-3.4.2/libarchive/CMakeLists.txt b/dependencies/libarchive-3.5.2/libarchive/CMakeLists.txt similarity index 98% rename from dependencies/libarchive-3.4.2/libarchive/CMakeLists.txt rename to dependencies/libarchive-3.5.2/libarchive/CMakeLists.txt index fa43288..87901c5 100644 --- a/dependencies/libarchive-3.4.2/libarchive/CMakeLists.txt +++ b/dependencies/libarchive-3.5.2/libarchive/CMakeLists.txt @@ -144,7 +144,9 @@ SET(libarchive_SOURCES archive_write_set_format_ar.c archive_write_set_format_by_name.c archive_write_set_format_cpio.c + archive_write_set_format_cpio_binary.c archive_write_set_format_cpio_newc.c + archive_write_set_format_cpio_odc.c archive_write_set_format_filter_by_ext.c archive_write_set_format_gnutar.c archive_write_set_format_iso9660.c @@ -253,7 +255,6 @@ ENDIF(NOT WIN32 OR CYGWIN) IF(ENABLE_INSTALL) # How to install the libraries - #INSTALL(TARGETS archive archive_static INSTALL(TARGETS archive_static RUNTIME DESTINATION bin LIBRARY DESTINATION lib diff --git a/dependencies/libarchive-3.4.2/libarchive/archive.h b/dependencies/libarchive-3.5.2/libarchive/archive.h similarity index 98% rename from dependencies/libarchive-3.4.2/libarchive/archive.h rename to dependencies/libarchive-3.5.2/libarchive/archive.h index 55818ea..ca83cbd 100644 --- a/dependencies/libarchive-3.4.2/libarchive/archive.h +++ b/dependencies/libarchive-3.5.2/libarchive/archive.h @@ -36,7 +36,7 @@ * assert that ARCHIVE_VERSION_NUMBER >= 2012108. */ /* Note: Compiler will complain if this does not match archive_entry.h! */ -#define ARCHIVE_VERSION_NUMBER 3004002 +#define ARCHIVE_VERSION_NUMBER 3005002 #include #include /* for wchar_t */ @@ -155,7 +155,7 @@ __LA_DECL int archive_version_number(void); /* * Textual name/version of the library, useful for version displays. */ -#define ARCHIVE_VERSION_ONLY_STRING "3.4.2" +#define ARCHIVE_VERSION_ONLY_STRING "3.5.2" #define ARCHIVE_VERSION_STRING "libarchive " ARCHIVE_VERSION_ONLY_STRING __LA_DECL const char * archive_version_string(void); @@ -246,6 +246,8 @@ typedef int archive_open_callback(struct archive *, void *_client_data); typedef int archive_close_callback(struct archive *, void *_client_data); +typedef int archive_free_callback(struct archive *, void *_client_data); + /* Switches from one client data object to the next/prev client data object. * This is useful for reading from different data blocks such as a set of files * that make up one large file. @@ -317,6 +319,7 @@ typedef const char *archive_passphrase_callback(struct archive *, #define ARCHIVE_FORMAT_CPIO_SVR4_NOCRC (ARCHIVE_FORMAT_CPIO | 4) #define ARCHIVE_FORMAT_CPIO_SVR4_CRC (ARCHIVE_FORMAT_CPIO | 5) #define ARCHIVE_FORMAT_CPIO_AFIO_LARGE (ARCHIVE_FORMAT_CPIO | 6) +#define ARCHIVE_FORMAT_CPIO_PWB (ARCHIVE_FORMAT_CPIO | 7) #define ARCHIVE_FORMAT_SHAR 0x20000 #define ARCHIVE_FORMAT_SHAR_BASE (ARCHIVE_FORMAT_SHAR | 1) #define ARCHIVE_FORMAT_SHAR_DUMP (ARCHIVE_FORMAT_SHAR | 2) @@ -418,6 +421,7 @@ __LA_DECL int archive_read_support_compression_xz(struct archive *) #endif __LA_DECL int archive_read_support_filter_all(struct archive *); +__LA_DECL int archive_read_support_filter_by_code(struct archive *, int); __LA_DECL int archive_read_support_filter_bzip2(struct archive *); __LA_DECL int archive_read_support_filter_compress(struct archive *); __LA_DECL int archive_read_support_filter_gzip(struct archive *); @@ -797,7 +801,10 @@ __LA_DECL int archive_write_set_format_7zip(struct archive *); __LA_DECL int archive_write_set_format_ar_bsd(struct archive *); __LA_DECL int archive_write_set_format_ar_svr4(struct archive *); __LA_DECL int archive_write_set_format_cpio(struct archive *); +__LA_DECL int archive_write_set_format_cpio_bin(struct archive *); __LA_DECL int archive_write_set_format_cpio_newc(struct archive *); +__LA_DECL int archive_write_set_format_cpio_odc(struct archive *); +__LA_DECL int archive_write_set_format_cpio_pwb(struct archive *); __LA_DECL int archive_write_set_format_gnutar(struct archive *); __LA_DECL int archive_write_set_format_iso9660(struct archive *); __LA_DECL int archive_write_set_format_mtree(struct archive *); @@ -817,9 +824,13 @@ __LA_DECL int archive_write_set_format_filter_by_ext(struct archive *a, const ch __LA_DECL int archive_write_set_format_filter_by_ext_def(struct archive *a, const char *filename, const char * def_ext); __LA_DECL int archive_write_zip_set_compression_deflate(struct archive *); __LA_DECL int archive_write_zip_set_compression_store(struct archive *); +/* Deprecated; use archive_write_open2 instead */ __LA_DECL int archive_write_open(struct archive *, void *, archive_open_callback *, archive_write_callback *, archive_close_callback *); +__LA_DECL int archive_write_open2(struct archive *, void *, + archive_open_callback *, archive_write_callback *, + archive_close_callback *, archive_free_callback *); __LA_DECL int archive_write_open_fd(struct archive *, int _fd); __LA_DECL int archive_write_open_filename(struct archive *, const char *_file); __LA_DECL int archive_write_open_filename_w(struct archive *, diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_acl.c b/dependencies/libarchive-3.5.2/libarchive/archive_acl.c similarity index 99% rename from dependencies/libarchive-3.4.2/libarchive/archive_acl.c rename to dependencies/libarchive-3.5.2/libarchive/archive_acl.c index 952e20d..ead7e36 100644 --- a/dependencies/libarchive-3.4.2/libarchive/archive_acl.c +++ b/dependencies/libarchive-3.5.2/libarchive/archive_acl.c @@ -595,7 +595,7 @@ archive_acl_text_len(struct archive_acl *acl, int want_type, int flags, else length += sizeof(uid_t) * 3 + 1; } else { - r = archive_mstring_get_mbs_l(&ap->name, &name, + r = archive_mstring_get_mbs_l(a, &ap->name, &name, &len, sc); if (r != 0) return (0); @@ -968,7 +968,7 @@ archive_acl_to_text_l(struct archive_acl *acl, ssize_t *text_len, int flags, else prefix = NULL; r = archive_mstring_get_mbs_l( - &ap->name, &name, &len, sc); + NULL, &ap->name, &name, &len, sc); if (r != 0) { free(s); return (NULL); @@ -1402,14 +1402,14 @@ isint_w(const wchar_t *start, const wchar_t *end, int *result) if (start >= end) return (0); while (start < end) { - if (*start < '0' || *start > '9') + if (*start < L'0' || *start > L'9') return (0); if (n > (INT_MAX / 10) || - (n == INT_MAX / 10 && (*start - '0') > INT_MAX % 10)) { + (n == INT_MAX / 10 && (*start - L'0') > INT_MAX % 10)) { n = INT_MAX; } else { n *= 10; - n += *start - '0'; + n += *start - L'0'; } start++; } diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_acl_private.h b/dependencies/libarchive-3.5.2/libarchive/archive_acl_private.h similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/archive_acl_private.h rename to dependencies/libarchive-3.5.2/libarchive/archive_acl_private.h diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_blake2.h b/dependencies/libarchive-3.5.2/libarchive/archive_blake2.h similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/archive_blake2.h rename to dependencies/libarchive-3.5.2/libarchive/archive_blake2.h diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_blake2_impl.h b/dependencies/libarchive-3.5.2/libarchive/archive_blake2_impl.h similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/archive_blake2_impl.h rename to dependencies/libarchive-3.5.2/libarchive/archive_blake2_impl.h diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_blake2s_ref.c b/dependencies/libarchive-3.5.2/libarchive/archive_blake2s_ref.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/archive_blake2s_ref.c rename to dependencies/libarchive-3.5.2/libarchive/archive_blake2s_ref.c diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_blake2sp_ref.c b/dependencies/libarchive-3.5.2/libarchive/archive_blake2sp_ref.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/archive_blake2sp_ref.c rename to dependencies/libarchive-3.5.2/libarchive/archive_blake2sp_ref.c diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_check_magic.c b/dependencies/libarchive-3.5.2/libarchive/archive_check_magic.c similarity index 99% rename from dependencies/libarchive-3.4.2/libarchive/archive_check_magic.c rename to dependencies/libarchive-3.5.2/libarchive/archive_check_magic.c index 288ce23..1f40072 100644 --- a/dependencies/libarchive-3.4.2/libarchive/archive_check_magic.c +++ b/dependencies/libarchive-3.5.2/libarchive/archive_check_magic.c @@ -54,7 +54,7 @@ errmsg(const char *m) ssize_t written; while (s > 0) { - written = write(2, m, strlen(m)); + written = write(2, m, s); if (written <= 0) return; m += written; diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_cmdline.c b/dependencies/libarchive-3.5.2/libarchive/archive_cmdline.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/archive_cmdline.c rename to dependencies/libarchive-3.5.2/libarchive/archive_cmdline.c diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_cmdline_private.h b/dependencies/libarchive-3.5.2/libarchive/archive_cmdline_private.h similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/archive_cmdline_private.h rename to dependencies/libarchive-3.5.2/libarchive/archive_cmdline_private.h diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_crc32.h b/dependencies/libarchive-3.5.2/libarchive/archive_crc32.h similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/archive_crc32.h rename to dependencies/libarchive-3.5.2/libarchive/archive_crc32.h diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_cryptor.c b/dependencies/libarchive-3.5.2/libarchive/archive_cryptor.c similarity index 95% rename from dependencies/libarchive-3.4.2/libarchive/archive_cryptor.c rename to dependencies/libarchive-3.5.2/libarchive/archive_cryptor.c index 8ab2b09..d4bca90 100644 --- a/dependencies/libarchive-3.4.2/libarchive/archive_cryptor.c +++ b/dependencies/libarchive-3.5.2/libarchive/archive_cryptor.c @@ -347,8 +347,31 @@ aes_ctr_init(archive_crypto_ctx *ctx, const uint8_t *key, size_t key_len) static int aes_ctr_encrypt_counter(archive_crypto_ctx *ctx) { +#if NETTLE_VERSION_MAJOR < 3 aes_set_encrypt_key(&ctx->ctx, ctx->key_len, ctx->key); aes_encrypt(&ctx->ctx, AES_BLOCK_SIZE, ctx->encr_buf, ctx->nonce); +#else + switch(ctx->key_len) { + case AES128_KEY_SIZE: + aes128_set_encrypt_key(&ctx->ctx.c128, ctx->key); + aes128_encrypt(&ctx->ctx.c128, AES_BLOCK_SIZE, ctx->encr_buf, + ctx->nonce); + break; + case AES192_KEY_SIZE: + aes192_set_encrypt_key(&ctx->ctx.c192, ctx->key); + aes192_encrypt(&ctx->ctx.c192, AES_BLOCK_SIZE, ctx->encr_buf, + ctx->nonce); + break; + case AES256_KEY_SIZE: + aes256_set_encrypt_key(&ctx->ctx.c256, ctx->key); + aes256_encrypt(&ctx->ctx.c256, AES_BLOCK_SIZE, ctx->encr_buf, + ctx->nonce); + break; + default: + return -1; + break; + } +#endif return 0; } diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_cryptor_private.h b/dependencies/libarchive-3.5.2/libarchive/archive_cryptor_private.h similarity index 97% rename from dependencies/libarchive-3.4.2/libarchive/archive_cryptor_private.h rename to dependencies/libarchive-3.5.2/libarchive/archive_cryptor_private.h index 64a2055..16b6d16 100644 --- a/dependencies/libarchive-3.4.2/libarchive/archive_cryptor_private.h +++ b/dependencies/libarchive-3.5.2/libarchive/archive_cryptor_private.h @@ -104,9 +104,18 @@ typedef struct { #include #endif #include +#include typedef struct { +#if NETTLE_VERSION_MAJOR < 3 struct aes_ctx ctx; +#else + union { + struct aes128_ctx c128; + struct aes192_ctx c192; + struct aes256_ctx c256; + } ctx; +#endif uint8_t key[AES_MAX_KEY_SIZE]; unsigned key_len; uint8_t nonce[AES_BLOCK_SIZE]; diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_digest.c b/dependencies/libarchive-3.5.2/libarchive/archive_digest.c similarity index 54% rename from dependencies/libarchive-3.4.2/libarchive/archive_digest.c rename to dependencies/libarchive-3.5.2/libarchive/archive_digest.c index 34c58ac..410df01 100644 --- a/dependencies/libarchive-3.4.2/libarchive/archive_digest.c +++ b/dependencies/libarchive-3.5.2/libarchive/archive_digest.c @@ -109,14 +109,14 @@ win_crypto_Final(unsigned char *buf, size_t bufsize, Digest_CTX *ctx) #if defined(ARCHIVE_CRYPTO_MD5_LIBC) static int -__archive_libc_md5init(archive_md5_ctx *ctx) +__archive_md5init(archive_md5_ctx *ctx) { MD5Init(ctx); return (ARCHIVE_OK); } static int -__archive_libc_md5update(archive_md5_ctx *ctx, const void *indata, +__archive_md5update(archive_md5_ctx *ctx, const void *indata, size_t insize) { MD5Update(ctx, indata, insize); @@ -124,7 +124,7 @@ __archive_libc_md5update(archive_md5_ctx *ctx, const void *indata, } static int -__archive_libc_md5final(archive_md5_ctx *ctx, void *md) +__archive_md5final(archive_md5_ctx *ctx, void *md) { MD5Final(md, ctx); return (ARCHIVE_OK); @@ -133,14 +133,14 @@ __archive_libc_md5final(archive_md5_ctx *ctx, void *md) #elif defined(ARCHIVE_CRYPTO_MD5_LIBMD) static int -__archive_libmd_md5init(archive_md5_ctx *ctx) +__archive_md5init(archive_md5_ctx *ctx) { MD5Init(ctx); return (ARCHIVE_OK); } static int -__archive_libmd_md5update(archive_md5_ctx *ctx, const void *indata, +__archive_md5update(archive_md5_ctx *ctx, const void *indata, size_t insize) { MD5Update(ctx, indata, insize); @@ -148,7 +148,7 @@ __archive_libmd_md5update(archive_md5_ctx *ctx, const void *indata, } static int -__archive_libmd_md5final(archive_md5_ctx *ctx, void *md) +__archive_md5final(archive_md5_ctx *ctx, void *md) { MD5Final(md, ctx); return (ARCHIVE_OK); @@ -157,14 +157,14 @@ __archive_libmd_md5final(archive_md5_ctx *ctx, void *md) #elif defined(ARCHIVE_CRYPTO_MD5_LIBSYSTEM) static int -__archive_libsystem_md5init(archive_md5_ctx *ctx) +__archive_md5init(archive_md5_ctx *ctx) { CC_MD5_Init(ctx); return (ARCHIVE_OK); } static int -__archive_libsystem_md5update(archive_md5_ctx *ctx, const void *indata, +__archive_md5update(archive_md5_ctx *ctx, const void *indata, size_t insize) { CC_MD5_Update(ctx, indata, insize); @@ -172,7 +172,7 @@ __archive_libsystem_md5update(archive_md5_ctx *ctx, const void *indata, } static int -__archive_libsystem_md5final(archive_md5_ctx *ctx, void *md) +__archive_md5final(archive_md5_ctx *ctx, void *md) { CC_MD5_Final(md, ctx); return (ARCHIVE_OK); @@ -181,7 +181,7 @@ __archive_libsystem_md5final(archive_md5_ctx *ctx, void *md) #elif defined(ARCHIVE_CRYPTO_MD5_MBEDTLS) static int -__archive_mbedtls_md5init(archive_md5_ctx *ctx) +__archive_md5init(archive_md5_ctx *ctx) { mbedtls_md5_init(ctx); if (mbedtls_md5_starts_ret(ctx) == 0) @@ -191,7 +191,7 @@ __archive_mbedtls_md5init(archive_md5_ctx *ctx) } static int -__archive_mbedtls_md5update(archive_md5_ctx *ctx, const void *indata, +__archive_md5update(archive_md5_ctx *ctx, const void *indata, size_t insize) { if (mbedtls_md5_update_ret(ctx, indata, insize) == 0) @@ -201,7 +201,7 @@ __archive_mbedtls_md5update(archive_md5_ctx *ctx, const void *indata, } static int -__archive_mbedtls_md5final(archive_md5_ctx *ctx, void *md) +__archive_md5final(archive_md5_ctx *ctx, void *md) { if (mbedtls_md5_finish_ret(ctx, md) == 0) { mbedtls_md5_free(ctx); @@ -215,14 +215,14 @@ __archive_mbedtls_md5final(archive_md5_ctx *ctx, void *md) #elif defined(ARCHIVE_CRYPTO_MD5_NETTLE) static int -__archive_nettle_md5init(archive_md5_ctx *ctx) +__archive_md5init(archive_md5_ctx *ctx) { md5_init(ctx); return (ARCHIVE_OK); } static int -__archive_nettle_md5update(archive_md5_ctx *ctx, const void *indata, +__archive_md5update(archive_md5_ctx *ctx, const void *indata, size_t insize) { md5_update(ctx, insize, indata); @@ -230,7 +230,7 @@ __archive_nettle_md5update(archive_md5_ctx *ctx, const void *indata, } static int -__archive_nettle_md5final(archive_md5_ctx *ctx, void *md) +__archive_md5final(archive_md5_ctx *ctx, void *md) { md5_digest(ctx, MD5_DIGEST_SIZE, md); return (ARCHIVE_OK); @@ -239,7 +239,7 @@ __archive_nettle_md5final(archive_md5_ctx *ctx, void *md) #elif defined(ARCHIVE_CRYPTO_MD5_OPENSSL) static int -__archive_openssl_md5init(archive_md5_ctx *ctx) +__archive_md5init(archive_md5_ctx *ctx) { if ((*ctx = EVP_MD_CTX_new()) == NULL) return (ARCHIVE_FAILED); @@ -248,7 +248,7 @@ __archive_openssl_md5init(archive_md5_ctx *ctx) } static int -__archive_openssl_md5update(archive_md5_ctx *ctx, const void *indata, +__archive_md5update(archive_md5_ctx *ctx, const void *indata, size_t insize) { EVP_DigestUpdate(*ctx, indata, insize); @@ -256,7 +256,7 @@ __archive_openssl_md5update(archive_md5_ctx *ctx, const void *indata, } static int -__archive_openssl_md5final(archive_md5_ctx *ctx, void *md) +__archive_md5final(archive_md5_ctx *ctx, void *md) { /* HACK: archive_write_set_format_xar.c is finalizing empty contexts, so * this is meant to cope with that. Real fix is probably to fix @@ -273,20 +273,20 @@ __archive_openssl_md5final(archive_md5_ctx *ctx, void *md) #elif defined(ARCHIVE_CRYPTO_MD5_WIN) static int -__archive_windowsapi_md5init(archive_md5_ctx *ctx) +__archive_md5init(archive_md5_ctx *ctx) { return (win_crypto_init(ctx, CALG_MD5)); } static int -__archive_windowsapi_md5update(archive_md5_ctx *ctx, const void *indata, +__archive_md5update(archive_md5_ctx *ctx, const void *indata, size_t insize) { return (win_crypto_Update(ctx, indata, insize)); } static int -__archive_windowsapi_md5final(archive_md5_ctx *ctx, void *md) +__archive_md5final(archive_md5_ctx *ctx, void *md) { return (win_crypto_Final(md, 16, ctx)); } @@ -294,14 +294,14 @@ __archive_windowsapi_md5final(archive_md5_ctx *ctx, void *md) #else static int -__archive_stub_md5init(archive_md5_ctx *ctx) +__archive_md5init(archive_md5_ctx *ctx) { (void)ctx; /* UNUSED */ return (ARCHIVE_FAILED); } static int -__archive_stub_md5update(archive_md5_ctx *ctx, const void *indata, +__archive_md5update(archive_md5_ctx *ctx, const void *indata, size_t insize) { (void)ctx; /* UNUSED */ @@ -311,7 +311,7 @@ __archive_stub_md5update(archive_md5_ctx *ctx, const void *indata, } static int -__archive_stub_md5final(archive_md5_ctx *ctx, void *md) +__archive_md5final(archive_md5_ctx *ctx, void *md) { (void)ctx; /* UNUSED */ (void)md; /* UNUSED */ @@ -324,14 +324,14 @@ __archive_stub_md5final(archive_md5_ctx *ctx, void *md) #if defined(ARCHIVE_CRYPTO_RMD160_LIBC) static int -__archive_libc_ripemd160init(archive_rmd160_ctx *ctx) +__archive_ripemd160init(archive_rmd160_ctx *ctx) { RMD160Init(ctx); return (ARCHIVE_OK); } static int -__archive_libc_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, +__archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, size_t insize) { RMD160Update(ctx, indata, insize); @@ -339,7 +339,7 @@ __archive_libc_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, } static int -__archive_libc_ripemd160final(archive_rmd160_ctx *ctx, void *md) +__archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) { RMD160Final(md, ctx); return (ARCHIVE_OK); @@ -348,14 +348,14 @@ __archive_libc_ripemd160final(archive_rmd160_ctx *ctx, void *md) #elif defined(ARCHIVE_CRYPTO_RMD160_LIBMD) static int -__archive_libmd_ripemd160init(archive_rmd160_ctx *ctx) +__archive_ripemd160init(archive_rmd160_ctx *ctx) { RIPEMD160_Init(ctx); return (ARCHIVE_OK); } static int -__archive_libmd_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, +__archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, size_t insize) { RIPEMD160_Update(ctx, indata, insize); @@ -363,7 +363,7 @@ __archive_libmd_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, } static int -__archive_libmd_ripemd160final(archive_rmd160_ctx *ctx, void *md) +__archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) { RIPEMD160_Final(md, ctx); return (ARCHIVE_OK); @@ -372,7 +372,7 @@ __archive_libmd_ripemd160final(archive_rmd160_ctx *ctx, void *md) #elif defined(ARCHIVE_CRYPTO_RMD160_MBEDTLS) static int -__archive_mbedtls_ripemd160init(archive_rmd160_ctx *ctx) +__archive_ripemd160init(archive_rmd160_ctx *ctx) { mbedtls_ripemd160_init(ctx); if (mbedtls_ripemd160_starts_ret(ctx) == 0) @@ -382,7 +382,7 @@ __archive_mbedtls_ripemd160init(archive_rmd160_ctx *ctx) } static int -__archive_mbedtls_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, +__archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, size_t insize) { if (mbedtls_ripemd160_update_ret(ctx, indata, insize) == 0) @@ -392,7 +392,7 @@ __archive_mbedtls_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, } static int -__archive_mbedtls_ripemd160final(archive_rmd160_ctx *ctx, void *md) +__archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) { if (mbedtls_ripemd160_finish_ret(ctx, md) == 0) { mbedtls_ripemd160_free(ctx); @@ -406,14 +406,14 @@ __archive_mbedtls_ripemd160final(archive_rmd160_ctx *ctx, void *md) #elif defined(ARCHIVE_CRYPTO_RMD160_NETTLE) static int -__archive_nettle_ripemd160init(archive_rmd160_ctx *ctx) +__archive_ripemd160init(archive_rmd160_ctx *ctx) { ripemd160_init(ctx); return (ARCHIVE_OK); } static int -__archive_nettle_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, +__archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, size_t insize) { ripemd160_update(ctx, insize, indata); @@ -421,7 +421,7 @@ __archive_nettle_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, } static int -__archive_nettle_ripemd160final(archive_rmd160_ctx *ctx, void *md) +__archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) { ripemd160_digest(ctx, RIPEMD160_DIGEST_SIZE, md); return (ARCHIVE_OK); @@ -430,7 +430,7 @@ __archive_nettle_ripemd160final(archive_rmd160_ctx *ctx, void *md) #elif defined(ARCHIVE_CRYPTO_RMD160_OPENSSL) static int -__archive_openssl_ripemd160init(archive_rmd160_ctx *ctx) +__archive_ripemd160init(archive_rmd160_ctx *ctx) { if ((*ctx = EVP_MD_CTX_new()) == NULL) return (ARCHIVE_FAILED); @@ -439,7 +439,7 @@ __archive_openssl_ripemd160init(archive_rmd160_ctx *ctx) } static int -__archive_openssl_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, +__archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, size_t insize) { EVP_DigestUpdate(*ctx, indata, insize); @@ -447,7 +447,7 @@ __archive_openssl_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, } static int -__archive_openssl_ripemd160final(archive_rmd160_ctx *ctx, void *md) +__archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) { if (*ctx) { EVP_DigestFinal(*ctx, md, NULL); @@ -460,14 +460,14 @@ __archive_openssl_ripemd160final(archive_rmd160_ctx *ctx, void *md) #else static int -__archive_stub_ripemd160init(archive_rmd160_ctx *ctx) +__archive_ripemd160init(archive_rmd160_ctx *ctx) { (void)ctx; /* UNUSED */ return (ARCHIVE_FAILED); } static int -__archive_stub_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, +__archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, size_t insize) { (void)ctx; /* UNUSED */ @@ -477,7 +477,7 @@ __archive_stub_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, } static int -__archive_stub_ripemd160final(archive_rmd160_ctx *ctx, void *md) +__archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) { (void)ctx; /* UNUSED */ (void)md; /* UNUSED */ @@ -490,14 +490,14 @@ __archive_stub_ripemd160final(archive_rmd160_ctx *ctx, void *md) #if defined(ARCHIVE_CRYPTO_SHA1_LIBC) static int -__archive_libc_sha1init(archive_sha1_ctx *ctx) +__archive_sha1init(archive_sha1_ctx *ctx) { SHA1Init(ctx); return (ARCHIVE_OK); } static int -__archive_libc_sha1update(archive_sha1_ctx *ctx, const void *indata, +__archive_sha1update(archive_sha1_ctx *ctx, const void *indata, size_t insize) { SHA1Update(ctx, indata, insize); @@ -505,7 +505,7 @@ __archive_libc_sha1update(archive_sha1_ctx *ctx, const void *indata, } static int -__archive_libc_sha1final(archive_sha1_ctx *ctx, void *md) +__archive_sha1final(archive_sha1_ctx *ctx, void *md) { SHA1Final(md, ctx); return (ARCHIVE_OK); @@ -514,14 +514,14 @@ __archive_libc_sha1final(archive_sha1_ctx *ctx, void *md) #elif defined(ARCHIVE_CRYPTO_SHA1_LIBMD) static int -__archive_libmd_sha1init(archive_sha1_ctx *ctx) +__archive_sha1init(archive_sha1_ctx *ctx) { SHA1_Init(ctx); return (ARCHIVE_OK); } static int -__archive_libmd_sha1update(archive_sha1_ctx *ctx, const void *indata, +__archive_sha1update(archive_sha1_ctx *ctx, const void *indata, size_t insize) { SHA1_Update(ctx, indata, insize); @@ -529,7 +529,7 @@ __archive_libmd_sha1update(archive_sha1_ctx *ctx, const void *indata, } static int -__archive_libmd_sha1final(archive_sha1_ctx *ctx, void *md) +__archive_sha1final(archive_sha1_ctx *ctx, void *md) { SHA1_Final(md, ctx); return (ARCHIVE_OK); @@ -538,14 +538,14 @@ __archive_libmd_sha1final(archive_sha1_ctx *ctx, void *md) #elif defined(ARCHIVE_CRYPTO_SHA1_LIBSYSTEM) static int -__archive_libsystem_sha1init(archive_sha1_ctx *ctx) +__archive_sha1init(archive_sha1_ctx *ctx) { CC_SHA1_Init(ctx); return (ARCHIVE_OK); } static int -__archive_libsystem_sha1update(archive_sha1_ctx *ctx, const void *indata, +__archive_sha1update(archive_sha1_ctx *ctx, const void *indata, size_t insize) { CC_SHA1_Update(ctx, indata, insize); @@ -553,7 +553,7 @@ __archive_libsystem_sha1update(archive_sha1_ctx *ctx, const void *indata, } static int -__archive_libsystem_sha1final(archive_sha1_ctx *ctx, void *md) +__archive_sha1final(archive_sha1_ctx *ctx, void *md) { CC_SHA1_Final(md, ctx); return (ARCHIVE_OK); @@ -562,7 +562,7 @@ __archive_libsystem_sha1final(archive_sha1_ctx *ctx, void *md) #elif defined(ARCHIVE_CRYPTO_SHA1_MBEDTLS) static int -__archive_mbedtls_sha1init(archive_sha1_ctx *ctx) +__archive_sha1init(archive_sha1_ctx *ctx) { mbedtls_sha1_init(ctx); if (mbedtls_sha1_starts_ret(ctx) == 0) @@ -572,7 +572,7 @@ __archive_mbedtls_sha1init(archive_sha1_ctx *ctx) } static int -__archive_mbedtls_sha1update(archive_sha1_ctx *ctx, const void *indata, +__archive_sha1update(archive_sha1_ctx *ctx, const void *indata, size_t insize) { if (mbedtls_sha1_update_ret(ctx, indata, insize) == 0) @@ -582,7 +582,7 @@ __archive_mbedtls_sha1update(archive_sha1_ctx *ctx, const void *indata, } static int -__archive_mbedtls_sha1final(archive_sha1_ctx *ctx, void *md) +__archive_sha1final(archive_sha1_ctx *ctx, void *md) { if (mbedtls_sha1_finish_ret(ctx, md) == 0) { mbedtls_sha1_free(ctx); @@ -596,14 +596,14 @@ __archive_mbedtls_sha1final(archive_sha1_ctx *ctx, void *md) #elif defined(ARCHIVE_CRYPTO_SHA1_NETTLE) static int -__archive_nettle_sha1init(archive_sha1_ctx *ctx) +__archive_sha1init(archive_sha1_ctx *ctx) { sha1_init(ctx); return (ARCHIVE_OK); } static int -__archive_nettle_sha1update(archive_sha1_ctx *ctx, const void *indata, +__archive_sha1update(archive_sha1_ctx *ctx, const void *indata, size_t insize) { sha1_update(ctx, insize, indata); @@ -611,7 +611,7 @@ __archive_nettle_sha1update(archive_sha1_ctx *ctx, const void *indata, } static int -__archive_nettle_sha1final(archive_sha1_ctx *ctx, void *md) +__archive_sha1final(archive_sha1_ctx *ctx, void *md) { sha1_digest(ctx, SHA1_DIGEST_SIZE, md); return (ARCHIVE_OK); @@ -620,7 +620,7 @@ __archive_nettle_sha1final(archive_sha1_ctx *ctx, void *md) #elif defined(ARCHIVE_CRYPTO_SHA1_OPENSSL) static int -__archive_openssl_sha1init(archive_sha1_ctx *ctx) +__archive_sha1init(archive_sha1_ctx *ctx) { if ((*ctx = EVP_MD_CTX_new()) == NULL) return (ARCHIVE_FAILED); @@ -629,7 +629,7 @@ __archive_openssl_sha1init(archive_sha1_ctx *ctx) } static int -__archive_openssl_sha1update(archive_sha1_ctx *ctx, const void *indata, +__archive_sha1update(archive_sha1_ctx *ctx, const void *indata, size_t insize) { EVP_DigestUpdate(*ctx, indata, insize); @@ -637,7 +637,7 @@ __archive_openssl_sha1update(archive_sha1_ctx *ctx, const void *indata, } static int -__archive_openssl_sha1final(archive_sha1_ctx *ctx, void *md) +__archive_sha1final(archive_sha1_ctx *ctx, void *md) { /* HACK: archive_write_set_format_xar.c is finalizing empty contexts, so * this is meant to cope with that. Real fix is probably to fix @@ -654,20 +654,20 @@ __archive_openssl_sha1final(archive_sha1_ctx *ctx, void *md) #elif defined(ARCHIVE_CRYPTO_SHA1_WIN) static int -__archive_windowsapi_sha1init(archive_sha1_ctx *ctx) +__archive_sha1init(archive_sha1_ctx *ctx) { return (win_crypto_init(ctx, CALG_SHA1)); } static int -__archive_windowsapi_sha1update(archive_sha1_ctx *ctx, const void *indata, +__archive_sha1update(archive_sha1_ctx *ctx, const void *indata, size_t insize) { return (win_crypto_Update(ctx, indata, insize)); } static int -__archive_windowsapi_sha1final(archive_sha1_ctx *ctx, void *md) +__archive_sha1final(archive_sha1_ctx *ctx, void *md) { return (win_crypto_Final(md, 20, ctx)); } @@ -675,14 +675,14 @@ __archive_windowsapi_sha1final(archive_sha1_ctx *ctx, void *md) #else static int -__archive_stub_sha1init(archive_sha1_ctx *ctx) +__archive_sha1init(archive_sha1_ctx *ctx) { (void)ctx; /* UNUSED */ return (ARCHIVE_FAILED); } static int -__archive_stub_sha1update(archive_sha1_ctx *ctx, const void *indata, +__archive_sha1update(archive_sha1_ctx *ctx, const void *indata, size_t insize) { (void)ctx; /* UNUSED */ @@ -692,7 +692,7 @@ __archive_stub_sha1update(archive_sha1_ctx *ctx, const void *indata, } static int -__archive_stub_sha1final(archive_sha1_ctx *ctx, void *md) +__archive_sha1final(archive_sha1_ctx *ctx, void *md) { (void)ctx; /* UNUSED */ (void)md; /* UNUSED */ @@ -705,14 +705,14 @@ __archive_stub_sha1final(archive_sha1_ctx *ctx, void *md) #if defined(ARCHIVE_CRYPTO_SHA256_LIBC) static int -__archive_libc_sha256init(archive_sha256_ctx *ctx) +__archive_sha256init(archive_sha256_ctx *ctx) { SHA256_Init(ctx); return (ARCHIVE_OK); } static int -__archive_libc_sha256update(archive_sha256_ctx *ctx, const void *indata, +__archive_sha256update(archive_sha256_ctx *ctx, const void *indata, size_t insize) { SHA256_Update(ctx, indata, insize); @@ -720,7 +720,7 @@ __archive_libc_sha256update(archive_sha256_ctx *ctx, const void *indata, } static int -__archive_libc_sha256final(archive_sha256_ctx *ctx, void *md) +__archive_sha256final(archive_sha256_ctx *ctx, void *md) { SHA256_Final(md, ctx); return (ARCHIVE_OK); @@ -729,14 +729,14 @@ __archive_libc_sha256final(archive_sha256_ctx *ctx, void *md) #elif defined(ARCHIVE_CRYPTO_SHA256_LIBC2) static int -__archive_libc2_sha256init(archive_sha256_ctx *ctx) +__archive_sha256init(archive_sha256_ctx *ctx) { SHA256Init(ctx); return (ARCHIVE_OK); } static int -__archive_libc2_sha256update(archive_sha256_ctx *ctx, const void *indata, +__archive_sha256update(archive_sha256_ctx *ctx, const void *indata, size_t insize) { SHA256Update(ctx, indata, insize); @@ -744,7 +744,7 @@ __archive_libc2_sha256update(archive_sha256_ctx *ctx, const void *indata, } static int -__archive_libc2_sha256final(archive_sha256_ctx *ctx, void *md) +__archive_sha256final(archive_sha256_ctx *ctx, void *md) { SHA256Final(md, ctx); return (ARCHIVE_OK); @@ -753,14 +753,14 @@ __archive_libc2_sha256final(archive_sha256_ctx *ctx, void *md) #elif defined(ARCHIVE_CRYPTO_SHA256_LIBC3) static int -__archive_libc3_sha256init(archive_sha256_ctx *ctx) +__archive_sha256init(archive_sha256_ctx *ctx) { SHA256Init(ctx); return (ARCHIVE_OK); } static int -__archive_libc3_sha256update(archive_sha256_ctx *ctx, const void *indata, +__archive_sha256update(archive_sha256_ctx *ctx, const void *indata, size_t insize) { SHA256Update(ctx, indata, insize); @@ -768,7 +768,7 @@ __archive_libc3_sha256update(archive_sha256_ctx *ctx, const void *indata, } static int -__archive_libc3_sha256final(archive_sha256_ctx *ctx, void *md) +__archive_sha256final(archive_sha256_ctx *ctx, void *md) { SHA256Final(md, ctx); return (ARCHIVE_OK); @@ -777,14 +777,14 @@ __archive_libc3_sha256final(archive_sha256_ctx *ctx, void *md) #elif defined(ARCHIVE_CRYPTO_SHA256_LIBMD) static int -__archive_libmd_sha256init(archive_sha256_ctx *ctx) +__archive_sha256init(archive_sha256_ctx *ctx) { SHA256_Init(ctx); return (ARCHIVE_OK); } static int -__archive_libmd_sha256update(archive_sha256_ctx *ctx, const void *indata, +__archive_sha256update(archive_sha256_ctx *ctx, const void *indata, size_t insize) { SHA256_Update(ctx, indata, insize); @@ -792,7 +792,7 @@ __archive_libmd_sha256update(archive_sha256_ctx *ctx, const void *indata, } static int -__archive_libmd_sha256final(archive_sha256_ctx *ctx, void *md) +__archive_sha256final(archive_sha256_ctx *ctx, void *md) { SHA256_Final(md, ctx); return (ARCHIVE_OK); @@ -801,14 +801,14 @@ __archive_libmd_sha256final(archive_sha256_ctx *ctx, void *md) #elif defined(ARCHIVE_CRYPTO_SHA256_LIBSYSTEM) static int -__archive_libsystem_sha256init(archive_sha256_ctx *ctx) +__archive_sha256init(archive_sha256_ctx *ctx) { CC_SHA256_Init(ctx); return (ARCHIVE_OK); } static int -__archive_libsystem_sha256update(archive_sha256_ctx *ctx, const void *indata, +__archive_sha256update(archive_sha256_ctx *ctx, const void *indata, size_t insize) { CC_SHA256_Update(ctx, indata, insize); @@ -816,7 +816,7 @@ __archive_libsystem_sha256update(archive_sha256_ctx *ctx, const void *indata, } static int -__archive_libsystem_sha256final(archive_sha256_ctx *ctx, void *md) +__archive_sha256final(archive_sha256_ctx *ctx, void *md) { CC_SHA256_Final(md, ctx); return (ARCHIVE_OK); @@ -825,7 +825,7 @@ __archive_libsystem_sha256final(archive_sha256_ctx *ctx, void *md) #elif defined(ARCHIVE_CRYPTO_SHA256_MBEDTLS) static int -__archive_mbedtls_sha256init(archive_sha256_ctx *ctx) +__archive_sha256init(archive_sha256_ctx *ctx) { mbedtls_sha256_init(ctx); if (mbedtls_sha256_starts_ret(ctx, 0) == 0) @@ -835,7 +835,7 @@ __archive_mbedtls_sha256init(archive_sha256_ctx *ctx) } static int -__archive_mbedtls_sha256update(archive_sha256_ctx *ctx, const void *indata, +__archive_sha256update(archive_sha256_ctx *ctx, const void *indata, size_t insize) { if (mbedtls_sha256_update_ret(ctx, indata, insize) == 0) @@ -845,7 +845,7 @@ __archive_mbedtls_sha256update(archive_sha256_ctx *ctx, const void *indata, } static int -__archive_mbedtls_sha256final(archive_sha256_ctx *ctx, void *md) +__archive_sha256final(archive_sha256_ctx *ctx, void *md) { if (mbedtls_sha256_finish_ret(ctx, md) == 0) { mbedtls_sha256_free(ctx); @@ -859,14 +859,14 @@ __archive_mbedtls_sha256final(archive_sha256_ctx *ctx, void *md) #elif defined(ARCHIVE_CRYPTO_SHA256_NETTLE) static int -__archive_nettle_sha256init(archive_sha256_ctx *ctx) +__archive_sha256init(archive_sha256_ctx *ctx) { sha256_init(ctx); return (ARCHIVE_OK); } static int -__archive_nettle_sha256update(archive_sha256_ctx *ctx, const void *indata, +__archive_sha256update(archive_sha256_ctx *ctx, const void *indata, size_t insize) { sha256_update(ctx, insize, indata); @@ -874,7 +874,7 @@ __archive_nettle_sha256update(archive_sha256_ctx *ctx, const void *indata, } static int -__archive_nettle_sha256final(archive_sha256_ctx *ctx, void *md) +__archive_sha256final(archive_sha256_ctx *ctx, void *md) { sha256_digest(ctx, SHA256_DIGEST_SIZE, md); return (ARCHIVE_OK); @@ -883,7 +883,7 @@ __archive_nettle_sha256final(archive_sha256_ctx *ctx, void *md) #elif defined(ARCHIVE_CRYPTO_SHA256_OPENSSL) static int -__archive_openssl_sha256init(archive_sha256_ctx *ctx) +__archive_sha256init(archive_sha256_ctx *ctx) { if ((*ctx = EVP_MD_CTX_new()) == NULL) return (ARCHIVE_FAILED); @@ -892,7 +892,7 @@ __archive_openssl_sha256init(archive_sha256_ctx *ctx) } static int -__archive_openssl_sha256update(archive_sha256_ctx *ctx, const void *indata, +__archive_sha256update(archive_sha256_ctx *ctx, const void *indata, size_t insize) { EVP_DigestUpdate(*ctx, indata, insize); @@ -900,7 +900,7 @@ __archive_openssl_sha256update(archive_sha256_ctx *ctx, const void *indata, } static int -__archive_openssl_sha256final(archive_sha256_ctx *ctx, void *md) +__archive_sha256final(archive_sha256_ctx *ctx, void *md) { if (*ctx) { EVP_DigestFinal(*ctx, md, NULL); @@ -913,20 +913,20 @@ __archive_openssl_sha256final(archive_sha256_ctx *ctx, void *md) #elif defined(ARCHIVE_CRYPTO_SHA256_WIN) static int -__archive_windowsapi_sha256init(archive_sha256_ctx *ctx) +__archive_sha256init(archive_sha256_ctx *ctx) { return (win_crypto_init(ctx, CALG_SHA_256)); } static int -__archive_windowsapi_sha256update(archive_sha256_ctx *ctx, const void *indata, +__archive_sha256update(archive_sha256_ctx *ctx, const void *indata, size_t insize) { return (win_crypto_Update(ctx, indata, insize)); } static int -__archive_windowsapi_sha256final(archive_sha256_ctx *ctx, void *md) +__archive_sha256final(archive_sha256_ctx *ctx, void *md) { return (win_crypto_Final(md, 32, ctx)); } @@ -934,14 +934,14 @@ __archive_windowsapi_sha256final(archive_sha256_ctx *ctx, void *md) #else static int -__archive_stub_sha256init(archive_sha256_ctx *ctx) +__archive_sha256init(archive_sha256_ctx *ctx) { (void)ctx; /* UNUSED */ return (ARCHIVE_FAILED); } static int -__archive_stub_sha256update(archive_sha256_ctx *ctx, const void *indata, +__archive_sha256update(archive_sha256_ctx *ctx, const void *indata, size_t insize) { (void)ctx; /* UNUSED */ @@ -951,7 +951,7 @@ __archive_stub_sha256update(archive_sha256_ctx *ctx, const void *indata, } static int -__archive_stub_sha256final(archive_sha256_ctx *ctx, void *md) +__archive_sha256final(archive_sha256_ctx *ctx, void *md) { (void)ctx; /* UNUSED */ (void)md; /* UNUSED */ @@ -964,14 +964,14 @@ __archive_stub_sha256final(archive_sha256_ctx *ctx, void *md) #if defined(ARCHIVE_CRYPTO_SHA384_LIBC) static int -__archive_libc_sha384init(archive_sha384_ctx *ctx) +__archive_sha384init(archive_sha384_ctx *ctx) { SHA384_Init(ctx); return (ARCHIVE_OK); } static int -__archive_libc_sha384update(archive_sha384_ctx *ctx, const void *indata, +__archive_sha384update(archive_sha384_ctx *ctx, const void *indata, size_t insize) { SHA384_Update(ctx, indata, insize); @@ -979,7 +979,7 @@ __archive_libc_sha384update(archive_sha384_ctx *ctx, const void *indata, } static int -__archive_libc_sha384final(archive_sha384_ctx *ctx, void *md) +__archive_sha384final(archive_sha384_ctx *ctx, void *md) { SHA384_Final(md, ctx); return (ARCHIVE_OK); @@ -988,14 +988,14 @@ __archive_libc_sha384final(archive_sha384_ctx *ctx, void *md) #elif defined(ARCHIVE_CRYPTO_SHA384_LIBC2) static int -__archive_libc2_sha384init(archive_sha384_ctx *ctx) +__archive_sha384init(archive_sha384_ctx *ctx) { SHA384Init(ctx); return (ARCHIVE_OK); } static int -__archive_libc2_sha384update(archive_sha384_ctx *ctx, const void *indata, +__archive_sha384update(archive_sha384_ctx *ctx, const void *indata, size_t insize) { SHA384Update(ctx, indata, insize); @@ -1003,7 +1003,7 @@ __archive_libc2_sha384update(archive_sha384_ctx *ctx, const void *indata, } static int -__archive_libc2_sha384final(archive_sha384_ctx *ctx, void *md) +__archive_sha384final(archive_sha384_ctx *ctx, void *md) { SHA384Final(md, ctx); return (ARCHIVE_OK); @@ -1012,14 +1012,14 @@ __archive_libc2_sha384final(archive_sha384_ctx *ctx, void *md) #elif defined(ARCHIVE_CRYPTO_SHA384_LIBC3) static int -__archive_libc3_sha384init(archive_sha384_ctx *ctx) +__archive_sha384init(archive_sha384_ctx *ctx) { SHA384Init(ctx); return (ARCHIVE_OK); } static int -__archive_libc3_sha384update(archive_sha384_ctx *ctx, const void *indata, +__archive_sha384update(archive_sha384_ctx *ctx, const void *indata, size_t insize) { SHA384Update(ctx, indata, insize); @@ -1027,7 +1027,7 @@ __archive_libc3_sha384update(archive_sha384_ctx *ctx, const void *indata, } static int -__archive_libc3_sha384final(archive_sha384_ctx *ctx, void *md) +__archive_sha384final(archive_sha384_ctx *ctx, void *md) { SHA384Final(md, ctx); return (ARCHIVE_OK); @@ -1036,14 +1036,14 @@ __archive_libc3_sha384final(archive_sha384_ctx *ctx, void *md) #elif defined(ARCHIVE_CRYPTO_SHA384_LIBSYSTEM) static int -__archive_libsystem_sha384init(archive_sha384_ctx *ctx) +__archive_sha384init(archive_sha384_ctx *ctx) { CC_SHA384_Init(ctx); return (ARCHIVE_OK); } static int -__archive_libsystem_sha384update(archive_sha384_ctx *ctx, const void *indata, +__archive_sha384update(archive_sha384_ctx *ctx, const void *indata, size_t insize) { CC_SHA384_Update(ctx, indata, insize); @@ -1051,7 +1051,7 @@ __archive_libsystem_sha384update(archive_sha384_ctx *ctx, const void *indata, } static int -__archive_libsystem_sha384final(archive_sha384_ctx *ctx, void *md) +__archive_sha384final(archive_sha384_ctx *ctx, void *md) { CC_SHA384_Final(md, ctx); return (ARCHIVE_OK); @@ -1060,7 +1060,7 @@ __archive_libsystem_sha384final(archive_sha384_ctx *ctx, void *md) #elif defined(ARCHIVE_CRYPTO_SHA384_MBEDTLS) static int -__archive_mbedtls_sha384init(archive_sha384_ctx *ctx) +__archive_sha384init(archive_sha384_ctx *ctx) { mbedtls_sha512_init(ctx); if (mbedtls_sha512_starts_ret(ctx, 1) == 0) @@ -1070,7 +1070,7 @@ __archive_mbedtls_sha384init(archive_sha384_ctx *ctx) } static int -__archive_mbedtls_sha384update(archive_sha384_ctx *ctx, const void *indata, +__archive_sha384update(archive_sha384_ctx *ctx, const void *indata, size_t insize) { if (mbedtls_sha512_update_ret(ctx, indata, insize) == 0) @@ -1080,7 +1080,7 @@ __archive_mbedtls_sha384update(archive_sha384_ctx *ctx, const void *indata, } static int -__archive_mbedtls_sha384final(archive_sha384_ctx *ctx, void *md) +__archive_sha384final(archive_sha384_ctx *ctx, void *md) { if (mbedtls_sha512_finish_ret(ctx, md) == 0) { mbedtls_sha512_free(ctx); @@ -1094,14 +1094,14 @@ __archive_mbedtls_sha384final(archive_sha384_ctx *ctx, void *md) #elif defined(ARCHIVE_CRYPTO_SHA384_NETTLE) static int -__archive_nettle_sha384init(archive_sha384_ctx *ctx) +__archive_sha384init(archive_sha384_ctx *ctx) { sha384_init(ctx); return (ARCHIVE_OK); } static int -__archive_nettle_sha384update(archive_sha384_ctx *ctx, const void *indata, +__archive_sha384update(archive_sha384_ctx *ctx, const void *indata, size_t insize) { sha384_update(ctx, insize, indata); @@ -1109,7 +1109,7 @@ __archive_nettle_sha384update(archive_sha384_ctx *ctx, const void *indata, } static int -__archive_nettle_sha384final(archive_sha384_ctx *ctx, void *md) +__archive_sha384final(archive_sha384_ctx *ctx, void *md) { sha384_digest(ctx, SHA384_DIGEST_SIZE, md); return (ARCHIVE_OK); @@ -1118,7 +1118,7 @@ __archive_nettle_sha384final(archive_sha384_ctx *ctx, void *md) #elif defined(ARCHIVE_CRYPTO_SHA384_OPENSSL) static int -__archive_openssl_sha384init(archive_sha384_ctx *ctx) +__archive_sha384init(archive_sha384_ctx *ctx) { if ((*ctx = EVP_MD_CTX_new()) == NULL) return (ARCHIVE_FAILED); @@ -1127,7 +1127,7 @@ __archive_openssl_sha384init(archive_sha384_ctx *ctx) } static int -__archive_openssl_sha384update(archive_sha384_ctx *ctx, const void *indata, +__archive_sha384update(archive_sha384_ctx *ctx, const void *indata, size_t insize) { EVP_DigestUpdate(*ctx, indata, insize); @@ -1135,7 +1135,7 @@ __archive_openssl_sha384update(archive_sha384_ctx *ctx, const void *indata, } static int -__archive_openssl_sha384final(archive_sha384_ctx *ctx, void *md) +__archive_sha384final(archive_sha384_ctx *ctx, void *md) { if (*ctx) { EVP_DigestFinal(*ctx, md, NULL); @@ -1148,20 +1148,20 @@ __archive_openssl_sha384final(archive_sha384_ctx *ctx, void *md) #elif defined(ARCHIVE_CRYPTO_SHA384_WIN) static int -__archive_windowsapi_sha384init(archive_sha384_ctx *ctx) +__archive_sha384init(archive_sha384_ctx *ctx) { return (win_crypto_init(ctx, CALG_SHA_384)); } static int -__archive_windowsapi_sha384update(archive_sha384_ctx *ctx, const void *indata, +__archive_sha384update(archive_sha384_ctx *ctx, const void *indata, size_t insize) { return (win_crypto_Update(ctx, indata, insize)); } static int -__archive_windowsapi_sha384final(archive_sha384_ctx *ctx, void *md) +__archive_sha384final(archive_sha384_ctx *ctx, void *md) { return (win_crypto_Final(md, 48, ctx)); } @@ -1169,14 +1169,14 @@ __archive_windowsapi_sha384final(archive_sha384_ctx *ctx, void *md) #else static int -__archive_stub_sha384init(archive_sha384_ctx *ctx) +__archive_sha384init(archive_sha384_ctx *ctx) { (void)ctx; /* UNUSED */ return (ARCHIVE_FAILED); } static int -__archive_stub_sha384update(archive_sha384_ctx *ctx, const void *indata, +__archive_sha384update(archive_sha384_ctx *ctx, const void *indata, size_t insize) { (void)ctx; /* UNUSED */ @@ -1186,7 +1186,7 @@ __archive_stub_sha384update(archive_sha384_ctx *ctx, const void *indata, } static int -__archive_stub_sha384final(archive_sha384_ctx *ctx, void *md) +__archive_sha384final(archive_sha384_ctx *ctx, void *md) { (void)ctx; /* UNUSED */ (void)md; /* UNUSED */ @@ -1199,14 +1199,14 @@ __archive_stub_sha384final(archive_sha384_ctx *ctx, void *md) #if defined(ARCHIVE_CRYPTO_SHA512_LIBC) static int -__archive_libc_sha512init(archive_sha512_ctx *ctx) +__archive_sha512init(archive_sha512_ctx *ctx) { SHA512_Init(ctx); return (ARCHIVE_OK); } static int -__archive_libc_sha512update(archive_sha512_ctx *ctx, const void *indata, +__archive_sha512update(archive_sha512_ctx *ctx, const void *indata, size_t insize) { SHA512_Update(ctx, indata, insize); @@ -1214,7 +1214,7 @@ __archive_libc_sha512update(archive_sha512_ctx *ctx, const void *indata, } static int -__archive_libc_sha512final(archive_sha512_ctx *ctx, void *md) +__archive_sha512final(archive_sha512_ctx *ctx, void *md) { SHA512_Final(md, ctx); return (ARCHIVE_OK); @@ -1223,14 +1223,14 @@ __archive_libc_sha512final(archive_sha512_ctx *ctx, void *md) #elif defined(ARCHIVE_CRYPTO_SHA512_LIBC2) static int -__archive_libc2_sha512init(archive_sha512_ctx *ctx) +__archive_sha512init(archive_sha512_ctx *ctx) { SHA512Init(ctx); return (ARCHIVE_OK); } static int -__archive_libc2_sha512update(archive_sha512_ctx *ctx, const void *indata, +__archive_sha512update(archive_sha512_ctx *ctx, const void *indata, size_t insize) { SHA512Update(ctx, indata, insize); @@ -1238,7 +1238,7 @@ __archive_libc2_sha512update(archive_sha512_ctx *ctx, const void *indata, } static int -__archive_libc2_sha512final(archive_sha512_ctx *ctx, void *md) +__archive_sha512final(archive_sha512_ctx *ctx, void *md) { SHA512Final(md, ctx); return (ARCHIVE_OK); @@ -1247,14 +1247,14 @@ __archive_libc2_sha512final(archive_sha512_ctx *ctx, void *md) #elif defined(ARCHIVE_CRYPTO_SHA512_LIBC3) static int -__archive_libc3_sha512init(archive_sha512_ctx *ctx) +__archive_sha512init(archive_sha512_ctx *ctx) { SHA512Init(ctx); return (ARCHIVE_OK); } static int -__archive_libc3_sha512update(archive_sha512_ctx *ctx, const void *indata, +__archive_sha512update(archive_sha512_ctx *ctx, const void *indata, size_t insize) { SHA512Update(ctx, indata, insize); @@ -1262,7 +1262,7 @@ __archive_libc3_sha512update(archive_sha512_ctx *ctx, const void *indata, } static int -__archive_libc3_sha512final(archive_sha512_ctx *ctx, void *md) +__archive_sha512final(archive_sha512_ctx *ctx, void *md) { SHA512Final(md, ctx); return (ARCHIVE_OK); @@ -1271,14 +1271,14 @@ __archive_libc3_sha512final(archive_sha512_ctx *ctx, void *md) #elif defined(ARCHIVE_CRYPTO_SHA512_LIBMD) static int -__archive_libmd_sha512init(archive_sha512_ctx *ctx) +__archive_sha512init(archive_sha512_ctx *ctx) { SHA512_Init(ctx); return (ARCHIVE_OK); } static int -__archive_libmd_sha512update(archive_sha512_ctx *ctx, const void *indata, +__archive_sha512update(archive_sha512_ctx *ctx, const void *indata, size_t insize) { SHA512_Update(ctx, indata, insize); @@ -1286,7 +1286,7 @@ __archive_libmd_sha512update(archive_sha512_ctx *ctx, const void *indata, } static int -__archive_libmd_sha512final(archive_sha512_ctx *ctx, void *md) +__archive_sha512final(archive_sha512_ctx *ctx, void *md) { SHA512_Final(md, ctx); return (ARCHIVE_OK); @@ -1295,14 +1295,14 @@ __archive_libmd_sha512final(archive_sha512_ctx *ctx, void *md) #elif defined(ARCHIVE_CRYPTO_SHA512_LIBSYSTEM) static int -__archive_libsystem_sha512init(archive_sha512_ctx *ctx) +__archive_sha512init(archive_sha512_ctx *ctx) { CC_SHA512_Init(ctx); return (ARCHIVE_OK); } static int -__archive_libsystem_sha512update(archive_sha512_ctx *ctx, const void *indata, +__archive_sha512update(archive_sha512_ctx *ctx, const void *indata, size_t insize) { CC_SHA512_Update(ctx, indata, insize); @@ -1310,7 +1310,7 @@ __archive_libsystem_sha512update(archive_sha512_ctx *ctx, const void *indata, } static int -__archive_libsystem_sha512final(archive_sha512_ctx *ctx, void *md) +__archive_sha512final(archive_sha512_ctx *ctx, void *md) { CC_SHA512_Final(md, ctx); return (ARCHIVE_OK); @@ -1319,7 +1319,7 @@ __archive_libsystem_sha512final(archive_sha512_ctx *ctx, void *md) #elif defined(ARCHIVE_CRYPTO_SHA512_MBEDTLS) static int -__archive_mbedtls_sha512init(archive_sha512_ctx *ctx) +__archive_sha512init(archive_sha512_ctx *ctx) { mbedtls_sha512_init(ctx); if (mbedtls_sha512_starts_ret(ctx, 0) == 0) @@ -1329,7 +1329,7 @@ __archive_mbedtls_sha512init(archive_sha512_ctx *ctx) } static int -__archive_mbedtls_sha512update(archive_sha512_ctx *ctx, const void *indata, +__archive_sha512update(archive_sha512_ctx *ctx, const void *indata, size_t insize) { if (mbedtls_sha512_update_ret(ctx, indata, insize) == 0) @@ -1339,7 +1339,7 @@ __archive_mbedtls_sha512update(archive_sha512_ctx *ctx, const void *indata, } static int -__archive_mbedtls_sha512final(archive_sha512_ctx *ctx, void *md) +__archive_sha512final(archive_sha512_ctx *ctx, void *md) { if (mbedtls_sha512_finish_ret(ctx, md) == 0) { mbedtls_sha512_free(ctx); @@ -1353,14 +1353,14 @@ __archive_mbedtls_sha512final(archive_sha512_ctx *ctx, void *md) #elif defined(ARCHIVE_CRYPTO_SHA512_NETTLE) static int -__archive_nettle_sha512init(archive_sha512_ctx *ctx) +__archive_sha512init(archive_sha512_ctx *ctx) { sha512_init(ctx); return (ARCHIVE_OK); } static int -__archive_nettle_sha512update(archive_sha512_ctx *ctx, const void *indata, +__archive_sha512update(archive_sha512_ctx *ctx, const void *indata, size_t insize) { sha512_update(ctx, insize, indata); @@ -1368,7 +1368,7 @@ __archive_nettle_sha512update(archive_sha512_ctx *ctx, const void *indata, } static int -__archive_nettle_sha512final(archive_sha512_ctx *ctx, void *md) +__archive_sha512final(archive_sha512_ctx *ctx, void *md) { sha512_digest(ctx, SHA512_DIGEST_SIZE, md); return (ARCHIVE_OK); @@ -1377,7 +1377,7 @@ __archive_nettle_sha512final(archive_sha512_ctx *ctx, void *md) #elif defined(ARCHIVE_CRYPTO_SHA512_OPENSSL) static int -__archive_openssl_sha512init(archive_sha512_ctx *ctx) +__archive_sha512init(archive_sha512_ctx *ctx) { if ((*ctx = EVP_MD_CTX_new()) == NULL) return (ARCHIVE_FAILED); @@ -1386,7 +1386,7 @@ __archive_openssl_sha512init(archive_sha512_ctx *ctx) } static int -__archive_openssl_sha512update(archive_sha512_ctx *ctx, const void *indata, +__archive_sha512update(archive_sha512_ctx *ctx, const void *indata, size_t insize) { EVP_DigestUpdate(*ctx, indata, insize); @@ -1394,7 +1394,7 @@ __archive_openssl_sha512update(archive_sha512_ctx *ctx, const void *indata, } static int -__archive_openssl_sha512final(archive_sha512_ctx *ctx, void *md) +__archive_sha512final(archive_sha512_ctx *ctx, void *md) { if (*ctx) { EVP_DigestFinal(*ctx, md, NULL); @@ -1407,20 +1407,20 @@ __archive_openssl_sha512final(archive_sha512_ctx *ctx, void *md) #elif defined(ARCHIVE_CRYPTO_SHA512_WIN) static int -__archive_windowsapi_sha512init(archive_sha512_ctx *ctx) +__archive_sha512init(archive_sha512_ctx *ctx) { return (win_crypto_init(ctx, CALG_SHA_512)); } static int -__archive_windowsapi_sha512update(archive_sha512_ctx *ctx, const void *indata, +__archive_sha512update(archive_sha512_ctx *ctx, const void *indata, size_t insize) { return (win_crypto_Update(ctx, indata, insize)); } static int -__archive_windowsapi_sha512final(archive_sha512_ctx *ctx, void *md) +__archive_sha512final(archive_sha512_ctx *ctx, void *md) { return (win_crypto_Final(md, 64, ctx)); } @@ -1428,14 +1428,14 @@ __archive_windowsapi_sha512final(archive_sha512_ctx *ctx, void *md) #else static int -__archive_stub_sha512init(archive_sha512_ctx *ctx) +__archive_sha512init(archive_sha512_ctx *ctx) { (void)ctx; /* UNUSED */ return (ARCHIVE_FAILED); } static int -__archive_stub_sha512update(archive_sha512_ctx *ctx, const void *indata, +__archive_sha512update(archive_sha512_ctx *ctx, const void *indata, size_t insize) { (void)ctx; /* UNUSED */ @@ -1445,7 +1445,7 @@ __archive_stub_sha512update(archive_sha512_ctx *ctx, const void *indata, } static int -__archive_stub_sha512final(archive_sha512_ctx *ctx, void *md) +__archive_sha512final(archive_sha512_ctx *ctx, void *md) { (void)ctx; /* UNUSED */ (void)md; /* UNUSED */ @@ -1468,224 +1468,32 @@ __archive_stub_sha512final(archive_sha512_ctx *ctx, void *md) const struct archive_digest __archive_digest = { /* MD5 */ -#if defined(ARCHIVE_CRYPTO_MD5_LIBC) - &__archive_libc_md5init, - &__archive_libc_md5update, - &__archive_libc_md5final, -#elif defined(ARCHIVE_CRYPTO_MD5_LIBMD) - &__archive_libmd_md5init, - &__archive_libmd_md5update, - &__archive_libmd_md5final, -#elif defined(ARCHIVE_CRYPTO_MD5_LIBSYSTEM) - &__archive_libsystem_md5init, - &__archive_libsystem_md5update, - &__archive_libsystem_md5final, -#elif defined(ARCHIVE_CRYPTO_MD5_MBEDTLS) - &__archive_mbedtls_md5init, - &__archive_mbedtls_md5update, - &__archive_mbedtls_md5final, -#elif defined(ARCHIVE_CRYPTO_MD5_NETTLE) - &__archive_nettle_md5init, - &__archive_nettle_md5update, - &__archive_nettle_md5final, -#elif defined(ARCHIVE_CRYPTO_MD5_OPENSSL) - &__archive_openssl_md5init, - &__archive_openssl_md5update, - &__archive_openssl_md5final, -#elif defined(ARCHIVE_CRYPTO_MD5_WIN) - &__archive_windowsapi_md5init, - &__archive_windowsapi_md5update, - &__archive_windowsapi_md5final, -#elif !defined(ARCHIVE_MD5_COMPILE_TEST) - &__archive_stub_md5init, - &__archive_stub_md5update, - &__archive_stub_md5final, -#endif + &__archive_md5init, + &__archive_md5update, + &__archive_md5final, /* RIPEMD160 */ -#if defined(ARCHIVE_CRYPTO_RMD160_LIBC) - &__archive_libc_ripemd160init, - &__archive_libc_ripemd160update, - &__archive_libc_ripemd160final, -#elif defined(ARCHIVE_CRYPTO_RMD160_LIBMD) - &__archive_libmd_ripemd160init, - &__archive_libmd_ripemd160update, - &__archive_libmd_ripemd160final, -#elif defined(ARCHIVE_CRYPTO_RMD160_MBEDTLS) - &__archive_mbedtls_ripemd160init, - &__archive_mbedtls_ripemd160update, - &__archive_mbedtls_ripemd160final, -#elif defined(ARCHIVE_CRYPTO_RMD160_NETTLE) - &__archive_nettle_ripemd160init, - &__archive_nettle_ripemd160update, - &__archive_nettle_ripemd160final, -#elif defined(ARCHIVE_CRYPTO_RMD160_OPENSSL) - &__archive_openssl_ripemd160init, - &__archive_openssl_ripemd160update, - &__archive_openssl_ripemd160final, -#elif !defined(ARCHIVE_RMD160_COMPILE_TEST) - &__archive_stub_ripemd160init, - &__archive_stub_ripemd160update, - &__archive_stub_ripemd160final, -#endif + &__archive_ripemd160init, + &__archive_ripemd160update, + &__archive_ripemd160final, /* SHA1 */ -#if defined(ARCHIVE_CRYPTO_SHA1_LIBC) - &__archive_libc_sha1init, - &__archive_libc_sha1update, - &__archive_libc_sha1final, -#elif defined(ARCHIVE_CRYPTO_SHA1_LIBMD) - &__archive_libmd_sha1init, - &__archive_libmd_sha1update, - &__archive_libmd_sha1final, -#elif defined(ARCHIVE_CRYPTO_SHA1_LIBSYSTEM) - &__archive_libsystem_sha1init, - &__archive_libsystem_sha1update, - &__archive_libsystem_sha1final, -#elif defined(ARCHIVE_CRYPTO_SHA1_MBEDTLS) - &__archive_mbedtls_sha1init, - &__archive_mbedtls_sha1update, - &__archive_mbedtls_sha1final, -#elif defined(ARCHIVE_CRYPTO_SHA1_NETTLE) - &__archive_nettle_sha1init, - &__archive_nettle_sha1update, - &__archive_nettle_sha1final, -#elif defined(ARCHIVE_CRYPTO_SHA1_OPENSSL) - &__archive_openssl_sha1init, - &__archive_openssl_sha1update, - &__archive_openssl_sha1final, -#elif defined(ARCHIVE_CRYPTO_SHA1_WIN) - &__archive_windowsapi_sha1init, - &__archive_windowsapi_sha1update, - &__archive_windowsapi_sha1final, -#elif !defined(ARCHIVE_SHA1_COMPILE_TEST) - &__archive_stub_sha1init, - &__archive_stub_sha1update, - &__archive_stub_sha1final, -#endif + &__archive_sha1init, + &__archive_sha1update, + &__archive_sha1final, /* SHA256 */ -#if defined(ARCHIVE_CRYPTO_SHA256_LIBC) - &__archive_libc_sha256init, - &__archive_libc_sha256update, - &__archive_libc_sha256final, -#elif defined(ARCHIVE_CRYPTO_SHA256_LIBC2) - &__archive_libc2_sha256init, - &__archive_libc2_sha256update, - &__archive_libc2_sha256final, -#elif defined(ARCHIVE_CRYPTO_SHA256_LIBC3) - &__archive_libc3_sha256init, - &__archive_libc3_sha256update, - &__archive_libc3_sha256final, -#elif defined(ARCHIVE_CRYPTO_SHA256_LIBMD) - &__archive_libmd_sha256init, - &__archive_libmd_sha256update, - &__archive_libmd_sha256final, -#elif defined(ARCHIVE_CRYPTO_SHA256_LIBSYSTEM) - &__archive_libsystem_sha256init, - &__archive_libsystem_sha256update, - &__archive_libsystem_sha256final, -#elif defined(ARCHIVE_CRYPTO_SHA256_MBEDTLS) - &__archive_mbedtls_sha256init, - &__archive_mbedtls_sha256update, - &__archive_mbedtls_sha256final, -#elif defined(ARCHIVE_CRYPTO_SHA256_NETTLE) - &__archive_nettle_sha256init, - &__archive_nettle_sha256update, - &__archive_nettle_sha256final, -#elif defined(ARCHIVE_CRYPTO_SHA256_OPENSSL) - &__archive_openssl_sha256init, - &__archive_openssl_sha256update, - &__archive_openssl_sha256final, -#elif defined(ARCHIVE_CRYPTO_SHA256_WIN) - &__archive_windowsapi_sha256init, - &__archive_windowsapi_sha256update, - &__archive_windowsapi_sha256final, -#elif !defined(ARCHIVE_SHA256_COMPILE_TEST) - &__archive_stub_sha256init, - &__archive_stub_sha256update, - &__archive_stub_sha256final, -#endif + &__archive_sha256init, + &__archive_sha256update, + &__archive_sha256final, /* SHA384 */ -#if defined(ARCHIVE_CRYPTO_SHA384_LIBC) - &__archive_libc_sha384init, - &__archive_libc_sha384update, - &__archive_libc_sha384final, -#elif defined(ARCHIVE_CRYPTO_SHA384_LIBC2) - &__archive_libc2_sha384init, - &__archive_libc2_sha384update, - &__archive_libc2_sha384final, -#elif defined(ARCHIVE_CRYPTO_SHA384_LIBC3) - &__archive_libc3_sha384init, - &__archive_libc3_sha384update, - &__archive_libc3_sha384final, -#elif defined(ARCHIVE_CRYPTO_SHA384_LIBSYSTEM) - &__archive_libsystem_sha384init, - &__archive_libsystem_sha384update, - &__archive_libsystem_sha384final, -#elif defined(ARCHIVE_CRYPTO_SHA384_MBEDTLS) - &__archive_mbedtls_sha384init, - &__archive_mbedtls_sha384update, - &__archive_mbedtls_sha384final, -#elif defined(ARCHIVE_CRYPTO_SHA384_NETTLE) - &__archive_nettle_sha384init, - &__archive_nettle_sha384update, - &__archive_nettle_sha384final, -#elif defined(ARCHIVE_CRYPTO_SHA384_OPENSSL) - &__archive_openssl_sha384init, - &__archive_openssl_sha384update, - &__archive_openssl_sha384final, -#elif defined(ARCHIVE_CRYPTO_SHA384_WIN) - &__archive_windowsapi_sha384init, - &__archive_windowsapi_sha384update, - &__archive_windowsapi_sha384final, -#elif !defined(ARCHIVE_SHA384_COMPILE_TEST) - &__archive_stub_sha384init, - &__archive_stub_sha384update, - &__archive_stub_sha384final, -#endif + &__archive_sha384init, + &__archive_sha384update, + &__archive_sha384final, /* SHA512 */ -#if defined(ARCHIVE_CRYPTO_SHA512_LIBC) - &__archive_libc_sha512init, - &__archive_libc_sha512update, - &__archive_libc_sha512final -#elif defined(ARCHIVE_CRYPTO_SHA512_LIBC2) - &__archive_libc2_sha512init, - &__archive_libc2_sha512update, - &__archive_libc2_sha512final -#elif defined(ARCHIVE_CRYPTO_SHA512_LIBC3) - &__archive_libc3_sha512init, - &__archive_libc3_sha512update, - &__archive_libc3_sha512final -#elif defined(ARCHIVE_CRYPTO_SHA512_LIBMD) - &__archive_libmd_sha512init, - &__archive_libmd_sha512update, - &__archive_libmd_sha512final -#elif defined(ARCHIVE_CRYPTO_SHA512_LIBSYSTEM) - &__archive_libsystem_sha512init, - &__archive_libsystem_sha512update, - &__archive_libsystem_sha512final -#elif defined(ARCHIVE_CRYPTO_SHA512_MBEDTLS) - &__archive_mbedtls_sha512init, - &__archive_mbedtls_sha512update, - &__archive_mbedtls_sha512final -#elif defined(ARCHIVE_CRYPTO_SHA512_NETTLE) - &__archive_nettle_sha512init, - &__archive_nettle_sha512update, - &__archive_nettle_sha512final -#elif defined(ARCHIVE_CRYPTO_SHA512_OPENSSL) - &__archive_openssl_sha512init, - &__archive_openssl_sha512update, - &__archive_openssl_sha512final -#elif defined(ARCHIVE_CRYPTO_SHA512_WIN) - &__archive_windowsapi_sha512init, - &__archive_windowsapi_sha512update, - &__archive_windowsapi_sha512final -#elif !defined(ARCHIVE_SHA512_COMPILE_TEST) - &__archive_stub_sha512init, - &__archive_stub_sha512update, - &__archive_stub_sha512final -#endif + &__archive_sha512init, + &__archive_sha512update, + &__archive_sha512final }; diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_digest_private.h b/dependencies/libarchive-3.5.2/libarchive/archive_digest_private.h similarity index 99% rename from dependencies/libarchive-3.4.2/libarchive/archive_digest_private.h rename to dependencies/libarchive-3.5.2/libarchive/archive_digest_private.h index 15312ee..9b3bd66 100644 --- a/dependencies/libarchive-3.4.2/libarchive/archive_digest_private.h +++ b/dependencies/libarchive-3.5.2/libarchive/archive_digest_private.h @@ -30,6 +30,10 @@ #ifndef __LIBARCHIVE_BUILD #error This header is only to be used internally to libarchive. #endif +#ifndef __LIBARCHIVE_CONFIG_H_INCLUDED +#error "Should have include config.h first!" +#endif + /* * Crypto support in various Operating Systems: * diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_disk_acl_darwin.c b/dependencies/libarchive-3.5.2/libarchive/archive_disk_acl_darwin.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/archive_disk_acl_darwin.c rename to dependencies/libarchive-3.5.2/libarchive/archive_disk_acl_darwin.c diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_disk_acl_freebsd.c b/dependencies/libarchive-3.5.2/libarchive/archive_disk_acl_freebsd.c similarity index 97% rename from dependencies/libarchive-3.4.2/libarchive/archive_disk_acl_freebsd.c rename to dependencies/libarchive-3.5.2/libarchive/archive_disk_acl_freebsd.c index aba41e5..ed4e7a7 100644 --- a/dependencies/libarchive-3.4.2/libarchive/archive_disk_acl_freebsd.c +++ b/dependencies/libarchive-3.5.2/libarchive/archive_disk_acl_freebsd.c @@ -319,7 +319,7 @@ translate_acl(struct archive_read_disk *a, static int set_acl(struct archive *a, int fd, const char *name, - struct archive_acl *abstract_acl, + struct archive_acl *abstract_acl, __LA_MODE_T mode, int ae_requested_type, const char *tname) { int acl_type = 0; @@ -364,6 +364,13 @@ set_acl(struct archive *a, int fd, const char *name, return (ARCHIVE_FAILED); } + if (acl_type == ACL_TYPE_DEFAULT && !S_ISDIR(mode)) { + errno = EINVAL; + archive_set_error(a, errno, + "Cannot set default ACL on non-directory"); + return (ARCHIVE_WARN); + } + acl = acl_init(entries); if (acl == (acl_t)NULL) { archive_set_error(a, errno, @@ -542,7 +549,10 @@ set_acl(struct archive *a, int fd, const char *name, else if (acl_set_link_np(name, acl_type, acl) != 0) #else /* FreeBSD older than 8.0 */ - else if (acl_set_file(name, acl_type, acl) != 0) + else if (S_ISLNK(mode)) { + /* acl_set_file() follows symbolic links, skip */ + ret = ARCHIVE_OK; + } else if (acl_set_file(name, acl_type, acl) != 0) #endif { if (errno == EOPNOTSUPP) { @@ -677,14 +687,14 @@ archive_write_disk_set_acls(struct archive *a, int fd, const char *name, & ARCHIVE_ENTRY_ACL_TYPE_POSIX1E) != 0) { if ((archive_acl_types(abstract_acl) & ARCHIVE_ENTRY_ACL_TYPE_ACCESS) != 0) { - ret = set_acl(a, fd, name, abstract_acl, + ret = set_acl(a, fd, name, abstract_acl, mode, ARCHIVE_ENTRY_ACL_TYPE_ACCESS, "access"); if (ret != ARCHIVE_OK) return (ret); } if ((archive_acl_types(abstract_acl) & ARCHIVE_ENTRY_ACL_TYPE_DEFAULT) != 0) - ret = set_acl(a, fd, name, abstract_acl, + ret = set_acl(a, fd, name, abstract_acl, mode, ARCHIVE_ENTRY_ACL_TYPE_DEFAULT, "default"); /* Simultaneous POSIX.1e and NFSv4 is not supported */ @@ -693,7 +703,7 @@ archive_write_disk_set_acls(struct archive *a, int fd, const char *name, #if ARCHIVE_ACL_FREEBSD_NFS4 else if ((archive_acl_types(abstract_acl) & ARCHIVE_ENTRY_ACL_TYPE_NFS4) != 0) { - ret = set_acl(a, fd, name, abstract_acl, + ret = set_acl(a, fd, name, abstract_acl, mode, ARCHIVE_ENTRY_ACL_TYPE_NFS4, "nfs4"); } #endif diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_disk_acl_linux.c b/dependencies/libarchive-3.5.2/libarchive/archive_disk_acl_linux.c similarity index 97% rename from dependencies/libarchive-3.4.2/libarchive/archive_disk_acl_linux.c rename to dependencies/libarchive-3.5.2/libarchive/archive_disk_acl_linux.c index 3928f3d..31d2705 100644 --- a/dependencies/libarchive-3.4.2/libarchive/archive_disk_acl_linux.c +++ b/dependencies/libarchive-3.5.2/libarchive/archive_disk_acl_linux.c @@ -343,6 +343,11 @@ set_richacl(struct archive *a, int fd, const char *name, return (ARCHIVE_FAILED); } + if (S_ISLNK(mode)) { + /* Linux does not support RichACLs on symbolic links */ + return (ARCHIVE_OK); + } + richacl = richacl_alloc(entries); if (richacl == NULL) { archive_set_error(a, errno, @@ -455,7 +460,7 @@ exit_free: #if ARCHIVE_ACL_LIBACL static int set_acl(struct archive *a, int fd, const char *name, - struct archive_acl *abstract_acl, + struct archive_acl *abstract_acl, __LA_MODE_T mode, int ae_requested_type, const char *tname) { int acl_type = 0; @@ -488,6 +493,18 @@ set_acl(struct archive *a, int fd, const char *name, return (ARCHIVE_FAILED); } + if (S_ISLNK(mode)) { + /* Linux does not support ACLs on symbolic links */ + return (ARCHIVE_OK); + } + + if (acl_type == ACL_TYPE_DEFAULT && !S_ISDIR(mode)) { + errno = EINVAL; + archive_set_error(a, errno, + "Cannot set default ACL on non-directory"); + return (ARCHIVE_WARN); + } + acl = acl_init(entries); if (acl == (acl_t)NULL) { archive_set_error(a, errno, @@ -727,14 +744,14 @@ archive_write_disk_set_acls(struct archive *a, int fd, const char *name, & ARCHIVE_ENTRY_ACL_TYPE_POSIX1E) != 0) { if ((archive_acl_types(abstract_acl) & ARCHIVE_ENTRY_ACL_TYPE_ACCESS) != 0) { - ret = set_acl(a, fd, name, abstract_acl, + ret = set_acl(a, fd, name, abstract_acl, mode, ARCHIVE_ENTRY_ACL_TYPE_ACCESS, "access"); if (ret != ARCHIVE_OK) return (ret); } if ((archive_acl_types(abstract_acl) & ARCHIVE_ENTRY_ACL_TYPE_DEFAULT) != 0) - ret = set_acl(a, fd, name, abstract_acl, + ret = set_acl(a, fd, name, abstract_acl, mode, ARCHIVE_ENTRY_ACL_TYPE_DEFAULT, "default"); } #endif /* ARCHIVE_ACL_LIBACL */ diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_disk_acl_sunos.c b/dependencies/libarchive-3.5.2/libarchive/archive_disk_acl_sunos.c similarity index 98% rename from dependencies/libarchive-3.4.2/libarchive/archive_disk_acl_sunos.c rename to dependencies/libarchive-3.5.2/libarchive/archive_disk_acl_sunos.c index b0f5dfa..0ef3ad5 100644 --- a/dependencies/libarchive-3.4.2/libarchive/archive_disk_acl_sunos.c +++ b/dependencies/libarchive-3.5.2/libarchive/archive_disk_acl_sunos.c @@ -443,7 +443,7 @@ translate_acl(struct archive_read_disk *a, static int set_acl(struct archive *a, int fd, const char *name, - struct archive_acl *abstract_acl, + struct archive_acl *abstract_acl, __LA_MODE_T mode, int ae_requested_type, const char *tname) { aclent_t *aclent; @@ -467,7 +467,6 @@ set_acl(struct archive *a, int fd, const char *name, if (entries == 0) return (ARCHIVE_OK); - switch (ae_requested_type) { case ARCHIVE_ENTRY_ACL_TYPE_POSIX1E: cmd = SETACL; @@ -492,6 +491,12 @@ set_acl(struct archive *a, int fd, const char *name, return (ARCHIVE_FAILED); } + if (S_ISLNK(mode)) { + /* Skip ACLs on symbolic links */ + ret = ARCHIVE_OK; + goto exit_free; + } + e = 0; while (archive_acl_next(a, abstract_acl, ae_requested_type, &ae_type, @@ -801,7 +806,7 @@ archive_write_disk_set_acls(struct archive *a, int fd, const char *name, if ((archive_acl_types(abstract_acl) & ARCHIVE_ENTRY_ACL_TYPE_POSIX1E) != 0) { /* Solaris writes POSIX.1e access and default ACLs together */ - ret = set_acl(a, fd, name, abstract_acl, + ret = set_acl(a, fd, name, abstract_acl, mode, ARCHIVE_ENTRY_ACL_TYPE_POSIX1E, "posix1e"); /* Simultaneous POSIX.1e and NFSv4 is not supported */ @@ -810,7 +815,7 @@ archive_write_disk_set_acls(struct archive *a, int fd, const char *name, #if ARCHIVE_ACL_SUNOS_NFS4 else if ((archive_acl_types(abstract_acl) & ARCHIVE_ENTRY_ACL_TYPE_NFS4) != 0) { - ret = set_acl(a, fd, name, abstract_acl, + ret = set_acl(a, fd, name, abstract_acl, mode, ARCHIVE_ENTRY_ACL_TYPE_NFS4, "nfs4"); } #endif diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_endian.h b/dependencies/libarchive-3.5.2/libarchive/archive_endian.h similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/archive_endian.h rename to dependencies/libarchive-3.5.2/libarchive/archive_endian.h diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_entry.3 b/dependencies/libarchive-3.5.2/libarchive/archive_entry.3 similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/archive_entry.3 rename to dependencies/libarchive-3.5.2/libarchive/archive_entry.3 diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_entry.c b/dependencies/libarchive-3.5.2/libarchive/archive_entry.c similarity index 96% rename from dependencies/libarchive-3.4.2/libarchive/archive_entry.c rename to dependencies/libarchive-3.5.2/libarchive/archive_entry.c index a15e98c..ca7a4bd 100644 --- a/dependencies/libarchive-3.4.2/libarchive/archive_entry.c +++ b/dependencies/libarchive-3.5.2/libarchive/archive_entry.c @@ -208,6 +208,19 @@ archive_entry_clone(struct archive_entry *entry) /* Copy encryption status */ entry2->encryption = entry->encryption; + + /* Copy digests */ +#define copy_digest(_e2, _e, _t) \ + memcpy(_e2->digest._t, _e->digest._t, sizeof(_e2->digest._t)) + + copy_digest(entry2, entry, md5); + copy_digest(entry2, entry, rmd160); + copy_digest(entry2, entry, sha1); + copy_digest(entry2, entry, sha256); + copy_digest(entry2, entry, sha384); + copy_digest(entry2, entry, sha512); + +#undef copy_digest /* Copy ACL data over. */ archive_acl_copy(&entry2->acl, &entry->acl); @@ -353,7 +366,7 @@ archive_entry_devminor(struct archive_entry *entry) return minor(entry->ae_stat.aest_dev); } -mode_t +__LA_MODE_T archive_entry_filetype(struct archive_entry *entry) { return (AE_IFMT & entry->acl.mode); @@ -450,7 +463,7 @@ int _archive_entry_gname_l(struct archive_entry *entry, const char **p, size_t *len, struct archive_string_conv *sc) { - return (archive_mstring_get_mbs_l(&entry->ae_gname, p, len, sc)); + return (archive_mstring_get_mbs_l(entry->archive, &entry->ae_gname, p, len, sc)); } const char * @@ -504,7 +517,7 @@ _archive_entry_hardlink_l(struct archive_entry *entry, *len = 0; return (0); } - return (archive_mstring_get_mbs_l(&entry->ae_hardlink, p, len, sc)); + return (archive_mstring_get_mbs_l(entry->archive, &entry->ae_hardlink, p, len, sc)); } la_int64_t @@ -525,7 +538,7 @@ archive_entry_ino64(struct archive_entry *entry) return (entry->ae_stat.aest_ino); } -mode_t +__LA_MODE_T archive_entry_mode(struct archive_entry *entry) { return (entry->acl.mode); @@ -595,10 +608,10 @@ int _archive_entry_pathname_l(struct archive_entry *entry, const char **p, size_t *len, struct archive_string_conv *sc) { - return (archive_mstring_get_mbs_l(&entry->ae_pathname, p, len, sc)); + return (archive_mstring_get_mbs_l(entry->archive, &entry->ae_pathname, p, len, sc)); } -mode_t +__LA_MODE_T archive_entry_perm(struct archive_entry *entry) { return (~AE_IFMT & entry->acl.mode); @@ -723,7 +736,7 @@ _archive_entry_symlink_l(struct archive_entry *entry, *len = 0; return (0); } - return (archive_mstring_get_mbs_l( &entry->ae_symlink, p, len, sc)); + return (archive_mstring_get_mbs_l(entry->archive, &entry->ae_symlink, p, len, sc)); } la_int64_t @@ -769,7 +782,7 @@ int _archive_entry_uname_l(struct archive_entry *entry, const char **p, size_t *len, struct archive_string_conv *sc) { - return (archive_mstring_get_mbs_l(&entry->ae_uname, p, len, sc)); + return (archive_mstring_get_mbs_l(entry->archive, &entry->ae_uname, p, len, sc)); } int @@ -1416,6 +1429,62 @@ archive_entry_copy_mac_metadata(struct archive_entry *entry, } } +/* Digest handling */ +const unsigned char * +archive_entry_digest(struct archive_entry *entry, int type) +{ + switch (type) { + case ARCHIVE_ENTRY_DIGEST_MD5: + return entry->digest.md5; + case ARCHIVE_ENTRY_DIGEST_RMD160: + return entry->digest.rmd160; + case ARCHIVE_ENTRY_DIGEST_SHA1: + return entry->digest.sha1; + case ARCHIVE_ENTRY_DIGEST_SHA256: + return entry->digest.sha256; + case ARCHIVE_ENTRY_DIGEST_SHA384: + return entry->digest.sha384; + case ARCHIVE_ENTRY_DIGEST_SHA512: + return entry->digest.sha512; + default: + return NULL; + } +} + +int +archive_entry_set_digest(struct archive_entry *entry, int type, + const unsigned char *digest) +{ +#define copy_digest(_e, _t, _d)\ + memcpy(_e->digest._t, _d, sizeof(_e->digest._t)) + + switch (type) { + case ARCHIVE_ENTRY_DIGEST_MD5: + copy_digest(entry, md5, digest); + break; + case ARCHIVE_ENTRY_DIGEST_RMD160: + copy_digest(entry, rmd160, digest); + break; + case ARCHIVE_ENTRY_DIGEST_SHA1: + copy_digest(entry, sha1, digest); + break; + case ARCHIVE_ENTRY_DIGEST_SHA256: + copy_digest(entry, sha256, digest); + break; + case ARCHIVE_ENTRY_DIGEST_SHA384: + copy_digest(entry, sha384, digest); + break; + case ARCHIVE_ENTRY_DIGEST_SHA512: + copy_digest(entry, sha512, digest); + break; + default: + return ARCHIVE_WARN; + } + + return ARCHIVE_OK; +#undef copy_digest +} + /* * ACL management. The following would, of course, be a lot simpler * if: 1) the last draft of POSIX.1e were a really thorough and diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_entry.h b/dependencies/libarchive-3.5.2/libarchive/archive_entry.h similarity index 98% rename from dependencies/libarchive-3.4.2/libarchive/archive_entry.h rename to dependencies/libarchive-3.5.2/libarchive/archive_entry.h index 42af208..bfba54f 100644 --- a/dependencies/libarchive-3.4.2/libarchive/archive_entry.h +++ b/dependencies/libarchive-3.5.2/libarchive/archive_entry.h @@ -30,7 +30,7 @@ #define ARCHIVE_ENTRY_H_INCLUDED /* Note: Compiler will complain if this does not match archive.h! */ -#define ARCHIVE_VERSION_NUMBER 3004002 +#define ARCHIVE_VERSION_NUMBER 3005002 /* * Note: archive_entry.h is for use outside of libarchive; the @@ -396,6 +396,19 @@ __LA_DECL void archive_entry_copy_stat(struct archive_entry *, const struct stat __LA_DECL const void * archive_entry_mac_metadata(struct archive_entry *, size_t *); __LA_DECL void archive_entry_copy_mac_metadata(struct archive_entry *, const void *, size_t); +/* + * Digest routine. This is used to query the raw hex digest for the + * given entry. The type of digest is provided as an argument. + */ +#define ARCHIVE_ENTRY_DIGEST_MD5 0x00000001 +#define ARCHIVE_ENTRY_DIGEST_RMD160 0x00000002 +#define ARCHIVE_ENTRY_DIGEST_SHA1 0x00000003 +#define ARCHIVE_ENTRY_DIGEST_SHA256 0x00000004 +#define ARCHIVE_ENTRY_DIGEST_SHA384 0x00000005 +#define ARCHIVE_ENTRY_DIGEST_SHA512 0x00000006 + +__LA_DECL const unsigned char * archive_entry_digest(struct archive_entry *, int /* type */); + /* * ACL routines. This used to simply store and return text-format ACL * strings, but that proved insufficient for a number of reasons: diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_entry_acl.3 b/dependencies/libarchive-3.5.2/libarchive/archive_entry_acl.3 similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/archive_entry_acl.3 rename to dependencies/libarchive-3.5.2/libarchive/archive_entry_acl.3 diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_entry_copy_bhfi.c b/dependencies/libarchive-3.5.2/libarchive/archive_entry_copy_bhfi.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/archive_entry_copy_bhfi.c rename to dependencies/libarchive-3.5.2/libarchive/archive_entry_copy_bhfi.c diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_entry_copy_stat.c b/dependencies/libarchive-3.5.2/libarchive/archive_entry_copy_stat.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/archive_entry_copy_stat.c rename to dependencies/libarchive-3.5.2/libarchive/archive_entry_copy_stat.c diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_entry_link_resolver.c b/dependencies/libarchive-3.5.2/libarchive/archive_entry_link_resolver.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/archive_entry_link_resolver.c rename to dependencies/libarchive-3.5.2/libarchive/archive_entry_link_resolver.c diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_entry_linkify.3 b/dependencies/libarchive-3.5.2/libarchive/archive_entry_linkify.3 similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/archive_entry_linkify.3 rename to dependencies/libarchive-3.5.2/libarchive/archive_entry_linkify.3 diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_entry_locale.h b/dependencies/libarchive-3.5.2/libarchive/archive_entry_locale.h similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/archive_entry_locale.h rename to dependencies/libarchive-3.5.2/libarchive/archive_entry_locale.h diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_entry_misc.3 b/dependencies/libarchive-3.5.2/libarchive/archive_entry_misc.3 similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/archive_entry_misc.3 rename to dependencies/libarchive-3.5.2/libarchive/archive_entry_misc.3 diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_entry_paths.3 b/dependencies/libarchive-3.5.2/libarchive/archive_entry_paths.3 similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/archive_entry_paths.3 rename to dependencies/libarchive-3.5.2/libarchive/archive_entry_paths.3 diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_entry_perms.3 b/dependencies/libarchive-3.5.2/libarchive/archive_entry_perms.3 similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/archive_entry_perms.3 rename to dependencies/libarchive-3.5.2/libarchive/archive_entry_perms.3 diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_entry_private.h b/dependencies/libarchive-3.5.2/libarchive/archive_entry_private.h similarity index 94% rename from dependencies/libarchive-3.4.2/libarchive/archive_entry_private.h rename to dependencies/libarchive-3.5.2/libarchive/archive_entry_private.h index 2b9a084..cf4deb2 100644 --- a/dependencies/libarchive-3.4.2/libarchive/archive_entry_private.h +++ b/dependencies/libarchive-3.5.2/libarchive/archive_entry_private.h @@ -50,6 +50,15 @@ struct ae_sparse { int64_t length; }; +struct ae_digest { + unsigned char md5[16]; + unsigned char rmd160[20]; + unsigned char sha1[20]; + unsigned char sha256[32]; + unsigned char sha384[48]; + unsigned char sha512[64]; +}; + /* * Description of an archive entry. * @@ -162,6 +171,9 @@ struct archive_entry { void *mac_metadata; size_t mac_metadata_size; + /* Digest support. */ + struct ae_digest digest; + /* ACL support. */ struct archive_acl acl; @@ -181,4 +193,8 @@ struct archive_entry { int ae_symlink_type; }; +int +archive_entry_set_digest(struct archive_entry *entry, int type, + const unsigned char *digest); + #endif /* ARCHIVE_ENTRY_PRIVATE_H_INCLUDED */ diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_entry_sparse.c b/dependencies/libarchive-3.5.2/libarchive/archive_entry_sparse.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/archive_entry_sparse.c rename to dependencies/libarchive-3.5.2/libarchive/archive_entry_sparse.c diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_entry_stat.3 b/dependencies/libarchive-3.5.2/libarchive/archive_entry_stat.3 similarity index 99% rename from dependencies/libarchive-3.4.2/libarchive/archive_entry_stat.3 rename to dependencies/libarchive-3.5.2/libarchive/archive_entry_stat.3 index aa5c8e0..29a53f7 100644 --- a/dependencies/libarchive-3.4.2/libarchive/archive_entry_stat.3 +++ b/dependencies/libarchive-3.5.2/libarchive/archive_entry_stat.3 @@ -215,9 +215,9 @@ and set and unset the size, respectively. .Pp The number of references (hardlinks) can be obtained by calling -.Fn archive_entry_nlinks +.Fn archive_entry_nlink and set with -.Fn archive_entry_set_nlinks . +.Fn archive_entry_set_nlink . .Ss Identifying unique files The functions .Fn archive_entry_dev diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_entry_stat.c b/dependencies/libarchive-3.5.2/libarchive/archive_entry_stat.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/archive_entry_stat.c rename to dependencies/libarchive-3.5.2/libarchive/archive_entry_stat.c diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_entry_strmode.c b/dependencies/libarchive-3.5.2/libarchive/archive_entry_strmode.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/archive_entry_strmode.c rename to dependencies/libarchive-3.5.2/libarchive/archive_entry_strmode.c diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_entry_time.3 b/dependencies/libarchive-3.5.2/libarchive/archive_entry_time.3 similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/archive_entry_time.3 rename to dependencies/libarchive-3.5.2/libarchive/archive_entry_time.3 diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_entry_xattr.c b/dependencies/libarchive-3.5.2/libarchive/archive_entry_xattr.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/archive_entry_xattr.c rename to dependencies/libarchive-3.5.2/libarchive/archive_entry_xattr.c diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_getdate.c b/dependencies/libarchive-3.5.2/libarchive/archive_getdate.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/archive_getdate.c rename to dependencies/libarchive-3.5.2/libarchive/archive_getdate.c diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_getdate.h b/dependencies/libarchive-3.5.2/libarchive/archive_getdate.h similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/archive_getdate.h rename to dependencies/libarchive-3.5.2/libarchive/archive_getdate.h diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_hmac.c b/dependencies/libarchive-3.5.2/libarchive/archive_hmac.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/archive_hmac.c rename to dependencies/libarchive-3.5.2/libarchive/archive_hmac.c diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_hmac_private.h b/dependencies/libarchive-3.5.2/libarchive/archive_hmac_private.h similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/archive_hmac_private.h rename to dependencies/libarchive-3.5.2/libarchive/archive_hmac_private.h diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_match.c b/dependencies/libarchive-3.5.2/libarchive/archive_match.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/archive_match.c rename to dependencies/libarchive-3.5.2/libarchive/archive_match.c diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_openssl_evp_private.h b/dependencies/libarchive-3.5.2/libarchive/archive_openssl_evp_private.h similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/archive_openssl_evp_private.h rename to dependencies/libarchive-3.5.2/libarchive/archive_openssl_evp_private.h diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_openssl_hmac_private.h b/dependencies/libarchive-3.5.2/libarchive/archive_openssl_hmac_private.h similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/archive_openssl_hmac_private.h rename to dependencies/libarchive-3.5.2/libarchive/archive_openssl_hmac_private.h diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_options.c b/dependencies/libarchive-3.5.2/libarchive/archive_options.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/archive_options.c rename to dependencies/libarchive-3.5.2/libarchive/archive_options.c diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_options_private.h b/dependencies/libarchive-3.5.2/libarchive/archive_options_private.h similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/archive_options_private.h rename to dependencies/libarchive-3.5.2/libarchive/archive_options_private.h diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_pack_dev.c b/dependencies/libarchive-3.5.2/libarchive/archive_pack_dev.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/archive_pack_dev.c rename to dependencies/libarchive-3.5.2/libarchive/archive_pack_dev.c diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_pack_dev.h b/dependencies/libarchive-3.5.2/libarchive/archive_pack_dev.h similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/archive_pack_dev.h rename to dependencies/libarchive-3.5.2/libarchive/archive_pack_dev.h diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_pathmatch.c b/dependencies/libarchive-3.5.2/libarchive/archive_pathmatch.c similarity index 99% rename from dependencies/libarchive-3.4.2/libarchive/archive_pathmatch.c rename to dependencies/libarchive-3.5.2/libarchive/archive_pathmatch.c index 619e2b6..0867a26 100644 --- a/dependencies/libarchive-3.4.2/libarchive/archive_pathmatch.c +++ b/dependencies/libarchive-3.5.2/libarchive/archive_pathmatch.c @@ -384,6 +384,8 @@ __archive_pathmatch(const char *p, const char *s, int flags) /* Empty pattern only matches the empty string. */ if (p == NULL || *p == '\0') return (s == NULL || *s == '\0'); + else if (s == NULL) + return (0); /* Leading '^' anchors the start of the pattern. */ if (*p == '^') { @@ -424,6 +426,8 @@ __archive_pathmatch_w(const wchar_t *p, const wchar_t *s, int flags) /* Empty pattern only matches the empty string. */ if (p == NULL || *p == L'\0') return (s == NULL || *s == L'\0'); + else if (s == NULL) + return (0); /* Leading '^' anchors the start of the pattern. */ if (*p == L'^') { diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_pathmatch.h b/dependencies/libarchive-3.5.2/libarchive/archive_pathmatch.h similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/archive_pathmatch.h rename to dependencies/libarchive-3.5.2/libarchive/archive_pathmatch.h diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_platform.h b/dependencies/libarchive-3.5.2/libarchive/archive_platform.h similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/archive_platform.h rename to dependencies/libarchive-3.5.2/libarchive/archive_platform.h diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_platform_acl.h b/dependencies/libarchive-3.5.2/libarchive/archive_platform_acl.h similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/archive_platform_acl.h rename to dependencies/libarchive-3.5.2/libarchive/archive_platform_acl.h diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_platform_xattr.h b/dependencies/libarchive-3.5.2/libarchive/archive_platform_xattr.h similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/archive_platform_xattr.h rename to dependencies/libarchive-3.5.2/libarchive/archive_platform_xattr.h diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_ppmd7.c b/dependencies/libarchive-3.5.2/libarchive/archive_ppmd7.c similarity index 99% rename from dependencies/libarchive-3.4.2/libarchive/archive_ppmd7.c rename to dependencies/libarchive-3.5.2/libarchive/archive_ppmd7.c index 4029395..cc3f778 100644 --- a/dependencies/libarchive-3.4.2/libarchive/archive_ppmd7.c +++ b/dependencies/libarchive-3.5.2/libarchive/archive_ppmd7.c @@ -4,7 +4,7 @@ This code is based on PPMd var.H (2001): Dmitry Shkarin : Public domain */ #include "archive_platform.h" -#include +#include #include "archive_ppmd7_private.h" diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_ppmd7_private.h b/dependencies/libarchive-3.5.2/libarchive/archive_ppmd7_private.h similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/archive_ppmd7_private.h rename to dependencies/libarchive-3.5.2/libarchive/archive_ppmd7_private.h diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_ppmd8.c b/dependencies/libarchive-3.5.2/libarchive/archive_ppmd8.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/archive_ppmd8.c rename to dependencies/libarchive-3.5.2/libarchive/archive_ppmd8.c diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_ppmd8_private.h b/dependencies/libarchive-3.5.2/libarchive/archive_ppmd8_private.h similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/archive_ppmd8_private.h rename to dependencies/libarchive-3.5.2/libarchive/archive_ppmd8_private.h diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_ppmd_private.h b/dependencies/libarchive-3.5.2/libarchive/archive_ppmd_private.h similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/archive_ppmd_private.h rename to dependencies/libarchive-3.5.2/libarchive/archive_ppmd_private.h diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_private.h b/dependencies/libarchive-3.5.2/libarchive/archive_private.h similarity index 97% rename from dependencies/libarchive-3.4.2/libarchive/archive_private.h rename to dependencies/libarchive-3.5.2/libarchive/archive_private.h index 937a87b..55a8da1 100644 --- a/dependencies/libarchive-3.4.2/libarchive/archive_private.h +++ b/dependencies/libarchive-3.5.2/libarchive/archive_private.h @@ -46,6 +46,13 @@ #define __LA_DEAD #endif +#if defined(__GNUC__) && (__GNUC__ > 2 || \ + (__GNUC__ == 2 && __GNUC_MINOR__ >= 7)) +#define __LA_UNUSED __attribute__((__unused__)) +#else +#define __LA_UNUSED +#endif + #define ARCHIVE_WRITE_MAGIC (0xb0c5c0deU) #define ARCHIVE_READ_MAGIC (0xdeb0c5U) #define ARCHIVE_WRITE_DISK_MAGIC (0xc001b0c5U) diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_random.c b/dependencies/libarchive-3.5.2/libarchive/archive_random.c similarity index 97% rename from dependencies/libarchive-3.4.2/libarchive/archive_random.c rename to dependencies/libarchive-3.5.2/libarchive/archive_random.c index 65ea691..9d1aa49 100644 --- a/dependencies/libarchive-3.4.2/libarchive/archive_random.c +++ b/dependencies/libarchive-3.5.2/libarchive/archive_random.c @@ -173,7 +173,7 @@ arc4_init(void) } static inline void -arc4_addrandom(u_char *dat, int datlen) +arc4_addrandom(uint8_t *dat, int datlen) { int n; uint8_t si; @@ -196,7 +196,7 @@ arc4_stir(void) struct { struct timeval tv; pid_t pid; - u_char rnd[KEYSIZE]; + uint8_t rnd[KEYSIZE]; } rdat; if (!rs_initialized) { @@ -216,7 +216,7 @@ arc4_stir(void) /* We'll just take whatever was on the stack too... */ } - arc4_addrandom((u_char *)&rdat, KEYSIZE); + arc4_addrandom((uint8_t *)&rdat, KEYSIZE); /* * Discard early keystream, as per recommendations in: @@ -258,7 +258,7 @@ arc4_getbyte(void) static void arc4random_buf(void *_buf, size_t n) { - u_char *buf = (u_char *)_buf; + uint8_t *buf = (uint8_t *)_buf; _ARC4_LOCK(); arc4_stir_if_needed(); while (n--) { diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_random_private.h b/dependencies/libarchive-3.5.2/libarchive/archive_random_private.h similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/archive_random_private.h rename to dependencies/libarchive-3.5.2/libarchive/archive_random_private.h diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_rb.c b/dependencies/libarchive-3.5.2/libarchive/archive_rb.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/archive_rb.c rename to dependencies/libarchive-3.5.2/libarchive/archive_rb.c diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_rb.h b/dependencies/libarchive-3.5.2/libarchive/archive_rb.h similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/archive_rb.h rename to dependencies/libarchive-3.5.2/libarchive/archive_rb.h diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_read.3 b/dependencies/libarchive-3.5.2/libarchive/archive_read.3 similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/archive_read.3 rename to dependencies/libarchive-3.5.2/libarchive/archive_read.3 diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_read.c b/dependencies/libarchive-3.5.2/libarchive/archive_read.c similarity index 99% rename from dependencies/libarchive-3.4.2/libarchive/archive_read.c rename to dependencies/libarchive-3.5.2/libarchive/archive_read.c index 4a933b2..c59f051 100644 --- a/dependencies/libarchive-3.4.2/libarchive/archive_read.c +++ b/dependencies/libarchive-3.5.2/libarchive/archive_read.c @@ -892,15 +892,16 @@ archive_read_data(struct archive *_a, void *buff, size_t s) len = a->read_data_remaining; if (len > s) len = s; - if (len) + if (len) { memcpy(dest, a->read_data_block, len); - s -= len; - a->read_data_block += len; - a->read_data_remaining -= len; - a->read_data_output_offset += len; - a->read_data_offset += len; - dest += len; - bytes_read += len; + s -= len; + a->read_data_block += len; + a->read_data_remaining -= len; + a->read_data_output_offset += len; + a->read_data_offset += len; + dest += len; + bytes_read += len; + } } } a->read_data_is_posix_read = 0; diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_read_add_passphrase.3 b/dependencies/libarchive-3.5.2/libarchive/archive_read_add_passphrase.3 similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/archive_read_add_passphrase.3 rename to dependencies/libarchive-3.5.2/libarchive/archive_read_add_passphrase.3 diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_read_add_passphrase.c b/dependencies/libarchive-3.5.2/libarchive/archive_read_add_passphrase.c similarity index 97% rename from dependencies/libarchive-3.4.2/libarchive/archive_read_add_passphrase.c rename to dependencies/libarchive-3.5.2/libarchive/archive_read_add_passphrase.c index cf821b5..f0b1ab9 100644 --- a/dependencies/libarchive-3.4.2/libarchive/archive_read_add_passphrase.c +++ b/dependencies/libarchive-3.5.2/libarchive/archive_read_add_passphrase.c @@ -57,6 +57,10 @@ insert_passphrase_to_head(struct archive_read *a, { p->next = a->passphrases.first; a->passphrases.first = p; + if (&a->passphrases.first == a->passphrases.last) { + a->passphrases.last = &p->next; + p->next = NULL; + } } static struct archive_read_passphrase * diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_read_append_filter.c b/dependencies/libarchive-3.5.2/libarchive/archive_read_append_filter.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/archive_read_append_filter.c rename to dependencies/libarchive-3.5.2/libarchive/archive_read_append_filter.c diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_read_data.3 b/dependencies/libarchive-3.5.2/libarchive/archive_read_data.3 similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/archive_read_data.3 rename to dependencies/libarchive-3.5.2/libarchive/archive_read_data.3 diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_read_data_into_fd.c b/dependencies/libarchive-3.5.2/libarchive/archive_read_data_into_fd.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/archive_read_data_into_fd.c rename to dependencies/libarchive-3.5.2/libarchive/archive_read_data_into_fd.c diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_read_disk.3 b/dependencies/libarchive-3.5.2/libarchive/archive_read_disk.3 similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/archive_read_disk.3 rename to dependencies/libarchive-3.5.2/libarchive/archive_read_disk.3 diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_read_disk_entry_from_file.c b/dependencies/libarchive-3.5.2/libarchive/archive_read_disk_entry_from_file.c similarity index 96% rename from dependencies/libarchive-3.4.2/libarchive/archive_read_disk_entry_from_file.c rename to dependencies/libarchive-3.5.2/libarchive/archive_read_disk_entry_from_file.c index 2a8cec8..9c9cf38 100644 --- a/dependencies/libarchive-3.4.2/libarchive/archive_read_disk_entry_from_file.c +++ b/dependencies/libarchive-3.5.2/libarchive/archive_read_disk_entry_from_file.c @@ -103,6 +103,10 @@ __FBSDID("$FreeBSD"); static int setup_mac_metadata(struct archive_read_disk *, struct archive_entry *, int *fd); +#ifdef ARCHIVE_XATTR_FREEBSD +static int setup_xattrs_namespace(struct archive_read_disk *, + struct archive_entry *, int *, int); +#endif static int setup_xattrs(struct archive_read_disk *, struct archive_entry *, int *fd); static int setup_sparse(struct archive_read_disk *, @@ -701,14 +705,13 @@ setup_xattr(struct archive_read_disk *a, struct archive_entry *entry, } static int -setup_xattrs(struct archive_read_disk *a, - struct archive_entry *entry, int *fd) +setup_xattrs_namespace(struct archive_read_disk *a, + struct archive_entry *entry, int *fd, int namespace) { char buff[512]; char *list, *p; ssize_t list_size; const char *path; - int namespace = EXTATTR_NAMESPACE_USER; path = NULL; @@ -727,6 +730,8 @@ setup_xattrs(struct archive_read_disk *a, if (list_size == -1 && errno == EOPNOTSUPP) return (ARCHIVE_OK); + if (list_size == -1 && errno == EPERM) + return (ARCHIVE_OK); if (list_size == -1) { archive_set_error(&a->archive, errno, "Couldn't list extended attributes"); @@ -760,7 +765,17 @@ setup_xattrs(struct archive_read_disk *a, size_t len = 255 & (int)*p; char *name; - strcpy(buff, "user."); + if (namespace == EXTATTR_NAMESPACE_SYSTEM) { + if (!strcmp(p + 1, "nfs4.acl") || + !strcmp(p + 1, "posix1e.acl_access") || + !strcmp(p + 1, "posix1e.acl_default")) { + p += 1 + len; + continue; + } + strcpy(buff, "system."); + } else { + strcpy(buff, "user."); + } name = buff + strlen(buff); memcpy(name, p + 1, len); name[len] = '\0'; @@ -772,6 +787,31 @@ setup_xattrs(struct archive_read_disk *a, return (ARCHIVE_OK); } +static int +setup_xattrs(struct archive_read_disk *a, + struct archive_entry *entry, int *fd) +{ + int namespaces[2]; + int i, res; + + namespaces[0] = EXTATTR_NAMESPACE_USER; + namespaces[1] = EXTATTR_NAMESPACE_SYSTEM; + + for (i = 0; i < 2; i++) { + res = setup_xattrs_namespace(a, entry, fd, + namespaces[i]); + switch (res) { + case (ARCHIVE_OK): + case (ARCHIVE_WARN): + break; + default: + return (res); + } + } + + return (ARCHIVE_OK); +} + #else /* diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_read_disk_posix.c b/dependencies/libarchive-3.5.2/libarchive/archive_read_disk_posix.c similarity index 97% rename from dependencies/libarchive-3.4.2/libarchive/archive_read_disk_posix.c rename to dependencies/libarchive-3.5.2/libarchive/archive_read_disk_posix.c index 52fec7b..3ee6269 100644 --- a/dependencies/libarchive-3.4.2/libarchive/archive_read_disk_posix.c +++ b/dependencies/libarchive-3.5.2/libarchive/archive_read_disk_posix.c @@ -1522,8 +1522,40 @@ get_xfer_size(struct tree *t, int fd, const char *path) } #endif -#if defined(HAVE_STATFS) && defined(HAVE_FSTATFS) && defined(MNT_LOCAL) \ - && !defined(ST_LOCAL) +#if defined(HAVE_STATVFS) +static inline __LA_UNUSED void +set_statvfs_transfer_size(struct filesystem *fs, const struct statvfs *sfs) +{ + fs->xfer_align = sfs->f_frsize > 0 ? (long)sfs->f_frsize : -1; + fs->max_xfer_size = -1; +#if defined(HAVE_STRUCT_STATVFS_F_IOSIZE) + fs->min_xfer_size = sfs->f_iosize > 0 ? (long)sfs->f_iosize : -1; + fs->incr_xfer_size = sfs->f_iosize > 0 ? (long)sfs->f_iosize : -1; +#else + fs->min_xfer_size = sfs->f_bsize > 0 ? (long)sfs->f_bsize : -1; + fs->incr_xfer_size = sfs->f_bsize > 0 ? (long)sfs->f_bsize : -1; +#endif +} +#endif + +#if defined(HAVE_STRUCT_STATFS) +static inline __LA_UNUSED void +set_statfs_transfer_size(struct filesystem *fs, const struct statfs *sfs) +{ + fs->xfer_align = sfs->f_bsize > 0 ? (long)sfs->f_bsize : -1; + fs->max_xfer_size = -1; +#if defined(HAVE_STRUCT_STATFS_F_IOSIZE) + fs->min_xfer_size = sfs->f_iosize > 0 ? (long)sfs->f_iosize : -1; + fs->incr_xfer_size = sfs->f_iosize > 0 ? (long)sfs->f_iosize : -1; +#else + fs->min_xfer_size = sfs->f_bsize > 0 ? (long)sfs->f_bsize : -1; + fs->incr_xfer_size = sfs->f_bsize > 0 ? (long)sfs->f_bsize : -1; +#endif +} +#endif + +#if defined(HAVE_STRUCT_STATFS) && defined(HAVE_STATFS) && \ + defined(HAVE_FSTATFS) && defined(MNT_LOCAL) && !defined(ST_LOCAL) /* * Gather current filesystem properties on FreeBSD, OpenBSD and Mac OS X. @@ -1593,10 +1625,7 @@ setup_current_filesystem(struct archive_read_disk *a) return (ARCHIVE_FAILED); } else if (xr == 1) { /* pathconf(_PC_REX_*) operations are not supported. */ - t->current_filesystem->xfer_align = sfs.f_bsize; - t->current_filesystem->max_xfer_size = -1; - t->current_filesystem->min_xfer_size = sfs.f_iosize; - t->current_filesystem->incr_xfer_size = sfs.f_iosize; + set_statfs_transfer_size(t->current_filesystem, &sfs); } if (sfs.f_flags & MNT_LOCAL) t->current_filesystem->remote = 0; @@ -1658,7 +1687,7 @@ static int setup_current_filesystem(struct archive_read_disk *a) { struct tree *t = a->tree; - struct statvfs sfs; + struct statvfs svfs; int r, xr = 0; t->current_filesystem->synthetic = -1; @@ -1667,16 +1696,16 @@ setup_current_filesystem(struct archive_read_disk *a) return (ARCHIVE_FAILED); } if (tree_current_is_symblic_link_target(t)) { - r = statvfs(tree_current_access_path(t), &sfs); + r = statvfs(tree_current_access_path(t), &svfs); if (r == 0) xr = get_xfer_size(t, -1, tree_current_access_path(t)); } else { #ifdef HAVE_FSTATVFS - r = fstatvfs(tree_current_dir_fd(t), &sfs); + r = fstatvfs(tree_current_dir_fd(t), &svfs); if (r == 0) xr = get_xfer_size(t, tree_current_dir_fd(t), NULL); #else - r = statvfs(".", &sfs); + r = statvfs(".", &svfs); if (r == 0) xr = get_xfer_size(t, -1, "."); #endif @@ -1688,30 +1717,22 @@ setup_current_filesystem(struct archive_read_disk *a) } else if (xr == 1) { /* Usually come here unless NetBSD supports _PC_REC_XFER_ALIGN * for pathconf() function. */ - t->current_filesystem->xfer_align = sfs.f_frsize; - t->current_filesystem->max_xfer_size = -1; -#if defined(HAVE_STRUCT_STATVFS_F_IOSIZE) - t->current_filesystem->min_xfer_size = sfs.f_iosize; - t->current_filesystem->incr_xfer_size = sfs.f_iosize; -#else - t->current_filesystem->min_xfer_size = sfs.f_bsize; - t->current_filesystem->incr_xfer_size = sfs.f_bsize; -#endif + set_statvfs_transfer_size(t->current_filesystem, &svfs); } - if (sfs.f_flag & ST_LOCAL) + if (svfs.f_flag & ST_LOCAL) t->current_filesystem->remote = 0; else t->current_filesystem->remote = 1; #if defined(ST_NOATIME) - if (sfs.f_flag & ST_NOATIME) + if (svfs.f_flag & ST_NOATIME) t->current_filesystem->noatime = 1; else #endif t->current_filesystem->noatime = 0; /* Set maximum filename length. */ - t->current_filesystem->name_max = sfs.f_namemax; + t->current_filesystem->name_max = svfs.f_namemax; return (ARCHIVE_OK); } @@ -1803,15 +1824,9 @@ setup_current_filesystem(struct archive_read_disk *a) } else if (xr == 1) { /* pathconf(_PC_REX_*) operations are not supported. */ #if defined(HAVE_STATVFS) - t->current_filesystem->xfer_align = svfs.f_frsize; - t->current_filesystem->max_xfer_size = -1; - t->current_filesystem->min_xfer_size = svfs.f_bsize; - t->current_filesystem->incr_xfer_size = svfs.f_bsize; + set_statvfs_transfer_size(t->current_filesystem, &svfs); #else - t->current_filesystem->xfer_align = sfs.f_frsize; - t->current_filesystem->max_xfer_size = -1; - t->current_filesystem->min_xfer_size = sfs.f_bsize; - t->current_filesystem->incr_xfer_size = sfs.f_bsize; + set_statfs_transfer_size(t->current_filesystem, &sfs); #endif } switch (sfs.f_type) { @@ -1840,7 +1855,7 @@ setup_current_filesystem(struct archive_read_disk *a) #if defined(HAVE_STATVFS) if (svfs.f_flag & ST_NOATIME) #else - if (sfs.f_flag & ST_NOATIME) + if (sfs.f_flags & ST_NOATIME) #endif t->current_filesystem->noatime = 1; else @@ -1864,7 +1879,7 @@ static int setup_current_filesystem(struct archive_read_disk *a) { struct tree *t = a->tree; - struct statvfs sfs; + struct statvfs svfs; int r, xr = 0; t->current_filesystem->synthetic = -1;/* Not supported */ @@ -1883,7 +1898,7 @@ setup_current_filesystem(struct archive_read_disk *a) "openat failed"); return (ARCHIVE_FAILED); } - r = fstatvfs(fd, &sfs); + r = fstatvfs(fd, &svfs); if (r == 0) xr = get_xfer_size(t, fd, NULL); close(fd); @@ -1892,13 +1907,13 @@ setup_current_filesystem(struct archive_read_disk *a) archive_set_error(&a->archive, errno, "fchdir failed"); return (ARCHIVE_FAILED); } - r = statvfs(tree_current_access_path(t), &sfs); + r = statvfs(tree_current_access_path(t), &svfs); if (r == 0) xr = get_xfer_size(t, -1, tree_current_access_path(t)); #endif } else { #ifdef HAVE_FSTATVFS - r = fstatvfs(tree_current_dir_fd(t), &sfs); + r = fstatvfs(tree_current_dir_fd(t), &svfs); if (r == 0) xr = get_xfer_size(t, tree_current_dir_fd(t), NULL); #else @@ -1906,7 +1921,7 @@ setup_current_filesystem(struct archive_read_disk *a) archive_set_error(&a->archive, errno, "fchdir failed"); return (ARCHIVE_FAILED); } - r = statvfs(".", &sfs); + r = statvfs(".", &svfs); if (r == 0) xr = get_xfer_size(t, -1, "."); #endif @@ -1918,14 +1933,11 @@ setup_current_filesystem(struct archive_read_disk *a) return (ARCHIVE_FAILED); } else if (xr == 1) { /* pathconf(_PC_REX_*) operations are not supported. */ - t->current_filesystem->xfer_align = sfs.f_frsize; - t->current_filesystem->max_xfer_size = -1; - t->current_filesystem->min_xfer_size = sfs.f_bsize; - t->current_filesystem->incr_xfer_size = sfs.f_bsize; + set_statvfs_transfer_size(t->current_filesystem, &svfs); } #if defined(ST_NOATIME) - if (sfs.f_flag & ST_NOATIME) + if (svfs.f_flag & ST_NOATIME) t->current_filesystem->noatime = 1; else #endif @@ -1933,7 +1945,7 @@ setup_current_filesystem(struct archive_read_disk *a) #if defined(USE_READDIR_R) /* Set maximum filename length. */ - t->current_filesystem->name_max = sfs.f_namemax; + t->current_filesystem->name_max = svfs.f_namemax; #endif return (ARCHIVE_OK); } diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_read_disk_private.h b/dependencies/libarchive-3.5.2/libarchive/archive_read_disk_private.h similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/archive_read_disk_private.h rename to dependencies/libarchive-3.5.2/libarchive/archive_read_disk_private.h diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_read_disk_set_standard_lookup.c b/dependencies/libarchive-3.5.2/libarchive/archive_read_disk_set_standard_lookup.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/archive_read_disk_set_standard_lookup.c rename to dependencies/libarchive-3.5.2/libarchive/archive_read_disk_set_standard_lookup.c diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_read_disk_windows.c b/dependencies/libarchive-3.5.2/libarchive/archive_read_disk_windows.c similarity index 99% rename from dependencies/libarchive-3.4.2/libarchive/archive_read_disk_windows.c rename to dependencies/libarchive-3.5.2/libarchive/archive_read_disk_windows.c index fdd376f..877bc44 100644 --- a/dependencies/libarchive-3.4.2/libarchive/archive_read_disk_windows.c +++ b/dependencies/libarchive-3.5.2/libarchive/archive_read_disk_windows.c @@ -1844,7 +1844,7 @@ tree_next(struct tree *t) continue; return (r); } else { - HANDLE h = FindFirstFileW(d, &t->_findData); + HANDLE h = FindFirstFileW(t->stack->full_path.s, &t->_findData); if (h == INVALID_HANDLE_VALUE) { la_dosmaperr(GetLastError()); t->tree_errno = errno; diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_read_extract.3 b/dependencies/libarchive-3.5.2/libarchive/archive_read_extract.3 similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/archive_read_extract.3 rename to dependencies/libarchive-3.5.2/libarchive/archive_read_extract.3 diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_read_extract.c b/dependencies/libarchive-3.5.2/libarchive/archive_read_extract.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/archive_read_extract.c rename to dependencies/libarchive-3.5.2/libarchive/archive_read_extract.c diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_read_extract2.c b/dependencies/libarchive-3.5.2/libarchive/archive_read_extract2.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/archive_read_extract2.c rename to dependencies/libarchive-3.5.2/libarchive/archive_read_extract2.c diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_read_filter.3 b/dependencies/libarchive-3.5.2/libarchive/archive_read_filter.3 similarity index 92% rename from dependencies/libarchive-3.4.2/libarchive/archive_read_filter.3 rename to dependencies/libarchive-3.5.2/libarchive/archive_read_filter.3 index 1ba5fcb..4f5c351 100644 --- a/dependencies/libarchive-3.4.2/libarchive/archive_read_filter.3 +++ b/dependencies/libarchive-3.5.2/libarchive/archive_read_filter.3 @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd August 14, 2014 +.Dd June 9, 2020 .Dt ARCHIVE_READ_FILTER 3 .Os .Sh NAME @@ -50,6 +50,8 @@ Streaming Archive Library (libarchive, -larchive) .Ft int .Fn archive_read_support_filter_all "struct archive *" .Ft int +.Fn archive_read_support_filter_by_code "struct archive *" "int" +.Ft int .Fn archive_read_support_filter_bzip2 "struct archive *" .Ft int .Fn archive_read_support_filter_compress "struct archive *" @@ -116,6 +118,14 @@ Note that is always enabled by default. .It Fn archive_read_support_filter_all Enables all available decompression filters. +.It Fn archive_read_support_filter_by_code +Enables a single filter specified by the filter code. +This function does not work with +.Cm ARCHIVE_FILTER_PROGRAM . +Note: In statically-linked executables, this will cause +your program to include support for every filter. +If executable size is a concern, you may wish to avoid +using this function. .It Fn archive_read_support_filter_program Data is fed through the specified external program before being dearchived. Note that this disables automatic detection of the compression format, diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_read_format.3 b/dependencies/libarchive-3.5.2/libarchive/archive_read_format.3 similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/archive_read_format.3 rename to dependencies/libarchive-3.5.2/libarchive/archive_read_format.3 diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_read_free.3 b/dependencies/libarchive-3.5.2/libarchive/archive_read_free.3 similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/archive_read_free.3 rename to dependencies/libarchive-3.5.2/libarchive/archive_read_free.3 diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_read_header.3 b/dependencies/libarchive-3.5.2/libarchive/archive_read_header.3 similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/archive_read_header.3 rename to dependencies/libarchive-3.5.2/libarchive/archive_read_header.3 diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_read_new.3 b/dependencies/libarchive-3.5.2/libarchive/archive_read_new.3 similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/archive_read_new.3 rename to dependencies/libarchive-3.5.2/libarchive/archive_read_new.3 diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_read_open.3 b/dependencies/libarchive-3.5.2/libarchive/archive_read_open.3 similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/archive_read_open.3 rename to dependencies/libarchive-3.5.2/libarchive/archive_read_open.3 diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_read_open_fd.c b/dependencies/libarchive-3.5.2/libarchive/archive_read_open_fd.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/archive_read_open_fd.c rename to dependencies/libarchive-3.5.2/libarchive/archive_read_open_fd.c diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_read_open_file.c b/dependencies/libarchive-3.5.2/libarchive/archive_read_open_file.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/archive_read_open_file.c rename to dependencies/libarchive-3.5.2/libarchive/archive_read_open_file.c diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_read_open_filename.c b/dependencies/libarchive-3.5.2/libarchive/archive_read_open_filename.c similarity index 99% rename from dependencies/libarchive-3.4.2/libarchive/archive_read_open_filename.c rename to dependencies/libarchive-3.5.2/libarchive/archive_read_open_filename.c index 86635e2..561289b 100644 --- a/dependencies/libarchive-3.4.2/libarchive/archive_read_open_filename.c +++ b/dependencies/libarchive-3.5.2/libarchive/archive_read_open_filename.c @@ -221,7 +221,9 @@ file_open(struct archive *a, void *client_data) struct read_file_data *mine = (struct read_file_data *)client_data; void *buffer; const char *filename = NULL; +#if defined(_WIN32) && !defined(__CYGWIN__) const wchar_t *wfilename = NULL; +#endif int fd = -1; int is_disk_like = 0; #if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) @@ -281,10 +283,12 @@ file_open(struct archive *a, void *client_data) #endif } if (fstat(fd, &st) != 0) { +#if defined(_WIN32) && !defined(__CYGWIN__) if (mine->filename_type == FNT_WCS) archive_set_error(a, errno, "Can't stat '%S'", wfilename); else +#endif archive_set_error(a, errno, "Can't stat '%s'", filename); goto fail; diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_read_open_memory.c b/dependencies/libarchive-3.5.2/libarchive/archive_read_open_memory.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/archive_read_open_memory.c rename to dependencies/libarchive-3.5.2/libarchive/archive_read_open_memory.c diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_read_private.h b/dependencies/libarchive-3.5.2/libarchive/archive_read_private.h similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/archive_read_private.h rename to dependencies/libarchive-3.5.2/libarchive/archive_read_private.h diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_read_set_format.c b/dependencies/libarchive-3.5.2/libarchive/archive_read_set_format.c similarity index 94% rename from dependencies/libarchive-3.4.2/libarchive/archive_read_set_format.c rename to dependencies/libarchive-3.5.2/libarchive/archive_read_set_format.c index 1d3e49d..796dcdc 100644 --- a/dependencies/libarchive-3.4.2/libarchive/archive_read_set_format.c +++ b/dependencies/libarchive-3.5.2/libarchive/archive_read_set_format.c @@ -61,6 +61,9 @@ archive_read_set_format(struct archive *_a, int code) case ARCHIVE_FORMAT_CPIO: strcpy(str, "cpio"); break; + case ARCHIVE_FORMAT_EMPTY: + strcpy(str, "empty"); + break; case ARCHIVE_FORMAT_ISO9660: strcpy(str, "iso9660"); break; @@ -76,9 +79,15 @@ archive_read_set_format(struct archive *_a, int code) case ARCHIVE_FORMAT_RAR_V5: strcpy(str, "rar5"); break; + case ARCHIVE_FORMAT_RAW: + strcpy(str, "raw"); + break; case ARCHIVE_FORMAT_TAR: strcpy(str, "tar"); break; + case ARCHIVE_FORMAT_WARC: + strcpy(str, "warc"); + break; case ARCHIVE_FORMAT_XAR: strcpy(str, "xar"); break; diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_read_set_options.3 b/dependencies/libarchive-3.5.2/libarchive/archive_read_set_options.3 similarity index 94% rename from dependencies/libarchive-3.4.2/libarchive/archive_read_set_options.3 rename to dependencies/libarchive-3.5.2/libarchive/archive_read_set_options.3 index 78d9999..b2db4cb 100644 --- a/dependencies/libarchive-3.4.2/libarchive/archive_read_set_options.3 +++ b/dependencies/libarchive-3.5.2/libarchive/archive_read_set_options.3 @@ -188,9 +188,18 @@ used when translating file names. .El .It Format cpio .Bl -tag -compact -width indent +.It Cm compat-2x +Libarchive 2.x incorrectly encoded Unicode filenames on +some platforms. +This option mimics the libarchive 2.x filename handling +so that such archives can be read correctly. .It Cm hdrcharset The value is used as a character set name that will be used when translating file names. +.It Cm pwb +When reading a binary CPIO archive, assume that it is +in the original PWB cpio format, and handle file mode +bits accordingly. The default is to assume v7 format. .El .It Format iso9660 .Bl -tag -compact -width indent diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_read_set_options.c b/dependencies/libarchive-3.5.2/libarchive/archive_read_set_options.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/archive_read_set_options.c rename to dependencies/libarchive-3.5.2/libarchive/archive_read_set_options.c diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_read_support_filter_all.c b/dependencies/libarchive-3.5.2/libarchive/archive_read_support_filter_all.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/archive_read_support_filter_all.c rename to dependencies/libarchive-3.5.2/libarchive/archive_read_support_filter_all.c diff --git a/dependencies/libarchive-3.5.2/libarchive/archive_read_support_filter_by_code.c b/dependencies/libarchive-3.5.2/libarchive/archive_read_support_filter_by_code.c new file mode 100644 index 0000000..94c4af6 --- /dev/null +++ b/dependencies/libarchive-3.5.2/libarchive/archive_read_support_filter_by_code.c @@ -0,0 +1,83 @@ +/*- + * Copyright (c) 2020 Martin Matuska + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include "archive_platform.h" +__FBSDID("$FreeBSD$"); + +#include "archive.h" +#include "archive_private.h" + +int +archive_read_support_filter_by_code(struct archive *a, int filter_code) +{ + archive_check_magic(a, ARCHIVE_READ_MAGIC, + ARCHIVE_STATE_NEW, "archive_read_support_filter_by_code"); + + switch (filter_code) { + case ARCHIVE_FILTER_NONE: + return archive_read_support_filter_none(a); + break; + case ARCHIVE_FILTER_GZIP: + return archive_read_support_filter_gzip(a); + break; + case ARCHIVE_FILTER_BZIP2: + return archive_read_support_filter_bzip2(a); + break; + case ARCHIVE_FILTER_COMPRESS: + return archive_read_support_filter_compress(a); + break; + case ARCHIVE_FILTER_LZMA: + return archive_read_support_filter_lzma(a); + break; + case ARCHIVE_FILTER_XZ: + return archive_read_support_filter_xz(a); + break; + case ARCHIVE_FILTER_UU: + return archive_read_support_filter_uu(a); + break; + case ARCHIVE_FILTER_RPM: + return archive_read_support_filter_rpm(a); + break; + case ARCHIVE_FILTER_LZIP: + return archive_read_support_filter_lzip(a); + break; + case ARCHIVE_FILTER_LRZIP: + return archive_read_support_filter_lrzip(a); + break; + case ARCHIVE_FILTER_LZOP: + return archive_read_support_filter_lzop(a); + break; + case ARCHIVE_FILTER_GRZIP: + return archive_read_support_filter_grzip(a); + break; + case ARCHIVE_FILTER_LZ4: + return archive_read_support_filter_lz4(a); + break; + case ARCHIVE_FILTER_ZSTD: + return archive_read_support_filter_zstd(a); + break; + } + return (ARCHIVE_FATAL); +} diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_read_support_filter_bzip2.c b/dependencies/libarchive-3.5.2/libarchive/archive_read_support_filter_bzip2.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/archive_read_support_filter_bzip2.c rename to dependencies/libarchive-3.5.2/libarchive/archive_read_support_filter_bzip2.c diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_read_support_filter_compress.c b/dependencies/libarchive-3.5.2/libarchive/archive_read_support_filter_compress.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/archive_read_support_filter_compress.c rename to dependencies/libarchive-3.5.2/libarchive/archive_read_support_filter_compress.c diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_read_support_filter_grzip.c b/dependencies/libarchive-3.5.2/libarchive/archive_read_support_filter_grzip.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/archive_read_support_filter_grzip.c rename to dependencies/libarchive-3.5.2/libarchive/archive_read_support_filter_grzip.c diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_read_support_filter_gzip.c b/dependencies/libarchive-3.5.2/libarchive/archive_read_support_filter_gzip.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/archive_read_support_filter_gzip.c rename to dependencies/libarchive-3.5.2/libarchive/archive_read_support_filter_gzip.c diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_read_support_filter_lrzip.c b/dependencies/libarchive-3.5.2/libarchive/archive_read_support_filter_lrzip.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/archive_read_support_filter_lrzip.c rename to dependencies/libarchive-3.5.2/libarchive/archive_read_support_filter_lrzip.c diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_read_support_filter_lz4.c b/dependencies/libarchive-3.5.2/libarchive/archive_read_support_filter_lz4.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/archive_read_support_filter_lz4.c rename to dependencies/libarchive-3.5.2/libarchive/archive_read_support_filter_lz4.c diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_read_support_filter_lzop.c b/dependencies/libarchive-3.5.2/libarchive/archive_read_support_filter_lzop.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/archive_read_support_filter_lzop.c rename to dependencies/libarchive-3.5.2/libarchive/archive_read_support_filter_lzop.c diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_read_support_filter_none.c b/dependencies/libarchive-3.5.2/libarchive/archive_read_support_filter_none.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/archive_read_support_filter_none.c rename to dependencies/libarchive-3.5.2/libarchive/archive_read_support_filter_none.c diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_read_support_filter_program.c b/dependencies/libarchive-3.5.2/libarchive/archive_read_support_filter_program.c similarity index 95% rename from dependencies/libarchive-3.4.2/libarchive/archive_read_support_filter_program.c rename to dependencies/libarchive-3.5.2/libarchive/archive_read_support_filter_program.c index b8bf128..bf5b6f2 100644 --- a/dependencies/libarchive-3.4.2/libarchive/archive_read_support_filter_program.c +++ b/dependencies/libarchive-3.5.2/libarchive/archive_read_support_filter_program.c @@ -400,7 +400,7 @@ __archive_read_program(struct archive_read_filter *self, const char *cmd) static const size_t out_buf_len = 65536; char *out_buf; const char *prefix = "Program: "; - pid_t child; + int ret; size_t l; l = strlen(prefix) + strlen(cmd) + 1; @@ -426,9 +426,9 @@ __archive_read_program(struct archive_read_filter *self, const char *cmd) state->out_buf = out_buf; state->out_buf_len = out_buf_len; - child = __archive_create_child(cmd, &state->child_stdin, - &state->child_stdout); - if (child == -1) { + ret = __archive_create_child(cmd, &state->child_stdin, + &state->child_stdout, &state->child); + if (ret != ARCHIVE_OK) { free(state->out_buf); archive_string_free(&state->description); free(state); @@ -437,21 +437,6 @@ __archive_read_program(struct archive_read_filter *self, const char *cmd) cmd); return (ARCHIVE_FATAL); } -#if defined(_WIN32) && !defined(__CYGWIN__) - state->child = OpenProcess(PROCESS_QUERY_INFORMATION, FALSE, child); - if (state->child == NULL) { - child_stop(self, state); - free(state->out_buf); - archive_string_free(&state->description); - free(state); - archive_set_error(&self->archive->archive, EINVAL, - "Can't initialize filter; unable to run program \"%s\"", - cmd); - return (ARCHIVE_FATAL); - } -#else - state->child = child; -#endif self->data = state; self->read = program_filter_read; diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_read_support_filter_rpm.c b/dependencies/libarchive-3.5.2/libarchive/archive_read_support_filter_rpm.c similarity index 99% rename from dependencies/libarchive-3.4.2/libarchive/archive_read_support_filter_rpm.c rename to dependencies/libarchive-3.5.2/libarchive/archive_read_support_filter_rpm.c index e7e58e5..ddd6839 100644 --- a/dependencies/libarchive-3.4.2/libarchive/archive_read_support_filter_rpm.c +++ b/dependencies/libarchive-3.5.2/libarchive/archive_read_support_filter_rpm.c @@ -216,7 +216,7 @@ rpm_filter_read(struct archive_read_filter *self, const void **buff) archive_set_error( &self->archive->archive, ARCHIVE_ERRNO_FILE_FORMAT, - "Unrecoginized rpm header"); + "Unrecognized rpm header"); return (ARCHIVE_FATAL); } rpm->state = ST_ARCHIVE; diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_read_support_filter_uu.c b/dependencies/libarchive-3.5.2/libarchive/archive_read_support_filter_uu.c similarity index 99% rename from dependencies/libarchive-3.4.2/libarchive/archive_read_support_filter_uu.c rename to dependencies/libarchive-3.5.2/libarchive/archive_read_support_filter_uu.c index 67ddffb..689c18c 100644 --- a/dependencies/libarchive-3.4.2/libarchive/archive_read_support_filter_uu.c +++ b/dependencies/libarchive-3.5.2/libarchive/archive_read_support_filter_uu.c @@ -248,7 +248,7 @@ bid_get_line(struct archive_read_filter *filter, *ravail = *avail; *b += diff; *avail -= diff; - tested = len;/* Skip some bytes we already determinated. */ + tested = len;/* Skip some bytes we already determined. */ len = get_line(*b + tested, *avail - tested, nl); if (len >= 0) len += tested; diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_read_support_filter_xz.c b/dependencies/libarchive-3.5.2/libarchive/archive_read_support_filter_xz.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/archive_read_support_filter_xz.c rename to dependencies/libarchive-3.5.2/libarchive/archive_read_support_filter_xz.c diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_read_support_filter_zstd.c b/dependencies/libarchive-3.5.2/libarchive/archive_read_support_filter_zstd.c similarity index 97% rename from dependencies/libarchive-3.4.2/libarchive/archive_read_support_filter_zstd.c rename to dependencies/libarchive-3.5.2/libarchive/archive_read_support_filter_zstd.c index c8bb36b..af7eeb7 100644 --- a/dependencies/libarchive-3.4.2/libarchive/archive_read_support_filter_zstd.c +++ b/dependencies/libarchive-3.5.2/libarchive/archive_read_support_filter_zstd.c @@ -119,6 +119,8 @@ zstd_bidder_bid(struct archive_read_filter_bidder *self, /* Zstd frame magic values */ const unsigned zstd_magic = 0xFD2FB528U; + const unsigned zstd_magic_skippable_start = 0x184D2A50U; + const unsigned zstd_magic_skippable_mask = 0xFFFFFFF0; (void) self; /* UNUSED */ @@ -129,6 +131,8 @@ zstd_bidder_bid(struct archive_read_filter_bidder *self, prefix = archive_le32dec(buffer); if (prefix == zstd_magic) return (32); + if ((prefix & zstd_magic_skippable_mask) == zstd_magic_skippable_start) + return (32); return (0); } diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_read_support_format_7zip.c b/dependencies/libarchive-3.5.2/libarchive/archive_read_support_format_7zip.c similarity index 99% rename from dependencies/libarchive-3.4.2/libarchive/archive_read_support_format_7zip.c rename to dependencies/libarchive-3.5.2/libarchive/archive_read_support_format_7zip.c index 6ce9d1a..63cbb7d 100644 --- a/dependencies/libarchive-3.4.2/libarchive/archive_read_support_format_7zip.c +++ b/dependencies/libarchive-3.5.2/libarchive/archive_read_support_format_7zip.c @@ -808,8 +808,12 @@ archive_read_format_7zip_read_data(struct archive_read *a, if (zip->end_of_entry) return (ARCHIVE_EOF); - bytes = read_stream(a, buff, - (size_t)zip->entry_bytes_remaining, 0); + const uint64_t max_read_size = 16 * 1024 * 1024; // Don't try to read more than 16 MB at a time + size_t bytes_to_read = max_read_size; + if ((uint64_t)bytes_to_read > zip->entry_bytes_remaining) { + bytes_to_read = zip->entry_bytes_remaining; + } + bytes = read_stream(a, buff, bytes_to_read, 0); if (bytes < 0) return ((int)bytes); if (bytes == 0) { @@ -1493,7 +1497,7 @@ decompress(struct archive_read *a, struct _7zip *zip, zip->ppmd7_stat = -1; archive_set_error(&a->archive, ARCHIVE_ERRNO_MISC, - "Failed to initialize PPMd range decorder"); + "Failed to initialize PPMd range decoder"); return (ARCHIVE_FAILED); } if (zip->ppstream.overconsumed) { @@ -3031,10 +3035,10 @@ extract_pack_stream(struct archive_read *a, size_t minimum) "Truncated 7-Zip file body"); return (ARCHIVE_FATAL); } - if (bytes_avail > (ssize_t)zip->pack_stream_inbytes_remaining) + if ((uint64_t)bytes_avail > zip->pack_stream_inbytes_remaining) bytes_avail = (ssize_t)zip->pack_stream_inbytes_remaining; zip->pack_stream_inbytes_remaining -= bytes_avail; - if (bytes_avail > (ssize_t)zip->folder_outbytes_remaining) + if ((uint64_t)bytes_avail > zip->folder_outbytes_remaining) bytes_avail = (ssize_t)zip->folder_outbytes_remaining; zip->folder_outbytes_remaining -= bytes_avail; zip->uncompressed_buffer_bytes_remaining = bytes_avail; diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_read_support_format_all.c b/dependencies/libarchive-3.5.2/libarchive/archive_read_support_format_all.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/archive_read_support_format_all.c rename to dependencies/libarchive-3.5.2/libarchive/archive_read_support_format_all.c diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_read_support_format_ar.c b/dependencies/libarchive-3.5.2/libarchive/archive_read_support_format_ar.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/archive_read_support_format_ar.c rename to dependencies/libarchive-3.5.2/libarchive/archive_read_support_format_ar.c diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_read_support_format_by_code.c b/dependencies/libarchive-3.5.2/libarchive/archive_read_support_format_by_code.c similarity index 87% rename from dependencies/libarchive-3.4.2/libarchive/archive_read_support_format_by_code.c rename to dependencies/libarchive-3.5.2/libarchive/archive_read_support_format_by_code.c index 034353d..89e96f1 100644 --- a/dependencies/libarchive-3.4.2/libarchive/archive_read_support_format_by_code.c +++ b/dependencies/libarchive-3.5.2/libarchive/archive_read_support_format_by_code.c @@ -26,6 +26,10 @@ #include "archive_platform.h" __FBSDID("$FreeBSD$"); +#ifdef HAVE_ERRNO_H +#include +#endif + #include "archive.h" #include "archive_private.h" @@ -48,6 +52,9 @@ archive_read_support_format_by_code(struct archive *a, int format_code) case ARCHIVE_FORMAT_CPIO: return archive_read_support_format_cpio(a); break; + case ARCHIVE_FORMAT_EMPTY: + return archive_read_support_format_empty(a); + break; case ARCHIVE_FORMAT_ISO9660: return archive_read_support_format_iso9660(a); break; @@ -63,9 +70,15 @@ archive_read_support_format_by_code(struct archive *a, int format_code) case ARCHIVE_FORMAT_RAR_V5: return archive_read_support_format_rar5(a); break; + case ARCHIVE_FORMAT_RAW: + return archive_read_support_format_raw(a); + break; case ARCHIVE_FORMAT_TAR: return archive_read_support_format_tar(a); break; + case ARCHIVE_FORMAT_WARC: + return archive_read_support_format_warc(a); + break; case ARCHIVE_FORMAT_XAR: return archive_read_support_format_xar(a); break; @@ -73,5 +86,7 @@ archive_read_support_format_by_code(struct archive *a, int format_code) return archive_read_support_format_zip(a); break; } + archive_set_error(a, ARCHIVE_ERRNO_PROGRAMMER, + "Invalid format code specified"); return (ARCHIVE_FATAL); } diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_read_support_format_cab.c b/dependencies/libarchive-3.5.2/libarchive/archive_read_support_format_cab.c similarity index 99% rename from dependencies/libarchive-3.4.2/libarchive/archive_read_support_format_cab.c rename to dependencies/libarchive-3.5.2/libarchive/archive_read_support_format_cab.c index a647530..950f3d2 100644 --- a/dependencies/libarchive-3.4.2/libarchive/archive_read_support_format_cab.c +++ b/dependencies/libarchive-3.5.2/libarchive/archive_read_support_format_cab.c @@ -1172,7 +1172,7 @@ cab_checksum_finish(struct archive_read *a) cfdata->memimage + CFDATA_cbData, l, cfdata->sum_calculated); if (cfdata->sum_calculated != cfdata->sum) { archive_set_error(&a->archive, ARCHIVE_ERRNO_FILE_FORMAT, - "Checksum error CFDATA[%d] %x:%x in %d bytes", + "Checksum error CFDATA[%d] %" PRIx32 ":%" PRIx32 " in %d bytes", cab->entry_cffolder->cfdata_index -1, cfdata->sum, cfdata->sum_calculated, cfdata->compressed_size); @@ -2110,7 +2110,6 @@ lzx_decode_init(struct lzx_stream *strm, int w_bits) ds->pos_tbl = malloc(sizeof(ds->pos_tbl[0]) * w_slot); if (ds->pos_tbl == NULL) return (ARCHIVE_FATAL); - lzx_huffman_free(&(ds->mt)); } for (footer = 0; footer < 18; footer++) diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_read_support_format_cpio.c b/dependencies/libarchive-3.5.2/libarchive/archive_read_support_format_cpio.c similarity index 97% rename from dependencies/libarchive-3.4.2/libarchive/archive_read_support_format_cpio.c rename to dependencies/libarchive-3.5.2/libarchive/archive_read_support_format_cpio.c index 1c96e6a..6b8ae33 100644 --- a/dependencies/libarchive-3.4.2/libarchive/archive_read_support_format_cpio.c +++ b/dependencies/libarchive-3.5.2/libarchive/archive_read_support_format_cpio.c @@ -185,6 +185,8 @@ struct cpio { struct archive_string_conv *opt_sconv; struct archive_string_conv *sconv_default; int init_default_conversion; + + int option_pwb; }; static int64_t atol16(const char *, unsigned); @@ -343,6 +345,10 @@ archive_read_format_cpio_options(struct archive_read *a, ret = ARCHIVE_FATAL; } return (ret); + } else if (strcmp(key, "pwb") == 0) { + if (val != NULL && val[0] != 0) + cpio->option_pwb = 1; + return (ARCHIVE_OK); } /* Note: The "warn" return is just to inform the options @@ -891,6 +897,12 @@ header_bin_le(struct archive_read *a, struct cpio *cpio, archive_entry_set_dev(entry, header[bin_dev_offset] + header[bin_dev_offset + 1] * 256); archive_entry_set_ino(entry, header[bin_ino_offset] + header[bin_ino_offset + 1] * 256); archive_entry_set_mode(entry, header[bin_mode_offset] + header[bin_mode_offset + 1] * 256); + if (cpio->option_pwb) { + /* turn off random bits left over from V6 inode */ + archive_entry_set_mode(entry, archive_entry_mode(entry) & 067777); + if ((archive_entry_mode(entry) & AE_IFMT) == 0) + archive_entry_set_mode(entry, archive_entry_mode(entry) | AE_IFREG); + } archive_entry_set_uid(entry, header[bin_uid_offset] + header[bin_uid_offset + 1] * 256); archive_entry_set_gid(entry, header[bin_gid_offset] + header[bin_gid_offset + 1] * 256); archive_entry_set_nlink(entry, header[bin_nlink_offset] + header[bin_nlink_offset + 1] * 256); @@ -930,6 +942,12 @@ header_bin_be(struct archive_read *a, struct cpio *cpio, archive_entry_set_dev(entry, header[bin_dev_offset] * 256 + header[bin_dev_offset + 1]); archive_entry_set_ino(entry, header[bin_ino_offset] * 256 + header[bin_ino_offset + 1]); archive_entry_set_mode(entry, header[bin_mode_offset] * 256 + header[bin_mode_offset + 1]); + if (cpio->option_pwb) { + /* turn off random bits left over from V6 inode */ + archive_entry_set_mode(entry, archive_entry_mode(entry) & 067777); + if ((archive_entry_mode(entry) & AE_IFMT) == 0) + archive_entry_set_mode(entry, archive_entry_mode(entry) | AE_IFREG); + } archive_entry_set_uid(entry, header[bin_uid_offset] * 256 + header[bin_uid_offset + 1]); archive_entry_set_gid(entry, header[bin_gid_offset] * 256 + header[bin_gid_offset + 1]); archive_entry_set_nlink(entry, header[bin_nlink_offset] * 256 + header[bin_nlink_offset + 1]); diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_read_support_format_empty.c b/dependencies/libarchive-3.5.2/libarchive/archive_read_support_format_empty.c similarity index 99% rename from dependencies/libarchive-3.4.2/libarchive/archive_read_support_format_empty.c rename to dependencies/libarchive-3.5.2/libarchive/archive_read_support_format_empty.c index c641eb9..53fb6cc 100644 --- a/dependencies/libarchive-3.4.2/libarchive/archive_read_support_format_empty.c +++ b/dependencies/libarchive-3.5.2/libarchive/archive_read_support_format_empty.c @@ -47,7 +47,7 @@ archive_read_support_format_empty(struct archive *_a) r = __archive_read_register_format(a, NULL, - NULL, + "empty", archive_read_format_empty_bid, NULL, archive_read_format_empty_read_header, diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_read_support_format_iso9660.c b/dependencies/libarchive-3.5.2/libarchive/archive_read_support_format_iso9660.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/archive_read_support_format_iso9660.c rename to dependencies/libarchive-3.5.2/libarchive/archive_read_support_format_iso9660.c diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_read_support_format_lha.c b/dependencies/libarchive-3.5.2/libarchive/archive_read_support_format_lha.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/archive_read_support_format_lha.c rename to dependencies/libarchive-3.5.2/libarchive/archive_read_support_format_lha.c diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_read_support_format_mtree.c b/dependencies/libarchive-3.5.2/libarchive/archive_read_support_format_mtree.c similarity index 94% rename from dependencies/libarchive-3.4.2/libarchive/archive_read_support_format_mtree.c rename to dependencies/libarchive-3.5.2/libarchive/archive_read_support_format_mtree.c index 332944a..c87a154 100644 --- a/dependencies/libarchive-3.4.2/libarchive/archive_read_support_format_mtree.c +++ b/dependencies/libarchive-3.5.2/libarchive/archive_read_support_format_mtree.c @@ -51,6 +51,7 @@ __FBSDID("$FreeBSD: head/lib/libarchive/archive_read_support_format_mtree.c 2011 #include "archive.h" #include "archive_entry.h" +#include "archive_entry_private.h" #include "archive_private.h" #include "archive_rb.h" #include "archive_read_private.h" @@ -135,6 +136,9 @@ static int skip(struct archive_read *a); static int read_header(struct archive_read *, struct archive_entry *); static int64_t mtree_atol(char **, int base); +#ifndef HAVE_STRNLEN +static size_t mtree_strnlen(const char *, size_t); +#endif /* * There's no standard for TIME_T_MAX/TIME_T_MIN. So we compute them @@ -186,6 +190,24 @@ get_time_t_min(void) #endif } +#ifdef HAVE_STRNLEN +#define mtree_strnlen(a,b) strnlen(a,b) +#else +static size_t +mtree_strnlen(const char *p, size_t maxlen) +{ + size_t i; + + for (i = 0; i <= maxlen; i++) { + if (p[i] == 0) + break; + } + if (i > maxlen) + return (-1);/* invalid */ + return (i); +} +#endif + static int archive_read_format_mtree_options(struct archive_read *a, const char *key, const char *val) @@ -386,7 +408,7 @@ next_line(struct archive_read *a, *ravail = *avail; *b += diff; *avail -= diff; - tested = len;/* Skip some bytes we already determinated. */ + tested = len;/* Skip some bytes we already determined. */ len = get_line_size(*b + len, *avail - len, nl); if (len >= 0) len += tested; @@ -1052,7 +1074,7 @@ read_mtree(struct archive_read *a, struct mtree *mtree) continue; /* Non-printable characters are not allowed */ for (s = p;s < p + len - 1; s++) { - if (!isprint(*s)) { + if (!isprint((unsigned char)*s)) { r = ARCHIVE_FATAL; break; } @@ -1482,6 +1504,84 @@ parse_device(dev_t *pdev, struct archive *a, char *val) #undef MAX_PACK_ARGS } +static int +parse_hex_nibble(char c) +{ + if (c >= '0' && c <= '9') + return c - '0'; + if (c >= 'a' && c <= 'f') + return 10 + c - 'a'; +#if 0 + /* XXX: Is uppercase something we should support? */ + if (c >= 'A' && c <= 'F') + return 10 + c - 'A'; +#endif + + return -1; +} + +static int +parse_digest(struct archive_read *a, struct archive_entry *entry, + const char *digest, int type) +{ + unsigned char digest_buf[64]; + int high, low; + size_t i, j, len; + + switch (type) { + case ARCHIVE_ENTRY_DIGEST_MD5: + len = sizeof(entry->digest.md5); + break; + case ARCHIVE_ENTRY_DIGEST_RMD160: + len = sizeof(entry->digest.rmd160); + break; + case ARCHIVE_ENTRY_DIGEST_SHA1: + len = sizeof(entry->digest.sha1); + break; + case ARCHIVE_ENTRY_DIGEST_SHA256: + len = sizeof(entry->digest.sha256); + break; + case ARCHIVE_ENTRY_DIGEST_SHA384: + len = sizeof(entry->digest.sha384); + break; + case ARCHIVE_ENTRY_DIGEST_SHA512: + len = sizeof(entry->digest.sha512); + break; + default: + archive_set_error(&a->archive, ARCHIVE_ERRNO_PROGRAMMER, + "Internal error: Unknown digest type"); + return ARCHIVE_FATAL; + } + + if (len > sizeof(digest_buf)) { + archive_set_error(&a->archive, ARCHIVE_ERRNO_PROGRAMMER, + "Internal error: Digest storage too large"); + return ARCHIVE_FATAL; + } + + len *= 2; + + if (mtree_strnlen(digest, len+1) != len) { + archive_set_error(&a->archive, ARCHIVE_ERRNO_FILE_FORMAT, + "incorrect digest length, ignoring"); + return ARCHIVE_WARN; + } + + for (i = 0, j = 0; i < len; i += 2, j++) { + high = parse_hex_nibble(digest[i]); + low = parse_hex_nibble(digest[i+1]); + if (high == -1 || low == -1) { + archive_set_error(&a->archive, ARCHIVE_ERRNO_FILE_FORMAT, + "invalid digest data, ignoring"); + return ARCHIVE_WARN; + } + + digest_buf[j] = high << 4 | low; + } + + return archive_entry_set_digest(entry, type, digest_buf); +} + /* * Parse a single keyword and its value. */ @@ -1580,8 +1680,10 @@ parse_keyword(struct archive_read *a, struct mtree *mtree, } __LA_FALLTHROUGH; case 'm': - if (strcmp(key, "md5") == 0 || strcmp(key, "md5digest") == 0) - break; + if (strcmp(key, "md5") == 0 || strcmp(key, "md5digest") == 0) { + return parse_digest(a, entry, val, + ARCHIVE_ENTRY_DIGEST_MD5); + } if (strcmp(key, "mode") == 0) { if (val[0] >= '0' && val[0] <= '7') { *parsed_kws |= MTREE_HAS_PERM; @@ -1617,21 +1719,32 @@ parse_keyword(struct archive_read *a, struct mtree *mtree, return r; } if (strcmp(key, "rmd160") == 0 || - strcmp(key, "rmd160digest") == 0) - break; + strcmp(key, "rmd160digest") == 0) { + return parse_digest(a, entry, val, + ARCHIVE_ENTRY_DIGEST_RMD160); + } __LA_FALLTHROUGH; case 's': - if (strcmp(key, "sha1") == 0 || strcmp(key, "sha1digest") == 0) - break; + if (strcmp(key, "sha1") == 0 || + strcmp(key, "sha1digest") == 0) { + return parse_digest(a, entry, val, + ARCHIVE_ENTRY_DIGEST_SHA1); + } if (strcmp(key, "sha256") == 0 || - strcmp(key, "sha256digest") == 0) - break; + strcmp(key, "sha256digest") == 0) { + return parse_digest(a, entry, val, + ARCHIVE_ENTRY_DIGEST_SHA256); + } if (strcmp(key, "sha384") == 0 || - strcmp(key, "sha384digest") == 0) - break; + strcmp(key, "sha384digest") == 0) { + return parse_digest(a, entry, val, + ARCHIVE_ENTRY_DIGEST_SHA384); + } if (strcmp(key, "sha512") == 0 || - strcmp(key, "sha512digest") == 0) - break; + strcmp(key, "sha512digest") == 0) { + return parse_digest(a, entry, val, + ARCHIVE_ENTRY_DIGEST_SHA512); + } if (strcmp(key, "size") == 0) { archive_entry_set_size(entry, mtree_atol(&val, 10)); break; @@ -1922,13 +2035,13 @@ mtree_atol(char **p, int base) if (**p == '-') { limit = INT64_MIN / base; - last_digit_limit = INT64_MIN % base; + last_digit_limit = -(INT64_MIN % base); ++(*p); l = 0; digit = parsedigit(**p); while (digit >= 0 && digit < base) { - if (l < limit || (l == limit && digit > last_digit_limit)) + if (l < limit || (l == limit && digit >= last_digit_limit)) return INT64_MIN; l = (l * base) - digit; digit = parsedigit(*++(*p)); diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_read_support_format_rar.c b/dependencies/libarchive-3.5.2/libarchive/archive_read_support_format_rar.c similarity index 99% rename from dependencies/libarchive-3.4.2/libarchive/archive_read_support_format_rar.c rename to dependencies/libarchive-3.5.2/libarchive/archive_read_support_format_rar.c index 98efbb1..c2666b2 100644 --- a/dependencies/libarchive-3.4.2/libarchive/archive_read_support_format_rar.c +++ b/dependencies/libarchive-3.5.2/libarchive/archive_read_support_format_rar.c @@ -151,6 +151,9 @@ #undef minimum #define minimum(a, b) ((a)<(b)?(a):(b)) +/* Stack overflow check */ +#define MAX_COMPRESS_DEPTH 1024 + /* Fields common to all headers */ struct rar_header { @@ -340,7 +343,7 @@ static int read_symlink_stored(struct archive_read *, struct archive_entry *, static int read_data_stored(struct archive_read *, const void **, size_t *, int64_t *); static int read_data_compressed(struct archive_read *, const void **, size_t *, - int64_t *); + int64_t *, size_t); static int rar_br_preparation(struct archive_read *, struct rar_br *); static int parse_codes(struct archive_read *); static void free_codes(struct archive_read *); @@ -955,17 +958,17 @@ archive_read_format_rar_read_header(struct archive_read *a, crc32_val = 0; while (skip > 0) { size_t to_read = skip; - ssize_t did_read; - if (to_read > 32 * 1024) { + if (to_read > 32 * 1024) to_read = 32 * 1024; - } - if ((h = __archive_read_ahead(a, to_read, &did_read)) == NULL) { + if ((h = __archive_read_ahead(a, to_read, NULL)) == NULL) { + archive_set_error(&a->archive, ARCHIVE_ERRNO_FILE_FORMAT, + "Bad RAR file"); return (ARCHIVE_FATAL); } p = h; - crc32_val = crc32(crc32_val, (const unsigned char *)p, (unsigned)did_read); - __archive_read_consume(a, did_read); - skip -= did_read; + crc32_val = crc32(crc32_val, (const unsigned char *)p, to_read); + __archive_read_consume(a, to_read); + skip -= to_read; } if ((crc32_val & 0xffff) != crc32_expected) { archive_set_error(&a->archive, ARCHIVE_ERRNO_FILE_FORMAT, @@ -1026,7 +1029,7 @@ archive_read_format_rar_read_data(struct archive_read *a, const void **buff, case COMPRESS_METHOD_NORMAL: case COMPRESS_METHOD_GOOD: case COMPRESS_METHOD_BEST: - ret = read_data_compressed(a, buff, size, offset); + ret = read_data_compressed(a, buff, size, offset, 0); if (ret != ARCHIVE_OK && ret != ARCHIVE_WARN) { __archive_ppmd7_functions.Ppmd7_Free(&rar->ppmd7_context); rar->start_new_table = 1; @@ -1883,8 +1886,11 @@ read_data_stored(struct archive_read *a, const void **buff, size_t *size, static int read_data_compressed(struct archive_read *a, const void **buff, size_t *size, - int64_t *offset) + int64_t *offset, size_t looper) { + if (looper++ > MAX_COMPRESS_DEPTH) + return (ARCHIVE_FATAL); + struct rar *rar; int64_t start, end, actualend; size_t bs; @@ -1982,7 +1988,7 @@ read_data_compressed(struct archive_read *a, const void **buff, size_t *size, { case 0: rar->start_new_table = 1; - return read_data_compressed(a, buff, size, offset); + return read_data_compressed(a, buff, size, offset, looper); case 2: rar->ppmd_eod = 1;/* End Of ppmd Data. */ diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_read_support_format_rar5.c b/dependencies/libarchive-3.5.2/libarchive/archive_read_support_format_rar5.c similarity index 99% rename from dependencies/libarchive-3.4.2/libarchive/archive_read_support_format_rar5.c rename to dependencies/libarchive-3.5.2/libarchive/archive_read_support_format_rar5.c index 82729bd..5d62d16 100644 --- a/dependencies/libarchive-3.4.2/libarchive/archive_read_support_format_rar5.c +++ b/dependencies/libarchive-3.5.2/libarchive/archive_read_support_format_rar5.c @@ -3084,12 +3084,6 @@ static int do_uncompress_block(struct archive_read* a, const uint8_t* p) { continue; } - - /* The program counter shouldn't reach here. */ - archive_set_error(&a->archive, ARCHIVE_ERRNO_FILE_FORMAT, - "Unsupported block code: 0x%x", num); - - return ARCHIVE_FATAL; } return ARCHIVE_OK; @@ -3837,7 +3831,7 @@ static int verify_checksums(struct archive_read* a) { DEBUG_CODE { printf("Checksum error: CRC32 " - "(was: %08x, expected: %08x)\n", + "(was: %08" PRIx32 ", expected: %08" PRIx32 ")\n", rar->file.calculated_crc32, rar->file.stored_crc32); } @@ -3851,7 +3845,7 @@ static int verify_checksums(struct archive_read* a) { } else { DEBUG_CODE { printf("Checksum OK: CRC32 " - "(%08x/%08x)\n", + "(%08" PRIx32 "/%08" PRIx32 ")\n", rar->file.stored_crc32, rar->file.calculated_crc32); } @@ -3912,6 +3906,9 @@ static int rar5_read_data(struct archive_read *a, const void **buff, int ret; struct rar5* rar = get_context(a); + if (size) + *size = 0; + if(rar->file.dir > 0) { /* Don't process any data if this file entry was declared * as a directory. This is needed, because entries marked as @@ -4079,6 +4076,7 @@ int archive_read_support_format_rar5(struct archive *_a) { if(ARCHIVE_OK != rar5_init(rar)) { archive_set_error(&ar->archive, ENOMEM, "Can't allocate rar5 filter buffer"); + free(rar); return ARCHIVE_FATAL; } diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_read_support_format_raw.c b/dependencies/libarchive-3.5.2/libarchive/archive_read_support_format_raw.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/archive_read_support_format_raw.c rename to dependencies/libarchive-3.5.2/libarchive/archive_read_support_format_raw.c diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_read_support_format_tar.c b/dependencies/libarchive-3.5.2/libarchive/archive_read_support_format_tar.c similarity index 99% rename from dependencies/libarchive-3.4.2/libarchive/archive_read_support_format_tar.c rename to dependencies/libarchive-3.5.2/libarchive/archive_read_support_format_tar.c index c63d46f..7e8feba 100644 --- a/dependencies/libarchive-3.4.2/libarchive/archive_read_support_format_tar.c +++ b/dependencies/libarchive-3.5.2/libarchive/archive_read_support_format_tar.c @@ -1796,6 +1796,16 @@ pax_attribute_schily_xattr(struct archive_entry *entry, return 0; } +static int +pax_attribute_rht_security_selinux(struct archive_entry *entry, + const char *value, size_t value_length) +{ + archive_entry_xattr_add_entry(entry, "security.selinux", + value, value_length); + + return 0; +} + static int pax_attribute_acl(struct archive_read *a, struct tar *tar, struct archive_entry *entry, const char *value, int type) @@ -1896,7 +1906,7 @@ pax_attribute(struct archive_read *a, struct tar *tar, } if (strcmp(key, "GNU.sparse.numbytes") == 0) { tar->sparse_numbytes = tar_atol10(value, strlen(value)); - if (tar->sparse_numbytes != -1) { + if (tar->sparse_offset != -1) { if (gnu_add_sparse_entry(a, tar, tar->sparse_offset, tar->sparse_numbytes) != ARCHIVE_OK) @@ -1966,6 +1976,14 @@ pax_attribute(struct archive_read *a, struct tar *tar, if (memcmp(key, "LIBARCHIVE.xattr.", 17) == 0) pax_attribute_xattr(entry, key, value); break; + case 'R': + /* GNU tar uses RHT.security header to store SELinux xattrs + * SCHILY.xattr.security.selinux == RHT.security.selinux */ + if (strcmp(key, "RHT.security.selinux") == 0) { + pax_attribute_rht_security_selinux(entry, value, + value_length); + } + break; case 'S': /* We support some keys used by the "star" archiver */ if (strcmp(key, "SCHILY.acl.access") == 0) { @@ -2625,14 +2643,14 @@ tar_atol_base_n(const char *p, size_t char_cnt, int base) maxval = INT64_MIN; limit = -(INT64_MIN / base); - last_digit_limit = INT64_MIN % base; + last_digit_limit = -(INT64_MIN % base); } l = 0; if (char_cnt != 0) { digit = *p - '0'; while (digit >= 0 && digit < base && char_cnt != 0) { - if (l>limit || (l == limit && digit > last_digit_limit)) { + if (l>limit || (l == limit && digit >= last_digit_limit)) { return maxval; /* Truncate on overflow. */ } l = (l * base) + digit; diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_read_support_format_warc.c b/dependencies/libarchive-3.5.2/libarchive/archive_read_support_format_warc.c similarity index 98% rename from dependencies/libarchive-3.4.2/libarchive/archive_read_support_format_warc.c rename to dependencies/libarchive-3.5.2/libarchive/archive_read_support_format_warc.c index 72977b8..2732996 100644 --- a/dependencies/libarchive-3.4.2/libarchive/archive_read_support_format_warc.c +++ b/dependencies/libarchive-3.5.2/libarchive/archive_read_support_format_warc.c @@ -127,7 +127,7 @@ static int _warc_skip(struct archive_read *a); static int _warc_rdhdr(struct archive_read *a, struct archive_entry *e); /* private routines */ -static unsigned int _warc_rdver(const char buf[10], size_t bsz); +static unsigned int _warc_rdver(const char *buf, size_t bsz); static unsigned int _warc_rdtyp(const char *buf, size_t bsz); static warc_string_t _warc_rduri(const char *buf, size_t bsz); static ssize_t _warc_rdlen(const char *buf, size_t bsz); @@ -337,6 +337,14 @@ start_over: mtime = rtime; } break; + case WT_NONE: + case WT_INFO: + case WT_META: + case WT_REQ: + case WT_RVIS: + case WT_CONV: + case WT_CONT: + case LAST_WT: default: fnam.len = 0U; fnam.str = NULL; @@ -361,6 +369,14 @@ start_over: break; } /* FALLTHROUGH */ + case WT_NONE: + case WT_INFO: + case WT_META: + case WT_REQ: + case WT_RVIS: + case WT_CONV: + case WT_CONT: + case LAST_WT: default: /* consume the content and start over */ _warc_skip(a); @@ -427,7 +443,7 @@ _warc_skip(struct archive_read *a) static void* deconst(const void *c) { - return (char *)0x1 + (((const char *)c) - (const char *)0x1); + return (void *)(uintptr_t)c; } static char* diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_read_support_format_xar.c b/dependencies/libarchive-3.5.2/libarchive/archive_read_support_format_xar.c similarity index 99% rename from dependencies/libarchive-3.4.2/libarchive/archive_read_support_format_xar.c rename to dependencies/libarchive-3.5.2/libarchive/archive_read_support_format_xar.c index 7f8be39..503ff58 100644 --- a/dependencies/libarchive-3.4.2/libarchive/archive_read_support_format_xar.c +++ b/dependencies/libarchive-3.5.2/libarchive/archive_read_support_format_xar.c @@ -458,6 +458,11 @@ archive_read_support_format_xar(struct archive *_a) return (ARCHIVE_FATAL); } + /* initialize xar->file_queue */ + xar->file_queue.allocated = 0; + xar->file_queue.used = 0; + xar->file_queue.files = NULL; + r = __archive_read_register_format(a, xar, "xar", @@ -1221,10 +1226,12 @@ heap_add_entry(struct archive_read *a, /* Expand our pending files list as necessary. */ if (heap->used >= heap->allocated) { struct xar_file **new_pending_files; - int new_size = heap->allocated * 2; + int new_size; if (heap->allocated < 1024) new_size = 1024; + else + new_size = heap->allocated * 2; /* Overflow might keep us from growing the list. */ if (new_size <= heap->allocated) { archive_set_error(&a->archive, @@ -1238,9 +1245,11 @@ heap_add_entry(struct archive_read *a, ENOMEM, "Out of memory"); return (ARCHIVE_FATAL); } - memcpy(new_pending_files, heap->files, - heap->allocated * sizeof(new_pending_files[0])); - free(heap->files); + if (heap->allocated) { + memcpy(new_pending_files, heap->files, + heap->allocated * sizeof(new_pending_files[0])); + free(heap->files); + } heap->files = new_pending_files; heap->allocated = new_size; } diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_read_support_format_zip.c b/dependencies/libarchive-3.5.2/libarchive/archive_read_support_format_zip.c similarity index 97% rename from dependencies/libarchive-3.4.2/libarchive/archive_read_support_format_zip.c rename to dependencies/libarchive-3.5.2/libarchive/archive_read_support_format_zip.c index 6581ca0..21d41cc 100644 --- a/dependencies/libarchive-3.4.2/libarchive/archive_read_support_format_zip.c +++ b/dependencies/libarchive-3.5.2/libarchive/archive_read_support_format_zip.c @@ -142,6 +142,7 @@ struct zip { /* Structural information about the archive. */ struct archive_string format_name; int64_t central_directory_offset; + int64_t central_directory_offset_adjusted; size_t central_directory_entries_total; size_t central_directory_entries_on_this_disk; int has_encrypted_entries; @@ -246,6 +247,17 @@ struct zip { /* Many systems define min or MIN, but not all. */ #define zipmin(a,b) ((a) < (b) ? (a) : (b)) +#ifdef HAVE_ZLIB_H +static int +zip_read_data_deflate(struct archive_read *a, const void **buff, + size_t *size, int64_t *offset); +#endif +#if HAVE_LZMA_H && HAVE_LIBLZMA +static int +zip_read_data_zipx_lzma_alone(struct archive_read *a, const void **buff, + size_t *size, int64_t *offset); +#endif + /* This function is used by Ppmd8_DecodeSymbol during decompression of Ppmd8 * streams inside ZIP files. It has 2 purposes: one is to fetch the next * compressed byte from the stream, second one is to increase the counter how @@ -1167,7 +1179,55 @@ zip_read_local_file_header(struct archive_read *a, struct archive_entry *entry, linkname_length = (size_t)zip_entry->compressed_size; archive_entry_set_size(entry, 0); - p = __archive_read_ahead(a, linkname_length, NULL); + + // take into account link compression if any + size_t linkname_full_length = linkname_length; + if (zip->entry->compression != 0) + { + // symlink target string appeared to be compressed + int status = ARCHIVE_FATAL; + const void *uncompressed_buffer; + + switch (zip->entry->compression) + { +#if HAVE_ZLIB_H + case 8: /* Deflate compression. */ + zip->entry_bytes_remaining = zip_entry->compressed_size; + status = zip_read_data_deflate(a, &uncompressed_buffer, + &linkname_full_length, NULL); + break; +#endif +#if HAVE_LZMA_H && HAVE_LIBLZMA + case 14: /* ZIPx LZMA compression. */ + /*(see zip file format specification, section 4.4.5)*/ + zip->entry_bytes_remaining = zip_entry->compressed_size; + status = zip_read_data_zipx_lzma_alone(a, &uncompressed_buffer, + &linkname_full_length, NULL); + break; +#endif + default: /* Unsupported compression. */ + break; + } + if (status == ARCHIVE_OK) + { + p = uncompressed_buffer; + } + else + { + archive_set_error(&a->archive, + ARCHIVE_ERRNO_FILE_FORMAT, + "Unsupported ZIP compression method " + "during decompression of link entry (%d: %s)", + zip->entry->compression, + compression_name(zip->entry->compression)); + return ARCHIVE_FAILED; + } + } + else + { + p = __archive_read_ahead(a, linkname_length, NULL); + } + if (p == NULL) { archive_set_error(&a->archive, ARCHIVE_ERRNO_MISC, "Truncated Zip file"); @@ -1179,12 +1239,12 @@ zip_read_local_file_header(struct archive_read *a, struct archive_entry *entry, sconv = zip->sconv_utf8; if (sconv == NULL) sconv = zip->sconv_default; - if (archive_entry_copy_symlink_l(entry, p, linkname_length, + if (archive_entry_copy_symlink_l(entry, p, linkname_full_length, sconv) != 0) { if (errno != ENOMEM && sconv == zip->sconv_utf8 && (zip->entry->zip_flags & ZIP_UTF8_NAME)) archive_entry_copy_symlink_l(entry, p, - linkname_length, NULL); + linkname_full_length, NULL); if (errno == ENOMEM) { archive_set_error(&a->archive, ENOMEM, "Can't allocate memory for Symlink"); @@ -1542,7 +1602,8 @@ zipx_lzma_alone_init(struct archive_read *a, struct zip *zip) /* To unpack ZIPX's "LZMA" (id 14) stream we can use standard liblzma * that is a part of XZ Utils. The stream format stored inside ZIPX * file is a modified "lzma alone" file format, that was used by the - * `lzma` utility which was later deprecated in favour of `xz` utility. * Since those formats are nearly the same, we can use a standard + * `lzma` utility which was later deprecated in favour of `xz` utility. + * Since those formats are nearly the same, we can use a standard * "lzma alone" decoder from XZ Utils. */ memset(&zip->zipx_lzma_stream, 0, sizeof(zip->zipx_lzma_stream)); @@ -1901,15 +1962,15 @@ zipx_ppmd8_init(struct archive_read *a, struct zip *zip) if(order < 2 || restore_method > 2) { archive_set_error(&a->archive, ARCHIVE_ERRNO_FILE_FORMAT, - "Invalid parameter set in PPMd8 stream (order=%d, " - "restore=%d)", order, restore_method); + "Invalid parameter set in PPMd8 stream (order=%" PRId32 ", " + "restore=%" PRId32 ")", order, restore_method); return (ARCHIVE_FAILED); } /* Allocate the memory needed to properly decompress the file. */ if(!__archive_ppmd8_functions.Ppmd8_Alloc(&zip->ppmd8, mem << 20)) { archive_set_error(&a->archive, ENOMEM, - "Unable to allocate memory for PPMd8 stream: %d bytes", + "Unable to allocate memory for PPMd8 stream: %" PRId32 " bytes", mem << 20); return (ARCHIVE_FATAL); } @@ -3294,24 +3355,31 @@ archive_read_support_format_zip_capabilities_seekable(struct archive_read * a) static int read_eocd(struct zip *zip, const char *p, int64_t current_offset) { + uint16_t disk_num; + uint32_t cd_size, cd_offset; + + disk_num = archive_le16dec(p + 4); + cd_size = archive_le32dec(p + 12); + cd_offset = archive_le32dec(p + 16); + /* Sanity-check the EOCD we've found. */ /* This must be the first volume. */ - if (archive_le16dec(p + 4) != 0) + if (disk_num != 0) return 0; /* Central directory must be on this volume. */ - if (archive_le16dec(p + 4) != archive_le16dec(p + 6)) + if (disk_num != archive_le16dec(p + 6)) return 0; /* All central directory entries must be on this volume. */ if (archive_le16dec(p + 10) != archive_le16dec(p + 8)) return 0; /* Central directory can't extend beyond start of EOCD record. */ - if (archive_le32dec(p + 16) + archive_le32dec(p + 12) - > current_offset) + if (cd_offset + cd_size > current_offset) return 0; /* Save the central directory location for later use. */ - zip->central_directory_offset = archive_le32dec(p + 16); + zip->central_directory_offset = cd_offset; + zip->central_directory_offset_adjusted = current_offset - cd_size; /* This is just a tiny bit higher than the maximum returned by the streaming Zip bidder. This ensures @@ -3363,6 +3431,8 @@ read_zip64_eocd(struct archive_read *a, struct zip *zip, const char *p) /* Save the central directory offset for later use. */ zip->central_directory_offset = archive_le64dec(p + 48); + /* TODO: Needs scanning backwards to find the eocd64 instead of assuming */ + zip->central_directory_offset_adjusted = zip->central_directory_offset; return 32; } @@ -3534,7 +3604,8 @@ slurp_central_directory(struct archive_read *a, struct archive_entry* entry, * know the correction we need to apply to account for leading * padding. */ - if (__archive_read_seek(a, zip->central_directory_offset, SEEK_SET) < 0) + if (__archive_read_seek(a, zip->central_directory_offset_adjusted, SEEK_SET) + < 0) return ARCHIVE_FATAL; found = 0; diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_string.c b/dependencies/libarchive-3.5.2/libarchive/archive_string.c similarity index 98% rename from dependencies/libarchive-3.4.2/libarchive/archive_string.c rename to dependencies/libarchive-3.5.2/libarchive/archive_string.c index c77dcf5..7460ded 100644 --- a/dependencies/libarchive-3.4.2/libarchive/archive_string.c +++ b/dependencies/libarchive-3.5.2/libarchive/archive_string.c @@ -3881,6 +3881,11 @@ archive_mstring_get_utf8(struct archive *a, struct archive_mstring *aes, } *p = NULL; + /* Try converting WCS to MBS first if MBS does not exist yet. */ + if ((aes->aes_set & AES_SET_MBS) == 0) { + const char *pm; /* unused */ + archive_mstring_get_mbs(a, aes, &pm); /* ignore errors, we'll handle it later */ + } if (aes->aes_set & AES_SET_MBS) { sc = archive_string_conversion_to_charset(a, "UTF-8", 1); if (sc == NULL) @@ -3903,9 +3908,9 @@ int archive_mstring_get_mbs(struct archive *a, struct archive_mstring *aes, const char **p) { + struct archive_string_conv *sc; int r, ret = 0; - (void)a; /* UNUSED */ /* If we already have an MBS form, return that immediately. */ if (aes->aes_set & AES_SET_MBS) { *p = aes->aes_mbs.s; @@ -3926,10 +3931,23 @@ archive_mstring_get_mbs(struct archive *a, struct archive_mstring *aes, ret = -1; } - /* - * Only a UTF-8 form cannot avail because its conversion already - * failed at archive_mstring_update_utf8(). - */ + /* If there's a UTF-8 form, try converting with the native locale. */ + if (aes->aes_set & AES_SET_UTF8) { + archive_string_empty(&(aes->aes_mbs)); + sc = archive_string_conversion_from_charset(a, "UTF-8", 1); + if (sc == NULL) + return (-1);/* Couldn't allocate memory for sc. */ + r = archive_strncpy_l(&(aes->aes_mbs), + aes->aes_utf8.s, aes->aes_utf8.length, sc); + if (a == NULL) + free_sconv_object(sc); + *p = aes->aes_mbs.s; + if (r == 0) { + aes->aes_set |= AES_SET_MBS; + ret = 0;/* success; overwrite previous error. */ + } else + ret = -1;/* failure. */ + } return (ret); } @@ -3947,6 +3965,11 @@ archive_mstring_get_wcs(struct archive *a, struct archive_mstring *aes, } *wp = NULL; + /* Try converting UTF8 to MBS first if MBS does not exist yet. */ + if ((aes->aes_set & AES_SET_MBS) == 0) { + const char *p; /* unused */ + archive_mstring_get_mbs(a, aes, &p); /* ignore errors, we'll handle it later */ + } /* Try converting MBS to WCS using native locale. */ if (aes->aes_set & AES_SET_MBS) { archive_wstring_empty(&(aes->aes_wcs)); @@ -3962,11 +3985,12 @@ archive_mstring_get_wcs(struct archive *a, struct archive_mstring *aes, } int -archive_mstring_get_mbs_l(struct archive_mstring *aes, +archive_mstring_get_mbs_l(struct archive *a, struct archive_mstring *aes, const char **p, size_t *length, struct archive_string_conv *sc) { int r, ret = 0; + (void)r; /* UNUSED */ #if defined(_WIN32) && !defined(__CYGWIN__) /* * Internationalization programming on Windows must use Wide @@ -3989,20 +4013,12 @@ archive_mstring_get_mbs_l(struct archive_mstring *aes, } #endif - /* If there is not an MBS form but is a WCS form, try converting + /* If there is not an MBS form but there is a WCS or UTF8 form, try converting * with the native locale to be used for translating it to specified * character-set. */ - if ((aes->aes_set & AES_SET_MBS) == 0 && - (aes->aes_set & AES_SET_WCS) != 0) { - archive_string_empty(&(aes->aes_mbs)); - r = archive_string_append_from_wcs(&(aes->aes_mbs), - aes->aes_wcs.s, aes->aes_wcs.length); - if (r == 0) - aes->aes_set |= AES_SET_MBS; - else if (errno == ENOMEM) - return (-1); - else - ret = -1; + if ((aes->aes_set & AES_SET_MBS) == 0) { + const char *pm; /* unused */ + archive_mstring_get_mbs(a, aes, &pm); /* ignore errors, we'll handle it later */ } /* If we already have an MBS form, use it to be translated to * specified character-set. */ diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_string.h b/dependencies/libarchive-3.5.2/libarchive/archive_string.h similarity index 99% rename from dependencies/libarchive-3.4.2/libarchive/archive_string.h rename to dependencies/libarchive-3.5.2/libarchive/archive_string.h index 27e1ad6..49d7d30 100644 --- a/dependencies/libarchive-3.4.2/libarchive/archive_string.h +++ b/dependencies/libarchive-3.5.2/libarchive/archive_string.h @@ -226,7 +226,7 @@ void archive_mstring_copy(struct archive_mstring *dest, struct archive_mstring * int archive_mstring_get_mbs(struct archive *, struct archive_mstring *, const char **); int archive_mstring_get_utf8(struct archive *, struct archive_mstring *, const char **); int archive_mstring_get_wcs(struct archive *, struct archive_mstring *, const wchar_t **); -int archive_mstring_get_mbs_l(struct archive_mstring *, const char **, +int archive_mstring_get_mbs_l(struct archive *, struct archive_mstring *, const char **, size_t *, struct archive_string_conv *); int archive_mstring_copy_mbs(struct archive_mstring *, const char *mbs); int archive_mstring_copy_mbs_len(struct archive_mstring *, const char *mbs, diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_string_composition.h b/dependencies/libarchive-3.5.2/libarchive/archive_string_composition.h similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/archive_string_composition.h rename to dependencies/libarchive-3.5.2/libarchive/archive_string_composition.h diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_string_sprintf.c b/dependencies/libarchive-3.5.2/libarchive/archive_string_sprintf.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/archive_string_sprintf.c rename to dependencies/libarchive-3.5.2/libarchive/archive_string_sprintf.c diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_util.3 b/dependencies/libarchive-3.5.2/libarchive/archive_util.3 similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/archive_util.3 rename to dependencies/libarchive-3.5.2/libarchive/archive_util.3 diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_util.c b/dependencies/libarchive-3.5.2/libarchive/archive_util.c similarity index 98% rename from dependencies/libarchive-3.4.2/libarchive/archive_util.c rename to dependencies/libarchive-3.5.2/libarchive/archive_util.c index 288a442..b1582ed 100644 --- a/dependencies/libarchive-3.4.2/libarchive/archive_util.c +++ b/dependencies/libarchive-3.5.2/libarchive/archive_util.c @@ -365,6 +365,7 @@ __archive_mktempx(const char *tmpdir, wchar_t *template) } fd = _open_osfhandle((intptr_t)h, _O_BINARY | _O_RDWR); if (fd == -1) { + la_dosmaperr(GetLastError()); CloseHandle(h); goto exit_tmpfile; } else @@ -432,6 +433,11 @@ __archive_mktemp(const char *tmpdir) if (temp_name.s[temp_name.length-1] != '/') archive_strappend_char(&temp_name, '/'); } +#ifdef O_TMPFILE + fd = open(temp_name.s, O_RDWR|O_CLOEXEC|O_TMPFILE|O_EXCL, 0600); + if(fd >= 0) + goto exit_tmpfile; +#endif archive_strcat(&temp_name, "libarchive_XXXXXX"); fd = mkstemp(temp_name.s); if (fd < 0) diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_version_details.c b/dependencies/libarchive-3.5.2/libarchive/archive_version_details.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/archive_version_details.c rename to dependencies/libarchive-3.5.2/libarchive/archive_version_details.c diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_virtual.c b/dependencies/libarchive-3.5.2/libarchive/archive_virtual.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/archive_virtual.c rename to dependencies/libarchive-3.5.2/libarchive/archive_virtual.c diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_windows.c b/dependencies/libarchive-3.5.2/libarchive/archive_windows.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/archive_windows.c rename to dependencies/libarchive-3.5.2/libarchive/archive_windows.c diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_windows.h b/dependencies/libarchive-3.5.2/libarchive/archive_windows.h similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/archive_windows.h rename to dependencies/libarchive-3.5.2/libarchive/archive_windows.h diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_write.3 b/dependencies/libarchive-3.5.2/libarchive/archive_write.3 similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/archive_write.3 rename to dependencies/libarchive-3.5.2/libarchive/archive_write.3 diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_write.c b/dependencies/libarchive-3.5.2/libarchive/archive_write.c similarity index 95% rename from dependencies/libarchive-3.4.2/libarchive/archive_write.c rename to dependencies/libarchive-3.5.2/libarchive/archive_write.c index 98a55fb..38c14cb 100644 --- a/dependencies/libarchive-3.4.2/libarchive/archive_write.c +++ b/dependencies/libarchive-3.5.2/libarchive/archive_write.c @@ -455,6 +455,25 @@ archive_write_client_write(struct archive_write_filter *f, return (ARCHIVE_OK); } +static int +archive_write_client_free(struct archive_write_filter *f) +{ + struct archive_write *a = (struct archive_write *)f->archive; + + if (a->client_freer) + (*a->client_freer)(&a->archive, a->client_data); + a->client_data = NULL; + + /* Clear passphrase. */ + if (a->passphrase != NULL) { + memset(a->passphrase, 0, strlen(a->passphrase)); + free(a->passphrase); + a->passphrase = NULL; + } + + return (ARCHIVE_OK); +} + static int archive_write_client_close(struct archive_write_filter *f) { @@ -463,6 +482,8 @@ archive_write_client_close(struct archive_write_filter *f) ssize_t block_length; ssize_t target_block_length; ssize_t bytes_written; + size_t to_write; + char *p; int ret = ARCHIVE_OK; /* If there's pending data, pad and write the last block */ @@ -485,21 +506,30 @@ archive_write_client_close(struct archive_write_filter *f) target_block_length - block_length); block_length = target_block_length; } - bytes_written = (a->client_writer)(&a->archive, - a->client_data, state->buffer, block_length); - ret = bytes_written <= 0 ? ARCHIVE_FATAL : ARCHIVE_OK; + p = state->buffer; + to_write = block_length; + while (to_write > 0) { + bytes_written = (a->client_writer)(&a->archive, + a->client_data, p, to_write); + if (bytes_written <= 0) { + ret = ARCHIVE_FATAL; + break; + } + if ((size_t)bytes_written > to_write) { + archive_set_error(&(a->archive), + -1, "write overrun"); + ret = ARCHIVE_FATAL; + break; + } + p += bytes_written; + to_write -= bytes_written; + } } if (a->client_closer) (*a->client_closer)(&a->archive, a->client_data); free(state->buffer); free(state); - a->client_data = NULL; - /* Clear passphrase. */ - if (a->passphrase != NULL) { - memset(a->passphrase, 0, strlen(a->passphrase)); - free(a->passphrase); - a->passphrase = NULL; - } + /* Clear the close handler myself not to be called again. */ f->state = ARCHIVE_WRITE_FILTER_STATE_CLOSED; return (ret); @@ -509,9 +539,9 @@ archive_write_client_close(struct archive_write_filter *f) * Open the archive using the current settings. */ int -archive_write_open(struct archive *_a, void *client_data, +archive_write_open2(struct archive *_a, void *client_data, archive_open_callback *opener, archive_write_callback *writer, - archive_close_callback *closer) + archive_close_callback *closer, archive_free_callback *freer) { struct archive_write *a = (struct archive_write *)_a; struct archive_write_filter *client_filter; @@ -524,12 +554,14 @@ archive_write_open(struct archive *_a, void *client_data, a->client_writer = writer; a->client_opener = opener; a->client_closer = closer; + a->client_freer = freer; a->client_data = client_data; client_filter = __archive_write_allocate_filter(_a); client_filter->open = archive_write_client_open; client_filter->write = archive_write_client_write; client_filter->close = archive_write_client_close; + client_filter->free = archive_write_client_free; ret = __archive_write_filters_open(a); if (ret < ARCHIVE_WARN) { @@ -544,6 +576,15 @@ archive_write_open(struct archive *_a, void *client_data, return (ret); } +int +archive_write_open(struct archive *_a, void *client_data, + archive_open_callback *opener, archive_write_callback *writer, + archive_close_callback *closer) +{ + return archive_write_open2(_a, client_data, opener, writer, + closer, NULL); +} + /* * Close out the archive. */ diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_write_add_filter.c b/dependencies/libarchive-3.5.2/libarchive/archive_write_add_filter.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/archive_write_add_filter.c rename to dependencies/libarchive-3.5.2/libarchive/archive_write_add_filter.c diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_write_add_filter_b64encode.c b/dependencies/libarchive-3.5.2/libarchive/archive_write_add_filter_b64encode.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/archive_write_add_filter_b64encode.c rename to dependencies/libarchive-3.5.2/libarchive/archive_write_add_filter_b64encode.c diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_write_add_filter_by_name.c b/dependencies/libarchive-3.5.2/libarchive/archive_write_add_filter_by_name.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/archive_write_add_filter_by_name.c rename to dependencies/libarchive-3.5.2/libarchive/archive_write_add_filter_by_name.c diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_write_add_filter_bzip2.c b/dependencies/libarchive-3.5.2/libarchive/archive_write_add_filter_bzip2.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/archive_write_add_filter_bzip2.c rename to dependencies/libarchive-3.5.2/libarchive/archive_write_add_filter_bzip2.c diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_write_add_filter_compress.c b/dependencies/libarchive-3.5.2/libarchive/archive_write_add_filter_compress.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/archive_write_add_filter_compress.c rename to dependencies/libarchive-3.5.2/libarchive/archive_write_add_filter_compress.c diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_write_add_filter_grzip.c b/dependencies/libarchive-3.5.2/libarchive/archive_write_add_filter_grzip.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/archive_write_add_filter_grzip.c rename to dependencies/libarchive-3.5.2/libarchive/archive_write_add_filter_grzip.c diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_write_add_filter_gzip.c b/dependencies/libarchive-3.5.2/libarchive/archive_write_add_filter_gzip.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/archive_write_add_filter_gzip.c rename to dependencies/libarchive-3.5.2/libarchive/archive_write_add_filter_gzip.c diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_write_add_filter_lrzip.c b/dependencies/libarchive-3.5.2/libarchive/archive_write_add_filter_lrzip.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/archive_write_add_filter_lrzip.c rename to dependencies/libarchive-3.5.2/libarchive/archive_write_add_filter_lrzip.c diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_write_add_filter_lz4.c b/dependencies/libarchive-3.5.2/libarchive/archive_write_add_filter_lz4.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/archive_write_add_filter_lz4.c rename to dependencies/libarchive-3.5.2/libarchive/archive_write_add_filter_lz4.c diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_write_add_filter_lzop.c b/dependencies/libarchive-3.5.2/libarchive/archive_write_add_filter_lzop.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/archive_write_add_filter_lzop.c rename to dependencies/libarchive-3.5.2/libarchive/archive_write_add_filter_lzop.c diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_write_add_filter_none.c b/dependencies/libarchive-3.5.2/libarchive/archive_write_add_filter_none.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/archive_write_add_filter_none.c rename to dependencies/libarchive-3.5.2/libarchive/archive_write_add_filter_none.c diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_write_add_filter_program.c b/dependencies/libarchive-3.5.2/libarchive/archive_write_add_filter_program.c similarity index 94% rename from dependencies/libarchive-3.4.2/libarchive/archive_write_add_filter_program.c rename to dependencies/libarchive-3.5.2/libarchive/archive_write_add_filter_program.c index a4bc1d9..c096e72 100644 --- a/dependencies/libarchive-3.4.2/libarchive/archive_write_add_filter_program.c +++ b/dependencies/libarchive-3.5.2/libarchive/archive_write_add_filter_program.c @@ -196,10 +196,6 @@ __archive_write_program_free(struct archive_write_program_data *data) { if (data) { -#if defined(_WIN32) && !defined(__CYGWIN__) - if (data->child) - CloseHandle(data->child); -#endif free(data->program_name); free(data->child_buf); free(data); @@ -211,7 +207,7 @@ int __archive_write_program_open(struct archive_write_filter *f, struct archive_write_program_data *data, const char *cmd) { - pid_t child; + int ret; if (data->child_buf == NULL) { data->child_buf_len = 65536; @@ -225,27 +221,13 @@ __archive_write_program_open(struct archive_write_filter *f, } } - child = __archive_create_child(cmd, &data->child_stdin, - &data->child_stdout); - if (child == -1) { + ret = __archive_create_child(cmd, &data->child_stdin, + &data->child_stdout, &data->child); + if (ret != ARCHIVE_OK) { archive_set_error(f->archive, EINVAL, "Can't launch external program: %s", cmd); return (ARCHIVE_FATAL); } -#if defined(_WIN32) && !defined(__CYGWIN__) - data->child = OpenProcess(PROCESS_QUERY_INFORMATION, FALSE, child); - if (data->child == NULL) { - close(data->child_stdin); - data->child_stdin = -1; - close(data->child_stdout); - data->child_stdout = -1; - archive_set_error(f->archive, EINVAL, - "Can't launch external program: %s", cmd); - return (ARCHIVE_FATAL); - } -#else - data->child = child; -#endif return (ARCHIVE_OK); } diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_write_add_filter_uuencode.c b/dependencies/libarchive-3.5.2/libarchive/archive_write_add_filter_uuencode.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/archive_write_add_filter_uuencode.c rename to dependencies/libarchive-3.5.2/libarchive/archive_write_add_filter_uuencode.c diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_write_add_filter_xz.c b/dependencies/libarchive-3.5.2/libarchive/archive_write_add_filter_xz.c similarity index 99% rename from dependencies/libarchive-3.4.2/libarchive/archive_write_add_filter_xz.c rename to dependencies/libarchive-3.5.2/libarchive/archive_write_add_filter_xz.c index 8c1ebb8..9dd2c30 100644 --- a/dependencies/libarchive-3.4.2/libarchive/archive_write_add_filter_xz.c +++ b/dependencies/libarchive-3.5.2/libarchive/archive_write_add_filter_xz.c @@ -382,8 +382,8 @@ archive_compressor_xz_options(struct archive_write_filter *f, value[1] != '\0') return (ARCHIVE_WARN); data->compression_level = value[0] - '0'; - if (data->compression_level > 6) - data->compression_level = 6; + if (data->compression_level > 9) + data->compression_level = 9; return (ARCHIVE_OK); } else if (strcmp(key, "threads") == 0) { char *endptr; diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_write_add_filter_zstd.c b/dependencies/libarchive-3.5.2/libarchive/archive_write_add_filter_zstd.c similarity index 80% rename from dependencies/libarchive-3.4.2/libarchive/archive_write_add_filter_zstd.c rename to dependencies/libarchive-3.5.2/libarchive/archive_write_add_filter_zstd.c index 4c91551..c74a35c 100644 --- a/dependencies/libarchive-3.4.2/libarchive/archive_write_add_filter_zstd.c +++ b/dependencies/libarchive-3.5.2/libarchive/archive_write_add_filter_zstd.c @@ -59,6 +59,16 @@ struct private_data { #endif }; +/* If we don't have the library use default range values (zstdcli.c v1.4.0) */ +#define CLEVEL_MIN -99 +#define CLEVEL_STD_MIN 0 /* prior to 1.3.4 and more recent without using --fast */ +#define CLEVEL_DEFAULT 3 +#define CLEVEL_STD_MAX 19 /* without using --ultra */ +#define CLEVEL_MAX 22 + +#define MINVER_NEGCLEVEL 10304 +#define MINVER_MINCLEVEL 10306 + static int archive_compressor_zstd_options(struct archive_write_filter *, const char *, const char *); static int archive_compressor_zstd_open(struct archive_write_filter *); @@ -96,7 +106,7 @@ archive_write_add_filter_zstd(struct archive *_a) f->free = &archive_compressor_zstd_free; f->code = ARCHIVE_FILTER_ZSTD; f->name = "zstd"; - data->compression_level = 3; /* Default level used by the zstd CLI */ + data->compression_level = CLEVEL_DEFAULT; #if HAVE_ZSTD_H && HAVE_LIBZSTD data->cstream = ZSTD_createCStream(); if (data->cstream == NULL) { @@ -135,6 +145,31 @@ archive_compressor_zstd_free(struct archive_write_filter *f) return (ARCHIVE_OK); } +static int string_is_numeric (const char* value) +{ + size_t len = strlen(value); + size_t i; + + if (len == 0) { + return (ARCHIVE_WARN); + } + else if (len == 1 && !(value[0] >= '0' && value[0] <= '9')) { + return (ARCHIVE_WARN); + } + else if (!(value[0] >= '0' && value[0] <= '9') && + value[0] != '-' && value[0] != '+') { + return (ARCHIVE_WARN); + } + + for (i = 1; i < len; i++) { + if (!(value[i] >= '0' && value[i] <= '9')) { + return (ARCHIVE_WARN); + } + } + + return (ARCHIVE_OK); +} + /* * Set write options. */ @@ -146,12 +181,25 @@ archive_compressor_zstd_options(struct archive_write_filter *f, const char *key, if (strcmp(key, "compression-level") == 0) { int level = atoi(value); -#if HAVE_ZSTD_H && HAVE_LIBZSTD - if (level < 1 || level > ZSTD_maxCLevel()) { -#else /* If we don't have the library, hard-code the max level */ - if (level < 1 || level > 22) { + int minimum = CLEVEL_MIN; + int maximum = CLEVEL_MAX; + if (string_is_numeric(value) != ARCHIVE_OK) { + return (ARCHIVE_WARN); + } +#if HAVE_ZSTD_H && HAVE_LIBZSTD + maximum = ZSTD_maxCLevel(); +#if ZSTD_VERSION_NUMBER >= MINVER_MINCLEVEL + if (ZSTD_versionNumber() >= MINVER_MINCLEVEL) { + minimum = ZSTD_minCLevel(); + } + else #endif + if (ZSTD_versionNumber() < MINVER_NEGCLEVEL) { + minimum = CLEVEL_STD_MIN; + } +#endif + if (level < minimum || level > maximum) { return (ARCHIVE_WARN); } data->compression_level = level; @@ -297,7 +345,26 @@ archive_compressor_zstd_open(struct archive_write_filter *f) int r; archive_string_init(&as); - archive_string_sprintf(&as, "zstd -%d", data->compression_level); + /* --no-check matches library default */ + archive_strcpy(&as, "zstd --no-check"); + + if (data->compression_level < CLEVEL_STD_MIN) { + struct archive_string as2; + archive_string_init(&as2); + archive_string_sprintf(&as2, " --fast=%d", -data->compression_level); + archive_string_concat(&as, &as2); + archive_string_free(&as2); + } else { + struct archive_string as2; + archive_string_init(&as2); + archive_string_sprintf(&as2, " -%d", data->compression_level); + archive_string_concat(&as, &as2); + archive_string_free(&as2); + } + + if (data->compression_level > CLEVEL_STD_MAX) { + archive_strcat(&as, " --ultra"); + } f->write = archive_compressor_zstd_write; r = __archive_write_program_open(f, data->pdata, as.s); diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_write_blocksize.3 b/dependencies/libarchive-3.5.2/libarchive/archive_write_blocksize.3 similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/archive_write_blocksize.3 rename to dependencies/libarchive-3.5.2/libarchive/archive_write_blocksize.3 diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_write_data.3 b/dependencies/libarchive-3.5.2/libarchive/archive_write_data.3 similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/archive_write_data.3 rename to dependencies/libarchive-3.5.2/libarchive/archive_write_data.3 diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_write_disk.3 b/dependencies/libarchive-3.5.2/libarchive/archive_write_disk.3 similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/archive_write_disk.3 rename to dependencies/libarchive-3.5.2/libarchive/archive_write_disk.3 diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_write_disk_posix.c b/dependencies/libarchive-3.5.2/libarchive/archive_write_disk_posix.c similarity index 97% rename from dependencies/libarchive-3.4.2/libarchive/archive_write_disk_posix.c rename to dependencies/libarchive-3.5.2/libarchive/archive_write_disk_posix.c index cc53a3d..fcd733a 100644 --- a/dependencies/libarchive-3.4.2/libarchive/archive_write_disk_posix.c +++ b/dependencies/libarchive-3.5.2/libarchive/archive_write_disk_posix.c @@ -360,7 +360,7 @@ static int la_mktemp(struct archive_write_disk *); static void fsobj_error(int *, struct archive_string *, int, const char *, const char *); static int check_symlinks_fsobj(char *, int *, struct archive_string *, - int); + int, int); static int check_symlinks(struct archive_write_disk *); static int create_filesystem_object(struct archive_write_disk *); static struct fixup_entry *current_fixup(struct archive_write_disk *, @@ -546,6 +546,7 @@ _archive_write_disk_header(struct archive *_a, struct archive_entry *entry) { struct archive_write_disk *a = (struct archive_write_disk *)_a; struct fixup_entry *fe; + const char *linkname; int ret, r; archive_check_magic(&a->archive, ARCHIVE_WRITE_DISK_MAGIC, @@ -590,6 +591,17 @@ _archive_write_disk_header(struct archive *_a, struct archive_entry *entry) if (ret != ARCHIVE_OK) return (ret); + /* + * Check if we have a hardlink that points to itself. + */ + linkname = archive_entry_hardlink(a->entry); + if (linkname != NULL && strcmp(a->name, linkname) == 0) { + archive_set_error(&a->archive, ARCHIVE_ERRNO_MISC, + "Skipping hardlink pointing to itself: %s", + a->name); + return (ARCHIVE_WARN); + } + /* * Query the umask so we get predictable mode settings. * This gets done on every call to _write_header in case the @@ -1856,8 +1868,9 @@ finish_metadata: if (a->tmpname) { if (rename(a->tmpname, a->name) == -1) { archive_set_error(&a->archive, errno, - "rename failed"); - ret = ARCHIVE_FATAL; + "Failed to rename temporary file"); + ret = ARCHIVE_FAILED; + unlink(a->tmpname); } a->tmpname = NULL; } @@ -2144,8 +2157,11 @@ restore_entry(struct archive_write_disk *a) if ((a->flags & ARCHIVE_EXTRACT_SAFE_WRITES) && S_ISREG(a->st.st_mode)) { /* Use a temporary file to extract */ - if ((a->fd = la_mktemp(a)) == -1) + if ((a->fd = la_mktemp(a)) == -1) { + archive_set_error(&a->archive, errno, + "Can't create temporary file"); return ARCHIVE_FAILED; + } a->pst = NULL; en = 0; } else { @@ -2247,7 +2263,7 @@ create_filesystem_object(struct archive_write_disk *a) return (EPERM); } r = check_symlinks_fsobj(linkname_copy, &error_number, - &error_string, a->flags); + &error_string, a->flags, 1); if (r != ARCHIVE_OK) { archive_set_error(&a->archive, error_number, "%s", error_string.s); @@ -2268,7 +2284,12 @@ create_filesystem_object(struct archive_write_disk *a) */ if (a->flags & ARCHIVE_EXTRACT_SAFE_WRITES) unlink(a->name); +#ifdef HAVE_LINKAT + r = linkat(AT_FDCWD, linkname, AT_FDCWD, a->name, + 0) ? errno : 0; +#else r = link(linkname, a->name) ? errno : 0; +#endif /* * New cpio and pax formats allow hardlink entries * to carry data, so we may have to open the file @@ -2440,6 +2461,7 @@ _archive_write_disk_close(struct archive *_a) { struct archive_write_disk *a = (struct archive_write_disk *)_a; struct fixup_entry *next, *p; + struct stat st; int fd, ret; archive_check_magic(&a->archive, ARCHIVE_WRITE_DISK_MAGIC, @@ -2457,6 +2479,20 @@ _archive_write_disk_close(struct archive *_a) (TODO_TIMES | TODO_MODE_BASE | TODO_ACLS | TODO_FFLAGS)) { fd = open(p->name, O_WRONLY | O_BINARY | O_NOFOLLOW | O_CLOEXEC); + if (fd == -1) { + /* If we cannot lstat, skip entry */ + if (lstat(p->name, &st) != 0) + goto skip_fixup_entry; + /* + * If we deal with a symbolic link, mark + * it in the fixup mode to ensure no + * modifications are made to its target. + */ + if (S_ISLNK(st.st_mode)) { + p->mode &= ~S_IFMT; + p->mode |= S_IFLNK; + } + } } if (p->fixup & TODO_TIMES) { set_times(a, fd, p->mode, p->name, @@ -2471,7 +2507,12 @@ _archive_write_disk_close(struct archive *_a) fchmod(fd, p->mode); else #endif - chmod(p->name, p->mode); +#ifdef HAVE_LCHMOD + lchmod(p->name, p->mode); +#else + if (!S_ISLNK(p->mode)) + chmod(p->name, p->mode); +#endif } if (p->fixup & TODO_ACLS) archive_write_disk_set_acls(&a->archive, fd, @@ -2482,6 +2523,7 @@ _archive_write_disk_close(struct archive *_a) if (p->fixup & TODO_MAC_METADATA) set_mac_metadata(a, p->name, p->mac_metadata, p->mac_metadata_size); +skip_fixup_entry: next = p->next; archive_acl_clear(&p->acl); free(p->mac_metadata); @@ -2622,6 +2664,7 @@ new_fixup(struct archive_write_disk *a, const char *pathname) fe->next = a->fixup_list; a->fixup_list = fe; fe->fixup = 0; + fe->mode = 0; fe->name = strdup(pathname); return (fe); } @@ -2659,7 +2702,7 @@ fsobj_error(int *a_eno, struct archive_string *a_estr, */ static int check_symlinks_fsobj(char *path, int *a_eno, struct archive_string *a_estr, - int flags) + int flags, int checking_linkname) { #if !defined(HAVE_LSTAT) && \ !(defined(HAVE_OPENAT) && defined(HAVE_FSTATAT) && defined(HAVE_UNLINKAT)) @@ -2668,6 +2711,7 @@ check_symlinks_fsobj(char *path, int *a_eno, struct archive_string *a_estr, (void)error_number; /* UNUSED */ (void)error_string; /* UNUSED */ (void)flags; /* UNUSED */ + (void)checking_linkname; /* UNUSED */ return (ARCHIVE_OK); #else int res = ARCHIVE_OK; @@ -2789,6 +2833,28 @@ check_symlinks_fsobj(char *path, int *a_eno, struct archive_string *a_estr, head = tail + 1; } } else if (S_ISLNK(st.st_mode)) { + if (last && checking_linkname) { +#ifdef HAVE_LINKAT + /* + * Hardlinks to symlinks are safe to write + * if linkat() is supported as it does not + * follow symlinks. + */ + res = ARCHIVE_OK; +#else + /* + * We return ARCHIVE_FAILED here as we are + * not able to safely write hardlinks + * to symlinks. + */ + tail[0] = c; + fsobj_error(a_eno, a_estr, errno, + "Cannot write hardlink to symlink ", + path); + res = ARCHIVE_FAILED; +#endif + break; + } else if (last) { /* * Last element is symlink; remove it @@ -2955,7 +3021,7 @@ check_symlinks(struct archive_write_disk *a) int rc; archive_string_init(&error_string); rc = check_symlinks_fsobj(a->name, &error_number, &error_string, - a->flags); + a->flags, 0); if (rc != ARCHIVE_OK) { archive_set_error(&a->archive, error_number, "%s", error_string.s); @@ -3883,7 +3949,8 @@ set_fflags_platform(struct archive_write_disk *a, int fd, const char *name, /* If we weren't given an fd, open it ourselves. */ if (myfd < 0) { - myfd = open(name, O_RDONLY | O_NONBLOCK | O_BINARY | O_CLOEXEC); + myfd = open(name, O_RDONLY | O_NONBLOCK | O_BINARY | + O_CLOEXEC | O_NOFOLLOW); __archive_ensure_cloexec_flag(myfd); } if (myfd < 0) @@ -4407,10 +4474,19 @@ set_xattrs(struct archive_write_disk *a) int e; int namespace; + namespace = EXTATTR_NAMESPACE_USER; + if (strncmp(name, "user.", 5) == 0) { /* "user." attributes go to user namespace */ name += 5; namespace = EXTATTR_NAMESPACE_USER; + } else if (strncmp(name, "system.", 7) == 0) { + name += 7; + namespace = EXTATTR_NAMESPACE_SYSTEM; + if (!strcmp(name, "nfs4.acl") || + !strcmp(name, "posix1e.acl_access") || + !strcmp(name, "posix1e.acl_default")) + continue; } else { /* Other namespaces are unsupported */ archive_strcat(&errlist, name); @@ -4421,8 +4497,29 @@ set_xattrs(struct archive_write_disk *a) } if (a->fd >= 0) { + /* + * On FreeBSD, extattr_set_fd does not + * return the same as + * extattr_set_file. It returns zero + * on success, non-zero on failure. + * + * We can detect the failure by + * manually setting errno prior to the + * call and checking after. + * + * If errno remains zero, fake the + * return value by setting e to size. + * + * This is a hack for now until I + * (Shawn Webb) get FreeBSD to fix the + * issue, if that's even possible. + */ + errno = 0; e = extattr_set_fd(a->fd, namespace, name, value, size); + if (e == 0 && errno == 0) { + e = size; + } } else { e = extattr_set_link( archive_entry_pathname(entry), namespace, diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_write_disk_private.h b/dependencies/libarchive-3.5.2/libarchive/archive_write_disk_private.h similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/archive_write_disk_private.h rename to dependencies/libarchive-3.5.2/libarchive/archive_write_disk_private.h diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_write_disk_set_standard_lookup.c b/dependencies/libarchive-3.5.2/libarchive/archive_write_disk_set_standard_lookup.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/archive_write_disk_set_standard_lookup.c rename to dependencies/libarchive-3.5.2/libarchive/archive_write_disk_set_standard_lookup.c diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_write_disk_windows.c b/dependencies/libarchive-3.5.2/libarchive/archive_write_disk_windows.c similarity index 99% rename from dependencies/libarchive-3.4.2/libarchive/archive_write_disk_windows.c rename to dependencies/libarchive-3.5.2/libarchive/archive_write_disk_windows.c index 77e36c4..0c60017 100644 --- a/dependencies/libarchive-3.4.2/libarchive/archive_write_disk_windows.c +++ b/dependencies/libarchive-3.5.2/libarchive/archive_write_disk_windows.c @@ -549,6 +549,8 @@ la_mktemp(struct archive_write_disk *a) a->tmpname = a->_tmpname_data.s; fd = __archive_mkstemp(a->tmpname); + if (fd == -1) + return -1; mode = a->mode & 0777 & ~a->user_umask; if (la_chmod(a->tmpname, mode) == -1) { @@ -1281,9 +1283,11 @@ _archive_write_disk_finish_entry(struct archive *_a) /* Windows does not support atomic rename */ disk_unlink(a->name); if (_wrename(a->tmpname, a->name) != 0) { + la_dosmaperr(GetLastError()); archive_set_error(&a->archive, errno, - "rename failed"); - ret = ARCHIVE_FATAL; + "Failed to rename temporary file"); + ret = ARCHIVE_FAILED; + disk_unlink(a->tmpname); } a->tmpname = NULL; } @@ -1573,12 +1577,17 @@ restore_entry(struct archive_write_disk *a) S_ISREG(st_mode)) { int fd = la_mktemp(a); - if (fd == -1) + if (fd == -1) { + la_dosmaperr(GetLastError()); + archive_set_error(&a->archive, errno, + "Can't create temporary file"); return (ARCHIVE_FAILED); + } a->fh = (HANDLE)_get_osfhandle(fd); - if (a->fh == INVALID_HANDLE_VALUE) + if (a->fh == INVALID_HANDLE_VALUE) { + la_dosmaperr(GetLastError()); return (ARCHIVE_FAILED); - + } a->pst = NULL; en = 0; } else { diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_write_filter.3 b/dependencies/libarchive-3.5.2/libarchive/archive_write_filter.3 similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/archive_write_filter.3 rename to dependencies/libarchive-3.5.2/libarchive/archive_write_filter.3 diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_write_finish_entry.3 b/dependencies/libarchive-3.5.2/libarchive/archive_write_finish_entry.3 similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/archive_write_finish_entry.3 rename to dependencies/libarchive-3.5.2/libarchive/archive_write_finish_entry.3 diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_write_format.3 b/dependencies/libarchive-3.5.2/libarchive/archive_write_format.3 similarity index 91% rename from dependencies/libarchive-3.4.2/libarchive/archive_write_format.3 rename to dependencies/libarchive-3.5.2/libarchive/archive_write_format.3 index 47a7403..653089f 100644 --- a/dependencies/libarchive-3.4.2/libarchive/archive_write_format.3 +++ b/dependencies/libarchive-3.5.2/libarchive/archive_write_format.3 @@ -35,7 +35,10 @@ .Nm archive_write_set_format_ar_svr4 , .Nm archive_write_set_format_by_name , .Nm archive_write_set_format_cpio , +.Nm archive_write_set_format_cpio_bin , .Nm archive_write_set_format_cpio_newc , +.Nm archive_write_set_format_cpio_odc , +.Nm archive_write_set_format_cpio_pwb , .Nm archive_write_set_format_filter_by_ext , .Nm archive_write_set_format_filter_by_ext_def , .Nm archive_write_set_format_gnutar , @@ -73,8 +76,14 @@ Streaming Archive Library (libarchive, -larchive) .Ft int .Fn archive_write_set_format_cpio "struct archive *" .Ft int +.Fn archive_write_set_format_cpio_bin "struct archive *" +.Ft int .Fn archive_write_set_format_cpio_newc "struct archive *" .Ft int +.Fn archive_write_set_format_cpio_odc "struct archive *" +.Ft int +.Fn archive_write_set_format_cpio_pwb "struct archive *" +.Ft int .Fn archive_write_set_format_filter_by_ext "struct archive *" "const char *filename" .Ft int .Fn archive_write_set_format_filter_by_ext_def "struct archive *" "const char *filename" "const char *def_ext" @@ -119,17 +128,20 @@ to create a new archive with the same format as an existing archive. .It Fn archive_write_set_format_by_name Sets the corresponding format based on the common name. .It Xo -.Fn archive_write_set_format_filter_by_ext , +.Fn archive_write_set_format_filter_by_ext .Fn archive_write_set_format_filter_by_ext_def .Xc Sets both filters and format based on the output filename. Supported extensions: .7z, .zip, .jar, .cpio, .iso, .a, .ar, .tar, .tgz, .tar.gz, .tar.bz2, .tar.xz .It Xo .Fn archive_write_set_format_7zip -.Fn archive_write_set_format_ar_bsd , -.Fn archive_write_set_format_ar_svr4 , +.Fn archive_write_set_format_ar_bsd +.Fn archive_write_set_format_ar_svr4 .Fn archive_write_set_format_cpio +.Fn archive_write_set_format_cpio_bin .Fn archive_write_set_format_cpio_newc +.Fn archive_write_set_format_cpio_odc +.Fn archive_write_set_format_cpio_pwb .Fn archive_write_set_format_gnutar .Fn archive_write_set_format_iso9660 .Fn archive_write_set_format_mtree diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_write_free.3 b/dependencies/libarchive-3.5.2/libarchive/archive_write_free.3 similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/archive_write_free.3 rename to dependencies/libarchive-3.5.2/libarchive/archive_write_free.3 diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_write_header.3 b/dependencies/libarchive-3.5.2/libarchive/archive_write_header.3 similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/archive_write_header.3 rename to dependencies/libarchive-3.5.2/libarchive/archive_write_header.3 diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_write_new.3 b/dependencies/libarchive-3.5.2/libarchive/archive_write_new.3 similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/archive_write_new.3 rename to dependencies/libarchive-3.5.2/libarchive/archive_write_new.3 diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_write_open.3 b/dependencies/libarchive-3.5.2/libarchive/archive_write_open.3 similarity index 89% rename from dependencies/libarchive-3.4.2/libarchive/archive_write_open.3 rename to dependencies/libarchive-3.5.2/libarchive/archive_write_open.3 index 0129d10..29bffe4 100644 --- a/dependencies/libarchive-3.4.2/libarchive/archive_write_open.3 +++ b/dependencies/libarchive-3.5.2/libarchive/archive_write_open.3 @@ -24,11 +24,12 @@ .\" .\" $FreeBSD$ .\" -.Dd February 2, 2012 +.Dd November 12, 2020 .Dt ARCHIVE_WRITE_OPEN 3 .Os .Sh NAME .Nm archive_write_open , +.Nm archive_write_open2 , .Nm archive_write_open_fd , .Nm archive_write_open_FILE , .Nm archive_write_open_filename , @@ -47,6 +48,15 @@ Streaming Archive Library (libarchive, -larchive) .Fa "archive_close_callback *" .Fc .Ft int +.Fo archive_write_open2 +.Fa "struct archive *" +.Fa "void *client_data" +.Fa "archive_open_callback *" +.Fa "archive_write_callback *" +.Fa "archive_close_callback *" +.Fa "archive_free_callback *" +.Fc +.Ft int .Fn archive_write_open_fd "struct archive *" "int fd" .Ft int .Fn archive_write_open_FILE "struct archive *" "FILE *file" @@ -67,6 +77,11 @@ This is the most generic form of this function, which accepts pointers to three callback functions which will be invoked by the compression layer to write the constructed archive. This does not alter the default archive padding. +.It Fn archive_write_open2 +Same as +.Fn archive_write_open +with an additional fourth free callback. This function should be preferred to +.Fn archive_write_open . .It Fn archive_write_open_fd A convenience form of .Fn archive_write_open @@ -106,14 +121,14 @@ to a character or block device node, it will disable padding otherwise. You can override this by manually invoking .Fn archive_write_set_bytes_in_last_block before calling -.Fn archive_write_open . +.Fn archive_write_open2 . The .Fn archive_write_open_filename function is safe for use with tape drives or other block-oriented devices. .It Fn archive_write_open_memory A convenience form of -.Fn archive_write_open +.Fn archive_write_open2 that accepts a pointer to a block of memory that will receive the archive. The final @@ -145,7 +160,7 @@ To use this library, you will need to define and register callback functions that will be invoked to write data to the resulting archive. These functions are registered by calling -.Fn archive_write_open : +.Fn archive_write_open2 : .Bl -item -offset indent .It .Ft typedef int @@ -162,6 +177,8 @@ If the open fails, it should call .Fn archive_set_error to register an error code and message and return .Cm ARCHIVE_FATAL . +Please note that if open fails, close is not called and resources must be +freed inside the open callback or with the free callback. .Bl -item -offset indent .It .Ft typedef la_ssize_t @@ -192,7 +209,8 @@ to register an error code and message and return -1. .El .Pp The close callback is invoked by archive_close when -the archive processing is complete. +the archive processing is complete. If the open callback fails, the close +callback is not invoked. The callback should return .Cm ARCHIVE_OK on success. @@ -200,7 +218,14 @@ On failure, the callback should invoke .Fn archive_set_error to register an error code and message and return -.Cm ARCHIVE_FATAL . +.Bl -item -offset indent +.It +.Ft typedef int +.Fn archive_free_callback "struct archive *" "void *client_data" +.El +.Pp +The free callback is always invoked on archive_free. +The return code of this callback is not processed. .Pp Note that if the client-provided write callback function returns a non-zero value, that error will be propagated back to the caller diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_write_open_fd.c b/dependencies/libarchive-3.5.2/libarchive/archive_write_open_fd.c similarity index 94% rename from dependencies/libarchive-3.4.2/libarchive/archive_write_open_fd.c rename to dependencies/libarchive-3.5.2/libarchive/archive_write_open_fd.c index d5c426c..b8d491f 100644 --- a/dependencies/libarchive-3.4.2/libarchive/archive_write_open_fd.c +++ b/dependencies/libarchive-3.5.2/libarchive/archive_write_open_fd.c @@ -54,7 +54,7 @@ struct write_fd_data { int fd; }; -static int file_close(struct archive *, void *); +static int file_free(struct archive *, void *); static int file_open(struct archive *, void *); static ssize_t file_write(struct archive *, void *, const void *buff, size_t); @@ -72,8 +72,8 @@ archive_write_open_fd(struct archive *a, int fd) #if defined(__CYGWIN__) || defined(_WIN32) setmode(mine->fd, O_BINARY); #endif - return (archive_write_open(a, mine, - file_open, file_write, file_close)); + return (archive_write_open2(a, mine, + file_open, file_write, NULL, file_free)); } static int @@ -134,11 +134,13 @@ file_write(struct archive *a, void *client_data, const void *buff, size_t length } static int -file_close(struct archive *a, void *client_data) +file_free(struct archive *a, void *client_data) { struct write_fd_data *mine = (struct write_fd_data *)client_data; (void)a; /* UNUSED */ + if (mine == NULL) + return (ARCHIVE_OK); free(mine); return (ARCHIVE_OK); } diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_write_open_file.c b/dependencies/libarchive-3.5.2/libarchive/archive_write_open_file.c similarity index 92% rename from dependencies/libarchive-3.4.2/libarchive/archive_write_open_file.c rename to dependencies/libarchive-3.5.2/libarchive/archive_write_open_file.c index f6b1412..bf5b55a 100644 --- a/dependencies/libarchive-3.4.2/libarchive/archive_write_open_file.c +++ b/dependencies/libarchive-3.5.2/libarchive/archive_write_open_file.c @@ -51,7 +51,7 @@ struct write_FILE_data { FILE *f; }; -static int file_close(struct archive *, void *); +static int file_free(struct archive *, void *); static int file_open(struct archive *, void *); static ssize_t file_write(struct archive *, void *, const void *buff, size_t); @@ -66,8 +66,8 @@ archive_write_open_FILE(struct archive *a, FILE *f) return (ARCHIVE_FATAL); } mine->f = f; - return (archive_write_open(a, mine, - file_open, file_write, file_close)); + return (archive_write_open2(a, mine, file_open, file_write, + NULL, file_free)); } static int @@ -99,11 +99,13 @@ file_write(struct archive *a, void *client_data, const void *buff, size_t length } static int -file_close(struct archive *a, void *client_data) +file_free(struct archive *a, void *client_data) { struct write_FILE_data *mine = client_data; (void)a; /* UNUSED */ + if (mine == NULL) + return (ARCHIVE_OK); free(mine); return (ARCHIVE_OK); } diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_write_open_filename.c b/dependencies/libarchive-3.5.2/libarchive/archive_write_open_filename.c similarity index 94% rename from dependencies/libarchive-3.4.2/libarchive/archive_write_open_filename.c rename to dependencies/libarchive-3.5.2/libarchive/archive_write_open_filename.c index 66e0dfe..9ceefb1 100644 --- a/dependencies/libarchive-3.4.2/libarchive/archive_write_open_filename.c +++ b/dependencies/libarchive-3.5.2/libarchive/archive_write_open_filename.c @@ -62,6 +62,7 @@ struct write_file_data { }; static int file_close(struct archive *, void *); +static int file_free(struct archive *, void *); static int file_open(struct archive *, void *); static ssize_t file_write(struct archive *, void *, const void *buff, size_t); static int open_filename(struct archive *, int, const void *); @@ -123,8 +124,8 @@ open_filename(struct archive *a, int mbs_fn, const void *filename) return (ARCHIVE_FAILED); } mine->fd = -1; - return (archive_write_open(a, mine, - file_open, file_write, file_close)); + return (archive_write_open2(a, mine, + file_open, file_write, file_close, file_free)); } static int @@ -244,9 +245,25 @@ file_close(struct archive *a, void *client_data) (void)a; /* UNUSED */ + if (mine == NULL) + return (ARCHIVE_FATAL); + if (mine->fd >= 0) close(mine->fd); + return (ARCHIVE_OK); +} + +static int +file_free(struct archive *a, void *client_data) +{ + struct write_file_data *mine = (struct write_file_data *)client_data; + + (void)a; /* UNUSED */ + + if (mine == NULL) + return (ARCHIVE_OK); + archive_mstring_clean(&mine->filename); free(mine); return (ARCHIVE_OK); diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_write_open_memory.c b/dependencies/libarchive-3.5.2/libarchive/archive_write_open_memory.c similarity index 93% rename from dependencies/libarchive-3.4.2/libarchive/archive_write_open_memory.c rename to dependencies/libarchive-3.5.2/libarchive/archive_write_open_memory.c index ea6ae0a..a8a0b81 100644 --- a/dependencies/libarchive-3.4.2/libarchive/archive_write_open_memory.c +++ b/dependencies/libarchive-3.5.2/libarchive/archive_write_open_memory.c @@ -39,7 +39,7 @@ struct write_memory_data { unsigned char * buff; }; -static int memory_write_close(struct archive *, void *); +static int memory_write_free(struct archive *, void *); static int memory_write_open(struct archive *, void *); static ssize_t memory_write(struct archive *, void *, const void *buff, size_t); @@ -61,8 +61,8 @@ archive_write_open_memory(struct archive *a, void *buff, size_t buffSize, size_t mine->buff = buff; mine->size = buffSize; mine->client_size = used; - return (archive_write_open(a, mine, - memory_write_open, memory_write, memory_write_close)); + return (archive_write_open2(a, mine, + memory_write_open, memory_write, NULL, memory_write_free)); } static int @@ -103,11 +103,13 @@ memory_write(struct archive *a, void *client_data, const void *buff, size_t leng } static int -memory_write_close(struct archive *a, void *client_data) +memory_write_free(struct archive *a, void *client_data) { struct write_memory_data *mine; (void)a; /* UNUSED */ mine = client_data; + if (mine == NULL) + return (ARCHIVE_OK); free(mine); return (ARCHIVE_OK); } diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_write_private.h b/dependencies/libarchive-3.5.2/libarchive/archive_write_private.h similarity index 99% rename from dependencies/libarchive-3.4.2/libarchive/archive_write_private.h rename to dependencies/libarchive-3.5.2/libarchive/archive_write_private.h index 27cba03..155fdd7 100644 --- a/dependencies/libarchive-3.4.2/libarchive/archive_write_private.h +++ b/dependencies/libarchive-3.5.2/libarchive/archive_write_private.h @@ -89,6 +89,7 @@ struct archive_write { archive_open_callback *client_opener; archive_write_callback *client_writer; archive_close_callback *client_closer; + archive_free_callback *client_freer; void *client_data; /* diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_write_set_format.c b/dependencies/libarchive-3.5.2/libarchive/archive_write_set_format.c similarity index 94% rename from dependencies/libarchive-3.4.2/libarchive/archive_write_set_format.c rename to dependencies/libarchive-3.5.2/libarchive/archive_write_set_format.c index 12de080..1f65fa4 100644 --- a/dependencies/libarchive-3.4.2/libarchive/archive_write_set_format.c +++ b/dependencies/libarchive-3.5.2/libarchive/archive_write_set_format.c @@ -44,7 +44,9 @@ struct { int code; int (*setter)(struct archive *); } codes[] = { { ARCHIVE_FORMAT_7ZIP, archive_write_set_format_7zip }, { ARCHIVE_FORMAT_CPIO, archive_write_set_format_cpio }, - { ARCHIVE_FORMAT_CPIO_POSIX, archive_write_set_format_cpio }, + { ARCHIVE_FORMAT_CPIO_BIN_LE, archive_write_set_format_cpio_bin }, + { ARCHIVE_FORMAT_CPIO_PWB, archive_write_set_format_cpio_pwb }, + { ARCHIVE_FORMAT_CPIO_POSIX, archive_write_set_format_cpio_odc }, { ARCHIVE_FORMAT_CPIO_SVR4_NOCRC, archive_write_set_format_cpio_newc }, { ARCHIVE_FORMAT_ISO9660, archive_write_set_format_iso9660 }, { ARCHIVE_FORMAT_MTREE, archive_write_set_format_mtree }, @@ -82,7 +84,7 @@ void __archive_write_entry_filetype_unsupported(struct archive *a, struct archive_entry *entry, const char *format) { - char *name = NULL; + const char *name = NULL; switch (archive_entry_filetype(entry)) { /* diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_write_set_format_7zip.c b/dependencies/libarchive-3.5.2/libarchive/archive_write_set_format_7zip.c similarity index 99% rename from dependencies/libarchive-3.4.2/libarchive/archive_write_set_format_7zip.c rename to dependencies/libarchive-3.5.2/libarchive/archive_write_set_format_7zip.c index fb7697f..d5ca9a6 100644 --- a/dependencies/libarchive-3.4.2/libarchive/archive_write_set_format_7zip.c +++ b/dependencies/libarchive-3.5.2/libarchive/archive_write_set_format_7zip.c @@ -755,6 +755,10 @@ _7z_close(struct archive_write *a) */ #if HAVE_LZMA_H header_compression = _7Z_LZMA1; + if(zip->opt_compression == _7Z_LZMA2 || + zip->opt_compression == _7Z_COPY) + header_compression = zip->opt_compression; + /* If the stored file is only one, do not encode the header. * This is the same way 7z command does. */ if (zip->total_number_entry == 1) @@ -762,7 +766,8 @@ _7z_close(struct archive_write *a) #else header_compression = _7Z_COPY; #endif - r = _7z_compression_init_encoder(a, header_compression, 6); + r = _7z_compression_init_encoder(a, header_compression, + zip->opt_compression_level); if (r < 0) return (r); zip->crc32flg = PRECODE_CRC32; @@ -1927,8 +1932,8 @@ compression_init_encoder_lzma(struct archive *a, return (ARCHIVE_FATAL); } lzmafilters = (lzma_filter *)(strm+1); - if (level > 6) - level = 6; + if (level > 9) + level = 9; if (lzma_lzma_preset(&lzma_opt, level)) { free(strm); lastrm->real_stream = NULL; diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_write_set_format_ar.c b/dependencies/libarchive-3.5.2/libarchive/archive_write_set_format_ar.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/archive_write_set_format_ar.c rename to dependencies/libarchive-3.5.2/libarchive/archive_write_set_format_ar.c diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_write_set_format_by_name.c b/dependencies/libarchive-3.5.2/libarchive/archive_write_set_format_by_name.c similarity index 96% rename from dependencies/libarchive-3.4.2/libarchive/archive_write_set_format_by_name.c rename to dependencies/libarchive-3.5.2/libarchive/archive_write_set_format_by_name.c index 86e8621..bfb4b35 100644 --- a/dependencies/libarchive-3.4.2/libarchive/archive_write_set_format_by_name.c +++ b/dependencies/libarchive-3.5.2/libarchive/archive_write_set_format_by_name.c @@ -49,6 +49,7 @@ struct { const char *name; int (*setter)(struct archive *); } names[] = { "arbsd", archive_write_set_format_ar_bsd }, { "argnu", archive_write_set_format_ar_svr4 }, { "arsvr4", archive_write_set_format_ar_svr4 }, + { "bin", archive_write_set_format_cpio_bin }, { "bsdtar", archive_write_set_format_pax_restricted }, { "cd9660", archive_write_set_format_iso9660 }, { "cpio", archive_write_set_format_cpio }, @@ -58,11 +59,12 @@ struct { const char *name; int (*setter)(struct archive *); } names[] = { "mtree", archive_write_set_format_mtree }, { "mtree-classic", archive_write_set_format_mtree_classic }, { "newc", archive_write_set_format_cpio_newc }, - { "odc", archive_write_set_format_cpio }, + { "odc", archive_write_set_format_cpio_odc }, { "oldtar", archive_write_set_format_v7tar }, { "pax", archive_write_set_format_pax }, { "paxr", archive_write_set_format_pax_restricted }, { "posix", archive_write_set_format_pax }, + { "pwb", archive_write_set_format_cpio_pwb }, { "raw", archive_write_set_format_raw }, { "rpax", archive_write_set_format_pax_restricted }, { "shar", archive_write_set_format_shar }, diff --git a/dependencies/libarchive-3.5.2/libarchive/archive_write_set_format_cpio.c b/dependencies/libarchive-3.5.2/libarchive/archive_write_set_format_cpio.c new file mode 100644 index 0000000..29a7cad --- /dev/null +++ b/dependencies/libarchive-3.5.2/libarchive/archive_write_set_format_cpio.c @@ -0,0 +1,10 @@ +#include "archive.h" + +/* + * Set output format to the default 'cpio' format. + */ +int +archive_write_set_format_cpio(struct archive *_a) +{ + return archive_write_set_format_cpio_odc(_a); +} diff --git a/dependencies/libarchive-3.5.2/libarchive/archive_write_set_format_cpio_binary.c b/dependencies/libarchive-3.5.2/libarchive/archive_write_set_format_cpio_binary.c new file mode 100644 index 0000000..c1e2f65 --- /dev/null +++ b/dependencies/libarchive-3.5.2/libarchive/archive_write_set_format_cpio_binary.c @@ -0,0 +1,610 @@ +/*- + * Copyright (c) 2003-2007 Tim Kientzle + * Copyright (c) 2011-2012 Michihiro NAKAJIMA + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include "archive_platform.h" +__FBSDID("$FreeBSD: head/lib/libarchive/archive_write_set_format_cpio.c 201170 2009-12-29 06:34:23Z kientzle $"); + +#ifdef HAVE_ERRNO_H +#include +#endif +#include +#ifdef HAVE_STDLIB_H +#include +#endif +#ifdef HAVE_STRING_H +#include +#endif + +#include "archive.h" +#include "archive_entry.h" +#include "archive_entry_locale.h" +#include "archive_private.h" +#include "archive_write_private.h" +#include "archive_write_set_format_private.h" + +static ssize_t archive_write_binary_data(struct archive_write *, + const void *buff, size_t s); +static int archive_write_binary_close(struct archive_write *); +static int archive_write_binary_free(struct archive_write *); +static int archive_write_binary_finish_entry(struct archive_write *); +static int archive_write_binary_header(struct archive_write *, + struct archive_entry *); +static int archive_write_binary_options(struct archive_write *, + const char *, const char *); +static int write_header(struct archive_write *, struct archive_entry *); + +struct cpio { + uint64_t entry_bytes_remaining; + + int64_t ino_next; + + struct { int64_t old; int new;} *ino_list; + size_t ino_list_size; + size_t ino_list_next; + + struct archive_string_conv *opt_sconv; + struct archive_string_conv *sconv_default; + int init_default_conversion; +}; + +/* This struct needs to be packed to get the header right */ + +#if defined(__GNUC__) +#define PACKED(x) x __attribute__((packed)) +#elif defined(_MSC_VER) +#define PACKED(x) __pragma(pack(push, 1)) x __pragma(pack(pop)) +#else +#define PACKED(x) x +#endif + +#define HSIZE 26 + +PACKED(struct cpio_binary_header { + uint16_t h_magic; + uint16_t h_dev; + uint16_t h_ino; + uint16_t h_mode; + uint16_t h_uid; + uint16_t h_gid; + uint16_t h_nlink; + uint16_t h_majmin; + uint32_t h_mtime; + uint16_t h_namesize; + uint32_t h_filesize; +}); + +/* Back in the day, the 7th Edition cpio.c had this, to + * adapt to, as the comment said, "VAX, Interdata, ...": + * + * union { long l; short s[2]; char c[4]; } U; + * #define MKSHORT(v,lv) {U.l=1L;if(U.c[0]) U.l=lv,v[0]=U.s[1],v[1]=U.s[0]; else U.l=lv,v[0]=U.s[0],v[1]=U.s[1];} + * long mklong(v) + * short v[]; + * { + * U.l = 1; + * if(U.c[0]) + * U.s[0] = v[1], U.s[1] = v[0]; + * else + * U.s[0] = v[0], U.s[1] = v[1]; + * return U.l; + * } + * + * Of course, that assumes that all machines have little-endian shorts, + * and just adapts the others to the special endianness of the PDP-11. + * + * Now, we could do this: + * + * union { uint32_t l; uint16_t s[2]; uint8_t c[4]; } U; + * #define PUTI16(v,sv) {U.s[0]=1;if(U.c[0]) v=sv; else U.s[0]=sv,U.c[2]=U.c[1],U.c[3]=U.c[0],v=U.s[1];} + * #define PUTI32(v,lv) {char_t Ut;U.l=1;if(U.c[0]) U.l=lv,v[0]=U.s[1],v[1]=U.s[0]; else U.l=lv,Ut=U.c[0],U.c[0]=U.c[1],U.c[1]=Ut,Ut=U.c[2],U.c[2]=U.c[3],U.c[3]=Ut,v[0]=U.s[0],v[1]=U.s[1];} + * + * ...but it feels a little better to do it like this: + */ + +static uint16_t swap16(uint16_t in) { + union { + uint16_t s[2]; + uint8_t c[4]; + } U; + U.s[0] = 1; + if (U.c[0]) + return in; + else { + U.s[0] = in; + U.c[2] = U.c[1]; + U.c[3] = U.c[0]; + return U.s[1]; + } + /* NOTREACHED */ +} + +static uint32_t swap32(uint32_t in) { + union { + uint32_t l; + uint16_t s[2]; + uint8_t c[4]; + } U; + U.l = 1; + if (U.c[0]) { /* Little-endian */ + uint16_t t; + U.l = in; + t = U.s[0]; + U.s[0] = U.s[1]; + U.s[1] = t; + } else if (U.c[3]) { /* Big-endian */ + U.l = in; + U.s[0] = swap16(U.s[0]); + U.s[1] = swap16(U.s[1]); + } else { /* PDP-endian */ + U.l = in; + } + return U.l; +} + +/* + * Set output format to the selected binary variant + */ +static int +archive_write_set_format_cpio_binary(struct archive *_a, int format) +{ + struct archive_write *a = (struct archive_write *)_a; + struct cpio *cpio; + + if (sizeof(struct cpio_binary_header) != HSIZE) { + archive_set_error(&a->archive, EINVAL, + "Binary cpio format not supported on this platform"); + return (ARCHIVE_FATAL); + } + + archive_check_magic(_a, ARCHIVE_WRITE_MAGIC, + ARCHIVE_STATE_NEW, "archive_write_set_format_cpio_binary"); + + /* If someone else was already registered, unregister them. */ + if (a->format_free != NULL) + (a->format_free)(a); + + cpio = (struct cpio *)calloc(1, sizeof(*cpio)); + if (cpio == NULL) { + archive_set_error(&a->archive, ENOMEM, "Can't allocate cpio data"); + return (ARCHIVE_FATAL); + } + a->format_data = cpio; + a->format_name = "cpio"; + a->format_options = archive_write_binary_options; + a->format_write_header = archive_write_binary_header; + a->format_write_data = archive_write_binary_data; + a->format_finish_entry = archive_write_binary_finish_entry; + a->format_close = archive_write_binary_close; + a->format_free = archive_write_binary_free; + a->archive.archive_format = format; + switch (format) { + case ARCHIVE_FORMAT_CPIO_PWB: + a->archive.archive_format_name = "PWB cpio"; + break; + case ARCHIVE_FORMAT_CPIO_BIN_LE: + a->archive.archive_format_name = "7th Edition cpio"; + break; + default: + archive_set_error(&a->archive, EINVAL, "binary format must be 'pwb' or 'bin'"); + return (ARCHIVE_FATAL); + } + return (ARCHIVE_OK); +} + +/* + * Set output format to PWB (6th Edition) binary format + */ +int +archive_write_set_format_cpio_pwb(struct archive *_a) +{ + return archive_write_set_format_cpio_binary(_a, ARCHIVE_FORMAT_CPIO_PWB); +} + +/* + * Set output format to 7th Edition binary format + */ +int +archive_write_set_format_cpio_bin(struct archive *_a) +{ + return archive_write_set_format_cpio_binary(_a, ARCHIVE_FORMAT_CPIO_BIN_LE); +} + +static int +archive_write_binary_options(struct archive_write *a, const char *key, + const char *val) +{ + struct cpio *cpio = (struct cpio *)a->format_data; + int ret = ARCHIVE_FAILED; + + if (strcmp(key, "hdrcharset") == 0) { + if (val == NULL || val[0] == 0) + archive_set_error(&a->archive, ARCHIVE_ERRNO_MISC, + "%s: hdrcharset option needs a character-set name", + a->format_name); + else { + cpio->opt_sconv = archive_string_conversion_to_charset( + &a->archive, val, 0); + if (cpio->opt_sconv != NULL) + ret = ARCHIVE_OK; + else + ret = ARCHIVE_FATAL; + } + return (ret); + } + + /* Note: The "warn" return is just to inform the options + * supervisor that we didn't handle it. It will generate + * a suitable error if no one used this option. */ + return (ARCHIVE_WARN); +} + +/* + * Ino values are as long as 64 bits on some systems; cpio format + * only allows 16 bits and relies on the ino values to identify hardlinked + * files. So, we can't merely "hash" the ino numbers since collisions + * would corrupt the archive. Instead, we generate synthetic ino values + * to store in the archive and maintain a map of original ino values to + * synthetic ones so we can preserve hardlink information. + * + * TODO: Make this more efficient. It's not as bad as it looks (most + * files don't have any hardlinks and we don't do any work here for those), + * but it wouldn't be hard to do better. + * + * TODO: Work with dev/ino pairs here instead of just ino values. + */ +static int +synthesize_ino_value(struct cpio *cpio, struct archive_entry *entry) +{ + int64_t ino = archive_entry_ino64(entry); + int ino_new; + size_t i; + + /* + * If no index number was given, don't assign one. In + * particular, this handles the end-of-archive marker + * correctly by giving it a zero index value. (This is also + * why we start our synthetic index numbers with one below.) + */ + if (ino == 0) + return (0); + + /* Don't store a mapping if we don't need to. */ + if (archive_entry_nlink(entry) < 2) { + return (int)(++cpio->ino_next); + } + + /* Look up old ino; if we have it, this is a hardlink + * and we reuse the same value. */ + for (i = 0; i < cpio->ino_list_next; ++i) { + if (cpio->ino_list[i].old == ino) + return (cpio->ino_list[i].new); + } + + /* Assign a new index number. */ + ino_new = (int)(++cpio->ino_next); + + /* Ensure space for the new mapping. */ + if (cpio->ino_list_size <= cpio->ino_list_next) { + size_t newsize = cpio->ino_list_size < 512 + ? 512 : cpio->ino_list_size * 2; + void *newlist = realloc(cpio->ino_list, + sizeof(cpio->ino_list[0]) * newsize); + if (newlist == NULL) + return (-1); + + cpio->ino_list_size = newsize; + cpio->ino_list = newlist; + } + + /* Record and return the new value. */ + cpio->ino_list[cpio->ino_list_next].old = ino; + cpio->ino_list[cpio->ino_list_next].new = ino_new; + ++cpio->ino_list_next; + return (ino_new); +} + + +static struct archive_string_conv * +get_sconv(struct archive_write *a) +{ + struct cpio *cpio; + struct archive_string_conv *sconv; + + cpio = (struct cpio *)a->format_data; + sconv = cpio->opt_sconv; + if (sconv == NULL) { + if (!cpio->init_default_conversion) { + cpio->sconv_default = + archive_string_default_conversion_for_write( + &(a->archive)); + cpio->init_default_conversion = 1; + } + sconv = cpio->sconv_default; + } + return (sconv); +} + +static int +archive_write_binary_header(struct archive_write *a, struct archive_entry *entry) +{ + const char *path; + size_t len; + + if (archive_entry_filetype(entry) == 0 && archive_entry_hardlink(entry) == NULL) { + archive_set_error(&a->archive, -1, "Filetype required"); + return (ARCHIVE_FAILED); + } + + if (archive_entry_pathname_l(entry, &path, &len, get_sconv(a)) != 0 + && errno == ENOMEM) { + archive_set_error(&a->archive, ENOMEM, + "Can't allocate memory for Pathname"); + return (ARCHIVE_FATAL); + } + if (len == 0 || path == NULL || path[0] == '\0') { + archive_set_error(&a->archive, -1, "Pathname required"); + return (ARCHIVE_FAILED); + } + + if (!archive_entry_size_is_set(entry) || archive_entry_size(entry) < 0) { + archive_set_error(&a->archive, -1, "Size required"); + return (ARCHIVE_FAILED); + } + return write_header(a, entry); +} + +static int +write_header(struct archive_write *a, struct archive_entry *entry) +{ + struct cpio *cpio; + const char *p, *path; + int pathlength, ret, ret_final; + int64_t ino; + struct cpio_binary_header h; + struct archive_string_conv *sconv; + struct archive_entry *entry_main; + size_t len; + + cpio = (struct cpio *)a->format_data; + ret_final = ARCHIVE_OK; + sconv = get_sconv(a); + +#if defined(_WIN32) && !defined(__CYGWIN__) + /* Make sure the path separators in pathname, hardlink and symlink + * are all slash '/', not the Windows path separator '\'. */ + entry_main = __la_win_entry_in_posix_pathseparator(entry); + if (entry_main == NULL) { + archive_set_error(&a->archive, ENOMEM, + "Can't allocate ustar data"); + return(ARCHIVE_FATAL); + } + if (entry != entry_main) + entry = entry_main; + else + entry_main = NULL; +#else + entry_main = NULL; +#endif + + ret = archive_entry_pathname_l(entry, &path, &len, sconv); + if (ret != 0) { + if (errno == ENOMEM) { + archive_set_error(&a->archive, ENOMEM, + "Can't allocate memory for Pathname"); + ret_final = ARCHIVE_FATAL; + goto exit_write_header; + } + archive_set_error(&a->archive, ARCHIVE_ERRNO_FILE_FORMAT, + "Can't translate pathname '%s' to %s", + archive_entry_pathname(entry), + archive_string_conversion_charset_name(sconv)); + ret_final = ARCHIVE_WARN; + } + /* Include trailing null */ + pathlength = (int)len + 1; + + h.h_magic = swap16(070707); + h.h_dev = swap16(archive_entry_dev(entry)); + + ino = synthesize_ino_value(cpio, entry); + if (ino < 0) { + archive_set_error(&a->archive, ENOMEM, + "No memory for ino translation table"); + ret_final = ARCHIVE_FATAL; + goto exit_write_header; + } else if (ino > 077777) { + archive_set_error(&a->archive, ERANGE, + "Too many files for this cpio format"); + ret_final = ARCHIVE_FATAL; + goto exit_write_header; + } + h.h_ino = swap16(ino); + + h.h_mode = archive_entry_mode(entry); + if (((h.h_mode & AE_IFMT) == AE_IFSOCK) || ((h.h_mode & AE_IFMT) == AE_IFIFO)) { + archive_set_error(&a->archive, EINVAL, + "sockets and fifos cannot be represented in the binary cpio formats"); + ret_final = ARCHIVE_FATAL; + goto exit_write_header; + } + if (a->archive.archive_format == ARCHIVE_FORMAT_CPIO_PWB) { + if ((h.h_mode & AE_IFMT) == AE_IFLNK) { + archive_set_error(&a->archive, EINVAL, + "symbolic links cannot be represented in the PWB cpio format"); + ret_final = ARCHIVE_FATAL; + goto exit_write_header; + } + /* we could turn off AE_IFREG here, but it does no harm, */ + /* and allows v7 cpio to read the entry without confusion */ + } + h.h_mode = swap16(h.h_mode); + + h.h_uid = swap16(archive_entry_uid(entry)); + h.h_gid = swap16(archive_entry_gid(entry)); + h.h_nlink = swap16(archive_entry_nlink(entry)); + + if (archive_entry_filetype(entry) == AE_IFBLK + || archive_entry_filetype(entry) == AE_IFCHR) + h.h_majmin = swap16(archive_entry_rdev(entry)); + else + h.h_majmin = 0; + + h.h_mtime = swap32(archive_entry_mtime(entry)); + h.h_namesize = swap16(pathlength); + + /* Non-regular files don't store bodies. */ + if (archive_entry_filetype(entry) != AE_IFREG) + archive_entry_set_size(entry, 0); + + /* Symlinks get the link written as the body of the entry. */ + ret = archive_entry_symlink_l(entry, &p, &len, sconv); + if (ret != 0) { + if (errno == ENOMEM) { + archive_set_error(&a->archive, ENOMEM, + "Can't allocate memory for Linkname"); + ret_final = ARCHIVE_FATAL; + goto exit_write_header; + } + archive_set_error(&a->archive, ARCHIVE_ERRNO_FILE_FORMAT, + "Can't translate linkname '%s' to %s", + archive_entry_symlink(entry), + archive_string_conversion_charset_name(sconv)); + ret_final = ARCHIVE_WARN; + } + + if (len > 0 && p != NULL && *p != '\0') { + if (a->archive.archive_format == ARCHIVE_FORMAT_CPIO_PWB) { + archive_set_error(&a->archive, EINVAL, + "symlinks are not supported by UNIX V6 or by PWB cpio"); + ret_final = ARCHIVE_FATAL; + goto exit_write_header; + } + h.h_filesize = swap32(strlen(p)); /* symlink */ + } else { + if ((a->archive.archive_format == ARCHIVE_FORMAT_CPIO_PWB) && + (archive_entry_size(entry) > 256*256*256-1)) { + archive_set_error(&a->archive, ERANGE, + "File is too large for PWB binary cpio format."); + ret_final = ARCHIVE_FAILED; + goto exit_write_header; + } else if (archive_entry_size(entry) > INT32_MAX) { + archive_set_error(&a->archive, ERANGE, + "File is too large for binary cpio format."); + ret_final = ARCHIVE_FAILED; + goto exit_write_header; + } + h.h_filesize = swap32(archive_entry_size(entry)); /* file */ + } + + ret = __archive_write_output(a, &h, HSIZE); + if (ret != ARCHIVE_OK) { + ret_final = ARCHIVE_FATAL; + goto exit_write_header; + } + + ret = __archive_write_output(a, path, pathlength); + if ((ret == ARCHIVE_OK) && ((pathlength % 2) != 0)) + ret = __archive_write_nulls(a, 1); + if (ret != ARCHIVE_OK) { + ret_final = ARCHIVE_FATAL; + goto exit_write_header; + } + + cpio->entry_bytes_remaining = archive_entry_size(entry); + if ((cpio->entry_bytes_remaining % 2) != 0) + cpio->entry_bytes_remaining++; + + /* Write the symlink now. */ + if (p != NULL && *p != '\0') { + ret = __archive_write_output(a, p, strlen(p)); + if ((ret == ARCHIVE_OK) && ((strlen(p) % 2) != 0)) + ret = __archive_write_nulls(a, 1); + if (ret != ARCHIVE_OK) { + ret_final = ARCHIVE_FATAL; + goto exit_write_header; + } + } + +exit_write_header: + archive_entry_free(entry_main); + return (ret_final); +} + +static ssize_t +archive_write_binary_data(struct archive_write *a, const void *buff, size_t s) +{ + struct cpio *cpio; + int ret; + + cpio = (struct cpio *)a->format_data; + if (s > cpio->entry_bytes_remaining) + s = (size_t)cpio->entry_bytes_remaining; + + ret = __archive_write_output(a, buff, s); + cpio->entry_bytes_remaining -= s; + if (ret >= 0) + return (s); + else + return (ret); +} + +static int +archive_write_binary_close(struct archive_write *a) +{ + int er; + struct archive_entry *trailer; + + trailer = archive_entry_new2(NULL); + /* nlink = 1 here for GNU cpio compat. */ + archive_entry_set_nlink(trailer, 1); + archive_entry_set_size(trailer, 0); + archive_entry_set_pathname(trailer, "TRAILER!!!"); + er = write_header(a, trailer); + archive_entry_free(trailer); + return (er); +} + +static int +archive_write_binary_free(struct archive_write *a) +{ + struct cpio *cpio; + + cpio = (struct cpio *)a->format_data; + free(cpio->ino_list); + free(cpio); + a->format_data = NULL; + return (ARCHIVE_OK); +} + +static int +archive_write_binary_finish_entry(struct archive_write *a) +{ + struct cpio *cpio; + + cpio = (struct cpio *)a->format_data; + return (__archive_write_nulls(a, + (size_t)cpio->entry_bytes_remaining)); +} diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_write_set_format_cpio_newc.c b/dependencies/libarchive-3.5.2/libarchive/archive_write_set_format_cpio_newc.c similarity index 99% rename from dependencies/libarchive-3.4.2/libarchive/archive_write_set_format_cpio_newc.c rename to dependencies/libarchive-3.5.2/libarchive/archive_write_set_format_cpio_newc.c index 172fda6..f0f3980 100644 --- a/dependencies/libarchive-3.4.2/libarchive/archive_write_set_format_cpio_newc.c +++ b/dependencies/libarchive-3.5.2/libarchive/archive_write_set_format_cpio_newc.c @@ -190,7 +190,7 @@ archive_write_newc_header(struct archive_write *a, struct archive_entry *entry) const char *path; size_t len; - if (archive_entry_filetype(entry) == 0) { + if (archive_entry_filetype(entry) == 0 && archive_entry_hardlink(entry) == NULL) { archive_set_error(&a->archive, -1, "Filetype required"); return (ARCHIVE_FAILED); } diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_write_set_format_cpio.c b/dependencies/libarchive-3.5.2/libarchive/archive_write_set_format_cpio_odc.c similarity index 91% rename from dependencies/libarchive-3.4.2/libarchive/archive_write_set_format_cpio.c rename to dependencies/libarchive-3.5.2/libarchive/archive_write_set_format_cpio_odc.c index 729f9c7..091925a 100644 --- a/dependencies/libarchive-3.4.2/libarchive/archive_write_set_format_cpio.c +++ b/dependencies/libarchive-3.5.2/libarchive/archive_write_set_format_cpio_odc.c @@ -45,14 +45,14 @@ __FBSDID("$FreeBSD: head/lib/libarchive/archive_write_set_format_cpio.c 201170 2 #include "archive_write_private.h" #include "archive_write_set_format_private.h" -static ssize_t archive_write_cpio_data(struct archive_write *, +static ssize_t archive_write_odc_data(struct archive_write *, const void *buff, size_t s); -static int archive_write_cpio_close(struct archive_write *); -static int archive_write_cpio_free(struct archive_write *); -static int archive_write_cpio_finish_entry(struct archive_write *); -static int archive_write_cpio_header(struct archive_write *, +static int archive_write_odc_close(struct archive_write *); +static int archive_write_odc_free(struct archive_write *); +static int archive_write_odc_finish_entry(struct archive_write *); +static int archive_write_odc_header(struct archive_write *, struct archive_entry *); -static int archive_write_cpio_options(struct archive_write *, +static int archive_write_odc_options(struct archive_write *, const char *, const char *); static int format_octal(int64_t, void *, int); static int64_t format_octal_recursive(int64_t, char *, int); @@ -99,13 +99,13 @@ struct cpio { * Set output format to 'cpio' format. */ int -archive_write_set_format_cpio(struct archive *_a) +archive_write_set_format_cpio_odc(struct archive *_a) { struct archive_write *a = (struct archive_write *)_a; struct cpio *cpio; archive_check_magic(_a, ARCHIVE_WRITE_MAGIC, - ARCHIVE_STATE_NEW, "archive_write_set_format_cpio"); + ARCHIVE_STATE_NEW, "archive_write_set_format_cpio_odc"); /* If someone else was already registered, unregister them. */ if (a->format_free != NULL) @@ -118,19 +118,19 @@ archive_write_set_format_cpio(struct archive *_a) } a->format_data = cpio; a->format_name = "cpio"; - a->format_options = archive_write_cpio_options; - a->format_write_header = archive_write_cpio_header; - a->format_write_data = archive_write_cpio_data; - a->format_finish_entry = archive_write_cpio_finish_entry; - a->format_close = archive_write_cpio_close; - a->format_free = archive_write_cpio_free; + a->format_options = archive_write_odc_options; + a->format_write_header = archive_write_odc_header; + a->format_write_data = archive_write_odc_data; + a->format_finish_entry = archive_write_odc_finish_entry; + a->format_close = archive_write_odc_close; + a->format_free = archive_write_odc_free; a->archive.archive_format = ARCHIVE_FORMAT_CPIO_POSIX; a->archive.archive_format_name = "POSIX cpio"; return (ARCHIVE_OK); } static int -archive_write_cpio_options(struct archive_write *a, const char *key, +archive_write_odc_options(struct archive_write *a, const char *key, const char *val) { struct cpio *cpio = (struct cpio *)a->format_data; @@ -245,12 +245,12 @@ get_sconv(struct archive_write *a) } static int -archive_write_cpio_header(struct archive_write *a, struct archive_entry *entry) +archive_write_odc_header(struct archive_write *a, struct archive_entry *entry) { const char *path; size_t len; - if (archive_entry_filetype(entry) == 0) { + if (archive_entry_filetype(entry) == 0 && archive_entry_hardlink(entry) == NULL) { archive_set_error(&a->archive, -1, "Filetype required"); return (ARCHIVE_FAILED); } @@ -348,7 +348,7 @@ write_header(struct archive_write *a, struct archive_entry *entry) format_octal(archive_entry_nlink(entry), h + c_nlink_offset, c_nlink_size); if (archive_entry_filetype(entry) == AE_IFBLK || archive_entry_filetype(entry) == AE_IFCHR) - format_octal(archive_entry_dev(entry), h + c_rdev_offset, c_rdev_size); + format_octal(archive_entry_rdev(entry), h + c_rdev_offset, c_rdev_size); else format_octal(0, h + c_rdev_offset, c_rdev_size); format_octal(archive_entry_mtime(entry), h + c_mtime_offset, c_mtime_size); @@ -414,7 +414,7 @@ exit_write_header: } static ssize_t -archive_write_cpio_data(struct archive_write *a, const void *buff, size_t s) +archive_write_odc_data(struct archive_write *a, const void *buff, size_t s) { struct cpio *cpio; int ret; @@ -462,7 +462,7 @@ format_octal_recursive(int64_t v, char *p, int s) } static int -archive_write_cpio_close(struct archive_write *a) +archive_write_odc_close(struct archive_write *a) { int er; struct archive_entry *trailer; @@ -478,7 +478,7 @@ archive_write_cpio_close(struct archive_write *a) } static int -archive_write_cpio_free(struct archive_write *a) +archive_write_odc_free(struct archive_write *a) { struct cpio *cpio; @@ -490,7 +490,7 @@ archive_write_cpio_free(struct archive_write *a) } static int -archive_write_cpio_finish_entry(struct archive_write *a) +archive_write_odc_finish_entry(struct archive_write *a) { struct cpio *cpio; diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_write_set_format_filter_by_ext.c b/dependencies/libarchive-3.5.2/libarchive/archive_write_set_format_filter_by_ext.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/archive_write_set_format_filter_by_ext.c rename to dependencies/libarchive-3.5.2/libarchive/archive_write_set_format_filter_by_ext.c diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_write_set_format_gnutar.c b/dependencies/libarchive-3.5.2/libarchive/archive_write_set_format_gnutar.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/archive_write_set_format_gnutar.c rename to dependencies/libarchive-3.5.2/libarchive/archive_write_set_format_gnutar.c diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_write_set_format_iso9660.c b/dependencies/libarchive-3.5.2/libarchive/archive_write_set_format_iso9660.c similarity index 99% rename from dependencies/libarchive-3.4.2/libarchive/archive_write_set_format_iso9660.c rename to dependencies/libarchive-3.5.2/libarchive/archive_write_set_format_iso9660.c index 7cde44c..faabd28 100644 --- a/dependencies/libarchive-3.4.2/libarchive/archive_write_set_format_iso9660.c +++ b/dependencies/libarchive-3.5.2/libarchive/archive_write_set_format_iso9660.c @@ -2178,7 +2178,8 @@ get_system_identitier(char *system_id, size_t size) strncpy(system_id, "Windows", size-1); system_id[size-1] = '\0'; #else -#error no way to get the system identifier on your platform. + strncpy(system_id, "Unknown", size-1); + system_id[size-1] = '\0'; #endif } diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_write_set_format_mtree.c b/dependencies/libarchive-3.5.2/libarchive/archive_write_set_format_mtree.c similarity index 98% rename from dependencies/libarchive-3.4.2/libarchive/archive_write_set_format_mtree.c rename to dependencies/libarchive-3.5.2/libarchive/archive_write_set_format_mtree.c index aa41e9a..619b771 100644 --- a/dependencies/libarchive-3.4.2/libarchive/archive_write_set_format_mtree.c +++ b/dependencies/libarchive-3.5.2/libarchive/archive_write_set_format_mtree.c @@ -37,6 +37,7 @@ __FBSDID("$FreeBSD: head/lib/libarchive/archive_write_set_format_mtree.c 201171 #include "archive.h" #include "archive_digest_private.h" #include "archive_entry.h" +#include "archive_entry_private.h" #include "archive_private.h" #include "archive_rb.h" #include "archive_string.h" @@ -82,24 +83,7 @@ struct dir_info { struct reg_info { int compute_sum; uint32_t crc; -#ifdef ARCHIVE_HAS_MD5 - unsigned char buf_md5[16]; -#endif -#ifdef ARCHIVE_HAS_RMD160 - unsigned char buf_rmd160[20]; -#endif -#ifdef ARCHIVE_HAS_SHA1 - unsigned char buf_sha1[20]; -#endif -#ifdef ARCHIVE_HAS_SHA256 - unsigned char buf_sha256[32]; -#endif -#ifdef ARCHIVE_HAS_SHA384 - unsigned char buf_sha384[48]; -#endif -#ifdef ARCHIVE_HAS_SHA512 - unsigned char buf_sha512[64]; -#endif + struct ae_digest digest; }; struct mtree_entry { @@ -1571,27 +1555,27 @@ sum_final(struct mtree_writer *mtree, struct reg_info *reg) } #ifdef ARCHIVE_HAS_MD5 if (mtree->compute_sum & F_MD5) - archive_md5_final(&mtree->md5ctx, reg->buf_md5); + archive_md5_final(&mtree->md5ctx, reg->digest.md5); #endif #ifdef ARCHIVE_HAS_RMD160 if (mtree->compute_sum & F_RMD160) - archive_rmd160_final(&mtree->rmd160ctx, reg->buf_rmd160); + archive_rmd160_final(&mtree->rmd160ctx, reg->digest.rmd160); #endif #ifdef ARCHIVE_HAS_SHA1 if (mtree->compute_sum & F_SHA1) - archive_sha1_final(&mtree->sha1ctx, reg->buf_sha1); + archive_sha1_final(&mtree->sha1ctx, reg->digest.sha1); #endif #ifdef ARCHIVE_HAS_SHA256 if (mtree->compute_sum & F_SHA256) - archive_sha256_final(&mtree->sha256ctx, reg->buf_sha256); + archive_sha256_final(&mtree->sha256ctx, reg->digest.sha256); #endif #ifdef ARCHIVE_HAS_SHA384 if (mtree->compute_sum & F_SHA384) - archive_sha384_final(&mtree->sha384ctx, reg->buf_sha384); + archive_sha384_final(&mtree->sha384ctx, reg->digest.sha384); #endif #ifdef ARCHIVE_HAS_SHA512 if (mtree->compute_sum & F_SHA512) - archive_sha512_final(&mtree->sha512ctx, reg->buf_sha512); + archive_sha512_final(&mtree->sha512ctx, reg->digest.sha512); #endif /* Save what types of sum are computed. */ reg->compute_sum = mtree->compute_sum; @@ -1621,42 +1605,47 @@ sum_write(struct archive_string *str, struct reg_info *reg) archive_string_sprintf(str, " cksum=%ju", (uintmax_t)reg->crc); } + +#define append_digest(_s, _r, _t) \ + strappend_bin(_s, _r->digest._t, sizeof(_r->digest._t)) + #ifdef ARCHIVE_HAS_MD5 if (reg->compute_sum & F_MD5) { archive_strcat(str, " md5digest="); - strappend_bin(str, reg->buf_md5, sizeof(reg->buf_md5)); + append_digest(str, reg, md5); } #endif #ifdef ARCHIVE_HAS_RMD160 if (reg->compute_sum & F_RMD160) { archive_strcat(str, " rmd160digest="); - strappend_bin(str, reg->buf_rmd160, sizeof(reg->buf_rmd160)); + append_digest(str, reg, rmd160); } #endif #ifdef ARCHIVE_HAS_SHA1 if (reg->compute_sum & F_SHA1) { archive_strcat(str, " sha1digest="); - strappend_bin(str, reg->buf_sha1, sizeof(reg->buf_sha1)); + append_digest(str, reg, sha1); } #endif #ifdef ARCHIVE_HAS_SHA256 if (reg->compute_sum & F_SHA256) { archive_strcat(str, " sha256digest="); - strappend_bin(str, reg->buf_sha256, sizeof(reg->buf_sha256)); + append_digest(str, reg, sha256); } #endif #ifdef ARCHIVE_HAS_SHA384 if (reg->compute_sum & F_SHA384) { archive_strcat(str, " sha384digest="); - strappend_bin(str, reg->buf_sha384, sizeof(reg->buf_sha384)); + append_digest(str, reg, sha384); } #endif #ifdef ARCHIVE_HAS_SHA512 if (reg->compute_sum & F_SHA512) { archive_strcat(str, " sha512digest="); - strappend_bin(str, reg->buf_sha512, sizeof(reg->buf_sha512)); + append_digest(str, reg, sha512); } #endif +#undef append_digest } static int diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_write_set_format_pax.c b/dependencies/libarchive-3.5.2/libarchive/archive_write_set_format_pax.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/archive_write_set_format_pax.c rename to dependencies/libarchive-3.5.2/libarchive/archive_write_set_format_pax.c diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_write_set_format_private.h b/dependencies/libarchive-3.5.2/libarchive/archive_write_set_format_private.h similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/archive_write_set_format_private.h rename to dependencies/libarchive-3.5.2/libarchive/archive_write_set_format_private.h diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_write_set_format_raw.c b/dependencies/libarchive-3.5.2/libarchive/archive_write_set_format_raw.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/archive_write_set_format_raw.c rename to dependencies/libarchive-3.5.2/libarchive/archive_write_set_format_raw.c diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_write_set_format_shar.c b/dependencies/libarchive-3.5.2/libarchive/archive_write_set_format_shar.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/archive_write_set_format_shar.c rename to dependencies/libarchive-3.5.2/libarchive/archive_write_set_format_shar.c diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_write_set_format_ustar.c b/dependencies/libarchive-3.5.2/libarchive/archive_write_set_format_ustar.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/archive_write_set_format_ustar.c rename to dependencies/libarchive-3.5.2/libarchive/archive_write_set_format_ustar.c diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_write_set_format_v7tar.c b/dependencies/libarchive-3.5.2/libarchive/archive_write_set_format_v7tar.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/archive_write_set_format_v7tar.c rename to dependencies/libarchive-3.5.2/libarchive/archive_write_set_format_v7tar.c diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_write_set_format_warc.c b/dependencies/libarchive-3.5.2/libarchive/archive_write_set_format_warc.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/archive_write_set_format_warc.c rename to dependencies/libarchive-3.5.2/libarchive/archive_write_set_format_warc.c diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_write_set_format_xar.c b/dependencies/libarchive-3.5.2/libarchive/archive_write_set_format_xar.c similarity index 99% rename from dependencies/libarchive-3.4.2/libarchive/archive_write_set_format_xar.c rename to dependencies/libarchive-3.5.2/libarchive/archive_write_set_format_xar.c index d456cf8..d885f5c 100644 --- a/dependencies/libarchive-3.4.2/libarchive/archive_write_set_format_xar.c +++ b/dependencies/libarchive-3.5.2/libarchive/archive_write_set_format_xar.c @@ -681,7 +681,8 @@ xar_write_data(struct archive_write *a, const void *buff, size_t s) { struct xar *xar; enum la_zaction run; - size_t size, rsize; + size_t size = 0; + size_t rsize; int r; xar = (struct xar *)a->format_data; @@ -2930,8 +2931,8 @@ compression_init_encoder_xz(struct archive *a, return (ARCHIVE_FATAL); } lzmafilters = (lzma_filter *)(strm+1); - if (level > 6) - level = 6; + if (level > 9) + level = 9; if (lzma_lzma_preset(&lzma_opt, level)) { free(strm); lastrm->real_stream = NULL; diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_write_set_format_zip.c b/dependencies/libarchive-3.5.2/libarchive/archive_write_set_format_zip.c similarity index 99% rename from dependencies/libarchive-3.4.2/libarchive/archive_write_set_format_zip.c rename to dependencies/libarchive-3.5.2/libarchive/archive_write_set_format_zip.c index 6d48529..f4352d5 100644 --- a/dependencies/libarchive-3.4.2/libarchive/archive_write_set_format_zip.c +++ b/dependencies/libarchive-3.5.2/libarchive/archive_write_set_format_zip.c @@ -584,6 +584,7 @@ archive_write_zip_header(struct archive_write *a, struct archive_entry *entry) zip->entry_flags |= ZIP_ENTRY_FLAG_ENCRYPTED; zip->entry_encryption = zip->encryption_type; break; + case ENCRYPTION_NONE: default: break; } @@ -710,6 +711,7 @@ archive_write_zip_header(struct archive_write *a, struct archive_entry *entry) + AUTH_CODE_SIZE; version_needed = 20; break; + case ENCRYPTION_NONE: default: break; } @@ -762,6 +764,7 @@ archive_write_zip_header(struct archive_write *a, struct archive_entry *entry) if (version_needed < 20) version_needed = 20; break; + case ENCRYPTION_NONE: default: break; } @@ -1029,6 +1032,7 @@ archive_write_zip_data(struct archive_write *a, const void *buff, size_t s) zip->cctx_valid = zip->hctx_valid = 1; } break; + case ENCRYPTION_NONE: default: break; } @@ -1117,6 +1121,7 @@ archive_write_zip_data(struct archive_write *a, const void *buff, size_t s) break; #endif + case COMPRESSION_UNSPECIFIED: default: archive_set_error(&a->archive, ARCHIVE_ERRNO_MISC, "Invalid ZIP compression type"); diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_write_set_options.3 b/dependencies/libarchive-3.5.2/libarchive/archive_write_set_options.3 similarity index 98% rename from dependencies/libarchive-3.4.2/libarchive/archive_write_set_options.3 rename to dependencies/libarchive-3.5.2/libarchive/archive_write_set_options.3 index cffe571..dd57358 100644 --- a/dependencies/libarchive-3.4.2/libarchive/archive_write_set_options.3 +++ b/dependencies/libarchive-3.5.2/libarchive/archive_write_set_options.3 @@ -255,7 +255,8 @@ If supported, the default value is read from .Bl -tag -compact -width indent .It Cm compression-level The value is interpreted as a decimal integer specifying the -compression level. Supported values are from 1 to 22. +compression level. Supported values depend on the library version, +common values are from 1 to 22. .El .It Format 7zip .Bl -tag -compact -width indent @@ -278,7 +279,7 @@ Values between 0 and 9 are supported. The interpretation of the compression level depends on the chosen compression method. .El -.It Format cpio +.It Format bin .Bl -tag -compact -width indent .It Cm hdrcharset The value is used as a character set name that will be @@ -518,6 +519,18 @@ XXX needs explanation XXX The value is used as a character set name that will be used when translating file names. .El +.It Format odc +.Bl -tag -compact -width indent +.It Cm hdrcharset +The value is used as a character set name that will be +used when translating file names. +.El +.It Format pwb +.Bl -tag -compact -width indent +.It Cm hdrcharset +The value is used as a character set name that will be +used when translating file names. +.El .It Format pax .Bl -tag -compact -width indent .It Cm hdrcharset diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_write_set_options.c b/dependencies/libarchive-3.5.2/libarchive/archive_write_set_options.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/archive_write_set_options.c rename to dependencies/libarchive-3.5.2/libarchive/archive_write_set_options.c diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_write_set_passphrase.3 b/dependencies/libarchive-3.5.2/libarchive/archive_write_set_passphrase.3 similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/archive_write_set_passphrase.3 rename to dependencies/libarchive-3.5.2/libarchive/archive_write_set_passphrase.3 diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_write_set_passphrase.c b/dependencies/libarchive-3.5.2/libarchive/archive_write_set_passphrase.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/archive_write_set_passphrase.c rename to dependencies/libarchive-3.5.2/libarchive/archive_write_set_passphrase.c diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_xxhash.h b/dependencies/libarchive-3.5.2/libarchive/archive_xxhash.h similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/archive_xxhash.h rename to dependencies/libarchive-3.5.2/libarchive/archive_xxhash.h diff --git a/dependencies/libarchive-3.4.2/libarchive/config_freebsd.h b/dependencies/libarchive-3.5.2/libarchive/config_freebsd.h similarity index 98% rename from dependencies/libarchive-3.4.2/libarchive/config_freebsd.h rename to dependencies/libarchive-3.5.2/libarchive/config_freebsd.h index f16fd34..ac651f0 100644 --- a/dependencies/libarchive-3.4.2/libarchive/config_freebsd.h +++ b/dependencies/libarchive-3.5.2/libarchive/config_freebsd.h @@ -24,6 +24,7 @@ * * $FreeBSD$ */ +#define __LIBARCHIVE_CONFIG_H_INCLUDED 1 #include @@ -137,6 +138,7 @@ #define HAVE_LIBZ 1 #define HAVE_LIMITS_H 1 #define HAVE_LINK 1 +#define HAVE_LINKAT 1 #define HAVE_LOCALE_H 1 #define HAVE_LOCALTIME_R 1 #define HAVE_LONG_LONG_INT 1 @@ -183,6 +185,7 @@ #define HAVE_STRFTIME 1 #define HAVE_STRINGS_H 1 #define HAVE_STRING_H 1 +#define HAVE_STRNLEN 1 #define HAVE_STRRCHR 1 #define HAVE_STRUCT_STATFS_F_NAMEMAX 1 #define HAVE_STRUCT_STAT_ST_BIRTHTIME 1 diff --git a/dependencies/libarchive-3.4.2/libarchive/cpio.5 b/dependencies/libarchive-3.5.2/libarchive/cpio.5 similarity index 65% rename from dependencies/libarchive-3.4.2/libarchive/cpio.5 rename to dependencies/libarchive-3.5.2/libarchive/cpio.5 index 1a2886f..837a456 100644 --- a/dependencies/libarchive-3.4.2/libarchive/cpio.5 +++ b/dependencies/libarchive-3.5.2/libarchive/cpio.5 @@ -56,40 +56,44 @@ The end of the archive is indicated by a special record with the pathname .Dq TRAILER!!! . .Ss PWB format -XXX Any documentation of the original PWB/UNIX 1.0 format? XXX -.Ss Old Binary Format -The old binary +The PWB binary .Nm -format stores numbers as 2-byte and 4-byte binary values. +format is the original format, when cpio was introduced as part of the +Programmer's Work Bench system, a variant of 6th Edition UNIX. It +stores numbers as 2-byte and 4-byte binary values. Each entry begins with a header in the following format: +.Pp .Bd -literal -offset indent -struct header_old_cpio { - unsigned short c_magic; - unsigned short c_dev; - unsigned short c_ino; - unsigned short c_mode; - unsigned short c_uid; - unsigned short c_gid; - unsigned short c_nlink; - unsigned short c_rdev; - unsigned short c_mtime[2]; - unsigned short c_namesize; - unsigned short c_filesize[2]; +struct header_pwb_cpio { + short h_magic; + short h_dev; + short h_ino; + short h_mode; + short h_uid; + short h_gid; + short h_nlink; + short h_majmin; + long h_mtime; + short h_namesize; + long h_filesize; }; .Ed .Pp The -.Va unsigned short -fields here are 16-bit integer values; the -.Va unsigned int -fields are 32-bit integer values. -The fields are as follows +.Va short +fields here are 16-bit integer values, while the +.Va long +fields are 32 bit integers. Since PWB UNIX, like the 6th Edition UNIX +it was based on, only ran on PDP-11 computers, they +are in PDP-endian format, which has little-endian shorts, and +big-endian longs. That is, the long integer whose hexadecimal +representation is 0x12345678 would be stored in four successive bytes +as 0x34, 0x12, 0x78, 0x56. +The fields are as follows: .Bl -tag -width indent -.It Va magic +.It Va h_magic The integer value octal 070707. -This value can be used to determine whether this archive is -written with little-endian or big-endian integers. -.It Va dev , Va ino +.It Va h_dev , Va h_ino The device and inode numbers from the disk. These are used by programs that read .Nm @@ -97,9 +101,94 @@ archives to determine when two entries refer to the same file. Programs that synthesize .Nm archives should be careful to set these to distinct values for each entry. -.It Va mode -The mode specifies both the regular permissions and the file type. -It consists of several bit fields as follows: +.It Va h_mode +The mode specifies both the regular permissions and the file type, and +it also holds a couple of bits that are irrelevant to the cpio format, +because the field is actually a raw copy of the mode field in the inode +representing the file. These are the IALLOC flag, which shows that +the inode entry is in use, and the ILARG flag, which shows that the +file it represents is large enough to have indirect blocks pointers in +the inode. +The mode is decoded as follows: +.Pp +.Bl -tag -width "MMMMMMM" -compact +.It 0100000 +IALLOC flag - irrelevant to cpio. +.It 0060000 +This masks the file type bits. +.It 0040000 +File type value for directories. +.It 0020000 +File type value for character special devices. +.It 0060000 +File type value for block special devices. +.It 0010000 +ILARG flag - irrelevant to cpio. +.It 0004000 +SUID bit. +.It 0002000 +SGID bit. +.It 0001000 +Sticky bit. +.It 0000777 +The lower 9 bits specify read/write/execute permissions +for world, group, and user following standard POSIX conventions. +.El +.It Va h_uid , Va h_gid +The numeric user id and group id of the owner. +.It Va h_nlink +The number of links to this file. +Directories always have a value of at least two here. +Note that hardlinked files include file data with every copy in the archive. +.It Va h_majmin +For block special and character special entries, +this field contains the associated device number, with the major +number in the high byte, and the minor number in the low byte. +For all other entry types, it should be set to zero by writers +and ignored by readers. +.It Va h_mtime +Modification time of the file, indicated as the number +of seconds since the start of the epoch, +00:00:00 UTC January 1, 1970. +.It Va h_namesize +The number of bytes in the pathname that follows the header. +This count includes the trailing NUL byte. +.It Va h_filesize +The size of the file. Note that this archive format is limited to 16 +megabyte file sizes, because PWB UNIX, like 6th Edition, only used +an unsigned 24 bit integer for the file size internally. +.El +.Pp +The pathname immediately follows the fixed header. +If +.Cm h_namesize +is odd, an additional NUL byte is added after the pathname. +The file data is then appended, again with an additional NUL +appended if needed to get the next header at an even offset. +.Pp +Hardlinked files are not given special treatment; +the full file contents are included with each copy of the +file. +.Ss New Binary Format +The new binary +.Nm +format showed up when cpio was adopted into late 7th Edition UNIX. +It is exactly like the PWB binary format, described above, except for +three changes: +.Pp +First, UNIX now ran on more than one hardware type, so the endianness +of 16 bit integers must be determined by observing the magic number at +the start of the header. The 32 bit integers are still always stored +with the most significant word first, though, so each of those two, in +the struct shown above, was stored as an array of two 16 bit integers, +in the traditional order. Those 16 bit integers, like all the others +in the struct, were accessed using a macro that byte swapped them if +necessary. +.Pp +Next, 7th Edition had more file types to store, and the IALLOC and ILARG +flag bits were re-purposed to accommodate these. The revised use of the +various bits is as follows: +.Pp .Bl -tag -width "MMMMMMM" -compact .It 0170000 This masks the file type bits. @@ -124,51 +213,26 @@ SUID bit. SGID bit. .It 0001000 Sticky bit. -On some systems, this modifies the behavior of executables and/or directories. .It 0000777 The lower 9 bits specify read/write/execute permissions for world, group, and user following standard POSIX conventions. .El -.It Va uid , Va gid -The numeric user id and group id of the owner. -.It Va nlink -The number of links to this file. -Directories always have a value of at least two here. -Note that hardlinked files include file data with every copy in the archive. -.It Va rdev -For block special and character special entries, -this field contains the associated device number. -For all other entry types, it should be set to zero by writers -and ignored by readers. -.It Va mtime -Modification time of the file, indicated as the number -of seconds since the start of the epoch, -00:00:00 UTC January 1, 1970. -The four-byte integer is stored with the most-significant 16 bits first -followed by the least-significant 16 bits. -Each of the two 16 bit values are stored in machine-native byte order. -.It Va namesize -The number of bytes in the pathname that follows the header. -This count includes the trailing NUL byte. -.It Va filesize -The size of the file. -Note that this archive format is limited to -four gigabyte file sizes. -See -.Va mtime -above for a description of the storage of four-byte integers. -.El .Pp -The pathname immediately follows the fixed header. -If the -.Cm namesize -is odd, an additional NUL byte is added after the pathname. -The file data is then appended, padded with NUL -bytes to an even length. +Finally, the file size field now represents a signed 32 bit integer in +the underlying file system, so the maximum file size has increased to +2 gigabytes. .Pp -Hardlinked files are not given special treatment; -the full file contents are included with each copy of the -file. +Note that there is no obvious way to tell which of the two binary +formats an archive uses, other than to see which one makes more +sense. The typical error scenario is that a PWB format archive +unpacked as if it were in the new format will create named sockets +instead of directories, and then fail to unpack files that should +go in those directories. Running +.Va bsdcpio -itv +on an unknown archive will make it obvious which it is: if it's +PWB format, directories will be listed with an 's' instead of +a 'd' as the first character of the mode string, and the larger +files will have a '?' in that position. .Ss Portable ASCII Format .St -susv2 standardized an ASCII variant that is portable across all @@ -180,6 +244,7 @@ format or as the format. It stores the same numeric fields as the old binary format, but represents them as 6-character or 11-character octal values. +.Pp .Bd -literal -offset indent struct cpio_odc_header { char c_magic[6]; @@ -196,9 +261,9 @@ struct cpio_odc_header { }; .Ed .Pp -The fields are identical to those in the old binary format. +The fields are identical to those in the new binary format. The name and file body follow the fixed header. -Unlike the old binary format, there is no additional padding +Unlike the binary formats, there is no additional padding after the pathname or file contents. If the files being archived are themselves entirely ASCII, then the resulting archive will be entirely ASCII, except for the @@ -207,6 +272,7 @@ NUL byte that terminates the name field. The "new" ASCII format uses 8-byte hexadecimal fields for all numbers and separates device numbers into separate fields for major and minor numbers. +.Pp .Bd -literal -offset indent struct cpio_newc_header { char c_magic[6]; @@ -227,7 +293,7 @@ struct cpio_newc_header { .Ed .Pp Except as specified below, the fields here match those specified -for the old binary format above. +for the new binary format above. .Bl -tag -width indent .It Va magic The string @@ -244,7 +310,7 @@ Note that this format supports only 4 gigabyte files (unlike the older ASCII format, which supports 8 gigabyte files). .Pp In this format, hardlinked files are handled by setting the -filesize to zero for each entry except the last one that +filesize to zero for each entry except the first one that appears in the archive. .Ss New CRC Format The CRC format is identical to the new ASCII format described @@ -288,9 +354,9 @@ while working in AT&T's Unix Support Group. It appeared in 1977 as part of PWB/UNIX 1.0, the .Dq Programmer's Work Bench derived from -.At v6 +.At 6th Edition UNIX that was used internally at AT&T. -Both the old binary and old character formats were in use +Both the new binary and old character formats were in use by 1980, according to the System III source released by SCO under their .Dq Ancient Unix @@ -304,9 +370,9 @@ The format is mis-named, as it uses a simple checksum and not a cyclic redundancy check. .Pp -The old binary format is limited to 16 bits for user id, -group id, device, and inode numbers. -It is limited to 4 gigabyte file sizes. +The binary formats are limited to 16 bits for user id, group id, +device, and inode numbers. They are limited to 16 megabyte and 2 +gigabyte file sizes for the older and newer variants, respectively. .Pp The old ASCII format is limited to 18 bits for the user id, group id, device, and inode numbers. diff --git a/dependencies/libarchive-3.4.2/libarchive/filter_fork.h b/dependencies/libarchive-3.5.2/libarchive/filter_fork.h similarity index 93% rename from dependencies/libarchive-3.4.2/libarchive/filter_fork.h rename to dependencies/libarchive-3.5.2/libarchive/filter_fork.h index 908e7cd..2bf290c 100644 --- a/dependencies/libarchive-3.4.2/libarchive/filter_fork.h +++ b/dependencies/libarchive-3.5.2/libarchive/filter_fork.h @@ -32,8 +32,13 @@ #error This header is only to be used internally to libarchive. #endif -pid_t -__archive_create_child(const char *cmd, int *child_stdin, int *child_stdout); +int +__archive_create_child(const char *cmd, int *child_stdin, int *child_stdout, +#if defined(_WIN32) && !defined(__CYGWIN__) + HANDLE *out_child); +#else + pid_t *out_child); +#endif void __archive_check_child(int in, int out); diff --git a/dependencies/libarchive-3.4.2/libarchive/filter_fork_posix.c b/dependencies/libarchive-3.5.2/libarchive/filter_fork_posix.c similarity index 98% rename from dependencies/libarchive-3.4.2/libarchive/filter_fork_posix.c rename to dependencies/libarchive-3.5.2/libarchive/filter_fork_posix.c index 02dbd4b..ac255c4 100644 --- a/dependencies/libarchive-3.4.2/libarchive/filter_fork_posix.c +++ b/dependencies/libarchive-3.5.2/libarchive/filter_fork_posix.c @@ -72,8 +72,9 @@ __FBSDID("$FreeBSD: head/lib/libarchive/filter_fork.c 182958 2008-09-12 05:33:00 #include "filter_fork.h" -pid_t -__archive_create_child(const char *cmd, int *child_stdin, int *child_stdout) +int +__archive_create_child(const char *cmd, int *child_stdin, int *child_stdout, + pid_t *out_child) { pid_t child; int stdin_pipe[2], stdout_pipe[2], tmp; @@ -177,7 +178,8 @@ __archive_create_child(const char *cmd, int *child_stdin, int *child_stdout) fcntl(*child_stdout, F_SETFL, O_NONBLOCK); __archive_cmdline_free(cmdline); - return child; + *out_child = child; + return ARCHIVE_OK; #if HAVE_POSIX_SPAWNP actions_inited: @@ -192,7 +194,7 @@ stdin_opened: close(stdin_pipe[1]); state_allocated: __archive_cmdline_free(cmdline); - return -1; + return ARCHIVE_FAILED; } void diff --git a/dependencies/libarchive-3.4.2/libarchive/filter_fork_windows.c b/dependencies/libarchive-3.5.2/libarchive/filter_fork_windows.c similarity index 95% rename from dependencies/libarchive-3.4.2/libarchive/filter_fork_windows.c rename to dependencies/libarchive-3.5.2/libarchive/filter_fork_windows.c index ad271fe..8d11179 100644 --- a/dependencies/libarchive-3.4.2/libarchive/filter_fork_windows.c +++ b/dependencies/libarchive-3.5.2/libarchive/filter_fork_windows.c @@ -31,8 +31,9 @@ #include "filter_fork.h" -pid_t -__archive_create_child(const char *cmd, int *child_stdin, int *child_stdout) +int +__archive_create_child(const char *cmd, int *child_stdin, int *child_stdout, + HANDLE *out_child) { HANDLE childStdout[2], childStdin[2],childStderr; SECURITY_ATTRIBUTES secAtts; @@ -44,6 +45,7 @@ __archive_create_child(const char *cmd, int *child_stdin, int *child_stdout) char *arg0, *ext; int i, l; DWORD fl, fl_old; + HANDLE child; childStdout[0] = childStdout[1] = INVALID_HANDLE_VALUE; childStdin[0] = childStdin[1] = INVALID_HANDLE_VALUE; @@ -154,13 +156,20 @@ __archive_create_child(const char *cmd, int *child_stdin, int *child_stdout) *child_stdout = _open_osfhandle((intptr_t)childStdout[0], _O_RDONLY); *child_stdin = _open_osfhandle((intptr_t)childStdin[1], _O_WRONLY); + child = OpenProcess(PROCESS_QUERY_INFORMATION, FALSE, + childInfo.dwProcessId); + if (child == NULL) // INVALID_HANDLE_VALUE ? + goto fail; + + *out_child = child; + CloseHandle(childStdout[1]); CloseHandle(childStdin[0]); archive_string_free(&cmdline); archive_string_free(&fullpath); __archive_cmdline_free(acmd); - return (childInfo.dwProcessId); + return ARCHIVE_OK; fail: if (childStdout[0] != INVALID_HANDLE_VALUE) @@ -176,7 +185,7 @@ fail: archive_string_free(&cmdline); archive_string_free(&fullpath); __archive_cmdline_free(acmd); - return (-1); + return ARCHIVE_FAILED; } void diff --git a/dependencies/libarchive-3.4.2/libarchive/libarchive-formats.5 b/dependencies/libarchive-3.5.2/libarchive/libarchive-formats.5 similarity index 94% rename from dependencies/libarchive-3.4.2/libarchive/libarchive-formats.5 rename to dependencies/libarchive-3.5.2/libarchive/libarchive-formats.5 index 62359dd..5a118ff 100644 --- a/dependencies/libarchive-3.4.2/libarchive/libarchive-formats.5 +++ b/dependencies/libarchive-3.5.2/libarchive/libarchive-formats.5 @@ -201,28 +201,27 @@ POSIX.1-2001 extended the ustar format to create the .Dq pax interchange format. .Ss Cpio Formats -The libarchive library can read a number of common cpio variants and can write -.Dq odc -and -.Dq newc -format archives. -A cpio archive stores each entry as a fixed-size header followed -by a variable-length filename and variable-length data. -Unlike the tar format, the cpio format does only minimal padding -of the header or file data. -There are several cpio variants, which differ primarily in -how they store the initial header: some store the values as -octal or hexadecimal numbers in ASCII, others as binary values of -varying byte order and length. +The libarchive library can read and write a number of common cpio +variants. A cpio archive stores each entry as a fixed-size header +followed by a variable-length filename and variable-length data. +Unlike the tar format, the cpio format does only minimal padding of +the header or file data. There are several cpio variants, which +differ primarily in how they store the initial header: some store the +values as octal or hexadecimal numbers in ASCII, others as binary +values of varying byte order and length. .Bl -tag -width indent .It Cm binary -The libarchive library transparently reads both big-endian and little-endian -variants of the original binary cpio format. -This format used 32-bit binary values for file size and mtime, -and 16-bit binary values for the other fields. +The libarchive library transparently reads both big-endian and +little-endian variants of the the two binary cpio formats; the +original one from PWB/UNIX, and the later, more widely used, variant. +This format used 32-bit binary values for file size and mtime, and +16-bit binary values for the other fields. The formats support only +the file types present in UNIX at the time of their creation. File +sizes are limited to 24 bits in the PWB format, because of the limits +of the file system, and to 31 bits in the newer binary format, where +signed 32 bit longs were used. .It Cm odc -The libarchive library can both read and write this -POSIX-standard format, which is officially known as the +This is the POSIX standardized format, which is officially known as the .Dq cpio interchange format or the .Dq octet-oriented cpio archive format diff --git a/dependencies/libarchive-3.4.2/libarchive/libarchive.3 b/dependencies/libarchive-3.5.2/libarchive/libarchive.3 similarity index 99% rename from dependencies/libarchive-3.4.2/libarchive/libarchive.3 rename to dependencies/libarchive-3.5.2/libarchive/libarchive.3 index c6894d2..1ef4b7c 100644 --- a/dependencies/libarchive-3.4.2/libarchive/libarchive.3 +++ b/dependencies/libarchive-3.5.2/libarchive/libarchive.3 @@ -105,7 +105,7 @@ POSIX .Dq pax interchange format archives, .It -POSIX octet-oriented cpio archives, +cpio archives, .It Zip archive, .It diff --git a/dependencies/libarchive-3.4.2/libarchive/libarchive_changes.3 b/dependencies/libarchive-3.5.2/libarchive/libarchive_changes.3 similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/libarchive_changes.3 rename to dependencies/libarchive-3.5.2/libarchive/libarchive_changes.3 diff --git a/dependencies/libarchive-3.4.2/libarchive/libarchive_internals.3 b/dependencies/libarchive-3.5.2/libarchive/libarchive_internals.3 similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/libarchive_internals.3 rename to dependencies/libarchive-3.5.2/libarchive/libarchive_internals.3 diff --git a/dependencies/libarchive-3.4.2/libarchive/mtree.5 b/dependencies/libarchive-3.5.2/libarchive/mtree.5 similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/mtree.5 rename to dependencies/libarchive-3.5.2/libarchive/mtree.5 diff --git a/dependencies/libarchive-3.4.2/libarchive/tar.5 b/dependencies/libarchive-3.5.2/libarchive/tar.5 similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/tar.5 rename to dependencies/libarchive-3.5.2/libarchive/tar.5 diff --git a/dependencies/libarchive-3.4.2/libarchive/test/CMakeLists.txt b/dependencies/libarchive-3.5.2/libarchive/test/CMakeLists.txt similarity index 98% rename from dependencies/libarchive-3.4.2/libarchive/test/CMakeLists.txt rename to dependencies/libarchive-3.5.2/libarchive/test/CMakeLists.txt index df34d3e..53cc3e2 100644 --- a/dependencies/libarchive-3.4.2/libarchive/test/CMakeLists.txt +++ b/dependencies/libarchive-3.5.2/libarchive/test/CMakeLists.txt @@ -191,13 +191,15 @@ IF(ENABLE_TEST) test_read_format_zip_zip64.c test_read_format_zip_with_invalid_traditional_eocd.c test_read_large.c - test_read_pax_schily_xattr.c + test_read_pax_xattr_rht_security_selinux.c + test_read_pax_xattr_schily.c test_read_pax_truncated.c test_read_position.c test_read_set_format.c test_read_too_many_filters.c test_read_truncated.c test_read_truncated_filter.c + test_short_writes.c test_sparse_basic.c test_tar_filenames.c test_tar_large.c @@ -207,6 +209,7 @@ IF(ENABLE_TEST) test_write_disk.c test_write_disk_appledouble.c test_write_disk_failures.c + test_write_disk_fixup.c test_write_disk_hardlink.c test_write_disk_hfs_compression.c test_write_disk_lookup.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/README b/dependencies/libarchive-3.5.2/libarchive/test/README similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/README rename to dependencies/libarchive-3.5.2/libarchive/test/README diff --git a/dependencies/libarchive-3.4.2/libarchive/test/list.h b/dependencies/libarchive-3.5.2/libarchive/test/list.h similarity index 98% rename from dependencies/libarchive-3.4.2/libarchive/test/list.h rename to dependencies/libarchive-3.5.2/libarchive/test/list.h index 59a22fe..0146e92 100644 --- a/dependencies/libarchive-3.4.2/libarchive/test/list.h +++ b/dependencies/libarchive-3.5.2/libarchive/test/list.h @@ -206,15 +206,15 @@ DEFINE_TEST(test_read_format_ar) DEFINE_TEST(test_read_format_cab) DEFINE_TEST(test_read_format_cab_filename) DEFINE_TEST(test_read_format_cpio_afio) -DEFINE_TEST(test_read_format_cpio_bin) -DEFINE_TEST(test_read_format_cpio_bin_Z) DEFINE_TEST(test_read_format_cpio_bin_be) DEFINE_TEST(test_read_format_cpio_bin_bz2) +DEFINE_TEST(test_read_format_cpio_bin) DEFINE_TEST(test_read_format_cpio_bin_gz) DEFINE_TEST(test_read_format_cpio_bin_le) DEFINE_TEST(test_read_format_cpio_bin_lzip) DEFINE_TEST(test_read_format_cpio_bin_lzma) DEFINE_TEST(test_read_format_cpio_bin_xz) +DEFINE_TEST(test_read_format_cpio_bin_Z) DEFINE_TEST(test_read_format_cpio_filename_eucJP_UTF8) DEFINE_TEST(test_read_format_cpio_filename_UTF8_eucJP) DEFINE_TEST(test_read_format_cpio_filename_UTF8_UTF8_jp) @@ -233,9 +233,9 @@ DEFINE_TEST(test_read_format_cpio_filename_KOI8R_CP1251) DEFINE_TEST(test_read_format_cpio_filename_UTF8_CP1251) DEFINE_TEST(test_read_format_cpio_odc) DEFINE_TEST(test_read_format_cpio_svr4_bzip2_rpm) +DEFINE_TEST(test_read_format_cpio_svr4c_Z) DEFINE_TEST(test_read_format_cpio_svr4_gzip) DEFINE_TEST(test_read_format_cpio_svr4_gzip_rpm) -DEFINE_TEST(test_read_format_cpio_svr4c_Z) DEFINE_TEST(test_read_format_empty) DEFINE_TEST(test_read_format_gtar_filename_eucJP_UTF8) DEFINE_TEST(test_read_format_gtar_filename_CP866_KOI8R) @@ -250,20 +250,20 @@ DEFINE_TEST(test_read_format_gtar_gz) DEFINE_TEST(test_read_format_gtar_lzma) DEFINE_TEST(test_read_format_gtar_sparse) DEFINE_TEST(test_read_format_gtar_sparse_skip_entry) -DEFINE_TEST(test_read_format_iso_Z) -DEFINE_TEST(test_read_format_iso_multi_extent) -DEFINE_TEST(test_read_format_iso_xorriso) DEFINE_TEST(test_read_format_isojoliet_bz2) DEFINE_TEST(test_read_format_isojoliet_long) DEFINE_TEST(test_read_format_isojoliet_rr) DEFINE_TEST(test_read_format_isojoliet_versioned) +DEFINE_TEST(test_read_format_iso_multi_extent) DEFINE_TEST(test_read_format_isorr_bz2) DEFINE_TEST(test_read_format_isorr_ce) DEFINE_TEST(test_read_format_isorr_new_bz2) DEFINE_TEST(test_read_format_isorr_rr_moved) +DEFINE_TEST(test_read_format_iso_xorriso) +DEFINE_TEST(test_read_format_iso_Z) DEFINE_TEST(test_read_format_isozisofs_bz2) -DEFINE_TEST(test_read_format_lha) DEFINE_TEST(test_read_format_lha_bugfix_0) +DEFINE_TEST(test_read_format_lha) DEFINE_TEST(test_read_format_lha_filename) DEFINE_TEST(test_read_format_lha_filename_UTF16) DEFINE_TEST(test_read_format_mtree) @@ -276,28 +276,6 @@ DEFINE_TEST(test_read_format_mtree_nonexistent_contents_file) DEFINE_TEST(test_read_format_mtree_noprint) DEFINE_TEST(test_read_format_mtree_crash747) DEFINE_TEST(test_read_format_pax_bz2) -DEFINE_TEST(test_read_format_rar_set_format) -DEFINE_TEST(test_read_format_rar_basic) -DEFINE_TEST(test_read_format_rar_subblock) -DEFINE_TEST(test_read_format_rar_noeof) -DEFINE_TEST(test_read_format_rar_unicode_UTF8) -DEFINE_TEST(test_read_format_rar_unicode_CP932) -DEFINE_TEST(test_read_format_rar_compress_normal) -DEFINE_TEST(test_read_format_rar_multi_lzss_blocks) -DEFINE_TEST(test_read_format_rar_compress_best) -DEFINE_TEST(test_read_format_rar_ppmd_lzss_conversion) -DEFINE_TEST(test_read_format_rar_binary) -DEFINE_TEST(test_read_format_rar_windows) -DEFINE_TEST(test_read_format_rar_multivolume) -DEFINE_TEST(test_read_format_rar_multivolume_skip) -DEFINE_TEST(test_read_format_rar_sfx) -DEFINE_TEST(test_read_format_rar_multivolume_stored_file) -DEFINE_TEST(test_read_format_rar_multivolume_stored_file_skip) -DEFINE_TEST(test_read_format_rar_multivolume_seek_data) -DEFINE_TEST(test_read_format_rar_multivolume_seek_multiple_files) -DEFINE_TEST(test_read_format_rar_multivolume_uncompressed_files) -DEFINE_TEST(test_read_format_rar_ppmd_use_after_free) -DEFINE_TEST(test_read_format_rar_ppmd_use_after_free2) DEFINE_TEST(test_read_format_rar5_set_format) DEFINE_TEST(test_read_format_rar5_stored) DEFINE_TEST(test_read_format_rar5_compressed) @@ -341,6 +319,28 @@ DEFINE_TEST(test_read_format_rar5_arm_filter_on_window_boundary) DEFINE_TEST(test_read_format_rar5_different_solid_window_size) DEFINE_TEST(test_read_format_rar5_different_winsize_on_merge) DEFINE_TEST(test_read_format_rar5_block_size_is_too_small) +DEFINE_TEST(test_read_format_rar_set_format) +DEFINE_TEST(test_read_format_rar_basic) +DEFINE_TEST(test_read_format_rar_subblock) +DEFINE_TEST(test_read_format_rar_noeof) +DEFINE_TEST(test_read_format_rar_unicode_UTF8) +DEFINE_TEST(test_read_format_rar_unicode_CP932) +DEFINE_TEST(test_read_format_rar_compress_normal) +DEFINE_TEST(test_read_format_rar_multi_lzss_blocks) +DEFINE_TEST(test_read_format_rar_compress_best) +DEFINE_TEST(test_read_format_rar_ppmd_lzss_conversion) +DEFINE_TEST(test_read_format_rar_binary) +DEFINE_TEST(test_read_format_rar_windows) +DEFINE_TEST(test_read_format_rar_multivolume) +DEFINE_TEST(test_read_format_rar_multivolume_skip) +DEFINE_TEST(test_read_format_rar_sfx) +DEFINE_TEST(test_read_format_rar_multivolume_stored_file) +DEFINE_TEST(test_read_format_rar_multivolume_stored_file_skip) +DEFINE_TEST(test_read_format_rar_multivolume_seek_data) +DEFINE_TEST(test_read_format_rar_multivolume_seek_multiple_files) +DEFINE_TEST(test_read_format_rar_multivolume_uncompressed_files) +DEFINE_TEST(test_read_format_rar_ppmd_use_after_free) +DEFINE_TEST(test_read_format_rar_ppmd_use_after_free2) DEFINE_TEST(test_read_format_rar_encryption_data) DEFINE_TEST(test_read_format_rar_encryption_header) DEFINE_TEST(test_read_format_rar_encryption_partially) @@ -360,6 +360,7 @@ DEFINE_TEST(test_read_format_tz) DEFINE_TEST(test_read_format_ustar_filename) DEFINE_TEST(test_read_format_warc) DEFINE_TEST(test_read_format_xar) +DEFINE_TEST(test_read_format_zip_utf8_paths) DEFINE_TEST(test_read_format_zip) DEFINE_TEST(test_read_format_zip_ppmd_one_file) DEFINE_TEST(test_read_format_zip_ppmd_one_file_blockread) @@ -379,7 +380,10 @@ DEFINE_TEST(test_read_format_zip_ppmd8_crash_1) DEFINE_TEST(test_read_format_zip_bz2_hang_on_invalid) DEFINE_TEST(test_read_format_zip_ppmd8_crash_2) DEFINE_TEST(test_read_format_zip_lzma_alone_leak) -DEFINE_TEST(test_read_format_zip_utf8_paths) +DEFINE_TEST(test_read_format_zip_lzma_stream_end) +DEFINE_TEST(test_read_format_zip_lzma_stream_end_blockread) +DEFINE_TEST(test_read_format_zip_7z_lzma) +DEFINE_TEST(test_read_format_zip_7z_deflate) DEFINE_TEST(test_read_format_zip_comment_stored) DEFINE_TEST(test_read_format_zip_encryption_data) DEFINE_TEST(test_read_format_zip_encryption_header) @@ -424,8 +428,9 @@ DEFINE_TEST(test_read_format_zip_with_invalid_traditional_eocd) DEFINE_TEST(test_read_format_zip_zip64a) DEFINE_TEST(test_read_format_zip_zip64b) DEFINE_TEST(test_read_large) -DEFINE_TEST(test_schily_xattr_pax) DEFINE_TEST(test_read_pax_truncated) +DEFINE_TEST(test_read_pax_xattr_rht_security_selinux) +DEFINE_TEST(test_read_pax_xattr_schily) DEFINE_TEST(test_read_position) DEFINE_TEST(test_read_set_format) DEFINE_TEST(test_read_set_wrong_format) @@ -442,6 +447,7 @@ DEFINE_TEST(test_read_truncated_filter_lzip) DEFINE_TEST(test_read_truncated_filter_lzma) DEFINE_TEST(test_read_truncated_filter_lzop) DEFINE_TEST(test_read_truncated_filter_xz) +DEFINE_TEST(test_short_writes) DEFINE_TEST(test_sparse_basic) DEFINE_TEST(test_fully_sparse_files) DEFINE_TEST(test_tar_filenames) @@ -457,20 +463,21 @@ DEFINE_TEST(test_ustar_filename_encoding_EUCJP_CP932) DEFINE_TEST(test_ustar_filename_encoding_CP932_UTF8) DEFINE_TEST(test_ustar_filenames) DEFINE_TEST(test_warn_missing_hardlink_target) -DEFINE_TEST(test_write_disk) DEFINE_TEST(test_write_disk_appledouble) +DEFINE_TEST(test_write_disk) DEFINE_TEST(test_write_disk_failures) +DEFINE_TEST(test_write_disk_fixup) DEFINE_TEST(test_write_disk_hardlink) DEFINE_TEST(test_write_disk_hfs_compression) DEFINE_TEST(test_write_disk_lookup) DEFINE_TEST(test_write_disk_mac_metadata) DEFINE_TEST(test_write_disk_no_hfs_compression) DEFINE_TEST(test_write_disk_perms) -DEFINE_TEST(test_write_disk_secure) DEFINE_TEST(test_write_disk_secure744) DEFINE_TEST(test_write_disk_secure745) DEFINE_TEST(test_write_disk_secure746a) DEFINE_TEST(test_write_disk_secure746b) +DEFINE_TEST(test_write_disk_secure) DEFINE_TEST(test_write_disk_sparse) DEFINE_TEST(test_write_disk_symlink) DEFINE_TEST(test_write_disk_times) @@ -517,22 +524,22 @@ DEFINE_TEST(test_write_format_cpio_odc) DEFINE_TEST(test_write_format_gnutar) DEFINE_TEST(test_write_format_gnutar_filenames) DEFINE_TEST(test_write_format_gnutar_linknames) -DEFINE_TEST(test_write_format_iso9660) DEFINE_TEST(test_write_format_iso9660_boot) +DEFINE_TEST(test_write_format_iso9660) DEFINE_TEST(test_write_format_iso9660_empty) DEFINE_TEST(test_write_format_iso9660_filename) DEFINE_TEST(test_write_format_iso9660_zisofs) +DEFINE_TEST(test_write_format_mtree_absolute_path) DEFINE_TEST(test_write_format_mtree) DEFINE_TEST(test_write_format_mtree_no_leading_dotslash) -DEFINE_TEST(test_write_format_mtree_absolute_path) DEFINE_TEST(test_write_format_mtree_classic) DEFINE_TEST(test_write_format_mtree_classic_indent) DEFINE_TEST(test_write_format_mtree_fflags) DEFINE_TEST(test_write_format_mtree_no_separator) DEFINE_TEST(test_write_format_mtree_quoted_filename) DEFINE_TEST(test_write_format_pax) -DEFINE_TEST(test_write_format_raw) DEFINE_TEST(test_write_format_raw_b64) +DEFINE_TEST(test_write_format_raw) DEFINE_TEST(test_write_format_shar_empty) DEFINE_TEST(test_write_format_tar) DEFINE_TEST(test_write_format_tar_empty) diff --git a/dependencies/libarchive-3.4.2/libarchive/test/read_open_memory.c b/dependencies/libarchive-3.5.2/libarchive/test/read_open_memory.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/read_open_memory.c rename to dependencies/libarchive-3.5.2/libarchive/test/read_open_memory.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test.h b/dependencies/libarchive-3.5.2/libarchive/test/test.h similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test.h rename to dependencies/libarchive-3.5.2/libarchive/test/test.h diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_acl_nfs4.c b/dependencies/libarchive-3.5.2/libarchive/test/test_acl_nfs4.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_acl_nfs4.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_acl_nfs4.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_acl_pax.c b/dependencies/libarchive-3.5.2/libarchive/test/test_acl_pax.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_acl_pax.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_acl_pax.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_acl_pax_nfs4.tar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_acl_pax_nfs4.tar.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_acl_pax_nfs4.tar.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_acl_pax_nfs4.tar.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_acl_pax_posix1e.tar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_acl_pax_posix1e.tar.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_acl_pax_posix1e.tar.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_acl_pax_posix1e.tar.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_acl_platform_nfs4.c b/dependencies/libarchive-3.5.2/libarchive/test/test_acl_platform_nfs4.c similarity index 99% rename from dependencies/libarchive-3.4.2/libarchive/test/test_acl_platform_nfs4.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_acl_platform_nfs4.c index 410582b..ae4bb5a 100644 --- a/dependencies/libarchive-3.4.2/libarchive/test/test_acl_platform_nfs4.c +++ b/dependencies/libarchive-3.5.2/libarchive/test/test_acl_platform_nfs4.c @@ -634,9 +634,11 @@ acl_match(acl_entry_t aclent, struct myacl_t *myacl) case ACL_ENTRY_TYPE_AUDIT: if (myacl->type != ARCHIVE_ENTRY_ACL_TYPE_AUDIT) return (0); + break; case ACL_ENTRY_TYPE_ALARM: if (myacl->type != ARCHIVE_ENTRY_ACL_TYPE_ALARM) return (0); + break; default: return (0); } diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_acl_platform_posix1e.c b/dependencies/libarchive-3.5.2/libarchive/test/test_acl_platform_posix1e.c similarity index 99% rename from dependencies/libarchive-3.4.2/libarchive/test/test_acl_platform_posix1e.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_acl_platform_posix1e.c index 801a7ac..c34f7c2 100644 --- a/dependencies/libarchive-3.4.2/libarchive/test/test_acl_platform_posix1e.c +++ b/dependencies/libarchive-3.5.2/libarchive/test/test_acl_platform_posix1e.c @@ -364,8 +364,8 @@ DEFINE_TEST(test_acl_platform_posix1e_read) struct archive *a; struct archive_entry *ae; int n, fd, flags, dflags; - char *func, *acl_text; - const char *acl1_text, *acl2_text, *acl3_text; + char *acl_text; + const char *func, *acl1_text, *acl2_text, *acl3_text; #if ARCHIVE_ACL_SUNOS void *aclp; int aclcnt; diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_acl_posix1e.c b/dependencies/libarchive-3.5.2/libarchive/test/test_acl_posix1e.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_acl_posix1e.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_acl_posix1e.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_acl_text.c b/dependencies/libarchive-3.5.2/libarchive/test/test_acl_text.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_acl_text.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_acl_text.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_archive_api_feature.c b/dependencies/libarchive-3.5.2/libarchive/test/test_archive_api_feature.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_archive_api_feature.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_archive_api_feature.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_archive_clear_error.c b/dependencies/libarchive-3.5.2/libarchive/test/test_archive_clear_error.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_archive_clear_error.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_archive_clear_error.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_archive_cmdline.c b/dependencies/libarchive-3.5.2/libarchive/test/test_archive_cmdline.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_archive_cmdline.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_archive_cmdline.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_archive_digest.c b/dependencies/libarchive-3.5.2/libarchive/test/test_archive_digest.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_archive_digest.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_archive_digest.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_archive_getdate.c b/dependencies/libarchive-3.5.2/libarchive/test/test_archive_getdate.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_archive_getdate.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_archive_getdate.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_archive_match_owner.c b/dependencies/libarchive-3.5.2/libarchive/test/test_archive_match_owner.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_archive_match_owner.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_archive_match_owner.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_archive_match_path.c b/dependencies/libarchive-3.5.2/libarchive/test/test_archive_match_path.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_archive_match_path.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_archive_match_path.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_archive_match_time.c b/dependencies/libarchive-3.5.2/libarchive/test/test_archive_match_time.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_archive_match_time.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_archive_match_time.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_archive_pathmatch.c b/dependencies/libarchive-3.5.2/libarchive/test/test_archive_pathmatch.c similarity index 98% rename from dependencies/libarchive-3.4.2/libarchive/test/test_archive_pathmatch.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_archive_pathmatch.c index 21cbdd7..0116df0 100644 --- a/dependencies/libarchive-3.4.2/libarchive/test/test_archive_pathmatch.c +++ b/dependencies/libarchive-3.5.2/libarchive/test/test_archive_pathmatch.c @@ -52,6 +52,10 @@ DEFINE_TEST(test_archive_pathmatch) assertEqualInt(0, archive_pathmatch("a/b/c", "a/b/", 0)); assertEqualInt(0, archive_pathmatch("a/b/c", "a/b", 0)); + /* Null string and non-empty pattern returns false. */ + assertEqualInt(0, archive_pathmatch("a/b/c", NULL, 0)); + assertEqualInt(0, archive_pathmatch_w(L"a/b/c", NULL, 0)); + /* Empty pattern only matches empty string. */ assertEqualInt(1, archive_pathmatch("","", 0)); assertEqualInt(0, archive_pathmatch("","a", 0)); diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_archive_read_add_passphrase.c b/dependencies/libarchive-3.5.2/libarchive/test/test_archive_read_add_passphrase.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_archive_read_add_passphrase.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_archive_read_add_passphrase.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_archive_read_close_twice.c b/dependencies/libarchive-3.5.2/libarchive/test/test_archive_read_close_twice.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_archive_read_close_twice.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_archive_read_close_twice.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_archive_read_close_twice_open_fd.c b/dependencies/libarchive-3.5.2/libarchive/test/test_archive_read_close_twice_open_fd.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_archive_read_close_twice_open_fd.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_archive_read_close_twice_open_fd.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_archive_read_close_twice_open_filename.c b/dependencies/libarchive-3.5.2/libarchive/test/test_archive_read_close_twice_open_filename.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_archive_read_close_twice_open_filename.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_archive_read_close_twice_open_filename.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_archive_read_multiple_data_objects.c b/dependencies/libarchive-3.5.2/libarchive/test/test_archive_read_multiple_data_objects.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_archive_read_multiple_data_objects.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_archive_read_multiple_data_objects.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_archive_read_next_header_empty.c b/dependencies/libarchive-3.5.2/libarchive/test/test_archive_read_next_header_empty.c similarity index 90% rename from dependencies/libarchive-3.4.2/libarchive/test/test_archive_read_next_header_empty.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_archive_read_next_header_empty.c index f650bcc..f43cbd9 100644 --- a/dependencies/libarchive-3.4.2/libarchive/test/test_archive_read_next_header_empty.c +++ b/dependencies/libarchive-3.5.2/libarchive/test/test_archive_read_next_header_empty.c @@ -44,14 +44,9 @@ test_empty_file1(void) } static void -test_empty_file2(void) +test_empty_file2_check(struct archive* a) { - struct archive* a = archive_read_new(); struct archive_entry* e; - - /* Try opening an empty file with raw and empty handlers. */ - assertEqualInt(ARCHIVE_OK, archive_read_support_format_raw(a)); - assertEqualInt(ARCHIVE_OK, archive_read_support_format_empty(a)); assertEqualInt(0, archive_errno(a)); assertEqualString(NULL, archive_error_string(a)); @@ -66,6 +61,25 @@ test_empty_file2(void) archive_read_free(a); } +static void +test_empty_file2(void) +{ + struct archive* a = archive_read_new(); + + /* Try opening an empty file with raw and empty handlers. */ + assertEqualInt(ARCHIVE_OK, archive_read_support_format_raw(a)); + assertEqualInt(ARCHIVE_OK, archive_read_support_format_empty(a)); + test_empty_file2_check(a); + + a = archive_read_new(); + assertEqualInt(ARCHIVE_OK, archive_read_support_format_by_code(a, ARCHIVE_FORMAT_EMPTY)); + test_empty_file2_check(a); + + a = archive_read_new(); + assertEqualInt(ARCHIVE_OK, archive_read_set_format(a, ARCHIVE_FORMAT_EMPTY)); + test_empty_file2_check(a); +} + static void test_empty_tarfile(void) { diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_archive_read_next_header_raw.c b/dependencies/libarchive-3.5.2/libarchive/test/test_archive_read_next_header_raw.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_archive_read_next_header_raw.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_archive_read_next_header_raw.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_archive_read_open2.c b/dependencies/libarchive-3.5.2/libarchive/test/test_archive_read_open2.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_archive_read_open2.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_archive_read_open2.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_archive_read_set_filter_option.c b/dependencies/libarchive-3.5.2/libarchive/test/test_archive_read_set_filter_option.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_archive_read_set_filter_option.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_archive_read_set_filter_option.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_archive_read_set_format_option.c b/dependencies/libarchive-3.5.2/libarchive/test/test_archive_read_set_format_option.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_archive_read_set_format_option.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_archive_read_set_format_option.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_archive_read_set_option.c b/dependencies/libarchive-3.5.2/libarchive/test/test_archive_read_set_option.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_archive_read_set_option.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_archive_read_set_option.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_archive_read_set_options.c b/dependencies/libarchive-3.5.2/libarchive/test/test_archive_read_set_options.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_archive_read_set_options.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_archive_read_set_options.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_archive_read_support.c b/dependencies/libarchive-3.5.2/libarchive/test/test_archive_read_support.c similarity index 74% rename from dependencies/libarchive-3.4.2/libarchive/test/test_archive_read_support.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_archive_read_support.c index 1619b07..c6eb934 100644 --- a/dependencies/libarchive-3.4.2/libarchive/test/test_archive_read_support.c +++ b/dependencies/libarchive-3.5.2/libarchive/test/test_archive_read_support.c @@ -35,6 +35,17 @@ typedef struct archive *constructor(void); typedef int enabler(struct archive *); typedef int destructor(struct archive *); +static int format_code = 0; +static int format_code_enabler(struct archive *a) +{ + return archive_read_support_format_by_code(a, format_code); +} + +static int format_code_setter(struct archive *a) +{ + return archive_read_set_format(a, format_code); +} + static void test_success(constructor new_, enabler enable_, destructor free_) { @@ -85,6 +96,44 @@ DEFINE_TEST(test_archive_read_support) test_filter_or_format(archive_read_support_format_xar); test_filter_or_format(archive_read_support_format_zip); + int format_codes[] = { + ARCHIVE_FORMAT_CPIO, + ARCHIVE_FORMAT_CPIO_POSIX, + ARCHIVE_FORMAT_CPIO_BIN_LE, + ARCHIVE_FORMAT_CPIO_BIN_BE, + ARCHIVE_FORMAT_CPIO_SVR4_NOCRC, + ARCHIVE_FORMAT_CPIO_SVR4_CRC, + ARCHIVE_FORMAT_CPIO_AFIO_LARGE, + ARCHIVE_FORMAT_TAR, + ARCHIVE_FORMAT_TAR_USTAR, + ARCHIVE_FORMAT_TAR_PAX_INTERCHANGE, + ARCHIVE_FORMAT_TAR_PAX_RESTRICTED, + ARCHIVE_FORMAT_TAR_GNUTAR, + ARCHIVE_FORMAT_ISO9660, + ARCHIVE_FORMAT_ISO9660_ROCKRIDGE, + ARCHIVE_FORMAT_ZIP, + ARCHIVE_FORMAT_EMPTY, + ARCHIVE_FORMAT_AR, + ARCHIVE_FORMAT_AR_GNU, + ARCHIVE_FORMAT_AR_BSD, + ARCHIVE_FORMAT_MTREE, + ARCHIVE_FORMAT_RAW, + ARCHIVE_FORMAT_XAR, + ARCHIVE_FORMAT_LHA, + ARCHIVE_FORMAT_CAB, + ARCHIVE_FORMAT_RAR, + ARCHIVE_FORMAT_7ZIP, + ARCHIVE_FORMAT_WARC, + ARCHIVE_FORMAT_RAR_V5, + }; + unsigned int i; + + for (i = 0; i < sizeof(format_codes) / sizeof(int); i++) { + format_code = format_codes[i]; + test_filter_or_format(format_code_enabler); + test_filter_or_format(format_code_setter); + } + test_filter_or_format(archive_read_support_filter_all); test_filter_or_format(archive_read_support_filter_bzip2); test_filter_or_format(archive_read_support_filter_compress); diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_archive_set_error.c b/dependencies/libarchive-3.5.2/libarchive/test/test_archive_set_error.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_archive_set_error.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_archive_set_error.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_archive_string.c b/dependencies/libarchive-3.5.2/libarchive/test/test_archive_string.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_archive_string.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_archive_string.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_archive_string_conversion.c b/dependencies/libarchive-3.5.2/libarchive/test/test_archive_string_conversion.c similarity index 90% rename from dependencies/libarchive-3.4.2/libarchive/test/test_archive_string_conversion.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_archive_string_conversion.c index e86f97c..fb5359b 100644 --- a/dependencies/libarchive-3.4.2/libarchive/test/test_archive_string_conversion.c +++ b/dependencies/libarchive-3.5.2/libarchive/test/test_archive_string_conversion.c @@ -445,7 +445,7 @@ test_archive_string_normalization_nfc(const char *testdata) assertEqualInt(0, archive_mstring_copy_wcs(&mstr, wc_nfc)); assertEqualInt(0, archive_mstring_get_mbs_l( - &mstr, &mp, &mplen, t_sconv8)); + a, &mstr, &mp, &mplen, t_sconv8)); failure("WCS NFC(%s) should be UTF-8 NFC:%d" ,nfc, line); assertEqualUTF8String(utf8_nfc, mp); @@ -695,7 +695,7 @@ test_archive_string_normalization_mac_nfd(const char *testdata) assertEqualInt(0, archive_mstring_copy_wcs( &mstr, wc_nfd)); assertEqualInt(0, archive_mstring_get_mbs_l( - &mstr, &mp, &mplen, t_sconv8)); + a, &mstr, &mp, &mplen, t_sconv8)); failure("WCS NFD(%s) should be UTF-8 NFD:%d" ,nfd, line); assertEqualUTF8String(utf8_nfd, mp); @@ -777,6 +777,80 @@ test_archive_string_canonicalization(void) } +static void +check_string(struct archive *a, struct archive_mstring *mstr, struct archive_string_conv *sc, + const char *exp, const wchar_t *wexp) +{ + /* Do all the tests on a copy so that we can have a clear initial state every time */ + struct archive_mstring mstr2; + const char *p = NULL; + const wchar_t *wp = NULL; + size_t len = 0; + + memset(&mstr2, 0, sizeof(mstr2)); + + archive_mstring_copy(&mstr2, mstr); + assertEqualInt(0, archive_mstring_get_mbs(a, &mstr2, &p)); + assertEqualString(exp, p); + p = NULL; + + archive_mstring_copy(&mstr2, mstr); + assertEqualInt(0, archive_mstring_get_utf8(a, &mstr2, &p)); + assertEqualString(exp, p); + p = NULL; + + archive_mstring_copy(&mstr2, mstr); + assertEqualInt(0, archive_mstring_get_wcs(a, &mstr2, &wp)); + assertEqualWString(wexp, wp); + wp = NULL; + + archive_mstring_copy(&mstr2, mstr); + assertEqualInt(0, archive_mstring_get_mbs_l(a, &mstr2, &p, &len, sc)); + assertEqualString(exp, p); + assertEqualInt(len, strlen(exp)); + p = NULL; + len = 0; + + archive_mstring_clean(&mstr2); +} + +/* + * Make sure no matter what the input encoding is, the string can be + * converted too all the output encodings. + */ +static void +test_archive_string_set_get(void) +{ + struct archive *a; + struct archive_mstring mstr; + struct archive_string_conv *sc; + + setlocale(LC_ALL, "en_US.UTF-8"); + + assert((a = archive_read_new()) != NULL); + memset(&mstr, 0, sizeof(mstr)); + + assertA(NULL != (sc = + archive_string_conversion_to_charset(a, "UTF-8", 1))); + failure("Charset name should be UTF-8"); + assertEqualString("UTF-8", + archive_string_conversion_charset_name(sc)); + + assertEqualInt(0, archive_mstring_copy_mbs(&mstr, "AAA")); + check_string(a, &mstr, sc, "AAA", L"AAA"); + assertEqualInt(4, archive_mstring_copy_utf8(&mstr, "BBBB")); + check_string(a, &mstr, sc, "BBBB", L"BBBB"); + assertEqualInt(0, archive_mstring_copy_wcs(&mstr, L"CCC12")); + check_string(a, &mstr, sc, "CCC12", L"CCC12"); + assertEqualInt(0, archive_mstring_copy_mbs_len_l(&mstr, "DDDD-l", 6, sc)); + check_string(a, &mstr, sc, "DDDD-l", L"DDDD-l"); + assertEqualInt(0, archive_mstring_update_utf8(a, &mstr, "EEEEE---H")); + check_string(a, &mstr, sc, "EEEEE---H", L"EEEEE---H"); + + assertEqualInt(ARCHIVE_OK, archive_read_free(a)); + +} + DEFINE_TEST(test_archive_string_conversion) { static const char reffile[] = "test_archive_string_conversion.txt.Z"; @@ -807,4 +881,5 @@ DEFINE_TEST(test_archive_string_conversion) test_archive_string_normalization_nfc(testdata); test_archive_string_normalization_mac_nfd(testdata); test_archive_string_canonicalization(); + test_archive_string_set_get(); } diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_archive_string_conversion.txt.Z.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_archive_string_conversion.txt.Z.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_archive_string_conversion.txt.Z.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_archive_string_conversion.txt.Z.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_archive_write_add_filter_by_name.c b/dependencies/libarchive-3.5.2/libarchive/test/test_archive_write_add_filter_by_name.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_archive_write_add_filter_by_name.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_archive_write_add_filter_by_name.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_archive_write_set_filter_option.c b/dependencies/libarchive-3.5.2/libarchive/test/test_archive_write_set_filter_option.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_archive_write_set_filter_option.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_archive_write_set_filter_option.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_archive_write_set_format_by_name.c b/dependencies/libarchive-3.5.2/libarchive/test/test_archive_write_set_format_by_name.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_archive_write_set_format_by_name.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_archive_write_set_format_by_name.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_archive_write_set_format_filter_by_ext.c b/dependencies/libarchive-3.5.2/libarchive/test/test_archive_write_set_format_filter_by_ext.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_archive_write_set_format_filter_by_ext.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_archive_write_set_format_filter_by_ext.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_archive_write_set_format_option.c b/dependencies/libarchive-3.5.2/libarchive/test/test_archive_write_set_format_option.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_archive_write_set_format_option.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_archive_write_set_format_option.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_archive_write_set_option.c b/dependencies/libarchive-3.5.2/libarchive/test/test_archive_write_set_option.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_archive_write_set_option.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_archive_write_set_option.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_archive_write_set_options.c b/dependencies/libarchive-3.5.2/libarchive/test/test_archive_write_set_options.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_archive_write_set_options.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_archive_write_set_options.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_archive_write_set_passphrase.c b/dependencies/libarchive-3.5.2/libarchive/test/test_archive_write_set_passphrase.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_archive_write_set_passphrase.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_archive_write_set_passphrase.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_bad_fd.c b/dependencies/libarchive-3.5.2/libarchive/test/test_bad_fd.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_bad_fd.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_bad_fd.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_bzip2.c b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_bzip2.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_compat_bzip2.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_compat_bzip2.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_bzip2_1.tbz.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_bzip2_1.tbz.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_compat_bzip2_1.tbz.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_compat_bzip2_1.tbz.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_bzip2_2.tbz.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_bzip2_2.tbz.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_compat_bzip2_2.tbz.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_compat_bzip2_2.tbz.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_cpio.c b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_cpio.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_compat_cpio.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_compat_cpio.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_cpio_1.cpio.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_cpio_1.cpio.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_compat_cpio_1.cpio.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_compat_cpio_1.cpio.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_gtar.c b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_gtar.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_compat_gtar.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_compat_gtar.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_gtar_1.tar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_gtar_1.tar.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_compat_gtar_1.tar.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_compat_gtar_1.tar.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_gtar_2.tar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_gtar_2.tar.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_compat_gtar_2.tar.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_compat_gtar_2.tar.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_gzip.c b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_gzip.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_compat_gzip.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_compat_gzip.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_gzip_1.tgz.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_gzip_1.tgz.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_compat_gzip_1.tgz.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_compat_gzip_1.tgz.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_gzip_2.tgz.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_gzip_2.tgz.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_compat_gzip_2.tgz.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_compat_gzip_2.tgz.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_lz4.c b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_lz4.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_compat_lz4.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_compat_lz4.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_lz4_1.tar.lz4.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_lz4_1.tar.lz4.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_compat_lz4_1.tar.lz4.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_compat_lz4_1.tar.lz4.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_lz4_2.tar.lz4.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_lz4_2.tar.lz4.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_compat_lz4_2.tar.lz4.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_compat_lz4_2.tar.lz4.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_lz4_3.tar.lz4.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_lz4_3.tar.lz4.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_compat_lz4_3.tar.lz4.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_compat_lz4_3.tar.lz4.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_lz4_B4.tar.lz4.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_lz4_B4.tar.lz4.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_compat_lz4_B4.tar.lz4.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_compat_lz4_B4.tar.lz4.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_lz4_B4BD.tar.lz4.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_lz4_B4BD.tar.lz4.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_compat_lz4_B4BD.tar.lz4.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_compat_lz4_B4BD.tar.lz4.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_lz4_B4BDBX.tar.lz4.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_lz4_B4BDBX.tar.lz4.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_compat_lz4_B4BDBX.tar.lz4.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_compat_lz4_B4BDBX.tar.lz4.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_lz4_B5.tar.lz4.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_lz4_B5.tar.lz4.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_compat_lz4_B5.tar.lz4.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_compat_lz4_B5.tar.lz4.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_lz4_B5BD.tar.lz4.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_lz4_B5BD.tar.lz4.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_compat_lz4_B5BD.tar.lz4.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_compat_lz4_B5BD.tar.lz4.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_lz4_B6.tar.lz4.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_lz4_B6.tar.lz4.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_compat_lz4_B6.tar.lz4.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_compat_lz4_B6.tar.lz4.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_lz4_B6BD.tar.lz4.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_lz4_B6BD.tar.lz4.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_compat_lz4_B6BD.tar.lz4.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_compat_lz4_B6BD.tar.lz4.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_lz4_B7.tar.lz4.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_lz4_B7.tar.lz4.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_compat_lz4_B7.tar.lz4.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_compat_lz4_B7.tar.lz4.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_lz4_B7BD.tar.lz4.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_lz4_B7BD.tar.lz4.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_compat_lz4_B7BD.tar.lz4.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_compat_lz4_B7BD.tar.lz4.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_lzip.c b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_lzip.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_compat_lzip.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_compat_lzip.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_lzip_1.tlz.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_lzip_1.tlz.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_compat_lzip_1.tlz.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_compat_lzip_1.tlz.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_lzip_2.tlz.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_lzip_2.tlz.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_compat_lzip_2.tlz.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_compat_lzip_2.tlz.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_lzma.c b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_lzma.c similarity index 98% rename from dependencies/libarchive-3.4.2/libarchive/test/test_compat_lzma.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_compat_lzma.c index 86a2665..7e6e3a8 100644 --- a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_lzma.c +++ b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_lzma.c @@ -141,7 +141,7 @@ compat_lzma(const char *name) DEFINE_TEST(test_compat_lzma) { - /* This sample has been added junk datas to its tail. */ + /* This sample has been added junk data to its tail. */ compat_lzma("test_compat_lzma_1.tlz"); /* This sample has been made by lzma with option -e, * the first byte of which is 0x5e. diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_lzma_1.tlz.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_lzma_1.tlz.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_compat_lzma_1.tlz.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_compat_lzma_1.tlz.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_lzma_2.tlz.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_lzma_2.tlz.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_compat_lzma_2.tlz.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_compat_lzma_2.tlz.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_lzma_3.tlz.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_lzma_3.tlz.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_compat_lzma_3.tlz.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_compat_lzma_3.tlz.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_lzop.c b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_lzop.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_compat_lzop.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_compat_lzop.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_lzop_1.tar.lzo.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_lzop_1.tar.lzo.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_compat_lzop_1.tar.lzo.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_compat_lzop_1.tar.lzo.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_lzop_2.tar.lzo.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_lzop_2.tar.lzo.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_compat_lzop_2.tar.lzo.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_compat_lzop_2.tar.lzo.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_lzop_3.tar.lzo.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_lzop_3.tar.lzo.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_compat_lzop_3.tar.lzo.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_compat_lzop_3.tar.lzo.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_mac-1.tar.Z.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_mac-1.tar.Z.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_compat_mac-1.tar.Z.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_compat_mac-1.tar.Z.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_mac-2.tar.Z.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_mac-2.tar.Z.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_compat_mac-2.tar.Z.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_compat_mac-2.tar.Z.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_mac.c b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_mac.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_compat_mac.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_compat_mac.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_perl_archive_tar.c b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_perl_archive_tar.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_compat_perl_archive_tar.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_compat_perl_archive_tar.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_perl_archive_tar.tar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_perl_archive_tar.tar.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_compat_perl_archive_tar.tar.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_compat_perl_archive_tar.tar.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_plexus_archiver_tar.c b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_plexus_archiver_tar.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_compat_plexus_archiver_tar.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_compat_plexus_archiver_tar.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_plexus_archiver_tar.tar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_plexus_archiver_tar.tar.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_compat_plexus_archiver_tar.tar.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_compat_plexus_archiver_tar.tar.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_solaris_pax_sparse.c b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_solaris_pax_sparse.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_compat_solaris_pax_sparse.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_compat_solaris_pax_sparse.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_solaris_pax_sparse_1.pax.Z.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_solaris_pax_sparse_1.pax.Z.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_compat_solaris_pax_sparse_1.pax.Z.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_compat_solaris_pax_sparse_1.pax.Z.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_solaris_pax_sparse_2.pax.Z.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_solaris_pax_sparse_2.pax.Z.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_compat_solaris_pax_sparse_2.pax.Z.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_compat_solaris_pax_sparse_2.pax.Z.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_solaris_tar_acl.c b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_solaris_tar_acl.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_compat_solaris_tar_acl.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_compat_solaris_tar_acl.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_solaris_tar_acl.tar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_solaris_tar_acl.tar.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_compat_solaris_tar_acl.tar.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_compat_solaris_tar_acl.tar.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_star_acl.c b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_star_acl.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_compat_star_acl.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_compat_star_acl.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_star_acl_nfs4.tar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_star_acl_nfs4.tar.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_compat_star_acl_nfs4.tar.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_compat_star_acl_nfs4.tar.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_star_acl_posix1e.tar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_star_acl_posix1e.tar.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_compat_star_acl_posix1e.tar.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_compat_star_acl_posix1e.tar.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_tar_hardlink.c b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_tar_hardlink.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_compat_tar_hardlink.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_compat_tar_hardlink.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_tar_hardlink_1.tar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_tar_hardlink_1.tar.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_compat_tar_hardlink_1.tar.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_compat_tar_hardlink_1.tar.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_uudecode.c b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_uudecode.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_compat_uudecode.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_compat_uudecode.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_uudecode_large.c b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_uudecode_large.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_compat_uudecode_large.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_compat_uudecode_large.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_uudecode_large.tar.Z.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_uudecode_large.tar.Z.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_compat_uudecode_large.tar.Z.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_compat_uudecode_large.tar.Z.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_xz.c b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_xz.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_compat_xz.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_compat_xz.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_xz_1.txz.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_xz_1.txz.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_compat_xz_1.txz.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_compat_xz_1.txz.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_zip.c b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_zip.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_compat_zip.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_compat_zip.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_zip_1.zip.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_zip_1.zip.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_compat_zip_1.zip.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_compat_zip_1.zip.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_zip_2.zip.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_zip_2.zip.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_compat_zip_2.zip.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_compat_zip_2.zip.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_zip_3.zip.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_zip_3.zip.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_compat_zip_3.zip.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_compat_zip_3.zip.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_zip_4.zip.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_zip_4.zip.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_compat_zip_4.zip.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_compat_zip_4.zip.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_zip_5.zip.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_zip_5.zip.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_compat_zip_5.zip.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_compat_zip_5.zip.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_zip_6.zip.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_zip_6.zip.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_compat_zip_6.zip.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_compat_zip_6.zip.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_zip_7.xps.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_zip_7.xps.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_compat_zip_7.xps.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_compat_zip_7.xps.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_zip_8.zip.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_zip_8.zip.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_compat_zip_8.zip.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_compat_zip_8.zip.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_zstd.c b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_zstd.c similarity index 97% rename from dependencies/libarchive-3.4.2/libarchive/test/test_compat_zstd.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_compat_zstd.c index 1d63a28..1347758 100644 --- a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_zstd.c +++ b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_zstd.c @@ -79,4 +79,7 @@ DEFINE_TEST(test_compat_zstd) /* This sample was compressed as 3 separate streams with a zstd skippable * frame placed in the middle */ compat_zstd("test_compat_zstd_1.tar.zst"); + + /* The same sample compressed with pzstd */ + compat_zstd("test_compat_zstd_2.tar.zst"); } diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_zstd_1.tar.zst.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_zstd_1.tar.zst.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_compat_zstd_1.tar.zst.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_compat_zstd_1.tar.zst.uu diff --git a/dependencies/libarchive-3.5.2/libarchive/test/test_compat_zstd_2.tar.zst.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_zstd_2.tar.zst.uu new file mode 100644 index 0000000..6c3636c --- /dev/null +++ b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_zstd_2.tar.zst.uu @@ -0,0 +1,8 @@ +begin 664 test_compat_zstd_2.tar.zst +M4"I-&`0```"J````*+4O_018[00`\L41%I`I!%(KMV]N7BR&@9(I29\:P8D9 +ML"GMK=GZS(ZZ!!ZT[%K7J3*`"W$0PR(Y((0".0A!DE`,:6K4D_ZNQG_J=DP. +M&<:1G$L?`/U!!?M`/3*@&,!$`:C[!RHC`TH`#!.`8O]`%61`!UAQ`E"Z#U1& +M!E0#@C0`=?Q`961`"<#N`;(9'$PC'ZA$`A16ZL#%$IP``!*"=UWAE$]@"$B5 +"Q>,` +` +end diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_empty_write.c b/dependencies/libarchive-3.5.2/libarchive/test/test_empty_write.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_empty_write.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_empty_write.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_entry.c b/dependencies/libarchive-3.5.2/libarchive/test/test_entry.c similarity index 86% rename from dependencies/libarchive-3.4.2/libarchive/test/test_entry.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_entry.c index 0cf13e8..f205764 100644 --- a/dependencies/libarchive-3.4.2/libarchive/test/test_entry.c +++ b/dependencies/libarchive-3.5.2/libarchive/test/test_entry.c @@ -177,31 +177,60 @@ DEFINE_TEST(test_entry) /* gname */ archive_entry_set_gname(e, "group"); assertEqualString(archive_entry_gname(e), "group"); + assertEqualString(archive_entry_gname_utf8(e), "group"); + assertEqualWString(archive_entry_gname_w(e), L"group"); wcscpy(wbuff, L"wgroup"); archive_entry_copy_gname_w(e, wbuff); assertEqualWString(archive_entry_gname_w(e), L"wgroup"); memset(wbuff, 0, sizeof(wbuff)); assertEqualWString(archive_entry_gname_w(e), L"wgroup"); + assertEqualString(archive_entry_gname_utf8(e), "wgroup"); + assertEqualString(archive_entry_gname(e), "wgroup"); + archive_entry_set_gname_utf8(e, "group"); + assertEqualString(archive_entry_gname_utf8(e), "group"); + assertEqualWString(archive_entry_gname_w(e), L"group"); + assertEqualString(archive_entry_gname(e), "group"); + archive_entry_update_gname_utf8(e, "group2"); + assertEqualString(archive_entry_gname_utf8(e), "group2"); + assertEqualWString(archive_entry_gname_w(e), L"group2"); + assertEqualString(archive_entry_gname(e), "group2"); /* hardlink */ archive_entry_set_hardlink(e, "hardlinkname"); assertEqualString(archive_entry_hardlink(e), "hardlinkname"); + assertEqualString(archive_entry_hardlink_utf8(e), "hardlinkname"); + assertEqualWString(archive_entry_hardlink_w(e), L"hardlinkname"); strcpy(buff, "hardlinkname2"); archive_entry_copy_hardlink(e, buff); assertEqualString(archive_entry_hardlink(e), "hardlinkname2"); + assertEqualWString(archive_entry_hardlink_w(e), L"hardlinkname2"); + assertEqualString(archive_entry_hardlink_utf8(e), "hardlinkname2"); memset(buff, 0, sizeof(buff)); assertEqualString(archive_entry_hardlink(e), "hardlinkname2"); + assertEqualString(archive_entry_hardlink_utf8(e), "hardlinkname2"); + assertEqualWString(archive_entry_hardlink_w(e), L"hardlinkname2"); archive_entry_copy_hardlink(e, NULL); assertEqualString(archive_entry_hardlink(e), NULL); assertEqualWString(archive_entry_hardlink_w(e), NULL); + assertEqualString(archive_entry_hardlink_utf8(e), NULL); wcscpy(wbuff, L"whardlink"); archive_entry_copy_hardlink_w(e, wbuff); assertEqualWString(archive_entry_hardlink_w(e), L"whardlink"); + assertEqualString(archive_entry_hardlink_utf8(e), "whardlink"); + assertEqualString(archive_entry_hardlink(e), "whardlink"); memset(wbuff, 0, sizeof(wbuff)); assertEqualWString(archive_entry_hardlink_w(e), L"whardlink"); archive_entry_copy_hardlink_w(e, NULL); assertEqualString(archive_entry_hardlink(e), NULL); assertEqualWString(archive_entry_hardlink_w(e), NULL); + archive_entry_set_hardlink_utf8(e, "hardlinkname"); + assertEqualString(archive_entry_hardlink_utf8(e), "hardlinkname"); + assertEqualWString(archive_entry_hardlink_w(e), L"hardlinkname"); + assertEqualString(archive_entry_hardlink(e), "hardlinkname"); + archive_entry_update_hardlink_utf8(e, "hardlinkname2"); + assertEqualString(archive_entry_hardlink_utf8(e), "hardlinkname2"); + assertEqualWString(archive_entry_hardlink_w(e), L"hardlinkname2"); + assertEqualString(archive_entry_hardlink(e), "hardlinkname2"); /* ino */ assert(!archive_entry_ino_is_set(e)); @@ -270,18 +299,38 @@ DEFINE_TEST(test_entry) /* pathname */ archive_entry_set_pathname(e, "path"); assertEqualString(archive_entry_pathname(e), "path"); + assertEqualString(archive_entry_pathname_utf8(e), "path"); + assertEqualWString(archive_entry_pathname_w(e), L"path"); archive_entry_set_pathname(e, "path"); assertEqualString(archive_entry_pathname(e), "path"); + assertEqualWString(archive_entry_pathname_w(e), L"path"); + assertEqualString(archive_entry_pathname_utf8(e), "path"); strcpy(buff, "path2"); archive_entry_copy_pathname(e, buff); assertEqualString(archive_entry_pathname(e), "path2"); + assertEqualWString(archive_entry_pathname_w(e), L"path2"); + assertEqualString(archive_entry_pathname_utf8(e), "path2"); memset(buff, 0, sizeof(buff)); assertEqualString(archive_entry_pathname(e), "path2"); + assertEqualString(archive_entry_pathname_utf8(e), "path2"); + assertEqualWString(archive_entry_pathname_w(e), L"path2"); wcscpy(wbuff, L"wpath"); archive_entry_copy_pathname_w(e, wbuff); assertEqualWString(archive_entry_pathname_w(e), L"wpath"); + assertEqualString(archive_entry_pathname_utf8(e), "wpath"); + assertEqualString(archive_entry_pathname(e), "wpath"); memset(wbuff, 0, sizeof(wbuff)); assertEqualWString(archive_entry_pathname_w(e), L"wpath"); + assertEqualString(archive_entry_pathname(e), "wpath"); + assertEqualString(archive_entry_pathname_utf8(e), "wpath"); + archive_entry_set_pathname_utf8(e, "path"); + assertEqualWString(archive_entry_pathname_w(e), L"path"); + assertEqualString(archive_entry_pathname(e), "path"); + assertEqualString(archive_entry_pathname_utf8(e), "path"); + archive_entry_update_pathname_utf8(e, "path2"); + assertEqualWString(archive_entry_pathname_w(e), L"path2"); + assertEqualString(archive_entry_pathname(e), "path2"); + assertEqualString(archive_entry_pathname_utf8(e), "path2"); /* rdev */ archive_entry_set_rdev(e, 532); @@ -302,19 +351,37 @@ DEFINE_TEST(test_entry) /* symlink */ archive_entry_set_symlink(e, "symlinkname"); assertEqualString(archive_entry_symlink(e), "symlinkname"); + assertEqualString(archive_entry_symlink_utf8(e), "symlinkname"); + assertEqualWString(archive_entry_symlink_w(e), L"symlinkname"); strcpy(buff, "symlinkname2"); archive_entry_copy_symlink(e, buff); assertEqualString(archive_entry_symlink(e), "symlinkname2"); + assertEqualWString(archive_entry_symlink_w(e), L"symlinkname2"); + assertEqualString(archive_entry_symlink_utf8(e), "symlinkname2"); memset(buff, 0, sizeof(buff)); assertEqualString(archive_entry_symlink(e), "symlinkname2"); + assertEqualString(archive_entry_symlink_utf8(e), "symlinkname2"); + assertEqualWString(archive_entry_symlink_w(e), L"symlinkname2"); archive_entry_copy_symlink_w(e, NULL); assertEqualWString(archive_entry_symlink_w(e), NULL); assertEqualString(archive_entry_symlink(e), NULL); + assertEqualString(archive_entry_symlink_utf8(e), NULL); archive_entry_copy_symlink_w(e, L"wsymlink"); assertEqualWString(archive_entry_symlink_w(e), L"wsymlink"); + assertEqualString(archive_entry_symlink_utf8(e), "wsymlink"); + assertEqualString(archive_entry_symlink(e), "wsymlink"); archive_entry_copy_symlink(e, NULL); assertEqualWString(archive_entry_symlink_w(e), NULL); assertEqualString(archive_entry_symlink(e), NULL); + assertEqualString(archive_entry_symlink_utf8(e), NULL); + archive_entry_set_symlink_utf8(e, "symlinkname"); + assertEqualWString(archive_entry_symlink_w(e), L"symlinkname"); + assertEqualString(archive_entry_symlink(e), "symlinkname"); + assertEqualString(archive_entry_symlink_utf8(e), "symlinkname"); + archive_entry_update_symlink_utf8(e, "symlinkname2"); + assertEqualWString(archive_entry_symlink_w(e), L"symlinkname2"); + assertEqualString(archive_entry_symlink(e), "symlinkname2"); + assertEqualString(archive_entry_symlink_utf8(e), "symlinkname2"); /* uid */ archive_entry_set_uid(e, 83); @@ -323,11 +390,27 @@ DEFINE_TEST(test_entry) /* uname */ archive_entry_set_uname(e, "user"); assertEqualString(archive_entry_uname(e), "user"); + assertEqualString(archive_entry_uname_utf8(e), "user"); + assertEqualWString(archive_entry_uname_w(e), L"user"); wcscpy(wbuff, L"wuser"); - archive_entry_copy_gname_w(e, wbuff); - assertEqualWString(archive_entry_gname_w(e), L"wuser"); + archive_entry_copy_uname_w(e, wbuff); + assertEqualWString(archive_entry_uname_w(e), L"wuser"); memset(wbuff, 0, sizeof(wbuff)); - assertEqualWString(archive_entry_gname_w(e), L"wuser"); + assertEqualWString(archive_entry_uname_w(e), L"wuser"); + assertEqualString(archive_entry_uname_utf8(e), "wuser"); + assertEqualString(archive_entry_uname(e), "wuser"); + archive_entry_set_uname_utf8(e, "user"); + assertEqualString(archive_entry_uname_utf8(e), "user"); + assertEqualWString(archive_entry_uname_w(e), L"user"); + assertEqualString(archive_entry_uname(e), "user"); + archive_entry_set_uname_utf8(e, "user"); + assertEqualWString(archive_entry_uname_w(e), L"user"); + assertEqualString(archive_entry_uname(e), "user"); + assertEqualString(archive_entry_uname_utf8(e), "user"); + archive_entry_update_uname_utf8(e, "user2"); + assertEqualWString(archive_entry_uname_w(e), L"user2"); + assertEqualString(archive_entry_uname(e), "user2"); + assertEqualString(archive_entry_uname_utf8(e), "user2"); /* Test fflags interface. */ archive_entry_set_fflags(e, 0x55, 0xAA); diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_entry_strmode.c b/dependencies/libarchive-3.5.2/libarchive/test/test_entry_strmode.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_entry_strmode.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_entry_strmode.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_extattr_freebsd.c b/dependencies/libarchive-3.5.2/libarchive/test/test_extattr_freebsd.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_extattr_freebsd.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_extattr_freebsd.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_filter_count.c b/dependencies/libarchive-3.5.2/libarchive/test/test_filter_count.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_filter_count.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_filter_count.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_fuzz.c b/dependencies/libarchive-3.5.2/libarchive/test/test_fuzz.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_fuzz.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_fuzz.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_fuzz.cab.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_fuzz.cab.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_fuzz.cab.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_fuzz.cab.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_fuzz.lzh.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_fuzz.lzh.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_fuzz.lzh.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_fuzz.lzh.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_fuzz_1.iso.Z.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_fuzz_1.iso.Z.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_fuzz_1.iso.Z.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_fuzz_1.iso.Z.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_gnutar_filename_encoding.c b/dependencies/libarchive-3.5.2/libarchive/test/test_gnutar_filename_encoding.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_gnutar_filename_encoding.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_gnutar_filename_encoding.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_link_resolver.c b/dependencies/libarchive-3.5.2/libarchive/test/test_link_resolver.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_link_resolver.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_link_resolver.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_open_failure.c b/dependencies/libarchive-3.5.2/libarchive/test/test_open_failure.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_open_failure.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_open_failure.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_open_fd.c b/dependencies/libarchive-3.5.2/libarchive/test/test_open_fd.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_open_fd.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_open_fd.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_open_file.c b/dependencies/libarchive-3.5.2/libarchive/test/test_open_file.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_open_file.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_open_file.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_open_filename.c b/dependencies/libarchive-3.5.2/libarchive/test/test_open_filename.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_open_filename.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_open_filename.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_pax_filename_encoding.c b/dependencies/libarchive-3.5.2/libarchive/test/test_pax_filename_encoding.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_pax_filename_encoding.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_pax_filename_encoding.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_pax_filename_encoding.tar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_pax_filename_encoding.tar.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_pax_filename_encoding.tar.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_pax_filename_encoding.tar.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_pax_xattr_header.c b/dependencies/libarchive-3.5.2/libarchive/test/test_pax_xattr_header.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_pax_xattr_header.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_pax_xattr_header.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_pax_xattr_header_all.tar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_pax_xattr_header_all.tar.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_pax_xattr_header_all.tar.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_pax_xattr_header_all.tar.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_pax_xattr_header_libarchive.tar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_pax_xattr_header_libarchive.tar.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_pax_xattr_header_libarchive.tar.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_pax_xattr_header_libarchive.tar.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_pax_xattr_header_schily.tar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_pax_xattr_header_schily.tar.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_pax_xattr_header_schily.tar.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_pax_xattr_header_schily.tar.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_rar_multivolume_multiple_files.part1.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_rar_multivolume_multiple_files.part1.rar.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_rar_multivolume_multiple_files.part1.rar.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_rar_multivolume_multiple_files.part1.rar.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_rar_multivolume_multiple_files.part2.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_rar_multivolume_multiple_files.part2.rar.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_rar_multivolume_multiple_files.part2.rar.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_rar_multivolume_multiple_files.part2.rar.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_rar_multivolume_multiple_files.part3.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_rar_multivolume_multiple_files.part3.rar.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_rar_multivolume_multiple_files.part3.rar.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_rar_multivolume_multiple_files.part3.rar.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_rar_multivolume_multiple_files.part4.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_rar_multivolume_multiple_files.part4.rar.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_rar_multivolume_multiple_files.part4.rar.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_rar_multivolume_multiple_files.part4.rar.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_rar_multivolume_multiple_files.part5.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_rar_multivolume_multiple_files.part5.rar.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_rar_multivolume_multiple_files.part5.rar.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_rar_multivolume_multiple_files.part5.rar.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_rar_multivolume_multiple_files.part6.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_rar_multivolume_multiple_files.part6.rar.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_rar_multivolume_multiple_files.part6.rar.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_rar_multivolume_multiple_files.part6.rar.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_rar_multivolume_single_file.part1.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_rar_multivolume_single_file.part1.rar.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_rar_multivolume_single_file.part1.rar.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_rar_multivolume_single_file.part1.rar.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_rar_multivolume_single_file.part2.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_rar_multivolume_single_file.part2.rar.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_rar_multivolume_single_file.part2.rar.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_rar_multivolume_single_file.part2.rar.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_rar_multivolume_single_file.part3.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_rar_multivolume_single_file.part3.rar.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_rar_multivolume_single_file.part3.rar.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_rar_multivolume_single_file.part3.rar.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_rar_multivolume_uncompressed_files.part01.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_rar_multivolume_uncompressed_files.part01.rar.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_rar_multivolume_uncompressed_files.part01.rar.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_rar_multivolume_uncompressed_files.part01.rar.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_rar_multivolume_uncompressed_files.part02.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_rar_multivolume_uncompressed_files.part02.rar.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_rar_multivolume_uncompressed_files.part02.rar.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_rar_multivolume_uncompressed_files.part02.rar.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_rar_multivolume_uncompressed_files.part03.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_rar_multivolume_uncompressed_files.part03.rar.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_rar_multivolume_uncompressed_files.part03.rar.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_rar_multivolume_uncompressed_files.part03.rar.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_rar_multivolume_uncompressed_files.part04.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_rar_multivolume_uncompressed_files.part04.rar.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_rar_multivolume_uncompressed_files.part04.rar.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_rar_multivolume_uncompressed_files.part04.rar.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_rar_multivolume_uncompressed_files.part05.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_rar_multivolume_uncompressed_files.part05.rar.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_rar_multivolume_uncompressed_files.part05.rar.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_rar_multivolume_uncompressed_files.part05.rar.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_rar_multivolume_uncompressed_files.part06.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_rar_multivolume_uncompressed_files.part06.rar.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_rar_multivolume_uncompressed_files.part06.rar.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_rar_multivolume_uncompressed_files.part06.rar.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_rar_multivolume_uncompressed_files.part07.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_rar_multivolume_uncompressed_files.part07.rar.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_rar_multivolume_uncompressed_files.part07.rar.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_rar_multivolume_uncompressed_files.part07.rar.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_rar_multivolume_uncompressed_files.part08.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_rar_multivolume_uncompressed_files.part08.rar.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_rar_multivolume_uncompressed_files.part08.rar.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_rar_multivolume_uncompressed_files.part08.rar.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_rar_multivolume_uncompressed_files.part09.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_rar_multivolume_uncompressed_files.part09.rar.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_rar_multivolume_uncompressed_files.part09.rar.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_rar_multivolume_uncompressed_files.part09.rar.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_rar_multivolume_uncompressed_files.part10.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_rar_multivolume_uncompressed_files.part10.rar.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_rar_multivolume_uncompressed_files.part10.rar.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_rar_multivolume_uncompressed_files.part10.rar.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_data_large.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_data_large.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_data_large.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_data_large.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_disk.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_disk.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_disk.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_disk.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_disk_directory_traversals.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_disk_directory_traversals.c similarity index 99% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_disk_directory_traversals.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_disk_directory_traversals.c index bbfe91a..bca3ce5 100644 --- a/dependencies/libarchive-3.4.2/libarchive/test/test_read_disk_directory_traversals.c +++ b/dependencies/libarchive-3.5.2/libarchive/test/test_read_disk_directory_traversals.c @@ -528,7 +528,7 @@ test_basic(void) */ /* Save current working directory. */ -#ifdef PATH_MAX +#if defined(PATH_MAX) && !defined(__GLIBC__) initial_cwd = getcwd(NULL, PATH_MAX);/* Solaris getcwd needs the size. */ #else initial_cwd = getcwd(NULL, 0); @@ -560,7 +560,7 @@ test_basic(void) failure( "Current working directory does not return to the initial" "directory"); -#ifdef PATH_MAX +#if defined(PATH_MAX) && !defined(__GLIBC__) cwd = getcwd(NULL, PATH_MAX);/* Solaris getcwd needs the size. */ #else cwd = getcwd(NULL, 0); @@ -1047,7 +1047,14 @@ test_restore_atime(void) size_t size; int64_t offset; int file_count; + const char *skip_test_restore_atime; + skip_test_restore_atime = getenv("SKIP_TEST_RESTORE_ATIME"); + if (skip_test_restore_atime != NULL) { + skipping("Skipping restore atime tests due to " + "SKIP_TEST_RESTORE_ATIME environment variable"); + return; + } if (!atimeIsUpdated()) { skipping("Can't test restoring atime on this filesystem"); return; @@ -1833,6 +1840,8 @@ test_parent(void) } assertChdir(".."); + assertChmod("lock", 0755); + assertChmod("lock/lock2", 0755); /* Destroy the disk object. */ assertEqualInt(ARCHIVE_OK, archive_read_free(a)); diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_disk_entry_from_file.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_disk_entry_from_file.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_disk_entry_from_file.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_disk_entry_from_file.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_extract.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_extract.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_extract.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_extract.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_file_nonexistent.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_file_nonexistent.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_file_nonexistent.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_file_nonexistent.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_filter_compress.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_filter_compress.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_filter_compress.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_filter_compress.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_filter_grzip.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_filter_grzip.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_filter_grzip.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_filter_grzip.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_filter_grzip.tar.grz.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_filter_grzip.tar.grz.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_filter_grzip.tar.grz.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_filter_grzip.tar.grz.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_filter_lrzip.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_filter_lrzip.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_filter_lrzip.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_filter_lrzip.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_filter_lrzip.tar.lrz.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_filter_lrzip.tar.lrz.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_filter_lrzip.tar.lrz.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_filter_lrzip.tar.lrz.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_filter_lzop.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_filter_lzop.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_filter_lzop.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_filter_lzop.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_filter_lzop.tar.lzo.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_filter_lzop.tar.lzo.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_filter_lzop.tar.lzo.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_filter_lzop.tar.lzo.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_filter_lzop_multiple_parts.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_filter_lzop_multiple_parts.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_filter_lzop_multiple_parts.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_filter_lzop_multiple_parts.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_filter_lzop_multiple_parts.tar.lzo.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_filter_lzop_multiple_parts.tar.lzo.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_filter_lzop_multiple_parts.tar.lzo.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_filter_lzop_multiple_parts.tar.lzo.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_filter_program.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_filter_program.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_filter_program.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_filter_program.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_filter_program_signature.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_filter_program_signature.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_filter_program_signature.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_filter_program_signature.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_filter_uudecode.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_filter_uudecode.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_filter_uudecode.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_filter_uudecode.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_bcj2_bzip2.7z.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_bcj2_bzip2.7z.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_bcj2_bzip2.7z.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_bcj2_bzip2.7z.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_bcj2_copy_1.7z.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_bcj2_copy_1.7z.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_bcj2_copy_1.7z.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_bcj2_copy_1.7z.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_bcj2_copy_2.7z.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_bcj2_copy_2.7z.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_bcj2_copy_2.7z.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_bcj2_copy_2.7z.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_bcj2_copy_lzma.7z.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_bcj2_copy_lzma.7z.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_bcj2_copy_lzma.7z.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_bcj2_copy_lzma.7z.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_bcj2_deflate.7z.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_bcj2_deflate.7z.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_bcj2_deflate.7z.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_bcj2_deflate.7z.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_bcj2_lzma1_1.7z.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_bcj2_lzma1_1.7z.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_bcj2_lzma1_1.7z.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_bcj2_lzma1_1.7z.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_bcj2_lzma1_2.7z.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_bcj2_lzma1_2.7z.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_bcj2_lzma1_2.7z.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_bcj2_lzma1_2.7z.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_bcj2_lzma2_1.7z.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_bcj2_lzma2_1.7z.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_bcj2_lzma2_1.7z.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_bcj2_lzma2_1.7z.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_bcj2_lzma2_2.7z.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_bcj2_lzma2_2.7z.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_bcj2_lzma2_2.7z.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_bcj2_lzma2_2.7z.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_bcj_bzip2.7z.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_bcj_bzip2.7z.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_bcj_bzip2.7z.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_bcj_bzip2.7z.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_bcj_copy.7z.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_bcj_copy.7z.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_bcj_copy.7z.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_bcj_copy.7z.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_bcj_deflate.7z.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_bcj_deflate.7z.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_bcj_deflate.7z.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_bcj_deflate.7z.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_bcj_lzma1.7z.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_bcj_lzma1.7z.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_bcj_lzma1.7z.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_bcj_lzma1.7z.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_bcj_lzma2.7z.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_bcj_lzma2.7z.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_bcj_lzma2.7z.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_bcj_lzma2.7z.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_bzip2.7z.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_bzip2.7z.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_bzip2.7z.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_bzip2.7z.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_copy.7z.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_copy.7z.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_copy.7z.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_copy.7z.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_copy_2.7z.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_copy_2.7z.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_copy_2.7z.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_copy_2.7z.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_deflate.7z.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_deflate.7z.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_deflate.7z.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_deflate.7z.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_delta4_lzma1.7z.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_delta4_lzma1.7z.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_delta4_lzma1.7z.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_delta4_lzma1.7z.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_delta4_lzma2.7z.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_delta4_lzma2.7z.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_delta4_lzma2.7z.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_delta4_lzma2.7z.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_delta_lzma1.7z.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_delta_lzma1.7z.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_delta_lzma1.7z.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_delta_lzma1.7z.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_delta_lzma2.7z.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_delta_lzma2.7z.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_delta_lzma2.7z.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_delta_lzma2.7z.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_empty_archive.7z.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_empty_archive.7z.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_empty_archive.7z.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_empty_archive.7z.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_empty_file.7z.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_empty_file.7z.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_empty_file.7z.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_empty_file.7z.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_encryption.7z.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_encryption.7z.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_encryption.7z.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_encryption.7z.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_encryption_data.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_encryption_data.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_encryption_data.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_encryption_data.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_encryption_header.7z.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_encryption_header.7z.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_encryption_header.7z.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_encryption_header.7z.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_encryption_header.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_encryption_header.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_encryption_header.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_encryption_header.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_encryption_partially.7z.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_encryption_partially.7z.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_encryption_partially.7z.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_encryption_partially.7z.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_encryption_partially.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_encryption_partially.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_encryption_partially.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_encryption_partially.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_lzma1.7z.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_lzma1.7z.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_lzma1.7z.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_lzma1.7z.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_lzma1_2.7z.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_lzma1_2.7z.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_lzma1_2.7z.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_lzma1_2.7z.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_lzma1_lzma2.7z.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_lzma1_lzma2.7z.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_lzma1_lzma2.7z.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_lzma1_lzma2.7z.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_lzma2.7z.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_lzma2.7z.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_lzma2.7z.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_lzma2.7z.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_malformed.7z.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_malformed.7z.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_malformed.7z.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_malformed.7z.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_malformed.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_malformed.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_malformed.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_malformed.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_malformed2.7z.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_malformed2.7z.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_malformed2.7z.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_malformed2.7z.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_packinfo_digests.7z.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_packinfo_digests.7z.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_packinfo_digests.7z.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_packinfo_digests.7z.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_packinfo_digests.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_packinfo_digests.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_packinfo_digests.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_packinfo_digests.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_ppmd.7z.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_ppmd.7z.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_ppmd.7z.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_ppmd.7z.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_symbolic_name.7z.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_symbolic_name.7z.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_symbolic_name.7z.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_symbolic_name.7z.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_ar.ar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_ar.ar.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_ar.ar.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_ar.ar.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_ar.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_ar.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_ar.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_ar.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_cab.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_cab.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_cab.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_cab.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_cab_1.cab.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_cab_1.cab.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_cab_1.cab.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_cab_1.cab.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_cab_2.cab.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_cab_2.cab.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_cab_2.cab.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_cab_2.cab.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_cab_3.cab.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_cab_3.cab.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_cab_3.cab.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_cab_3.cab.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_cab_filename.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_cab_filename.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_cab_filename.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_cab_filename.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_cab_filename_cp932.cab.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_cab_filename_cp932.cab.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_cab_filename_cp932.cab.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_cab_filename_cp932.cab.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_cpio_afio.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_cpio_afio.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_cpio_afio.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_cpio_afio.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_cpio_bin.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_cpio_bin.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_cpio_bin.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_cpio_bin.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_cpio_bin_Z.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_cpio_bin_Z.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_cpio_bin_Z.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_cpio_bin_Z.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_cpio_bin_be.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_cpio_bin_be.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_cpio_bin_be.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_cpio_bin_be.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_cpio_bin_be.cpio.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_cpio_bin_be.cpio.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_cpio_bin_be.cpio.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_cpio_bin_be.cpio.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_cpio_bin_bz2.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_cpio_bin_bz2.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_cpio_bin_bz2.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_cpio_bin_bz2.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_cpio_bin_gz.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_cpio_bin_gz.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_cpio_bin_gz.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_cpio_bin_gz.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_cpio_bin_le.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_cpio_bin_le.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_cpio_bin_le.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_cpio_bin_le.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_cpio_bin_le.cpio.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_cpio_bin_le.cpio.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_cpio_bin_le.cpio.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_cpio_bin_le.cpio.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_cpio_bin_lzip.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_cpio_bin_lzip.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_cpio_bin_lzip.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_cpio_bin_lzip.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_cpio_bin_lzma.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_cpio_bin_lzma.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_cpio_bin_lzma.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_cpio_bin_lzma.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_cpio_bin_xz.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_cpio_bin_xz.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_cpio_bin_xz.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_cpio_bin_xz.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_cpio_filename.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_cpio_filename.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_cpio_filename.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_cpio_filename.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_cpio_filename_cp866.cpio.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_cpio_filename_cp866.cpio.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_cpio_filename_cp866.cpio.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_cpio_filename_cp866.cpio.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_cpio_filename_eucjp.cpio.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_cpio_filename_eucjp.cpio.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_cpio_filename_eucjp.cpio.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_cpio_filename_eucjp.cpio.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_cpio_filename_koi8r.cpio.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_cpio_filename_koi8r.cpio.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_cpio_filename_koi8r.cpio.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_cpio_filename_koi8r.cpio.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_cpio_filename_utf8_jp.cpio.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_cpio_filename_utf8_jp.cpio.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_cpio_filename_utf8_jp.cpio.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_cpio_filename_utf8_jp.cpio.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_cpio_filename_utf8_ru.cpio.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_cpio_filename_utf8_ru.cpio.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_cpio_filename_utf8_ru.cpio.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_cpio_filename_utf8_ru.cpio.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_cpio_odc.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_cpio_odc.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_cpio_odc.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_cpio_odc.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_cpio_svr4_bzip2_rpm.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_cpio_svr4_bzip2_rpm.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_cpio_svr4_bzip2_rpm.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_cpio_svr4_bzip2_rpm.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_cpio_svr4_bzip2_rpm.rpm.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_cpio_svr4_bzip2_rpm.rpm.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_cpio_svr4_bzip2_rpm.rpm.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_cpio_svr4_bzip2_rpm.rpm.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_cpio_svr4_gzip.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_cpio_svr4_gzip.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_cpio_svr4_gzip.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_cpio_svr4_gzip.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_cpio_svr4_gzip_rpm.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_cpio_svr4_gzip_rpm.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_cpio_svr4_gzip_rpm.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_cpio_svr4_gzip_rpm.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_cpio_svr4_gzip_rpm.rpm.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_cpio_svr4_gzip_rpm.rpm.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_cpio_svr4_gzip_rpm.rpm.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_cpio_svr4_gzip_rpm.rpm.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_cpio_svr4c_Z.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_cpio_svr4c_Z.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_cpio_svr4c_Z.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_cpio_svr4c_Z.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_empty.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_empty.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_empty.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_empty.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_gtar_filename.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_gtar_filename.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_gtar_filename.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_gtar_filename.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_gtar_filename_cp866.tar.Z.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_gtar_filename_cp866.tar.Z.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_gtar_filename_cp866.tar.Z.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_gtar_filename_cp866.tar.Z.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_gtar_filename_eucjp.tar.Z.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_gtar_filename_eucjp.tar.Z.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_gtar_filename_eucjp.tar.Z.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_gtar_filename_eucjp.tar.Z.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_gtar_filename_koi8r.tar.Z.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_gtar_filename_koi8r.tar.Z.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_gtar_filename_koi8r.tar.Z.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_gtar_filename_koi8r.tar.Z.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_gtar_gz.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_gtar_gz.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_gtar_gz.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_gtar_gz.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_gtar_lzma.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_gtar_lzma.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_gtar_lzma.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_gtar_lzma.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_gtar_sparse.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_gtar_sparse.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_gtar_sparse.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_gtar_sparse.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_gtar_sparse_1_13.tar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_gtar_sparse_1_13.tar.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_gtar_sparse_1_13.tar.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_gtar_sparse_1_13.tar.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_gtar_sparse_1_17.tar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_gtar_sparse_1_17.tar.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_gtar_sparse_1_17.tar.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_gtar_sparse_1_17.tar.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_gtar_sparse_1_17_posix00.tar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_gtar_sparse_1_17_posix00.tar.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_gtar_sparse_1_17_posix00.tar.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_gtar_sparse_1_17_posix00.tar.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_gtar_sparse_1_17_posix01.tar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_gtar_sparse_1_17_posix01.tar.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_gtar_sparse_1_17_posix01.tar.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_gtar_sparse_1_17_posix01.tar.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_gtar_sparse_1_17_posix10.tar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_gtar_sparse_1_17_posix10.tar.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_gtar_sparse_1_17_posix10.tar.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_gtar_sparse_1_17_posix10.tar.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_gtar_sparse_1_17_posix10_modified.tar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_gtar_sparse_1_17_posix10_modified.tar.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_gtar_sparse_1_17_posix10_modified.tar.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_gtar_sparse_1_17_posix10_modified.tar.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_gtar_sparse_skip_entry.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_gtar_sparse_skip_entry.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_gtar_sparse_skip_entry.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_gtar_sparse_skip_entry.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_gtar_sparse_skip_entry.tar.Z.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_gtar_sparse_skip_entry.tar.Z.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_gtar_sparse_skip_entry.tar.Z.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_gtar_sparse_skip_entry.tar.Z.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_iso.iso.Z.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_iso.iso.Z.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_iso.iso.Z.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_iso.iso.Z.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_iso_2.iso.Z.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_iso_2.iso.Z.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_iso_2.iso.Z.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_iso_2.iso.Z.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_iso_Z.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_iso_Z.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_iso_Z.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_iso_Z.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_iso_joliet.iso.Z.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_iso_joliet.iso.Z.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_iso_joliet.iso.Z.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_iso_joliet.iso.Z.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_iso_joliet_by_nero.iso.Z.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_iso_joliet_by_nero.iso.Z.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_iso_joliet_by_nero.iso.Z.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_iso_joliet_by_nero.iso.Z.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_iso_joliet_long.iso.Z.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_iso_joliet_long.iso.Z.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_iso_joliet_long.iso.Z.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_iso_joliet_long.iso.Z.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_iso_joliet_rockridge.iso.Z.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_iso_joliet_rockridge.iso.Z.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_iso_joliet_rockridge.iso.Z.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_iso_joliet_rockridge.iso.Z.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_iso_multi_extent.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_iso_multi_extent.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_iso_multi_extent.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_iso_multi_extent.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_iso_multi_extent.iso.Z.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_iso_multi_extent.iso.Z.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_iso_multi_extent.iso.Z.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_iso_multi_extent.iso.Z.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_iso_rockridge.iso.Z.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_iso_rockridge.iso.Z.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_iso_rockridge.iso.Z.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_iso_rockridge.iso.Z.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_iso_rockridge_ce.iso.Z.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_iso_rockridge_ce.iso.Z.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_iso_rockridge_ce.iso.Z.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_iso_rockridge_ce.iso.Z.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_iso_rockridge_new.iso.Z.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_iso_rockridge_new.iso.Z.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_iso_rockridge_new.iso.Z.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_iso_rockridge_new.iso.Z.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_iso_rockridge_rr_moved.iso.Z.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_iso_rockridge_rr_moved.iso.Z.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_iso_rockridge_rr_moved.iso.Z.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_iso_rockridge_rr_moved.iso.Z.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_iso_xorriso.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_iso_xorriso.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_iso_xorriso.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_iso_xorriso.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_iso_xorriso.iso.Z.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_iso_xorriso.iso.Z.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_iso_xorriso.iso.Z.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_iso_xorriso.iso.Z.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_iso_zisofs.iso.Z.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_iso_zisofs.iso.Z.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_iso_zisofs.iso.Z.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_iso_zisofs.iso.Z.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_isojoliet_bz2.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_isojoliet_bz2.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_isojoliet_bz2.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_isojoliet_bz2.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_isojoliet_long.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_isojoliet_long.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_isojoliet_long.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_isojoliet_long.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_isojoliet_rr.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_isojoliet_rr.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_isojoliet_rr.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_isojoliet_rr.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_isojoliet_versioned.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_isojoliet_versioned.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_isojoliet_versioned.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_isojoliet_versioned.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_isorr_bz2.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_isorr_bz2.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_isorr_bz2.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_isorr_bz2.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_isorr_ce.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_isorr_ce.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_isorr_ce.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_isorr_ce.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_isorr_new_bz2.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_isorr_new_bz2.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_isorr_new_bz2.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_isorr_new_bz2.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_isorr_rr_moved.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_isorr_rr_moved.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_isorr_rr_moved.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_isorr_rr_moved.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_isozisofs_bz2.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_isozisofs_bz2.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_isozisofs_bz2.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_isozisofs_bz2.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_lha.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_lha.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_lha.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_lha.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_lha_bugfix_0.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_lha_bugfix_0.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_lha_bugfix_0.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_lha_bugfix_0.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_lha_bugfix_0.lzh.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_lha_bugfix_0.lzh.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_lha_bugfix_0.lzh.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_lha_bugfix_0.lzh.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_lha_filename.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_lha_filename.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_lha_filename.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_lha_filename.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_lha_filename_cp932.lzh.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_lha_filename_cp932.lzh.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_lha_filename_cp932.lzh.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_lha_filename_cp932.lzh.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_lha_filename_utf16.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_lha_filename_utf16.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_lha_filename_utf16.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_lha_filename_utf16.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_lha_filename_utf16.lzh.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_lha_filename_utf16.lzh.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_lha_filename_utf16.lzh.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_lha_filename_utf16.lzh.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_lha_header0.lzh.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_lha_header0.lzh.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_lha_header0.lzh.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_lha_header0.lzh.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_lha_header1.lzh.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_lha_header1.lzh.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_lha_header1.lzh.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_lha_header1.lzh.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_lha_header2.lzh.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_lha_header2.lzh.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_lha_header2.lzh.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_lha_header2.lzh.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_lha_header3.lzh.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_lha_header3.lzh.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_lha_header3.lzh.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_lha_header3.lzh.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_lha_lh0.lzh.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_lha_lh0.lzh.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_lha_lh0.lzh.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_lha_lh0.lzh.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_lha_lh6.lzh.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_lha_lh6.lzh.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_lha_lh6.lzh.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_lha_lh6.lzh.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_lha_lh7.lzh.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_lha_lh7.lzh.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_lha_lh7.lzh.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_lha_lh7.lzh.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_lha_withjunk.lzh.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_lha_withjunk.lzh.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_lha_withjunk.lzh.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_lha_withjunk.lzh.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_mtree.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_mtree.c similarity index 90% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_mtree.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_mtree.c index df6f6cd..41d3257 100644 --- a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_mtree.c +++ b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_mtree.c @@ -196,8 +196,80 @@ test_read_format_mtree1(void) assertEqualInt(archive_entry_is_encrypted(ae), 0); assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED); + /* md5digest */ + assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae)); + assertEqualString(archive_entry_pathname(ae), "dir2/md5file"); + assertEqualMem(archive_entry_digest(ae, ARCHIVE_ENTRY_DIGEST_MD5), + "\xd4\x1d\x8c\xd9\x8f\x00\xb2\x04\xe9\x80\x09\x98\xec\xf8\x42\x7e", + 16); + + /* rmd160digest */ + assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae)); + assertEqualString(archive_entry_pathname(ae), "dir2/rmd160file"); + assertEqualMem(archive_entry_digest(ae, ARCHIVE_ENTRY_DIGEST_RMD160), + "\xda\x39\xa3\xee\x5e\x6b\x4b\x0d\x32\x55\xbf\xef\x95\x60\x18\x90" + "\xaf\xd8\x07\x09", 20); + + /* sha1digest */ + assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae)); + assertEqualString(archive_entry_pathname(ae), "dir2/sha1file"); + assertEqualMem(archive_entry_digest(ae, ARCHIVE_ENTRY_DIGEST_SHA1), + "\xda\x39\xa3\xee\x5e\x6b\x4b\x0d\x32\x55\xbf\xef\x95\x60\x18\x90" + "\xaf\xd8\x07\x09", 20); + + /* sha256digest */ + assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae)); + assertEqualString(archive_entry_pathname(ae), "dir2/sha256file"); + assertEqualMem(archive_entry_digest(ae, ARCHIVE_ENTRY_DIGEST_SHA256), + "\xe3\xb0\xc4\x42\x98\xfc\x1c\x14\x9a\xfb\xf4\xc8\x99\x6f\xb9\x24" + "\x27\xae\x41\xe4\x64\x9b\x93\x4c\xa4\x95\x99\x1b\x78\x52\xb8\x55", + 32); + + /* sha384digest */ + assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae)); + assertEqualString(archive_entry_pathname(ae), "dir2/sha384file"); + assertEqualMem(archive_entry_digest(ae, ARCHIVE_ENTRY_DIGEST_SHA384), + "\x38\xb0\x60\xa7\x51\xac\x96\x38\x4c\xd9\x32\x7e\xb1\xb1\xe3\x6a" + "\x21\xfd\xb7\x11\x14\xbe\x07\x43\x4c\x0c\xc7\xbf\x63\xf6\xe1\xda" + "\x27\x4e\xde\xbf\xe7\x6f\x65\xfb\xd5\x1a\xd2\xf1\x48\x98\xb9\x5b", + 48); + + /* sha512digest */ + assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae)); + assertEqualString(archive_entry_pathname(ae), "dir2/sha512file"); + assertEqualMem(archive_entry_digest(ae, ARCHIVE_ENTRY_DIGEST_SHA512), + "\xcf\x83\xe1\x35\x7e\xef\xb8\xbd\xf1\x54\x28\x50\xd6\x6d\x80\x07" + "\xd6\x20\xe4\x05\x0b\x57\x15\xdc\x83\xf4\xa9\x21\xd3\x6c\xe9\xce" + "\x47\xd0\xd1\x3c\x5d\x85\xf2\xb0\xff\x83\x18\xd2\x87\x7e\xec\x2f" + "\x63\xb9\x31\xbd\x47\x41\x7a\x81\xa5\x38\x32\x7a\xf9\x27\xda\x3e", + 64); + + /* md5 digest is too short */ + assertEqualIntA(a, ARCHIVE_WARN, archive_read_next_header(a, &ae)); + assertEqualString(archive_entry_pathname(ae), "dir2/md5tooshort"); + assertMemoryFilledWith(archive_entry_digest(ae, ARCHIVE_ENTRY_DIGEST_MD5), + 16, 0x00); + + /* md5 digest is too long */ + assertEqualIntA(a, ARCHIVE_WARN, archive_read_next_header(a, &ae)); + assertEqualString(archive_entry_pathname(ae), "dir2/md5toolong"); + assertMemoryFilledWith(archive_entry_digest(ae, ARCHIVE_ENTRY_DIGEST_MD5), + 16, 0x00); + + /* md5 digest is uppercase hex */ + assertEqualIntA(a, ARCHIVE_WARN, archive_read_next_header(a, &ae)); + assertEqualString(archive_entry_pathname(ae), "dir2/md5caphex"); + assertMemoryFilledWith(archive_entry_digest(ae, ARCHIVE_ENTRY_DIGEST_MD5), + 16, 0x00); + + /* md5 digest is not hex */ + assertEqualIntA(a, ARCHIVE_WARN, archive_read_next_header(a, &ae)); + assertEqualString(archive_entry_pathname(ae), "dir2/md5nothex"); + assertMemoryFilledWith(archive_entry_digest(ae, ARCHIVE_ENTRY_DIGEST_MD5), + 16, 0x00); + assertEqualIntA(a, ARCHIVE_EOF, archive_read_next_header(a, &ae)); - assertEqualInt(20, archive_file_count(a)); + assertEqualInt(30, archive_file_count(a)); assertEqualInt(ARCHIVE_OK, archive_read_close(a)); assertEqualInt(ARCHIVE_OK, archive_read_free(a)); } diff --git a/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_mtree.mtree.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_mtree.mtree.uu new file mode 100644 index 0000000..7bfb252 --- /dev/null +++ b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_mtree.mtree.uu @@ -0,0 +1,40 @@ +begin 644 test_read_format_mtree.mtree +M(VUT7!E/61I<@H@9FEL95PP-#!W:71H7#`T,'-P86-E('1Y<&4]9FEL +M92!U:60],3@*("XN"F9I;&5<,#0P=VET:%PP-#!S<&%C92!T>7!E/69I;&4* +M9&ER,B!T>7!E/61I<@H@9&ER,V$@='EP93UD:7(*("!I;F1I7!E/61I<@H@(&EN9&ER,V(@ +M='EP93UF:6QE"B`@9FEL96YA;65<7'=I=&A<"E]E7!E/69I +M;&4@F4]+3$*9&ER,B]B:6=F:6QE('1Y +M<&4]9FEL92!S:7IE/3DR,C,S-S(P,S8X-30W-S4X,#<*9&ER,B]T;V]B:6=F +M:6QE('1Y<&4]9FEL92!S:7IE/3DR,C,S-S(P,S8X-30W-S4X,#@*9&ER,B]V +M97)Y;VQD9FEL92!T>7!E/69I;&4@=&EM93TM.3(R,S,W,C`S-C@U-#7!E/69I;&4@"!T>7!E/69I;&4@ +K;60U9&EG97-T/7$T,60X8V0Y.&8P,&(R,#1E.3@P,#DY.&5C9C@T,C=E"@`` +` +end diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_mtree_crash747.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_mtree_crash747.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_mtree_crash747.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_mtree_crash747.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_mtree_crash747.mtree.bz2.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_mtree_crash747.mtree.bz2.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_mtree_crash747.mtree.bz2.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_mtree_crash747.mtree.bz2.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_mtree_nomagic.mtree.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_mtree_nomagic.mtree.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_mtree_nomagic.mtree.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_mtree_nomagic.mtree.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_mtree_nomagic2.mtree.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_mtree_nomagic2.mtree.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_mtree_nomagic2.mtree.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_mtree_nomagic2.mtree.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_mtree_nomagic3.mtree.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_mtree_nomagic3.mtree.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_mtree_nomagic3.mtree.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_mtree_nomagic3.mtree.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_mtree_noprint.mtree.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_mtree_noprint.mtree.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_mtree_noprint.mtree.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_mtree_noprint.mtree.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_pax_bz2.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_pax_bz2.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_pax_bz2.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_pax_bz2.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar.rar.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar.rar.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar.rar.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_arm.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_arm.rar.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_arm.rar.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_arm.rar.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_arm_filter_on_window_boundary.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_arm_filter_on_window_boundary.rar.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_arm_filter_on_window_boundary.rar.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_arm_filter_on_window_boundary.rar.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_blake2.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_blake2.rar.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_blake2.rar.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_blake2.rar.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_block_size_is_too_small.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_block_size_is_too_small.rar.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_block_size_is_too_small.rar.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_block_size_is_too_small.rar.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_compressed.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_compressed.rar.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_compressed.rar.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_compressed.rar.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_different_solid_window_size.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_different_solid_window_size.rar.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_different_solid_window_size.rar.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_different_solid_window_size.rar.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_different_window_size.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_different_window_size.rar.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_different_window_size.rar.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_different_window_size.rar.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_different_winsize_on_merge.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_different_winsize_on_merge.rar.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_different_winsize_on_merge.rar.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_different_winsize_on_merge.rar.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_distance_overflow.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_distance_overflow.rar.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_distance_overflow.rar.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_distance_overflow.rar.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_extra_field_version.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_extra_field_version.rar.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_extra_field_version.rar.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_extra_field_version.rar.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_fileattr.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_fileattr.rar.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_fileattr.rar.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_fileattr.rar.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_hardlink.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_hardlink.rar.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_hardlink.rar.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_hardlink.rar.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_invalid_dict_reference.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_invalid_dict_reference.rar.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_invalid_dict_reference.rar.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_invalid_dict_reference.rar.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_leftshift1.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_leftshift1.rar.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_leftshift1.rar.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_leftshift1.rar.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_leftshift2.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_leftshift2.rar.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_leftshift2.rar.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_leftshift2.rar.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_multiarchive.part01.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_multiarchive.part01.rar.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_multiarchive.part01.rar.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_multiarchive.part01.rar.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_multiarchive.part02.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_multiarchive.part02.rar.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_multiarchive.part02.rar.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_multiarchive.part02.rar.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_multiarchive.part03.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_multiarchive.part03.rar.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_multiarchive.part03.rar.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_multiarchive.part03.rar.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_multiarchive.part04.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_multiarchive.part04.rar.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_multiarchive.part04.rar.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_multiarchive.part04.rar.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_multiarchive.part05.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_multiarchive.part05.rar.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_multiarchive.part05.rar.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_multiarchive.part05.rar.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_multiarchive.part06.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_multiarchive.part06.rar.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_multiarchive.part06.rar.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_multiarchive.part06.rar.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_multiarchive.part07.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_multiarchive.part07.rar.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_multiarchive.part07.rar.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_multiarchive.part07.rar.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_multiarchive.part08.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_multiarchive.part08.rar.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_multiarchive.part08.rar.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_multiarchive.part08.rar.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_multiarchive_solid.part01.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_multiarchive_solid.part01.rar.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_multiarchive_solid.part01.rar.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_multiarchive_solid.part01.rar.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_multiarchive_solid.part02.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_multiarchive_solid.part02.rar.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_multiarchive_solid.part02.rar.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_multiarchive_solid.part02.rar.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_multiarchive_solid.part03.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_multiarchive_solid.part03.rar.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_multiarchive_solid.part03.rar.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_multiarchive_solid.part03.rar.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_multiarchive_solid.part04.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_multiarchive_solid.part04.rar.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_multiarchive_solid.part04.rar.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_multiarchive_solid.part04.rar.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_multiple_files.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_multiple_files.rar.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_multiple_files.rar.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_multiple_files.rar.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_multiple_files_solid.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_multiple_files_solid.rar.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_multiple_files_solid.rar.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_multiple_files_solid.rar.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_nonempty_dir_stream.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_nonempty_dir_stream.rar.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_nonempty_dir_stream.rar.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_nonempty_dir_stream.rar.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_owner.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_owner.rar.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_owner.rar.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_owner.rar.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_readtables_overflow.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_readtables_overflow.rar.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_readtables_overflow.rar.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_readtables_overflow.rar.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_solid.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_solid.rar.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_solid.rar.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_solid.rar.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_stored.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_stored.rar.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_stored.rar.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_stored.rar.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_stored_manyfiles.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_stored_manyfiles.rar.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_stored_manyfiles.rar.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_stored_manyfiles.rar.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_symlink.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_symlink.rar.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_symlink.rar.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_symlink.rar.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_truncated_huff.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_truncated_huff.rar.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_truncated_huff.rar.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_truncated_huff.rar.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_win32.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_win32.rar.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_win32.rar.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_win32.rar.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar_binary_data.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar_binary_data.rar.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar_binary_data.rar.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar_binary_data.rar.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar_compress_best.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar_compress_best.rar.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar_compress_best.rar.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar_compress_best.rar.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar_compress_normal.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar_compress_normal.rar.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar_compress_normal.rar.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar_compress_normal.rar.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar_encryption_data.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar_encryption_data.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar_encryption_data.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar_encryption_data.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar_encryption_data.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar_encryption_data.rar.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar_encryption_data.rar.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar_encryption_data.rar.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar_encryption_header.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar_encryption_header.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar_encryption_header.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar_encryption_header.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar_encryption_header.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar_encryption_header.rar.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar_encryption_header.rar.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar_encryption_header.rar.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar_encryption_partially.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar_encryption_partially.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar_encryption_partially.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar_encryption_partially.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar_encryption_partially.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar_encryption_partially.rar.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar_encryption_partially.rar.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar_encryption_partially.rar.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar_invalid1.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar_invalid1.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar_invalid1.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar_invalid1.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar_invalid1.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar_invalid1.rar.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar_invalid1.rar.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar_invalid1.rar.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar_multi_lzss_blocks.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar_multi_lzss_blocks.rar.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar_multi_lzss_blocks.rar.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar_multi_lzss_blocks.rar.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar_multivolume.part0001.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar_multivolume.part0001.rar.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar_multivolume.part0001.rar.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar_multivolume.part0001.rar.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar_multivolume.part0002.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar_multivolume.part0002.rar.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar_multivolume.part0002.rar.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar_multivolume.part0002.rar.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar_multivolume.part0003.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar_multivolume.part0003.rar.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar_multivolume.part0003.rar.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar_multivolume.part0003.rar.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar_multivolume.part0004.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar_multivolume.part0004.rar.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar_multivolume.part0004.rar.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar_multivolume.part0004.rar.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar_noeof.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar_noeof.rar.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar_noeof.rar.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar_noeof.rar.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar_ppmd_lzss_conversion.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar_ppmd_lzss_conversion.rar.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar_ppmd_lzss_conversion.rar.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar_ppmd_lzss_conversion.rar.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar_ppmd_use_after_free.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar_ppmd_use_after_free.rar.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar_ppmd_use_after_free.rar.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar_ppmd_use_after_free.rar.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar_ppmd_use_after_free2.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar_ppmd_use_after_free2.rar.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar_ppmd_use_after_free2.rar.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar_ppmd_use_after_free2.rar.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar_sfx.exe.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar_sfx.exe.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar_sfx.exe.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar_sfx.exe.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar_subblock.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar_subblock.rar.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar_subblock.rar.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar_subblock.rar.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar_unicode.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar_unicode.rar.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar_unicode.rar.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar_unicode.rar.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar_windows.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar_windows.rar.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar_windows.rar.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar_windows.rar.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_raw.bufr.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_raw.bufr.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_raw.bufr.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_raw.bufr.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_raw.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_raw.c similarity index 96% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_raw.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_raw.c index 3961723..457db00 100644 --- a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_raw.c +++ b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_raw.c @@ -72,7 +72,7 @@ DEFINE_TEST(test_read_format_raw) extract_reference_file(reffile2); assert((a = archive_read_new()) != NULL); assertEqualIntA(a, ARCHIVE_OK, archive_read_support_filter_all(a)); - assertEqualIntA(a, ARCHIVE_OK, archive_read_support_format_raw(a)); + assertEqualIntA(a, ARCHIVE_OK, archive_read_support_format_by_code(a, ARCHIVE_FORMAT_RAW)); assertEqualIntA(a, ARCHIVE_OK, archive_read_support_format_all(a)); assertEqualIntA(a, ARCHIVE_OK, archive_read_open_filename(a, reffile2, 1)); @@ -100,8 +100,7 @@ DEFINE_TEST(test_read_format_raw) extract_reference_file(reffile3); assert((a = archive_read_new()) != NULL); assertEqualIntA(a, ARCHIVE_OK, archive_read_support_filter_all(a)); - assertEqualIntA(a, ARCHIVE_OK, archive_read_support_format_raw(a)); - assertEqualIntA(a, ARCHIVE_OK, archive_read_support_format_all(a)); + assertEqualIntA(a, ARCHIVE_OK, archive_read_set_format(a, ARCHIVE_FORMAT_RAW)); assertEqualIntA(a, ARCHIVE_OK, archive_read_open_filename(a, reffile3, 1)); diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_raw.data.Z.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_raw.data.Z.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_raw.data.Z.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_raw.data.Z.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_raw.data.gz.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_raw.data.gz.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_raw.data.gz.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_raw.data.gz.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_raw.data.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_raw.data.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_raw.data.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_raw.data.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_tar.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_tar.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_tar.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_tar.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_tar_concatenated.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_tar_concatenated.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_tar_concatenated.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_tar_concatenated.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_tar_concatenated.tar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_tar_concatenated.tar.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_tar_concatenated.tar.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_tar_concatenated.tar.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_tar_empty_filename.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_tar_empty_filename.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_tar_empty_filename.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_tar_empty_filename.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_tar_empty_filename.tar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_tar_empty_filename.tar.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_tar_empty_filename.tar.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_tar_empty_filename.tar.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_tar_empty_pax.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_tar_empty_pax.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_tar_empty_pax.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_tar_empty_pax.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_tar_empty_pax.tar.Z.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_tar_empty_pax.tar.Z.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_tar_empty_pax.tar.Z.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_tar_empty_pax.tar.Z.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_tar_empty_with_gnulabel.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_tar_empty_with_gnulabel.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_tar_empty_with_gnulabel.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_tar_empty_with_gnulabel.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_tar_empty_with_gnulabel.tar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_tar_empty_with_gnulabel.tar.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_tar_empty_with_gnulabel.tar.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_tar_empty_with_gnulabel.tar.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_tar_filename.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_tar_filename.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_tar_filename.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_tar_filename.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_tar_filename_koi8r.tar.Z.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_tar_filename_koi8r.tar.Z.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_tar_filename_koi8r.tar.Z.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_tar_filename_koi8r.tar.Z.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_tbz.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_tbz.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_tbz.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_tbz.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_tgz.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_tgz.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_tgz.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_tgz.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_tlz.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_tlz.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_tlz.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_tlz.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_txz.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_txz.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_txz.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_txz.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_tz.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_tz.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_tz.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_tz.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_ustar_filename.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_ustar_filename.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_ustar_filename.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_ustar_filename.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_ustar_filename_cp866.tar.Z.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_ustar_filename_cp866.tar.Z.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_ustar_filename_cp866.tar.Z.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_ustar_filename_cp866.tar.Z.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_ustar_filename_eucjp.tar.Z.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_ustar_filename_eucjp.tar.Z.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_ustar_filename_eucjp.tar.Z.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_ustar_filename_eucjp.tar.Z.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_ustar_filename_koi8r.tar.Z.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_ustar_filename_koi8r.tar.Z.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_ustar_filename_koi8r.tar.Z.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_ustar_filename_koi8r.tar.Z.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_warc.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_warc.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_warc.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_warc.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_warc.warc.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_warc.warc.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_warc.warc.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_warc.warc.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_xar.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_xar.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_xar.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_xar.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_zip.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_zip.c similarity index 88% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_zip.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_zip.c index 04f7e98..424d6a0 100644 --- a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_zip.c +++ b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_zip.c @@ -916,3 +916,112 @@ DEFINE_TEST(test_read_format_zip_lzma_alone_leak) * suite under Valgrind or ASan, the test runner won't return with * exit code 0 in case if a memory leak. */ } + +DEFINE_TEST(test_read_format_zip_lzma_stream_end) +{ + const char *refname = "test_read_format_zip_lzma_stream_end.zipx"; + struct archive *a; + struct archive_entry *ae; + + assert((a = archive_read_new()) != NULL); + if (ARCHIVE_OK != archive_read_support_filter_lzma(a)) { + skipping("lzma reading not fully supported on this platform"); + assertEqualInt(ARCHIVE_OK, archive_read_free(a)); + return; + } + extract_reference_file(refname); + + assertEqualIntA(a, ARCHIVE_OK, archive_read_support_format_zip(a)); + assertEqualIntA(a, ARCHIVE_OK, archive_read_open_filename(a, refname, 37)); + assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae)); + assertEqualString("ZIP 6.3 (lzma)", archive_format_name(a)); + assertEqualString("vimrc", archive_entry_pathname(ae)); + assertEqualIntA(a, 0, extract_one(a, ae, 0xBA8E3BAA)); + assertEqualIntA(a, ARCHIVE_EOF, archive_read_next_header(a, &ae)); + assertEqualIntA(a, ARCHIVE_OK, archive_read_close(a)); + assertEqualIntA(a, ARCHIVE_OK, archive_read_free(a)); +} + +DEFINE_TEST(test_read_format_zip_lzma_stream_end_blockread) +{ + const char *refname = "test_read_format_zip_lzma_stream_end.zipx"; + struct archive *a; + struct archive_entry *ae; + + assert((a = archive_read_new()) != NULL); + if (ARCHIVE_OK != archive_read_support_filter_lzma(a)) { + skipping("lzma reading not fully supported on this platform"); + assertEqualInt(ARCHIVE_OK, archive_read_free(a)); + return; + } + extract_reference_file(refname); + + assertEqualIntA(a, ARCHIVE_OK, archive_read_support_format_zip(a)); + assertEqualIntA(a, ARCHIVE_OK, archive_read_open_filename(a, refname, 37)); + assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae)); + assertEqualString("ZIP 6.3 (lzma)", archive_format_name(a)); + assertEqualString("vimrc", archive_entry_pathname(ae)); + assertEqualIntA(a, 0, extract_one_using_blocks(a, 13, 0xBA8E3BAA)); + assertEqualIntA(a, ARCHIVE_EOF, archive_read_next_header(a, &ae)); + assertEqualIntA(a, ARCHIVE_OK, archive_read_close(a)); + assertEqualIntA(a, ARCHIVE_OK, archive_read_free(a)); +} + +DEFINE_TEST(test_read_format_zip_7z_lzma) +{ + const char *refname = "test_read_format_zip_7z_lzma.zip"; + struct archive_entry *ae; + struct archive *a; + + assert((a = archive_read_new()) != NULL); + if (ARCHIVE_OK != archive_read_support_filter_lzma(a)) { + skipping("lzma reading not fully supported on this platform"); + assertEqualInt(ARCHIVE_OK, archive_read_free(a)); + return; + } + extract_reference_file(refname); + + assertEqualIntA(a, ARCHIVE_OK, archive_read_support_format_zip(a)); + assertEqualIntA(a, ARCHIVE_OK, + archive_read_open_filename(a, refname, 10240)); + //read directories + assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae)); + assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae)); + assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae)); + assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae)); + //read symlink + assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae)); + assertEqualInt(AE_IFLNK, archive_entry_filetype(ae)); + assertEqualString("../samples/abc_measurement_analysis_sample" + "/src/abc_measurement_analysis_sample.py", + archive_entry_symlink(ae)); + assertEqualIntA(a, ARCHIVE_OK, archive_read_close(a)); + assertEqualIntA(a, ARCHIVE_OK, archive_read_free(a)); +} + +DEFINE_TEST(test_read_format_zip_7z_deflate) +{ + const char *refname = "test_read_format_zip_7z_deflate.zip"; + struct archive_entry *ae; + struct archive *a; + + assert((a = archive_read_new()) != NULL); + assertEqualIntA(a, ARCHIVE_OK, archive_read_support_filter_all(a)); + extract_reference_file(refname); + + assertEqualIntA(a, ARCHIVE_OK, archive_read_support_format_zip(a)); + assertEqualIntA(a, ARCHIVE_OK, + archive_read_open_filename(a, refname, 10240)); + //read first symlink + assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae)); + assertEqualInt(AE_IFLNK, archive_entry_filetype(ae)); + assertEqualString("libxkbcommon-x11.so.0.0.0", + archive_entry_symlink(ae)); + //read second symlink + assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae)); + assertEqualInt(AE_IFLNK, archive_entry_filetype(ae)); + assertEqualString("libxkbcommon-x11.so.0.0.0", + archive_entry_symlink(ae)); + assertEqualIntA(a, ARCHIVE_OK, archive_read_close(a)); + assertEqualIntA(a, ARCHIVE_OK, archive_read_free(a)); +} diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_zip.zip.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_zip.zip.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_zip.zip.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_zip.zip.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_zip_7075_utf8_paths.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_zip_7075_utf8_paths.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_zip_7075_utf8_paths.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_zip_7075_utf8_paths.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_zip_7075_utf8_paths.zip.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_zip_7075_utf8_paths.zip.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_zip_7075_utf8_paths.zip.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_zip_7075_utf8_paths.zip.uu diff --git a/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_zip_7z_deflate.zip.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_zip_7z_deflate.zip.uu new file mode 100644 index 0000000..7513073 --- /dev/null +++ b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_zip_7z_deflate.zip.uu @@ -0,0 +1,361 @@ +begin 644 test_read_format_zip_7z_deflate.zip +M4$L#!!0#```(`)@!<%+IO$E_&````!D````3````;&EB>&MB8V]M;6]N+7@Q +M,2YS;\O)3*K(3DK.S\W-S].M,#34*\[7,P!!`%!+`P04`P``"`"8`7!2Z;Q) +M?Q@````9````%0```&QI8GAK8F-O;6UO;BUX,3$NXSL!\]``!HQ```&0```&QI +M8GAK8F-O;6UO;BUX,3$N2_;_5V?5+LGB +MX;Q\HSA:6]+T=J/]D_?LA^>K-9J;LE2+_ +M)+0GZ]QZ0)DP(>^:O#O.:-^^:YM/QX<_>G?G6O^[H[H?774:Z1[?EK&N!OQ' +M:S.^O6S&OP/\2!LS'C(S'I7,^'O2"?(^P("?`?J'`)T3FIGQ&\W-^.669OP$ +M6-<]X/\CV!?Y@/_;X"> +MDR#NP58@_\#/BS+0`W0>!7X>`?PVJ(=YX%PX@'\)G(L>P,]^P.=@7[8#_;>` +M_Q(X=Y-`O4T!>I:#H+\[JEN@9RB(NQK4SW-0#VO!NLX#/WME/KN8 +M=`+_5\&ZYH'Z[P/RQ[ +M+[!?;T#>/@/]KX'_'PQ\7C0#?@#_,=!Y%IS'9>`\?@5^5@(_WP&^&]3)2;!? +M(X">76"_[@&\!O)_&N1_EKP'&O`GH'X&@KH=F>6A`[NV/A]?4;BC\!U6/@Y* +M>;NF'9WKSS\:XBK^AXHZ_PJ_U3K'@W7Y>)_RPSC?X`4^CQ,K2CAG?,[2!;PJ +M(K'!B1,1+5TPPPU\L=2JN"*WF2W<;K)XS?$MU]DFAW/K?(GBS7"M.!8Q\X1G +MAUM9DUWA39LK?(-(N&>%V9UL#47,HR3RN2O\#O.C9)^<4T;+S&4>*P"[,% +M"+8#+[1RC;&C9Q"S0/[HK#B^1,-(Y%4!7!A@(,ZW/!'SNN6F@KM.G*@W#D*5 +MRO^E_YU':ZX+-^:AB+))P/L_9OV=OCG)^?\6I.W:_Y#K3I2DEDNE^S_T#5&0 +MAH;\0>I?.71LX(Y@ME;BL:PF.;68IR@-'Q#`F^4Z5HRB8[[I_"LC"-R(_$?% +M_M6HWA'^.`]^$@5N;`150(*;QHXEQ?F[P19>BP*/5T7=L45F5J;4CT1-=T5? +M>!+1B&B>\W$:5JGQK'AS$2^S&,,5%FV4QR[FBB0-LY@RN<*/G>#WCCM5ZF9B +M"B.7X:V"D<9"FV=$_\A-GK9(4"8J@155E5P*IJV^0/U:@'!MF\DBB\;+MK(1 +M0#RQS::21HLO#KM-*L,&0&)+&6?=/T +M0A:)[,LA#67.,[<$NTY%3K`#SPO\47$P:@PA,M9(B=)XK!H7_1562OU)U+=5 +M3_,Q4B8Y]S,ZC:/1,J+ECI:$21/8!3P_!V"YGEX@K +MG]-Z#FHO;<7O%J;F?6Y;_)^:<2BB;A_>CNSYE?9VVE#\*MGU_[F5?==/+NP< +MM,D`C,-XK+9-[_1.[\]J-:U7K%9CO3YKU5BO6*]:K^@41"$X%0,EE]=-C6S]G\I>5!FT5AFR];OF#S-Y:GGJOK +M?_-U^*72\*WP#'PO/`L_#\_!Y^%Y^`VX.U+V6OD-X0:\"NZ!.'?H@U?# +M37@-W`^OA0?@3O@A#?`0_!&>!C>!%^`-\,7X2WP)W`7/`)OA4?A;?`8 +MO!T>AW?`$_!.>!+>!4_!N^%IN!N>@??`L_!>>`[>!\_#^^$%^`!\!3X(=[RH +M^!#8"3?@+OA:N!L^##?@Z^`>^'JX%SX"]\$WP$WX1NX?[N'^X:/^#&X#^Z'F_#CW#]\AON'G^#^X2>Y?_@I[A]^FON'G^'^X0'N'WZ6 +M^X?/@E^!I^%7X1GX-7@6?AV>@P?A +M>?A-N/_1+V?^6[6\^>3\6/'BQ-1=PU$HQ,2J^2 +MSFB/2U=)I[3'I%=+)[2'I==(Q[1[I:NE(]IMTC72B]KUTK728>TJ::=T4/O/ +MG5+720>T?TO72YO:/Z4;I+W:WZ4;I0WMK])-TB[M+]+-T@[MS](MTH5_TA^D +M77J_]GOI5KU?^YUTF]ZO_5:Z7>_77I;NT/NU7TEWZOW:2])=>K_V4^ENO5_[ +MH;1;[]>^+]VC]VO?D^[5^[5O2_?I_=JWI/OU?NUYZ0&]7WM6>E#OUYZ1'M+[ +M_TI/21MZ_W_>ZR36A3B`XWAG.J5]&M/8(A)1^[[ORZ.6X6]Y]CVI`U%!.,BK +M@^1%&<)H)+A8CFXD+@Z5.-!6+!&13&DUC83+T\^_ +M__]__M^9>H6>!0]D/ST)'L1^>A0\F/WT('@(^^E^\%#VTSW@8>RGF^#A[*=5 +M>`3[Z2][I4>RG_X`CV(__1H>S7[Z!3R&_?0S>"S[Z:?P./;3#^'Q[+?A/#R! +M_?1->"+[Z>OP)/;35^')[*>RGUX&SV/_5W@!'&,_/0N>SWYZ +M$KR`_?0H>"'[Z4'P(O;3_6"#_70/>#'[Z29X"?MI%1;LI[_LD5[*?OH#O(S] +M]&MX.?OI%_`*]M//X!;VTT_AE>RG'\*KV/\%SL.KV4_?A->PG[X.KV4_?15> +MQW[Z,KR>_?0E>`/[Z7/P1O;3I^!-[*>/PIO93Q^"M["?/@!O93^]?5?4ESA3 +M^7M>I`-CY:`XGFU5.PK\A9_0!QQS_A_?/%-N($X'\,<&,;(LK)?"+'<_V%LN +M>YOXN2P4[RC*)?(IQN_@6R$QKF+]Y]U8/_7#;J[_CO6Y[WYAO1.YTCRAW!-/ +MOK?VE9OEG,W"W(SKJ_=+-5^1^_B2PX79?%XND%M:+UO#\C+Y'5%?J;\L+`GY +M(WXOD)(3E8_5YSDK)PISGB_9[=4V.?/GN>7U9SK7?X4M.PIQ?E_@M=76?M^P +ML?I-5].PE2?[VLVV=E_R8]JPXW7R86:*G84)%(20BET8%7IOKRR)-?' +M-#U3<%X&],P#YZ5?;FL]MNZ7+LHO'BN/5=;JH/.F*M^\B:O[2Z59XIZ9WKK[SQ3X+^?*>FO?::X>Z8N=<_D[33N#SOU<7?JZNWD +M]SY+:N*"?B.;*P9#7)+P-@]XD[2J24V_WY5D9W#J44-W)5;GKNQ4W99PRDM9 +MB6&F!-V4U2I&3N+0I%^0(5BML=],YX#>.\ +M5E/5M6H\M2-*[:>VV]VF&PJVN0Q7E]=Y$O4^>J$?I%L)>%Q3%'Z33(A(.],V +M91"D!+$'16+2FDGS>&@JEMA+/]1G5R1M+"&,DF%443BU:3CE#*<,_0`37NU!9(137]Q`3V6G$V/T#Q\ +M!)>PQV+6N0H7>#$-VU?3TK&M?L:F^H"F-S[&1P"$B==%FKSPVD+TRNS0A)UF +M*?`H^.4PC.03]H,WYKOQK@I\NJE\<-[^H`[KP:8M3BZ"@!CI#3[>"OHP*?%: +M;WKDM4K&*)FD#46-Q?6&*G,?OBH-=2,,"_"D:?!B6@RWKR9-.JT*TA/,,O2X +MYHA`DJ'U]#LU1PR(*-O`4[XNTFP7\-%:$G`2$_#H6JF`-TZ'-4NXTW(M!:>W +M-,8Y.HQP1@%O>#W7F'Y4;Z)0LN-=7*`I1!HACK((F$1`;O@%3V^U\7KV.CJP +M,!S8G7Q2@3FI#!]!'R:`^_*F'C%$2(;2!"T.`*X5^`10*PC4F7D(:H9`39-A +MX!)JG!%I%4$U0X@BEGD,TCP&*0(09_$\SM8LKHY>4F,#]PP_@?O"H03N>I\4 +MW#WA'AP>["++%SG&R'SB`+>3X*:Q?!OGQ'Y7N/UI[6$?!L@WTZ"-D""W5L=O=2N2/?[ +M2-;8(23K9G)9_?L"SN\JB/DP8=Y!F"-SM=O"?#@'YIU`TFWI7_<&^M>TCLO: +MR32I6Z)_#0*-6PO!VIA=KT4\AAVPME?M=76@&#D9\:II5T<` +M$K9N!_J[S=!+D63,4QT#UX(6N!;<"=>",.&EU[=IP4;XJ[9SSW/D3XAN/*MW +MJY\L?X3=$$J*V-.W>55T816T[V0X7W0PX;Q`)9P?G"G%^=-*P/9[REB)UR3. +MJZ@J>JG`ZPC&JYSQ:I3S"B&ONTU>ODFDGM0L`6P=46.?&,8BCNKH5<(*D]@* +MT3I:8=T,Z0J[XPK5U@I%;(4[]0:/Q9OWE.(CZ"L-9,::]N=M6%7PI/<-D;G3 +M'L`UT!,<`IG[2DPW:9)'5X=2.[%!K2S8.&3WFJ$2O(OJ>0%UR,%7\:I#E[[_ +MEIID#MAI.N"8P43`!TP'&$E=<00MD0?<0+^+-AIA^XS`-@,9YT(1OYF$W[6S +M"+_G:Z3XI?:"'?W.W'/$X&(Z8;[*;8,D"B59,G:HP% +MU0%7EY.<$0'@`_C/-\Z[E"CQ01.J;3;^9`UAV^$G;%\]2(KM +M^CT`VWQ85UB#E3TF(-.W?![R4>4T3*'_,F,@#PM7/A_$!KM])TVL:)W<'&3JUG30%TON5S(^[_ +ME#X*04JO]6@!->$,J!\[0$2ONLS5,3AJ!:#9@QB`DC"6]*IQ"$!_&@&HF&?* +MA"T4+5M.GFNDS&%"O;4=0E$;),LLJPPM8,DR/GCTY@$H\2V>_!!TXACV='U/ +MAY^1DF^6M.*5E$#[7LS7:`0.<2J/'>!_N>ZT,]VY^"#2G9=GDNZ\>Z!4=_)W +M`WWY%02W,[3>/!B/XCI%)!87[*MXV2K'LE7FRU>Y=UWRF1FT +MR]$,A7VD1E1,(HS->W- +M:0.1A3Z!3*[-$:[]+(]KI.R,:\+*'RQ-ON5[U.2T@TF==MUT.&H,)J)&8CKO +M.R$1&P)='S5TO4!(M"#/\H%R)T"Y84E83J]'42+(8H*BQP/4^_YZ`<]SFH2IYB'OPY& +M`A$H.(C8Y&FAA@9DR%!)\N('NEZ0?ITM)7TU*5RT"0Z$(-`Z[')=?\48`B!* +MW@"2QT#R"$C>#9)W`N"=`N`_DBEGLGH7#1`L"%?"N$:^QC0;]Y>&9]J\NL?( +M0"^9FMU9"G%J)C;Y_>9`TM02+VGJU.E23:V'WRW106$FP-:+H:&8K&7&D:11 +ML0*T!:+## +MAPX5P\4UT`@6U(`0X"==2U^L8?D`CN./J^F)GD[1)H]_.V"]8T4O)* +MP`:>6FAQ`TQL",+>Z#&=/2KQ@0=6%Z2EZH*+*_"A#];I:_0ODP]^1=!6:J$0 +MSF>AFLZ1HTBE-XC8@32X(-=BS&4W2ENPUJ0=4,:A/7V]2=L]'NT6&9.V8SS: +M`8.V^_5G1AHR.6ST[81]"FUN?N)D_RG^N?Y3 +M_:?-E?H8\B*8;WQEN1#L`_<.O7?WFR6Z\-D%5IGW,%!$HFHH!-O$:*U`!O*= +MGIX6QTOGSGF6[PDVCF@ZR\EVY>E'N)^'6W0-D)](X^H4R2^"]J!J(RJ3$SES +M_XQD#Z*3S9^0Y#3NW#2\,FJ/D_G9@A0+$;?81I1G(\J3$SEM1$XY4:&-J%!. +MY,Y)1)YY$RIA$GV!K83YW)>"A^84SNP:9H=`5()$3(\>%+H]AG>?DV#>/=`Z +MLKWK^J?_RHZ%E<9W#.C)H1:\M!ZO-?TOC\$?[F]70PO6J$_C@."(UR5XJAUH +MS2C->^'"S`M_MR=YX8?WE'IA;RG8T;Y@>^`FZ_MI%N,7'3$,#Y'+8%=DE6!X +MO.\I[!,O`W);6[**@KCQ>M9G=M.#0R@Z"PZIR@K&M7M2,+ZRDG:O[BK=?>LV +M8)E%:'K$!$^4F$T\JSHJ,IO(F.W-F&4JI,PJD=FK#L:,!R16JJ]CZ4(=%O-X +M$VI3Y3Q$OM1G%/-`[`:-K>K3J!9U@%A57Y5SNN)5'VHVJ9:0W97F"3FK'F"8Q+,:IM:JHQ`&Q"2";:YZ;,9PB< +MI^&(Q@G!5;IYPC<9%-\PHZ5]]B3I4?-BN@E+S7(;5#,9E"W5P8FD#LAZCT]S +MV-<;'^>PKQ]V(Z6:M9M4J3[WY+"O]S:TKWD?;6A?LZ'/+M(\$*D;1.JD>H]> +M_P`PA[_J8QRHEV&C5!UAU_R3^;ZSJ,[LHZ*)0;7^$Z)*&^]+V'L29^"/L7C, +M%")]W+"ZF6']M2L9UD][$`;W[R3%H&]+T/X`"`:(0GU%G/\MF_\,FW^:?/X= +M.'^6PRJ+;\LL*1-46$$T35?_/F)+/[T.R.L\,3+>AF*X]/?9Y5C"]K$SVT=? +MN70?+MS'*[Q$RRK<>_$FN`,GUZ`G/A+=@8>[`X\&U%>`#L3XHD'T?,V=.,,[ +M55&8*LQU=;7V<=_@X81P<$FD/$PGA;A]LD&\'XK!'`9:BIIQ:EC/P=(W(."% +M$E-'WZBT.CE^X>9;=OX9)EX)]`3Z>#Q+!-LP+^+5AP3#K[6"W2N9+=RQHQ2_ +M]Z>:U8?;%*NN5M-RL=C5_%2]IV;OGK-IX2>LRBSR[ +MI'62*?IX%:W<NW&A,LIH4@C3+GR$\516JC)DRKIC"9 +M8;WM%@$\2-A^;AN7NPS;*++]*/QOR@U_OBY31"+$B*W`..V;!?B-D/.K1FY+;"X35":L +M#&[IQY)BT#CZ^;KTOU:U/-]2MK?CYX6_#!'2%E7I6@.44GXH0/R\"#$GPEOJ&1_";P7YW(?8$+MN10[$%KELB*7Q&,Q9<_@L +M2N$TIWWF#&MF@],`NVEO?L.$9KF9WZVT`^X?$_,[:3'LL8T4PZ;>5([%L)!0 +M"6,[NNA]:.4H;#V_,G=A*[`#*7B#W!B3$P'QW?)9FH#E@H(IY:RHM3D\P6*\ +M(K,)M3N0T:S;D7B>4BKE>1OR7)5GI!Z%MCJ8QZARH>9`.\W;4[+K8RZQ/D9Q +M!VIB26S7!>>5<**)0H7KF7=D%2Y>TYK.:EJ58DWK@A54TRHS)`R%%T"N$`PU +M9$._'E28UY3&X&0M^A:B/R&;_DV+_GT;?1O1S\NF7V+1WV^C;R?Z,[/IYUOT +M%XU79[MTV*R'S1J/]M9?3=HMQZ.]YC>3-J6,0WN859-[?3S:O-]-VEO'H]W7 +MK+>=9VII&YXA#F;`=5N]+;QWC:VWC?>NL/6V\]XN[.7*=?%RPZHG&5VG+I>7 +M\;*3,KK-K8!_T;("O1ISH]&WZ=[#;EEQP9+/6<[SE$!K6FG>AZ5)=&O9CDQ. +MEYO*;\/BH#?(+18C:@* +MOV9;8>346#KBK-'U4Z+X,4]O(W5FQF*[ZW/:VXBWS%TV#%U.6, +MA0<2M]21V&;?6(U(OK$:Z4GFZSVX#_UM5U==88VK"WSC2.#K32DOAZS\YVDQ +MO*I'VFM+T#_SW7G5D4L?(9^/]=->\52IJQVZG5J#NSIP^FJE91/X_]57`9/5%I-NQN0^.9-J +MDPE>+F%U$!GG,N5IF:`HEO(4,<)7D!"K"7%^J4_S$'?B=Z:EM>6BF31D6-@\ +MZ7CM6F/<)QD7K+FY3#H>-PH+35.,`SC0,*L456]S5T<(M7YF3[6].2HACT?% +M2@A/EL[%ZPK+8S/4I.#R>HRW)T([0FWZ@)"ZK:\+,TSOTP@[_D9U/"[S4"^% +M$C>.TWZB3+'D6D2'O]DUK:O14JZJYO<#4`.F`NM+207>DYOZ`9MR%4@U&E_: +M#K\A$?)`&^`9#OBSHR+@M-?K;8!GV([UUA&].0-F5@T"SU$S<\6*3DR/Z_7+ +M9NMJYVR]_K&S].9>.)%(H'69TL25KL;\P7[JEGN5*3QYG-TC[I.33B)2@K40 +M](3W_JF8O47MZF_&:;2KOVIOJ0DD`06(0,VY%Y=ALMW[)OM"-H1F$;?Z_Z;L +M.D.?BH%XW1-;<2*.N*U;4=RB2'&#$T5Q6[?^U?:Y<"]\[HTHBH*BB(CBQE7W +M0$%!1/Q4<#VM'\2]Z^\N]Y:^OVCA]:672W*YY)*[2]+$-'LL%&N%C+(\K@"\ +M*R7U?KD67[(W7/NXA*]S;8Q,CFQ@+XR*/I=P482?VJB]@8K\CX1XE\$1$/=\ +MC!D!Y("&'`#DJ89$P"5`(N&3_3^M($!Y#2@/P,<5$>DVOL."*"1PT5-\^TC! +M&V:D$SJ"8'D$8?=O@L#NSDK$5UE#PQ`R +MRG#;:NN%Z7UYD(>C!\1;W=;JHC/#`>8A9$`JH+-.L8LN@K;R4#)']QA+MG8S +MLSG[^RF/,1&Q=?=E'@?EQ0MVXY5T_/\7?%*IE?&I>5D9/_"#E?'=_-JRC5]K +MUN/5PURV@GZMXAEN(M6U[4V]A.9.$V8DB4H(K7@+L)@/-(2"5CHF-SHS7%P8?>Q;R2"U8$82)9,^70>826[CS" +M=,;2>3A1F]CIZ3NDN$M5!P1S-_#1OO +MR3G$!E`JM1@)1PI'@_5DK&9X'UHN3*Y"<52CS5PC'T-W7&).WLM#.,S)D[I+ +MU5\/\"/6*0@<7GS@)V-:!+(`NAE>_,I>,>NRZ"IU,JB(OC/`Z)+&&Y,VD)., +MX%F#\"J#!/=S1TY()/1%+B*(2,)"PP/*9^U&*.2U[>&,&^*@LDNNPW"GR`@! +M3<,1+;C:LVUB[V>*!)8A.$SM@>2\%#M[E3L.16R"[6FZUSD60$DU#A6PY_2[ +MQ?SCEZ0S^ULN,L*HJ;-QXPV2Y%[4L[.^HCBES9Z3DM)?1<%$570[#BIB8T'@ +MWVCKNPZ94R=JT/<6I3>YEL^RN$_EUYI9>&&>5.%H;&$XVG-].-I_=S@ZY$@X +M&D^%HY/OA:-&.AR=!S)YJP2V,[991ME-'^]`2K=91EG/'7"#C5%%7@XV\QNS +MV1`#P6S6B>O? +M\\I/>77-):\OI?XKKWM`MWZ<#<[K>JYY(>562GGEK,=J2U8++&()(6Z7(BCO +M_R!O,*4=ZDD;+"P06/;..6]:6]*$_74>7^,'0M2AFG\8L9V,N]&+V*BRH +M$9Z)-6I#&W6/#]51?!_ZP.4E!T4SLU-*@:P71ZWW,\)V`ZYGF^0[1NUKLG#< +MKBHT2:P<\_Q_BO*X[D>HR`C%^2PM\^*M#$DY(-Z\3NL.OQF3>;5OMI?9./?( +M?OK?%F0K1*'P\C%RYNW&0EH>(?GYK0JF\=3LG[ZP'GZ$BY34ZG0Z0.>)$3]N +M="A,&+8:>?N4.]29S%0<'C%[28B/.0H3;X'1%/ZSY'LK8FG-@5Z*WK"G,:6: +M-[E>-\F"%L'.<(O`G8E3)X;N[N-IS:6Q/W7%@-3P="8N+YR7#B6;@D#"TP-M +M'=0%ZAL6;$+)\JMZOO]-">T-SOG\T$*SM'FF&>&+OUM9]PB&7BG%:6ZI`R'14)"IK5TG^:O'TLL@Q?PK1%4I@$Z; +MJ<248PF4UP'@B4(OH!K<9L5\2(!XHZ7TOAX()/RRTHGZ4`0@V+8\LPR'M=#Q +M8DIX\0YN&P*U[6WN/9+$0E9!0'4_(3F?GNQ[]K!_GT#WB[ +MG99.F8F05#X18!U^98(!A*`00,M,Q`V6IJ#4$3WO!A:5!8#E-D@.*@LM!_N7 +M`$481U4TJZSI5E\+03/XX#V&^O6#K0YN.!0DW]^;PTI72R[AT\$M4-QFG +M;Q[5!R/*:Q2]-05Q?B%F]8Z:\:J;$W:'(2W_=IEMN'1+JO\K>)`];H7_*M2\#(<8/,.-965Z.NQ=R';]LH,)27O7AXL],D\ +ML*9X!/IE2A08VNE\(97G)KK&[XBDQ\`0JP>\-5VHWL0;P;\'?%OF3[,9<9^T +M>FOFAI=4(2)(>(ME[P#6RHD?/@;S?D91"G-3S7>AB1(,Q8H4QXR64\Q$/%N' +M(I9=CI!!K%U&%>G;4(PIS7T+T62!>,JH0%CS_;D7!,_R9$IH>B'ERUI#H+5W +MH@AY)X@W$8__`D30!$0'3H)7W(&;=F:RIEW6]$3K\B:1-+LR&;WGW#4<6I4BVN.MR/O@EHKN<6"@-1GJ*E/PDY)PUQ-DZ,X:UW3MH +M""H]/*BS&1'0FE[<6WBV%ISO.E2:G,X#)0R/K3O6;/PJ8PV2E:97;F/- +M:<]8\P&")U#1TA"KWS036'D".B1MC@"EH)>30)?`.P+S]=:5,>O)C2E_5?G7 +M3XMSF"(P2@_#8-<*FDHIS`O[\;0Y`SB>7MC[N0+/>SR$VP8::S<\)_%\Q@/8 +M'P__NWZ#]F/&3T\D^^'Z#M6NG6HLY>'?[5LKN@XH/EHE/Z5[?':GG-%QPK:!(V8)4/"$!P#VG3U9M6=$?^H@O'HVVA0- +M2`06`;0FH`?,8SKE2A%"K5,G@4NSG*,Y+"<,<.FCY@R-JX)&P:C3.87T,:$JFJ*O%I +M1L[XT:INM''TC_;JR/=!H7BI)+<9WV0RBILW&-_7=`)+N)EP\TDFTH#,7WUO +M%4N)FCM7^4!>;DA[H&,B#\ZB?3!]JE8MY4=L&TQ#:.#$D9WCR9ZX.^@_Y1-B +MB+I.,^*)I*`7E5&N@!)A48E5@=U2ND'?UYR1/BY7E&D/[^/'4Z/=$&, +M-SDQ<7>V<9XT00AN&%0G%W+U:<(,4)SF'%2W'*!2B20\+!X>Y! +M$P@NP3W!(83@P=T"P=W]@$"`CW>[+[L[0(&?_&"2[7,SSWPC>[/3D]R->$63X/0 +M&3[?)]ZO2]<.75SNT-K`;>I8`-%FAA'5>>J.;9RX,;6,#0R[N+Y\E7)N;![4 +M_]5`L!6UJ%XMT*)>M4#UA@V:^@*-:C8)U*O9,E"MCB]0M4F3JBT#3>NTJHE= +MHZR6-[J\2S]`IT//SCVP"79T!:,B.Z,L;^[^B4.R:U14I\Z142[CG!I7G1IP +M6-MX$.S+*93GIA0=+A]I;`"L;YWL%FWD>4";Y6-L!3>M?M0#P&!9;C^%RTSJ +MT624+,?],DO>Y<#SE3A4KC2A')6$](%(D":^$7 +MKY/`?H=$UH%KCXI<`YN>$/D,9CB)?O%S@&6G12J"_X[2+BP=27$0^.OH+X^'C^KZ-?L,)-]`ONOX5^P1&WT2]8\H[(";`. +M^`S<<1?C=N+,@GL8-YCA/N+!J0]%^H"'P!G@:W`+&/>1R`6P"A@+]@?3)L!\ +M0`]X'_2!21XC'KP%S@`[/4$\N!&\`'X!8\$Z3Q&/[Z3G@Q[P,N@#ES]#/-CE +M.>+!.^`6<.X+Q(/OP%BP]4O$XU<7VT$/Z'F%>'`6V`?<\QKQ8(`:1-;9ZO$&=A$B],_99PL21,DG!;'./,C*ZXNBT7VQL<'R5-&),]8 +M-T62?@F':Y4S5RA8,D\NC75JX"JV2B144#5YRK%QJR=SMD5#]!UQE8`O;/>= +M+3\:5R7X?78?=Q:?']R*WXMK;N1KW>S^%X2_A]ZB?E'&^,\?I +MA=^`Y\&MQ.!"W%OX +MR4K\>#.^(LK;'Q>42&9EONG,^S$?OASV +MA5BE_9=F^[O@DV&_N*_X6Z:_!G\.OHW2?W-K_BA/COVEM])_=_-^9W5@?MAW +M7H2[WU?4^^U%O>S8EXXJ[1TTYQ,%?_@*-GC%CS3])/BB5T7V*//9:HVOHIG,EOCG`%?$+Z0 +MW0+\U?_B/\$'%1YI>?U^O_`#[ +MAN*;6_.''P0_1/']3>^#OPS?0?'MK/G#9\'7%?F5YS"W^1S.@,_]2&29$K_( +MFC_\2OB:BJ]BS1_^!/P\I?V99ONQ\+6>B/B5^,;6_,$A\!.4^-&A^/_I?_J? +M_MTTO(!ROB@3SQ7]7=Q0@V/)B>1TD43-I_DAG^.' +M?"'FDS-?BOD4S-=C/BGSJW(93,9\B[X&,QDPSV/-\CU/9B93TF?]P;_[*CUU +MON+`XK/\#/MW,I\_KL'$S/>B)[2,I(/4>,XCP[3Q[#`M\PG(#*0KLUH^/J,Z +MSMD<7Z(?^OLLQOA3LN`+\O9^OS)?FUY^\*^8K\*!?&0^B?9OIN%AUOM)-EB8C2#\9)&/(L>1,<@6YC3Q$7B(?D.])9Q[V3[K)TF0$Z2># +M9`PYEIQ)KB"WD8?(2^0#\CWIS,O^23=9FHP@_620C"''DC/)%>0V\A!YB7Q` +MOB>=;O9/NLG29`3I)X-D##F6G$FN(+>1A\A+Y`/R/>G,Q_Y)-UF:C"#]9)", +M(<>2,\D5Y#;R$'F)?$"^)YWYV3_I)DN3$:2?#)(Q9*WJU8IZ +MBI9QE2A6O$2QDL5+NO(WP4\&:T?V,@M(:*$Z((_$-%R2K0(9KPO;EY^/_XYO\]^_6;F +MSB+F2=6MF$]5+X%Y1_62F,]4+R6ZDYXDYI%>&O.JZLEX +MGJA>1IPF/47$&U">*I:27A;/)]7+B3CI:<(Y@W*;<,VDO#R>=ZI7$&FD5Q15 +M2*\D,DA/%W'2*XO32RC7!W\IY55%T7+*U9,BWPNLXMU/U8VDA1CG1DR^A=&+ +M.-Y.Z'-`Z=,%7J3X,+CZ?A4P^A<[K@3X=./OQ/AO09^XTF>_D2?.XU7FN.[\ +MV7_TJ0-_#+\!;P)_"_\!/P,OF2#]5"-9^_'"41G>N+FL=UGEU]JZ)XAR8N=T +M62>C3S/D;V7+>CY>E-HB?Q3Y5.1[PR\J[D.?,6UE_03S1QCYN\BG(#\3^78= +M9/T-OA#NZBCK>NBS%GU>H$]9Y'?^V6YG6=?`B3R,_!=EN^>0G]8%QX_\=>23 +M"LW'%2\E\[N[RMJ9B/.%?!7DKO66] +M"/GJ%MD_`_TK(+\:?>[VE?5->"/TV=T/YPE]6J&/"WW*(=\=^<\#<']B'$8A +MWQ_YBL@7(&_#C],^PJ?"2PR6]3/X`OA+^"CLSQKTSRLTG\<=R'<;ANL&^U.I +MO/2CPW$_8/P/H<]D9?Q/PZAR?#OZ3*_MM'R?H2MOL(^:7*]?`&O@E> +M"_[=0M_OUD39_Y,FZU/PJHFRSQ/TJ0EOD$CWR42?7+>LT^$.)M\)^6\^63>& +M]X2OS<=U`L^#/U-\#CQKO-FWP0OA@^`7X-?A;>#/F/W\@/R]`MR?\#2K,3Z5 +M1`?,JQW@=:QRW$[C^]@,>%,KW=]IE?WS0K+VP+NA3P:>U^7A&O(/)\AZ7<+_ +MGU,3?O>QB;SY9I]A./6\9OHLQ':7!'&_P#?`]^3B?,/WPB^'<-U@/X_#KP9D +M/1+Y:U;YW:;Z'+]MY(GWG(?H4S4/\S#\)?P5]K,0_@2^&N/6%?X=_@$KC;;" +M1Y>4/@$GY#X\Q?B_;N)]IFH)F6^/_;D%KPU/Q_$>A=OA48R;"]Y.=[V;^**, +M0V?DZR)O@^?!'\-;PR>ACSJ>FW&\5R)XGN*\S$*?<[@?6R*_&%X1]]UL^#9C +M'(CWMWW(K_=C_H6?T%T0[Y_7C3[$>7\(5]_WWJ-_=B[&"YZ.\]4K1]:3+;@? +M#2?>PQL@WQ#7B0_>'/TG87R&PELAGX)YX`I\1$G'HIVILPWE'W#,)',_G)C,]C_)#AQOR,YT4H`?,`D__,>)]D +M(6S$?%4OB<[W93R0)/?G]3CS=;Z,R>]A_"SCMQG_P'BUTK1W9WPLX],8W\+X +M2<:O,_Z4\2^,UT^FO0WC0QB/,;Z<\1V,'V/\&N//&?_&>.TRM'=@W,OX?,8W +M,7Y<]PS"+S/Y9XPGI=#N9+PGXQ,97\'X*<;?,EXSE787XWT8+]3=1O@\)K^1 +M\>.,WV&\B/$296EO]MM316B,K.=B_NS'Y`L87\+X#L:O,?Z&<4LYVNLQWI'Q +M\8PO9/PPXR\9KYA&NYWQ3HR/93S.^*HT^C[=Q>3/,?Z0\8^,U[;1[K#1^].' +MR<<87\+X=L9/Z5Z'\`=,/K4\[2(S%@EG^O/'9=KMQI=L9Z8G',VWAX3'[?=K +MN8%0T%CS&XX*G2/1F,]G]PA-Z]EYH-:[A[Y$6Q,YWK`W-S\2-9;=!S2//Q3T +M1O1$3DC+]8?&N?U:CK%\7G/')@N/OMS?[XUZ<^S9+H>3#FF^_&"^]GNUK/S] +M'^$+NP->+2<6"$P1FE:LTO1DU!3]^ULC6,8OHF%W,.)W1[W&(NWBY9^UT5K` +M'2GXYUCK_6^9N+'%6-"C:?8L1XN6K8JO#S=]EIV5I9?]!W8=/'B$UFU(W\[& +M4F7YB:-9L57DYG_D;/EWP7C$M+3<''/)[>HI=;,MF[5`!^*SYEGBSXI]S1CZ +M4%`?I8CQB2/+O,`\0JQ/-[7*=IA7JIL__=6ZE?-*#0/AL!P"(7%52#04M$3< +M1_X!`\$ESXP=WLS10Y+=_)`C>_?]E1.]U$1-D6W3_CFP!Z'` +M.`H*ZKH?D(PA=QP^@@6B>53`CAP0S:/[ES>/[CGDF5QV,I8J"^G!6%-$IFA> +MBWT_<,"KRBAFNXH2CTV'TKAW9WDTI5=1H2=9^=!DR*-+L;BAOAU4<:GR*M9% +M:R_I0\>MO7'P,*W*UNYID$=!TMZ?9L;DX!9&8+O<817%992@(H#<3L=DA'AK +MW,7??Y2VS=0$T",I@?9VXH\PNR]^_ES1.SAPJAI$W&M.BH:>N'+NPJ!8O +MGE0*D<0\=S&I:KTWA=-=A`$\\\E\$P-A4(#+BBBS2>:J[28NOP +ME*:U!9X)(A;.BN'1=8'A59J!R_&6L[N=:\WQJ$C5.$C"6!MPG-YA&'$__I#E +MLASC-+U7931=$@KM`8J/7/R"KU:NG!BIMS3YR\=/W9> +M73IUZNKBDEHZ=OS\HA)S.$3E>:U(I"7V"Z.]Q6(49)J*M:`*RZ8(V'4>:6/K +M<.`'HR&S,DS,*_.&4/P6922F.,ACW2\LG#Y_]O@)M<_?YQ_L+#:1?$:F@$RQ +M0HI(Y66>H.SK[_PDGTX*<@/%EB'`C.)_)M!+,$;9:C.VH()&C":9E%6=7;J@ +M[!E(VN<3<(FM2DJ*`P>+;LCADHM/#(AEJ@@AG-6.+JN,07:-3C8X&YP+_%LV +M1+$DKK2*:1%J&N5E18'0QNH>K46T<([[K=/7XV:20Q^Y9OT.TR`/L;4J"F=(& +M1:'SVEO;U@F7FW]2R"`&YOKVP<%WM\0_Z>P1SL8]0 +M2M?D9JJPDE[&2YCSO)$Y>^9$LE'#"L3P[*$8ZM(4WX":)FTYXMSD"Z/EW,9% +MFE*_QZKM3?H<6R>R0LK1G.9J7R=IG=UE[6);+N:`!I +MNA?)3^[99JZ?W$[;.=D%,;<5BCU7$KQ2G[;L[7E;)2X39X_FZQ;TW,<>5]BF +M7=BP9T?5'!7MYJC*-;/4R=1IP>+>[MAQZK9!QW4D=TX3*9K;"2%=O]ECX+\9 +M?2?[:;>D9F#]:2VL!]^R>.?:J$S$??T4K)QNA +M'3[JBC*=^I,?L9@VC.CJFX>P17/CZ[WO63Y0M@Q_[G$M=B[6+NX02HT>!/RU +M0S'CD;Q%KSP:M4=3S_-)Q64P)%KF-1W/GI*TU/Z=I/+YFS'<34',M,9!,?;\ +M\&%"2$-I?-TSU3GOKFBH4#9I:*[C@'%XRN+2\\TW"#_Z=U)Z,!]T/G_DT:#4 +M7.Q]/<;_#8W#W+8,%/])5"-FSW='-(RA/`UQ,;(&DVCD\1SUM,.B\'S:APGY +M@/=??CN02SY`^\LJ27?-Y1;(G\\YK)0+#CSR/2T]@O>K047%$/HW8G[DSPOZ +M=H.==]4R_';0!?`>V'Q\03-0FS\H?V>0ZPX\\DPM_=J0?]"@UY!+CS;GHX+* +M]:\!IKG^$+GWP"-OU=*%'GQA^U`/("CJ`2"_0W^/@3^.-O)@05&/`/QV!_XI +M=+K.UE\(NJG'?IY(/.?52KI6CM_2H,\E'OFWH$)?[O8KB4?^J*5?SC?GE[_7 +M#?R-2M(-/>M_`_Q@)G\EZ8<&@YT-_'N)1WZ&I6L&W?-_E'CD$5MZ8'VW_CYC +MCV%?G*<*VJ5_4/C79HM'7BS1%>*_0W[@.1\*=&7[_T/@41?%%/A;7K?^?V+O +M5]NZ$U#X[T#J?7W#CE[(^3EO&A1_)^Q9_R^)YWP;4,3A03?^-YZ!YSP>4(SK +ML=_5G*%B.)W^65-QYR(B'JL9X[XL\'*+NWZ'?(GMW7'_ZTM +M^&^?D"^VJAO_!U!+`0(4`Q0#```(`)@!<%+IO$E_&````!D````3```````` +M````((#_H0````!L:6)X:V)C;VUM;VXM>#$Q+G-O4$L!`A0#%`,```@`F`%P +M4NF\27\8````&0```!4````````````@@/^A20```&QI8GAK8F-O;6UO;BUX +M,3$N#$Q+G-O+C`N,"XP4$L%!@`````#``,` +*RP```.H]```````` +` +end diff --git a/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_zip_7z_lzma.zip.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_zip_7z_lzma.zip.uu new file mode 100644 index 0000000..8ae8df4 --- /dev/null +++ b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_zip_7z_lzma.zip.uu @@ -0,0 +1,45 @@ +begin 644 test_read_format_zip_7z_lzma.zip +M4$L#!`H#`````.$#)%$````````````````,````7VENA79\GCDS+I*=O.=!+"5(),_1O%5^1102P,$"@,`````]0,D +M40```````````````"P```!?:6YS=&%L;&1I7-I00]!0!=````!``1B$)'BB,SPW````7VEN7-I7-I7-I7-I)82Q1PWAL +M+U`,N0L_$]^&650C/X$D6#4QFD$\A/"_![4!O/5O/!KH`WCQ*4?T2*]4P#/D +M0'9I?EZG=N69Z0V;H0I=CP*$?".I\ +MGMG/80.A'^W>R4J'S/CZ%P`8`>F=R>R&R$2T@EM#X)"OQH1?A7,`:4IU9WV! +M#2W*DXT',;.4YIN4A:-X)O=IREL201ZSOC=YSAU[C4-::/YV8\)%"L17+>VC +M%/'B]ZCQN$2(Q*9*\KJZ`Y131`]5C&G';@1S-QES_RZF!2OX45@58+??ES%( +MUJ<(\`11M$NO)HK#/MK-9RT"15.2I:IZN8VTM1_?$G\L#BH67]$S%[4 +M%C-$\Q<+./&HV](4,7)OL-@C^M0F"2O!0N$OHOW54H87^QLBQVH*D%A<#SI% +M/#+-5U(W';:KC)RE>0Y^5YI!RECQNR"R4.UW9IR!@:B!UB8?_D5$FT8YCJHJ +M2[2"-&-_D2BJ6#XK[6G=%K"%;'^-+0]FHCY4ER#`^'0````````````````````````` +M```````````````````````````````````````````````````````````` +M`````````````#`P,#`V-#0`,#`P,#`P,``P,#`P,#`P`#`P,#`P,#`P,C(R +M`#$S-#8T-S``````````````````````````````` +M```````````````````````````````````````````````````````````` +M``````````````````````````````````````````!U +#include +#include + +/* + * This test checks whether things work correctly when the archive_write_callback + * passed to archive_write_open() does a short write and only writes some of the + * data passed in. The way the test works is that two archives are constructed + * in parallel - one with short writes, one with full writes - and the results + * are compared to see if they are identical. + */ + +struct checker { + struct archive *short_archive; + char *shortbuf; + size_t shortbuf_len; + + struct archive *full_archive; + char *fullbuf; + size_t fullbuf_len; +}; + +static ssize_t +short_write_callback(struct archive *a, void *client_data, const void *buffer, size_t length) +{ + (void)a; + + struct checker *checker = client_data; + size_t to_write = length < 100 ? length : 100; + size_t new_len = checker->shortbuf_len + to_write; + char *new_buf = realloc(checker->shortbuf, new_len); + assert(new_buf != NULL); + + checker->shortbuf = new_buf; + memcpy(checker->shortbuf + checker->shortbuf_len, buffer, to_write); + checker->shortbuf_len = new_len; + + return to_write; +} + +static ssize_t +full_write_callback(struct archive *a, void *client_data, const void *buffer, size_t length) +{ + (void)a; + + struct checker *checker = client_data; + size_t to_write = length; + size_t new_len = checker->fullbuf_len + to_write; + char *new_buf = realloc(checker->fullbuf, new_len); + assert(new_buf != NULL); + + checker->fullbuf = new_buf; + memcpy(checker->fullbuf + checker->fullbuf_len, buffer, to_write); + checker->fullbuf_len = new_len; + + return to_write; +} + +static struct archive * +create_archive(struct checker *checker, archive_write_callback write_cb, int buffered) +{ + struct archive *a; + + assert((a = archive_write_new()) != NULL); + + if (!buffered) + assertEqualIntA(a, ARCHIVE_OK, + archive_write_set_bytes_per_block(a, 0)); + + /* With the default value of bytes_in_last_block, the writing code will + * pad out the final write to make it a full block. This causes problems + * for us because the size of the final write can be different depending + * on the size of previous writes, causing the "short" and "full" paths + * to get different amounts of padding. Setting it to 1 results in no + * padding other than that defined by the archive format. */ + assertEqualIntA(a, ARCHIVE_OK, + archive_write_set_bytes_in_last_block(a, 1)); + + /* We write a pax archive, but other formats would work fine too. */ + assertEqualIntA(a, ARCHIVE_OK, + archive_write_set_format_pax(a)); + assertEqualIntA(a, ARCHIVE_OK, + archive_write_add_filter_none(a)); + + assertEqualIntA(a, ARCHIVE_OK, + archive_write_open(a, checker, NULL, write_cb, NULL)); + + return a; +} + +static struct checker * +checker_new(int buffered) +{ + struct checker *checker; + + assert ((checker = calloc(1, sizeof *checker)) != NULL); + + checker->short_archive = create_archive(checker, short_write_callback, buffered); + checker->full_archive = create_archive(checker, full_write_callback, buffered); + + return checker; +} + +static void +checker_add_file(struct checker *checker, const char *name, char *buffer, size_t len) +{ + struct archive_entry *entry; + assert((entry = archive_entry_new()) != NULL); + + archive_entry_set_pathname(entry, name); + archive_entry_set_mode(entry, AE_IFREG | 0755); + archive_entry_set_size(entry, len); + + assertEqualIntA(checker->short_archive, ARCHIVE_OK, + archive_write_header(checker->short_archive, entry)); + assertEqualIntA(checker->short_archive, len, + archive_write_data(checker->short_archive, buffer, len)); + + assertEqualIntA(checker->full_archive, ARCHIVE_OK, + archive_write_header(checker->full_archive, entry)); + assertEqualIntA(checker->full_archive, len, + archive_write_data(checker->full_archive, buffer, len)); + + archive_entry_free(entry); +} + +static void +checker_close(struct checker *checker) +{ + assertEqualIntA(checker->short_archive, ARCHIVE_OK, + archive_write_close(checker->short_archive)); + assertEqualIntA(checker->short_archive, ARCHIVE_OK, + archive_write_close(checker->full_archive)); +} + +static void +checker_check(struct checker *checker) +{ + assertEqualInt(checker->shortbuf_len, checker->fullbuf_len); + assert(memcmp(checker->shortbuf, checker->fullbuf, checker->fullbuf_len) == 0); +} + +static void +checker_free(struct checker *checker) +{ + free(checker->shortbuf); + free(checker->fullbuf); + free(checker); +} + +DEFINE_TEST(test_short_writes) +{ + struct checker *checker; + uint16_t test_data[16384]; + int i; + + for (i = 0; i < 16384; i++) + test_data[i] = i; + + + /* Write a file smaller than the default buffer size (10 * 1024); + * this will be written out at close. + */ + checker = checker_new(1); + checker_add_file(checker, "a", (char *)test_data, 1024); + checker_close(checker); + assert(checker->shortbuf_len > 1024); + checker_check(checker); + checker_free(checker); + + /* Write a file larger larger than twice default buffer size (10 * 1024); + * this both fills the buffer and writes it out, and also exercises + * the "write out full blocks directly" code path. + */ + checker = checker_new(1); + checker_add_file(checker, "a", (char *)test_data, 21 * 1024); + checker_close(checker); + assert(checker->shortbuf_len > 21 * 1024); + checker_check(checker); + checker_free(checker); + + /* Test unbuffered writes - a different code path. + */ + checker = checker_new(0); + checker_add_file(checker, "a", (char *)test_data, 1024); + checker_close(checker); + assert(checker->shortbuf_len > 1024); + checker_check(checker); + checker_free(checker); +} diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_sparse_basic.c b/dependencies/libarchive-3.5.2/libarchive/test/test_sparse_basic.c similarity index 99% rename from dependencies/libarchive-3.4.2/libarchive/test/test_sparse_basic.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_sparse_basic.c index 0fbb7f7..43e87df 100644 --- a/dependencies/libarchive-3.4.2/libarchive/test/test_sparse_basic.c +++ b/dependencies/libarchive-3.5.2/libarchive/test/test_sparse_basic.c @@ -577,7 +577,7 @@ DEFINE_TEST(test_sparse_basic) /* Check if the filesystem where CWD on can * report the number of the holes of a sparse file. */ -#ifdef PATH_MAX +#if defined(PATH_MAX) && !defined(__GLIBC__) cwd = getcwd(NULL, PATH_MAX);/* Solaris getcwd needs the size. */ #else cwd = getcwd(NULL, 0); @@ -637,7 +637,7 @@ DEFINE_TEST(test_fully_sparse_files) /* Check if the filesystem where CWD on can * report the number of the holes of a sparse file. */ -#ifdef PATH_MAX +#if defined(PATH_MAX) && !defined(__GLIBC__) cwd = getcwd(NULL, PATH_MAX);/* Solaris getcwd needs the size. */ #else cwd = getcwd(NULL, 0); diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_splitted_rar_seek_support_aa.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_splitted_rar_seek_support_aa.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_splitted_rar_seek_support_aa.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_splitted_rar_seek_support_aa.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_splitted_rar_seek_support_ab.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_splitted_rar_seek_support_ab.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_splitted_rar_seek_support_ab.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_splitted_rar_seek_support_ab.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_splitted_rar_seek_support_ac.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_splitted_rar_seek_support_ac.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_splitted_rar_seek_support_ac.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_splitted_rar_seek_support_ac.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_tar_filenames.c b/dependencies/libarchive-3.5.2/libarchive/test/test_tar_filenames.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_tar_filenames.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_tar_filenames.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_tar_large.c b/dependencies/libarchive-3.5.2/libarchive/test/test_tar_large.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_tar_large.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_tar_large.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_ustar_filename_encoding.c b/dependencies/libarchive-3.5.2/libarchive/test/test_ustar_filename_encoding.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_ustar_filename_encoding.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_ustar_filename_encoding.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_ustar_filenames.c b/dependencies/libarchive-3.5.2/libarchive/test/test_ustar_filenames.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_ustar_filenames.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_ustar_filenames.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_warn_missing_hardlink_target.c b/dependencies/libarchive-3.5.2/libarchive/test/test_warn_missing_hardlink_target.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_warn_missing_hardlink_target.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_warn_missing_hardlink_target.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_disk.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_disk.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_disk.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_disk.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_disk_appledouble.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_disk_appledouble.c similarity index 99% rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_disk_appledouble.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_disk_appledouble.c index 706794a..d82d698 100644 --- a/dependencies/libarchive-3.4.2/libarchive/test/test_write_disk_appledouble.c +++ b/dependencies/libarchive-3.5.2/libarchive/test/test_write_disk_appledouble.c @@ -67,7 +67,7 @@ has_xattr(const char *filename, const char *xattrname) { char *nl, *nlp; ssize_t r; - int exisiting; + int existing; r = listxattr(filename, NULL, 0, XATTR_SHOWCOMPRESSION); if (r < 0) @@ -85,15 +85,15 @@ has_xattr(const char *filename, const char *xattrname) return (0); } - exisiting = 0; + existing = 0; for (nlp = nl; nlp < nl + r; nlp += strlen(nlp) + 1) { if (strcmp(nlp, xattrname) == 0) { - exisiting = 1; + existing = 1; break; } } free(nl); - return (exisiting); + return (existing); } #endif diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_disk_appledouble.cpio.gz.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_write_disk_appledouble.cpio.gz.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_disk_appledouble.cpio.gz.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_disk_appledouble.cpio.gz.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_disk_failures.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_disk_failures.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_disk_failures.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_disk_failures.c diff --git a/dependencies/libarchive-3.5.2/libarchive/test/test_write_disk_fixup.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_disk_fixup.c new file mode 100644 index 0000000..c399c98 --- /dev/null +++ b/dependencies/libarchive-3.5.2/libarchive/test/test_write_disk_fixup.c @@ -0,0 +1,81 @@ +/*- + * Copyright (c) 2021 Martin Matuska + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +#include "test.h" + +/* + * Test fixup entries don't follow symlinks + */ +DEFINE_TEST(test_write_disk_fixup) +{ +#if defined(_WIN32) && !defined(__CYGWIN__) + skipping("Skipping test on Windows"); +#else + struct archive *ad; + struct archive_entry *ae; + int r; + + if (!canSymlink()) { + skipping("Symlinks not supported"); + return; + } + + /* Write entries to disk. */ + assert((ad = archive_write_disk_new()) != NULL); + + /* + * Create a file + */ + assertMakeFile("victim", 0600, "a"); + + /* + * Create a directory and a symlink with the same name + */ + + /* Directory: dir */ + assert((ae = archive_entry_new()) != NULL); + archive_entry_copy_pathname(ae, "dir"); + archive_entry_set_mode(ae, AE_IFDIR | 0606); + assertEqualIntA(ad, 0, archive_write_header(ad, ae)); + assertEqualIntA(ad, 0, archive_write_finish_entry(ad)); + archive_entry_free(ae); + + /* Symbolic Link: dir -> foo */ + assert((ae = archive_entry_new()) != NULL); + archive_entry_copy_pathname(ae, "dir"); + archive_entry_set_mode(ae, AE_IFLNK | 0777); + archive_entry_set_size(ae, 0); + archive_entry_copy_symlink(ae, "victim"); + assertEqualIntA(ad, 0, r = archive_write_header(ad, ae)); + if (r >= ARCHIVE_WARN) + assertEqualIntA(ad, 0, archive_write_finish_entry(ad)); + archive_entry_free(ae); + + assertEqualInt(ARCHIVE_OK, archive_write_free(ad)); + + /* Test the entries on disk. */ + assertIsSymlink("dir", "victim", 0); + assertFileMode("victim", 0600); +#endif +} diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_disk_hardlink.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_disk_hardlink.c similarity index 83% rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_disk_hardlink.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_disk_hardlink.c index f80821c..184f77a 100644 --- a/dependencies/libarchive-3.4.2/libarchive/test/test_write_disk_hardlink.c +++ b/dependencies/libarchive-3.5.2/libarchive/test/test_write_disk_hardlink.c @@ -49,6 +49,9 @@ DEFINE_TEST(test_write_disk_hardlink) static const char data[]="abcdefghijklmnopqrstuvwxyz"; struct archive *ad; struct archive_entry *ae; +#ifdef HAVE_LINKAT + int can_symlink; +#endif int r; /* Force the umask to something predictable. */ @@ -147,7 +150,7 @@ DEFINE_TEST(test_write_disk_hardlink) archive_entry_free(ae); /* - * Finally, try a new-cpio-like approach, where the initial + * Third, try a new-cpio-like approach, where the initial * regular file is empty and the hardlink has the data. */ @@ -174,6 +177,41 @@ DEFINE_TEST(test_write_disk_hardlink) assertEqualIntA(ad, 0, archive_write_finish_entry(ad)); } archive_entry_free(ae); + +#ifdef HAVE_LINKAT + /* Finally, try creating a hard link to a dangling symlink */ + can_symlink = canSymlink(); + if (can_symlink) { + /* Symbolic link: link5a -> foo */ + assert((ae = archive_entry_new()) != NULL); + archive_entry_copy_pathname(ae, "link5a"); + archive_entry_set_mode(ae, AE_IFLNK | 0642); + archive_entry_unset_size(ae); + archive_entry_copy_symlink(ae, "foo"); + assertEqualIntA(ad, 0, r = archive_write_header(ad, ae)); + if (r >= ARCHIVE_WARN) { + assertEqualInt(ARCHIVE_WARN, + archive_write_data(ad, data, sizeof(data))); + assertEqualIntA(ad, 0, archive_write_finish_entry(ad)); + } + archive_entry_free(ae); + + + /* Link. Size of zero means this doesn't carry data. */ + assert((ae = archive_entry_new()) != NULL); + archive_entry_copy_pathname(ae, "link5b"); + archive_entry_set_mode(ae, S_IFREG | 0642); + archive_entry_set_size(ae, 0); + archive_entry_copy_hardlink(ae, "link5a"); + assertEqualIntA(ad, 0, r = archive_write_header(ad, ae)); + if (r >= ARCHIVE_WARN) { + assertEqualInt(ARCHIVE_WARN, + archive_write_data(ad, data, sizeof(data))); + assertEqualIntA(ad, 0, archive_write_finish_entry(ad)); + } + archive_entry_free(ae); + } +#endif assertEqualInt(0, archive_write_free(ad)); /* Test the entries on disk. */ @@ -211,5 +249,14 @@ DEFINE_TEST(test_write_disk_hardlink) assertFileNLinks("link4a", 2); assertFileSize("link4a", sizeof(data)); assertIsHardlink("link4a", "link4b"); + +#ifdef HAVE_LINKAT + if (can_symlink) { + /* Test #5 */ + assertIsSymlink("link5a", "foo", 0); + assertFileNLinks("link5a", 2); + assertIsHardlink("link5a", "link5b"); + } +#endif #endif } diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_disk_hfs_compression.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_disk_hfs_compression.c similarity index 99% rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_disk_hfs_compression.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_disk_hfs_compression.c index 2960fe2..8a2e7df 100644 --- a/dependencies/libarchive-3.4.2/libarchive/test/test_write_disk_hfs_compression.c +++ b/dependencies/libarchive-3.5.2/libarchive/test/test_write_disk_hfs_compression.c @@ -37,7 +37,7 @@ has_xattr(const char *filename, const char *xattrname) { char *nl, *nlp; ssize_t r; - int exisiting; + int existing; r = listxattr(filename, NULL, 0, XATTR_SHOWCOMPRESSION); if (r < 0) @@ -55,15 +55,15 @@ has_xattr(const char *filename, const char *xattrname) return (0); } - exisiting = 0; + existing = 0; for (nlp = nl; nlp < nl + r; nlp += strlen(nlp) + 1) { if (strcmp(nlp, xattrname) == 0) { - exisiting = 1; + existing = 1; break; } } free(nl); - return (exisiting); + return (existing); } static int get_rsrc_footer(const char *filename, char *buff, size_t s) diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_disk_hfs_compression.tgz.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_write_disk_hfs_compression.tgz.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_disk_hfs_compression.tgz.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_disk_hfs_compression.tgz.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_disk_lookup.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_disk_lookup.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_disk_lookup.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_disk_lookup.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_disk_mac_metadata.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_disk_mac_metadata.c similarity index 99% rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_disk_mac_metadata.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_disk_mac_metadata.c index 6e9e723..be13d96 100644 --- a/dependencies/libarchive-3.4.2/libarchive/test/test_write_disk_mac_metadata.c +++ b/dependencies/libarchive-3.5.2/libarchive/test/test_write_disk_mac_metadata.c @@ -67,7 +67,7 @@ has_xattr(const char *filename, const char *xattrname) { char *nl, *nlp; ssize_t r; - int exisiting; + int existing; r = listxattr(filename, NULL, 0, XATTR_SHOWCOMPRESSION); if (r < 0) @@ -85,15 +85,15 @@ has_xattr(const char *filename, const char *xattrname) return (0); } - exisiting = 0; + existing = 0; for (nlp = nl; nlp < nl + r; nlp += strlen(nlp) + 1) { if (strcmp(nlp, xattrname) == 0) { - exisiting = 1; + existing = 1; break; } } free(nl); - return (exisiting); + return (existing); } #endif diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_disk_mac_metadata.tar.gz.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_write_disk_mac_metadata.tar.gz.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_disk_mac_metadata.tar.gz.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_disk_mac_metadata.tar.gz.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_disk_no_hfs_compression.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_disk_no_hfs_compression.c similarity index 99% rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_disk_no_hfs_compression.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_disk_no_hfs_compression.c index b7210e2..0af44d2 100644 --- a/dependencies/libarchive-3.4.2/libarchive/test/test_write_disk_no_hfs_compression.c +++ b/dependencies/libarchive-3.5.2/libarchive/test/test_write_disk_no_hfs_compression.c @@ -37,7 +37,7 @@ has_xattr(const char *filename, const char *xattrname) { char *nl, *nlp; ssize_t r; - int exisiting; + int existing; r = listxattr(filename, NULL, 0, XATTR_SHOWCOMPRESSION); if (r < 0) @@ -55,15 +55,15 @@ has_xattr(const char *filename, const char *xattrname) return (0); } - exisiting = 0; + existing = 0; for (nlp = nl; nlp < nl + r; nlp += strlen(nlp) + 1) { if (strcmp(nlp, xattrname) == 0) { - exisiting = 1; + existing = 1; break; } } free(nl); - return (exisiting); + return (existing); } #endif diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_disk_no_hfs_compression.tgz.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_write_disk_no_hfs_compression.tgz.uu similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_disk_no_hfs_compression.tgz.uu rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_disk_no_hfs_compression.tgz.uu diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_disk_perms.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_disk_perms.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_disk_perms.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_disk_perms.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_disk_secure.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_disk_secure.c similarity index 93% rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_disk_secure.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_disk_secure.c index 7cd66c4..44b9ea0 100644 --- a/dependencies/libarchive-3.4.2/libarchive/test/test_write_disk_secure.c +++ b/dependencies/libarchive-3.5.2/libarchive/test/test_write_disk_secure.c @@ -40,6 +40,10 @@ DEFINE_TEST(test_write_disk_secure) struct archive *a; struct archive_entry *ae; struct stat st; +#if defined(HAVE_LCHMOD) && defined(HAVE_SYMLINK) && \ + defined(S_IRUSR) && defined(S_IWUSR) && defined(S_IXUSR) + int working_lchmod; +#endif /* Start with a known umask. */ assertUmask(UMASK); @@ -251,10 +255,32 @@ DEFINE_TEST(test_write_disk_secure) assert(0 == lstat("link_to_dir", &st)); failure("link_to_dir: st.st_mode=%o", st.st_mode); assert(S_ISLNK(st.st_mode)); -#if HAVE_LCHMOD - /* Systems that lack lchmod() can't set symlink perms, so skip this. */ - failure("link_to_dir: st.st_mode=%o", st.st_mode); - assert((st.st_mode & 07777) == 0755); +#if defined(HAVE_SYMLINK) && defined(HAVE_LCHMOD) && \ + defined(S_IRUSR) && defined(S_IWUSR) && defined(S_IXUSR) + /* Verify if we are able to lchmod() */ + if (symlink("dir", "testlink_to_dir") == 0) { + if (lchmod("testlink_to_dir", + S_IRUSR | S_IWUSR | S_IXUSR) != 0) { + switch (errno) { + case ENOTSUP: + case ENOSYS: +#if ENOTSUP != EOPNOTSUPP + case EOPNOTSUPP: +#endif + working_lchmod = 0; + break; + default: + working_lchmod = 1; + } + } else + working_lchmod = 1; + } else + working_lchmod = 0; + + if (working_lchmod) { + failure("link_to_dir: st.st_mode=%o", st.st_mode); + assert((st.st_mode & 07777) == 0755); + } #endif assert(0 == lstat("dir/filea", &st)); diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_disk_secure744.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_disk_secure744.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_disk_secure744.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_disk_secure744.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_disk_secure745.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_disk_secure745.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_disk_secure745.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_disk_secure745.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_disk_secure746.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_disk_secure746.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_disk_secure746.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_disk_secure746.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_disk_sparse.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_disk_sparse.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_disk_sparse.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_disk_sparse.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_disk_symlink.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_disk_symlink.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_disk_symlink.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_disk_symlink.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_disk_times.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_disk_times.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_disk_times.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_disk_times.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_filter_b64encode.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_filter_b64encode.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_filter_b64encode.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_filter_b64encode.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_filter_bzip2.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_filter_bzip2.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_filter_bzip2.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_filter_bzip2.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_filter_compress.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_filter_compress.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_filter_compress.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_filter_compress.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_filter_gzip.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_filter_gzip.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_filter_gzip.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_filter_gzip.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_filter_gzip_timestamp.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_filter_gzip_timestamp.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_filter_gzip_timestamp.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_filter_gzip_timestamp.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_filter_lrzip.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_filter_lrzip.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_filter_lrzip.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_filter_lrzip.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_filter_lz4.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_filter_lz4.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_filter_lz4.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_filter_lz4.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_filter_lzip.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_filter_lzip.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_filter_lzip.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_filter_lzip.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_filter_lzma.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_filter_lzma.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_filter_lzma.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_filter_lzma.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_filter_lzop.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_filter_lzop.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_filter_lzop.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_filter_lzop.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_filter_program.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_filter_program.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_filter_program.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_filter_program.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_filter_uuencode.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_filter_uuencode.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_filter_uuencode.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_filter_uuencode.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_filter_xz.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_filter_xz.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_filter_xz.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_filter_xz.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_filter_zstd.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_filter_zstd.c similarity index 98% rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_filter_zstd.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_filter_zstd.c index ba1b6bf..b5f061a 100644 --- a/dependencies/libarchive-3.4.2/libarchive/test/test_write_filter_zstd.c +++ b/dependencies/libarchive-3.5.2/libarchive/test/test_write_filter_zstd.c @@ -124,6 +124,9 @@ DEFINE_TEST(test_write_filter_zstd) archive_write_set_filter_option(a, NULL, "compression-level", "25")); /* too big */ assertEqualIntA(a, ARCHIVE_OK, archive_write_set_filter_option(a, NULL, "compression-level", "9")); + /* Following is disabled as it will fail on library versions < 1.3.4 */ + /* assertEqualIntA(a, ARCHIVE_OK, + archive_write_set_filter_option(a, NULL, "compression-level", "-1")); */ assertEqualIntA(a, ARCHIVE_OK, archive_write_set_filter_option(a, NULL, "compression-level", "7")); assertEqualIntA(a, ARCHIVE_OK, archive_write_open_memory(a, buff, buffsize, &used2)); diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_format_7zip.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_format_7zip.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_format_7zip.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_format_7zip.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_format_7zip_empty.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_format_7zip_empty.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_format_7zip_empty.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_format_7zip_empty.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_format_7zip_large.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_format_7zip_large.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_format_7zip_large.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_format_7zip_large.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_format_ar.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_format_ar.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_format_ar.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_format_ar.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_format_cpio.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_format_cpio.c similarity index 87% rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_format_cpio.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_format_cpio.c index 9f7307f..d5df8a8 100644 --- a/dependencies/libarchive-3.4.2/libarchive/test/test_write_format_cpio.c +++ b/dependencies/libarchive-3.5.2/libarchive/test/test_write_format_cpio.c @@ -141,6 +141,17 @@ test_format(int (*set_format)(struct archive *)) archive_entry_free(ae); assertEqualIntA(a, 0, archive_write_data(a, "12345678", 9)); + /* + * Write a character device to it. + */ + assert((ae = archive_entry_new()) != NULL); + archive_entry_copy_pathname(ae, "tty0"); + archive_entry_set_mode(ae, S_IFCHR | 0600); + archive_entry_set_size(ae, 0); + archive_entry_set_rdev(ae, 1024); + assertA(0 == archive_write_header(a, ae)); + archive_entry_free(ae); + /* Close out the archive. */ assertEqualIntA(a, ARCHIVE_OK, archive_write_close(a)); @@ -212,6 +223,15 @@ test_format(int (*set_format)(struct archive *)) assertEqualInt(0, archive_entry_size(ae)); assertEqualIntA(a, 0, archive_read_data(a, filedata, 10)); + /* + * Read the character device entry back. + */ + assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae)); + assertEqualString("tty0", archive_entry_pathname(ae)); + assertEqualInt((S_IFCHR | 0600), archive_entry_mode(ae)); + assertEqualInt(0, archive_entry_size(ae)); + assertEqualInt(1024, archive_entry_rdev(ae)); + /* Verify the end of the archive. */ assertEqualIntA(a, 1, archive_read_next_header(a, &ae)); assertEqualIntA(a, ARCHIVE_OK, archive_read_close(a)); @@ -253,18 +273,28 @@ test_big_entries(int (*set_format)(struct archive *), int64_t size, int expected DEFINE_TEST(test_write_format_cpio) { + int64_t size_16m = ((int64_t)1) << 24; + int64_t size_2g = ((int64_t)1) << 31; int64_t size_4g = ((int64_t)1) << 32; int64_t size_8g = ((int64_t)1) << 33; - test_format(archive_write_set_format_cpio); + test_format(archive_write_set_format_cpio_odc); test_format(archive_write_set_format_cpio_newc); - test_big_entries(archive_write_set_format_cpio, + test_big_entries(archive_write_set_format_cpio_odc, size_8g - 1, ARCHIVE_OK); - test_big_entries(archive_write_set_format_cpio, + test_big_entries(archive_write_set_format_cpio_odc, size_8g, ARCHIVE_FAILED); test_big_entries(archive_write_set_format_cpio_newc, size_4g - 1, ARCHIVE_OK); test_big_entries(archive_write_set_format_cpio_newc, size_4g, ARCHIVE_FAILED); + test_big_entries(archive_write_set_format_cpio_bin, + size_2g - 1, ARCHIVE_OK); + test_big_entries(archive_write_set_format_cpio_bin, + size_2g, ARCHIVE_FAILED); + test_big_entries(archive_write_set_format_cpio_pwb, + size_16m - 1, ARCHIVE_OK); + test_big_entries(archive_write_set_format_cpio_pwb, + size_16m, ARCHIVE_FAILED); } diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_format_cpio_empty.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_format_cpio_empty.c similarity index 98% rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_format_cpio_empty.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_format_cpio_empty.c index 2ba415c..3ca5c39 100644 --- a/dependencies/libarchive-3.4.2/libarchive/test/test_write_format_cpio_empty.c +++ b/dependencies/libarchive-3.5.2/libarchive/test/test_write_format_cpio_empty.c @@ -52,7 +52,7 @@ DEFINE_TEST(test_write_format_cpio_empty) /* Create a new archive in memory. */ assert((a = archive_write_new()) != NULL); - assertA(0 == archive_write_set_format_cpio(a)); + assertA(0 == archive_write_set_format_cpio_odc(a)); assertA(0 == archive_write_add_filter_none(a)); /* 1-byte block size ensures we see only the required bytes. */ /* We're not testing the padding here. */ diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_format_cpio_newc.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_format_cpio_newc.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_format_cpio_newc.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_format_cpio_newc.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_format_cpio_odc.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_format_cpio_odc.c similarity index 99% rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_format_cpio_odc.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_format_cpio_odc.c index ba1fecd..aefb42e 100644 --- a/dependencies/libarchive-3.4.2/libarchive/test/test_write_format_cpio_odc.c +++ b/dependencies/libarchive-3.5.2/libarchive/test/test_write_format_cpio_odc.c @@ -54,7 +54,7 @@ DEFINE_TEST(test_write_format_cpio_odc) /* Create a new archive in memory. */ assert((a = archive_write_new()) != NULL); - assertEqualIntA(a, 0, archive_write_set_format_cpio(a)); + assertEqualIntA(a, 0, archive_write_set_format_cpio_odc(a)); assertEqualIntA(a, 0, archive_write_add_filter_none(a)); assertEqualIntA(a, 0, archive_write_open_memory(a, buff, buffsize, &used)); diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_format_gnutar.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_format_gnutar.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_format_gnutar.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_format_gnutar.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_format_gnutar_filenames.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_format_gnutar_filenames.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_format_gnutar_filenames.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_format_gnutar_filenames.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_format_iso9660.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_format_iso9660.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_format_iso9660.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_format_iso9660.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_format_iso9660_boot.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_format_iso9660_boot.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_format_iso9660_boot.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_format_iso9660_boot.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_format_iso9660_empty.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_format_iso9660_empty.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_format_iso9660_empty.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_format_iso9660_empty.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_format_iso9660_filename.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_format_iso9660_filename.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_format_iso9660_filename.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_format_iso9660_filename.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_format_iso9660_zisofs.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_format_iso9660_zisofs.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_format_iso9660_zisofs.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_format_iso9660_zisofs.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_format_mtree.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_format_mtree.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_format_mtree.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_format_mtree.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_format_mtree_absolute_path.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_format_mtree_absolute_path.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_format_mtree_absolute_path.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_format_mtree_absolute_path.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_format_mtree_classic.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_format_mtree_classic.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_format_mtree_classic.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_format_mtree_classic.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_format_mtree_classic_indent.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_format_mtree_classic_indent.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_format_mtree_classic_indent.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_format_mtree_classic_indent.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_format_mtree_fflags.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_format_mtree_fflags.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_format_mtree_fflags.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_format_mtree_fflags.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_format_mtree_no_separator.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_format_mtree_no_separator.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_format_mtree_no_separator.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_format_mtree_no_separator.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_format_mtree_quoted_filename.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_format_mtree_quoted_filename.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_format_mtree_quoted_filename.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_format_mtree_quoted_filename.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_format_pax.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_format_pax.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_format_pax.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_format_pax.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_format_raw.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_format_raw.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_format_raw.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_format_raw.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_format_raw_b64.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_format_raw_b64.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_format_raw_b64.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_format_raw_b64.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_format_shar_empty.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_format_shar_empty.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_format_shar_empty.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_format_shar_empty.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_format_tar.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_format_tar.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_format_tar.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_format_tar.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_format_tar_empty.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_format_tar_empty.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_format_tar_empty.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_format_tar_empty.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_format_tar_sparse.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_format_tar_sparse.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_format_tar_sparse.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_format_tar_sparse.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_format_tar_ustar.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_format_tar_ustar.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_format_tar_ustar.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_format_tar_ustar.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_format_tar_v7tar.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_format_tar_v7tar.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_format_tar_v7tar.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_format_tar_v7tar.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_format_warc.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_format_warc.c similarity index 91% rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_format_warc.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_format_warc.c index 60d1898..3a4c2da 100644 --- a/dependencies/libarchive-3.4.2/libarchive/test/test_write_format_warc.c +++ b/dependencies/libarchive-3.5.2/libarchive/test/test_write_format_warc.c @@ -26,6 +26,19 @@ #include "test.h" __FBSDID("$FreeBSD$"); +static void test_read(struct archive *a, char *buff, size_t used, char *filedata) +{ + struct archive_entry *ae; + assertEqualIntA(a, ARCHIVE_OK, archive_read_support_filter_none(a)); + assertEqualIntA(a, ARCHIVE_OK, archive_read_open_memory(a, buff, used)); + + assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae)); + assertEqualIntA(a, 9, archive_read_data(a, filedata, 10)); + assertEqualMem(filedata, "12345678", 9); + assertEqualIntA(a, ARCHIVE_OK, archive_read_close(a)); + assertEqualInt(ARCHIVE_OK, archive_read_free(a)); +} + DEFINE_TEST(test_write_format_warc) { char filedata[64]; @@ -62,14 +75,15 @@ DEFINE_TEST(test_write_format_warc) */ assert((a = archive_read_new()) != NULL); assertEqualIntA(a, ARCHIVE_OK, archive_read_support_format_warc(a)); - assertEqualIntA(a, ARCHIVE_OK, archive_read_support_filter_none(a)); - assertEqualIntA(a, ARCHIVE_OK, archive_read_open_memory(a, buff, used)); + test_read(a, buff, used, filedata); - assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae)); - assertEqualIntA(a, 9, archive_read_data(a, filedata, 10)); - assertEqualMem(filedata, "12345678", 9); - assertEqualIntA(a, ARCHIVE_OK, archive_read_close(a)); - assertEqualInt(ARCHIVE_OK, archive_read_free(a)); + assert((a = archive_read_new()) != NULL); + assertEqualIntA(a, ARCHIVE_OK, archive_read_support_format_by_code(a, ARCHIVE_FORMAT_WARC)); + test_read(a, buff, used, filedata); + + assert((a = archive_read_new()) != NULL); + assertEqualIntA(a, ARCHIVE_OK, archive_read_set_format(a, ARCHIVE_FORMAT_WARC)); + test_read(a, buff, used, filedata); /* Create a new archive */ assert((a = archive_write_new()) != NULL); diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_format_warc_empty.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_format_warc_empty.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_format_warc_empty.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_format_warc_empty.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_format_xar.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_format_xar.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_format_xar.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_format_xar.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_format_xar_empty.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_format_xar_empty.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_format_xar_empty.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_format_xar_empty.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_format_zip.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_format_zip.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_format_zip.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_format_zip.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_format_zip_compression_store.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_format_zip_compression_store.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_format_zip_compression_store.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_format_zip_compression_store.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_format_zip_empty.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_format_zip_empty.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_format_zip_empty.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_format_zip_empty.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_format_zip_empty_zip64.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_format_zip_empty_zip64.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_format_zip_empty_zip64.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_format_zip_empty_zip64.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_format_zip_file.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_format_zip_file.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_format_zip_file.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_format_zip_file.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_format_zip_file_zip64.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_format_zip_file_zip64.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_format_zip_file_zip64.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_format_zip_file_zip64.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_format_zip_large.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_format_zip_large.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_format_zip_large.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_format_zip_large.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_format_zip_zip64.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_format_zip_zip64.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_format_zip_zip64.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_format_zip_zip64.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_open_memory.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_open_memory.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_open_memory.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_open_memory.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_read_format_zip.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_read_format_zip.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_read_format_zip.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_read_format_zip.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_xattr_platform.c b/dependencies/libarchive-3.5.2/libarchive/test/test_xattr_platform.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_xattr_platform.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_xattr_platform.c diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_zip_filename_encoding.c b/dependencies/libarchive-3.5.2/libarchive/test/test_zip_filename_encoding.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive/test/test_zip_filename_encoding.c rename to dependencies/libarchive-3.5.2/libarchive/test/test_zip_filename_encoding.c diff --git a/dependencies/libarchive-3.4.2/libarchive/xxhash.c b/dependencies/libarchive-3.5.2/libarchive/xxhash.c similarity index 99% rename from dependencies/libarchive-3.4.2/libarchive/xxhash.c rename to dependencies/libarchive-3.5.2/libarchive/xxhash.c index 70750ba..f96e9d9 100644 --- a/dependencies/libarchive-3.4.2/libarchive/xxhash.c +++ b/dependencies/libarchive-3.5.2/libarchive/xxhash.c @@ -150,7 +150,11 @@ typedef struct _U32_S { U32 v; } _PACKED U32_S; #if GCC_VERSION >= 409 __attribute__((__no_sanitize_undefined__)) #endif -static inline U32 A32(const void * x) +#if defined(_MSC_VER) +static __inline U32 A32(const void * x) +#else +static inline U32 A32(const void* x) +#endif { return (((const U32_S *)(x))->v); } diff --git a/dependencies/libarchive-3.4.2/libarchive_fe/err.c b/dependencies/libarchive-3.5.2/libarchive_fe/err.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive_fe/err.c rename to dependencies/libarchive-3.5.2/libarchive_fe/err.c diff --git a/dependencies/libarchive-3.4.2/libarchive_fe/err.h b/dependencies/libarchive-3.5.2/libarchive_fe/err.h similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive_fe/err.h rename to dependencies/libarchive-3.5.2/libarchive_fe/err.h diff --git a/dependencies/libarchive-3.4.2/libarchive_fe/lafe_platform.h b/dependencies/libarchive-3.5.2/libarchive_fe/lafe_platform.h similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive_fe/lafe_platform.h rename to dependencies/libarchive-3.5.2/libarchive_fe/lafe_platform.h diff --git a/dependencies/libarchive-3.4.2/libarchive_fe/line_reader.c b/dependencies/libarchive-3.5.2/libarchive_fe/line_reader.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive_fe/line_reader.c rename to dependencies/libarchive-3.5.2/libarchive_fe/line_reader.c diff --git a/dependencies/libarchive-3.4.2/libarchive_fe/line_reader.h b/dependencies/libarchive-3.5.2/libarchive_fe/line_reader.h similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive_fe/line_reader.h rename to dependencies/libarchive-3.5.2/libarchive_fe/line_reader.h diff --git a/dependencies/libarchive-3.4.2/libarchive_fe/passphrase.c b/dependencies/libarchive-3.5.2/libarchive_fe/passphrase.c similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive_fe/passphrase.c rename to dependencies/libarchive-3.5.2/libarchive_fe/passphrase.c diff --git a/dependencies/libarchive-3.4.2/libarchive_fe/passphrase.h b/dependencies/libarchive-3.5.2/libarchive_fe/passphrase.h similarity index 100% rename from dependencies/libarchive-3.4.2/libarchive_fe/passphrase.h rename to dependencies/libarchive-3.5.2/libarchive_fe/passphrase.h diff --git a/dependencies/libarchive-3.4.2/tar/CMakeLists.txt b/dependencies/libarchive-3.5.2/tar/CMakeLists.txt similarity index 100% rename from dependencies/libarchive-3.4.2/tar/CMakeLists.txt rename to dependencies/libarchive-3.5.2/tar/CMakeLists.txt diff --git a/dependencies/libarchive-3.4.2/tar/bsdtar.1 b/dependencies/libarchive-3.5.2/tar/bsdtar.1 similarity index 99% rename from dependencies/libarchive-3.4.2/tar/bsdtar.1 rename to dependencies/libarchive-3.5.2/tar/bsdtar.1 index f157423..86a06bb 100644 --- a/dependencies/libarchive-3.4.2/tar/bsdtar.1 +++ b/dependencies/libarchive-3.5.2/tar/bsdtar.1 @@ -631,7 +631,8 @@ A decimal integer from 4 to 7 specifying the lz4 compression block size Use the previous block of the block being compressed for a compression dictionary to improve compression ratio. .It Cm zstd:compression-level -A decimal integer from 1 to 22 specifying the zstd compression level. +A decimal integer specifying the zstd compression level. Supported values depend +on the library version, common values are from 1 to 22. .It Cm lzop:compression-level A decimal integer from 1 to 9 specifying the lzop compression level. .It Cm xz:compression-level diff --git a/dependencies/libarchive-3.4.2/tar/bsdtar.c b/dependencies/libarchive-3.5.2/tar/bsdtar.c similarity index 100% rename from dependencies/libarchive-3.4.2/tar/bsdtar.c rename to dependencies/libarchive-3.5.2/tar/bsdtar.c diff --git a/dependencies/libarchive-3.4.2/tar/bsdtar.h b/dependencies/libarchive-3.5.2/tar/bsdtar.h similarity index 100% rename from dependencies/libarchive-3.4.2/tar/bsdtar.h rename to dependencies/libarchive-3.5.2/tar/bsdtar.h diff --git a/dependencies/libarchive-3.4.2/tar/bsdtar_platform.h b/dependencies/libarchive-3.5.2/tar/bsdtar_platform.h similarity index 100% rename from dependencies/libarchive-3.4.2/tar/bsdtar_platform.h rename to dependencies/libarchive-3.5.2/tar/bsdtar_platform.h diff --git a/dependencies/libarchive-3.4.2/tar/bsdtar_windows.c b/dependencies/libarchive-3.5.2/tar/bsdtar_windows.c similarity index 100% rename from dependencies/libarchive-3.4.2/tar/bsdtar_windows.c rename to dependencies/libarchive-3.5.2/tar/bsdtar_windows.c diff --git a/dependencies/libarchive-3.4.2/tar/bsdtar_windows.h b/dependencies/libarchive-3.5.2/tar/bsdtar_windows.h similarity index 100% rename from dependencies/libarchive-3.4.2/tar/bsdtar_windows.h rename to dependencies/libarchive-3.5.2/tar/bsdtar_windows.h diff --git a/dependencies/libarchive-3.4.2/tar/cmdline.c b/dependencies/libarchive-3.5.2/tar/cmdline.c similarity index 100% rename from dependencies/libarchive-3.4.2/tar/cmdline.c rename to dependencies/libarchive-3.5.2/tar/cmdline.c diff --git a/dependencies/libarchive-3.4.2/tar/config_freebsd.h b/dependencies/libarchive-3.5.2/tar/config_freebsd.h similarity index 100% rename from dependencies/libarchive-3.4.2/tar/config_freebsd.h rename to dependencies/libarchive-3.5.2/tar/config_freebsd.h diff --git a/dependencies/libarchive-3.4.2/tar/creation_set.c b/dependencies/libarchive-3.5.2/tar/creation_set.c similarity index 100% rename from dependencies/libarchive-3.4.2/tar/creation_set.c rename to dependencies/libarchive-3.5.2/tar/creation_set.c diff --git a/dependencies/libarchive-3.4.2/tar/read.c b/dependencies/libarchive-3.5.2/tar/read.c similarity index 100% rename from dependencies/libarchive-3.4.2/tar/read.c rename to dependencies/libarchive-3.5.2/tar/read.c diff --git a/dependencies/libarchive-3.4.2/tar/subst.c b/dependencies/libarchive-3.5.2/tar/subst.c similarity index 100% rename from dependencies/libarchive-3.4.2/tar/subst.c rename to dependencies/libarchive-3.5.2/tar/subst.c diff --git a/dependencies/libarchive-3.4.2/tar/test/CMakeLists.txt b/dependencies/libarchive-3.5.2/tar/test/CMakeLists.txt similarity index 100% rename from dependencies/libarchive-3.4.2/tar/test/CMakeLists.txt rename to dependencies/libarchive-3.5.2/tar/test/CMakeLists.txt diff --git a/dependencies/libarchive-3.4.2/tar/test/list.h b/dependencies/libarchive-3.5.2/tar/test/list.h similarity index 100% rename from dependencies/libarchive-3.4.2/tar/test/list.h rename to dependencies/libarchive-3.5.2/tar/test/list.h index 01e6721..379b8a3 100644 --- a/dependencies/libarchive-3.4.2/tar/test/list.h +++ b/dependencies/libarchive-3.5.2/tar/test/list.h @@ -2,42 +2,38 @@ DEFINE_TEST(test_0) DEFINE_TEST(test_basic) DEFINE_TEST(test_copy) DEFINE_TEST(test_empty_mtree) -DEFINE_TEST(test_extract_tar_Z) DEFINE_TEST(test_extract_tar_bz2) DEFINE_TEST(test_extract_tar_grz) DEFINE_TEST(test_extract_tar_gz) DEFINE_TEST(test_extract_tar_lrz) -DEFINE_TEST(test_extract_tar_lz) DEFINE_TEST(test_extract_tar_lz4) +DEFINE_TEST(test_extract_tar_lz) DEFINE_TEST(test_extract_tar_lzma) DEFINE_TEST(test_extract_tar_lzo) DEFINE_TEST(test_extract_tar_xz) +DEFINE_TEST(test_extract_tar_Z) DEFINE_TEST(test_extract_tar_zstd) DEFINE_TEST(test_format_newc) DEFINE_TEST(test_help) DEFINE_TEST(test_leading_slash) DEFINE_TEST(test_missing_file) -DEFINE_TEST(test_option_C_mtree) -DEFINE_TEST(test_option_C_upper) -DEFINE_TEST(test_option_H_upper) -DEFINE_TEST(test_option_L_upper) -DEFINE_TEST(test_option_O_upper) -DEFINE_TEST(test_option_T_upper) -DEFINE_TEST(test_option_U_upper) -DEFINE_TEST(test_option_X_upper) DEFINE_TEST(test_option_a) DEFINE_TEST(test_option_acls) -DEFINE_TEST(test_option_b) DEFINE_TEST(test_option_b64encode) +DEFINE_TEST(test_option_b) +DEFINE_TEST(test_option_C_mtree) +DEFINE_TEST(test_option_C_upper) DEFINE_TEST(test_option_exclude) DEFINE_TEST(test_option_exclude_vcs) DEFINE_TEST(test_option_fflags) DEFINE_TEST(test_option_gid_gname) DEFINE_TEST(test_option_grzip) +DEFINE_TEST(test_option_H_upper) DEFINE_TEST(test_option_j) DEFINE_TEST(test_option_k) DEFINE_TEST(test_option_keep_newer_files) DEFINE_TEST(test_option_lrzip) +DEFINE_TEST(test_option_L_upper) DEFINE_TEST(test_option_lz4) DEFINE_TEST(test_option_lzma) DEFINE_TEST(test_option_lzop) @@ -45,14 +41,18 @@ DEFINE_TEST(test_option_n) DEFINE_TEST(test_option_newer_than) DEFINE_TEST(test_option_nodump) DEFINE_TEST(test_option_older_than) +DEFINE_TEST(test_option_O_upper) DEFINE_TEST(test_option_passphrase) DEFINE_TEST(test_option_q) DEFINE_TEST(test_option_r) -DEFINE_TEST(test_option_s) DEFINE_TEST(test_option_safe_writes) +DEFINE_TEST(test_option_s) +DEFINE_TEST(test_option_T_upper) DEFINE_TEST(test_option_uid_uname) DEFINE_TEST(test_option_uuencode) +DEFINE_TEST(test_option_U_upper) DEFINE_TEST(test_option_xattrs) +DEFINE_TEST(test_option_X_upper) DEFINE_TEST(test_option_xz) DEFINE_TEST(test_option_z) DEFINE_TEST(test_option_zstd) diff --git a/dependencies/libarchive-3.4.2/tar/test/test.h b/dependencies/libarchive-3.5.2/tar/test/test.h similarity index 100% rename from dependencies/libarchive-3.4.2/tar/test/test.h rename to dependencies/libarchive-3.5.2/tar/test/test.h diff --git a/dependencies/libarchive-3.4.2/tar/test/test_0.c b/dependencies/libarchive-3.5.2/tar/test/test_0.c similarity index 100% rename from dependencies/libarchive-3.4.2/tar/test/test_0.c rename to dependencies/libarchive-3.5.2/tar/test/test_0.c diff --git a/dependencies/libarchive-3.4.2/tar/test/test_basic.c b/dependencies/libarchive-3.5.2/tar/test/test_basic.c similarity index 100% rename from dependencies/libarchive-3.4.2/tar/test/test_basic.c rename to dependencies/libarchive-3.5.2/tar/test/test_basic.c diff --git a/dependencies/libarchive-3.4.2/tar/test/test_copy.c b/dependencies/libarchive-3.5.2/tar/test/test_copy.c similarity index 100% rename from dependencies/libarchive-3.4.2/tar/test/test_copy.c rename to dependencies/libarchive-3.5.2/tar/test/test_copy.c diff --git a/dependencies/libarchive-3.4.2/tar/test/test_empty_mtree.c b/dependencies/libarchive-3.5.2/tar/test/test_empty_mtree.c similarity index 100% rename from dependencies/libarchive-3.4.2/tar/test/test_empty_mtree.c rename to dependencies/libarchive-3.5.2/tar/test/test_empty_mtree.c diff --git a/dependencies/libarchive-3.4.2/tar/test/test_extract.tar.Z.uu b/dependencies/libarchive-3.5.2/tar/test/test_extract.tar.Z.uu similarity index 100% rename from dependencies/libarchive-3.4.2/tar/test/test_extract.tar.Z.uu rename to dependencies/libarchive-3.5.2/tar/test/test_extract.tar.Z.uu diff --git a/dependencies/libarchive-3.4.2/tar/test/test_extract.tar.bz2.uu b/dependencies/libarchive-3.5.2/tar/test/test_extract.tar.bz2.uu similarity index 100% rename from dependencies/libarchive-3.4.2/tar/test/test_extract.tar.bz2.uu rename to dependencies/libarchive-3.5.2/tar/test/test_extract.tar.bz2.uu diff --git a/dependencies/libarchive-3.4.2/tar/test/test_extract.tar.grz.uu b/dependencies/libarchive-3.5.2/tar/test/test_extract.tar.grz.uu similarity index 100% rename from dependencies/libarchive-3.4.2/tar/test/test_extract.tar.grz.uu rename to dependencies/libarchive-3.5.2/tar/test/test_extract.tar.grz.uu diff --git a/dependencies/libarchive-3.4.2/tar/test/test_extract.tar.gz.uu b/dependencies/libarchive-3.5.2/tar/test/test_extract.tar.gz.uu similarity index 100% rename from dependencies/libarchive-3.4.2/tar/test/test_extract.tar.gz.uu rename to dependencies/libarchive-3.5.2/tar/test/test_extract.tar.gz.uu diff --git a/dependencies/libarchive-3.4.2/tar/test/test_extract.tar.lrz.uu b/dependencies/libarchive-3.5.2/tar/test/test_extract.tar.lrz.uu similarity index 100% rename from dependencies/libarchive-3.4.2/tar/test/test_extract.tar.lrz.uu rename to dependencies/libarchive-3.5.2/tar/test/test_extract.tar.lrz.uu diff --git a/dependencies/libarchive-3.4.2/tar/test/test_extract.tar.lz.uu b/dependencies/libarchive-3.5.2/tar/test/test_extract.tar.lz.uu similarity index 100% rename from dependencies/libarchive-3.4.2/tar/test/test_extract.tar.lz.uu rename to dependencies/libarchive-3.5.2/tar/test/test_extract.tar.lz.uu diff --git a/dependencies/libarchive-3.4.2/tar/test/test_extract.tar.lz4.uu b/dependencies/libarchive-3.5.2/tar/test/test_extract.tar.lz4.uu similarity index 100% rename from dependencies/libarchive-3.4.2/tar/test/test_extract.tar.lz4.uu rename to dependencies/libarchive-3.5.2/tar/test/test_extract.tar.lz4.uu diff --git a/dependencies/libarchive-3.4.2/tar/test/test_extract.tar.lzma.uu b/dependencies/libarchive-3.5.2/tar/test/test_extract.tar.lzma.uu similarity index 100% rename from dependencies/libarchive-3.4.2/tar/test/test_extract.tar.lzma.uu rename to dependencies/libarchive-3.5.2/tar/test/test_extract.tar.lzma.uu diff --git a/dependencies/libarchive-3.4.2/tar/test/test_extract.tar.lzo.uu b/dependencies/libarchive-3.5.2/tar/test/test_extract.tar.lzo.uu similarity index 100% rename from dependencies/libarchive-3.4.2/tar/test/test_extract.tar.lzo.uu rename to dependencies/libarchive-3.5.2/tar/test/test_extract.tar.lzo.uu diff --git a/dependencies/libarchive-3.4.2/tar/test/test_extract.tar.xz.uu b/dependencies/libarchive-3.5.2/tar/test/test_extract.tar.xz.uu similarity index 100% rename from dependencies/libarchive-3.4.2/tar/test/test_extract.tar.xz.uu rename to dependencies/libarchive-3.5.2/tar/test/test_extract.tar.xz.uu diff --git a/dependencies/libarchive-3.4.2/tar/test/test_extract.tar.zst.uu b/dependencies/libarchive-3.5.2/tar/test/test_extract.tar.zst.uu similarity index 100% rename from dependencies/libarchive-3.4.2/tar/test/test_extract.tar.zst.uu rename to dependencies/libarchive-3.5.2/tar/test/test_extract.tar.zst.uu diff --git a/dependencies/libarchive-3.4.2/tar/test/test_extract_tar_Z.c b/dependencies/libarchive-3.5.2/tar/test/test_extract_tar_Z.c similarity index 100% rename from dependencies/libarchive-3.4.2/tar/test/test_extract_tar_Z.c rename to dependencies/libarchive-3.5.2/tar/test/test_extract_tar_Z.c diff --git a/dependencies/libarchive-3.4.2/tar/test/test_extract_tar_bz2.c b/dependencies/libarchive-3.5.2/tar/test/test_extract_tar_bz2.c similarity index 100% rename from dependencies/libarchive-3.4.2/tar/test/test_extract_tar_bz2.c rename to dependencies/libarchive-3.5.2/tar/test/test_extract_tar_bz2.c diff --git a/dependencies/libarchive-3.4.2/tar/test/test_extract_tar_grz.c b/dependencies/libarchive-3.5.2/tar/test/test_extract_tar_grz.c similarity index 100% rename from dependencies/libarchive-3.4.2/tar/test/test_extract_tar_grz.c rename to dependencies/libarchive-3.5.2/tar/test/test_extract_tar_grz.c diff --git a/dependencies/libarchive-3.4.2/tar/test/test_extract_tar_gz.c b/dependencies/libarchive-3.5.2/tar/test/test_extract_tar_gz.c similarity index 100% rename from dependencies/libarchive-3.4.2/tar/test/test_extract_tar_gz.c rename to dependencies/libarchive-3.5.2/tar/test/test_extract_tar_gz.c diff --git a/dependencies/libarchive-3.4.2/tar/test/test_extract_tar_lrz.c b/dependencies/libarchive-3.5.2/tar/test/test_extract_tar_lrz.c similarity index 100% rename from dependencies/libarchive-3.4.2/tar/test/test_extract_tar_lrz.c rename to dependencies/libarchive-3.5.2/tar/test/test_extract_tar_lrz.c diff --git a/dependencies/libarchive-3.4.2/tar/test/test_extract_tar_lz.c b/dependencies/libarchive-3.5.2/tar/test/test_extract_tar_lz.c similarity index 100% rename from dependencies/libarchive-3.4.2/tar/test/test_extract_tar_lz.c rename to dependencies/libarchive-3.5.2/tar/test/test_extract_tar_lz.c diff --git a/dependencies/libarchive-3.4.2/tar/test/test_extract_tar_lz4.c b/dependencies/libarchive-3.5.2/tar/test/test_extract_tar_lz4.c similarity index 100% rename from dependencies/libarchive-3.4.2/tar/test/test_extract_tar_lz4.c rename to dependencies/libarchive-3.5.2/tar/test/test_extract_tar_lz4.c diff --git a/dependencies/libarchive-3.4.2/tar/test/test_extract_tar_lzma.c b/dependencies/libarchive-3.5.2/tar/test/test_extract_tar_lzma.c similarity index 100% rename from dependencies/libarchive-3.4.2/tar/test/test_extract_tar_lzma.c rename to dependencies/libarchive-3.5.2/tar/test/test_extract_tar_lzma.c diff --git a/dependencies/libarchive-3.4.2/tar/test/test_extract_tar_lzo.c b/dependencies/libarchive-3.5.2/tar/test/test_extract_tar_lzo.c similarity index 100% rename from dependencies/libarchive-3.4.2/tar/test/test_extract_tar_lzo.c rename to dependencies/libarchive-3.5.2/tar/test/test_extract_tar_lzo.c diff --git a/dependencies/libarchive-3.4.2/tar/test/test_extract_tar_xz.c b/dependencies/libarchive-3.5.2/tar/test/test_extract_tar_xz.c similarity index 100% rename from dependencies/libarchive-3.4.2/tar/test/test_extract_tar_xz.c rename to dependencies/libarchive-3.5.2/tar/test/test_extract_tar_xz.c diff --git a/dependencies/libarchive-3.4.2/tar/test/test_extract_tar_zstd.c b/dependencies/libarchive-3.5.2/tar/test/test_extract_tar_zstd.c similarity index 100% rename from dependencies/libarchive-3.4.2/tar/test/test_extract_tar_zstd.c rename to dependencies/libarchive-3.5.2/tar/test/test_extract_tar_zstd.c diff --git a/dependencies/libarchive-3.4.2/tar/test/test_format_newc.c b/dependencies/libarchive-3.5.2/tar/test/test_format_newc.c similarity index 100% rename from dependencies/libarchive-3.4.2/tar/test/test_format_newc.c rename to dependencies/libarchive-3.5.2/tar/test/test_format_newc.c diff --git a/dependencies/libarchive-3.4.2/tar/test/test_help.c b/dependencies/libarchive-3.5.2/tar/test/test_help.c similarity index 100% rename from dependencies/libarchive-3.4.2/tar/test/test_help.c rename to dependencies/libarchive-3.5.2/tar/test/test_help.c diff --git a/dependencies/libarchive-3.4.2/tar/test/test_leading_slash.c b/dependencies/libarchive-3.5.2/tar/test/test_leading_slash.c similarity index 100% rename from dependencies/libarchive-3.4.2/tar/test/test_leading_slash.c rename to dependencies/libarchive-3.5.2/tar/test/test_leading_slash.c diff --git a/dependencies/libarchive-3.4.2/tar/test/test_leading_slash.tar.uu b/dependencies/libarchive-3.5.2/tar/test/test_leading_slash.tar.uu similarity index 100% rename from dependencies/libarchive-3.4.2/tar/test/test_leading_slash.tar.uu rename to dependencies/libarchive-3.5.2/tar/test/test_leading_slash.tar.uu diff --git a/dependencies/libarchive-3.4.2/tar/test/test_missing_file.c b/dependencies/libarchive-3.5.2/tar/test/test_missing_file.c similarity index 100% rename from dependencies/libarchive-3.4.2/tar/test/test_missing_file.c rename to dependencies/libarchive-3.5.2/tar/test/test_missing_file.c diff --git a/dependencies/libarchive-3.4.2/tar/test/test_option_C_mtree.c b/dependencies/libarchive-3.5.2/tar/test/test_option_C_mtree.c similarity index 100% rename from dependencies/libarchive-3.4.2/tar/test/test_option_C_mtree.c rename to dependencies/libarchive-3.5.2/tar/test/test_option_C_mtree.c diff --git a/dependencies/libarchive-3.4.2/tar/test/test_option_C_upper.c b/dependencies/libarchive-3.5.2/tar/test/test_option_C_upper.c similarity index 100% rename from dependencies/libarchive-3.4.2/tar/test/test_option_C_upper.c rename to dependencies/libarchive-3.5.2/tar/test/test_option_C_upper.c diff --git a/dependencies/libarchive-3.4.2/tar/test/test_option_H_upper.c b/dependencies/libarchive-3.5.2/tar/test/test_option_H_upper.c similarity index 100% rename from dependencies/libarchive-3.4.2/tar/test/test_option_H_upper.c rename to dependencies/libarchive-3.5.2/tar/test/test_option_H_upper.c diff --git a/dependencies/libarchive-3.4.2/tar/test/test_option_L_upper.c b/dependencies/libarchive-3.5.2/tar/test/test_option_L_upper.c similarity index 100% rename from dependencies/libarchive-3.4.2/tar/test/test_option_L_upper.c rename to dependencies/libarchive-3.5.2/tar/test/test_option_L_upper.c diff --git a/dependencies/libarchive-3.4.2/tar/test/test_option_O_upper.c b/dependencies/libarchive-3.5.2/tar/test/test_option_O_upper.c similarity index 100% rename from dependencies/libarchive-3.4.2/tar/test/test_option_O_upper.c rename to dependencies/libarchive-3.5.2/tar/test/test_option_O_upper.c diff --git a/dependencies/libarchive-3.4.2/tar/test/test_option_T_upper.c b/dependencies/libarchive-3.5.2/tar/test/test_option_T_upper.c similarity index 100% rename from dependencies/libarchive-3.4.2/tar/test/test_option_T_upper.c rename to dependencies/libarchive-3.5.2/tar/test/test_option_T_upper.c diff --git a/dependencies/libarchive-3.4.2/tar/test/test_option_U_upper.c b/dependencies/libarchive-3.5.2/tar/test/test_option_U_upper.c similarity index 100% rename from dependencies/libarchive-3.4.2/tar/test/test_option_U_upper.c rename to dependencies/libarchive-3.5.2/tar/test/test_option_U_upper.c diff --git a/dependencies/libarchive-3.4.2/tar/test/test_option_X_upper.c b/dependencies/libarchive-3.5.2/tar/test/test_option_X_upper.c similarity index 100% rename from dependencies/libarchive-3.4.2/tar/test/test_option_X_upper.c rename to dependencies/libarchive-3.5.2/tar/test/test_option_X_upper.c diff --git a/dependencies/libarchive-3.4.2/tar/test/test_option_a.c b/dependencies/libarchive-3.5.2/tar/test/test_option_a.c similarity index 100% rename from dependencies/libarchive-3.4.2/tar/test/test_option_a.c rename to dependencies/libarchive-3.5.2/tar/test/test_option_a.c diff --git a/dependencies/libarchive-3.4.2/tar/test/test_option_acls.c b/dependencies/libarchive-3.5.2/tar/test/test_option_acls.c similarity index 100% rename from dependencies/libarchive-3.4.2/tar/test/test_option_acls.c rename to dependencies/libarchive-3.5.2/tar/test/test_option_acls.c diff --git a/dependencies/libarchive-3.4.2/tar/test/test_option_b.c b/dependencies/libarchive-3.5.2/tar/test/test_option_b.c similarity index 100% rename from dependencies/libarchive-3.4.2/tar/test/test_option_b.c rename to dependencies/libarchive-3.5.2/tar/test/test_option_b.c diff --git a/dependencies/libarchive-3.4.2/tar/test/test_option_b64encode.c b/dependencies/libarchive-3.5.2/tar/test/test_option_b64encode.c similarity index 100% rename from dependencies/libarchive-3.4.2/tar/test/test_option_b64encode.c rename to dependencies/libarchive-3.5.2/tar/test/test_option_b64encode.c diff --git a/dependencies/libarchive-3.4.2/tar/test/test_option_exclude.c b/dependencies/libarchive-3.5.2/tar/test/test_option_exclude.c similarity index 100% rename from dependencies/libarchive-3.4.2/tar/test/test_option_exclude.c rename to dependencies/libarchive-3.5.2/tar/test/test_option_exclude.c diff --git a/dependencies/libarchive-3.4.2/tar/test/test_option_exclude_vcs.c b/dependencies/libarchive-3.5.2/tar/test/test_option_exclude_vcs.c similarity index 100% rename from dependencies/libarchive-3.4.2/tar/test/test_option_exclude_vcs.c rename to dependencies/libarchive-3.5.2/tar/test/test_option_exclude_vcs.c diff --git a/dependencies/libarchive-3.4.2/tar/test/test_option_fflags.c b/dependencies/libarchive-3.5.2/tar/test/test_option_fflags.c similarity index 100% rename from dependencies/libarchive-3.4.2/tar/test/test_option_fflags.c rename to dependencies/libarchive-3.5.2/tar/test/test_option_fflags.c diff --git a/dependencies/libarchive-3.4.2/tar/test/test_option_gid_gname.c b/dependencies/libarchive-3.5.2/tar/test/test_option_gid_gname.c similarity index 100% rename from dependencies/libarchive-3.4.2/tar/test/test_option_gid_gname.c rename to dependencies/libarchive-3.5.2/tar/test/test_option_gid_gname.c diff --git a/dependencies/libarchive-3.4.2/tar/test/test_option_grzip.c b/dependencies/libarchive-3.5.2/tar/test/test_option_grzip.c similarity index 100% rename from dependencies/libarchive-3.4.2/tar/test/test_option_grzip.c rename to dependencies/libarchive-3.5.2/tar/test/test_option_grzip.c diff --git a/dependencies/libarchive-3.4.2/tar/test/test_option_j.c b/dependencies/libarchive-3.5.2/tar/test/test_option_j.c similarity index 100% rename from dependencies/libarchive-3.4.2/tar/test/test_option_j.c rename to dependencies/libarchive-3.5.2/tar/test/test_option_j.c diff --git a/dependencies/libarchive-3.4.2/tar/test/test_option_k.c b/dependencies/libarchive-3.5.2/tar/test/test_option_k.c similarity index 100% rename from dependencies/libarchive-3.4.2/tar/test/test_option_k.c rename to dependencies/libarchive-3.5.2/tar/test/test_option_k.c diff --git a/dependencies/libarchive-3.4.2/tar/test/test_option_keep_newer_files.c b/dependencies/libarchive-3.5.2/tar/test/test_option_keep_newer_files.c similarity index 100% rename from dependencies/libarchive-3.4.2/tar/test/test_option_keep_newer_files.c rename to dependencies/libarchive-3.5.2/tar/test/test_option_keep_newer_files.c diff --git a/dependencies/libarchive-3.4.2/tar/test/test_option_keep_newer_files.tar.Z.uu b/dependencies/libarchive-3.5.2/tar/test/test_option_keep_newer_files.tar.Z.uu similarity index 100% rename from dependencies/libarchive-3.4.2/tar/test/test_option_keep_newer_files.tar.Z.uu rename to dependencies/libarchive-3.5.2/tar/test/test_option_keep_newer_files.tar.Z.uu diff --git a/dependencies/libarchive-3.4.2/tar/test/test_option_lrzip.c b/dependencies/libarchive-3.5.2/tar/test/test_option_lrzip.c similarity index 100% rename from dependencies/libarchive-3.4.2/tar/test/test_option_lrzip.c rename to dependencies/libarchive-3.5.2/tar/test/test_option_lrzip.c diff --git a/dependencies/libarchive-3.4.2/tar/test/test_option_lz4.c b/dependencies/libarchive-3.5.2/tar/test/test_option_lz4.c similarity index 100% rename from dependencies/libarchive-3.4.2/tar/test/test_option_lz4.c rename to dependencies/libarchive-3.5.2/tar/test/test_option_lz4.c diff --git a/dependencies/libarchive-3.4.2/tar/test/test_option_lzma.c b/dependencies/libarchive-3.5.2/tar/test/test_option_lzma.c similarity index 100% rename from dependencies/libarchive-3.4.2/tar/test/test_option_lzma.c rename to dependencies/libarchive-3.5.2/tar/test/test_option_lzma.c diff --git a/dependencies/libarchive-3.4.2/tar/test/test_option_lzop.c b/dependencies/libarchive-3.5.2/tar/test/test_option_lzop.c similarity index 100% rename from dependencies/libarchive-3.4.2/tar/test/test_option_lzop.c rename to dependencies/libarchive-3.5.2/tar/test/test_option_lzop.c diff --git a/dependencies/libarchive-3.4.2/tar/test/test_option_n.c b/dependencies/libarchive-3.5.2/tar/test/test_option_n.c similarity index 100% rename from dependencies/libarchive-3.4.2/tar/test/test_option_n.c rename to dependencies/libarchive-3.5.2/tar/test/test_option_n.c diff --git a/dependencies/libarchive-3.4.2/tar/test/test_option_newer_than.c b/dependencies/libarchive-3.5.2/tar/test/test_option_newer_than.c similarity index 100% rename from dependencies/libarchive-3.4.2/tar/test/test_option_newer_than.c rename to dependencies/libarchive-3.5.2/tar/test/test_option_newer_than.c diff --git a/dependencies/libarchive-3.4.2/tar/test/test_option_nodump.c b/dependencies/libarchive-3.5.2/tar/test/test_option_nodump.c similarity index 100% rename from dependencies/libarchive-3.4.2/tar/test/test_option_nodump.c rename to dependencies/libarchive-3.5.2/tar/test/test_option_nodump.c diff --git a/dependencies/libarchive-3.4.2/tar/test/test_option_older_than.c b/dependencies/libarchive-3.5.2/tar/test/test_option_older_than.c similarity index 100% rename from dependencies/libarchive-3.4.2/tar/test/test_option_older_than.c rename to dependencies/libarchive-3.5.2/tar/test/test_option_older_than.c diff --git a/dependencies/libarchive-3.4.2/tar/test/test_option_passphrase.c b/dependencies/libarchive-3.5.2/tar/test/test_option_passphrase.c similarity index 100% rename from dependencies/libarchive-3.4.2/tar/test/test_option_passphrase.c rename to dependencies/libarchive-3.5.2/tar/test/test_option_passphrase.c diff --git a/dependencies/libarchive-3.4.2/tar/test/test_option_passphrase.zip.uu b/dependencies/libarchive-3.5.2/tar/test/test_option_passphrase.zip.uu similarity index 100% rename from dependencies/libarchive-3.4.2/tar/test/test_option_passphrase.zip.uu rename to dependencies/libarchive-3.5.2/tar/test/test_option_passphrase.zip.uu diff --git a/dependencies/libarchive-3.4.2/tar/test/test_option_q.c b/dependencies/libarchive-3.5.2/tar/test/test_option_q.c similarity index 100% rename from dependencies/libarchive-3.4.2/tar/test/test_option_q.c rename to dependencies/libarchive-3.5.2/tar/test/test_option_q.c diff --git a/dependencies/libarchive-3.4.2/tar/test/test_option_r.c b/dependencies/libarchive-3.5.2/tar/test/test_option_r.c similarity index 100% rename from dependencies/libarchive-3.4.2/tar/test/test_option_r.c rename to dependencies/libarchive-3.5.2/tar/test/test_option_r.c diff --git a/dependencies/libarchive-3.4.2/tar/test/test_option_s.c b/dependencies/libarchive-3.5.2/tar/test/test_option_s.c similarity index 100% rename from dependencies/libarchive-3.4.2/tar/test/test_option_s.c rename to dependencies/libarchive-3.5.2/tar/test/test_option_s.c diff --git a/dependencies/libarchive-3.4.2/tar/test/test_option_s.tar.Z.uu b/dependencies/libarchive-3.5.2/tar/test/test_option_s.tar.Z.uu similarity index 100% rename from dependencies/libarchive-3.4.2/tar/test/test_option_s.tar.Z.uu rename to dependencies/libarchive-3.5.2/tar/test/test_option_s.tar.Z.uu diff --git a/dependencies/libarchive-3.4.2/tar/test/test_option_safe_writes.c b/dependencies/libarchive-3.5.2/tar/test/test_option_safe_writes.c similarity index 98% rename from dependencies/libarchive-3.4.2/tar/test/test_option_safe_writes.c rename to dependencies/libarchive-3.5.2/tar/test/test_option_safe_writes.c index 8edf5c6..7b42e8f 100644 --- a/dependencies/libarchive-3.4.2/tar/test/test_option_safe_writes.c +++ b/dependencies/libarchive-3.5.2/tar/test/test_option_safe_writes.c @@ -58,7 +58,7 @@ DEFINE_TEST(test_option_safe_writes) } assertEqualInt(0, chdir("..")); - /* Extract created archive withe safe writes */ + /* Extract created archive with safe writes */ assertEqualInt(0, systemf("%s -x -C out --safe-writes -f t.tar " ">unpack.out 2>unpack.err", testprog)); diff --git a/dependencies/libarchive-3.4.2/tar/test/test_option_uid_uname.c b/dependencies/libarchive-3.5.2/tar/test/test_option_uid_uname.c similarity index 100% rename from dependencies/libarchive-3.4.2/tar/test/test_option_uid_uname.c rename to dependencies/libarchive-3.5.2/tar/test/test_option_uid_uname.c diff --git a/dependencies/libarchive-3.4.2/tar/test/test_option_uuencode.c b/dependencies/libarchive-3.5.2/tar/test/test_option_uuencode.c similarity index 100% rename from dependencies/libarchive-3.4.2/tar/test/test_option_uuencode.c rename to dependencies/libarchive-3.5.2/tar/test/test_option_uuencode.c diff --git a/dependencies/libarchive-3.4.2/tar/test/test_option_xattrs.c b/dependencies/libarchive-3.5.2/tar/test/test_option_xattrs.c similarity index 100% rename from dependencies/libarchive-3.4.2/tar/test/test_option_xattrs.c rename to dependencies/libarchive-3.5.2/tar/test/test_option_xattrs.c diff --git a/dependencies/libarchive-3.4.2/tar/test/test_option_xz.c b/dependencies/libarchive-3.5.2/tar/test/test_option_xz.c similarity index 100% rename from dependencies/libarchive-3.4.2/tar/test/test_option_xz.c rename to dependencies/libarchive-3.5.2/tar/test/test_option_xz.c diff --git a/dependencies/libarchive-3.4.2/tar/test/test_option_z.c b/dependencies/libarchive-3.5.2/tar/test/test_option_z.c similarity index 100% rename from dependencies/libarchive-3.4.2/tar/test/test_option_z.c rename to dependencies/libarchive-3.5.2/tar/test/test_option_z.c diff --git a/dependencies/libarchive-3.4.2/tar/test/test_option_zstd.c b/dependencies/libarchive-3.5.2/tar/test/test_option_zstd.c similarity index 100% rename from dependencies/libarchive-3.4.2/tar/test/test_option_zstd.c rename to dependencies/libarchive-3.5.2/tar/test/test_option_zstd.c diff --git a/dependencies/libarchive-3.4.2/tar/test/test_patterns.c b/dependencies/libarchive-3.5.2/tar/test/test_patterns.c similarity index 100% rename from dependencies/libarchive-3.4.2/tar/test/test_patterns.c rename to dependencies/libarchive-3.5.2/tar/test/test_patterns.c diff --git a/dependencies/libarchive-3.4.2/tar/test/test_patterns_2.tar.uu b/dependencies/libarchive-3.5.2/tar/test/test_patterns_2.tar.uu similarity index 100% rename from dependencies/libarchive-3.4.2/tar/test/test_patterns_2.tar.uu rename to dependencies/libarchive-3.5.2/tar/test/test_patterns_2.tar.uu diff --git a/dependencies/libarchive-3.4.2/tar/test/test_patterns_3.tar.uu b/dependencies/libarchive-3.5.2/tar/test/test_patterns_3.tar.uu similarity index 100% rename from dependencies/libarchive-3.4.2/tar/test/test_patterns_3.tar.uu rename to dependencies/libarchive-3.5.2/tar/test/test_patterns_3.tar.uu diff --git a/dependencies/libarchive-3.4.2/tar/test/test_patterns_4.tar.uu b/dependencies/libarchive-3.5.2/tar/test/test_patterns_4.tar.uu similarity index 100% rename from dependencies/libarchive-3.4.2/tar/test/test_patterns_4.tar.uu rename to dependencies/libarchive-3.5.2/tar/test/test_patterns_4.tar.uu diff --git a/dependencies/libarchive-3.4.2/tar/test/test_print_longpath.c b/dependencies/libarchive-3.5.2/tar/test/test_print_longpath.c similarity index 100% rename from dependencies/libarchive-3.4.2/tar/test/test_print_longpath.c rename to dependencies/libarchive-3.5.2/tar/test/test_print_longpath.c diff --git a/dependencies/libarchive-3.4.2/tar/test/test_print_longpath.tar.Z.uu b/dependencies/libarchive-3.5.2/tar/test/test_print_longpath.tar.Z.uu similarity index 100% rename from dependencies/libarchive-3.4.2/tar/test/test_print_longpath.tar.Z.uu rename to dependencies/libarchive-3.5.2/tar/test/test_print_longpath.tar.Z.uu diff --git a/dependencies/libarchive-3.4.2/tar/test/test_stdio.c b/dependencies/libarchive-3.5.2/tar/test/test_stdio.c similarity index 100% rename from dependencies/libarchive-3.4.2/tar/test/test_stdio.c rename to dependencies/libarchive-3.5.2/tar/test/test_stdio.c diff --git a/dependencies/libarchive-3.4.2/tar/test/test_strip_components.c b/dependencies/libarchive-3.5.2/tar/test/test_strip_components.c similarity index 100% rename from dependencies/libarchive-3.4.2/tar/test/test_strip_components.c rename to dependencies/libarchive-3.5.2/tar/test/test_strip_components.c diff --git a/dependencies/libarchive-3.4.2/tar/test/test_symlink_dir.c b/dependencies/libarchive-3.5.2/tar/test/test_symlink_dir.c similarity index 100% rename from dependencies/libarchive-3.4.2/tar/test/test_symlink_dir.c rename to dependencies/libarchive-3.5.2/tar/test/test_symlink_dir.c diff --git a/dependencies/libarchive-3.4.2/tar/test/test_version.c b/dependencies/libarchive-3.5.2/tar/test/test_version.c similarity index 100% rename from dependencies/libarchive-3.4.2/tar/test/test_version.c rename to dependencies/libarchive-3.5.2/tar/test/test_version.c diff --git a/dependencies/libarchive-3.4.2/tar/test/test_windows.c b/dependencies/libarchive-3.5.2/tar/test/test_windows.c similarity index 100% rename from dependencies/libarchive-3.4.2/tar/test/test_windows.c rename to dependencies/libarchive-3.5.2/tar/test/test_windows.c diff --git a/dependencies/libarchive-3.4.2/tar/util.c b/dependencies/libarchive-3.5.2/tar/util.c similarity index 100% rename from dependencies/libarchive-3.4.2/tar/util.c rename to dependencies/libarchive-3.5.2/tar/util.c diff --git a/dependencies/libarchive-3.4.2/tar/write.c b/dependencies/libarchive-3.5.2/tar/write.c similarity index 100% rename from dependencies/libarchive-3.4.2/tar/write.c rename to dependencies/libarchive-3.5.2/tar/write.c diff --git a/dependencies/libarchive-3.4.2/test_utils/test_common.h b/dependencies/libarchive-3.5.2/test_utils/test_common.h similarity index 98% rename from dependencies/libarchive-3.4.2/test_utils/test_common.h rename to dependencies/libarchive-3.5.2/test_utils/test_common.h index 80d54f0..42119c0 100644 --- a/dependencies/libarchive-3.4.2/test_utils/test_common.h +++ b/dependencies/libarchive-3.5.2/test_utils/test_common.h @@ -169,6 +169,9 @@ /* chdir() and error if it fails */ #define assertChdir(path) \ assertion_chdir(__FILE__, __LINE__, path) +/* change file/directory permissions and errors if it fails */ +#define assertChmod(pathname, mode) \ + assertion_chmod(__FILE__, __LINE__, pathname, mode) /* Assert two files have the same file flags */ #define assertEqualFflags(patha, pathb) \ assertion_compare_fflags(__FILE__, __LINE__, patha, pathb, 0) @@ -282,6 +285,7 @@ void failure(const char *fmt, ...) __LA_PRINTFLIKE(1, 2); int assertion_assert(const char *, int, int, const char *, void *); int assertion_chdir(const char *, int, const char *); +int assertion_chmod(const char *, int, const char *, int); int assertion_compare_fflags(const char *, int, const char *, const char *, int); int assertion_empty_file(const char *, int, const char *); diff --git a/dependencies/libarchive-3.4.2/test_utils/test_main.c b/dependencies/libarchive-3.5.2/test_utils/test_main.c similarity index 99% rename from dependencies/libarchive-3.4.2/test_utils/test_main.c rename to dependencies/libarchive-3.5.2/test_utils/test_main.c index 7b8aa70..c1c03cd 100644 --- a/dependencies/libarchive-3.4.2/test_utils/test_main.c +++ b/dependencies/libarchive-3.5.2/test_utils/test_main.c @@ -475,7 +475,7 @@ static struct line { int count; int skip; } failed_lines[10000]; -const char *failed_filename; +static const char *failed_filename; /* Count this failure, setup up log destination and handle initial report. */ static void __LA_PRINTFLIKE(3, 4) @@ -597,6 +597,19 @@ assertion_chdir(const char *file, int line, const char *pathname) } +/* change file/directory permissions and errors if it fails */ +int +assertion_chmod(const char *file, int line, const char *pathname, int mode) +{ + assertion_count(file, line); + if (chmod(pathname, mode) == 0) + return (1); + failure_start(file, line, "chmod(\"%s\", %4.o)", pathname, mode); + failure_finish(NULL); + return (0); + +} + /* Verify two integers are equal. */ int assertion_equal_int(const char *file, int line, @@ -3458,7 +3471,7 @@ assertion_entry_compare_acls(const char *file, int line, /* Use "list.h" to create a list of all tests (functions and names). */ #undef DEFINE_TEST #define DEFINE_TEST(n) { n, #n, 0 }, -struct test_list_t tests[] = { +static struct test_list_t tests[] = { #include "list.h" }; @@ -3667,7 +3680,7 @@ get_refdir(const char *d) } /* Get the current dir. */ -#ifdef PATH_MAX +#if defined(PATH_MAX) && !defined(__GLIBC__) pwd = getcwd(NULL, PATH_MAX);/* Solaris getcwd needs the size. */ #else pwd = getcwd(NULL, 0); @@ -3762,7 +3775,7 @@ main(int argc, char **argv) (void)argc; /* UNUSED */ /* Get the current dir. */ -#ifdef PATH_MAX +#if defined(PATH_MAX) && !defined(__GLIBC__) pwd = getcwd(NULL, PATH_MAX);/* Solaris getcwd needs the size. */ #else pwd = getcwd(NULL, 0); diff --git a/dependencies/libarchive-3.4.2/test_utils/test_utils.c b/dependencies/libarchive-3.5.2/test_utils/test_utils.c similarity index 100% rename from dependencies/libarchive-3.4.2/test_utils/test_utils.c rename to dependencies/libarchive-3.5.2/test_utils/test_utils.c diff --git a/dependencies/libarchive-3.4.2/test_utils/test_utils.h b/dependencies/libarchive-3.5.2/test_utils/test_utils.h similarity index 100% rename from dependencies/libarchive-3.4.2/test_utils/test_utils.h rename to dependencies/libarchive-3.5.2/test_utils/test_utils.h diff --git a/dependencies/zstd-1.5.0/.buckconfig b/dependencies/zstd-1.5.0/.buckconfig new file mode 100644 index 0000000..483f605 --- /dev/null +++ b/dependencies/zstd-1.5.0/.buckconfig @@ -0,0 +1,9 @@ +[cxx] + cppflags = -DXXH_NAMESPACE=ZSTD_ -DZSTD_LEGACY_SUPPORT=4 + cflags = -Wall -Wextra -Wcast-qual -Wcast-align -Wshadow -Wstrict-aliasing=1 -Wswitch-enum -Wdeclaration-after-statement -Wstrict-prototypes -Wundef -Wpointer-arith + cxxppflags = -DXXH_NAMESPACE=ZSTD_ -DZSTD_LEGACY_SUPPORT=4 + cxxflags = -std=c++11 -Wno-deprecated-declarations + gtest_dep = //contrib/pzstd:gtest + +[httpserver] + port = 0 diff --git a/dependencies/zstd-1.5.0/.buckversion b/dependencies/zstd-1.5.0/.buckversion new file mode 100644 index 0000000..892fad9 --- /dev/null +++ b/dependencies/zstd-1.5.0/.buckversion @@ -0,0 +1 @@ +c8dec2e8da52d483f6dd7c6cd2ad694e8e6fed2b diff --git a/dependencies/zstd-1.5.0/.circleci/config.yml b/dependencies/zstd-1.5.0/.circleci/config.yml new file mode 100644 index 0000000..c634737 --- /dev/null +++ b/dependencies/zstd-1.5.0/.circleci/config.yml @@ -0,0 +1,143 @@ +version: 2 + +jobs: + # the first half of the jobs are in this test + short-tests-0: + # TODO: Create a small custom docker image with all the dependencies we need + # preinstalled to reduce installation time. + docker: + - image: fbopensource/zstd-circleci-primary:0.0.1 + steps: + - checkout + - run: + name: Test + command: | + ./tests/test-license.py + cc -v; CFLAGS="-O0 -Werror -pedantic" make all && make clean + make c99build ; make clean + make c11build ; make clean + make aarch64build ; make clean + make -j regressiontest; make clean + make shortest ; make clean + make cxxtest ; make clean + # the second half of the jobs are in this test + short-tests-1: + docker: + - image: fbopensource/zstd-circleci-primary:0.0.1 + steps: + - checkout + - run: + name: Test + command: | + make gnu90build; make clean + make gnu99build; make clean + make ppc64build V=1; make clean + make ppcbuild V=1; make clean + make armbuild V=1; make clean + make -C tests test-legacy test-longmatch; make clean + make -C lib libzstd-nomt; make clean + # This step should only be run in a cron job + regression-test: + docker: + - image: fbopensource/zstd-circleci-primary:0.0.1 + environment: + CIRCLE_ARTIFACTS: /tmp/circleci-artifacts + steps: + - checkout + # Restore the cached resources. + - restore_cache: + # We try our best to bust the cache when the data changes by hashing + # data.c. If that doesn't work, simply update the version number here + # and below. If we fail to bust the cache, the regression testing will + # still work, since it has its own stamp, but will need to redownload + # everything. + keys: + - regression-cache-{{ checksum "tests/regression/data.c" }}-v0 + - run: + name: Regression Test + command: | + make -C programs zstd + make -C tests/regression test + mkdir -p $CIRCLE_ARTIFACTS + ./tests/regression/test \ + --cache tests/regression/cache \ + --output $CIRCLE_ARTIFACTS/results.csv \ + --zstd programs/zstd + echo "NOTE: The new results.csv is uploaded as an artifact to this job" + echo " If this fails, go to the Artifacts pane in CircleCI, " + echo " download /tmp/circleci-artifacts/results.csv, and if they " + echo " are still good, copy it into the repo and commit it." + echo "> diff tests/regression/results.csv $CIRCLE_ARTIFACTS/results.csv" + diff tests/regression/results.csv $CIRCLE_ARTIFACTS/results.csv + # Only save the cache on success (default), since if the failure happened + # before we stamp the data cache, we will have a bad cache for this key. + - save_cache: + key: regression-cache-{{ checksum "tests/regression/data.c" }}-v0 + paths: + - tests/regression/cache + - store_artifacts: + path: /tmp/circleci-artifacts + + +workflows: + version: 2 + commit: + jobs: + # Run the tests in parallel + - short-tests-0: + filters: + tags: + only: /.*/ + - short-tests-1: + filters: + tags: + only: /.*/ + # Create a branch called regression and set it to dev to force a + # regression test run + - regression-test: + filters: + branches: + only: + - regression + # Only run on release tags. + - publish-github-release: + requires: + - short-tests-0 + - short-tests-1 + filters: + branches: + ignore: /.*/ + tags: + only: /^v\d+\.\d+\.\d+$/ + nightly: + triggers: + - schedule: + cron: "0 0 * * *" + filters: + branches: + only: + - release + - dev + - master + jobs: + # Run daily long regression tests + - regression-test + + + + # Longer tests + #- make -C tests test-zstd-nolegacy && make clean + #- pyenv global 3.4.4; make -C tests versionsTest && make clean + #- make zlibwrapper && make clean + #- gcc -v; make -C tests test32 MOREFLAGS="-I/usr/include/x86_64-linux-gnu" && make clean + #- make uasan && make clean + #- make asan32 && make clean + #- make -C tests test32 CC=clang MOREFLAGS="-g -fsanitize=address -I/usr/include/x86_64-linux-gnu" + # Valgrind tests + #- CFLAGS="-O1 -g" make -C zlibWrapper valgrindTest && make clean + #- make -C tests valgrindTest && make clean + # ARM, AArch64, PowerPC, PowerPC64 tests + #- make ppctest && make clean + #- make ppc64test && make clean + #- make armtest && make clean + #- make aarch64test && make clean diff --git a/dependencies/zstd-1.5.0/.circleci/images/primary/Dockerfile b/dependencies/zstd-1.5.0/.circleci/images/primary/Dockerfile new file mode 100644 index 0000000..dd80041 --- /dev/null +++ b/dependencies/zstd-1.5.0/.circleci/images/primary/Dockerfile @@ -0,0 +1,9 @@ +FROM circleci/buildpack-deps:bionic + +RUN sudo dpkg --add-architecture i386 +RUN sudo apt-get -y -qq update +RUN sudo apt-get -y install \ + gcc-multilib-powerpc-linux-gnu gcc-arm-linux-gnueabi \ + libc6-dev-armel-cross gcc-aarch64-linux-gnu libc6-dev-arm64-cross \ + libc6-dev-ppc64-powerpc-cross zstd gzip coreutils \ + libcurl4-openssl-dev diff --git a/dependencies/zstd-1.5.0/.cirrus.yml b/dependencies/zstd-1.5.0/.cirrus.yml new file mode 100644 index 0000000..fe17aac --- /dev/null +++ b/dependencies/zstd-1.5.0/.cirrus.yml @@ -0,0 +1,11 @@ +task: + name: FreeBSD (shortest) + freebsd_instance: + matrix: + image_family: freebsd-12-2 + # The stable 11.3 image causes "Agent is not responding" so use a snapshot + image_family: freebsd-11-3-snap + install_script: pkg install -y gmake coreutils + script: | + MOREFLAGS="-Werror" gmake -j all + gmake shortest diff --git a/dependencies/zstd-1.5.0/.gitattributes b/dependencies/zstd-1.5.0/.gitattributes new file mode 100644 index 0000000..6212bd4 --- /dev/null +++ b/dependencies/zstd-1.5.0/.gitattributes @@ -0,0 +1,21 @@ +# Set the default behavior +* text eol=lf + +# Explicitly declare source files +*.c text eol=lf +*.h text eol=lf + +# Denote files that should not be modified. +*.odt binary +*.png binary + +# Visual Studio +*.sln text eol=crlf +*.vcxproj* text eol=crlf +*.vcproj* text eol=crlf +*.suo binary +*.rc text eol=crlf + +# Windows +*.bat text eol=crlf +*.cmd text eol=crlf diff --git a/dependencies/zstd-1.5.0/.github/ISSUE_TEMPLATE/bug_report.md b/dependencies/zstd-1.5.0/.github/ISSUE_TEMPLATE/bug_report.md new file mode 100644 index 0000000..bacdac2 --- /dev/null +++ b/dependencies/zstd-1.5.0/.github/ISSUE_TEMPLATE/bug_report.md @@ -0,0 +1,35 @@ +--- +name: Bug report +about: Create a report to help us improve +title: '' +labels: '' +assignees: '' + +--- + +**Describe the bug** +A clear and concise description of what the bug is. + +**To Reproduce** +Steps to reproduce the behavior: +1. Downloads data '...' +2. Run '...' with flags '...' +3. Scroll up on the log to '....' +4. See error + +**Expected behavior** +A clear and concise description of what you expected to happen. + +**Screenshots and charts** +If applicable, add screenshots and charts to help explain your problem. + +**Desktop (please complete the following information):** + - OS: [e.g. Mac] + - Version [e.g. 22] + - Compiler [e.g gcc] + - Flags [e.g O2] + - Other relevant hardware specs [e.g. Dual-core] + - Build system [e.g. Makefile] + +**Additional context** +Add any other context about the problem here. diff --git a/dependencies/zstd-1.5.0/.github/ISSUE_TEMPLATE/feature_request.md b/dependencies/zstd-1.5.0/.github/ISSUE_TEMPLATE/feature_request.md new file mode 100644 index 0000000..bbcbbe7 --- /dev/null +++ b/dependencies/zstd-1.5.0/.github/ISSUE_TEMPLATE/feature_request.md @@ -0,0 +1,20 @@ +--- +name: Feature request +about: Suggest an idea for this project +title: '' +labels: '' +assignees: '' + +--- + +**Is your feature request related to a problem? Please describe.** +A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] + +**Describe the solution you'd like** +A clear and concise description of what you want to happen. + +**Describe alternatives you've considered** +A clear and concise description of any alternative solutions or features you've considered. + +**Additional context** +Add any other context or screenshots about the feature request here. diff --git a/dependencies/zstd-1.5.0/.github/workflows/generic-dev.yml b/dependencies/zstd-1.5.0/.github/workflows/generic-dev.yml new file mode 100644 index 0000000..ae4ee7e --- /dev/null +++ b/dependencies/zstd-1.5.0/.github/workflows/generic-dev.yml @@ -0,0 +1,225 @@ +name: generic-dev + +on: + pull_request: + branches: [ dev, release, actionsTest ] + +jobs: + +# Dev PR jobs that still have to be migrated from travis +# +# versionTag (only on release tags) +# valgrindTest (keeps failing for some reason. need investigation) +# staticAnalyze (need trusty so need self-hosted) +# pcc-fuzz: (need trusty so need self-hosted) +# min-decomp-macros (flakey) +# +# setting up self-hosted is pretty straightforward, but +# I need admins permissions to the repo for that it looks like +# So I'm tabling that for now +# +# The release branch exclusive jobs will be in a separate +# workflow file (the osx tests and meson build that is) + + benchmarking: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - name: make benchmarking + run: make benchmarking + + test: + runs-on: ubuntu-latest + env: + DEVNULLRIGHTS: 1 + READFROMBLOCKDEVICE: 1 + steps: + - uses: actions/checkout@v2 + - name: make test + run: make test + + check-32bit: # designed to catch https://github.com/facebook/zstd/issues/2428 + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - name: make check on 32-bit + run: | + sudo apt update + APT_PACKAGES="gcc-multilib" make apt-install + CFLAGS="-m32 -O1 -fstack-protector" make check V=1 + + gcc-7-libzstd: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - name: gcc-7 + libzstdmt compilation + run: | + make gcc7install + CC=gcc-7 CFLAGS=-Werror make -j all + make clean + LDFLAGS=-Wl,--no-undefined make -C lib libzstd-mt + + # candidate test (to check) : underlink test + # LDFLAGS=-Wl,--no-undefined : will make the linker fail if dll is underlinked + + gcc-8-asan-ubsan-testzstd: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - name: gcc-8 + ASan + UBSan + Test Zstd + run: | + make gcc8install + CC=gcc-8 CFLAGS="-Werror" make -j all + make clean + CC=gcc-8 make -j uasan-test-zstd $ZSTD_VERSION.tar.zst.sha256 + sha256sum $ZSTD_VERSION.tar.gz > $ZSTD_VERSION.tar.gz.sha256 + + # sign + if [ -n "$RELEASE_SIGNING_KEY" ]; then + export GPG_BATCH_OPTS="--batch --no-use-agent --pinentry-mode loopback --no-tty --yes" + echo "$RELEASE_SIGNING_KEY" | gpg $GPG_BATCH_OPTS --import + gpg $GPG_BATCH_OPTS --armor --sign --sign-with signing@zstd.net --detach-sig --passphrase "$RELEASE_SIGNING_KEY_PASSPHRASE" --output $ZSTD_VERSION.tar.zst.sig $ZSTD_VERSION.tar.zst + gpg $GPG_BATCH_OPTS --armor --sign --sign-with signing@zstd.net --detach-sig --passphrase "$RELEASE_SIGNING_KEY_PASSPHRASE" --output $ZSTD_VERSION.tar.gz.sig $ZSTD_VERSION.tar.gz + fi + + - name: Publish + uses: skx/github-action-publish-binaries@release-1.3 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + args: artifacts/* diff --git a/dependencies/zstd-1.5.0/.gitignore b/dependencies/zstd-1.5.0/.gitignore new file mode 100644 index 0000000..ea574d7 --- /dev/null +++ b/dependencies/zstd-1.5.0/.gitignore @@ -0,0 +1,54 @@ +# Object files +*.o +*.ko +*.dSYM + +# Libraries +*.lib +*.a + +# Shared objects (inc. Windows DLLs) +*.dll +*.so +*.so.* +*.dylib + +# Executables +/zstd +zstdmt +*.exe +*.out +*.app + +# Test artefacts +tmp* +*.zst +*.zstd +dictionary. +dictionary +NUL + +# Build artefacts +projects/ +bin/ +.buckd/ +buck-out/ +build-* +*.gcda + +# Other files +.directory +_codelite/ +_zstdbench/ +.clang_complete +*.idea +*.swp +.DS_Store +googletest/ +*.d +*.vscode +*.code-workspace +compile_commands.json +.clangd +perf.data +perf.data.old diff --git a/dependencies/zstd-1.5.0/.travis.yml b/dependencies/zstd-1.5.0/.travis.yml new file mode 100644 index 0000000..b0e7048 --- /dev/null +++ b/dependencies/zstd-1.5.0/.travis.yml @@ -0,0 +1,160 @@ +# Medium Tests: Run on all commits/PRs to dev branch + +language: c + +git: + depth: 1 + +branches: + only: + - dev + - release + - master + - travisTest + +addons: + apt: + update: true + +env: + global: + - FUZZERTEST=-T2mn + ZSTREAM_TESTTIME=-T2mn + DECODECORPUS_TESTTIME=-T1mn + + +matrix: + fast_finish: true + include: + - name: arm64 # ~2.5 mn + os: linux + arch: arm64 + script: + - make check + + - name: Minimal Decompressor Macros # ~5mn + script: + - make clean && make -j all ZSTD_LIB_MINIFY=1 MOREFLAGS="-Werror" + - make clean && make check ZSTD_LIB_MINIFY=1 MOREFLAGS="-Werror" + - make clean && make -j all MOREFLAGS="-Werror -DHUF_FORCE_DECOMPRESS_X1 -DZSTD_FORCE_DECOMPRESS_SEQUENCES_SHORT" + - make clean && make check MOREFLAGS="-Werror -DHUF_FORCE_DECOMPRESS_X1 -DZSTD_FORCE_DECOMPRESS_SEQUENCES_SHORT" + - make clean && make -j all MOREFLAGS="-Werror -DHUF_FORCE_DECOMPRESS_X2 -DZSTD_FORCE_DECOMPRESS_SEQUENCES_LONG" + - make clean && make check MOREFLAGS="-Werror -DHUF_FORCE_DECOMPRESS_X2 -DZSTD_FORCE_DECOMPRESS_SEQUENCES_LONG" + - make clean && make -j all MOREFLAGS="-Werror -DZSTD_NO_INLINE -DZSTD_STRIP_ERROR_STRINGS" + - make clean && make check MOREFLAGS="-Werror -DZSTD_NO_INLINE -DZSTD_STRIP_ERROR_STRINGS" + + - name: static analyzer scanbuild # ~26mn + dist: trusty # note : it's important to pin down a version of static analyzer, since different versions report different false positives + script: + - make staticAnalyze + + - name: Valgrind + Fuzz Test Stack Mode # ~ 7mn + script: + - make valgrindinstall + - make -C tests clean valgrindTest + - make clean + - make -C tests test-fuzzer-stackmode + + - name: Qemu ARM emulation + Fuzz Test # ~13.5mn + script: + - make arminstall + - make armfuzz + + # Introduced to check compat with old toolchains, to prevent e.g. #1872 + - name: ARM Build Test (on Trusty) + dist: trusty + script: + - make arminstall + - make armbuild + + - name: Qemu PPC + Fuzz Test # ~13mn + dist: trusty # it seems ppc cross-compilation fails on "current" + script: + - make ppcinstall + - make ppcfuzz + + # check release number (release only) + - name: Tag-Specific Test + if: tag =~ ^v[0-9]\.[0-9] + script: + - make -C tests checkTag + - tests/checkTag "$TRAVIS_BRANCH" + + # tests for release branch and cron job only + - name: OS-X # ~13mn + if: branch = release + os: osx + script: + - make test + - make -C lib all + + - name: Versions Compatibility Test # 11.5mn + if: branch = release + script: + - make -C tests versionsTest + + - name: thread sanitizer # ~29mn + if: branch = release + script: + - make clang38install + - CC=clang-3.8 make tsan-test-zstream + - CC=clang-3.8 make tsan-fuzztest + + - name: PPC64LE + Fuzz test # ~13mn + if: branch = release + arch: ppc64le + script: + - cat /proc/cpuinfo + - make test + + - name: Qemu PPC64 + Fuzz test # ~13mn, presumed Big-Endian (?) + dist: trusty # note : PPC64 cross-compilation for Qemu tests seems broken on Xenial + if: branch = release + script: + - make ppcinstall + - make ppc64fuzz + + # note : we already have aarch64 tests on hardware + - name: Qemu aarch64 + Fuzz Test (on Xenial) # ~14mn + if: branch = release + dist: xenial + script: + - make arminstall + - make aarch64fuzz + + # meson dedicated test + - name: Xenial (Meson + clang) # ~15mn + if: branch = release + dist: bionic + language: cpp + compiler: clang + install: + - sudo apt-get install -qq liblz4-dev valgrind tree + - | + travis_retry curl -o ~/ninja.zip -L 'https://github.com/ninja-build/ninja/releases/download/v1.9.0/ninja-linux.zip' && + unzip ~/ninja.zip -d ~/.local/bin + - | + travis_retry curl -o ~/get-pip.py -L 'https://bootstrap.pypa.io/get-pip.py' && + python3 ~/get-pip.py --user && + pip3 install --user meson + script: + - | + meson setup \ + --buildtype=debugoptimized \ + -Db_lundef=false \ + -Dauto_features=enabled \ + -Dbin_programs=true \ + -Dbin_tests=true \ + -Dbin_contrib=true \ + -Ddefault_library=both \ + build/meson builddir + - pushd builddir + - ninja + - meson test --verbose --no-rebuild + - DESTDIR=./staging ninja install + - tree ./staging + after_failure: + - cat "$TRAVIS_BUILD_DIR"/builddir/meson-logs/testlog.txt + + allow_failures: + - env: ALLOW_FAILURES=true diff --git a/dependencies/zstd-1.5.0/CHANGELOG b/dependencies/zstd-1.5.0/CHANGELOG new file mode 100644 index 0000000..3b15165 --- /dev/null +++ b/dependencies/zstd-1.5.0/CHANGELOG @@ -0,0 +1,698 @@ +v1.5.0 (May 11, 2021) +api: Various functions promoted from experimental to stable API: (#2579-2581, @senhuang42) + `ZSTD_defaultCLevel()` + `ZSTD_getDictID_fromCDict()` +api: Several experimental functions have been deprecated and will emit a compiler warning (#2582, @senhuang42) + `ZSTD_compress_advanced()` + `ZSTD_compress_usingCDict_advanced()` + `ZSTD_compressBegin_advanced()` + `ZSTD_compressBegin_usingCDict_advanced()` + `ZSTD_initCStream_srcSize()` + `ZSTD_initCStream_usingDict()` + `ZSTD_initCStream_usingCDict()` + `ZSTD_initCStream_advanced()` + `ZSTD_initCStream_usingCDict_advanced()` + `ZSTD_resetCStream()` +api: ZSTDMT_NBWORKERS_MAX reduced to 64 for 32-bit environments (@Cyan4973) +perf: Significant speed improvements for middle compression levels (#2494, @senhuang42 @terrelln) +perf: Block splitter to improve compression ratio, enabled by default for high compression levels (#2447, @senhuang42) +perf: Decompression loop refactor, speed improvements on `clang` and for `--long` modes (#2614 #2630, @Cyan4973) +perf: Reduced stack usage during compression and decompression entropy stage (#2522 #2524, @terrelln) +bug: Improve setting permissions of created files (#2525, @felixhandte) +bug: Fix large dictionary non-determinism (#2607, @terrelln) +bug: Fix non-determinism test failures on Linux i686 (#2606, @terrelln) +bug: Fix various dedicated dictionary search bugs (#2540 #2586, @senhuang42 @felixhandte) +bug: Ensure `ZSTD_estimateCCtxSize*() `monotonically increases with compression level (#2538, @senhuang42) +bug: Fix --patch-from mode parameter bound bug with small files (#2637, @occivink) +bug: Fix UBSAN error in decompression (#2625, @terrelln) +bug: Fix superblock compression divide by zero bug (#2592, @senhuang42) +bug: Make the number of physical CPU cores detection more robust (#2517, @PaulBone) +doc: Improve `zdict.h` dictionary training API documentation (#2622, @terrelln) +doc: Note that public `ZSTD_free*()` functions accept NULL pointers (#2521, @animalize) +doc: Add style guide docs for open source contributors (#2626, @Cyan4973) +tests: Better regression test coverage for different dictionary modes (#2559, @senhuang42) +tests: Better test coverage of index reduction (#2603, @terrelln) +tests: OSS-Fuzz coverage for seekable format (#2617, @senhuang42) +tests: Test coverage for ZSTD threadpool API (#2604, @senhuang42) +build: Dynamic library built multithreaded by default (#2584, @senhuang42) +build: Move `zstd_errors.h` and `zdict.h` to `lib/` root (#2597, @terrelln) +build: Allow `ZSTDMT_JOBSIZE_MIN` to be configured at compile-time, reduce default to 512KB (#2611, @Cyan4973) +build: Single file library build script moved to `build/` directory (#2618, @felixhandte) +build: `ZBUFF_*()` is no longer built by default (#2583, @senhuang42) +build: Fixed Meson build (#2548, @SupervisedThinking @kloczek) +build: Fix excessive compiler warnings with clang-cl and CMake (#2600, @nickhutchinson) +build: Detect presence of `md5` on Darwin (#2609, @felixhandte) +build: Avoid SIGBUS on armv6 (#2633, @bmwiedmann) +cli: `--progress` flag added to always display progress bar (#2595, @senhuang42) +cli: Allow reading from block devices with `--force` (#2613, @felixhandte) +cli: Fix CLI filesize display bug (#2550, @Cyan4973) +cli: Fix windows CLI `--filelist` end-of-line bug (#2620, @Cyan4973) +contrib: Various fixes for linux kernel patch (#2539, @terrelln) +contrib: Seekable format - Decompression hanging edge case fix (#2516, @senhuang42) +contrib: Seekable format - New seek table-only API (#2113 #2518, @mdittmer @Cyan4973) +contrib: Seekable format - Fix seek table descriptor check when loading (#2534, @foxeng) +contrib: Seekable format - Decompression fix for large offsets, (#2594, @azat) +misc: Automatically published release tarballs available on Github (#2535, @felixhandte) + +v1.4.9 (Mar 1, 2021) +bug: Use `umask()` to Constrain Created File Permissions (#2495, @felixhandte) +bug: Make Simple Single-Pass Functions Ignore Advanced Parameters (#2498, @terrelln) +api: Add (De)Compression Tracing Functionality (#2482, @terrelln) +api: Support References to Multiple DDicts (#2446, @senhuang42) +api: Add Function to Generate Skippable Frame (#2439, @senhuang42) +perf: New Algorithms for the Long Distance Matcher (#2483, @mpu) +perf: Performance Improvements for Long Distance Matcher (#2464, @mpu) +perf: Don't Shrink Window Log when Streaming with a Dictionary (#2451, @terrelln) +cli: Fix `--output-dir-mirror`'s Rejection of `..`-Containing Paths (#2512, @felixhandte) +cli: Allow Input From Console When `-f`/`--force` is Passed (#2466, @felixhandte) +cli: Improve Help Message (#2500, @senhuang42) +tests: Remove Flaky Tests (#2455, #2486, #2445, @Cyan4973) +tests: Correctly Invoke md5 Utility on NetBSD (#2492, @niacat) +tests: Avoid Using `stat -c` on NetBSD (#2513, @felixhandte) +build: Zstd CLI Can Now be Linked to Dynamic `libzstd` (#2457, #2454 @Cyan4973) +build: Hide and Avoid Using Static-Only Symbols (#2501, #2504, @skitt) +build: CMake: Enable Only C for lib/ and programs/ Projects (#2498, @concatime) +build: CMake: Use `configure_file()` to Create the `.pc` File (#2462, @lazka) +build: Fix Fuzzer Compiler Detection & Update UBSAN Flags (#2503, @terrelln) +build: Add Guards for `_LARGEFILE_SOURCE` and `_LARGEFILE64_SOURCE` (#2444, @indygreg) +build: Improve `zlibwrapper` Makefile (#2437, @Cyan4973) +contrib: Add `recover_directory` Program (#2473, @terrelln) +doc: Change License Year to 2021 (#2452 & #2465, @terrelln & @senhuang42) +doc: Fix Typos (#2459, @ThomasWaldmann) + +v1.4.8 (Dec 18, 2020) +hotfix: wrong alignment of an internal buffer + +v1.4.7 (Dec 16, 2020) +perf: stronger --long mode at high compression levels, by @senhuang42 +perf: stronger --patch-from at high compression levels, thanks to --long improvements +perf: faster dictionary compression at medium compression levels, by @felixhandte +perf: small speed & memory usage improvements for ZSTD_compress2(), by @terrelln +perf: improved fast compression speeds with Visual Studio, by @animalize +cli : Set nb of threads with environment variable ZSTD_NBTHREADS, by @senhuang42 +cli : accept decompressing files with *.zstd suffix +cli : provide a condensed summary by default when processing multiple files +cli : fix : stdin input no longer confused as user prompt +cli : improve accuracy of several error messages +api : new sequence ingestion API, by @senhuang42 +api : shared thread pool: control total nb of threads used by multiple compression jobs, by @marxin +api : new ZSTD_getDictID_fromCDict(), by @LuAPi +api : zlibWrapper only uses public API, and is compatible with dynamic library, by @terrelln +api : fix : multithreaded compression has predictable output even in special cases (see #2327) (issue not accessible from cli) +api : fix : dictionary compression correctly respects dictionary compression level (see #2303) (issue not accessible from cli) +build: fix cmake script when using path with spaces, by @terrelln +build: improved compile-time detection of aarch64/neon platforms, by @bsdimp +build: Fix building on AIX 5.1, by @likema +build: compile paramgrill with cmake on Windows, requested by @mirh +doc : clarify repcode updates in format specification, by @felixhandte + +v1.4.6 +fix : Always return dstSize_tooSmall when that is the case +fix : Fix ZSTD_initCStream_advanced() with static allocation and no dictionary +perf: Improve small block decompression speed by 20%+, by @terrelln +perf: Reduce compression stack usage by 1 KB, by @terrelln +perf: Improve decompression speed by improving ZSTD_wildcopy, by @helloguo (#2252, #2256) +perf: Improve histogram construction, by @cyan4973 (#2253) +cli : Add --output-dir-mirror option, by @xxie24 (#2219) +cli : Warn when (de)compressing multiple files into a single output, by @senhuang42 (#2279) +cli : Improved progress bar and status summary when (de)compressing multiple files, by @senhuang42 (#2283) +cli : Call stat less often, by @felixhandte (#2262) +cli : Allow --patch-from XXX and --filelist XXX in addition to --patch-from=XXX and --filelist=XXX, by @cyan4973 (#2250) +cli : Allow --patch-from to compress stdin with --stream-size, by @bimbashrestha (#2206) +api : Do not install zbuff.h, since it has long been deprecated, by @cyan4973 (#2166). +api : Fix ZSTD_CCtx_setParameter() with ZSTD_c_compressionLevel to make 0 mean default level, by @i-do-cpp (#2291) +api : Rename ZSTDMT_NBTHREADS_MAX to ZSTDMT_NBWORKERS_MAX, by @marxin (#2228). +build: Install pkg-config file with CMake and MinGW, by @tonytheodore (#2183) +build: Install DLL with CMake on Windows, by @BioDataAnalysis (#2221) +build: Fix DLL install location with CMake, by @xantares and @bimbashrestha (#2186) +build: Add ZSTD_NO_UNUSED_FUNCTIONS macro to hide unused functions +build: Add ZSTD_NO_INTRINSICS macro to avoid explicit intrinsics +build: Add STATIC_BMI2 macro for compile time detection of BMI2 on MSVC, by @Niadb (#2258) +build: Fix -Wcomma warnings, by @cwoffenden +build: Remove distutils requirement for meson build, by @neheb (#2197) +build: Fix cli compilation with uclibc +build: Fix cli compilation without st_mtime, by @ffontaine (#2246) +build: Fix shadowing warnings in library +build: Fix single file library compilation with Enscripten, by @yoshihitoh (#2227) +misc: Improve single file library and include dictBuilder, by @cwoffenden +misc: Allow compression dictionaries with missing symbols +misc: Add freestanding translation script in contrib/freestanding_lib +misc: Collect all of zstd's libc dependencies into zstd_deps.h +doc : Add ZSTD_versionString() to manual, by @animalize +doc : Fix documentation for ZSTD_CCtxParams_setParameter(), by @felixhandte (#2270) + +v1.4.5 (May 22, 2020) +fix : Compression ratio regression on huge files (> 3 GB) using high levels (--ultra) and multithreading, by @terrelln +perf: Improved decompression speed: x64 : +10% (clang) / +5% (gcc); ARM : from +15% to +50%, depending on SoC, by @terrelln +perf: Automatically downsizes ZSTD_DCtx when too large for too long (#2069, by @bimbashreshta) +perf: Improved fast compression speed on aarch64 (#2040, ~+3%, by @caoyzh) +perf: Small level 1 compression speed gains (depending on compiler) +cli : New --patch-from command, create and apply patches from files, by @bimbashreshta +cli : New --filelist= : Provide a list of files to operate upon from a file +cli : -b -d command can now benchmark decompression on multiple files +cli : New --no-content-size command +cli : New --show-default-cparams information command +api : ZDICT_finalizeDictionary() is promoted to stable (#2111) +api : new experimental parameter ZSTD_d_stableOutBuffer (#2094) +build: Generate a single-file libzstd library (#2065, by @cwoffenden) +build: Relative includes no longer require -I compiler flags for zstd lib subdirs (#2103, by @felixhandte) +build: zstd now compiles cleanly under -pedantic (#2099) +build: zstd now compiles with make-4.3 +build: Support mingw cross-compilation from Linux, by @Ericson2314 +build: Meson multi-thread build fix on windows +build: Some misc icc fixes backed by new ci test on travis +misc: bitflip analyzer tool, by @felixhandte +misc: Extend largeNbDicts benchmark to compression +misc: Edit-distance match finder in contrib/ +doc : Improved beginner CONTRIBUTING.md docs +doc : New issue templates for zstd + +v1.4.4 (Nov 6, 2019) +perf: Improved decompression speed, by > 10%, by @terrelln +perf: Better compression speed when re-using a context, by @felixhandte +perf: Fix compression ratio when compressing large files with small dictionary, by @senhuang42 +perf: zstd reference encoder can generate RLE blocks, by @bimbashrestha +perf: minor generic speed optimization, by @davidbolvansky +api: new ability to extract sequences from the parser for analysis, by @bimbashrestha +api: fixed decoding of magic-less frames, by @terrelln +api: fixed ZSTD_initCStream_advanced() performance with fast modes, reported by @QrczakMK +cli: Named pipes support, by @bimbashrestha +cli: short tar's extension support, by @stokito +cli: command --output-dir-flat= , generates target files into requested directory, by @senhuang42 +cli: commands --stream-size=# and --size-hint=#, by @nmagerko +cli: command --exclude-compressed, by @shashank0791 +cli: faster `-t` test mode +cli: improved some error messages, by @vangyzen +cli: fix command `-D dictionary` on Windows, reported by @artyompetrov +cli: fix rare deadlock condition within dictionary builder, by @terrelln +build: single-file decoder with emscripten compilation script, by @cwoffenden +build: fixed zlibWrapper compilation on Visual Studio, reported by @bluenlive +build: fixed deprecation warning for certain gcc version, reported by @jasonma163 +build: fix compilation on old gcc versions, by @cemeyer +build: improved installation directories for cmake script, by Dmitri Shubin +pack: modified pkgconfig, for better integration into openwrt, requested by @neheb +misc: Improved documentation : ZSTD_CLEVEL, DYNAMIC_BMI2, ZSTD_CDict, function deprecation, zstd format +misc: fixed educational decoder : accept larger literals section, and removed UNALIGNED() macro + +v1.4.3 (Aug 20, 2019) +bug: Fix Dictionary Compression Ratio Regression by @cyan4973 (#1709) +bug: Fix Buffer Overflow in legacy v0.3 decompression by @felixhandte (#1722) +build: Add support for IAR C/C++ Compiler for Arm by @joseph0918 (#1705) + +v1.4.2 (Jul 26, 2019) +bug: Fix bug in zstd-0.5 decoder by @terrelln (#1696) +bug: Fix seekable decompression in-memory API by @iburinoc (#1695) +misc: Validate blocks are smaller than size limit by @vivekmg (#1685) +misc: Restructure source files by @ephiepark (#1679) + +v1.4.1 (Jul 20, 2019) +bug: Fix data corruption in niche use cases by @terrelln (#1659) +bug: Fuzz legacy modes, fix uncovered bugs by @terrelln (#1593, #1594, #1595) +bug: Fix out of bounds read by @terrelln (#1590) +perf: Improve decode speed by ~7% @mgrice (#1668) +perf: Slightly improved compression ratio of level 3 and 4 (ZSTD_dfast) by @cyan4973 (#1681) +perf: Slightly faster compression speed when re-using a context by @cyan4973 (#1658) +perf: Improve compression ratio for small windowLog by @cyan4973 (#1624) +perf: Faster compression speed in high compression mode for repetitive data by @terrelln (#1635) +api: Add parameter to generate smaller dictionaries by @tyler-tran (#1656) +cli: Recognize symlinks when built in C99 mode by @felixhandte (#1640) +cli: Expose cpu load indicator for each file on -vv mode by @ephiepark (#1631) +cli: Restrict read permissions on destination files by @chungy (#1644) +cli: zstdgrep: handle -f flag by @felixhandte (#1618) +cli: zstdcat: follow symlinks by @vejnar (#1604) +doc: Remove extra size limit on compressed blocks by @felixhandte (#1689) +doc: Fix typo by @yk-tanigawa (#1633) +doc: Improve documentation on streaming buffer sizes by @cyan4973 (#1629) +build: CMake: support building with LZ4 @leeyoung624 (#1626) +build: CMake: install zstdless and zstdgrep by @leeyoung624 (#1647) +build: CMake: respect existing uninstall target by @j301scott (#1619) +build: Make: skip multithread tests when built without support by @michaelforney (#1620) +build: Make: Fix examples/ test target by @sjnam (#1603) +build: Meson: rename options out of deprecated namespace by @lzutao (#1665) +build: Meson: fix build by @lzutao (#1602) +build: Visual Studio: don't export symbols in static lib by @scharan (#1650) +build: Visual Studio: fix linking by @absotively (#1639) +build: Fix MinGW-W64 build by @myzhang1029 (#1600) +misc: Expand decodecorpus coverage by @ephiepark (#1664) + +v1.4.0 (Apr 17, 2019) +perf: Improve level 1 compression speed in most scenarios by 6% by @gbtucker and @terrelln +api: Move the advanced API, including all functions in the staging section, to the stable section +api: Make ZSTD_e_flush and ZSTD_e_end block for maximum forward progress +api: Rename ZSTD_CCtxParam_getParameter to ZSTD_CCtxParams_getParameter +api: Rename ZSTD_CCtxParam_setParameter to ZSTD_CCtxParams_setParameter +api: Don't export ZSTDMT functions from the shared library by default +api: Require ZSTD_MULTITHREAD to be defined to use ZSTDMT +api: Add ZSTD_decompressBound() to provide an upper bound on decompressed size by @shakeelrao +api: Fix ZSTD_decompressDCtx() corner cases with a dictionary +api: Move ZSTD_getDictID_*() functions to the stable section +api: Add ZSTD_c_literalCompressionMode flag to enable or disable literal compression by @terrelln +api: Allow compression parameters to be set when a dictionary is used +api: Allow setting parameters before or after ZSTD_CCtx_loadDictionary() is called +api: Fix ZSTD_estimateCStreamSize_usingCCtxParams() +api: Setting ZSTD_d_maxWindowLog to 0 means use the default +cli: Ensure that a dictionary is not used to compress itself by @shakeelrao +cli: Add --[no-]compress-literals flag to enable or disable literal compression +doc: Update the examples to use the advanced API +doc: Explain how to transition from old streaming functions to the advanced API in the header +build: Improve the Windows release packages +build: Improve CMake build by @hjmjohnson +build: Build fixes for FreeBSD by @lwhsu +build: Remove redundant warnings by @thatsafunnyname +build: Fix tests on OpenBSD by @bket +build: Extend fuzzer build system to work with the new clang engine +build: CMake now creates the libzstd.so.1 symlink +build: Improve Menson build by @lzutao +misc: Fix symbolic link detection on FreeBSD +misc: Use physical core count for -T0 on FreeBSD by @cemeyer +misc: Fix zstd --list on truncated files by @kostmo +misc: Improve logging in debug mode by @felixhandte +misc: Add CirrusCI tests by @lwhsu +misc: Optimize dictionary memory usage in corner cases +misc: Improve the dictionary builder on small or homogeneous data +misc: Fix spelling across the repo by @jsoref + +v1.3.8 (Dec 28, 2018) +perf: better decompression speed on large files (+7%) and cold dictionaries (+15%) +perf: slightly better compression ratio at high compression modes +api : finalized advanced API, last stage before "stable" status +api : new --rsyncable mode, by @terrelln +api : support decompression of empty frames into NULL (used to be an error) (#1385) +build: new set of macros to build a minimal size decoder, by @felixhandte +build: fix compilation on MIPS32, reported by @clbr (#1441) +build: fix compilation with multiple -arch flags, by @ryandesign +build: highly upgraded meson build, by @lzutao +build: improved buck support, by @obelisk +build: fix cmake script : can create debug build, by @pitrou +build: Makefile : grep works on both colored consoles and systems without color support +build: fixed zstd-pgo, by @bmwiedemann +cli : support ZSTD_CLEVEL environment variable, by @yijinfb (#1423) +cli : --no-progress flag, preserving final summary (#1371), by @terrelln +cli : ensure destination file is not source file (#1422) +cli : clearer error messages, especially when input file not present +doc : clarified zstd_compression_format.md, by @ulikunitz +misc: fixed zstdgrep, returns 1 on failure, by @lzutao +misc: NEWS renamed as CHANGELOG, in accordance with fboss + +v1.3.7 (Oct 20, 2018) +perf: slightly better decompression speed on clang (depending on hardware target) +fix : performance of dictionary compression for small input < 4 KB at levels 9 and 10 +build: no longer build backtrace by default in release mode; restrict further automatic mode +build: control backtrace support through build macro BACKTRACE +misc: added man pages for zstdless and zstdgrep, by @samrussell + +v1.3.6 (Oct 6, 2018) +perf: much faster dictionary builder, by @jenniferliu +perf: faster dictionary compression on small data when using multiple contexts, by @felixhandte +perf: faster dictionary decompression when using a very large number of dictionaries simultaneously +cli : fix : does no longer overwrite destination when source does not exist (#1082) +cli : new command --adapt, for automatic compression level adaptation +api : fix : block api can be streamed with > 4 GB, reported by @catid +api : reduced ZSTD_DDict size by 2 KB +api : minimum negative compression level is defined, and can be queried using ZSTD_minCLevel(). +build: support Haiku target, by @korli +build: Read Legacy format is limited to v0.5+ by default. Can be changed at compile time with macro ZSTD_LEGACY_SUPPORT. +doc : zstd_compression_format.md updated to match wording in IETF RFC 8478 +misc: tests/paramgrill, a parameter optimizer, by @GeorgeLu97 + +v1.3.5 (Jun 29, 2018) +perf: much faster dictionary compression, by @felixhandte +perf: small quality improvement for dictionary generation, by @terrelln +perf: slightly improved high compression levels (notably level 19) +mem : automatic memory release for long duration contexts +cli : fix : overlapLog can be manually set +cli : fix : decoding invalid lz4 frames +api : fix : performance degradation for dictionary compression when using advanced API, by @terrelln +api : change : clarify ZSTD_CCtx_reset() vs ZSTD_CCtx_resetParameters(), by @terrelln +build: select custom libzstd scope through control macros, by @GeorgeLu97 +build: OpenBSD patch, by @bket +build: make and make all are compatible with -j +doc : clarify zstd_compression_format.md, updated for IETF RFC process +misc: pzstd compatible with reproducible compilation, by @lamby + +v1.3.4 (Mar 27, 2018) +perf: faster speed (especially decoding speed) on recent cpus (haswell+) +perf: much better performance associating --long with multi-threading, by @terrelln +perf: better compression at levels 13-15 +cli : asynchronous compression by default, for faster experience (use --single-thread for former behavior) +cli : smoother status report in multi-threading mode +cli : added command --fast=#, for faster compression modes +cli : fix crash when not overwriting existing files, by Pádraig Brady (@pixelb) +api : `nbThreads` becomes `nbWorkers` : 1 triggers asynchronous mode +api : compression levels can be negative, for even more speed +api : ZSTD_getFrameProgression() : get precise progress status of ZSTDMT anytime +api : ZSTDMT can accept new compression parameters during compression +api : implemented all advanced dictionary decompression prototypes +build: improved meson recipe, by Shawn Landden (@shawnl) +build: VS2017 scripts, by @HaydnTrigg +misc: all /contrib projects fixed +misc: added /contrib/docker script by @gyscos + +v1.3.3 (Dec 21, 2017) +perf: faster zstd_opt strategy (levels 16-19) +fix : bug #944 : multithreading with shared ditionary and large data, reported by @gsliepen +cli : fix : content size written in header by default +cli : fix : improved LZ4 format support, by @felixhandte +cli : new : hidden command `-S`, to benchmark multiple files while generating one result per file +api : fix : support large skippable frames, by @terrelln +api : fix : streaming interface was adding a useless 3-bytes null block to small frames +api : change : when setting `pledgedSrcSize`, use `ZSTD_CONTENTSIZE_UNKNOWN` macro value to mean "unknown" +build: fix : compilation under rhel6 and centos6, reported by @pixelb +build: added `check` target + +v1.3.2 (Oct 10, 2017) +new : long range mode, using --long command, by Stella Lau (@stellamplau) +new : ability to generate and decode magicless frames (#591) +changed : maximum nb of threads reduced to 200, to avoid address space exhaustion in 32-bits mode +fix : multi-threading compression works with custom allocators +fix : ZSTD_sizeof_CStream() was over-evaluating memory usage +fix : a rare compression bug when compression generates very large distances and bunch of other conditions (only possible at --ultra -22) +fix : 32-bits build can now decode large offsets (levels 21+) +cli : added LZ4 frame support by default, by Felix Handte (@felixhandte) +cli : improved --list output +cli : new : can split input file for dictionary training, using command -B# +cli : new : clean operation artefact on Ctrl-C interruption +cli : fix : do not change /dev/null permissions when using command -t with root access, reported by @mike155 (#851) +cli : fix : write file size in header in multiple-files mode +api : added macro ZSTD_COMPRESSBOUND() for static allocation +api : experimental : new advanced decompression API +api : fix : sizeof_CCtx() used to over-estimate +build: fix : no-multithread variant compiles without pool.c dependency, reported by Mitchell Blank Jr (@mitchblank) (#819) +build: better compatibility with reproducible builds, by Bernhard M. Wiedemann (@bmwiedemann) (#818) +example : added streaming_memory_usage +license : changed /examples license to BSD + GPLv2 +license : fix a few header files to reflect new license (#825) + +v1.3.1 (Aug 21, 2017) +New license : BSD + GPLv2 +perf: substantially decreased memory usage in Multi-threading mode, thanks to reports by Tino Reichardt (@mcmilk) +perf: Multi-threading supports up to 256 threads. Cap at 256 when more are requested (#760) +cli : improved and fixed --list command, by @ib (#772) +cli : command -vV to list supported formats, by @ib (#771) +build : fixed binary variants, reported by @svenha (#788) +build : fix Visual compilation for non x86/x64 targets, reported by Greg Slazinski (@GregSlazinski) (#718) +API exp : breaking change : ZSTD_getframeHeader() provides more information +API exp : breaking change : pinned down values of error codes +doc : fixed huffman example, by Ulrich Kunitz (@ulikunitz) +new : contrib/adaptive-compression, I/O driven compression strength, by Paul Cruz (@paulcruz74) +new : contrib/long_distance_matching, statistics by Stella Lau (@stellamplau) +updated : contrib/linux-kernel, by Nick Terrell (@terrelln) + +v1.3.0 (Jul 6, 2017) +cli : new : `--list` command, by Paul Cruz +cli : changed : xz/lzma support enabled by default +cli : changed : `-t *` continue processing list after a decompression error +API : added : ZSTD_versionString() +API : promoted to stable status : ZSTD_getFrameContentSize(), by Sean Purcell +API exp : new advanced API : ZSTD_compress_generic(), ZSTD_CCtx_setParameter() +API exp : new : API for static or external allocation : ZSTD_initStatic?Ctx() +API exp : added : ZSTD_decompressBegin_usingDDict(), requested by Guy Riddle (#700) +API exp : clarified memory estimation / measurement functions. +API exp : changed : strongest strategy renamed ZSTD_btultra, fastest strategy ZSTD_fast set to 1 +tools : decodecorpus can generate random dictionary-compressed samples, by Paul Cruz +new : contrib/seekable_format, demo and API, by Sean Purcell +changed : contrib/linux-kernel, updated version and license, by Nick Terrell + +v1.2.0 (May 5, 2017) +cli : changed : Multithreading enabled by default (use target zstd-nomt or HAVE_THREAD=0 to disable) +cli : new : command -T0 means "detect and use nb of cores", by Sean Purcell +cli : new : zstdmt symlink hardwired to `zstd -T0` +cli : new : command --threads=# (#671) +cli : changed : cover dictionary builder by default, for improved quality, by Nick Terrell +cli : new : commands --train-cover and --train-legacy, to select dictionary algorithm and parameters +cli : experimental targets `zstd4` and `xzstd4`, with support for lz4 format, by Sean Purcell +cli : fix : does not output compressed data on console +cli : fix : ignore symbolic links unless --force specified, +API : breaking change : ZSTD_createCDict_advanced(), only use compressionParameters as argument +API : added : prototypes ZSTD_*_usingCDict_advanced(), for direct control over frameParameters. +API : improved: ZSTDMT_compressCCtx() reduced memory usage +API : fix : ZSTDMT_compressCCtx() now provides srcSize in header (#634) +API : fix : src size stored in frame header is controlled at end of frame +API : fix : enforced consistent rules for pledgedSrcSize==0 (#641) +API : fix : error code "GENERIC" replaced by "dstSizeTooSmall" when appropriate +build: improved cmake script, by @Majlen +build: enabled Multi-threading support for *BSD, by Baptiste Daroussin +tools: updated Paramgrill. Command -O# provides best parameters for sample and speed target. +new : contrib/linux-kernel version, by Nick Terrell + +v1.1.4 (Mar 18, 2017) +cli : new : can compress in *.gz format, using --format=gzip command, by Przemyslaw Skibinski +cli : new : advanced benchmark command --priority=rt +cli : fix : write on sparse-enabled file systems in 32-bits mode, by @ds77 +cli : fix : --rm remains silent when input is stdin +cli : experimental : xzstd, with support for xz/lzma decoding, by Przemyslaw Skibinski +speed : improved decompression speed in streaming mode for single shot scenarios (+5%) +memory: DDict (decompression dictionary) memory usage down from 150 KB to 20 KB +arch: 32-bits variant able to generate and decode very long matches (>32 MB), by Sean Purcell +API : new : ZSTD_findFrameCompressedSize(), ZSTD_getFrameContentSize(), ZSTD_findDecompressedSize() +API : changed : dropped support of legacy versions <= v0.3 (can be changed by modifying ZSTD_LEGACY_SUPPORT value) +build : new: meson build system in contrib/meson, by Dima Krasner +build : improved cmake script, by @Majlen +build : added -Wformat-security flag, as recommended by Padraig Brady +doc : new : educational decoder, by Sean Purcell + +v1.1.3 (Feb 7, 2017) +cli : zstd can decompress .gz files (can be disabled with `make zstd-nogz` or `make HAVE_ZLIB=0`) +cli : new : experimental target `make zstdmt`, with multi-threading support +cli : new : improved dictionary builder "cover" (experimental), by Nick Terrell, based on prior work by Giuseppe Ottaviano. +cli : new : advanced commands for detailed parameters, by Przemyslaw Skibinski +cli : fix zstdless on Mac OS-X, by Andrew Janke +cli : fix #232 "compress non-files" +dictBuilder : improved dictionary generation quality, thanks to Nick Terrell +API : new : lib/compress/ZSTDMT_compress.h multithreading API (experimental) +API : new : ZSTD_create?Dict_byReference(), requested by Bartosz Taudul +API : new : ZDICT_finalizeDictionary() +API : fix : ZSTD_initCStream_usingCDict() properly writes dictID into frame header, by Gregory Szorc (#511) +API : fix : all symbols properly exposed in libzstd, by Nick Terrell +build : support for Solaris target, by Przemyslaw Skibinski +doc : clarified specification, by Sean Purcell + +v1.1.2 (Dec 15, 2016) +API : streaming : decompression : changed : automatic implicit reset when chain-decoding new frames without init +API : experimental : added : dictID retrieval functions, and ZSTD_initCStream_srcSize() +API : zbuff : changed : prototypes now generate deprecation warnings +lib : improved : faster decompression speed at ultra compression settings and 32-bits mode +lib : changed : only public ZSTD_ symbols are now exposed +lib : changed : reduced usage of stack memory +lib : fixed : several corner case bugs, by Nick Terrell +cli : new : gzstd, experimental version able to decode .gz files, by Przemyslaw Skibinski +cli : new : preserve file attributes +cli : new : added zstdless and zstdgrep tools +cli : fixed : status displays total amount decoded, even for file consisting of multiple frames (like pzstd) +cli : fixed : zstdcat +zlib_wrapper : added support for gz* functions, by Przemyslaw Skibinski +install : better compatibility with FreeBSD, by Dimitry Andric +source tree : changed : zbuff source files moved to lib/deprecated + +v1.1.1 (Nov 2, 2016) +New : command -M#, --memory=, --memlimit=, --memlimit-decompress= to limit allowed memory consumption +New : doc/zstd_manual.html, by Przemyslaw Skibinski +Improved : slightly better compression ratio at --ultra levels (>= 20) +Improved : better memory usage when using streaming compression API, thanks to @Rogier-5 report +Added : API : ZSTD_initCStream_usingCDict(), ZSTD_initDStream_usingDDict() (experimental section) +Added : example/multiple_streaming_compression.c +Changed : zstd_errors.h is now installed within /include (and replaces errors_public.h) +Updated man page +Fixed : zstd-small, zstd-compress and zstd-decompress compilation targets + +v1.1.0 (Sep 28, 2016) +New : contrib/pzstd, parallel version of zstd, by Nick Terrell +added : NetBSD install target (#338) +Improved : speed for batches of small files +Improved : speed of zlib wrapper, by Przemyslaw Skibinski +Changed : libzstd on Windows supports legacy formats, by Christophe Chevalier +Fixed : CLI -d output to stdout by default when input is stdin (#322) +Fixed : CLI correctly detects console on Mac OS-X +Fixed : CLI supports recursive mode `-r` on Mac OS-X +Fixed : Legacy decoders use unified error codes, reported by benrg (#341), fixed by Przemyslaw Skibinski +Fixed : compatibility with OpenBSD, reported by Juan Francisco Cantero Hurtado (#319) +Fixed : compatibility with Hurd, by Przemyslaw Skibinski (#365) +Fixed : zstd-pgo, reported by octoploid (#329) + +v1.0.0 (Sep 1, 2016) +Change Licensing, all project is now BSD, Copyright Facebook +Small decompression speed improvement +API : Streaming API supports legacy format +API : ZDICT_getDictID(), ZSTD_sizeof_{CCtx, DCtx, CStream, DStream}(), ZSTD_setDStreamParameter() +CLI supports legacy formats v0.4+ +Fixed : compression fails on certain huge files, reported by Jesse McGrew +Enhanced documentation, by Przemyslaw Skibinski + +v0.8.1 (Aug 18, 2016) +New streaming API +Changed : --ultra now enables levels beyond 19 +Changed : -i# now selects benchmark time in second +Fixed : ZSTD_compress* can now compress > 4 GB in a single pass, reported by Nick Terrell +Fixed : speed regression on specific patterns (#272) +Fixed : support for Z_SYNC_FLUSH, by Dmitry Krot (#291) +Fixed : ICC compilation, by Przemyslaw Skibinski + +v0.8.0 (Aug 2, 2016) +Improved : better speed on clang and gcc -O2, thanks to Eric Biggers +New : Build on FreeBSD and DragonFly, thanks to JrMarino +Changed : modified API : ZSTD_compressEnd() +Fixed : legacy mode with ZSTD_HEAPMODE=0, by Christopher Bergqvist +Fixed : premature end of frame when zero-sized raw block, reported by Eric Biggers +Fixed : large dictionaries (> 384 KB), reported by Ilona Papava +Fixed : checksum correctly checked in single-pass mode +Fixed : combined --test amd --rm, reported by Andreas M. Nilsson +Modified : minor compression level adaptations +Updated : compression format specification to v0.2.0 +changed : zstd.h moved to /lib directory + +v0.7.5 (Aug 1, 2016) +Transition version, supporting decoding of v0.8.x + +v0.7.4 (Jul 17, 2016) +Added : homebrew for Mac, by Daniel Cade +Added : more examples +Fixed : segfault when using small dictionaries, reported by Felix Handte +Modified : default compression level for CLI is now 3 +Updated : specification, to v0.1.1 + +v0.7.3 (Jul 9, 2016) +New : compression format specification +New : `--` separator, stating that all following arguments are file names. Suggested by Chip Turner. +New : `ZSTD_getDecompressedSize()` +New : OpenBSD target, by Juan Francisco Cantero Hurtado +New : `examples` directory +fixed : dictBuilder using HC levels, reported by Bartosz Taudul +fixed : legacy support from ZSTD_decompress_usingDDict(), reported by Felix Handte +fixed : multi-blocks decoding with intermediate uncompressed blocks, reported by Greg Slazinski +modified : removed "mem.h" and "error_public.h" dependencies from "zstd.h" (experimental section) +modified : legacy functions no longer need magic number + +v0.7.2 (Jul 4, 2016) +fixed : ZSTD_decompressBlock() using multiple consecutive blocks. Reported by Greg Slazinski. +fixed : potential segfault on very large files (many gigabytes). Reported by Chip Turner. +fixed : CLI displays system error message when destination file cannot be created (#231). Reported by Chip Turner. + +v0.7.1 (Jun 23, 2016) +fixed : ZBUFF_compressEnd() called multiple times with too small `dst` buffer, reported by Christophe Chevalier +fixed : dictBuilder fails if first sample is too small, reported by Руслан Ковалёв +fixed : corruption issue, reported by cj +modified : checksum enabled by default in command line mode + +v0.7.0 (Jun 17, 2016) +New : Support for directory compression, using `-r`, thanks to Przemyslaw Skibinski +New : Command `--rm`, to remove source file after successful de/compression +New : Visual build scripts, by Christophe Chevalier +New : Support for Sparse File-systems (do not use space for zero-filled sectors) +New : Frame checksum support +New : Support pass-through mode (when using `-df`) +API : more efficient Dictionary API : `ZSTD_compress_usingCDict()`, `ZSTD_decompress_usingDDict()` +API : create dictionary files from custom content, by Giuseppe Ottaviano +API : support for custom malloc/free functions +New : controllable Dictionary ID +New : Support for skippable frames + +v0.6.1 (May 13, 2016) +New : zlib wrapper API, thanks to Przemyslaw Skibinski +New : Ability to compile compressor / decompressor separately +Changed : new lib directory structure +Fixed : Legacy codec v0.5 compatible with dictionary decompression +Fixed : Decoder corruption error (#173) +Fixed : null-string roundtrip (#176) +New : benchmark mode can select directory as input +Experimental : midipix support, VMS support + +v0.6.0 (Apr 13, 2016) +Stronger high compression modes, thanks to Przemyslaw Skibinski +API : ZSTD_getFrameParams() provides size of decompressed content +New : highest compression modes require `--ultra` command to fully unleash their capacity +Fixed : zstd cli return error code > 0 and removes dst file artifact when decompression fails, thanks to Chip Turner + +v0.5.1 (Feb 18, 2016) +New : Optimal parsing => Very high compression modes, thanks to Przemyslaw Skibinski +Changed : Dictionary builder integrated into libzstd and zstd cli +Changed (!) : zstd cli now uses "multiple input files" as default mode. See `zstd -h`. +Fix : high compression modes for big-endian platforms +New : zstd cli : `-t` | `--test` command + +v0.5.0 (Feb 5, 2016) +New : dictionary builder utility +Changed : streaming & dictionary API +Improved : better compression of small data + +v0.4.7 (Jan 22, 2016) +Improved : small compression speed improvement in HC mode +Changed : `zstd_decompress.c` has ZSTD_LEGACY_SUPPORT to 0 by default +fix : bt search bug + +v0.4.6 (Jan 13, 2016) +fix : fast compression mode on Windows +New : cmake configuration file, thanks to Artyom Dymchenko +Improved : high compression mode on repetitive data +New : block-level API +New : ZSTD_duplicateCCtx() + +v0.4.5 (Dec 18, 2015) +new : -m/--multiple : compress/decompress multiple files + +v0.4.4 (Dec 14, 2015) +Fixed : high compression modes for Windows 32 bits +new : external dictionary API extended to buffered mode and accessible through command line +new : windows DLL project, thanks to Christophe Chevalier + +v0.4.3 (Dec 7, 2015) +new : external dictionary API +new : zstd-frugal + +v0.4.2 (Dec 2, 2015) +Generic minor improvements for small blocks +Fixed : big-endian compatibility, by Peter Harris (#85) + +v0.4.1 (Dec 1, 2015) +Fixed : ZSTD_LEGACY_SUPPORT=0 build mode (reported by Luben) +removed `zstd.c` + +v0.4.0 (Nov 29, 2015) +Command line utility compatible with high compression levels +Removed zstdhc => merged into zstd +Added : ZBUFF API (see zstd_buffered.h) +Rolling buffer support + +v0.3.6 (Nov 10, 2015) +small blocks params + +v0.3.5 (Nov 9, 2015) +minor generic compression improvements + +v0.3.4 (Nov 6, 2015) +Faster fast cLevels + +v0.3.3 (Nov 5, 2015) +Small compression ratio improvement + +v0.3.2 (Nov 2, 2015) +Fixed Visual Studio + +v0.3.1 (Nov 2, 2015) +Small compression ratio improvement + +v0.3 (Oct 30, 2015) +HC mode : compression levels 2-26 + +v0.2.2 (Oct 28, 2015) +Fix : Visual Studio 2013 & 2015 release compilation, by Christophe Chevalier + +v0.2.1 (Oct 24, 2015) +Fix : Read errors, advanced fuzzer tests, by Hanno Böck + +v0.2.0 (Oct 22, 2015) +**Breaking format change** +Faster decompression speed +Can still decode v0.1 format + +v0.1.3 (Oct 15, 2015) +fix uninitialization warning, reported by Evan Nemerson + +v0.1.2 (Sep 11, 2015) +frame concatenation support + +v0.1.1 (Aug 27, 2015) +fix compression bug +detects write-flush errors + +v0.1.0 (Aug 25, 2015) +first release diff --git a/dependencies/zstd-1.5.0/CODE_OF_CONDUCT.md b/dependencies/zstd-1.5.0/CODE_OF_CONDUCT.md new file mode 100644 index 0000000..0f7ad8b --- /dev/null +++ b/dependencies/zstd-1.5.0/CODE_OF_CONDUCT.md @@ -0,0 +1,5 @@ +# Code of Conduct + +Facebook has adopted a Code of Conduct that we expect project participants to adhere to. +Please read the [full text](https://code.fb.com/codeofconduct/) +so that you can understand what actions will and will not be tolerated. diff --git a/dependencies/zstd-1.5.0/CONTRIBUTING.md b/dependencies/zstd-1.5.0/CONTRIBUTING.md new file mode 100644 index 0000000..5effa26 --- /dev/null +++ b/dependencies/zstd-1.5.0/CONTRIBUTING.md @@ -0,0 +1,504 @@ +# Contributing to Zstandard +We want to make contributing to this project as easy and transparent as +possible. + +## Our Development Process +New versions are being developed in the "dev" branch, +or in their own feature branch. +When they are deemed ready for a release, they are merged into "release". + +As a consequences, all contributions must stage first through "dev" +or their own feature branch. + +## Pull Requests +We actively welcome your pull requests. + +1. Fork the repo and create your branch from `dev`. +2. If you've added code that should be tested, add tests. +3. If you've changed APIs, update the documentation. +4. Ensure the test suite passes. +5. Make sure your code lints. +6. If you haven't already, complete the Contributor License Agreement ("CLA"). + +## Contributor License Agreement ("CLA") +In order to accept your pull request, we need you to submit a CLA. You only need +to do this once to work on any of Facebook's open source projects. + +Complete your CLA here: + +## Workflow +Zstd uses a branch-based workflow for making changes to the codebase. Typically, zstd +will use a new branch per sizable topic. For smaller changes, it is okay to lump multiple +related changes into a branch. + +Our contribution process works in three main stages: +1. Local development + * Update: + * Checkout your fork of zstd if you have not already + ``` + git checkout https://github.com//zstd + cd zstd + ``` + * Update your local dev branch + ``` + git pull https://github.com/facebook/zstd dev + git push origin dev + ``` + * Topic and development: + * Make a new branch on your fork about the topic you're developing for + ``` + # branch names should be consise but sufficiently informative + git checkout -b + git push origin + ``` + * Make commits and push + ``` + # make some changes = + git add -u && git commit -m + git push origin + ``` + * Note: run local tests to ensure that your changes didn't break existing functionality + * Quick check + ``` + make shortest + ``` + * Longer check + ``` + make test + ``` +2. Code Review and CI tests + * Ensure CI tests pass: + * Before sharing anything to the community, make sure that all CI tests pass on your local fork. + See our section on setting up your CI environment for more information on how to do this. + * Ensure that static analysis passes on your development machine. See the Static Analysis section + below to see how to do this. + * Create a pull request: + * When you are ready to share you changes to the community, create a pull request from your branch + to facebook:dev. You can do this very easily by clicking 'Create Pull Request' on your fork's home + page. + * From there, select the branch where you made changes as your source branch and facebook:dev + as the destination. + * Examine the diff presented between the two branches to make sure there is nothing unexpected. + * Write a good pull request description: + * While there is no strict template that our contributors follow, we would like them to + sufficiently summarize and motivate the changes they are proposing. We recommend all pull requests, + at least indirectly, address the following points. + * Is this pull request important and why? + * Is it addressing an issue? If so, what issue? (provide links for convenience please) + * Is this a new feature? If so, why is it useful and/or necessary? + * Are there background references and documents that reviewers should be aware of to properly assess this change? + * Note: make sure to point out any design and architectural decisions that you made and the rationale behind them. + * Note: if you have been working with a specific user and would like them to review your work, make sure you mention them using (@) + * Submit the pull request and iterate with feedback. +3. Merge and Release + * Getting approval: + * You will have to iterate on your changes with feedback from other collaborators to reach a point + where your pull request can be safely merged. + * To avoid too many comments on style and convention, make sure that you have a + look at our style section below before creating a pull request. + * Eventually, someone from the zstd team will approve your pull request and not long after merge it into + the dev branch. + * Housekeeping: + * Most PRs are linked with one or more Github issues. If this is the case for your PR, make sure + the corresponding issue is mentioned. If your change 'fixes' or completely addresses the + issue at hand, then please indicate this by requesting that an issue be closed by commenting. + * Just because your changes have been merged does not mean the topic or larger issue is complete. Remember + that the change must make it to an official zstd release for it to be meaningful. We recommend + that contributers track the activity on their pull request and corresponding issue(s) page(s) until + their change makes it to the next release of zstd. Users will often discover bugs in your code or + suggest ways to refine and improve your initial changes even after the pull request is merged. + +## Static Analysis +Static analysis is a process for examining the correctness or validity of a program without actually +executing it. It usually helps us find many simple bugs. Zstd uses clang's `scan-build` tool for +static analysis. You can install it by following the instructions for your OS on https://clang-analyzer.llvm.org/scan-build. + +Once installed, you can ensure that our static analysis tests pass on your local development machine +by running: +``` +make staticAnalyze +``` + +In general, you can use `scan-build` to static analyze any build script. For example, to static analyze +just `contrib/largeNbDicts` and nothing else, you can run: + +``` +scan-build make -C contrib/largeNbDicts largeNbDicts +``` + +### Pitfalls of static analysis +`scan-build` is part of our regular CI suite. Other static analyzers are not. + +It can be useful to look at additional static analyzers once in a while (and we do), but it's not a good idea to multiply the nb of analyzers run continuously at each commit and PR. The reasons are : + +- Static analyzers are full of false positive. The signal to noise ratio is actually pretty low. +- A good CI policy is "zero-warning tolerance". That means that all issues must be solved, including false positives. This quickly becomes a tedious workload. +- Multiple static analyzers will feature multiple kind of false positives, sometimes applying to the same code but in different ways leading to : + + torteous code, trying to please multiple constraints, hurting readability and therefore maintenance. Sometimes, such complexity introduce other more subtle bugs, that are just out of scope of the analyzers. + + sometimes, these constraints are mutually exclusive : if one try to solve one, the other static analyzer will complain, they can't be both happy at the same time. +- As if that was not enough, the list of false positives change with each version. It's hard enough to follow one static analyzer, but multiple ones with their own update agenda, this quickly becomes a massive velocity reducer. + +This is different from running a static analyzer once in a while, looking at the output, and __cherry picking__ a few warnings that seem helpful, either because they detected a genuine risk of bug, or because it helps expressing the code in a way which is more readable or more difficult to misuse. These kind of reports can be useful, and are accepted. + +## Performance +Performance is extremely important for zstd and we only merge pull requests whose performance +landscape and corresponding trade-offs have been adequately analyzed, reproduced, and presented. +This high bar for performance means that every PR which has the potential to +impact performance takes a very long time for us to properly review. That being said, we +always welcome contributions to improve performance (or worsen performance for the trade-off of +something else). Please keep the following in mind before submitting a performance related PR: + +1. Zstd isn't as old as gzip but it has been around for time now and its evolution is +very well documented via past Github issues and pull requests. It may be the case that your +particular performance optimization has already been considered in the past. Please take some +time to search through old issues and pull requests using keywords specific to your +would-be PR. Of course, just because a topic has already been discussed (and perhaps rejected +on some grounds) in the past, doesn't mean it isn't worth bringing up again. But even in that case, +it will be helpful for you to have context from that topic's history before contributing. +2. The distinction between noise and actual performance gains can unfortunately be very subtle +especially when microbenchmarking extremely small wins or losses. The only remedy to getting +something subtle merged is extensive benchmarking. You will be doing us a great favor if you +take the time to run extensive, long-duration, and potentially cross-(os, platform, process, etc) +benchmarks on your end before submitting a PR. Of course, you will not be able to benchmark +your changes on every single processor and os out there (and neither will we) but do that best +you can:) We've adding some things to think about when benchmarking below in the Benchmarking +Performance section which might be helpful for you. +3. Optimizing performance for a certain OS, processor vendor, compiler, or network system is a perfectly +legitimate thing to do as long as it does not harm the overall performance health of Zstd. +This is a hard balance to strike but please keep in mind other aspects of Zstd when +submitting changes that are clang-specific, windows-specific, etc. + +## Benchmarking Performance +Performance microbenchmarking is a tricky subject but also essential for Zstd. We value empirical +testing over theoretical speculation. This guide it not perfect but for most scenarios, it +is a good place to start. + +### Stability +Unfortunately, the most important aspect in being able to benchmark reliably is to have a stable +benchmarking machine. A virtual machine, a machine with shared resources, or your laptop +will typically not be stable enough to obtain reliable benchmark results. If you can get your +hands on a desktop, this is usually a better scenario. + +Of course, benchmarking can be done on non-hyper-stable machines as well. You will just have to +do a little more work to ensure that you are in fact measuring the changes you've made not and +noise. Here are some things you can do to make your benchmarks more stable: + +1. The most simple thing you can do to drastically improve the stability of your benchmark is +to run it multiple times and then aggregate the results of those runs. As a general rule of +thumb, the smaller the change you are trying to measure, the more samples of benchmark runs +you will have to aggregate over to get reliable results. Here are some additional things to keep in +mind when running multiple trials: + * How you aggregate your samples are important. You might be tempted to use the mean of your + results. While this is certainly going to be a more stable number than a raw single sample + benchmark number, you might have more luck by taking the median. The mean is not robust to + outliers whereas the median is. Better still, you could simply take the fastest speed your + benchmark achieved on each run since that is likely the fastest your process will be + capable of running your code. In our experience, this (aggregating by just taking the sample + with the fastest running time) has been the most stable approach. + * The more samples you have, the more stable your benchmarks should be. You can verify + your improved stability by looking at the size of your confidence intervals as you + increase your sample count. These should get smaller and smaller. Eventually hopefully + smaller than the performance win you are expecting. + * Most processors will take some time to get `hot` when running anything. The observations + you collect during that time period will very different from the true performance number. Having + a very large number of sample will help alleviate this problem slightly but you can also + address is directly by simply not including the first `n` iterations of your benchmark in + your aggregations. You can determine `n` by simply looking at the results from each iteration + and then hand picking a good threshold after which the variance in results seems to stabilize. +2. You cannot really get reliable benchmarks if your host machine is simultaneously running +another cpu/memory-intensive application in the background. If you are running benchmarks on your +personal laptop for instance, you should close all applications (including your code editor and +browser) before running your benchmarks. You might also have invisible background applications +running. You can see what these are by looking at either Activity Monitor on Mac or Task Manager +on Windows. You will get more stable benchmark results of you end those processes as well. + * If you have multiple cores, you can even run your benchmark on a reserved core to prevent + pollution from other OS and user processes. There are a number of ways to do this depending + on your OS: + * On linux boxes, you have use https://github.com/lpechacek/cpuset. + * On Windows, you can "Set Processor Affinity" using https://www.thewindowsclub.com/processor-affinity-windows + * On Mac, you can try to use their dedicated affinity API https://developer.apple.com/library/archive/releasenotes/Performance/RN-AffinityAPI/#//apple_ref/doc/uid/TP40006635-CH1-DontLinkElementID_2 +3. To benchmark, you will likely end up writing a separate c/c++ program that will link libzstd. +Dynamically linking your library will introduce some added variation (not a large amount but +definitely some). Statically linking libzstd will be more stable. Static libraries should +be enabled by default when building zstd. +4. Use a profiler with a good high resolution timer. See the section below on profiling for +details on this. +5. Disable frequency scaling, turbo boost and address space randomization (this will vary by OS) +6. Try to avoid storage. On some systems you can use tmpfs. Putting the program, inputs and outputs on +tmpfs avoids touching a real storage system, which can have a pretty big variability. + +Also check our LLVM's guide on benchmarking here: https://llvm.org/docs/Benchmarking.html + +### Zstd benchmark +The fastest signal you can get regarding your performance changes is via the in-build zstd cli +bench option. You can run Zstd as you typically would for your scenario using some set of options +and then additionally also specify the `-b#` option. Doing this will run our benchmarking pipeline +for that options you have just provided. If you want to look at the internals of how this +benchmarking script works, you can check out programs/benchzstd.c + +For example: say you have made a change that you believe improves the speed of zstd level 1. The +very first thing you should use to asses whether you actually achieved any sort of improvement +is `zstd -b`. You might try to do something like this. Note: you can use the `-i` option to +specify a running time for your benchmark in seconds (default is 3 seconds). +Usually, the longer the running time, the more stable your results will be. + +``` +$ git checkout +$ make && cp zstd zstd-old +$ git checkout +$ make && cp zstd zstd-new +$ zstd-old -i5 -b1 + 1 : 8990 -> 3992 (2.252), 302.6 MB/s , 626.4 MB/s +$ zstd-new -i5 -b1 + 1 : 8990 -> 3992 (2.252), 302.8 MB/s , 628.4 MB/s +``` + +Unless your performance win is large enough to be visible despite the intrinsic noise +on your computer, benchzstd alone will likely not be enough to validate the impact of your +changes. For example, the results of the example above indicate that effectively nothing +changed but there could be a small <3% improvement that the noise on the host machine +obscured. So unless you see a large performance win (10-15% consistently) using just +this method of evaluation will not be sufficient. + +### Profiling +There are a number of great profilers out there. We're going to briefly mention how you can +profile your code using `instruments` on mac, `perf` on linux and `visual studio profiler` +on windows. + +Say you have an idea for a change that you think will provide some good performance gains +for level 1 compression on Zstd. Typically this means, you have identified a section of +code that you think can be made to run faster. + +The first thing you will want to do is make sure that the piece of code is actually taking up +a notable amount of time to run. It is usually not worth optimzing something which accounts for less than +0.0001% of the total running time. Luckily, there are tools to help with this. +Profilers will let you see how much time your code spends inside a particular function. +If your target code snippit is only part of a function, it might be worth trying to +isolate that snippit by moving it to its own function (this is usually not necessary but +might be). + +Most profilers (including the profilers dicusssed below) will generate a call graph of +functions for you. Your goal will be to find your function of interest in this call grapch +and then inspect the time spent inside of it. You might also want to to look at the +annotated assembly which most profilers will provide you with. + +#### Instruments +We will once again consider the scenario where you think you've identified a piece of code +whose performance can be improved upon. Follow these steps to profile your code using +Instruments. + +1. Open Instruments +2. Select `Time Profiler` from the list of standard templates +3. Close all other applications except for your instruments window and your terminal +4. Run your benchmarking script from your terminal window + * You will want a benchmark that runs for at least a few seconds (5 seconds will + usually be long enough). This way the profiler will have something to work with + and you will have ample time to attach your profiler to this process:) + * I will just use benchzstd as my bencharmking script for this example: +``` +$ zstd -b1 -i5 # this will run for 5 seconds +``` +5. Once you run your benchmarking script, switch back over to instruments and attach your +process to the time profiler. You can do this by: + * Clicking on the `All Processes` drop down in the top left of the toolbar. + * Selecting your process from the dropdown. In my case, it is just going to be labled + `zstd` + * Hitting the bright red record circle button on the top left of the toolbar +6. You profiler will now start collecting metrics from your bencharking script. Once +you think you have collected enough samples (usually this is the case after 3 seconds of +recording), stop your profiler. +7. Make sure that in toolbar of the bottom window, `profile` is selected. +8. You should be able to see your call graph. + * If you don't see the call graph or an incomplete call graph, make sure you have compiled + zstd and your benchmarking scripg using debug flags. On mac and linux, this just means + you will have to supply the `-g` flag alone with your build script. You might also + have to provide the `-fno-omit-frame-pointer` flag +9. Dig down the graph to find your function call and then inspect it by double clicking +the list item. You will be able to see the annotated source code and the assembly side by +side. + +#### Perf + +This wiki has a pretty detailed tutorial on getting started working with perf so we'll +leave you to check that out of you're getting started: + +https://perf.wiki.kernel.org/index.php/Tutorial + +Some general notes on perf: +* Use `perf stat -r # ` to quickly get some relevant timing and +counter statistics. Perf uses a high resolution timer and this is likely one +of the first things your team will run when assessing your PR. +* Perf has a long list of hardware counters that can be viewed with `perf --list`. +When measuring optimizations, something worth trying is to make sure the handware +counters you expect to be impacted by your change are in fact being so. For example, +if you expect the L1 cache misses to decrease with your change, you can look at the +counter `L1-dcache-load-misses` +* Perf hardware counters will not work on a virtual machine. + +#### Visual Studio + +TODO + + +## Setting up continuous integration (CI) on your fork +Zstd uses a number of different continuous integration (CI) tools to ensure that new changes +are well tested before they make it to an official release. Specifically, we use the platforms +travis-ci, circle-ci, and appveyor. + +Changes cannot be merged into the main dev branch unless they pass all of our CI tests. +The easiest way to run these CI tests on your own before submitting a PR to our dev branch +is to configure your personal fork of zstd with each of the CI platforms. Below, you'll find +instructions for doing this. + +### travis-ci +Follow these steps to link travis-ci with your github fork of zstd + +1. Make sure you are logged into your github account +2. Go to https://travis-ci.org/ +3. Click 'Sign in with Github' on the top right +4. Click 'Authorize travis-ci' +5. Click 'Activate all repositories using Github Apps' +6. Select 'Only select repositories' and select your fork of zstd from the drop down +7. Click 'Approve and Install' +8. Click 'Sign in with Github' again. This time, it will be for travis-pro (which will let you view your tests on the web dashboard) +9. Click 'Authorize travis-pro' +10. You should have travis set up on your fork now. + +### circle-ci +TODO + +### appveyor +Follow these steps to link circle-ci with your girhub fork of zstd + +1. Make sure you are logged into your github account +2. Go to https://www.appveyor.com/ +3. Click 'Sign in' on the top right +4. Select 'Github' on the left panel +5. Click 'Authorize appveyor' +6. You might be asked to select which repositories you want to give appveyor permission to. Select your fork of zstd if you're prompted +7. You should have appveyor set up on your fork now. + +### General notes on CI +CI tests run every time a pull request (PR) is created or updated. The exact tests +that get run will depend on the destination branch you specify. Some tests take +longer to run than others. Currently, our CI is set up to run a short +series of tests when creating a PR to the dev branch and a longer series of tests +when creating a PR to the release branch. You can look in the configuration files +of the respective CI platform for more information on what gets run when. + +Most people will just want to create a PR with the destination set to their local dev +branch of zstd. You can then find the status of the tests on the PR's page. You can also +re-run tests and cancel running tests from the PR page or from the respective CI's dashboard. + +## Issues +We use GitHub issues to track public bugs. Please ensure your description is +clear and has sufficient instructions to be able to reproduce the issue. + +Facebook has a [bounty program](https://www.facebook.com/whitehat/) for the safe +disclosure of security bugs. In those cases, please go through the process +outlined on that page and do not file a public issue. + +## Coding Style +It's a pretty long topic, which is difficult to summarize in a single paragraph. +As a rule of thumbs, try to imitate the coding style of +similar lines of codes around your contribution. +The following is a non-exhaustive list of rules employed in zstd code base: + +### C90 +This code base is following strict C90 standard, +with 2 extensions : 64-bit `long long` types, and variadic macros. +This rule is applied strictly to code within `lib/` and `programs/`. +Sub-project in `contrib/` are allowed to use other conventions. + +### C++ direct compatibility : symbol mangling +All public symbol declarations must be wrapped in `extern “C” { … }`, +so that this project can be compiled as C++98 code, +and linked into C++ applications. + +### Minimal Frugal +This design requirement is fundamental to preserve the portability of the code base. +#### Dependencies +- Reduce dependencies to the minimum possible level. + Any dependency should be considered “bad” by default, + and only tolerated because it provides a service in a better way than can be achieved locally. + The only external dependencies this repository tolerates are + standard C libraries, and in rare cases, system level headers. +- Within `lib/`, this policy is even more drastic. + The only external dependencies allowed are ``, ``, ``, + and even then, not directly. + In particular, no function shall ever allocate on heap directly, + and must use instead `ZSTD_malloc()` and equivalent. + Other accepted non-symbol headers are `` and ``. +- Within the project, there is a strict hierarchy of dependencies that must be respected. + `programs/` is allowed to depend on `lib/`, but only its public API. + Within `lib/`, `lib/common` doesn't depend on any other directory. + `lib/compress` and `lib/decompress` shall not depend on each other. + `lib/dictBuilder` can depend on `lib/common` and `lib/compress`, but not `lib/decompress`. +#### Resources +- Functions in `lib/` must use very little stack space, + several dozens of bytes max. + Everything larger must use the heap allocator, + or require a scratch buffer to be emplaced manually. + +### Naming +* All public symbols are prefixed with `ZSTD_` + + private symbols, with a scope limited to their own unit, are free of this restriction. + However, since `libzstd` source code can be amalgamated, + each symbol name must attempt to be (and remain) unique. + Avoid too generic names that could become ground for future collisions. + This generally implies usage of some form of prefix. +* For symbols (functions and variables), naming convention is `PREFIX_camelCase`. + + In some advanced cases, one can also find : + - `PREFIX_prefix2_camelCase` + - `PREFIX_camelCase_extendedQualifier` +* Multi-words names generally consist of an action followed by object: + - for example : `ZSTD_createCCtx()` +* Prefer positive actions + - `goBackward` rather than `notGoForward` +* Type names (`struct`, etc.) follow similar convention, + except that they are allowed and even invited to start by an Uppercase letter. + Example : `ZSTD_CCtx`, `ZSTD_CDict` +* Macro names are all Capital letters. + The same composition rules (`PREFIX_NAME_QUALIFIER`) apply. +* File names are all lowercase letters. + The convention is `snake_case`. + File names **must** be unique across the entire code base, + even when they stand in clearly separated directories. + +### Qualifiers +* This code base is `const` friendly, if not `const` fanatical. + Any variable that can be `const` (aka. read-only) **must** be `const`. + Any pointer which content will not be modified must be `const`. + This property is then controlled at compiler level. + `const` variables are an important signal to readers that this variable isn’t modified. + Conversely, non-const variables are a signal to readers to watch out for modifications later on in the function. +* If a function must be inlined, mention it explicitly, + using project's own portable macros, such as `FORCE_INLINE_ATTR`, + defined in `lib/common/compiler.h`. + +### Debugging +* **Assertions** are welcome, and should be used very liberally, + to control any condition the code expects for its correct execution. + These assertion checks will be run in debug builds, and disabled in production. +* For traces, this project provides its own debug macros, + in particular `DEBUGLOG(level, ...)`, defined in `lib/common/debug.h`. + +### Code documentation +* Avoid code documentation that merely repeats what the code is already stating. + Whenever applicable, prefer employing the code as the primary way to convey explanations. + Example 1 : `int nbTokens = n;` instead of `int i = n; /* i is a nb of tokens *./`. + Example 2 : `assert(size > 0);` instead of `/* here, size should be positive */`. +* At declaration level, the documentation explains how to use the function or variable + and when applicable why it's needed, of the scenarios where it can be useful. +* At implementation level, the documentation explains the general outline of the algorithm employed, + and when applicable why this specific choice was preferred. + +### General layout +* 4 spaces for indentation rather than tabs +* Code documentation shall directly precede function declaration or implementation +* Function implementations and its code documentation should be preceded and followed by an empty line + + +## License +By contributing to Zstandard, you agree that your contributions will be licensed +under both the [LICENSE](LICENSE) file and the [COPYING](COPYING) file in the root directory of this source tree. diff --git a/dependencies/zstd-1.5.0/COPYING b/dependencies/zstd-1.5.0/COPYING new file mode 100644 index 0000000..ecbc059 --- /dev/null +++ b/dependencies/zstd-1.5.0/COPYING @@ -0,0 +1,339 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Lesser General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + 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. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. \ No newline at end of file diff --git a/dependencies/zstd-1.5.0/LICENSE b/dependencies/zstd-1.5.0/LICENSE new file mode 100644 index 0000000..a793a80 --- /dev/null +++ b/dependencies/zstd-1.5.0/LICENSE @@ -0,0 +1,30 @@ +BSD License + +For Zstandard software + +Copyright (c) 2016-present, Facebook, Inc. All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + + * Neither the name Facebook nor the names of its contributors may be used to + endorse or promote products derived from this software without specific + prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/dependencies/zstd-1.5.0/Makefile b/dependencies/zstd-1.5.0/Makefile new file mode 100644 index 0000000..c1908f0 --- /dev/null +++ b/dependencies/zstd-1.5.0/Makefile @@ -0,0 +1,420 @@ +# ################################################################ +# Copyright (c) 2015-2021, Yann Collet, Facebook, Inc. +# All rights reserved. +# +# This source code is licensed under both the BSD-style license (found in the +# LICENSE file in the root directory of this source tree) and the GPLv2 (found +# in the COPYING file in the root directory of this source tree). +# You may select, at your option, one of the above-listed licenses. +# ################################################################ + +# verbose mode (print commands) on V=1 or VERBOSE=1 +Q = $(if $(filter 1,$(V) $(VERBOSE)),,@) + +PRGDIR = programs +ZSTDDIR = lib +BUILDIR = build +ZWRAPDIR = zlibWrapper +TESTDIR = tests +FUZZDIR = $(TESTDIR)/fuzz + +# Define nul output +VOID = /dev/null + +# When cross-compiling from linux to windows, you might +# need to specify this as "Windows." Fedora build fails +# without it. +# +# Note: mingw-w64 build from linux to windows does not +# fail on other tested distros (ubuntu, debian) even +# without manually specifying the TARGET_SYSTEM. +TARGET_SYSTEM ?= $(OS) + +ifneq (,$(filter Windows%,$(TARGET_SYSTEM))) + EXT =.exe +else + EXT = +endif + +## default: Build lib-release and zstd-release +.PHONY: default +default: lib-release zstd-release + +.PHONY: all +all: allmost examples manual contrib + +.PHONY: allmost +allmost: allzstd zlibwrapper + +# skip zwrapper, can't build that on alternate architectures without the proper zlib installed +.PHONY: allzstd +allzstd: lib + $(Q)$(MAKE) -C $(PRGDIR) all + $(Q)$(MAKE) -C $(TESTDIR) all + +.PHONY: all32 +all32: + $(MAKE) -C $(PRGDIR) zstd32 + $(MAKE) -C $(TESTDIR) all32 + +.PHONY: lib lib-release lib-mt lib-nomt +lib lib-release lib-mt lib-nomt: + $(Q)$(MAKE) -C $(ZSTDDIR) $@ + +.PHONY: zstd zstd-release +zstd zstd-release: + $(Q)$(MAKE) -C $(PRGDIR) $@ + $(Q)ln -sf $(PRGDIR)/zstd$(EXT) zstd$(EXT) + +.PHONY: zstdmt +zstdmt: + $(Q)$(MAKE) -C $(PRGDIR) $@ + $(Q)cp $(PRGDIR)/zstd$(EXT) ./zstdmt$(EXT) + +.PHONY: zlibwrapper +zlibwrapper: lib + $(MAKE) -C $(ZWRAPDIR) all + +## test: run long-duration tests +.PHONY: test +DEBUGLEVEL ?= 1 +test: MOREFLAGS += -g -Werror +test: + DEBUGLEVEL=$(DEBUGLEVEL) MOREFLAGS="$(MOREFLAGS)" $(MAKE) -j -C $(PRGDIR) allVariants + $(MAKE) -C $(TESTDIR) $@ + ZSTD=../../programs/zstd $(MAKE) -C doc/educational_decoder $@ + +## shortest: same as `make check` +.PHONY: shortest +shortest: + $(Q)$(MAKE) -C $(TESTDIR) $@ + +## check: run basic tests for `zstd` cli +.PHONY: check +check: shortest + +.PHONY: automated_benchmarking +automated_benchmarking: + $(MAKE) -C $(TESTDIR) $@ + +.PHONY: benchmarking +benchmarking: automated_benchmarking + +## examples: build all examples in `examples/` directory +.PHONY: examples +examples: lib + $(MAKE) -C examples all + +## manual: generate API documentation in html format +.PHONY: manual +manual: + $(MAKE) -C contrib/gen_html $@ + +## man: generate man page +.PHONY: man +man: + $(MAKE) -C programs $@ + +## contrib: build all supported projects in `/contrib` directory +.PHONY: contrib +contrib: lib + $(MAKE) -C contrib/pzstd all + $(MAKE) -C contrib/seekable_format/examples all + $(MAKE) -C contrib/seekable_format/tests test + $(MAKE) -C contrib/largeNbDicts all + cd build/single_file_libs/ ; ./build_decoder_test.sh + cd build/single_file_libs/ ; ./build_library_test.sh + +.PHONY: cleanTabs +cleanTabs: + cd contrib; ./cleanTabs + +.PHONY: clean +clean: + $(Q)$(MAKE) -C $(ZSTDDIR) $@ > $(VOID) + $(Q)$(MAKE) -C $(PRGDIR) $@ > $(VOID) + $(Q)$(MAKE) -C $(TESTDIR) $@ > $(VOID) + $(Q)$(MAKE) -C $(ZWRAPDIR) $@ > $(VOID) + $(Q)$(MAKE) -C examples/ $@ > $(VOID) + $(Q)$(MAKE) -C contrib/gen_html $@ > $(VOID) + $(Q)$(MAKE) -C contrib/pzstd $@ > $(VOID) + $(Q)$(MAKE) -C contrib/seekable_format/examples $@ > $(VOID) + $(Q)$(MAKE) -C contrib/seekable_format/tests $@ > $(VOID) + $(Q)$(MAKE) -C contrib/largeNbDicts $@ > $(VOID) + $(Q)$(RM) zstd$(EXT) zstdmt$(EXT) tmp* + $(Q)$(RM) -r lz4 + @echo Cleaning completed + +#------------------------------------------------------------------------------ +# make install is validated only for Linux, macOS, Hurd and some BSD targets +#------------------------------------------------------------------------------ +ifneq (,$(filter $(shell uname),Linux Darwin GNU/kFreeBSD GNU OpenBSD FreeBSD DragonFly NetBSD MSYS_NT Haiku)) + +HOST_OS = POSIX + +HAVE_COLORNEVER = $(shell echo a | egrep --color=never a > /dev/null 2> /dev/null && echo 1 || echo 0) +EGREP_OPTIONS ?= +ifeq ($HAVE_COLORNEVER, 1) +EGREP_OPTIONS += --color=never +endif +EGREP = egrep $(EGREP_OPTIONS) + +# Print a two column output of targets and their description. To add a target description, put a +# comment in the Makefile with the format "## : ". For example: +# +## list: Print all targets and their descriptions (if provided) +.PHONY: list +list: + $(Q)TARGETS=$$($(MAKE) -pRrq -f $(lastword $(MAKEFILE_LIST)) : 2>/dev/null \ + | awk -v RS= -F: '/^# File/,/^# Finished Make data base/ {if ($$1 !~ "^[#.]") {print $$1}}' \ + | $(EGREP) -v -e '^[^[:alnum:]]' | sort); \ + { \ + printf "Target Name\tDescription\n"; \ + printf "%0.s-" {1..16}; printf "\t"; printf "%0.s-" {1..40}; printf "\n"; \ + for target in $$TARGETS; do \ + line=$$($(EGREP) "^##[[:space:]]+$$target:" $(lastword $(MAKEFILE_LIST))); \ + description=$$(echo $$line | awk '{i=index($$0,":"); print substr($$0,i+1)}' | xargs); \ + printf "$$target\t$$description\n"; \ + done \ + } | column -t -s $$'\t' + +.PHONY: install armtest usan asan uasan msan asan32 +install: + $(Q)$(MAKE) -C $(ZSTDDIR) $@ + $(Q)$(MAKE) -C $(PRGDIR) $@ + +.PHONY: uninstall +uninstall: + $(Q)$(MAKE) -C $(ZSTDDIR) $@ + $(Q)$(MAKE) -C $(PRGDIR) $@ + +.PHONY: travis-install +travis-install: + $(MAKE) install PREFIX=~/install_test_dir + +.PHONY: gcc5build gcc6build gcc7build clangbuild m32build armbuild aarch64build ppcbuild ppc64build +gcc5build: clean + gcc-5 -v + CC=gcc-5 $(MAKE) all MOREFLAGS="-Werror" + +gcc6build: clean + gcc-6 -v + CC=gcc-6 $(MAKE) all MOREFLAGS="-Werror" + +gcc7build: clean + gcc-7 -v + CC=gcc-7 $(MAKE) all MOREFLAGS="-Werror" + +clangbuild: clean + clang -v + CXX=clang++ CC=clang CFLAGS="-Werror -Wconversion -Wno-sign-conversion -Wdocumentation" $(MAKE) all + +m32build: clean + gcc -v + $(MAKE) all32 + +armbuild: clean + CC=arm-linux-gnueabi-gcc CFLAGS="-Werror" $(MAKE) allzstd + +aarch64build: clean + CC=aarch64-linux-gnu-gcc CFLAGS="-Werror" $(MAKE) allzstd + +ppcbuild: clean + CC=powerpc-linux-gnu-gcc CFLAGS="-m32 -Wno-attributes -Werror" $(MAKE) -j allzstd + +ppc64build: clean + CC=powerpc-linux-gnu-gcc CFLAGS="-m64 -Werror" $(MAKE) -j allzstd + +.PHONY: armfuzz aarch64fuzz ppcfuzz ppc64fuzz +armfuzz: clean + CC=arm-linux-gnueabi-gcc QEMU_SYS=qemu-arm-static MOREFLAGS="-static" FUZZER_FLAGS=--no-big-tests $(MAKE) -C $(TESTDIR) fuzztest + +aarch64fuzz: clean + ld -v + CC=aarch64-linux-gnu-gcc QEMU_SYS=qemu-aarch64-static MOREFLAGS="-static" FUZZER_FLAGS=--no-big-tests $(MAKE) -C $(TESTDIR) fuzztest + +ppcfuzz: clean + CC=powerpc-linux-gnu-gcc QEMU_SYS=qemu-ppc-static MOREFLAGS="-static" FUZZER_FLAGS=--no-big-tests $(MAKE) -C $(TESTDIR) fuzztest + +ppc64fuzz: clean + CC=powerpc-linux-gnu-gcc QEMU_SYS=qemu-ppc64-static MOREFLAGS="-m64 -static" FUZZER_FLAGS=--no-big-tests $(MAKE) -C $(TESTDIR) fuzztest + +.PHONY: cxxtest gcc5test gcc6test armtest aarch64test ppctest ppc64test +cxxtest: CXXFLAGS += -Wall -Wextra -Wundef -Wshadow -Wcast-align -Werror +cxxtest: clean + $(MAKE) -C $(PRGDIR) all CC="$(CXX) -Wno-deprecated" CFLAGS="$(CXXFLAGS)" # adding -Wno-deprecated to avoid clang++ warning on dealing with C files directly + +gcc5test: clean + gcc-5 -v + $(MAKE) all CC=gcc-5 MOREFLAGS="-Werror" + +gcc6test: clean + gcc-6 -v + $(MAKE) all CC=gcc-6 MOREFLAGS="-Werror" + +armtest: clean + $(MAKE) -C $(TESTDIR) datagen # use native, faster + $(MAKE) -C $(TESTDIR) test CC=arm-linux-gnueabi-gcc QEMU_SYS=qemu-arm-static ZSTDRTTEST= MOREFLAGS="-Werror -static" FUZZER_FLAGS=--no-big-tests + +aarch64test: + $(MAKE) -C $(TESTDIR) datagen # use native, faster + $(MAKE) -C $(TESTDIR) test CC=aarch64-linux-gnu-gcc QEMU_SYS=qemu-aarch64-static ZSTDRTTEST= MOREFLAGS="-Werror -static" FUZZER_FLAGS=--no-big-tests + +ppctest: clean + $(MAKE) -C $(TESTDIR) datagen # use native, faster + $(MAKE) -C $(TESTDIR) test CC=powerpc-linux-gnu-gcc QEMU_SYS=qemu-ppc-static ZSTDRTTEST= MOREFLAGS="-Werror -Wno-attributes -static" FUZZER_FLAGS=--no-big-tests + +ppc64test: clean + $(MAKE) -C $(TESTDIR) datagen # use native, faster + $(MAKE) -C $(TESTDIR) test CC=powerpc-linux-gnu-gcc QEMU_SYS=qemu-ppc64-static ZSTDRTTEST= MOREFLAGS="-m64 -static" FUZZER_FLAGS=--no-big-tests + +.PHONY: arm-ppc-compilation +arm-ppc-compilation: + $(MAKE) -C $(PRGDIR) clean zstd CC=arm-linux-gnueabi-gcc QEMU_SYS=qemu-arm-static ZSTDRTTEST= MOREFLAGS="-Werror -static" + $(MAKE) -C $(PRGDIR) clean zstd CC=aarch64-linux-gnu-gcc QEMU_SYS=qemu-aarch64-static ZSTDRTTEST= MOREFLAGS="-Werror -static" + $(MAKE) -C $(PRGDIR) clean zstd CC=powerpc-linux-gnu-gcc QEMU_SYS=qemu-ppc-static ZSTDRTTEST= MOREFLAGS="-Werror -Wno-attributes -static" + $(MAKE) -C $(PRGDIR) clean zstd CC=powerpc-linux-gnu-gcc QEMU_SYS=qemu-ppc64-static ZSTDRTTEST= MOREFLAGS="-m64 -static" + +regressiontest: + $(MAKE) -C $(FUZZDIR) regressiontest + +uasanregressiontest: + $(MAKE) -C $(FUZZDIR) regressiontest CC=clang CXX=clang++ CFLAGS="-O3 -fsanitize=address,undefined" CXXFLAGS="-O3 -fsanitize=address,undefined" + +msanregressiontest: + $(MAKE) -C $(FUZZDIR) regressiontest CC=clang CXX=clang++ CFLAGS="-O3 -fsanitize=memory" CXXFLAGS="-O3 -fsanitize=memory" + +# run UBsan with -fsanitize-recover=pointer-overflow +# this only works with recent compilers such as gcc 8+ +usan: clean + $(MAKE) test CC=clang MOREFLAGS="-g -fno-sanitize-recover=all -fsanitize-recover=pointer-overflow -fsanitize=undefined -Werror" + +asan: clean + $(MAKE) test CC=clang MOREFLAGS="-g -fsanitize=address -Werror" + +asan-%: clean + LDFLAGS=-fuse-ld=gold MOREFLAGS="-g -fno-sanitize-recover=all -fsanitize=address -Werror" $(MAKE) -C $(TESTDIR) $* + +msan: clean + $(MAKE) test CC=clang MOREFLAGS="-g -fsanitize=memory -fno-omit-frame-pointer -Werror" HAVE_LZMA=0 # datagen.c fails this test for no obvious reason + +msan-%: clean + LDFLAGS=-fuse-ld=gold MOREFLAGS="-g -fno-sanitize-recover=all -fsanitize=memory -fno-omit-frame-pointer -Werror" FUZZER_FLAGS=--no-big-tests $(MAKE) -C $(TESTDIR) HAVE_LZMA=0 $* + +asan32: clean + $(MAKE) -C $(TESTDIR) test32 CC=clang MOREFLAGS="-g -fsanitize=address" + +uasan: clean + $(MAKE) test CC=clang MOREFLAGS="-g -fno-sanitize-recover=all -fsanitize-recover=pointer-overflow -fsanitize=address,undefined -Werror" + +uasan-%: clean + LDFLAGS=-fuse-ld=gold MOREFLAGS="-g -fno-sanitize-recover=all -fsanitize-recover=pointer-overflow -fsanitize=address,undefined -Werror" $(MAKE) -C $(TESTDIR) $* + +tsan-%: clean + LDFLAGS=-fuse-ld=gold MOREFLAGS="-g -fno-sanitize-recover=all -fsanitize=thread -Werror" $(MAKE) -C $(TESTDIR) $* FUZZER_FLAGS=--no-big-tests + +.PHONY: apt-install +apt-install: + sudo apt-get -yq --no-install-suggests --no-install-recommends --force-yes install $(APT_PACKAGES) + +.PHONY: apt-add-repo +apt-add-repo: + sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test + sudo apt-get update -y -qq + +.PHONY: ppcinstall arminstall valgrindinstall libc6install gcc6install gcc7install gcc8install gpp6install clang38install lz4install +ppcinstall: + APT_PACKAGES="qemu-system-ppc qemu-user-static gcc-powerpc-linux-gnu" $(MAKE) apt-install + +arminstall: + APT_PACKAGES="qemu-system-arm qemu-user-static gcc-arm-linux-gnueabi libc6-dev-armel-cross gcc-aarch64-linux-gnu libc6-dev-arm64-cross" $(MAKE) apt-install + +valgrindinstall: + APT_PACKAGES="valgrind" $(MAKE) apt-install + +libc6install: + APT_PACKAGES="libc6-dev-i386 gcc-multilib" $(MAKE) apt-install + +gcc6install: apt-add-repo + APT_PACKAGES="libc6-dev-i386 gcc-multilib gcc-6 gcc-6-multilib" $(MAKE) apt-install + +gcc7install: apt-add-repo + APT_PACKAGES="libc6-dev-i386 gcc-multilib gcc-7 gcc-7-multilib" $(MAKE) apt-install + +gcc8install: apt-add-repo + APT_PACKAGES="libc6-dev-i386 gcc-multilib gcc-8 gcc-8-multilib" $(MAKE) apt-install + +gpp6install: apt-add-repo + APT_PACKAGES="libc6-dev-i386 g++-multilib gcc-6 g++-6 g++-6-multilib" $(MAKE) apt-install + +clang38install: + APT_PACKAGES="clang-3.8" $(MAKE) apt-install + +# Ubuntu 14.04 ships a too-old lz4 +lz4install: + [ -e lz4 ] || git clone https://github.com/lz4/lz4 && sudo $(MAKE) -C lz4 install + +endif + + +CMAKE_PARAMS = -DZSTD_BUILD_CONTRIB:BOOL=ON -DZSTD_BUILD_STATIC:BOOL=ON -DZSTD_BUILD_TESTS:BOOL=ON -DZSTD_ZLIB_SUPPORT:BOOL=ON -DZSTD_LZMA_SUPPORT:BOOL=ON -DCMAKE_BUILD_TYPE=Release + +ifneq (,$(filter MSYS%,$(shell uname))) +HOST_OS = MSYS +CMAKE_PARAMS = -G"MSYS Makefiles" -DCMAKE_BUILD_TYPE=Debug -DZSTD_MULTITHREAD_SUPPORT:BOOL=OFF -DZSTD_BUILD_STATIC:BOOL=ON -DZSTD_BUILD_TESTS:BOOL=ON +endif + +#------------------------------------------------------------------------ +# target specific tests +#------------------------------------------------------------------------ +ifneq (,$(filter $(HOST_OS),MSYS POSIX)) +.PHONY: cmakebuild c89build gnu90build c99build gnu99build c11build bmix64build bmix32build bmi32build staticAnalyze +cmakebuild: + cmake --version + $(RM) -r $(BUILDIR)/cmake/build + mkdir $(BUILDIR)/cmake/build + cd $(BUILDIR)/cmake/build; cmake -DCMAKE_INSTALL_PREFIX:PATH=~/install_test_dir $(CMAKE_PARAMS) .. + $(MAKE) -C $(BUILDIR)/cmake/build -j4; + $(MAKE) -C $(BUILDIR)/cmake/build install; + $(MAKE) -C $(BUILDIR)/cmake/build uninstall; + cd $(BUILDIR)/cmake/build; ctest -V -L Medium + +c89build: clean + $(CC) -v + CFLAGS="-std=c89 -Werror" $(MAKE) allmost # will fail, due to missing support for `long long` + +gnu90build: clean + $(CC) -v + CFLAGS="-std=gnu90 -Werror" $(MAKE) allmost + +c99build: clean + $(CC) -v + CFLAGS="-std=c99 -Werror" $(MAKE) allmost + +gnu99build: clean + $(CC) -v + CFLAGS="-std=gnu99 -Werror" $(MAKE) allmost + +c11build: clean + $(CC) -v + CFLAGS="-std=c11 -Werror" $(MAKE) allmost + +bmix64build: clean + $(CC) -v + CFLAGS="-O3 -mbmi -Werror" $(MAKE) -C $(TESTDIR) test + +bmix32build: clean + $(CC) -v + CFLAGS="-O3 -mbmi -mx32 -Werror" $(MAKE) -C $(TESTDIR) test + +bmi32build: clean + $(CC) -v + CFLAGS="-O3 -mbmi -m32 -Werror" $(MAKE) -C $(TESTDIR) test + +# static analyzer test uses clang's scan-build +# does not analyze zlibWrapper, due to detected issues in zlib source code +staticAnalyze: SCANBUILD ?= scan-build +staticAnalyze: + $(CC) -v + CC=$(CC) CPPFLAGS=-g $(SCANBUILD) --status-bugs -v $(MAKE) allzstd examples contrib +endif diff --git a/dependencies/zstd-1.5.0/README.md b/dependencies/zstd-1.5.0/README.md new file mode 100644 index 0000000..dcca766 --- /dev/null +++ b/dependencies/zstd-1.5.0/README.md @@ -0,0 +1,199 @@ +

    Zstandard

    + +__Zstandard__, or `zstd` as short version, is a fast lossless compression algorithm, +targeting real-time compression scenarios at zlib-level and better compression ratios. +It's backed by a very fast entropy stage, provided by [Huff0 and FSE library](https://github.com/Cyan4973/FiniteStateEntropy). + +The project is provided as an open-source dual [BSD](LICENSE) and [GPLv2](COPYING) licensed **C** library, +and a command line utility producing and decoding `.zst`, `.gz`, `.xz` and `.lz4` files. +Should your project require another programming language, +a list of known ports and bindings is provided on [Zstandard homepage](http://www.zstd.net/#other-languages). + +**Development branch status:** + +[![Build Status][travisDevBadge]][travisLink] +[![Build status][AppveyorDevBadge]][AppveyorLink] +[![Build status][CircleDevBadge]][CircleLink] +[![Build status][CirrusDevBadge]][CirrusLink] +[![Fuzzing Status][OSSFuzzBadge]][OSSFuzzLink] + +[travisDevBadge]: https://travis-ci.org/facebook/zstd.svg?branch=dev "Continuous Integration test suite" +[travisLink]: https://travis-ci.org/facebook/zstd +[AppveyorDevBadge]: https://ci.appveyor.com/api/projects/status/xt38wbdxjk5mrbem/branch/dev?svg=true "Windows test suite" +[AppveyorLink]: https://ci.appveyor.com/project/YannCollet/zstd-p0yf0 +[CircleDevBadge]: https://circleci.com/gh/facebook/zstd/tree/dev.svg?style=shield "Short test suite" +[CircleLink]: https://circleci.com/gh/facebook/zstd +[CirrusDevBadge]: https://api.cirrus-ci.com/github/facebook/zstd.svg?branch=dev +[CirrusLink]: https://cirrus-ci.com/github/facebook/zstd +[OSSFuzzBadge]: https://oss-fuzz-build-logs.storage.googleapis.com/badges/zstd.svg +[OSSFuzzLink]: https://bugs.chromium.org/p/oss-fuzz/issues/list?sort=-opened&can=1&q=proj:zstd + +## Benchmarks + +For reference, several fast compression algorithms were tested and compared +on a server running Arch Linux (`Linux version 5.5.11-arch1-1`), +with a Core i9-9900K CPU @ 5.0GHz, +using [lzbench], an open-source in-memory benchmark by @inikep +compiled with [gcc] 9.3.0, +on the [Silesia compression corpus]. + +[lzbench]: https://github.com/inikep/lzbench +[Silesia compression corpus]: http://sun.aei.polsl.pl/~sdeor/index.php?page=silesia +[gcc]: https://gcc.gnu.org/ + +| Compressor name | Ratio | Compression| Decompress.| +| --------------- | ------| -----------| ---------- | +| **zstd 1.4.5 -1** | 2.884 | 500 MB/s | 1660 MB/s | +| zlib 1.2.11 -1 | 2.743 | 90 MB/s | 400 MB/s | +| brotli 1.0.7 -0 | 2.703 | 400 MB/s | 450 MB/s | +| **zstd 1.4.5 --fast=1** | 2.434 | 570 MB/s | 2200 MB/s | +| **zstd 1.4.5 --fast=3** | 2.312 | 640 MB/s | 2300 MB/s | +| quicklz 1.5.0 -1 | 2.238 | 560 MB/s | 710 MB/s | +| **zstd 1.4.5 --fast=5** | 2.178 | 700 MB/s | 2420 MB/s | +| lzo1x 2.10 -1 | 2.106 | 690 MB/s | 820 MB/s | +| lz4 1.9.2 | 2.101 | 740 MB/s | 4530 MB/s | +| **zstd 1.4.5 --fast=7** | 2.096 | 750 MB/s | 2480 MB/s | +| lzf 3.6 -1 | 2.077 | 410 MB/s | 860 MB/s | +| snappy 1.1.8 | 2.073 | 560 MB/s | 1790 MB/s | + +[zlib]: http://www.zlib.net/ +[LZ4]: http://www.lz4.org/ + +The negative compression levels, specified with `--fast=#`, +offer faster compression and decompression speed in exchange for some loss in +compression ratio compared to level 1, as seen in the table above. + +Zstd can also offer stronger compression ratios at the cost of compression speed. +Speed vs Compression trade-off is configurable by small increments. +Decompression speed is preserved and remains roughly the same at all settings, +a property shared by most LZ compression algorithms, such as [zlib] or lzma. + +The following tests were run +on a server running Linux Debian (`Linux version 4.14.0-3-amd64`) +with a Core i7-6700K CPU @ 4.0GHz, +using [lzbench], an open-source in-memory benchmark by @inikep +compiled with [gcc] 7.3.0, +on the [Silesia compression corpus]. + +Compression Speed vs Ratio | Decompression Speed +---------------------------|-------------------- +![Compression Speed vs Ratio](doc/images/CSpeed2.png "Compression Speed vs Ratio") | ![Decompression Speed](doc/images/DSpeed3.png "Decompression Speed") + +A few other algorithms can produce higher compression ratios at slower speeds, falling outside of the graph. +For a larger picture including slow modes, [click on this link](doc/images/DCspeed5.png). + + +## The case for Small Data compression + +Previous charts provide results applicable to typical file and stream scenarios (several MB). Small data comes with different perspectives. + +The smaller the amount of data to compress, the more difficult it is to compress. This problem is common to all compression algorithms, and reason is, compression algorithms learn from past data how to compress future data. But at the beginning of a new data set, there is no "past" to build upon. + +To solve this situation, Zstd offers a __training mode__, which can be used to tune the algorithm for a selected type of data. +Training Zstandard is achieved by providing it with a few samples (one file per sample). The result of this training is stored in a file called "dictionary", which must be loaded before compression and decompression. +Using this dictionary, the compression ratio achievable on small data improves dramatically. + +The following example uses the `github-users` [sample set](https://github.com/facebook/zstd/releases/tag/v1.1.3), created from [github public API](https://developer.github.com/v3/users/#get-all-users). +It consists of roughly 10K records weighing about 1KB each. + +Compression Ratio | Compression Speed | Decompression Speed +------------------|-------------------|-------------------- +![Compression Ratio](doc/images/dict-cr.png "Compression Ratio") | ![Compression Speed](doc/images/dict-cs.png "Compression Speed") | ![Decompression Speed](doc/images/dict-ds.png "Decompression Speed") + + +These compression gains are achieved while simultaneously providing _faster_ compression and decompression speeds. + +Training works if there is some correlation in a family of small data samples. The more data-specific a dictionary is, the more efficient it is (there is no _universal dictionary_). +Hence, deploying one dictionary per type of data will provide the greatest benefits. +Dictionary gains are mostly effective in the first few KB. Then, the compression algorithm will gradually use previously decoded content to better compress the rest of the file. + +### Dictionary compression How To: + +1. Create the dictionary + + `zstd --train FullPathToTrainingSet/* -o dictionaryName` + +2. Compress with dictionary + + `zstd -D dictionaryName FILE` + +3. Decompress with dictionary + + `zstd -D dictionaryName --decompress FILE.zst` + + +## Build instructions + +### Makefile + +If your system is compatible with standard `make` (or `gmake`), +invoking `make` in root directory will generate `zstd` cli in root directory. + +Other available options include: +- `make install` : create and install zstd cli, library and man pages +- `make check` : create and run `zstd`, tests its behavior on local platform + +### cmake + +A `cmake` project generator is provided within `build/cmake`. +It can generate Makefiles or other build scripts +to create `zstd` binary, and `libzstd` dynamic and static libraries. + +By default, `CMAKE_BUILD_TYPE` is set to `Release`. + +### Meson + +A Meson project is provided within [`build/meson`](build/meson). Follow +build instructions in that directory. + +You can also take a look at [`.travis.yml`](.travis.yml) file for an +example about how Meson is used to build this project. + +Note that default build type is **release**. + +### VCPKG +You can build and install zstd [vcpkg](https://github.com/Microsoft/vcpkg/) dependency manager: + + git clone https://github.com/Microsoft/vcpkg.git + cd vcpkg + ./bootstrap-vcpkg.sh + ./vcpkg integrate install + ./vcpkg install zstd + +The zstd port in vcpkg is kept up to date by Microsoft team members and community contributors. +If the version is out of date, please [create an issue or pull request](https://github.com/Microsoft/vcpkg) on the vcpkg repository. + +### Visual Studio (Windows) + +Going into `build` directory, you will find additional possibilities: +- Projects for Visual Studio 2005, 2008 and 2010. + + VS2010 project is compatible with VS2012, VS2013, VS2015 and VS2017. +- Automated build scripts for Visual compiler by [@KrzysFR](https://github.com/KrzysFR), in `build/VS_scripts`, + which will build `zstd` cli and `libzstd` library without any need to open Visual Studio solution. + +### Buck + +You can build the zstd binary via buck by executing: `buck build programs:zstd` from the root of the repo. +The output binary will be in `buck-out/gen/programs/`. + +## Testing + +You can run quick local smoke tests by executing the `playTest.sh` script from the `src/tests` directory. +Two env variables `$ZSTD_BIN` and `$DATAGEN_BIN` are needed for the test script to locate the zstd and datagen binary. +For information on CI testing, please refer to TESTING.md + +## Status + +Zstandard is currently deployed within Facebook. It is used continuously to compress large amounts of data in multiple formats and use cases. +Zstandard is considered safe for production environments. + +## License + +Zstandard is dual-licensed under [BSD](LICENSE) and [GPLv2](COPYING). + +## Contributing + +The `dev` branch is the one where all contributions are merged before reaching `release`. +If you plan to propose a patch, please commit into the `dev` branch, or its own feature branch. +Direct commit to `release` are not permitted. +For more information, please read [CONTRIBUTING](CONTRIBUTING.md). diff --git a/dependencies/zstd-1.5.0/TESTING.md b/dependencies/zstd-1.5.0/TESTING.md new file mode 100644 index 0000000..32b133b --- /dev/null +++ b/dependencies/zstd-1.5.0/TESTING.md @@ -0,0 +1,43 @@ +Testing +======= + +Zstandard CI testing is split up into three sections: +short, medium, and long tests. + +Short Tests +----------- +Short tests run on CircleCI for new commits on every branch and pull request. +They consist of the following tests: +- Compilation on all supported targets (x86, x86_64, ARM, AArch64, PowerPC, and PowerPC64) +- Compilation on various versions of gcc, clang, and g++ +- `tests/playTests.sh` on x86_64, without the tests on long data (CLI tests) +- Small tests (`tests/legacy.c`, `tests/longmatch.c`) on x64_64 + +Medium Tests +------------ +Medium tests run on every commit and pull request to `dev` branch, on TravisCI. +They consist of the following tests: +- The following tests run with UBsan and Asan on x86_64 and x86, as well as with + Msan on x86_64 + - `tests/playTests.sh --test-large-data` + - Fuzzer tests: `tests/fuzzer.c`, `tests/zstreamtest.c`, and `tests/decodecorpus.c` +- `tests/zstreamtest.c` under Tsan (streaming mode, including multithreaded mode) +- Valgrind Test (`make -C tests valgrindTest`) (testing CLI and fuzzer under valgrind) +- Fuzzer tests (see above) on ARM, AArch64, PowerPC, and PowerPC64 + +Long Tests +---------- +Long tests run on all commits to `release` branch, +and once a day on the current version of `dev` branch, +on TravisCI. +They consist of the following tests: +- Entire test suite (including fuzzers and some other specialized tests) on: + - x86_64 and x86 with UBsan and Asan + - x86_64 with Msan + - ARM, AArch64, PowerPC, and PowerPC64 +- Streaming mode fuzzer with Tsan (for the `zstdmt` testing) +- ZlibWrapper tests, including under valgrind +- Versions test (ensuring `zstd` can decode files from all previous versions) +- `pzstd` with asan and tsan, as well as in 32-bits mode +- Testing `zstd` with legacy mode off +- Entire test suite and make install on macOS diff --git a/dependencies/zstd-1.5.0/appveyor.yml b/dependencies/zstd-1.5.0/appveyor.yml new file mode 100644 index 0000000..c6ab786 --- /dev/null +++ b/dependencies/zstd-1.5.0/appveyor.yml @@ -0,0 +1,327 @@ +# Following tests are run _only_ on `release` branch +# and on selected feature branch named `appveyorTest` or `visual*` + +- + version: 1.0.{build} + branches: + only: + - release + - master + - /appveyor*/ + - /visual*/ + environment: + matrix: + - COMPILER: "gcc" + HOST: "mingw" + PLATFORM: "x64" + SCRIPT: "make allzstd MOREFLAGS=-static" + ARTIFACT: "true" + BUILD: "true" + - COMPILER: "gcc" + HOST: "mingw" + PLATFORM: "x86" + SCRIPT: "make allzstd MOREFLAGS=-static" + ARTIFACT: "true" + BUILD: "true" + - COMPILER: "clang" + HOST: "mingw" + PLATFORM: "x64" + SCRIPT: "MOREFLAGS='--target=x86_64-w64-mingw32 -Werror -Wconversion -Wno-sign-conversion' make -j allzstd V=1" + BUILD: "true" + + - COMPILER: "gcc" + HOST: "mingw" + PLATFORM: "x64" + SCRIPT: "" + TEST: "cmake" + + - COMPILER: "visual" + HOST: "visual" + PLATFORM: "x64" + CONFIGURATION: "Debug" + - COMPILER: "visual" + HOST: "visual" + PLATFORM: "Win32" + CONFIGURATION: "Debug" + - COMPILER: "visual" + HOST: "visual" + PLATFORM: "x64" + CONFIGURATION: "Release" + - COMPILER: "visual" + HOST: "visual" + PLATFORM: "Win32" + CONFIGURATION: "Release" + + - COMPILER: "clang-cl" + HOST: "cmake-visual" + PLATFORM: "x64" + CONFIGURATION: "Release" + CMAKE_GENERATOR: "Visual Studio 15 2017" + CMAKE_GENERATOR_PLATFORM: "x64" + CMAKE_GENERATOR_TOOLSET: "LLVM" + APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2017" + + install: + - ECHO Installing %COMPILER% %PLATFORM% %CONFIGURATION% + - SET PATH_ORIGINAL=%PATH% + - if [%HOST%]==[mingw] ( + SET "PATH_MINGW32=C:\mingw-w64\i686-6.3.0-posix-dwarf-rt_v5-rev1\mingw32\bin" && + SET "PATH_MINGW64=C:\mingw-w64\x86_64-6.3.0-posix-seh-rt_v5-rev1\mingw64\bin" && + COPY C:\msys64\usr\bin\make.exe C:\mingw-w64\i686-6.3.0-posix-dwarf-rt_v5-rev1\mingw32\bin\make.exe && + COPY C:\msys64\usr\bin\make.exe C:\mingw-w64\x86_64-6.3.0-posix-seh-rt_v5-rev1\mingw64\bin\make.exe + ) + - IF [%HOST%]==[visual] IF [%PLATFORM%]==[x64] ( + SET ADDITIONALPARAM=/p:LibraryPath="C:\Program Files\Microsoft SDKs\Windows\v7.1\lib\x64;c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\lib\amd64;C:\Program Files (x86)\Microsoft Visual Studio 10.0\;C:\Program Files (x86)\Microsoft Visual Studio 10.0\lib\amd64;" + ) + + build_script: + - if [%HOST%]==[mingw] ( + ( if [%PLATFORM%]==[x64] ( + SET "PATH=%PATH_MINGW64%;%PATH_ORIGINAL%" + ) else if [%PLATFORM%]==[x86] ( + SET "PATH=%PATH_MINGW32%;%PATH_ORIGINAL%" + ) ) + ) + - if [%HOST%]==[mingw] if [%BUILD%]==[true] ( + make -v && + sh -c "%COMPILER% -v" && + ECHO Building zlib to static link && + SET "CC=%COMPILER%" && + sh -c "cd .. && git clone --depth 1 --branch v1.2.11 https://github.com/madler/zlib" && + sh -c "cd ../zlib && make -f win32/Makefile.gcc libz.a" + ECHO Building zstd && + SET "CPPFLAGS=-I../../zlib" && + SET "LDFLAGS=../../zlib/libz.a" && + sh -c "%SCRIPT%" && + ( if [%COMPILER%]==[gcc] if [%ARTIFACT%]==[true] + ECHO Creating artifacts && + ECHO %cd% && + lib\dll\example\build_package.bat && + make -C programs DEBUGFLAGS= clean zstd && + cd programs\ && 7z a -tzip -mx9 zstd-win-binary-%PLATFORM%.zip zstd.exe && + appveyor PushArtifact zstd-win-binary-%PLATFORM%.zip && + cp zstd.exe ..\bin\zstd.exe && + git clone --depth 1 --branch release https://github.com/facebook/zstd && + cd zstd && + git archive --format=tar release -o zstd-src.tar && + ..\zstd -19 zstd-src.tar && + appveyor PushArtifact zstd-src.tar.zst && + certUtil -hashfile zstd-src.tar.zst SHA256 > zstd-src.tar.zst.sha256.sig && + appveyor PushArtifact zstd-src.tar.zst.sha256.sig && + cd ..\..\bin\ && + 7z a -tzip -mx9 zstd-win-release-%PLATFORM%.zip * && + appveyor PushArtifact zstd-win-release-%PLATFORM%.zip + ) + ) + - if [%HOST%]==[visual] ( + ECHO *** && + ECHO *** Building Visual Studio 2008 %PLATFORM%\%CONFIGURATION% in %APPVEYOR_BUILD_FOLDER% && + ECHO *** && + msbuild "build\VS2008\zstd.sln" /m /verbosity:minimal /property:PlatformToolset=v90 /t:Clean,Build /p:Platform=%PLATFORM% /p:Configuration=%CONFIGURATION% /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll" && + DIR build\VS2008\bin\%PLATFORM%\%CONFIGURATION%\*.exe && + MD5sum build/VS2008/bin/%PLATFORM%/%CONFIGURATION%/*.exe && + COPY build\VS2008\bin\%PLATFORM%\%CONFIGURATION%\fuzzer.exe tests\fuzzer_VS2008_%PLATFORM%_%CONFIGURATION%.exe && + ECHO *** && + ECHO *** Building Visual Studio 2010 %PLATFORM%\%CONFIGURATION% && + ECHO *** && + msbuild "build\VS2010\zstd.sln" %ADDITIONALPARAM% /m /verbosity:minimal /property:PlatformToolset=v100 /p:ForceImportBeforeCppTargets=%APPVEYOR_BUILD_FOLDER%\build\VS2010\CompileAsCpp.props /t:Clean,Build /p:Platform=%PLATFORM% /p:Configuration=%CONFIGURATION% /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll" && + DIR build\VS2010\bin\%PLATFORM%_%CONFIGURATION%\*.exe && + MD5sum build/VS2010/bin/%PLATFORM%_%CONFIGURATION%/*.exe && + msbuild "build\VS2010\zstd.sln" %ADDITIONALPARAM% /m /verbosity:minimal /property:PlatformToolset=v100 /t:Clean,Build /p:Platform=%PLATFORM% /p:Configuration=%CONFIGURATION% /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll" && + DIR build\VS2010\bin\%PLATFORM%_%CONFIGURATION%\*.exe && + MD5sum build/VS2010/bin/%PLATFORM%_%CONFIGURATION%/*.exe && + COPY build\VS2010\bin\%PLATFORM%_%CONFIGURATION%\fuzzer.exe tests\fuzzer_VS2010_%PLATFORM%_%CONFIGURATION%.exe && + ECHO *** && + ECHO *** Building Visual Studio 2012 %PLATFORM%\%CONFIGURATION% && + ECHO *** && + msbuild "build\VS2010\zstd.sln" /m /verbosity:minimal /property:PlatformToolset=v110 /p:ForceImportBeforeCppTargets=%APPVEYOR_BUILD_FOLDER%\build\VS2010\CompileAsCpp.props /t:Clean,Build /p:Platform=%PLATFORM% /p:Configuration=%CONFIGURATION% /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll" && + DIR build\VS2010\bin\%PLATFORM%_%CONFIGURATION%\*.exe && + MD5sum build/VS2010/bin/%PLATFORM%_%CONFIGURATION%/*.exe && + msbuild "build\VS2010\zstd.sln" /m /verbosity:minimal /property:PlatformToolset=v110 /t:Clean,Build /p:Platform=%PLATFORM% /p:Configuration=%CONFIGURATION% /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll" && + DIR build\VS2010\bin\%PLATFORM%_%CONFIGURATION%\*.exe && + MD5sum build/VS2010/bin/%PLATFORM%_%CONFIGURATION%/*.exe && + COPY build\VS2010\bin\%PLATFORM%_%CONFIGURATION%\fuzzer.exe tests\fuzzer_VS2012_%PLATFORM%_%CONFIGURATION%.exe && + ECHO *** && + ECHO *** Building Visual Studio 2013 %PLATFORM%\%CONFIGURATION% && + ECHO *** && + msbuild "build\VS2010\zstd.sln" /m /verbosity:minimal /property:PlatformToolset=v120 /p:ForceImportBeforeCppTargets=%APPVEYOR_BUILD_FOLDER%\build\VS2010\CompileAsCpp.props /t:Clean,Build /p:Platform=%PLATFORM% /p:Configuration=%CONFIGURATION% /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll" && + DIR build\VS2010\bin\%PLATFORM%_%CONFIGURATION%\*.exe && + MD5sum build/VS2010/bin/%PLATFORM%_%CONFIGURATION%/*.exe && + msbuild "build\VS2010\zstd.sln" /m /verbosity:minimal /property:PlatformToolset=v120 /t:Clean,Build /p:Platform=%PLATFORM% /p:Configuration=%CONFIGURATION% /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll" && + DIR build\VS2010\bin\%PLATFORM%_%CONFIGURATION%\*.exe && + MD5sum build/VS2010/bin/%PLATFORM%_%CONFIGURATION%/*.exe && + COPY build\VS2010\bin\%PLATFORM%_%CONFIGURATION%\fuzzer.exe tests\fuzzer_VS2013_%PLATFORM%_%CONFIGURATION%.exe && + ECHO *** && + ECHO *** Building Visual Studio 2015 %PLATFORM%\%CONFIGURATION% && + ECHO *** && + msbuild "build\VS2010\zstd.sln" /m /verbosity:minimal /property:PlatformToolset=v140 /p:ForceImportBeforeCppTargets=%APPVEYOR_BUILD_FOLDER%\build\VS2010\CompileAsCpp.props /t:Clean,Build /p:Platform=%PLATFORM% /p:Configuration=%CONFIGURATION% /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll" && + DIR build\VS2010\bin\%PLATFORM%_%CONFIGURATION%\*.exe && + MD5sum build/VS2010/bin/%PLATFORM%_%CONFIGURATION%/*.exe && + msbuild "build\VS2010\zstd.sln" /m /verbosity:minimal /property:PlatformToolset=v140 /t:Clean,Build /p:Platform=%PLATFORM% /p:Configuration=%CONFIGURATION% /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll" && + DIR build\VS2010\bin\%PLATFORM%_%CONFIGURATION%\*.exe && + MD5sum build/VS2010/bin/%PLATFORM%_%CONFIGURATION%/*.exe && + COPY build\VS2010\bin\%PLATFORM%_%CONFIGURATION%\fuzzer.exe tests\fuzzer_VS2015_%PLATFORM%_%CONFIGURATION%.exe && + COPY build\VS2010\bin\%PLATFORM%_%CONFIGURATION%\*.exe tests\ + ) + - if [%HOST%]==[cmake-visual] ( + ECHO *** && + ECHO *** Building %CMAKE_GENERATOR% ^(%CMAKE_GENERATOR_TOOLSET%^) %PLATFORM%\%CONFIGURATION% && + PUSHD build\cmake && + cmake -DBUILD_TESTING=ON . && + cmake --build . --config %CONFIGURATION% -j4 && + POPD && + ECHO *** + ) + + test_script: + - ECHO Testing %COMPILER% %PLATFORM% %CONFIGURATION% + - SET "CC=gcc" + - SET "CXX=g++" + - if [%TEST%]==[cmake] ( + mkdir build\cmake\build && + cd build\cmake\build && + SET FUZZERTEST=-T2mn && + SET ZSTREAM_TESTTIME=-T2mn && + cmake -G "Visual Studio 14 2015 Win64" .. && + cd ..\..\.. && + make clean + ) + - SET "FUZZERTEST=-T30s" + - if [%HOST%]==[visual] if [%CONFIGURATION%]==[Release] ( + CD tests && + SET ZSTD_BIN=./zstd.exe&& + SET DATAGEN_BIN=./datagen.exe&& + sh -e playTests.sh --test-large-data && + fullbench.exe -i1 && + fullbench.exe -i1 -P0 && + fuzzer_VS2012_%PLATFORM%_Release.exe %FUZZERTEST% && + fuzzer_VS2013_%PLATFORM%_Release.exe %FUZZERTEST% && + fuzzer_VS2015_%PLATFORM%_Release.exe %FUZZERTEST% + ) + + +# The following tests are for regular pushes +# into `dev` or some feature branch +# There run less tests, for shorter feedback loop + +- + version: 1.0.{build} + environment: + matrix: + - COMPILER: "gcc" + HOST: "cygwin" + PLATFORM: "x64" + - COMPILER: "gcc" + HOST: "mingw" + PLATFORM: "x64" + SCRIPT: "CFLAGS=-Werror make -j allzstd DEBUGLEVEL=2" + - COMPILER: "gcc" + HOST: "mingw" + PLATFORM: "x86" + SCRIPT: "CFLAGS=-Werror make -j allzstd" + - COMPILER: "clang" + HOST: "mingw" + PLATFORM: "x64" + SCRIPT: "CFLAGS='--target=x86_64-w64-mingw32 -Werror -Wconversion -Wno-sign-conversion' make -j allzstd V=1" + + - COMPILER: "visual" + HOST: "visual" + PLATFORM: "x64" + CONFIGURATION: "Debug" + - COMPILER: "visual" + HOST: "visual" + PLATFORM: "Win32" + CONFIGURATION: "Debug" + - COMPILER: "visual" + HOST: "visual" + PLATFORM: "x64" + CONFIGURATION: "Release" + - COMPILER: "visual" + HOST: "visual" + PLATFORM: "Win32" + CONFIGURATION: "Release" + + - COMPILER: "clang-cl" + HOST: "cmake-visual" + PLATFORM: "x64" + CONFIGURATION: "Release" + CMAKE_GENERATOR: "Visual Studio 15 2017" + CMAKE_GENERATOR_PLATFORM: "x64" + CMAKE_GENERATOR_TOOLSET: "LLVM" + APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2017" + + install: + - ECHO Installing %COMPILER% %PLATFORM% %CONFIGURATION% + - SET PATH_ORIGINAL=%PATH% + - if [%HOST%]==[cygwin] ( + ECHO Installing Cygwin Packages && + C:\cygwin64\setup-x86_64.exe -qnNdO -R "C:\cygwin64" -g -P ^ + gcc,^ + cmake,^ + make + ) + - if [%HOST%]==[mingw] ( + SET "PATH_MINGW32=C:\mingw-w64\i686-6.3.0-posix-dwarf-rt_v5-rev1\mingw32\bin" && + SET "PATH_MINGW64=C:\mingw-w64\x86_64-6.3.0-posix-seh-rt_v5-rev1\mingw64\bin" && + COPY C:\msys64\usr\bin\make.exe C:\mingw-w64\i686-6.3.0-posix-dwarf-rt_v5-rev1\mingw32\bin\make.exe && + COPY C:\msys64\usr\bin\make.exe C:\mingw-w64\x86_64-6.3.0-posix-seh-rt_v5-rev1\mingw64\bin\make.exe + ) + - IF [%HOST%]==[visual] IF [%PLATFORM%]==[x64] ( + SET ADDITIONALPARAM=/p:LibraryPath="C:\Program Files\Microsoft SDKs\Windows\v7.1\lib\x64;c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\lib\amd64;C:\Program Files (x86)\Microsoft Visual Studio 10.0\;C:\Program Files (x86)\Microsoft Visual Studio 10.0\lib\amd64;" + ) + + build_script: + - ECHO Building %COMPILER% %PLATFORM% %CONFIGURATION% + - if [%HOST%]==[cygwin] ( + set CHERE_INVOKING=yes && + set CC=%COMPILER% && + C:\cygwin64\bin\bash --login -c " + set -e; + cd build/cmake; + CFLAGS='-Werror' cmake -G 'Unix Makefiles' -DCMAKE_BUILD_TYPE=Debug -DZSTD_BUILD_TESTS:BOOL=ON -DZSTD_FUZZER_FLAGS=-T20s -DZSTD_ZSTREAM_FLAGS=-T20s -DZSTD_FULLBENCH_FLAGS=-i0 .; + make VERBOSE=1 -j; + ctest -V -L Medium; + " + ) + - if [%HOST%]==[mingw] ( + ( if [%PLATFORM%]==[x64] ( + SET "PATH=%PATH_MINGW64%;%PATH_ORIGINAL%" + ) else if [%PLATFORM%]==[x86] ( + SET "PATH=%PATH_MINGW32%;%PATH_ORIGINAL%" + ) ) && + make -v && + sh -c "%COMPILER% -v" && + set "CC=%COMPILER%" && + sh -c "%SCRIPT%" + ) + - if [%HOST%]==[visual] ( + ECHO *** && + ECHO *** Building Visual Studio 2015 %PLATFORM%\%CONFIGURATION% && + ECHO *** && + msbuild "build\VS2010\zstd.sln" /m /verbosity:minimal /property:PlatformToolset=v140 /p:ForceImportBeforeCppTargets=%APPVEYOR_BUILD_FOLDER%\build\VS2010\CompileAsCpp.props /t:Clean,Build /p:Platform=%PLATFORM% /p:Configuration=%CONFIGURATION% /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll" && + DIR build\VS2010\bin\%PLATFORM%_%CONFIGURATION%\*.exe && + MD5sum build/VS2010/bin/%PLATFORM%_%CONFIGURATION%/*.exe && + msbuild "build\VS2010\zstd.sln" /m /verbosity:minimal /property:PlatformToolset=v140 /t:Clean,Build /p:Platform=%PLATFORM% /p:Configuration=%CONFIGURATION% /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll" && + DIR build\VS2010\bin\%PLATFORM%_%CONFIGURATION%\*.exe && + MD5sum build/VS2010/bin/%PLATFORM%_%CONFIGURATION%/*.exe && + COPY build\VS2010\bin\%PLATFORM%_%CONFIGURATION%\fuzzer.exe tests\fuzzer_VS2015_%PLATFORM%_%CONFIGURATION%.exe && + COPY build\VS2010\bin\%PLATFORM%_%CONFIGURATION%\*.exe tests\ + ) + - if [%HOST%]==[cmake-visual] ( + ECHO *** && + ECHO *** Building %CMAKE_GENERATOR% ^(%CMAKE_GENERATOR_TOOLSET%^) %PLATFORM%\%CONFIGURATION% && + PUSHD build\cmake && + cmake -DBUILD_TESTING=ON . && + cmake --build . --config %CONFIGURATION% -j4 && + POPD && + ECHO *** + ) + + + test_script: + - ECHO Testing %COMPILER% %PLATFORM% %CONFIGURATION% + - if [%HOST%]==[mingw] ( + set "CC=%COMPILER%" && + make clean && + make check + ) diff --git a/dependencies/zstd-1.5.0/build/.gitignore b/dependencies/zstd-1.5.0/build/.gitignore new file mode 100644 index 0000000..5a18b30 --- /dev/null +++ b/dependencies/zstd-1.5.0/build/.gitignore @@ -0,0 +1,33 @@ +# Visual C++ +.vs/ +*Copy +*.db +*.opensdf +*.sdf +*.suo +*.user +*.opendb + +VS2008/bin/ +VS2010/bin/ +VS2010/zwrapbench/ +VS2012/ +VS2013/ +VS2015/ +Studio* + +# CMake +cmake/build/ +CMakeCache.txt +CMakeFiles +CMakeScripts +Testing +Makefile +cmake_install.cmake +install_manifest.txt +compile_commands.json +CTestTestfile.cmake +build +lib +!cmake/lib +!meson/lib diff --git a/dependencies/zstd-1.5.0/build/LICENSE b/dependencies/zstd-1.5.0/build/LICENSE new file mode 100644 index 0000000..e69de29 diff --git a/dependencies/zstd-1.5.0/build/README.md b/dependencies/zstd-1.5.0/build/README.md new file mode 100644 index 0000000..23f92ce --- /dev/null +++ b/dependencies/zstd-1.5.0/build/README.md @@ -0,0 +1,56 @@ +Projects for various integrated development environments (IDE) +============================================================== + +#### Included projects + +The following projects are included with the zstd distribution: +- `cmake` - CMake project contributed by Artyom Dymchenko +- `VS2005` - Visual Studio 2005 Project (this project has been moved to the contrib directory and will no longer be supported) +- `VS2008` - Visual Studio 2008 project +- `VS2010` - Visual Studio 2010 project (which also works well with Visual Studio 2012, 2013, 2015) +- `VS_scripts` - command line scripts prepared for Visual Studio compilation without IDE + + +#### How to compile zstd with Visual Studio + +1. Install Visual Studio e.g. VS 2015 Community Edition (it's free). +2. Download the latest version of zstd from https://github.com/facebook/zstd/releases +3. Decompress ZIP archive. +4. Go to decompressed directory then to `projects` then `VS2010` and open `zstd.sln` +5. Visual Studio will ask about converting VS2010 project to VS2015 and you should agree. +6. Change `Debug` to `Release` and if you have 64-bit Windows change also `Win32` to `x64`. +7. Press F7 on keyboard or select `BUILD` from the menu bar and choose `Build Solution`. +8. If compilation will be fine a compiled executable will be in `projects\VS2010\bin\x64\Release\zstd.exe` + + +#### Projects available within zstd.sln + +The Visual Studio solution file `visual\VS2010\zstd.sln` contains many projects that will be compiled to the +`visual\VS2010\bin\$(Platform)_$(Configuration)` directory. For example `zstd` set to `x64` and +`Release` will be compiled to `visual\VS2010\bin\x64_Release\zstd.exe`. The solution file contains the +following projects: + +- `zstd` : Command Line Utility, supporting gzip-like arguments +- `datagen` : Synthetic and parametrable data generator, for tests +- `fullbench` : Precisely measure speed for each zstd inner functions +- `fuzzer` : Test tool, to check zstd integrity on target platform +- `libzstd` : A static ZSTD library compiled to `libzstd_static.lib` +- `libzstd-dll` : A dynamic ZSTD library (DLL) compiled to `libzstd.dll` with the import library `libzstd.lib` +- `fullbench-dll` : The fullbench program compiled with the import library; the executable requires ZSTD DLL + + +#### Using ZSTD DLL with Microsoft Visual C++ project + +The header file `lib\zstd.h` and the import library +`visual\VS2010\bin\$(Platform)_$(Configuration)\libzstd.lib` are required to compile +a project using Visual C++. + +1. The path to header files should be added to `Additional Include Directories` that can + be found in Project Properties of Visual Studio IDE in the `C/C++` Property Pages on the `General` page. +2. The import library has to be added to `Additional Dependencies` that can + be found in Project Properties in the `Linker` Property Pages on the `Input` page. + If one will provide only the name `libzstd.lib` without a full path to the library + then the directory has to be added to `Linker\General\Additional Library Directories`. + +The compiled executable will require ZSTD DLL which is available at +`visual\VS2010\bin\$(Platform)_$(Configuration)\libzstd.dll`. diff --git a/dependencies/zstd-1.5.0/build/VS2008/fullbench/fullbench.vcproj b/dependencies/zstd-1.5.0/build/VS2008/fullbench/fullbench.vcproj new file mode 100644 index 0000000..5e349dc --- /dev/null +++ b/dependencies/zstd-1.5.0/build/VS2008/fullbench/fullbench.vcproj @@ -0,0 +1,549 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/dependencies/zstd-1.5.0/build/VS2008/fuzzer/fuzzer.vcproj b/dependencies/zstd-1.5.0/build/VS2008/fuzzer/fuzzer.vcproj new file mode 100644 index 0000000..32f2846 --- /dev/null +++ b/dependencies/zstd-1.5.0/build/VS2008/fuzzer/fuzzer.vcproj @@ -0,0 +1,585 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/dependencies/zstd-1.5.0/build/VS2008/zstd.sln b/dependencies/zstd-1.5.0/build/VS2008/zstd.sln new file mode 100644 index 0000000..97b88c8 --- /dev/null +++ b/dependencies/zstd-1.5.0/build/VS2008/zstd.sln @@ -0,0 +1,56 @@ + +Microsoft Visual Studio Solution File, Format Version 10.00 +# Visual Studio 2008 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zstd", "zstd\zstd.vcproj", "{1A2AB08E-5CE7-4C5B-BE55-458157C14051}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "fuzzer", "fuzzer\fuzzer.vcproj", "{A62E89D2-9DDE-42BA-8F9B-9DA74889A6B0}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "fullbench", "fullbench\fullbench.vcproj", "{CC8F1D1B-BA2F-43E3-A71F-FA415D81AAD3}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zstdlib", "zstdlib\zstdlib.vcproj", "{99DE2A79-7298-4004-A0ED-030D7A3796CA}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Debug|x64 = Debug|x64 + Release|Win32 = Release|Win32 + Release|x64 = Release|x64 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {1A2AB08E-5CE7-4C5B-BE55-458157C14051}.Debug|Win32.ActiveCfg = Debug|Win32 + {1A2AB08E-5CE7-4C5B-BE55-458157C14051}.Debug|Win32.Build.0 = Debug|Win32 + {1A2AB08E-5CE7-4C5B-BE55-458157C14051}.Debug|x64.ActiveCfg = Debug|x64 + {1A2AB08E-5CE7-4C5B-BE55-458157C14051}.Debug|x64.Build.0 = Debug|x64 + {1A2AB08E-5CE7-4C5B-BE55-458157C14051}.Release|Win32.ActiveCfg = Release|Win32 + {1A2AB08E-5CE7-4C5B-BE55-458157C14051}.Release|Win32.Build.0 = Release|Win32 + {1A2AB08E-5CE7-4C5B-BE55-458157C14051}.Release|x64.ActiveCfg = Release|x64 + {1A2AB08E-5CE7-4C5B-BE55-458157C14051}.Release|x64.Build.0 = Release|x64 + {A62E89D2-9DDE-42BA-8F9B-9DA74889A6B0}.Debug|Win32.ActiveCfg = Debug|Win32 + {A62E89D2-9DDE-42BA-8F9B-9DA74889A6B0}.Debug|Win32.Build.0 = Debug|Win32 + {A62E89D2-9DDE-42BA-8F9B-9DA74889A6B0}.Debug|x64.ActiveCfg = Debug|x64 + {A62E89D2-9DDE-42BA-8F9B-9DA74889A6B0}.Debug|x64.Build.0 = Debug|x64 + {A62E89D2-9DDE-42BA-8F9B-9DA74889A6B0}.Release|Win32.ActiveCfg = Release|Win32 + {A62E89D2-9DDE-42BA-8F9B-9DA74889A6B0}.Release|Win32.Build.0 = Release|Win32 + {A62E89D2-9DDE-42BA-8F9B-9DA74889A6B0}.Release|x64.ActiveCfg = Release|x64 + {A62E89D2-9DDE-42BA-8F9B-9DA74889A6B0}.Release|x64.Build.0 = Release|x64 + {CC8F1D1B-BA2F-43E3-A71F-FA415D81AAD3}.Debug|Win32.ActiveCfg = Debug|Win32 + {CC8F1D1B-BA2F-43E3-A71F-FA415D81AAD3}.Debug|Win32.Build.0 = Debug|Win32 + {CC8F1D1B-BA2F-43E3-A71F-FA415D81AAD3}.Debug|x64.ActiveCfg = Debug|x64 + {CC8F1D1B-BA2F-43E3-A71F-FA415D81AAD3}.Debug|x64.Build.0 = Debug|x64 + {CC8F1D1B-BA2F-43E3-A71F-FA415D81AAD3}.Release|Win32.ActiveCfg = Release|Win32 + {CC8F1D1B-BA2F-43E3-A71F-FA415D81AAD3}.Release|Win32.Build.0 = Release|Win32 + {CC8F1D1B-BA2F-43E3-A71F-FA415D81AAD3}.Release|x64.ActiveCfg = Release|x64 + {CC8F1D1B-BA2F-43E3-A71F-FA415D81AAD3}.Release|x64.Build.0 = Release|x64 + {99DE2A79-7298-4004-A0ED-030D7A3796CA}.Debug|Win32.ActiveCfg = Debug|Win32 + {99DE2A79-7298-4004-A0ED-030D7A3796CA}.Debug|Win32.Build.0 = Debug|Win32 + {99DE2A79-7298-4004-A0ED-030D7A3796CA}.Debug|x64.ActiveCfg = Debug|x64 + {99DE2A79-7298-4004-A0ED-030D7A3796CA}.Debug|x64.Build.0 = Debug|x64 + {99DE2A79-7298-4004-A0ED-030D7A3796CA}.Release|Win32.ActiveCfg = Release|Win32 + {99DE2A79-7298-4004-A0ED-030D7A3796CA}.Release|Win32.Build.0 = Release|Win32 + {99DE2A79-7298-4004-A0ED-030D7A3796CA}.Release|x64.ActiveCfg = Release|x64 + {99DE2A79-7298-4004-A0ED-030D7A3796CA}.Release|x64.Build.0 = Release|x64 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/dependencies/zstd-1.5.0/build/VS2008/zstd/zstd.vcproj b/dependencies/zstd-1.5.0/build/VS2008/zstd/zstd.vcproj new file mode 100644 index 0000000..c7eec57 --- /dev/null +++ b/dependencies/zstd-1.5.0/build/VS2008/zstd/zstd.vcproj @@ -0,0 +1,669 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/dependencies/zstd-1.5.0/build/VS2008/zstdlib/zstdlib.vcproj b/dependencies/zstd-1.5.0/build/VS2008/zstdlib/zstdlib.vcproj new file mode 100644 index 0000000..88c1aee --- /dev/null +++ b/dependencies/zstd-1.5.0/build/VS2008/zstdlib/zstdlib.vcproj @@ -0,0 +1,635 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/dependencies/zstd-1.5.0/build/VS2010/CompileAsCpp.props b/dependencies/zstd-1.5.0/build/VS2010/CompileAsCpp.props new file mode 100644 index 0000000..372a94b --- /dev/null +++ b/dependencies/zstd-1.5.0/build/VS2010/CompileAsCpp.props @@ -0,0 +1,8 @@ + + + + + CompileAsCpp + + + diff --git a/dependencies/zstd-1.5.0/build/VS2010/datagen/datagen.vcxproj b/dependencies/zstd-1.5.0/build/VS2010/datagen/datagen.vcxproj new file mode 100644 index 0000000..a66358a --- /dev/null +++ b/dependencies/zstd-1.5.0/build/VS2010/datagen/datagen.vcxproj @@ -0,0 +1,168 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {037E781E-81A6-494B-B1B3-438AB1200523} + Win32Proj + datagen + $(SolutionDir)bin\$(Platform)_$(Configuration)\ + $(SolutionDir)bin\obj\$(RootNamespace)_$(Platform)_$(Configuration)\ + + + + Application + true + MultiByte + + + Application + true + MultiByte + + + Application + false + true + MultiByte + + + Application + false + true + MultiByte + + + + + + + + + + + + + + + + + + + true + false + $(IncludePath);$(SolutionDir)..\..\programs;$(SolutionDir)..\..\lib\legacy;$(SolutionDir)..\..\lib\common;$(UniversalCRT_IncludePath); + + + true + false + $(IncludePath);$(SolutionDir)..\..\programs;$(SolutionDir)..\..\lib\legacy;$(SolutionDir)..\..\lib\common;$(UniversalCRT_IncludePath); + + + false + false + $(IncludePath);$(SolutionDir)..\..\programs;$(SolutionDir)..\..\lib\legacy;$(SolutionDir)..\..\lib\common;$(UniversalCRT_IncludePath); + + + false + false + $(IncludePath);$(SolutionDir)..\..\programs;$(SolutionDir)..\..\lib\legacy;$(SolutionDir)..\..\lib\common;$(UniversalCRT_IncludePath); + + + + + + Level4 + Disabled + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + false + + + Console + true + + + + + + + Level4 + Disabled + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + false + + + Console + true + + + + + Level4 + + + MaxSpeed + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + false + false + MultiThreaded + + + Console + true + true + true + + + + + Level4 + + + MaxSpeed + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + false + false + MultiThreaded + + + Console + true + true + true + + + + + + + + + + + + + + diff --git a/dependencies/zstd-1.5.0/build/VS2010/fullbench-dll/fullbench-dll.vcxproj b/dependencies/zstd-1.5.0/build/VS2010/fullbench-dll/fullbench-dll.vcxproj new file mode 100644 index 0000000..befdc04 --- /dev/null +++ b/dependencies/zstd-1.5.0/build/VS2010/fullbench-dll/fullbench-dll.vcxproj @@ -0,0 +1,189 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {00000000-1CC8-4FD7-9281-6B8DBB9D3DF8} + Win32Proj + fullbench-dll + $(SolutionDir)bin\$(Platform)_$(Configuration)\ + $(SolutionDir)bin\obj\$(RootNamespace)_$(Platform)_$(Configuration)\ + + + + Application + true + MultiByte + + + Application + true + MultiByte + + + Application + false + true + MultiByte + + + Application + false + true + MultiByte + + + + + + + + + + + + + + + + + + + true + $(IncludePath);$(SolutionDir)..\..\lib;$(SolutionDir)..\..\programs;$(SolutionDir)..\..\lib\legacy;$(SolutionDir)..\..\lib\common;$(UniversalCRT_IncludePath); + false + + + true + $(IncludePath);$(SolutionDir)..\..\lib;$(SolutionDir)..\..\programs;$(SolutionDir)..\..\lib\legacy;$(SolutionDir)..\..\lib\common;$(UniversalCRT_IncludePath); + false + + + false + $(IncludePath);$(SolutionDir)..\..\lib;$(SolutionDir)..\..\programs;$(SolutionDir)..\..\lib\legacy;$(SolutionDir)..\..\lib\common;$(UniversalCRT_IncludePath); + false + + + false + $(IncludePath);$(SolutionDir)..\..\lib;$(SolutionDir)..\..\programs;$(SolutionDir)..\..\lib\legacy;$(SolutionDir)..\..\lib\common;$(UniversalCRT_IncludePath); + false + + + + + + Level4 + Disabled + WIN32;_DEBUG;_CONSOLE;ZSTD_DLL_IMPORT=1;%(PreprocessorDefinitions) + true + false + + + Console + true + $(SolutionDir)bin\$(Platform)_$(Configuration);%(AdditionalLibraryDirectories) + libzstd.lib;%(AdditionalDependencies) + false + + + + + + + Level4 + Disabled + WIN32;_DEBUG;_CONSOLE;ZSTD_DLL_IMPORT=1;%(PreprocessorDefinitions) + true + false + + + Console + true + $(SolutionDir)bin\$(Platform)_$(Configuration);%(AdditionalLibraryDirectories) + libzstd.lib;%(AdditionalDependencies) + + + + + Level4 + + + MaxSpeed + true + true + WIN32;_DEBUG;_CONSOLE;ZSTD_DLL_IMPORT=1;%(PreprocessorDefinitions) + false + false + MultiThreaded + + + Console + true + true + true + $(SolutionDir)bin\$(Platform)_$(Configuration);%(AdditionalLibraryDirectories) + libzstd.lib;%(AdditionalDependencies) + false + + + + + Level4 + + + MaxSpeed + true + true + WIN32;_DEBUG;_CONSOLE;ZSTD_DLL_IMPORT=1;%(PreprocessorDefinitions) + false + false + MultiThreaded + + + Console + true + true + true + $(SolutionDir)bin\$(Platform)_$(Configuration);%(AdditionalLibraryDirectories) + libzstd.lib;%(AdditionalDependencies) + + + + + + + + + + + + + + + + + + + {00000000-94d5-4bf9-8a50-7bd9929a0850} + + + + + + diff --git a/dependencies/zstd-1.5.0/build/VS2010/fullbench/fullbench.vcxproj b/dependencies/zstd-1.5.0/build/VS2010/fullbench/fullbench.vcxproj new file mode 100644 index 0000000..2e0a042 --- /dev/null +++ b/dependencies/zstd-1.5.0/build/VS2010/fullbench/fullbench.vcxproj @@ -0,0 +1,218 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {61ABD629-1CC8-4FD7-9281-6B8DBB9D3DF8} + Win32Proj + fullbench + $(SolutionDir)bin\$(Platform)_$(Configuration)\ + $(SolutionDir)bin\obj\$(RootNamespace)_$(Platform)_$(Configuration)\ + + + + Application + true + MultiByte + + + Application + true + MultiByte + + + Application + false + true + MultiByte + + + Application + false + true + MultiByte + + + + + + + + + + + + + + + + + + + true + $(IncludePath);$(SolutionDir)..\..\lib;$(SolutionDir)..\..\programs;$(SolutionDir)..\..\lib\legacy;$(SolutionDir)..\..\lib\common;$(UniversalCRT_IncludePath); + false + + + true + $(IncludePath);$(SolutionDir)..\..\lib;$(SolutionDir)..\..\programs;$(SolutionDir)..\..\lib\legacy;$(SolutionDir)..\..\lib\common;$(UniversalCRT_IncludePath); + false + + + false + $(IncludePath);$(SolutionDir)..\..\lib;$(SolutionDir)..\..\programs;$(SolutionDir)..\..\lib\legacy;$(SolutionDir)..\..\lib\common;$(UniversalCRT_IncludePath); + false + + + false + $(IncludePath);$(SolutionDir)..\..\lib;$(SolutionDir)..\..\programs;$(SolutionDir)..\..\lib\legacy;$(SolutionDir)..\..\lib\common;$(UniversalCRT_IncludePath); + false + + + + + + Level4 + Disabled + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + false + + + Console + true + + + + + + + Level4 + Disabled + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + false + + + Console + true + + + + + Level4 + + + MaxSpeed + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + false + false + MultiThreaded + + + Console + true + true + true + + + + + Level4 + + + MaxSpeed + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + false + false + MultiThreaded + + + Console + true + true + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/dependencies/zstd-1.5.0/build/VS2010/fuzzer/fuzzer.vcxproj b/dependencies/zstd-1.5.0/build/VS2010/fuzzer/fuzzer.vcxproj new file mode 100644 index 0000000..91974ec --- /dev/null +++ b/dependencies/zstd-1.5.0/build/VS2010/fuzzer/fuzzer.vcxproj @@ -0,0 +1,223 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {6FD4352B-346C-4703-96EA-D4A8B9A6976E} + Win32Proj + fuzzer + $(SolutionDir)bin\$(Platform)_$(Configuration)\ + $(SolutionDir)bin\obj\$(RootNamespace)_$(Platform)_$(Configuration)\ + + + + Application + true + MultiByte + + + Application + true + MultiByte + + + Application + false + true + MultiByte + + + Application + false + true + MultiByte + + + + + + + + + + + + + + + + + + + true + false + $(IncludePath);$(SolutionDir)..\..\lib;$(SolutionDir)..\..\programs;$(SolutionDir)..\..\lib\legacy;$(SolutionDir)..\..\lib\common;$(SolutionDir)..\..\lib\dictBuilder;$(SolutionDir)..\..\lib\compress;$(UniversalCRT_IncludePath); + + + true + false + $(IncludePath);$(SolutionDir)..\..\lib;$(SolutionDir)..\..\programs;$(SolutionDir)..\..\lib\legacy;$(SolutionDir)..\..\lib\common;$(SolutionDir)..\..\lib\dictBuilder;$(SolutionDir)..\..\lib\compress;$(UniversalCRT_IncludePath); + + + false + false + $(IncludePath);$(SolutionDir)..\..\lib;$(SolutionDir)..\..\programs;$(SolutionDir)..\..\lib\legacy;$(SolutionDir)..\..\lib\common;$(SolutionDir)..\..\lib\dictBuilder;$(SolutionDir)..\..\lib\compress;$(UniversalCRT_IncludePath); + + + false + false + $(IncludePath);$(SolutionDir)..\..\lib;$(SolutionDir)..\..\programs;$(SolutionDir)..\..\lib\legacy;$(SolutionDir)..\..\lib\common;$(SolutionDir)..\..\lib\dictBuilder;$(SolutionDir)..\..\lib\compress;$(UniversalCRT_IncludePath); + + + + + + Level4 + Disabled + ZSTD_MULTITHREAD=1;WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + false + + + Console + true + + + + + + + Level4 + Disabled + ZSTD_MULTITHREAD=1;WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + false + + + Console + true + + + + + Level4 + + + MaxSpeed + true + true + ZSTD_MULTITHREAD=1;WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + false + false + MultiThreaded + + + Console + true + true + true + + + + + Level4 + + + MaxSpeed + true + true + ZSTD_MULTITHREAD=1;WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + false + false + MultiThreaded + + + Console + true + true + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/dependencies/zstd-1.5.0/build/VS2010/libzstd-dll/libzstd-dll.rc b/dependencies/zstd-1.5.0/build/VS2010/libzstd-dll/libzstd-dll.rc new file mode 100644 index 0000000..ee9f562 --- /dev/null +++ b/dependencies/zstd-1.5.0/build/VS2010/libzstd-dll/libzstd-dll.rc @@ -0,0 +1,51 @@ +// Microsoft Visual C++ generated resource script. +// + +#include "zstd.h" /* ZSTD_VERSION_STRING */ +#define APSTUDIO_READONLY_SYMBOLS +#include "verrsrc.h" +#undef APSTUDIO_READONLY_SYMBOLS + + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) +LANGUAGE 9, 1 + +///////////////////////////////////////////////////////////////////////////// +// +// Version +// + +VS_VERSION_INFO VERSIONINFO + FILEVERSION ZSTD_VERSION_MAJOR,ZSTD_VERSION_MINOR,ZSTD_VERSION_RELEASE,0 + PRODUCTVERSION ZSTD_VERSION_MAJOR,ZSTD_VERSION_MINOR,ZSTD_VERSION_RELEASE,0 + FILEFLAGSMASK VS_FFI_FILEFLAGSMASK +#ifdef _DEBUG + FILEFLAGS VS_FF_DEBUG +#else + FILEFLAGS 0x0L +#endif + FILEOS VOS_NT_WINDOWS32 + FILETYPE VFT_DLL + FILESUBTYPE VFT2_UNKNOWN +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040904B0" + BEGIN + VALUE "CompanyName", "Yann Collet, Facebook, Inc." + VALUE "FileDescription", "Zstandard - Fast and efficient compression algorithm" + VALUE "FileVersion", ZSTD_VERSION_STRING + VALUE "InternalName", "libzstd.dll" + VALUE "LegalCopyright", "Copyright (c) 2013-present, Yann Collet, Facebook, Inc." + VALUE "OriginalFilename", "libzstd.dll" + VALUE "ProductName", "Zstandard" + VALUE "ProductVersion", ZSTD_VERSION_STRING + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0409, 1200 + END +END + +#endif diff --git a/dependencies/zstd-1.5.0/build/VS2010/libzstd-dll/libzstd-dll.vcxproj b/dependencies/zstd-1.5.0/build/VS2010/libzstd-dll/libzstd-dll.vcxproj new file mode 100644 index 0000000..a0aa897 --- /dev/null +++ b/dependencies/zstd-1.5.0/build/VS2010/libzstd-dll/libzstd-dll.vcxproj @@ -0,0 +1,250 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {00000000-94D5-4BF9-8A50-7BD9929A0850} + Win32Proj + libzstd-dll + $(SolutionDir)bin\$(Platform)_$(Configuration)\ + $(SolutionDir)bin\obj\$(RootNamespace)_$(Platform)_$(Configuration)\ + + + + DynamicLibrary + true + MultiByte + + + DynamicLibrary + true + MultiByte + + + DynamicLibrary + false + true + MultiByte + + + DynamicLibrary + false + true + MultiByte + + + + + + + + + + + + + + + + + + + true + libzstd + $(IncludePath);$(SolutionDir)..\..\lib;$(SolutionDir)..\..\programs\legacy;$(SolutionDir)..\..\lib\legacy;$(SolutionDir)..\..\lib\common;$(SolutionDir)..\..\lib\dictBuilder;$(UniversalCRT_IncludePath); + false + + + true + libzstd + $(IncludePath);$(SolutionDir)..\..\lib;$(SolutionDir)..\..\programs\legacy;$(SolutionDir)..\..\lib\legacy;$(SolutionDir)..\..\lib\common;$(SolutionDir)..\..\lib\dictBuilder;$(UniversalCRT_IncludePath); + false + + + false + libzstd + $(IncludePath);$(SolutionDir)..\..\lib;$(SolutionDir)..\..\programs\legacy;$(SolutionDir)..\..\lib\legacy;$(SolutionDir)..\..\lib\common;$(SolutionDir)..\..\lib\dictBuilder;$(UniversalCRT_IncludePath); + false + + + false + libzstd + $(IncludePath);$(SolutionDir)..\..\lib;$(SolutionDir)..\..\programs\legacy;$(SolutionDir)..\..\lib\legacy;$(SolutionDir)..\..\lib\common;$(SolutionDir)..\..\lib\dictBuilder;$(UniversalCRT_IncludePath); + false + + + + + + Level4 + Disabled + ZSTD_DLL_EXPORT=1;ZSTD_MULTITHREAD=1;ZSTD_LEGACY_SUPPORT=5;WIN32;_DEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + EditAndContinue + true + false + + + Console + true + MachineX86 + + + + + + + Level4 + Disabled + ZSTD_DLL_EXPORT=1;ZSTD_MULTITHREAD=1;ZSTD_LEGACY_SUPPORT=5;WIN32;_DEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + ProgramDatabase + false + + + Console + true + + + + + Level4 + + + MaxSpeed + true + true + ZSTD_DLL_EXPORT=1;ZSTD_MULTITHREAD=1;ZSTD_LEGACY_SUPPORT=5;WIN32;NDEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + false + MultiThreaded + ProgramDatabase + + + Console + true + true + true + MachineX86 + + + + + Level4 + + + MaxSpeed + true + true + ZSTD_DLL_EXPORT=1;ZSTD_MULTITHREAD=1;ZSTD_LEGACY_SUPPORT=5;WIN32;NDEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + false + false + MultiThreaded + ProgramDatabase + true + true + + + Console + true + true + true + + + + + + diff --git a/dependencies/zstd-1.5.0/build/VS2010/libzstd/libzstd.vcxproj b/dependencies/zstd-1.5.0/build/VS2010/libzstd/libzstd.vcxproj new file mode 100644 index 0000000..17c08d7 --- /dev/null +++ b/dependencies/zstd-1.5.0/build/VS2010/libzstd/libzstd.vcxproj @@ -0,0 +1,243 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {8BFD8150-94D5-4BF9-8A50-7BD9929A0850} + Win32Proj + libzstd + libzstd_static + MultiByte + StaticLibrary + $(SolutionDir)bin\$(Platform)_$(Configuration)\ + $(SolutionDir)bin\obj\$(RootNamespace)_$(Platform)_$(Configuration)\ + + + + true + + + true + + + false + true + + + false + true + + + + + + + + + + + + + + + + + + + true + $(IncludePath);$(SolutionDir)..\..\lib;$(SolutionDir)..\..\programs\legacy;$(SolutionDir)..\..\lib\legacy;$(SolutionDir)..\..\lib\common;$(SolutionDir)..\..\lib\dictBuilder;$(UniversalCRT_IncludePath); + false + + + true + $(IncludePath);$(SolutionDir)..\..\lib;$(SolutionDir)..\..\programs\legacy;$(SolutionDir)..\..\lib\legacy;$(SolutionDir)..\..\lib\common;$(SolutionDir)..\..\lib\dictBuilder;$(UniversalCRT_IncludePath); + false + + + false + $(IncludePath);$(SolutionDir)..\..\lib;$(SolutionDir)..\..\programs\legacy;$(SolutionDir)..\..\lib\legacy;$(SolutionDir)..\..\lib\common;$(SolutionDir)..\..\lib\dictBuilder;$(UniversalCRT_IncludePath); + false + + + false + $(IncludePath);$(SolutionDir)..\..\lib;$(SolutionDir)..\..\programs\legacy;$(SolutionDir)..\..\lib\legacy;$(SolutionDir)..\..\lib\common;$(SolutionDir)..\..\lib\dictBuilder;$(UniversalCRT_IncludePath); + false + + + + $(OutDir)$(TargetName).pdb + + + + + + + Level4 + Disabled + ZSTD_MULTITHREAD=1;ZSTD_LEGACY_SUPPORT=5;WIN32;_DEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + EditAndContinue + true + false + + + Console + true + MachineX86 + + + + + + + Level4 + Disabled + ZSTD_MULTITHREAD=1;ZSTD_LEGACY_SUPPORT=5;WIN32;_DEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + ProgramDatabase + false + + + Console + true + + + + + Level4 + + + MaxSpeed + true + true + ZSTD_MULTITHREAD=1;ZSTD_LEGACY_SUPPORT=5;WIN32;NDEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + false + MultiThreaded + ProgramDatabase + + + Console + true + true + true + MachineX86 + + + + + Level4 + + + MaxSpeed + true + true + ZSTD_MULTITHREAD=1;ZSTD_LEGACY_SUPPORT=5;WIN32;NDEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + false + false + MultiThreaded + ProgramDatabase + true + true + + + Console + true + true + true + + + + + + diff --git a/dependencies/zstd-1.5.0/build/VS2010/zstd.sln b/dependencies/zstd-1.5.0/build/VS2010/zstd.sln new file mode 100644 index 0000000..12032db --- /dev/null +++ b/dependencies/zstd-1.5.0/build/VS2010/zstd.sln @@ -0,0 +1,89 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Express 2012 for Windows Desktop +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zstd", "zstd\zstd.vcxproj", "{4E52A41A-F33B-4C7A-8C36-A1A6B4F4277C}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "fuzzer", "fuzzer\fuzzer.vcxproj", "{6FD4352B-346C-4703-96EA-D4A8B9A6976E}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "fullbench", "fullbench\fullbench.vcxproj", "{61ABD629-1CC8-4FD7-9281-6B8DBB9D3DF8}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "fullbench-dll", "fullbench-dll\fullbench-dll.vcxproj", "{00000000-1CC8-4FD7-9281-6B8DBB9D3DF8}" + ProjectSection(ProjectDependencies) = postProject + {00000000-94D5-4BF9-8A50-7BD9929A0850} = {00000000-94D5-4BF9-8A50-7BD9929A0850} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "datagen", "datagen\datagen.vcxproj", "{037E781E-81A6-494B-B1B3-438AB1200523}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libzstd", "libzstd\libzstd.vcxproj", "{8BFD8150-94D5-4BF9-8A50-7BD9929A0850}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libzstd-dll", "libzstd-dll\libzstd-dll.vcxproj", "{00000000-94D5-4BF9-8A50-7BD9929A0850}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Debug|x64 = Debug|x64 + Release|Win32 = Release|Win32 + Release|x64 = Release|x64 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {4E52A41A-F33B-4C7A-8C36-A1A6B4F4277C}.Debug|Win32.ActiveCfg = Debug|Win32 + {4E52A41A-F33B-4C7A-8C36-A1A6B4F4277C}.Debug|Win32.Build.0 = Debug|Win32 + {4E52A41A-F33B-4C7A-8C36-A1A6B4F4277C}.Debug|x64.ActiveCfg = Debug|x64 + {4E52A41A-F33B-4C7A-8C36-A1A6B4F4277C}.Debug|x64.Build.0 = Debug|x64 + {4E52A41A-F33B-4C7A-8C36-A1A6B4F4277C}.Release|Win32.ActiveCfg = Release|Win32 + {4E52A41A-F33B-4C7A-8C36-A1A6B4F4277C}.Release|Win32.Build.0 = Release|Win32 + {4E52A41A-F33B-4C7A-8C36-A1A6B4F4277C}.Release|x64.ActiveCfg = Release|x64 + {4E52A41A-F33B-4C7A-8C36-A1A6B4F4277C}.Release|x64.Build.0 = Release|x64 + {6FD4352B-346C-4703-96EA-D4A8B9A6976E}.Debug|Win32.ActiveCfg = Debug|Win32 + {6FD4352B-346C-4703-96EA-D4A8B9A6976E}.Debug|Win32.Build.0 = Debug|Win32 + {6FD4352B-346C-4703-96EA-D4A8B9A6976E}.Debug|x64.ActiveCfg = Debug|x64 + {6FD4352B-346C-4703-96EA-D4A8B9A6976E}.Debug|x64.Build.0 = Debug|x64 + {6FD4352B-346C-4703-96EA-D4A8B9A6976E}.Release|Win32.ActiveCfg = Release|Win32 + {6FD4352B-346C-4703-96EA-D4A8B9A6976E}.Release|Win32.Build.0 = Release|Win32 + {6FD4352B-346C-4703-96EA-D4A8B9A6976E}.Release|x64.ActiveCfg = Release|x64 + {6FD4352B-346C-4703-96EA-D4A8B9A6976E}.Release|x64.Build.0 = Release|x64 + {61ABD629-1CC8-4FD7-9281-6B8DBB9D3DF8}.Debug|Win32.ActiveCfg = Debug|Win32 + {61ABD629-1CC8-4FD7-9281-6B8DBB9D3DF8}.Debug|Win32.Build.0 = Debug|Win32 + {61ABD629-1CC8-4FD7-9281-6B8DBB9D3DF8}.Debug|x64.ActiveCfg = Debug|x64 + {61ABD629-1CC8-4FD7-9281-6B8DBB9D3DF8}.Debug|x64.Build.0 = Debug|x64 + {61ABD629-1CC8-4FD7-9281-6B8DBB9D3DF8}.Release|Win32.ActiveCfg = Release|Win32 + {61ABD629-1CC8-4FD7-9281-6B8DBB9D3DF8}.Release|Win32.Build.0 = Release|Win32 + {61ABD629-1CC8-4FD7-9281-6B8DBB9D3DF8}.Release|x64.ActiveCfg = Release|x64 + {61ABD629-1CC8-4FD7-9281-6B8DBB9D3DF8}.Release|x64.Build.0 = Release|x64 + {00000000-1CC8-4FD7-9281-6B8DBB9D3DF8}.Debug|Win32.ActiveCfg = Debug|Win32 + {00000000-1CC8-4FD7-9281-6B8DBB9D3DF8}.Debug|Win32.Build.0 = Debug|Win32 + {00000000-1CC8-4FD7-9281-6B8DBB9D3DF8}.Debug|x64.ActiveCfg = Debug|x64 + {00000000-1CC8-4FD7-9281-6B8DBB9D3DF8}.Debug|x64.Build.0 = Debug|x64 + {00000000-1CC8-4FD7-9281-6B8DBB9D3DF8}.Release|Win32.ActiveCfg = Release|Win32 + {00000000-1CC8-4FD7-9281-6B8DBB9D3DF8}.Release|Win32.Build.0 = Release|Win32 + {00000000-1CC8-4FD7-9281-6B8DBB9D3DF8}.Release|x64.ActiveCfg = Release|x64 + {00000000-1CC8-4FD7-9281-6B8DBB9D3DF8}.Release|x64.Build.0 = Release|x64 + {037E781E-81A6-494B-B1B3-438AB1200523}.Debug|Win32.ActiveCfg = Debug|Win32 + {037E781E-81A6-494B-B1B3-438AB1200523}.Debug|Win32.Build.0 = Debug|Win32 + {037E781E-81A6-494B-B1B3-438AB1200523}.Debug|x64.ActiveCfg = Debug|x64 + {037E781E-81A6-494B-B1B3-438AB1200523}.Debug|x64.Build.0 = Debug|x64 + {037E781E-81A6-494B-B1B3-438AB1200523}.Release|Win32.ActiveCfg = Release|Win32 + {037E781E-81A6-494B-B1B3-438AB1200523}.Release|Win32.Build.0 = Release|Win32 + {037E781E-81A6-494B-B1B3-438AB1200523}.Release|x64.ActiveCfg = Release|x64 + {037E781E-81A6-494B-B1B3-438AB1200523}.Release|x64.Build.0 = Release|x64 + {8BFD8150-94D5-4BF9-8A50-7BD9929A0850}.Debug|Win32.ActiveCfg = Debug|Win32 + {8BFD8150-94D5-4BF9-8A50-7BD9929A0850}.Debug|Win32.Build.0 = Debug|Win32 + {8BFD8150-94D5-4BF9-8A50-7BD9929A0850}.Debug|x64.ActiveCfg = Debug|x64 + {8BFD8150-94D5-4BF9-8A50-7BD9929A0850}.Debug|x64.Build.0 = Debug|x64 + {8BFD8150-94D5-4BF9-8A50-7BD9929A0850}.Release|Win32.ActiveCfg = Release|Win32 + {8BFD8150-94D5-4BF9-8A50-7BD9929A0850}.Release|Win32.Build.0 = Release|Win32 + {8BFD8150-94D5-4BF9-8A50-7BD9929A0850}.Release|x64.ActiveCfg = Release|x64 + {8BFD8150-94D5-4BF9-8A50-7BD9929A0850}.Release|x64.Build.0 = Release|x64 + {00000000-94D5-4BF9-8A50-7BD9929A0850}.Debug|Win32.ActiveCfg = Debug|Win32 + {00000000-94D5-4BF9-8A50-7BD9929A0850}.Debug|Win32.Build.0 = Debug|Win32 + {00000000-94D5-4BF9-8A50-7BD9929A0850}.Debug|x64.ActiveCfg = Debug|x64 + {00000000-94D5-4BF9-8A50-7BD9929A0850}.Debug|x64.Build.0 = Debug|x64 + {00000000-94D5-4BF9-8A50-7BD9929A0850}.Release|Win32.ActiveCfg = Release|Win32 + {00000000-94D5-4BF9-8A50-7BD9929A0850}.Release|Win32.Build.0 = Release|Win32 + {00000000-94D5-4BF9-8A50-7BD9929A0850}.Release|x64.ActiveCfg = Release|x64 + {00000000-94D5-4BF9-8A50-7BD9929A0850}.Release|x64.Build.0 = Release|x64 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/dependencies/zstd-1.5.0/build/VS2010/zstd/zstd.rc b/dependencies/zstd-1.5.0/build/VS2010/zstd/zstd.rc new file mode 100644 index 0000000..f5e4047 --- /dev/null +++ b/dependencies/zstd-1.5.0/build/VS2010/zstd/zstd.rc @@ -0,0 +1,51 @@ +// Microsoft Visual C++ generated resource script. +// + +#include "zstd.h" /* ZSTD_VERSION_STRING */ +#define APSTUDIO_READONLY_SYMBOLS +#include "verrsrc.h" +#undef APSTUDIO_READONLY_SYMBOLS + + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) +LANGUAGE 9, 1 + +///////////////////////////////////////////////////////////////////////////// +// +// Version +// + +VS_VERSION_INFO VERSIONINFO + FILEVERSION ZSTD_VERSION_MAJOR,ZSTD_VERSION_MINOR,ZSTD_VERSION_RELEASE,0 + PRODUCTVERSION ZSTD_VERSION_MAJOR,ZSTD_VERSION_MINOR,ZSTD_VERSION_RELEASE,0 + FILEFLAGSMASK VS_FFI_FILEFLAGSMASK +#ifdef _DEBUG + FILEFLAGS VS_FF_DEBUG +#else + FILEFLAGS 0x0L +#endif + FILEOS VOS_NT_WINDOWS32 + FILETYPE VFT_DLL + FILESUBTYPE VFT2_UNKNOWN +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040904B0" + BEGIN + VALUE "CompanyName", "Yann Collet, Facebook, Inc." + VALUE "FileDescription", "Zstandard - Fast and efficient compression algorithm" + VALUE "FileVersion", ZSTD_VERSION_STRING + VALUE "InternalName", "zstd.exe" + VALUE "LegalCopyright", "Copyright (c) 2013-present, Yann Collet, Facebook, Inc." + VALUE "OriginalFilename", "zstd.exe" + VALUE "ProductName", "Zstandard" + VALUE "ProductVersion", ZSTD_VERSION_STRING + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0409, 1200 + END +END + +#endif diff --git a/dependencies/zstd-1.5.0/build/VS2010/zstd/zstd.vcxproj b/dependencies/zstd-1.5.0/build/VS2010/zstd/zstd.vcxproj new file mode 100644 index 0000000..46e22f4 --- /dev/null +++ b/dependencies/zstd-1.5.0/build/VS2010/zstd/zstd.vcxproj @@ -0,0 +1,258 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {4E52A41A-F33B-4C7A-8C36-A1A6B4F4277C} + Win32Proj + zstd + $(SolutionDir)bin\$(Platform)_$(Configuration)\ + $(SolutionDir)bin\obj\$(RootNamespace)_$(Platform)_$(Configuration)\ + + + + Application + true + MultiByte + + + Application + true + MultiByte + + + Application + false + true + MultiByte + + + Application + false + true + MultiByte + + + + + + + + + + + + + + + + + + + true + $(IncludePath);$(SolutionDir)..\..\lib;$(SolutionDir)..\..\lib\compress;$(SolutionDir)..\..\lib\legacy;$(SolutionDir)..\..\lib\common;$(SolutionDir)..\..\lib\dictBuilder;$(UniversalCRT_IncludePath); + false + $(LibraryPath) + + + true + $(IncludePath);$(SolutionDir)..\..\lib;$(SolutionDir)..\..\lib\compress;$(SolutionDir)..\..\lib\legacy;$(SolutionDir)..\..\lib\common;$(SolutionDir)..\..\lib\dictBuilder;$(UniversalCRT_IncludePath); + false + $(LibraryPath); + + + false + $(IncludePath);$(SolutionDir)..\..\lib;$(SolutionDir)..\..\lib\compress;$(SolutionDir)..\..\lib\legacy;$(SolutionDir)..\..\lib\common;$(SolutionDir)..\..\lib\dictBuilder;$(UniversalCRT_IncludePath); + false + $(LibraryPath) + + + false + $(IncludePath);$(SolutionDir)..\..\lib;$(SolutionDir)..\..\lib\compress;$(SolutionDir)..\..\lib\legacy;$(SolutionDir)..\..\lib\common;$(SolutionDir)..\..\lib\dictBuilder;$(UniversalCRT_IncludePath); + false + $(LibraryPath); + + + + + + Level4 + Disabled + ZSTD_MULTITHREAD=1;ZSTD_LEGACY_SUPPORT=5;WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + false + + + Console + true + setargv.obj;%(AdditionalDependencies) + + + + + + + Level4 + Disabled + ZSTD_MULTITHREAD=1;ZSTD_LEGACY_SUPPORT=5;WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + false + + + Console + true + setargv.obj;%(AdditionalDependencies) + + + + + Level4 + + + MaxSpeed + true + true + ZSTD_MULTITHREAD=1;ZSTD_LEGACY_SUPPORT=5;WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + false + false + MultiThreaded + + + Console + true + true + true + setargv.obj;%(AdditionalDependencies) + + + + + Level4 + + + MaxSpeed + true + true + ZSTD_MULTITHREAD=1;ZSTD_LEGACY_SUPPORT=5;WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + false + false + MultiThreaded + /DZSTD_MULTITHREAD %(AdditionalOptions) + + + Console + true + true + true + setargv.obj;%(AdditionalDependencies) + + + + + + diff --git a/dependencies/zstd-1.5.0/build/VS_scripts/README.md b/dependencies/zstd-1.5.0/build/VS_scripts/README.md new file mode 100644 index 0000000..6ccaca7 --- /dev/null +++ b/dependencies/zstd-1.5.0/build/VS_scripts/README.md @@ -0,0 +1,64 @@ +Command line scripts for Visual Studio compilation without IDE +============================================================== + +Here are a few command lines for reference : + +### Build with Visual Studio 2013 for msvcr120.dll + +Running the following command will build both the `Release Win32` and `Release x64` versions: +```batch +build.VS2013.cmd +``` +The result of each build will be in the corresponding `bin\Release\{ARCH}\` folder. + +If you want to only need one architecture: +- Win32: `build.generic.cmd VS2013 Win32 Release v120` +- x64: `build.generic.cmd VS2013 x64 Release v120` + +If you want a Debug build: +- Win32: `build.generic.cmd VS2013 Win32 Debug v120` +- x64: `build.generic.cmd VS2013 x64 Debug v120` + +### Build with Visual Studio 2015 for msvcr140.dll + +Running the following command will build both the `Release Win32` and `Release x64` versions: +```batch +build.VS2015.cmd +``` +The result of each build will be in the corresponding `bin\Release\{ARCH}\` folder. + +If you want to only need one architecture: +- Win32: `build.generic.cmd VS2015 Win32 Release v140` +- x64: `build.generic.cmd VS2015 x64 Release v140` + +If you want a Debug build: +- Win32: `build.generic.cmd VS2015 Win32 Debug v140` +- x64: `build.generic.cmd VS2015 x64 Debug v140` + +### Build with Visual Studio 2015 for msvcr120.dll + +This capability is offered through `build.generic.cmd` using proper arguments: + +**For Win32** +```batch +build.generic.cmd VS2015 Win32 Release v120 +``` +The result of the build will be in the `bin\Release\Win32\` folder. + +**For x64** +```batch +build.generic.cmd VS2015 x64 Release v120 +``` +The result of the build will be in the `bin\Release\x64\` folder. + +If you want Debug builds, replace `Release` with `Debug`. + +### Build with Visual Studio 2017 + +`build.VS2017.cmd`, contributed by [@HaydnTrigg](https://github.com/HaydnTrigg), +will build both the `Release Win32` and `Release x64` versions +of the first VS2017 variant it finds, in this priority order : +Enterprise > Professional > Community + +Alternatively, it's possible to target a specific version, +using appropriate script, such as `build.VS2017Enterprise.cmd` for example. diff --git a/dependencies/zstd-1.5.0/build/VS_scripts/build.VS2010.cmd b/dependencies/zstd-1.5.0/build/VS_scripts/build.VS2010.cmd new file mode 100644 index 0000000..c3bc176 --- /dev/null +++ b/dependencies/zstd-1.5.0/build/VS_scripts/build.VS2010.cmd @@ -0,0 +1,7 @@ +@echo off + +rem build 32-bit +call "%~p0%build.generic.cmd" VS2010 Win32 Release v100 + +rem build 64-bit +call "%~p0%build.generic.cmd" VS2010 x64 Release v100 \ No newline at end of file diff --git a/dependencies/zstd-1.5.0/build/VS_scripts/build.VS2012.cmd b/dependencies/zstd-1.5.0/build/VS_scripts/build.VS2012.cmd new file mode 100644 index 0000000..d7399a9 --- /dev/null +++ b/dependencies/zstd-1.5.0/build/VS_scripts/build.VS2012.cmd @@ -0,0 +1,6 @@ +@echo off + +rem build 32-bit +call "%~p0%build.generic.cmd" VS2012 Win32 Release v110 +rem build 64-bit +call "%~p0%build.generic.cmd" VS2012 x64 Release v110 \ No newline at end of file diff --git a/dependencies/zstd-1.5.0/build/VS_scripts/build.VS2013.cmd b/dependencies/zstd-1.5.0/build/VS_scripts/build.VS2013.cmd new file mode 100644 index 0000000..486ba6c --- /dev/null +++ b/dependencies/zstd-1.5.0/build/VS_scripts/build.VS2013.cmd @@ -0,0 +1,7 @@ +@echo off + +rem build 32-bit +call "%~p0%build.generic.cmd" VS2013 Win32 Release v120 + +rem build 64-bit +call "%~p0%build.generic.cmd" VS2013 x64 Release v120 \ No newline at end of file diff --git a/dependencies/zstd-1.5.0/build/VS_scripts/build.VS2015.cmd b/dependencies/zstd-1.5.0/build/VS_scripts/build.VS2015.cmd new file mode 100644 index 0000000..abc41c9 --- /dev/null +++ b/dependencies/zstd-1.5.0/build/VS_scripts/build.VS2015.cmd @@ -0,0 +1,7 @@ +@echo off + +rem build 32-bit +call "%~p0%build.generic.cmd" VS2015 Win32 Release v140 + +rem build 64-bit +call "%~p0%build.generic.cmd" VS2015 x64 Release v140 \ No newline at end of file diff --git a/dependencies/zstd-1.5.0/build/VS_scripts/build.VS2017.cmd b/dependencies/zstd-1.5.0/build/VS_scripts/build.VS2017.cmd new file mode 100644 index 0000000..a810faa --- /dev/null +++ b/dependencies/zstd-1.5.0/build/VS_scripts/build.VS2017.cmd @@ -0,0 +1,7 @@ +@echo off + +rem build 32-bit +call "%~p0%build.generic.cmd" VS2017 Win32 Release v141 + +rem build 64-bit +call "%~p0%build.generic.cmd" VS2017 x64 Release v141 \ No newline at end of file diff --git a/dependencies/zstd-1.5.0/build/VS_scripts/build.VS2017Community.cmd b/dependencies/zstd-1.5.0/build/VS_scripts/build.VS2017Community.cmd new file mode 100644 index 0000000..133e1b4 --- /dev/null +++ b/dependencies/zstd-1.5.0/build/VS_scripts/build.VS2017Community.cmd @@ -0,0 +1,7 @@ +@echo off + +rem build 32-bit +call "%~p0%build.generic.cmd" VS2017Community Win32 Release v141 + +rem build 64-bit +call "%~p0%build.generic.cmd" VS2017Community x64 Release v141 \ No newline at end of file diff --git a/dependencies/zstd-1.5.0/build/VS_scripts/build.VS2017Enterprise.cmd b/dependencies/zstd-1.5.0/build/VS_scripts/build.VS2017Enterprise.cmd new file mode 100644 index 0000000..6a70932 --- /dev/null +++ b/dependencies/zstd-1.5.0/build/VS_scripts/build.VS2017Enterprise.cmd @@ -0,0 +1,7 @@ +@echo off + +rem build 32-bit +call "%~p0%build.generic.cmd" VS2017Enterprise Win32 Release v141 + +rem build 64-bit +call "%~p0%build.generic.cmd" VS2017Enterprise x64 Release v141 \ No newline at end of file diff --git a/dependencies/zstd-1.5.0/build/VS_scripts/build.VS2017Professional.cmd b/dependencies/zstd-1.5.0/build/VS_scripts/build.VS2017Professional.cmd new file mode 100644 index 0000000..d183519 --- /dev/null +++ b/dependencies/zstd-1.5.0/build/VS_scripts/build.VS2017Professional.cmd @@ -0,0 +1,7 @@ +@echo off + +rem build 32-bit +call "%~p0%build.generic.cmd" VS2017Professional Win32 Release v141 + +rem build 64-bit +call "%~p0%build.generic.cmd" VS2017Professional x64 Release v141 \ No newline at end of file diff --git a/dependencies/zstd-1.5.0/build/VS_scripts/build.generic.cmd b/dependencies/zstd-1.5.0/build/VS_scripts/build.generic.cmd new file mode 100644 index 0000000..a7ca4d0 --- /dev/null +++ b/dependencies/zstd-1.5.0/build/VS_scripts/build.generic.cmd @@ -0,0 +1,62 @@ +@echo off + +IF "%1%" == "" GOTO display_help + +SETLOCAL + +SET msbuild_version=%1 + +SET msbuild_platform=%2 +IF "%msbuild_platform%" == "" SET msbuild_platform=x64 + +SET msbuild_configuration=%3 +IF "%msbuild_configuration%" == "" SET msbuild_configuration=Release + +SET msbuild_toolset=%4 + +GOTO build + +:display_help + +echo Syntax: build.generic.cmd msbuild_version msbuild_platform msbuild_configuration msbuild_toolset +echo msbuild_version: VS installed version (VS2012, VS2013, VS2015, VS2017, ...) +echo msbuild_platform: Platform (x64 or Win32) +echo msbuild_configuration: VS configuration (Release or Debug) +echo msbuild_toolset: Platform Toolset (v100, v110, v120, v140, v141) + +EXIT /B 1 + +:build + +SET msbuild="%windir%\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe" +SET msbuild_vs2017community="%programfiles(x86)%\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\MSBuild.exe" +SET msbuild_vs2017professional="%programfiles(x86)%\Microsoft Visual Studio\2017\Professional\MSBuild\15.0\Bin\MSBuild.exe" +SET msbuild_vs2017enterprise="%programfiles(x86)%\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\MSBuild.exe" +IF %msbuild_version% == VS2013 SET msbuild="%programfiles(x86)%\MSBuild\12.0\Bin\MSBuild.exe" +IF %msbuild_version% == VS2015 SET msbuild="%programfiles(x86)%\MSBuild\14.0\Bin\MSBuild.exe" +IF %msbuild_version% == VS2017Community SET msbuild=%msbuild_vs2017community% +IF %msbuild_version% == VS2017Professional SET msbuild=%msbuild_vs2017professional% +IF %msbuild_version% == VS2017Enterprise SET msbuild=%msbuild_vs2017enterprise% +IF %msbuild_version% == VS2017 ( + IF EXIST %msbuild_vs2017community% SET msbuild=%msbuild_vs2017community% + IF EXIST %msbuild_vs2017professional% SET msbuild=%msbuild_vs2017professional% + IF EXIST %msbuild_vs2017enterprise% SET msbuild=%msbuild_vs2017enterprise% +) + +SET project="%~p0\..\VS2010\zstd.sln" + +SET msbuild_params=/verbosity:minimal /nologo /t:Clean,Build /p:Platform=%msbuild_platform% /p:Configuration=%msbuild_configuration% +IF NOT "%msbuild_toolset%" == "" SET msbuild_params=%msbuild_params% /p:PlatformToolset=%msbuild_toolset% + +SET output=%~p0%bin +SET output="%output%/%msbuild_configuration%/%msbuild_platform%/" +SET msbuild_params=%msbuild_params% /p:OutDir=%output% + +echo ### Building %msbuild_version% project for %msbuild_configuration% %msbuild_platform% (%msbuild_toolset%)... +echo ### Build Params: %msbuild_params% + +%msbuild% %project% %msbuild_params% +IF ERRORLEVEL 1 EXIT /B 1 +echo # Success +echo # OutDir: %output% +echo # diff --git a/dependencies/zstd-1.5.0/build/cmake/.gitignore b/dependencies/zstd-1.5.0/build/cmake/.gitignore new file mode 100644 index 0000000..2e51e89 --- /dev/null +++ b/dependencies/zstd-1.5.0/build/cmake/.gitignore @@ -0,0 +1,10 @@ +# cmake working directory +cmakeBuild + +# cmake artefacts +CMakeCache.txt +CMakeFiles +Makefile +cmake_install.cmake +cmake_uninstall.cmake +*.1 diff --git a/dependencies/zstd-1.5.0/build/cmake/CMakeLists.txt b/dependencies/zstd-1.5.0/build/cmake/CMakeLists.txt new file mode 100644 index 0000000..a050577 --- /dev/null +++ b/dependencies/zstd-1.5.0/build/cmake/CMakeLists.txt @@ -0,0 +1,203 @@ +# ################################################################ +# Copyright (c) 2016-present, Yann Collet, Facebook, Inc. +# All rights reserved. +# +# This source code is licensed under both the BSD-style license (found in the +# LICENSE file in the root directory of this source tree) and the GPLv2 (found +# in the COPYING file in the root directory of this source tree). +# ################################################################ + +cmake_minimum_required(VERSION 2.8.12 FATAL_ERROR) + +# As of 2018-12-26 ZSTD has been validated to build with cmake version 3.13.2 new policies. +# Set and use the newest cmake policies that are validated to work +set(ZSTD_MAX_VALIDATED_CMAKE_MAJOR_VERSION "3") +set(ZSTD_MAX_VALIDATED_CMAKE_MINOR_VERSION "13") #Policies never changed at PATCH level +if("${CMAKE_MAJOR_VERSION}" LESS 3) + set(ZSTD_CMAKE_POLICY_VERSION "${CMAKE_VERSION}") +elseif( "${ZSTD_MAX_VALIDATED_CMAKE_MAJOR_VERSION}" EQUAL "${CMAKE_MAJOR_VERSION}" AND + "${ZSTD_MAX_VALIDATED_CMAKE_MINOR_VERSION}" GREATER "${CMAKE_MINOR_VERSION}") + set(ZSTD_CMAKE_POLICY_VERSION "${CMAKE_VERSION}") +else() + set(ZSTD_CMAKE_POLICY_VERSION "${ZSTD_MAX_VALIDATED_CMAKE_MAJOR_VERSION}.${ZSTD_MAX_VALIDATED_CMAKE_MINOR_VERSION}.0") +endif() +cmake_policy(VERSION ${ZSTD_CMAKE_POLICY_VERSION}) + +set(CMAKE_BUILD_WITH_INSTALL_RPATH on) + +list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/CMakeModules") +set(ZSTD_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../..") +set(LIBRARY_DIR ${ZSTD_SOURCE_DIR}/lib) +# Parse version +include(GetZstdLibraryVersion) +GetZstdLibraryVersion(${LIBRARY_DIR}/zstd.h zstd_VERSION_MAJOR zstd_VERSION_MINOR zstd_VERSION_PATCH) + +if( CMAKE_MAJOR_VERSION LESS 3 ) + ## Provide cmake 3+ behavior for older versions of cmake + project(zstd) + set(PROJECT_VERSION_MAJOR ${zstd_VERSION_MAJOR}) + set(PROJECT_VERSION_MINOR ${zstd_VERSION_MINOR}) + set(PROJECT_VERSION_PATCH ${zstd_VERSION_PATCH}) + set(PROJECT_VERSION "${zstd_VERSION_MAJOR}.${zstd_VERSION_MINOR}.${zstd_VERSION_PATCH}") + enable_language(C) # Main library is in C + enable_language(CXX) # Testing contributed code also utilizes CXX +else() + project(zstd + VERSION "${zstd_VERSION_MAJOR}.${zstd_VERSION_MINOR}.${zstd_VERSION_PATCH}" + LANGUAGES C # Main library is in C + CXX # Testing contributed code also utilizes CXX + ) +endif() +message(STATUS "ZSTD VERSION: ${zstd_VERSION}") +set(zstd_HOMEPAGE_URL "http://www.zstd.net") +set(zstd_DESCRIPTION "Zstandard is a real-time compression algorithm, providing high compression ratios.") + +# Set a default build type if none was specified +if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES) + message(STATUS "Setting build type to 'Release' as none was specified.") + set(CMAKE_BUILD_TYPE Release CACHE STRING "Choose the type of build." FORCE) + # Set the possible values of build type for cmake-gui + set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS "Debug" "Release" "MinSizeRel" "RelWithDebInfo") +endif() + +include(GNUInstallDirs) + +#----------------------------------------------------------------------------- +# Add extra compilation flags +#----------------------------------------------------------------------------- +include(AddZstdCompilationFlags) +ADD_ZSTD_COMPILATION_FLAGS() + +# Always hide XXHash symbols +add_definitions(-DXXH_NAMESPACE=ZSTD_) + +#----------------------------------------------------------------------------- +# Installation variables +#----------------------------------------------------------------------------- +message(STATUS "CMAKE_INSTALL_PREFIX: ${CMAKE_INSTALL_PREFIX}") +message(STATUS "CMAKE_INSTALL_LIBDIR: ${CMAKE_INSTALL_LIBDIR}") + +#----------------------------------------------------------------------------- +# Options +#----------------------------------------------------------------------------- + +# Legacy support +option(ZSTD_LEGACY_SUPPORT "LEGACY SUPPORT" OFF) + +if (ZSTD_LEGACY_SUPPORT) + message(STATUS "ZSTD_LEGACY_SUPPORT defined!") + add_definitions(-DZSTD_LEGACY_SUPPORT=5) +else () + message(STATUS "ZSTD_LEGACY_SUPPORT not defined!") + add_definitions(-DZSTD_LEGACY_SUPPORT=0) +endif () + +# Multi-threading support +option(ZSTD_MULTITHREAD_SUPPORT "MULTITHREADING SUPPORT" ON) + +if (ZSTD_MULTITHREAD_SUPPORT) + message(STATUS "ZSTD_MULTITHREAD_SUPPORT is enabled") +else () + message(STATUS "ZSTD_MULTITHREAD_SUPPORT is disabled") +endif () + +option(ZSTD_BUILD_PROGRAMS "BUILD PROGRAMS" ON) +option(ZSTD_BUILD_CONTRIB "BUILD CONTRIB" OFF) + +# Respect the conventional CMake option for enabling tests if it was specified on the first configure +if (BUILD_TESTING) + set(ZSTD_BUILD_TESTS_default ON) +else() + set(ZSTD_BUILD_TESTS_default OFF) +endif() +option(ZSTD_BUILD_TESTS "BUILD TESTS" ${ZSTD_BUILD_TESTS_default}) +if (MSVC) + option(ZSTD_USE_STATIC_RUNTIME "LINK TO STATIC RUN-TIME LIBRARIES" OFF) +endif () + +#----------------------------------------------------------------------------- +# External dependencies +#----------------------------------------------------------------------------- +if (ZSTD_MULTITHREAD_SUPPORT AND UNIX) + set(THREADS_PREFER_PTHREAD_FLAG ON) + find_package(Threads REQUIRED) + if(CMAKE_USE_PTHREADS_INIT) + set(THREADS_LIBS "${CMAKE_THREAD_LIBS_INIT}") + else() + message(SEND_ERROR "ZSTD currently does not support thread libraries other than pthreads") + endif() +endif () + +#----------------------------------------------------------------------------- +# Add source directories +#----------------------------------------------------------------------------- +add_subdirectory(lib) + +option(ZSTD_PROGRAMS_LINK_SHARED "PROGRAMS LINK SHARED" OFF) + +if (ZSTD_BUILD_PROGRAMS) + if (NOT ZSTD_BUILD_STATIC AND NOT ZSTD_PROGRAMS_LINK_SHARED) + message(SEND_ERROR "You need to build static library to build zstd CLI") + elseif(NOT ZSTD_BUILD_SHARED AND ZSTD_PROGRAMS_LINK_SHARED) + message(SEND_ERROR "You need to build shared library to build zstd CLI") + endif () + + add_subdirectory(programs) +endif () + +if (ZSTD_BUILD_TESTS) + enable_testing() + if (NOT ZSTD_BUILD_STATIC) + message(SEND_ERROR "You need to build static library to build tests") + endif () + + add_subdirectory(tests) +endif () + +if (ZSTD_BUILD_CONTRIB) + add_subdirectory(contrib) +endif () + +#----------------------------------------------------------------------------- +# Add clean-all target +#----------------------------------------------------------------------------- +add_custom_target(clean-all + COMMAND ${CMAKE_BUILD_TOOL} clean + COMMAND rm -rf ${CMAKE_BINARY_DIR}/ +) + +#----------------------------------------------------------------------------- +# Generate Package Config files +# +# This section is based on the boiler plate code from: +# https://cmake.org/cmake/help/latest/manual/cmake-packages.7.html#creating-packages +#----------------------------------------------------------------------------- +include(CMakePackageConfigHelpers) +write_basic_package_version_file( + "${CMAKE_CURRENT_BINARY_DIR}/zstdConfigVersion.cmake" + VERSION ${zstd_VERSION} + COMPATIBILITY SameMajorVersion + ) + +# A Package Config file that works from the build directory +export(EXPORT zstdExports + FILE "${CMAKE_CURRENT_BINARY_DIR}/zstdTargets.cmake" + NAMESPACE zstd:: + ) +configure_file(zstdConfig.cmake + "${CMAKE_CURRENT_BINARY_DIR}/zstdConfig.cmake" + COPYONLY + ) + +# A Package Config file that works from the installation directory +set(ConfigPackageLocation ${CMAKE_INSTALL_LIBDIR}/cmake/zstd) +install(EXPORT zstdExports + FILE zstdTargets.cmake + NAMESPACE zstd:: + DESTINATION ${ConfigPackageLocation} + ) +install(FILES + zstdConfig.cmake + "${CMAKE_CURRENT_BINARY_DIR}/zstdConfigVersion.cmake" + DESTINATION ${ConfigPackageLocation} + ) diff --git a/dependencies/zstd-1.5.0/build/cmake/CMakeModules/AddZstdCompilationFlags.cmake b/dependencies/zstd-1.5.0/build/cmake/CMakeModules/AddZstdCompilationFlags.cmake new file mode 100644 index 0000000..e23b9d6 --- /dev/null +++ b/dependencies/zstd-1.5.0/build/cmake/CMakeModules/AddZstdCompilationFlags.cmake @@ -0,0 +1,83 @@ +include(CheckCXXCompilerFlag) +include(CheckCCompilerFlag) + +function(EnableCompilerFlag _flag _C _CXX) + string(REGEX REPLACE "\\+" "PLUS" varname "${_flag}") + string(REGEX REPLACE "[^A-Za-z0-9]+" "_" varname "${varname}") + string(REGEX REPLACE "^_+" "" varname "${varname}") + string(TOUPPER "${varname}" varname) + if (_C) + CHECK_C_COMPILER_FLAG(${_flag} C_FLAG_${varname}) + if (C_FLAG_${varname}) + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${_flag}" PARENT_SCOPE) + endif () + endif () + if (_CXX) + CHECK_CXX_COMPILER_FLAG(${_flag} CXX_FLAG_${varname}) + if (CXX_FLAG_${varname}) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${_flag}" PARENT_SCOPE) + endif () + endif () +endfunction() + +macro(ADD_ZSTD_COMPILATION_FLAGS) + if (CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang" OR MINGW) #Not only UNIX but also WIN32 for MinGW + #Set c++11 by default + EnableCompilerFlag("-std=c++11" false true) + #Set c99 by default + EnableCompilerFlag("-std=c99" true false) + if (CMAKE_CXX_COMPILER_ID MATCHES "Clang" AND MSVC) + # clang-cl normally maps -Wall to -Weverything. + EnableCompilerFlag("/clang:-Wall" true true) + else () + EnableCompilerFlag("-Wall" true true) + endif () + EnableCompilerFlag("-Wextra" true true) + EnableCompilerFlag("-Wundef" true true) + EnableCompilerFlag("-Wshadow" true true) + EnableCompilerFlag("-Wcast-align" true true) + EnableCompilerFlag("-Wcast-qual" true true) + EnableCompilerFlag("-Wstrict-prototypes" true false) + # Enable asserts in Debug mode + if (CMAKE_BUILD_TYPE MATCHES "Debug") + EnableCompilerFlag("-DDEBUGLEVEL=1" true true) + endif () + elseif (MSVC) # Add specific compilation flags for Windows Visual + + set(ACTIVATE_MULTITHREADED_COMPILATION "ON" CACHE BOOL "activate multi-threaded compilation (/MP flag)") + if (CMAKE_GENERATOR MATCHES "Visual Studio" AND ACTIVATE_MULTITHREADED_COMPILATION) + EnableCompilerFlag("/MP" true true) + endif () + + # UNICODE SUPPORT + EnableCompilerFlag("/D_UNICODE" true true) + EnableCompilerFlag("/DUNICODE" true true) + # Enable asserts in Debug mode + if (CMAKE_BUILD_TYPE MATCHES "Debug") + EnableCompilerFlag("/DDEBUGLEVEL=1" true true) + endif () + endif () + + # Remove duplicates compilation flags + foreach (flag_var CMAKE_C_FLAGS CMAKE_C_FLAGS_DEBUG CMAKE_C_FLAGS_RELEASE + CMAKE_C_FLAGS_MINSIZEREL CMAKE_C_FLAGS_RELWITHDEBINFO + CMAKE_CXX_FLAGS CMAKE_CXX_FLAGS_DEBUG CMAKE_CXX_FLAGS_RELEASE + CMAKE_CXX_FLAGS_MINSIZEREL CMAKE_CXX_FLAGS_RELWITHDEBINFO) + if( ${flag_var} ) + separate_arguments(${flag_var}) + string(REPLACE ";" " " ${flag_var} "${${flag_var}}") + endif() + endforeach () + + if (MSVC AND ZSTD_USE_STATIC_RUNTIME) + foreach (flag_var CMAKE_C_FLAGS CMAKE_C_FLAGS_DEBUG CMAKE_C_FLAGS_RELEASE + CMAKE_C_FLAGS_MINSIZEREL CMAKE_C_FLAGS_RELWITHDEBINFO + CMAKE_CXX_FLAGS CMAKE_CXX_FLAGS_DEBUG CMAKE_CXX_FLAGS_RELEASE + CMAKE_CXX_FLAGS_MINSIZEREL CMAKE_CXX_FLAGS_RELWITHDEBINFO) + if ( ${flag_var} ) + string(REGEX REPLACE "/MD" "/MT" ${flag_var} "${${flag_var}}") + endif() + endforeach () + endif () + +endmacro() diff --git a/dependencies/zstd-1.5.0/build/cmake/CMakeModules/FindLibLZ4.cmake b/dependencies/zstd-1.5.0/build/cmake/CMakeModules/FindLibLZ4.cmake new file mode 100644 index 0000000..d0fac06 --- /dev/null +++ b/dependencies/zstd-1.5.0/build/cmake/CMakeModules/FindLibLZ4.cmake @@ -0,0 +1,49 @@ +# Find LibLZ4 +# +# Find LibLZ4 headers and library +# +# Result Variables +# +# LIBLZ4_FOUND - True if lz4 is found +# LIBLZ4_INCLUDE_DIRS - lz4 headers directories +# LIBLZ4_LIBRARIES - lz4 libraries +# LIBLZ4_VERSION_MAJOR - The major version of lz4 +# LIBLZ4_VERSION_MINOR - The minor version of lz4 +# LIBLZ4_VERSION_RELEASE - The release version of lz4 +# LIBLZ4_VERSION_STRING - version number string (e.g. 1.8.3) +# +# Hints +# +# Set ``LZ4_ROOT_DIR`` to the directory of lz4.h and lz4 library + +set(_LIBLZ4_ROOT_HINTS + ENV LZ4_ROOT_DIR) + +find_path( LIBLZ4_INCLUDE_DIR lz4.h + HINTS ${_LIBLZ4_ROOT_HINTS}) +find_library( LIBLZ4_LIBRARY NAMES lz4 liblz4 liblz4_static + HINTS ${_LIBLZ4_ROOT_HINTS}) + +if(LIBLZ4_INCLUDE_DIR) + file(STRINGS "${LIBLZ4_INCLUDE_DIR}/lz4.h" LIBLZ4_HEADER_CONTENT REGEX "#define LZ4_VERSION_[A-Z]+ +[0-9]+") + + string(REGEX REPLACE ".*#define LZ4_VERSION_MAJOR +([0-9]+).*" "\\1" LIBLZ4_VERSION_MAJOR "${LIBLZ4_HEADER_CONTENT}") + string(REGEX REPLACE ".*#define LZ4_VERSION_MINOR +([0-9]+).*" "\\1" LIBLZ4_VERSION_MINOR "${LIBLZ4_HEADER_CONTENT}") + string(REGEX REPLACE ".*#define LZ4_VERSION_RELEASE +([0-9]+).*" "\\1" LIBLZ4_VERSION_RELEASE "${LIBLZ4_HEADER_CONTENT}") + + set(LIBLZ4_VERSION_STRING "${LIBLZ4_VERSION_MAJOR}.${LIBLZ4_VERSION_MINOR}.${LIBLZ4_VERSION_RELEASE}") + unset(LIBLZ4_HEADER_CONTENT) +endif() + +include(FindPackageHandleStandardArgs) +FIND_PACKAGE_HANDLE_STANDARD_ARGS(LibLZ4 REQUIRED_VARS LIBLZ4_INCLUDE_DIR + LIBLZ4_LIBRARY + VERSION_VAR LIBLZ4_VERSION_STRING + FAIL_MESSAGE "Could NOT find LZ4, try to set the paths to lz4.h and lz4 library in environment variable LZ4_ROOT_DIR") + +if (LIBLZ4_FOUND) + set(LIBLZ4_LIBRARIES ${LIBLZ4_LIBRARY}) + set(LIBLZ4_INCLUDE_DIRS ${LIBLZ4_INCLUDE_DIR}) +endif () + +mark_as_advanced( LIBLZ4_INCLUDE_DIR LIBLZ4_LIBRARY ) diff --git a/dependencies/zstd-1.5.0/build/cmake/CMakeModules/GetZstdLibraryVersion.cmake b/dependencies/zstd-1.5.0/build/cmake/CMakeModules/GetZstdLibraryVersion.cmake new file mode 100644 index 0000000..e8ed606 --- /dev/null +++ b/dependencies/zstd-1.5.0/build/cmake/CMakeModules/GetZstdLibraryVersion.cmake @@ -0,0 +1,10 @@ +function(GetZstdLibraryVersion _header _major _minor _patch) + # Read file content + file(READ ${_header} CONTENT) + + string(REGEX MATCH ".*define ZSTD_VERSION_MAJOR *([0-9]+).*define ZSTD_VERSION_MINOR *([0-9]+).*define ZSTD_VERSION_RELEASE *([0-9]+)" VERSION_REGEX "${CONTENT}") + set(${_major} ${CMAKE_MATCH_1} PARENT_SCOPE) + set(${_minor} ${CMAKE_MATCH_2} PARENT_SCOPE) + set(${_patch} ${CMAKE_MATCH_3} PARENT_SCOPE) +endfunction() + diff --git a/dependencies/zstd-1.5.0/build/cmake/README.md b/dependencies/zstd-1.5.0/build/cmake/README.md new file mode 100644 index 0000000..73b30dc --- /dev/null +++ b/dependencies/zstd-1.5.0/build/cmake/README.md @@ -0,0 +1,104 @@ +# Cmake contributions + +Contributions to the cmake build configurations are welcome. Please +use case sensitivity that matches modern (ie. cmake version 2.6 and above) +conventions of using lower-case for commands, and upper-case for +variables. + +## How to build + +As cmake doesn't support command like `cmake clean`, it's recommended to perform a "out of source build". +To do this, you can create a new directory and build in it: +```sh +cd build/cmake +mkdir builddir +cd builddir +cmake .. +make +``` +Then you can clean all cmake caches by simply delete the new directory: +```sh +rm -rf build/cmake/builddir +``` + +And of course, you can directly build in build/cmake: +```sh +cd build/cmake +cmake +make +``` + +To show cmake build options, you can: +```sh +cd build/cmake/builddir +cmake -LH .. +``` + +Bool options can be set to `ON/OFF` with `-D[option]=[ON/OFF]`. You can configure cmake options like this: +```sh +cd build/cmake/builddir +cmake -DZSTD_BUILD_TESTS=ON -DZSTD_LEGACY_SUPPORT=ON .. +make +``` + +### referring +[Looking for a 'cmake clean' command to clear up CMake output](https://stackoverflow.com/questions/9680420/looking-for-a-cmake-clean-command-to-clear-up-cmake-output) + +## CMake Style Recommendations + +### Indent all code correctly, i.e. the body of + + * if/else/endif + * foreach/endforeach + * while/endwhile + * macro/endmacro + * function/endfunction + +Use spaces for indenting, 2, 3 or 4 spaces preferably. Use the same amount of +spaces for indenting as is used in the rest of the file. Do not use tabs. + +### Upper/lower casing + +Most important: use consistent upper- or lowercasing within one file ! + +In general, the all-lowercase style is preferred. + +So, this is recommended: + +``` +add_executable(foo foo.c) +``` + +These forms are discouraged + +``` +ADD_EXECUTABLE(bar bar.c) +Add_Executable(hello hello.c) +aDd_ExEcUtAbLe(blub blub.c) +``` + +### End commands +To make the code easier to read, use empty commands for endforeach(), endif(), +endfunction(), endmacro() and endwhile(). Also, use empty else() commands. + +For example, do this: + +``` +if(FOOVAR) + some_command(...) +else() + another_command(...) +endif() +``` + +and not this: + +``` +if(BARVAR) + some_other_command(...) +endif(BARVAR) +``` + +### Other resources for best practices + +https://cmake.org/cmake/help/latest/manual/cmake-developer.7.html#modules diff --git a/dependencies/zstd-1.5.0/build/cmake/contrib/CMakeLists.txt b/dependencies/zstd-1.5.0/build/cmake/contrib/CMakeLists.txt new file mode 100644 index 0000000..f7631d0 --- /dev/null +++ b/dependencies/zstd-1.5.0/build/cmake/contrib/CMakeLists.txt @@ -0,0 +1,13 @@ +# ################################################################ +# Copyright (c) 2016-present, Yann Collet, Facebook, Inc. +# All rights reserved. +# +# This source code is licensed under both the BSD-style license (found in the +# LICENSE file in the root directory of this source tree) and the GPLv2 (found +# in the COPYING file in the root directory of this source tree). +# ################################################################ + +project(contrib) + +add_subdirectory(pzstd) +add_subdirectory(gen_html) diff --git a/dependencies/zstd-1.5.0/build/cmake/contrib/gen_html/CMakeLists.txt b/dependencies/zstd-1.5.0/build/cmake/contrib/gen_html/CMakeLists.txt new file mode 100644 index 0000000..8fdd611 --- /dev/null +++ b/dependencies/zstd-1.5.0/build/cmake/contrib/gen_html/CMakeLists.txt @@ -0,0 +1,30 @@ +# ################################################################ +# Copyright (c) 2015-present, Yann Collet, Facebook, Inc. +# All rights reserved. +# +# This source code is licensed under both the BSD-style license (found in the +# LICENSE file in the root directory of this source tree) and the GPLv2 (found +# in the COPYING file in the root directory of this source tree). +# ################################################################ + +project(gen_html) +include(GetZstdLibraryVersion) + +set(CMAKE_INCLUDE_CURRENT_DIR TRUE) + +# Define programs directory, where sources and header files are located +set(LIBRARY_DIR ${ZSTD_SOURCE_DIR}/lib) +set(PROGRAMS_DIR ${ZSTD_SOURCE_DIR}/programs) +set(GENHTML_DIR ${ZSTD_SOURCE_DIR}/contrib/gen_html) +set(GENHTML_BINARY ${PROJECT_BINARY_DIR}/gen_html${CMAKE_EXECUTABLE_SUFFIX}) +include_directories(${PROGRAMS_DIR} ${LIBRARY_DIR} ${LIBRARY_DIR}/common ${GENHTML_DIR}) + +add_executable(gen_html ${GENHTML_DIR}/gen_html.cpp) + +GetZstdLibraryVersion(${LIBRARY_DIR}/zstd.h VMAJOR VMINOR VRELEASE) +set(LIBVERSION "${VMAJOR}.${VMINOR}.${VRELEASE}") +add_custom_target(zstd_manual.html ALL + ${GENHTML_BINARY} "${LIBVERSION}" "${LIBRARY_DIR}/zstd.h" "${PROJECT_BINARY_DIR}/zstd_manual.html" + DEPENDS gen_html COMMENT "Update zstd manual") + +install(FILES "${PROJECT_BINARY_DIR}/zstd_manual.html" DESTINATION "${CMAKE_INSTALL_DOCDIR}") diff --git a/dependencies/zstd-1.5.0/build/cmake/contrib/pzstd/CMakeLists.txt b/dependencies/zstd-1.5.0/build/cmake/contrib/pzstd/CMakeLists.txt new file mode 100644 index 0000000..5c30a91 --- /dev/null +++ b/dependencies/zstd-1.5.0/build/cmake/contrib/pzstd/CMakeLists.txt @@ -0,0 +1,32 @@ +# ################################################################ +# Copyright (c) 2016-present, Facebook, Inc. +# All rights reserved. +# +# This source code is licensed under both the BSD-style license (found in the +# LICENSE file in the root directory of this source tree) and the GPLv2 (found +# in the COPYING file in the root directory of this source tree). +# ################################################################ + +project(pzstd) + +set(CMAKE_INCLUDE_CURRENT_DIR TRUE) + +# Define programs directory, where sources and header files are located +set(LIBRARY_DIR ${ZSTD_SOURCE_DIR}/lib) +set(PROGRAMS_DIR ${ZSTD_SOURCE_DIR}/programs) +set(PZSTD_DIR ${ZSTD_SOURCE_DIR}/contrib/pzstd) +include_directories(${PROGRAMS_DIR} ${LIBRARY_DIR} ${LIBRARY_DIR}/common ${PZSTD_DIR}) + +add_executable(pzstd ${PROGRAMS_DIR}/util.c ${PZSTD_DIR}/main.cpp ${PZSTD_DIR}/Options.cpp ${PZSTD_DIR}/Pzstd.cpp ${PZSTD_DIR}/SkippableFrame.cpp) +set_property(TARGET pzstd APPEND PROPERTY COMPILE_DEFINITIONS "NDEBUG") +set_property(TARGET pzstd APPEND PROPERTY COMPILE_OPTIONS "-Wno-shadow") + +set(THREADS_PREFER_PTHREAD_FLAG ON) +find_package(Threads REQUIRED) +if (CMAKE_USE_PTHREADS_INIT) + target_link_libraries(pzstd libzstd_shared ${CMAKE_THREAD_LIBS_INIT}) +else() + message(SEND_ERROR "ZSTD currently does not support thread libraries other than pthreads") +endif() + +install(TARGETS pzstd RUNTIME DESTINATION "bin") diff --git a/dependencies/zstd-1.5.0/build/cmake/lib/.gitignore b/dependencies/zstd-1.5.0/build/cmake/lib/.gitignore new file mode 100644 index 0000000..a4444c8 --- /dev/null +++ b/dependencies/zstd-1.5.0/build/cmake/lib/.gitignore @@ -0,0 +1,2 @@ +# cmake build artefact +libzstd.pc diff --git a/dependencies/zstd-1.5.0/build/cmake/lib/CMakeLists.txt b/dependencies/zstd-1.5.0/build/cmake/lib/CMakeLists.txt new file mode 100644 index 0000000..5f75665 --- /dev/null +++ b/dependencies/zstd-1.5.0/build/cmake/lib/CMakeLists.txt @@ -0,0 +1,182 @@ +# ################################################################ +# Copyright (c) 2015-present, Yann Collet, Facebook, Inc. +# All rights reserved. +# +# This source code is licensed under both the BSD-style license (found in the +# LICENSE file in the root directory of this source tree) and the GPLv2 (found +# in the COPYING file in the root directory of this source tree). +# ################################################################ + +project(libzstd C) + +set(CMAKE_INCLUDE_CURRENT_DIR TRUE) +option(ZSTD_BUILD_STATIC "BUILD STATIC LIBRARIES" ON) +option(ZSTD_BUILD_SHARED "BUILD SHARED LIBRARIES" ON) + +if(NOT ZSTD_BUILD_SHARED AND NOT ZSTD_BUILD_STATIC) + message(SEND_ERROR "You need to build at least one flavor of libzstd") +endif() + +# Define library directory, where sources and header files are located +include_directories(${LIBRARY_DIR} ${LIBRARY_DIR}/common) + +file(GLOB CommonSources ${LIBRARY_DIR}/common/*.c) +file(GLOB CompressSources ${LIBRARY_DIR}/compress/*.c) +file(GLOB DecompressSources ${LIBRARY_DIR}/decompress/*.c) +file(GLOB DictBuilderSources ${LIBRARY_DIR}/dictBuilder/*.c) + +set(Sources + ${CommonSources} + ${CompressSources} + ${DecompressSources} + ${DictBuilderSources}) + +file(GLOB CommonHeaders ${LIBRARY_DIR}/common/*.h) +file(GLOB CompressHeaders ${LIBRARY_DIR}/compress/*.h) +file(GLOB DecompressHeaders ${LIBRARY_DIR}/decompress/*.h) +file(GLOB DictBuilderHeaders ${LIBRARY_DIR}/dictBuilder/*.h) + +set(Headers + ${LIBRARY_DIR}/zstd.h + ${CommonHeaders} + ${CompressHeaders} + ${DecompressHeaders} + ${DictBuilderHeaders}) + +if (ZSTD_LEGACY_SUPPORT) + set(LIBRARY_LEGACY_DIR ${LIBRARY_DIR}/legacy) + include_directories(${LIBRARY_LEGACY_DIR}) + + set(Sources ${Sources} + ${LIBRARY_LEGACY_DIR}/zstd_v01.c + ${LIBRARY_LEGACY_DIR}/zstd_v02.c + ${LIBRARY_LEGACY_DIR}/zstd_v03.c + ${LIBRARY_LEGACY_DIR}/zstd_v04.c + ${LIBRARY_LEGACY_DIR}/zstd_v05.c + ${LIBRARY_LEGACY_DIR}/zstd_v06.c + ${LIBRARY_LEGACY_DIR}/zstd_v07.c) + + set(Headers ${Headers} + ${LIBRARY_LEGACY_DIR}/zstd_legacy.h + ${LIBRARY_LEGACY_DIR}/zstd_v01.h + ${LIBRARY_LEGACY_DIR}/zstd_v02.h + ${LIBRARY_LEGACY_DIR}/zstd_v03.h + ${LIBRARY_LEGACY_DIR}/zstd_v04.h + ${LIBRARY_LEGACY_DIR}/zstd_v05.h + ${LIBRARY_LEGACY_DIR}/zstd_v06.h + ${LIBRARY_LEGACY_DIR}/zstd_v07.h) +endif () + +if (MSVC) + set(MSVC_RESOURCE_DIR ${ZSTD_SOURCE_DIR}/build/VS2010/libzstd-dll) + set(PlatformDependResources ${MSVC_RESOURCE_DIR}/libzstd-dll.rc) +endif () + +# Split project to static and shared libraries build +set(library_targets) +if (ZSTD_BUILD_SHARED) + add_library(libzstd_shared SHARED ${Sources} ${Headers} ${PlatformDependResources}) + list(APPEND library_targets libzstd_shared) + if (ZSTD_MULTITHREAD_SUPPORT) + set_property(TARGET libzstd_shared APPEND PROPERTY COMPILE_DEFINITIONS "ZSTD_MULTITHREAD") + if (UNIX) + target_link_libraries(libzstd_shared ${THREADS_LIBS}) + endif () + endif() +endif () +if (ZSTD_BUILD_STATIC) + add_library(libzstd_static STATIC ${Sources} ${Headers}) + list(APPEND library_targets libzstd_static) + if (ZSTD_MULTITHREAD_SUPPORT) + set_property(TARGET libzstd_static APPEND PROPERTY COMPILE_DEFINITIONS "ZSTD_MULTITHREAD") + if (UNIX) + target_link_libraries(libzstd_static ${THREADS_LIBS}) + endif () + endif () +endif () + +# Add specific compile definitions for MSVC project +if (MSVC) + if (ZSTD_BUILD_SHARED) + set_property(TARGET libzstd_shared APPEND PROPERTY COMPILE_DEFINITIONS "ZSTD_DLL_EXPORT=1;ZSTD_HEAPMODE=0;_CONSOLE;_CRT_SECURE_NO_WARNINGS") + endif () + if (ZSTD_BUILD_STATIC) + set_property(TARGET libzstd_static APPEND PROPERTY COMPILE_DEFINITIONS "ZSTD_HEAPMODE=0;_CRT_SECURE_NO_WARNINGS") + endif () +endif () + +# With MSVC static library needs to be renamed to avoid conflict with import library +if (MSVC) + set(STATIC_LIBRARY_BASE_NAME zstd_static) +else () + set(STATIC_LIBRARY_BASE_NAME zstd) +endif () + +# Define static and shared library names +if (ZSTD_BUILD_SHARED) + set_target_properties( + libzstd_shared + PROPERTIES + OUTPUT_NAME zstd + VERSION ${zstd_VERSION_MAJOR}.${zstd_VERSION_MINOR}.${zstd_VERSION_PATCH} + SOVERSION ${zstd_VERSION_MAJOR}) +endif () + +if (ZSTD_BUILD_STATIC) + set_target_properties( + libzstd_static + PROPERTIES + POSITION_INDEPENDENT_CODE On + OUTPUT_NAME ${STATIC_LIBRARY_BASE_NAME}) +endif () + +if (UNIX OR MINGW) + # pkg-config + set(PREFIX "${CMAKE_INSTALL_PREFIX}") + set(EXEC_PREFIX "\${prefix}") + set(LIBDIR "${CMAKE_INSTALL_FULL_LIBDIR}") + set(INCLUDEDIR "${CMAKE_INSTALL_FULL_INCLUDEDIR}") + set(VERSION "${zstd_VERSION}") + + string(LENGTH "${PREFIX}" PREFIX_LENGTH) + string(SUBSTRING "${LIBDIR}" 0 ${PREFIX_LENGTH} LIBDIR_PREFIX) + string(SUBSTRING "${LIBDIR}" ${PREFIX_LENGTH} -1 LIBDIR_SUFFIX) + string(SUBSTRING "${INCLUDEDIR}" 0 ${PREFIX_LENGTH} INCLUDEDIR_PREFIX) + string(SUBSTRING "${INCLUDEDIR}" ${PREFIX_LENGTH} -1 INCLUDEDIR_SUFFIX) + + if ("${INCLUDEDIR_PREFIX}" STREQUAL "${PREFIX}") + set(INCLUDEDIR "\${prefix}${INCLUDEDIR_SUFFIX}") + endif() + if ("${LIBDIR_PREFIX}" STREQUAL "${PREFIX}") + set(LIBDIR "\${exec_prefix}${LIBDIR_SUFFIX}") + endif() + + configure_file("${LIBRARY_DIR}/libzstd.pc.in" "${CMAKE_CURRENT_BINARY_DIR}/libzstd.pc" @ONLY) + install(FILES "${CMAKE_CURRENT_BINARY_DIR}/libzstd.pc" DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig") +endif () + +# install target +install(FILES + "${LIBRARY_DIR}/zstd.h" + "${LIBRARY_DIR}/zdict.h" + "${LIBRARY_DIR}/zstd_errors.h" + DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}") + +install(TARGETS ${library_targets} + EXPORT zstdExports + INCLUDES DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}" + ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" + LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" + RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" + ) + +# uninstall target +if (NOT TARGET uninstall) + configure_file( + "${CMAKE_CURRENT_SOURCE_DIR}/cmake_uninstall.cmake.in" + "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake" + IMMEDIATE @ONLY) + + add_custom_target(uninstall + COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake) +endif () diff --git a/dependencies/zstd-1.5.0/build/cmake/lib/cmake_uninstall.cmake.in b/dependencies/zstd-1.5.0/build/cmake/lib/cmake_uninstall.cmake.in new file mode 100644 index 0000000..9f1d045 --- /dev/null +++ b/dependencies/zstd-1.5.0/build/cmake/lib/cmake_uninstall.cmake.in @@ -0,0 +1,22 @@ + +if(NOT EXISTS "@CMAKE_BINARY_DIR@/install_manifest.txt") + message(FATAL_ERROR "Cannot find install manifest: @CMAKE_BINARY_DIR@/install_manifest.txt") +endif() + +file(READ "@CMAKE_BINARY_DIR@/install_manifest.txt" files) +string(REGEX REPLACE "\n" ";" files "${files}") +foreach(file ${files}) + message(STATUS "Uninstalling $ENV{DESTDIR}${file}") + if(IS_SYMLINK "$ENV{DESTDIR}${file}" OR EXISTS "$ENV{DESTDIR}${file}") + exec_program( + "@CMAKE_COMMAND@" ARGS "-E remove \"$ENV{DESTDIR}${file}\"" + OUTPUT_VARIABLE rm_out + RETURN_VALUE rm_retval + ) + if(NOT "${rm_retval}" STREQUAL 0) + message(FATAL_ERROR "Problem when removing $ENV{DESTDIR}${file}") + endif() + else() + message(STATUS "File $ENV{DESTDIR}${file} does not exist.") + endif() +endforeach() diff --git a/dependencies/zstd-1.5.0/build/cmake/programs/.gitignore b/dependencies/zstd-1.5.0/build/cmake/programs/.gitignore new file mode 100644 index 0000000..ae3a8a3 --- /dev/null +++ b/dependencies/zstd-1.5.0/build/cmake/programs/.gitignore @@ -0,0 +1,5 @@ +# produced by make +zstd +zstd-frugal +unzstd +zstdcat diff --git a/dependencies/zstd-1.5.0/build/cmake/programs/CMakeLists.txt b/dependencies/zstd-1.5.0/build/cmake/programs/CMakeLists.txt new file mode 100644 index 0000000..f1d1277 --- /dev/null +++ b/dependencies/zstd-1.5.0/build/cmake/programs/CMakeLists.txt @@ -0,0 +1,135 @@ +# ################################################################ +# Copyright (c) 2015-present, Yann Collet, Facebook, Inc. +# All rights reserved. +# +# This source code is licensed under both the BSD-style license (found in the +# LICENSE file in the root directory of this source tree) and the GPLv2 (found +# in the COPYING file in the root directory of this source tree). +# ################################################################ + +project(programs C) + +set(CMAKE_INCLUDE_CURRENT_DIR TRUE) + +# Define programs directory, where sources and header files are located +set(LIBRARY_DIR ${ZSTD_SOURCE_DIR}/lib) +set(PROGRAMS_DIR ${ZSTD_SOURCE_DIR}/programs) +include_directories(${PROGRAMS_DIR} ${LIBRARY_DIR} ${LIBRARY_DIR}/common ${LIBRARY_DIR}/compress ${LIBRARY_DIR}/dictBuilder) + +if (ZSTD_LEGACY_SUPPORT) + set(PROGRAMS_LEGACY_DIR ${PROGRAMS_DIR}/legacy) + include_directories(${PROGRAMS_LEGACY_DIR} ${LIBRARY_DIR}/legacy) +endif () + +if (ZSTD_PROGRAMS_LINK_SHARED) + set(PROGRAMS_ZSTD_LINK_TARGET libzstd_shared) +else () + set(PROGRAMS_ZSTD_LINK_TARGET libzstd_static) +endif () + +if (MSVC) + set(MSVC_RESOURCE_DIR ${ZSTD_SOURCE_DIR}/build/VS2010/zstd) + set(PlatformDependResources ${MSVC_RESOURCE_DIR}/zstd.rc) +endif () + +add_executable(zstd ${PROGRAMS_DIR}/zstdcli.c ${PROGRAMS_DIR}/util.c ${PROGRAMS_DIR}/timefn.c ${PROGRAMS_DIR}/fileio.c ${PROGRAMS_DIR}/benchfn.c ${PROGRAMS_DIR}/benchzstd.c ${PROGRAMS_DIR}/datagen.c ${PROGRAMS_DIR}/dibio.c ${PROGRAMS_DIR}/zstdcli_trace.c ${PlatformDependResources}) +target_link_libraries(zstd ${PROGRAMS_ZSTD_LINK_TARGET}) +if (CMAKE_SYSTEM_NAME MATCHES "(Solaris|SunOS)") + target_link_libraries(zstd rt) +endif () +install(TARGETS zstd RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}") + +if (UNIX) + add_custom_target(zstdcat ALL ${CMAKE_COMMAND} -E create_symlink zstd zstdcat DEPENDS zstd COMMENT "Creating zstdcat symlink") + add_custom_target(unzstd ALL ${CMAKE_COMMAND} -E create_symlink zstd unzstd DEPENDS zstd COMMENT "Creating unzstd symlink") + install(FILES ${CMAKE_CURRENT_BINARY_DIR}/zstdcat DESTINATION "${CMAKE_INSTALL_BINDIR}") + install(FILES ${CMAKE_CURRENT_BINARY_DIR}/unzstd DESTINATION "${CMAKE_INSTALL_BINDIR}") + install(PROGRAMS ${PROGRAMS_DIR}/zstdgrep DESTINATION "${CMAKE_INSTALL_BINDIR}") + install(PROGRAMS ${PROGRAMS_DIR}/zstdless DESTINATION "${CMAKE_INSTALL_BINDIR}") + + add_custom_target(zstd.1 ALL + ${CMAKE_COMMAND} -E copy ${PROGRAMS_DIR}/zstd.1 . + COMMENT "Copying manpage zstd.1") + add_custom_target(zstdgrep.1 ALL + ${CMAKE_COMMAND} -E copy ${PROGRAMS_DIR}/zstdgrep.1 . + COMMENT "Copying manpage zstdgrep.1") + add_custom_target(zstdless.1 ALL + ${CMAKE_COMMAND} -E copy ${PROGRAMS_DIR}/zstdless.1 . + COMMENT "Copying manpage zstdless.1") + add_custom_target(zstdcat.1 ALL ${CMAKE_COMMAND} -E create_symlink zstd.1 zstdcat.1 DEPENDS zstd.1 COMMENT "Creating zstdcat.1 symlink") + add_custom_target(unzstd.1 ALL ${CMAKE_COMMAND} -E create_symlink zstd.1 unzstd.1 DEPENDS zstd.1 COMMENT "Creating unzstd.1 symlink") + + # Define MAN_INSTALL_DIR if necessary + if (MAN_INSTALL_DIR) + else () + set(MAN_INSTALL_DIR ${CMAKE_INSTALL_MANDIR}/man1) + endif () + + install(FILES + ${CMAKE_CURRENT_BINARY_DIR}/zstd.1 + ${CMAKE_CURRENT_BINARY_DIR}/zstdcat.1 + ${CMAKE_CURRENT_BINARY_DIR}/unzstd.1 + ${CMAKE_CURRENT_BINARY_DIR}/zstdgrep.1 + ${CMAKE_CURRENT_BINARY_DIR}/zstdless.1 + DESTINATION "${MAN_INSTALL_DIR}") + + add_executable(zstd-frugal ${PROGRAMS_DIR}/zstdcli.c ${PROGRAMS_DIR}/util.c ${PROGRAMS_DIR}/timefn.c ${PROGRAMS_DIR}/fileio.c) + target_link_libraries(zstd-frugal ${PROGRAMS_ZSTD_LINK_TARGET}) + set_property(TARGET zstd-frugal APPEND PROPERTY COMPILE_DEFINITIONS "ZSTD_NOBENCH;ZSTD_NODICT;ZSTD_NOTRACE") +endif () + +# Add multi-threading support definitions + +if (ZSTD_MULTITHREAD_SUPPORT) + set_property(TARGET zstd APPEND PROPERTY COMPILE_DEFINITIONS "ZSTD_MULTITHREAD") + + if (UNIX) + target_link_libraries(zstd ${THREADS_LIBS}) + + add_custom_target(zstdmt ALL ${CMAKE_COMMAND} -E create_symlink zstd zstdmt DEPENDS zstd COMMENT "Creating zstdmt symlink") + install(FILES ${CMAKE_CURRENT_BINARY_DIR}/zstdmt DESTINATION "${CMAKE_INSTALL_BINDIR}") + endif () +endif () + +option(ZSTD_ZLIB_SUPPORT "ZLIB SUPPORT" OFF) +option(ZSTD_LZMA_SUPPORT "LZMA SUPPORT" OFF) +option(ZSTD_LZ4_SUPPORT "LZ4 SUPPORT" OFF) + +# Add gzip support +if (ZSTD_ZLIB_SUPPORT) + find_package(ZLIB REQUIRED) + + if (ZLIB_FOUND) + include_directories(${ZLIB_INCLUDE_DIRS}) + target_link_libraries(zstd ${ZLIB_LIBRARIES}) + set_property(TARGET zstd APPEND PROPERTY COMPILE_DEFINITIONS "ZSTD_GZCOMPRESS;ZSTD_GZDECOMPRESS") + else () + message(SEND_ERROR "zlib library is missing") + endif () +endif () + +# Add lzma support +if (ZSTD_LZMA_SUPPORT) + find_package(LibLZMA REQUIRED) + + if (LIBLZMA_FOUND) + include_directories(${LIBLZMA_INCLUDE_DIRS}) + target_link_libraries(zstd ${LIBLZMA_LIBRARIES}) + set_property(TARGET zstd APPEND PROPERTY COMPILE_DEFINITIONS "ZSTD_LZMACOMPRESS;ZSTD_LZMADECOMPRESS") + else () + message(SEND_ERROR "lzma library is missing") + endif () +endif () + +# Add lz4 support +if (ZSTD_LZ4_SUPPORT) + find_package(LibLZ4 REQUIRED) + + if (LIBLZ4_FOUND) + include_directories(${LIBLZ4_INCLUDE_DIRS}) + target_link_libraries(zstd ${LIBLZ4_LIBRARIES}) + set_property(TARGET zstd APPEND PROPERTY COMPILE_DEFINITIONS "ZSTD_LZ4COMPRESS;ZSTD_LZ4DECOMPRESS") + else () + message(SEND_ERROR "lz4 library is missing") + endif () +endif () diff --git a/dependencies/zstd-1.5.0/build/cmake/tests/.gitignore b/dependencies/zstd-1.5.0/build/cmake/tests/.gitignore new file mode 100644 index 0000000..ca2947f --- /dev/null +++ b/dependencies/zstd-1.5.0/build/cmake/tests/.gitignore @@ -0,0 +1,6 @@ +# produced by make +datagen +fullbench +fuzzer +paramgrill + diff --git a/dependencies/zstd-1.5.0/build/cmake/tests/CMakeLists.txt b/dependencies/zstd-1.5.0/build/cmake/tests/CMakeLists.txt new file mode 100644 index 0000000..8bba6ea --- /dev/null +++ b/dependencies/zstd-1.5.0/build/cmake/tests/CMakeLists.txt @@ -0,0 +1,111 @@ +# ################################################################ +# zstd - Makefile +# Copyright (C) Yann Collet 2014-present +# All rights reserved. +# +# BSD license +# +# Redistribution and use in source and binary forms, with or without modification, +# are permitted provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this +# list of conditions and the following disclaimer. +# +# * Redistributions in binary form must reproduce the above copyright notice, this +# list of conditions and the following disclaimer in the documentation and/or +# other materials provided with the distribution. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR +# ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# +# You can contact the author at : +# - zstd homepage : http://www.zstd.net/ +# ################################################################ + +project(tests) + +# name: Cache variable name. The value is expected to be a semicolon-separated +# list of command line flags +# default_value: Value to initialize the option with. Can be space separated. +function(AddTestFlagsOption name default_value doc) + string(STRIP "${default_value}" default_value) + string(REGEX REPLACE " +" ";" default_value "${default_value}") + set(${name} ${default_value} CACHE STRING "${doc}") + mark_as_advanced(${name}) +endfunction() + +set(CMAKE_INCLUDE_CURRENT_DIR TRUE) + +# Define programs directory, where sources and header files are located +set(LIBRARY_DIR ${ZSTD_SOURCE_DIR}/lib) +set(PROGRAMS_DIR ${ZSTD_SOURCE_DIR}/programs) +set(TESTS_DIR ${ZSTD_SOURCE_DIR}/tests) +include_directories(${TESTS_DIR} ${PROGRAMS_DIR} ${LIBRARY_DIR} ${LIBRARY_DIR}/common ${LIBRARY_DIR}/compress ${LIBRARY_DIR}/dictBuilder) + +add_executable(datagen ${PROGRAMS_DIR}/datagen.c ${TESTS_DIR}/datagencli.c) +target_link_libraries(datagen libzstd_static) + +# +# fullbench +# +add_executable(fullbench ${PROGRAMS_DIR}/datagen.c ${PROGRAMS_DIR}/util.c ${PROGRAMS_DIR}/timefn.c ${PROGRAMS_DIR}/benchfn.c ${PROGRAMS_DIR}/benchzstd.c ${TESTS_DIR}/fullbench.c) +set_property(TARGET fullbench APPEND PROPERTY COMPILE_OPTIONS "-Wno-deprecated-declarations") +target_link_libraries(fullbench libzstd_static) +add_test(NAME fullbench COMMAND fullbench ${ZSTD_FULLBENCH_FLAGS}) + +# +# fuzzer +# +add_executable(fuzzer ${PROGRAMS_DIR}/datagen.c ${PROGRAMS_DIR}/util.c ${PROGRAMS_DIR}/timefn.c ${TESTS_DIR}/fuzzer.c) +set_property(TARGET fuzzer APPEND PROPERTY COMPILE_OPTIONS "-Wno-deprecated-declarations") +target_link_libraries(fuzzer libzstd_static) +AddTestFlagsOption(ZSTD_FUZZER_FLAGS "$ENV{FUZZERTEST} $ENV{FUZZER_FLAGS}" + "Semicolon-separated list of flags to pass to the fuzzer test (see `fuzzer -h` for usage)") +add_test(NAME fuzzer COMMAND fuzzer ${ZSTD_FUZZER_FLAGS}) +# Disable the timeout since the run time is too long for the default timeout of +# 1500 seconds and varies considerably between low-end and high-end CPUs. +# set_tests_properties(fuzzer PROPERTIES TIMEOUT 0) + +# +# zstreamtest +# +add_executable(zstreamtest ${PROGRAMS_DIR}/datagen.c ${PROGRAMS_DIR}/util.c ${PROGRAMS_DIR}/timefn.c ${TESTS_DIR}/seqgen.c ${TESTS_DIR}/zstreamtest.c) +set_property(TARGET zstreamtest APPEND PROPERTY COMPILE_OPTIONS "-Wno-deprecated-declarations") +target_link_libraries(zstreamtest libzstd_static) +AddTestFlagsOption(ZSTD_ZSTREAM_FLAGS "$ENV{ZSTREAM_TESTTIME} $ENV{FUZZER_FLAGS}" + "Semicolon-separated list of flags to pass to the zstreamtest test (see `zstreamtest -h` for usage)") +add_test(NAME zstreamtest COMMAND zstreamtest ${ZSTD_ZSTREAM_FLAGS}) + +# +# playTests.sh +# +AddTestFlagsOption(ZSTD_PLAYTESTS_FLAGS "$ENV{PLAYTESTS_FLAGS}" + "Semicolon-separated list of flags to pass to the playTests.sh test") +add_test(NAME playTests COMMAND sh -c "\"${TESTS_DIR}/playTests.sh\" ${ZSTD_PLAYTESTS_FLAGS}") +if (ZSTD_BUILD_PROGRAMS) + set_property(TEST playTests APPEND PROPERTY ENVIRONMENT + "ZSTD_BIN=$" + "DATAGEN_BIN=$" + ) +else() + message(STATUS "Disabling playTests.sh test because ZSTD_BUILD_PROGRAMS is not enabled") + set_tests_properties(playTests PROPERTIES DISABLED YES) +endif() + +# Label the "Medium" set of tests (see TESTING.md) +set_property(TEST fuzzer zstreamtest playTests APPEND PROPERTY LABELS Medium) + +add_executable(paramgrill ${PROGRAMS_DIR}/benchfn.c ${PROGRAMS_DIR}/benchzstd.c ${PROGRAMS_DIR}/datagen.c ${PROGRAMS_DIR}/util.c ${PROGRAMS_DIR}/timefn.c ${TESTS_DIR}/paramgrill.c) +if (UNIX) + target_link_libraries(paramgrill libzstd_static m) #m is math library +else() + target_link_libraries(paramgrill libzstd_static) +endif () diff --git a/dependencies/zstd-1.5.0/build/cmake/zstdConfig.cmake b/dependencies/zstd-1.5.0/build/cmake/zstdConfig.cmake new file mode 100644 index 0000000..ebbfcc3 --- /dev/null +++ b/dependencies/zstd-1.5.0/build/cmake/zstdConfig.cmake @@ -0,0 +1 @@ +include("${CMAKE_CURRENT_LIST_DIR}/zstdTargets.cmake") diff --git a/dependencies/zstd-1.5.0/build/meson/GetZstdLibraryVersion.py b/dependencies/zstd-1.5.0/build/meson/GetZstdLibraryVersion.py new file mode 100644 index 0000000..461af5f --- /dev/null +++ b/dependencies/zstd-1.5.0/build/meson/GetZstdLibraryVersion.py @@ -0,0 +1,39 @@ +#!/usr/bin/env python3 +# ############################################################################# +# Copyright (c) 2018-present lzutao +# All rights reserved. +# +# This source code is licensed under both the BSD-style license (found in the +# LICENSE file in the root directory of this source tree) and the GPLv2 (found +# in the COPYING file in the root directory of this source tree). +# ############################################################################# +import re + + +def find_version_tuple(filepath): + version_file_data = None + with open(filepath) as fd: + version_file_data = fd.read() + + patterns = r"""#\s*define\s+ZSTD_VERSION_MAJOR\s+([0-9]+) +#\s*define\s+ZSTD_VERSION_MINOR\s+([0-9]+) +#\s*define\s+ZSTD_VERSION_RELEASE\s+([0-9]+) +""" + regex = re.compile(patterns, re.MULTILINE) + version_match = regex.search(version_file_data) + if version_match: + return version_match.groups() + raise Exception("Unable to find version string") + + +def main(): + import argparse + parser = argparse.ArgumentParser(description='Print zstd version from lib/zstd.h') + parser.add_argument('file', help='path to lib/zstd.h') + args = parser.parse_args() + version_tuple = find_version_tuple(args.file) + print('.'.join(version_tuple)) + + +if __name__ == '__main__': + main() diff --git a/dependencies/zstd-1.5.0/build/meson/InstallSymlink.py b/dependencies/zstd-1.5.0/build/meson/InstallSymlink.py new file mode 100644 index 0000000..3f2998c --- /dev/null +++ b/dependencies/zstd-1.5.0/build/meson/InstallSymlink.py @@ -0,0 +1,55 @@ +#!/usr/bin/env python3 +# ############################################################################# +# Copyright (c) 2018-present lzutao +# All rights reserved. +# +# This source code is licensed under both the BSD-style license (found in the +# LICENSE file in the root directory of this source tree) and the GPLv2 (found +# in the COPYING file in the root directory of this source tree). +# ############################################################################# +# This file should be synced with https://github.com/lzutao/meson-symlink + +import os +import pathlib # since Python 3.4 + + +def install_symlink(src, dst, install_dir, dst_is_dir=False, dir_mode=0o777): + if not install_dir.exists(): + install_dir.mkdir(mode=dir_mode, parents=True, exist_ok=True) + if not install_dir.is_dir(): + raise NotADirectoryError(install_dir) + + new_dst = install_dir.joinpath(dst) + if new_dst.is_symlink() and os.readlink(new_dst) == src: + print('File exists: {!r} -> {!r}'.format(new_dst, src)) + return + print('Installing symlink {!r} -> {!r}'.format(new_dst, src)) + new_dst.symlink_to(src, target_is_directory=dst_is_dir) + + +def main(): + import argparse + parser = argparse.ArgumentParser(description='Install a symlink', + usage='{0} [-h] [-d] [-m MODE] source dest install_dir\n\n' + 'example:\n' + ' {0} dash sh /bin'.format(pathlib.Path(__file__).name)) + parser.add_argument('source', help='target to link') + parser.add_argument('dest', help='link name') + parser.add_argument('install_dir', help='installation directory') + parser.add_argument('-d', '--isdir', + action='store_true', + help='dest is a directory') + parser.add_argument('-m', '--mode', + help='directory mode on creating if not exist', + default='0o755') + args = parser.parse_args() + + dir_mode = int(args.mode, 8) + + meson_destdir = os.environ.get('MESON_INSTALL_DESTDIR_PREFIX', default='') + install_dir = pathlib.Path(meson_destdir, args.install_dir) + install_symlink(args.source, args.dest, install_dir, args.isdir, dir_mode) + + +if __name__ == '__main__': + main() diff --git a/dependencies/zstd-1.5.0/build/meson/README.md b/dependencies/zstd-1.5.0/build/meson/README.md new file mode 100644 index 0000000..d393a06 --- /dev/null +++ b/dependencies/zstd-1.5.0/build/meson/README.md @@ -0,0 +1,38 @@ +Meson build system for zstandard +================================ + +Meson is a build system designed to optimize programmer productivity. +It aims to do this by providing simple, out-of-the-box support for +modern software development tools and practices, such as unit tests, +coverage reports, Valgrind, CCache and the like. + +This Meson build system is provided with no guarantee and maintained +by Dima Krasner \. + +It outputs one `libzstd`, either shared or static, depending on +`default_library` option. + +## How to build + +`cd` to this meson directory (`build/meson`) + +```sh +meson setup -Dbin_programs=true -Dbin_contrib=true builddir +cd builddir +ninja # to build +ninja install # to install +``` + +You might want to install it in staging directory: + +```sh +DESTDIR=./staging ninja install +``` + +To configure build options, use: + +```sh +meson configure +``` + +See [man meson(1)](https://manpages.debian.org/testing/meson/meson.1.en.html). diff --git a/dependencies/zstd-1.5.0/build/meson/contrib/gen_html/meson.build b/dependencies/zstd-1.5.0/build/meson/contrib/gen_html/meson.build new file mode 100644 index 0000000..3f30253 --- /dev/null +++ b/dependencies/zstd-1.5.0/build/meson/contrib/gen_html/meson.build @@ -0,0 +1,30 @@ +# ############################################################################# +# Copyright (c) 2018-present lzutao +# All rights reserved. +# +# This source code is licensed under both the BSD-style license (found in the +# LICENSE file in the root directory of this source tree) and the GPLv2 (found +# in the COPYING file in the root directory of this source tree). +# ############################################################################# + +zstd_rootdir = '../../../..' + +gen_html_includes = include_directories(join_paths(zstd_rootdir, 'programs'), + join_paths(zstd_rootdir, 'lib'), + join_paths(zstd_rootdir, 'lib/common'), + join_paths(zstd_rootdir, 'contrib/gen_html')) + +gen_html = executable('gen_html', + join_paths(zstd_rootdir, 'contrib/gen_html/gen_html.cpp'), + include_directories: gen_html_includes, + native: true, + install: false) + +# Update zstd manual +zstd_manual_html = custom_target('zstd_manual.html', + output : 'zstd_manual.html', + command : [gen_html, + zstd_version, + join_paths(meson.current_source_dir(), zstd_rootdir, 'lib/zstd.h'), + '@OUTPUT@'], + install : false) diff --git a/dependencies/zstd-1.5.0/build/meson/contrib/meson.build b/dependencies/zstd-1.5.0/build/meson/contrib/meson.build new file mode 100644 index 0000000..7f6d03a --- /dev/null +++ b/dependencies/zstd-1.5.0/build/meson/contrib/meson.build @@ -0,0 +1,12 @@ +# ############################################################################# +# Copyright (c) 2018-present Dima Krasner +# lzutao +# All rights reserved. +# +# This source code is licensed under both the BSD-style license (found in the +# LICENSE file in the root directory of this source tree) and the GPLv2 (found +# in the COPYING file in the root directory of this source tree). +# ############################################################################# + +subdir('pzstd') +subdir('gen_html') diff --git a/dependencies/zstd-1.5.0/build/meson/contrib/pzstd/meson.build b/dependencies/zstd-1.5.0/build/meson/contrib/pzstd/meson.build new file mode 100644 index 0000000..dcf2136 --- /dev/null +++ b/dependencies/zstd-1.5.0/build/meson/contrib/pzstd/meson.build @@ -0,0 +1,24 @@ +# ############################################################################# +# Copyright (c) 2018-present lzutao +# All rights reserved. +# +# This source code is licensed under both the BSD-style license (found in the +# LICENSE file in the root directory of this source tree) and the GPLv2 (found +# in the COPYING file in the root directory of this source tree). +# ############################################################################# + +zstd_rootdir = '../../../..' + +pzstd_includes = include_directories(join_paths(zstd_rootdir, 'programs'), + join_paths(zstd_rootdir, 'contrib/pzstd')) +pzstd_sources = [join_paths(zstd_rootdir, 'programs/util.c'), + join_paths(zstd_rootdir, 'contrib/pzstd/main.cpp'), + join_paths(zstd_rootdir, 'contrib/pzstd/Options.cpp'), + join_paths(zstd_rootdir, 'contrib/pzstd/Pzstd.cpp'), + join_paths(zstd_rootdir, 'contrib/pzstd/SkippableFrame.cpp')] +pzstd = executable('pzstd', + pzstd_sources, + cpp_args: [ '-DNDEBUG', '-Wno-shadow', '-pedantic', '-Wno-deprecated-declarations' ], + include_directories: pzstd_includes, + dependencies: [ libzstd_dep, thread_dep ], + install: true) diff --git a/dependencies/zstd-1.5.0/build/meson/lib/meson.build b/dependencies/zstd-1.5.0/build/meson/lib/meson.build new file mode 100644 index 0000000..5cc9fee --- /dev/null +++ b/dependencies/zstd-1.5.0/build/meson/lib/meson.build @@ -0,0 +1,127 @@ +# ############################################################################# +# Copyright (c) 2018-present Dima Krasner +# lzutao +# All rights reserved. +# +# This source code is licensed under both the BSD-style license (found in the +# LICENSE file in the root directory of this source tree) and the GPLv2 (found +# in the COPYING file in the root directory of this source tree). +# ############################################################################# + +zstd_rootdir = '../../..' + +libzstd_includes = [include_directories(join_paths(zstd_rootdir,'lib'), + join_paths(zstd_rootdir, 'lib/common'), + join_paths(zstd_rootdir, 'lib/compress'), + join_paths(zstd_rootdir, 'lib/decompress'), + join_paths(zstd_rootdir, 'lib/dictBuilder'))] + +libzstd_sources = [join_paths(zstd_rootdir, 'lib/common/entropy_common.c'), + join_paths(zstd_rootdir, 'lib/common/fse_decompress.c'), + join_paths(zstd_rootdir, 'lib/common/threading.c'), + join_paths(zstd_rootdir, 'lib/common/pool.c'), + join_paths(zstd_rootdir, 'lib/common/zstd_common.c'), + join_paths(zstd_rootdir, 'lib/common/error_private.c'), + join_paths(zstd_rootdir, 'lib/common/xxhash.c'), + join_paths(zstd_rootdir, 'lib/compress/hist.c'), + join_paths(zstd_rootdir, 'lib/compress/fse_compress.c'), + join_paths(zstd_rootdir, 'lib/compress/huf_compress.c'), + join_paths(zstd_rootdir, 'lib/compress/zstd_compress.c'), + join_paths(zstd_rootdir, 'lib/compress/zstd_compress_literals.c'), + join_paths(zstd_rootdir, 'lib/compress/zstd_compress_sequences.c'), + join_paths(zstd_rootdir, 'lib/compress/zstd_compress_superblock.c'), + join_paths(zstd_rootdir, 'lib/compress/zstdmt_compress.c'), + join_paths(zstd_rootdir, 'lib/compress/zstd_fast.c'), + join_paths(zstd_rootdir, 'lib/compress/zstd_double_fast.c'), + join_paths(zstd_rootdir, 'lib/compress/zstd_lazy.c'), + join_paths(zstd_rootdir, 'lib/compress/zstd_opt.c'), + join_paths(zstd_rootdir, 'lib/compress/zstd_ldm.c'), + join_paths(zstd_rootdir, 'lib/decompress/huf_decompress.c'), + join_paths(zstd_rootdir, 'lib/decompress/zstd_decompress.c'), + join_paths(zstd_rootdir, 'lib/decompress/zstd_decompress_block.c'), + join_paths(zstd_rootdir, 'lib/decompress/zstd_ddict.c'), + join_paths(zstd_rootdir, 'lib/dictBuilder/cover.c'), + join_paths(zstd_rootdir, 'lib/dictBuilder/fastcover.c'), + join_paths(zstd_rootdir, 'lib/dictBuilder/divsufsort.c'), + join_paths(zstd_rootdir, 'lib/dictBuilder/zdict.c')] + +# Explicit define legacy support +add_project_arguments('-DZSTD_LEGACY_SUPPORT=@0@'.format(legacy_level), + language: 'c') + +if legacy_level == 0 + message('Legacy support: DISABLED') +else + # See ZSTD_LEGACY_SUPPORT of lib/README.md + message('Enable legacy support back to version 0.@0@'.format(legacy_level)) + + libzstd_includes += [ include_directories(join_paths(zstd_rootdir, 'lib/legacy')) ] + foreach i : [1, 2, 3, 4, 5, 6, 7] + if legacy_level <= i + libzstd_sources += join_paths(zstd_rootdir, 'lib/legacy/zstd_v0@0@.c'.format(i)) + endif + endforeach +endif + +libzstd_deps = [] +if use_multi_thread + message('Enable multi-threading support') + add_project_arguments('-DZSTD_MULTITHREAD', language: 'c') + libzstd_deps = [ thread_dep ] +endif + +libzstd_c_args = [] +if cc_id == compiler_msvc + if default_library_type != 'static' + libzstd_sources += [windows_mod.compile_resources( + join_paths(zstd_rootdir, 'build/VS2010/libzstd-dll/libzstd-dll.rc'))] + libzstd_c_args += ['-DZSTD_DLL_EXPORT=1', + '-DZSTD_HEAPMODE=0', + '-D_CONSOLE', + '-D_CRT_SECURE_NO_WARNINGS'] + else + libzstd_c_args += ['-DZSTD_HEAPMODE=0', + '-D_CRT_SECURE_NO_WARNINGS'] + endif +endif + +mingw_ansi_stdio_flags = [] +if host_machine_os == os_windows and cc_id == compiler_gcc + mingw_ansi_stdio_flags = [ '-D__USE_MINGW_ANSI_STDIO' ] +endif +libzstd_c_args += mingw_ansi_stdio_flags + +libzstd_debug_cflags = [] +if use_debug + libzstd_c_args += '-DDEBUGLEVEL=@0@'.format(debug_level) + if cc_id == compiler_gcc or cc_id == compiler_clang + libzstd_debug_cflags = ['-Wstrict-aliasing=1', '-Wswitch-enum', + '-Wdeclaration-after-statement', '-Wstrict-prototypes', + '-Wundef', '-Wpointer-arith', '-Wvla', + '-Wformat=2', '-Winit-self', '-Wfloat-equal', '-Wwrite-strings', + '-Wredundant-decls', '-Wmissing-prototypes', '-Wc++-compat'] + endif +endif +libzstd_c_args += cc.get_supported_arguments(libzstd_debug_cflags) + +libzstd = library('zstd', + libzstd_sources, + include_directories: libzstd_includes, + c_args: libzstd_c_args, + dependencies: libzstd_deps, + install: true, + version: zstd_libversion) + +libzstd_dep = declare_dependency(link_with: libzstd, + include_directories: libzstd_includes) + +pkgconfig.generate(libzstd, + name: 'libzstd', + filebase: 'libzstd', + description: 'fast lossless compression algorithm library', + version: zstd_libversion, + url: 'http://www.zstd.net/') + +install_headers(join_paths(zstd_rootdir, 'lib/zstd.h'), + join_paths(zstd_rootdir, 'lib/zdict.h'), + join_paths(zstd_rootdir, 'lib/zstd_errors.h')) diff --git a/dependencies/zstd-1.5.0/build/meson/meson.build b/dependencies/zstd-1.5.0/build/meson/meson.build new file mode 100644 index 0000000..2a425b2 --- /dev/null +++ b/dependencies/zstd-1.5.0/build/meson/meson.build @@ -0,0 +1,146 @@ +# ############################################################################# +# Copyright (c) 2018-present Dima Krasner +# lzutao +# All rights reserved. +# +# This source code is licensed under both the BSD-style license (found in the +# LICENSE file in the root directory of this source tree) and the GPLv2 (found +# in the COPYING file in the root directory of this source tree). +# ############################################################################# + +project('zstd', + ['c', 'cpp'], + license: ['BSD', 'GPLv2'], + default_options : [ + 'c_std=gnu99', + 'cpp_std=c++11', + 'buildtype=release' + ], + version: 'DUMMY', + meson_version: '>=0.47.0') + +cc = meson.get_compiler('c') +cxx = meson.get_compiler('cpp') +pkgconfig = import('pkgconfig') +windows_mod = import('windows') + +host_machine_os = host_machine.system() +os_windows = 'windows' +os_linux = 'linux' +os_darwin = 'darwin' +os_freebsd = 'freebsd' +os_sun = 'sunos' + +cc_id = cc.get_id() +compiler_gcc = 'gcc' +compiler_clang = 'clang' +compiler_msvc = 'msvc' + +zstd_version = meson.project_version() + +zstd_h_file = join_paths(meson.current_source_dir(), '../../lib/zstd.h') +GetZstdLibraryVersion_py = find_program('GetZstdLibraryVersion.py', native : true) +r = run_command(GetZstdLibraryVersion_py, zstd_h_file) +if r.returncode() == 0 + zstd_version = r.stdout().strip() + message('Project version is now: @0@'.format(zstd_version)) +else + error('Cannot find project version in @0@'.format(zstd_h_file)) +endif + +zstd_libversion = zstd_version + +# ============================================================================= +# Installation directories +# ============================================================================= + +zstd_prefix = get_option('prefix') +zstd_bindir = get_option('bindir') +zstd_datadir = get_option('datadir') +zstd_mandir = get_option('mandir') +zstd_docdir = join_paths(zstd_datadir, 'doc', meson.project_name()) + +# ============================================================================= +# Project options +# ============================================================================= + +# Built-in options +use_debug = get_option('debug') +buildtype = get_option('buildtype') +default_library_type = get_option('default_library') + +# Custom options +debug_level = get_option('debug_level') +legacy_level = get_option('legacy_level') +use_backtrace = get_option('backtrace') +use_static_runtime = get_option('static_runtime') + +bin_programs = get_option('bin_programs') +bin_contrib = get_option('bin_contrib') +bin_tests = get_option('bin_tests') + +feature_multi_thread = get_option('multi_thread') +feature_zlib = get_option('zlib') +feature_lzma = get_option('lzma') +feature_lz4 = get_option('lz4') + +# ============================================================================= +# Dependencies +# ============================================================================= + +libm_dep = cc.find_library('m', required: bin_tests) +thread_dep = dependency('threads', required: feature_multi_thread) +use_multi_thread = thread_dep.found() +# Arguments in dependency should be equivalent to those passed to pkg-config +zlib_dep = dependency('zlib', required: feature_zlib) +use_zlib = zlib_dep.found() +lzma_dep = dependency('liblzma', required: feature_lzma) +use_lzma = lzma_dep.found() +lz4_dep = dependency('liblz4', required: feature_lz4) +use_lz4 = lz4_dep.found() + +# ============================================================================= +# Compiler flags +# ============================================================================= + +add_project_arguments('-DXXH_NAMESPACE=ZSTD_', language: ['c']) + +if [compiler_gcc, compiler_clang].contains(cc_id) + common_warning_flags = [ '-Wextra', '-Wundef', '-Wshadow', '-Wcast-align', '-Wcast-qual' ] + if cc_id == compiler_clang + # Should use Meson's own --werror build option + #common_warning_flags += '-Werror' + common_warning_flags += ['-Wconversion', '-Wno-sign-conversion', '-Wdocumentation'] + endif + cc_compile_flags = cc.get_supported_arguments(common_warning_flags + ['-Wstrict-prototypes']) + cxx_compile_flags = cxx.get_supported_arguments(common_warning_flags) + add_project_arguments(cc_compile_flags, language : 'c') + add_project_arguments(cxx_compile_flags, language : 'cpp') +elif cc_id == compiler_msvc + msvc_compile_flags = [ '/D_UNICODE', '/DUNICODE' ] + if use_multi_thread + msvc_compile_flags += '/MP' + endif + if use_static_runtime + msvc_compile_flags += '/MT' + endif + add_project_arguments(msvc_compile_flags, language: ['c', 'cpp']) +endif + +# ============================================================================= +# Subdirs +# ============================================================================= + +subdir('lib') + +if bin_programs + subdir('programs') +endif + +if bin_tests + subdir('tests') +endif + +if bin_contrib + subdir('contrib') +endif diff --git a/dependencies/zstd-1.5.0/build/meson/meson_options.txt b/dependencies/zstd-1.5.0/build/meson/meson_options.txt new file mode 100644 index 0000000..90a81c5 --- /dev/null +++ b/dependencies/zstd-1.5.0/build/meson/meson_options.txt @@ -0,0 +1,36 @@ +# ############################################################################# +# Copyright (c) 2018-present Dima Krasner +# lzutao +# All rights reserved. +# +# This source code is licensed under both the BSD-style license (found in the +# LICENSE file in the root directory of this source tree) and the GPLv2 (found +# in the COPYING file in the root directory of this source tree). +# ############################################################################# + +# Read guidelines from https://wiki.gnome.org/Initiatives/GnomeGoals/MesonPorting + +option('legacy_level', type: 'integer', min: 0, max: 7, value: '5', + description: 'Support any legacy format: 7 to 1 for v0.7+ to v0.1+') +option('debug_level', type: 'integer', min: 0, max: 9, value: 1, + description: 'Enable run-time debug. See lib/common/debug.h') +option('backtrace', type: 'boolean', value: false, + description: 'Display a stack backtrace when execution generates a runtime exception') +option('static_runtime', type: 'boolean', value: false, + description: 'Link to static run-time libraries on MSVC') + +option('bin_programs', type: 'boolean', value: true, + description: 'Enable programs build') +option('bin_tests', type: 'boolean', value: false, + description: 'Enable tests build') +option('bin_contrib', type: 'boolean', value: false, + description: 'Enable contrib build') + +option('multi_thread', type: 'feature', value: 'enabled', + description: 'Enable multi-threading when pthread is detected') +option('zlib', type: 'feature', value: 'auto', + description: 'Enable zlib support') +option('lzma', type: 'feature', value: 'auto', + description: 'Enable lzma support') +option('lz4', type: 'feature', value: 'auto', + description: 'Enable lz4 support') diff --git a/dependencies/zstd-1.5.0/build/meson/programs/meson.build b/dependencies/zstd-1.5.0/build/meson/programs/meson.build new file mode 100644 index 0000000..d255627 --- /dev/null +++ b/dependencies/zstd-1.5.0/build/meson/programs/meson.build @@ -0,0 +1,105 @@ +# ############################################################################# +# Copyright (c) 2018-present Dima Krasner +# lzutao +# All rights reserved. +# +# This source code is licensed under both the BSD-style license (found in the +# LICENSE file in the root directory of this source tree) and the GPLv2 (found +# in the COPYING file in the root directory of this source tree). +# ############################################################################# + +zstd_rootdir = '../../..' + +zstd_programs_sources = [join_paths(zstd_rootdir, 'programs/zstdcli.c'), + join_paths(zstd_rootdir, 'programs/util.c'), + join_paths(zstd_rootdir, 'programs/timefn.c'), + join_paths(zstd_rootdir, 'programs/fileio.c'), + join_paths(zstd_rootdir, 'programs/benchfn.c'), + join_paths(zstd_rootdir, 'programs/benchzstd.c'), + join_paths(zstd_rootdir, 'programs/datagen.c'), + join_paths(zstd_rootdir, 'programs/dibio.c'), + join_paths(zstd_rootdir, 'programs/zstdcli_trace.c')] + +zstd_c_args = libzstd_debug_cflags +if use_multi_thread + zstd_c_args += [ '-DZSTD_MULTITHREAD' ] +endif + +zstd_deps = [ libzstd_dep ] +if use_zlib + zstd_deps += [ zlib_dep ] + zstd_c_args += [ '-DZSTD_GZCOMPRESS', '-DZSTD_GZDECOMPRESS' ] +endif + +if use_lzma + zstd_deps += [ lzma_dep ] + zstd_c_args += [ '-DZSTD_LZMACOMPRESS', '-DZSTD_LZMADECOMPRESS' ] +endif + +if use_lz4 + zstd_deps += [ lz4_dep ] + zstd_c_args += [ '-DZSTD_LZ4COMPRESS', '-DZSTD_LZ4DECOMPRESS' ] +endif + +export_dynamic_on_windows = false +# explicit backtrace enable/disable for Linux & Darwin +if not use_backtrace + zstd_c_args += '-DBACKTRACE_ENABLE=0' +elif use_debug and host_machine_os == os_windows # MinGW target + zstd_c_args += '-DBACKTRACE_ENABLE=1' + export_dynamic_on_windows = true +endif + +if cc_id == compiler_msvc + if default_library_type != 'static' + zstd_programs_sources += [windows_mod.compile_resources( + join_paths(zstd_rootdir, 'build/VS2010/zstd/zstd.rc'))] + endif +endif + +zstd = executable('zstd', + zstd_programs_sources, + c_args: zstd_c_args, + dependencies: zstd_deps, + export_dynamic: export_dynamic_on_windows, # Since Meson 0.45.0 + install: true) + +zstd_frugal_sources = [join_paths(zstd_rootdir, 'programs/zstdcli.c'), + join_paths(zstd_rootdir, 'programs/timefn.c'), + join_paths(zstd_rootdir, 'programs/util.c'), + join_paths(zstd_rootdir, 'programs/fileio.c')] + +# Minimal target, with only zstd compression and decompression. +# No bench. No legacy. +executable('zstd-frugal', + zstd_frugal_sources, + dependencies: libzstd_dep, + c_args: [ '-DZSTD_NOBENCH', '-DZSTD_NODICT', '-DZSTD_NOTRACE' ], + install: true) + +install_data(join_paths(zstd_rootdir, 'programs/zstdgrep'), + join_paths(zstd_rootdir, 'programs/zstdless'), + install_dir: zstd_bindir) + +# ============================================================================= +# Programs and manpages installing +# ============================================================================= + +install_man(join_paths(zstd_rootdir, 'programs/zstd.1'), + join_paths(zstd_rootdir, 'programs/zstdgrep.1'), + join_paths(zstd_rootdir, 'programs/zstdless.1')) + +InstallSymlink_py = '../InstallSymlink.py' +zstd_man1_dir = join_paths(zstd_mandir, 'man1') +bin_EXT = host_machine_os == os_windows ? '.exe' : '' +man1_EXT = meson.version().version_compare('>=0.49.0') ? '.1' : '.1.gz' + +foreach f : ['zstdcat', 'unzstd'] + meson.add_install_script(InstallSymlink_py, 'zstd' + bin_EXT, f + bin_EXT, zstd_bindir) + meson.add_install_script(InstallSymlink_py, 'zstd' + man1_EXT, f + man1_EXT, zstd_man1_dir) +endforeach + +if use_multi_thread + meson.add_install_script(InstallSymlink_py, 'zstd' + bin_EXT, 'zstdmt' + bin_EXT, zstd_bindir) + meson.add_install_script(InstallSymlink_py, 'zstd' + man1_EXT, 'zstdmt' + man1_EXT, zstd_man1_dir) +endif diff --git a/dependencies/zstd-1.5.0/build/meson/tests/meson.build b/dependencies/zstd-1.5.0/build/meson/tests/meson.build new file mode 100644 index 0000000..1b23363 --- /dev/null +++ b/dependencies/zstd-1.5.0/build/meson/tests/meson.build @@ -0,0 +1,206 @@ +# ############################################################################# +# Copyright (c) 2018-present Dima Krasner +# lzutao +# All rights reserved. +# +# This source code is licensed under both the BSD-style license (found in the +# LICENSE file in the root directory of this source tree) and the GPLv2 (found +# in the COPYING file in the root directory of this source tree). +# ############################################################################# + +zstd_rootdir = '../../..' + +tests_supported_oses = [os_linux, 'gnu/kfreebsd', os_darwin, 'gnu', 'openbsd', + os_freebsd, 'netbsd', 'dragonfly', os_sun] + +# ============================================================================= +# Test flags +# ============================================================================= + +FUZZER_FLAGS = ['--no-big-tests'] +FUZZERTEST = '-T200s' +ZSTREAM_TESTTIME = '-T90s' +DECODECORPUS_TESTTIME = '-T30' +ZSTDRTTEST = ['--test-large-data'] + +# ============================================================================= +# Executables +# ============================================================================= + +test_includes = [ include_directories(join_paths(zstd_rootdir, 'programs')) ] + +datagen_sources = [join_paths(zstd_rootdir, 'programs/datagen.c'), + join_paths(zstd_rootdir, 'tests/datagencli.c')] +datagen = executable('datagen', + datagen_sources, + c_args: [ '-DNDEBUG' ], + include_directories: test_includes, + dependencies: libzstd_dep, + install: false) + +fullbench_sources = [join_paths(zstd_rootdir, 'programs/datagen.c'), + join_paths(zstd_rootdir, 'programs/util.c'), + join_paths(zstd_rootdir, 'programs/timefn.c'), + join_paths(zstd_rootdir, 'programs/benchfn.c'), + join_paths(zstd_rootdir, 'programs/benchzstd.c'), + join_paths(zstd_rootdir, 'tests/fullbench.c')] +fullbench = executable('fullbench', + fullbench_sources, + include_directories: test_includes, + dependencies: libzstd_dep, + install: false) + +fuzzer_sources = [join_paths(zstd_rootdir, 'programs/datagen.c'), + join_paths(zstd_rootdir, 'programs/util.c'), + join_paths(zstd_rootdir, 'programs/timefn.c'), + join_paths(zstd_rootdir, 'tests/fuzzer.c')] +fuzzer = executable('fuzzer', + fuzzer_sources, + include_directories: test_includes, + dependencies: [ libzstd_dep, thread_dep ], + install: false) + +zstreamtest_sources = [join_paths(zstd_rootdir, 'programs/datagen.c'), + join_paths(zstd_rootdir, 'programs/util.c'), + join_paths(zstd_rootdir, 'programs/timefn.c'), + join_paths(zstd_rootdir, 'tests/seqgen.c'), + join_paths(zstd_rootdir, 'tests/zstreamtest.c')] +zstreamtest = executable('zstreamtest', + zstreamtest_sources, + include_directories: test_includes, + dependencies: libzstd_dep, + install: false) + +paramgrill_sources = [join_paths(zstd_rootdir, 'programs/benchfn.c'), + join_paths(zstd_rootdir, 'programs/timefn.c'), + join_paths(zstd_rootdir, 'programs/benchzstd.c'), + join_paths(zstd_rootdir, 'programs/datagen.c'), + join_paths(zstd_rootdir, 'programs/util.c'), + join_paths(zstd_rootdir, 'tests/paramgrill.c')] +paramgrill = executable('paramgrill', + paramgrill_sources, + include_directories: test_includes, + dependencies: [ libzstd_dep, libm_dep ], + install: false) + +roundTripCrash_sources = [join_paths(zstd_rootdir, 'tests/roundTripCrash.c')] +roundTripCrash = executable('roundTripCrash', + roundTripCrash_sources, + dependencies: [ libzstd_dep ], + install: false) + +longmatch_sources = [join_paths(zstd_rootdir, 'tests/longmatch.c')] +longmatch = executable('longmatch', + longmatch_sources, + dependencies: [ libzstd_dep ], + install: false) + +invalidDictionaries_sources = [join_paths(zstd_rootdir, 'tests/invalidDictionaries.c')] +invalidDictionaries = executable('invalidDictionaries', + invalidDictionaries_sources, + dependencies: [ libzstd_dep ], + install: false) + +if 0 < legacy_level and legacy_level <= 4 + legacy_sources = [join_paths(zstd_rootdir, 'tests/legacy.c')] + legacy = executable('legacy', + legacy_sources, + # Use -Dlegacy_level build option to control it + #c_args: '-DZSTD_LEGACY_SUPPORT=4', + dependencies: [ libzstd_dep ], + install: false) +endif + +decodecorpus_sources = [join_paths(zstd_rootdir, 'programs/util.c'), + join_paths(zstd_rootdir, 'programs/timefn.c'), + join_paths(zstd_rootdir, 'tests/decodecorpus.c')] +decodecorpus = executable('decodecorpus', + decodecorpus_sources, + include_directories: test_includes, + dependencies: [ libzstd_dep, libm_dep ], + install: false) + +poolTests_sources = [join_paths(zstd_rootdir, 'programs/util.c'), + join_paths(zstd_rootdir, 'programs/timefn.c'), + join_paths(zstd_rootdir, 'tests/poolTests.c'), + join_paths(zstd_rootdir, 'lib/common/pool.c'), + join_paths(zstd_rootdir, 'lib/common/threading.c'), + join_paths(zstd_rootdir, 'lib/common/zstd_common.c'), + join_paths(zstd_rootdir, 'lib/common/error_private.c')] +poolTests = executable('poolTests', + poolTests_sources, + include_directories: test_includes, + dependencies: [ libzstd_dep, thread_dep ], + install: false) + +checkTag_sources = [join_paths(zstd_rootdir, 'tests/checkTag.c')] +checkTag = executable('checkTag', + checkTag_sources, + dependencies: [ libzstd_dep ], + install: false) + +# ============================================================================= +# Tests (Use "meson test --list" to list all tests) +# ============================================================================= + +if tests_supported_oses.contains(host_machine_os) + valgrind_prog = find_program('valgrind', ['/usr/bin/valgrind'], required: true) + valgrindTest_py = files('valgrindTest.py') + test('valgrindTest', + valgrindTest_py, + args: [valgrind_prog.path(), zstd, datagen, fuzzer, fullbench], + depends: [zstd, datagen, fuzzer, fullbench], + timeout: 600) # Timeout should work on HDD drive +endif + +if host_machine_os != os_windows + playTests_sh = find_program(join_paths(zstd_rootdir, 'tests/playTests.sh'), required: true) + test('test-zstd', + playTests_sh, + args: ZSTDRTTEST, + env: ['ZSTD_BIN=' + zstd.full_path(), 'DATAGEN_BIN=./datagen'], + depends: [datagen], + workdir: meson.current_build_dir(), + timeout: 2800) # Timeout should work on HDD drive +endif + +test('test-fullbench-1', + fullbench, + args: ['-i1'], + depends: [datagen], + timeout: 60) +test('test-fullbench-2', + fullbench, + args: ['-i1', '-P0'], + depends: [datagen], + timeout: 60) + +if use_zlib + test('test-fuzzer', + fuzzer, + args: ['-v', FUZZERTEST] + FUZZER_FLAGS, + timeout: 480) +endif + +test('test-zstream-1', + zstreamtest, + args: ['-v', ZSTREAM_TESTTIME] + FUZZER_FLAGS, + timeout: 240) +test('test-zstream-2', + zstreamtest, + args: ['-mt', '-t1', ZSTREAM_TESTTIME] + FUZZER_FLAGS, + timeout: 120) +test('test-zstream-3', + zstreamtest, + args: ['--newapi', '-t1', ZSTREAM_TESTTIME] + FUZZER_FLAGS, + timeout: 120) +test('test-longmatch', longmatch, timeout: 36) +test('test-invalidDictionaries', invalidDictionaries) # should be fast +if 0 < legacy_level and legacy_level <= 4 + test('test-legacy', legacy) # should be fast +endif +test('test-decodecorpus', + decodecorpus, + args: ['-t', DECODECORPUS_TESTTIME], + timeout: 60) +test('test-poolTests', poolTests) # should be fast diff --git a/dependencies/zstd-1.5.0/build/meson/tests/valgrindTest.py b/dependencies/zstd-1.5.0/build/meson/tests/valgrindTest.py new file mode 100644 index 0000000..218f745 --- /dev/null +++ b/dependencies/zstd-1.5.0/build/meson/tests/valgrindTest.py @@ -0,0 +1,90 @@ +#!/usr/bin/env python3 +# ############################################################################# +# Copyright (c) 2018-present lzutao +# All rights reserved. +# +# This source code is licensed under both the BSD-style license (found in the +# LICENSE file in the root directory of this source tree) and the GPLv2 (found +# in the COPYING file in the root directory of this source tree). +# ############################################################################# +import os +import subprocess +import tempfile + + +def valgrindTest(valgrind, datagen, fuzzer, zstd, fullbench): + VALGRIND_ARGS = [valgrind, '--leak-check=full', '--show-leak-kinds=all', '--error-exitcode=1'] + + print('\n ---- valgrind tests : memory analyzer ----') + + subprocess.check_call([*VALGRIND_ARGS, datagen, '-g50M'], stdout=subprocess.DEVNULL) + + if subprocess.call([*VALGRIND_ARGS, zstd], + stdout=subprocess.DEVNULL) == 0: + raise subprocess.CalledProcessError('zstd without argument should have failed') + + with subprocess.Popen([datagen, '-g80'], stdout=subprocess.PIPE) as p1, \ + subprocess.Popen([*VALGRIND_ARGS, zstd, '-', '-c'], + stdin=p1.stdout, + stdout=subprocess.DEVNULL) as p2: + p1.stdout.close() # Allow p1 to receive a SIGPIPE if p2 exits. + p2.communicate() + if p2.returncode != 0: + raise subprocess.CalledProcessError() + + with subprocess.Popen([datagen, '-g16KB'], stdout=subprocess.PIPE) as p1, \ + subprocess.Popen([*VALGRIND_ARGS, zstd, '-vf', '-', '-c'], + stdin=p1.stdout, + stdout=subprocess.DEVNULL) as p2: + p1.stdout.close() + p2.communicate() + if p2.returncode != 0: + raise subprocess.CalledProcessError() + + with tempfile.NamedTemporaryFile() as tmp_fd: + with subprocess.Popen([datagen, '-g2930KB'], stdout=subprocess.PIPE) as p1, \ + subprocess.Popen([*VALGRIND_ARGS, zstd, '-5', '-vf', '-', '-o', tmp_fd.name], + stdin=p1.stdout) as p2: + p1.stdout.close() + p2.communicate() + if p2.returncode != 0: + raise subprocess.CalledProcessError() + + subprocess.check_call([*VALGRIND_ARGS, zstd, '-vdf', tmp_fd.name, '-c'], + stdout=subprocess.DEVNULL) + + with subprocess.Popen([datagen, '-g64MB'], stdout=subprocess.PIPE) as p1, \ + subprocess.Popen([*VALGRIND_ARGS, zstd, '-vf', '-', '-c'], + stdin=p1.stdout, + stdout=subprocess.DEVNULL) as p2: + p1.stdout.close() + p2.communicate() + if p2.returncode != 0: + raise subprocess.CalledProcessError() + + subprocess.check_call([*VALGRIND_ARGS, fuzzer, '-T1mn', '-t1']) + subprocess.check_call([*VALGRIND_ARGS, fullbench, '-i1']) + + +def main(): + import argparse + parser = argparse.ArgumentParser(description='Valgrind tests : memory analyzer') + parser.add_argument('valgrind', help='valgrind path') + parser.add_argument('zstd', help='zstd path') + parser.add_argument('datagen', help='datagen path') + parser.add_argument('fuzzer', help='fuzzer path') + parser.add_argument('fullbench', help='fullbench path') + + args = parser.parse_args() + + valgrind = args.valgrind + zstd = args.zstd + datagen = args.datagen + fuzzer = args.fuzzer + fullbench = args.fullbench + + valgrindTest(valgrind, datagen, fuzzer, zstd, fullbench) + + +if __name__ == '__main__': + main() diff --git a/dependencies/zstd-1.5.0/build/single_file_libs/.gitignore b/dependencies/zstd-1.5.0/build/single_file_libs/.gitignore new file mode 100644 index 0000000..8c1bc71 --- /dev/null +++ b/dependencies/zstd-1.5.0/build/single_file_libs/.gitignore @@ -0,0 +1,9 @@ + +# build artifacts +zstddeclib.c +zstdenclib.c +zstd.c +zstd.h + +# test artifacts +temp* diff --git a/dependencies/zstd-1.5.0/build/single_file_libs/README.md b/dependencies/zstd-1.5.0/build/single_file_libs/README.md new file mode 100644 index 0000000..1705b76 --- /dev/null +++ b/dependencies/zstd-1.5.0/build/single_file_libs/README.md @@ -0,0 +1,33 @@ +# Single File Zstandard Libraries + +The script `combine.sh` creates an _amalgamated_ source file that can be used with or without `zstd.h`. This isn't a _header-only_ file but it does offer a similar level of simplicity when integrating into a project. + +All it now takes to support Zstd in your own projects is the addition of a single file, two if using the header, with no configuration or further build steps. + +Decompressor +------------ + +This is the most common use case. The decompression library is small, adding, for example, 26kB to an Emscripten compiled WebAssembly project. Native implementations add a little more, 40-70kB depending on the compiler and platform. + +Create `zstddeclib.c` from the Zstd source using: +``` +cd zstd/build/single_file_libs +./combine.sh -r ../../lib -o zstddeclib.c zstddeclib-in.c +``` +Then add the resulting file to your project (see the [example files](examples)). + +`create_single_file_decoder.sh` will run the above script, creating the file `zstddeclib.c` (`build_decoder_test.sh` will also create `zstddeclib.c`, then compile and test the result). + +Full Library +------------ + +The same tool can amalgamate the entire Zstd library for ease of adding both compression and decompression to a project. The [roundtrip example](examples/roundtrip.c) uses the original `zstd.h` with the remaining source files combined into `zstd.c` (currently just over 1.2MB) created from `zstd-in.c`. As with the standalone decoder the most useful compile flags have already been rolled-in and the resulting file can be added to a project as-is. + +Create `zstd.c` from the Zstd source using: +``` +cd zstd/build/single_file_libs +./combine.sh -r ../../lib -o zstd.c zstd-in.c +``` +It's possible to create a compressor-only library but since the decompressor is so small in comparison this doesn't bring much of a gain (but for the curious, simply remove the files in the _decompress_ section at the end of `zstd-in.c`). + +`create_single_file_library.sh` will run the script to create `zstd.c` (`build_library_test.sh` will also create `zstd.c`, then compile and test the result). diff --git a/dependencies/zstd-1.5.0/build/single_file_libs/build_decoder_test.sh b/dependencies/zstd-1.5.0/build/single_file_libs/build_decoder_test.sh new file mode 100755 index 0000000..48d017f --- /dev/null +++ b/dependencies/zstd-1.5.0/build/single_file_libs/build_decoder_test.sh @@ -0,0 +1,91 @@ +#!/bin/sh + +# Temporary compiled binary +OUT_FILE="tempbin" + +# Optional temporary compiled WebAssembly +OUT_WASM="temp.wasm" + +# Source files to compile using Emscripten. +IN_FILES="examples/emscripten.c" + +# Emscripten build using emcc. +emscripten_emcc_build() { + # Compile the the same example as above + CC_FLAGS="-Wall -Wextra -Wshadow -Werror -Os -g0 -flto" + emcc $CC_FLAGS -s WASM=1 -I. -o $OUT_WASM $IN_FILES + # Did compilation work? + if [ $? -ne 0 ]; then + echo "Compiling ${IN_FILES}: FAILED" + exit 1 + fi + echo "Compiling ${IN_FILES}: PASSED" + rm -f $OUT_WASM +} + +# Emscripten build using docker. +emscripten_docker_build() { + docker container run --rm \ + --volume $PWD:/code \ + --workdir /code \ + emscripten/emsdk:latest \ + emcc $CC_FLAGS -s WASM=1 -I. -o $OUT_WASM $IN_FILES + # Did compilation work? + if [ $? -ne 0 ]; then + echo "Compiling ${IN_FILES} (using docker): FAILED" + exit 1 + fi + echo "Compiling ${IN_FILES} (using docker): PASSED" + rm -f $OUT_WASM +} + +# Try Emscripten build using emcc or docker. +try_emscripten_build() { + which emcc > /dev/null + if [ $? -eq 0 ]; then + emscripten_emcc_build + return $? + fi + + which docker > /dev/null + if [ $? -eq 0 ]; then + emscripten_docker_build + return $? + fi + + echo "(Skipping Emscripten test)" +} + +# Amalgamate the sources +./create_single_file_decoder.sh +# Did combining work? +if [ $? -ne 0 ]; then + echo "Single file decoder creation script: FAILED" + exit 1 +fi +echo "Single file decoder creation script: PASSED" + +# Compile the generated output +cc -Wall -Wextra -Wshadow -Werror -Os -g0 -o $OUT_FILE examples/simple.c +# Did compilation work? +if [ $? -ne 0 ]; then + echo "Compiling simple.c: FAILED" + exit 1 +fi +echo "Compiling simple.c: PASSED" + +# Run then delete the compiled output +./$OUT_FILE +retVal=$? +rm -f $OUT_FILE +# Did the test work? +if [ $retVal -ne 0 ]; then + echo "Running simple.c: FAILED" + exit 1 +fi +echo "Running simple.c: PASSED" + +# Try Emscripten build if emcc or docker command is available. +try_emscripten_build + +exit 0 diff --git a/dependencies/zstd-1.5.0/build/single_file_libs/build_library_test.sh b/dependencies/zstd-1.5.0/build/single_file_libs/build_library_test.sh new file mode 100755 index 0000000..7fb9965 --- /dev/null +++ b/dependencies/zstd-1.5.0/build/single_file_libs/build_library_test.sh @@ -0,0 +1,97 @@ +#!/bin/sh + +# Where to find the sources (only used to copy zstd.h) +ZSTD_SRC_ROOT="../../lib" + +# Temporary compiled binary +OUT_FILE="tempbin" + +# Optional temporary compiled WebAssembly +OUT_WASM="temp.wasm" + +# Source files to compile using Emscripten. +IN_FILES="zstd.c examples/roundtrip.c" + +# Emscripten build using emcc. +emscripten_emcc_build() { + # Compile the the same example as above + CC_FLAGS="-Wall -Wextra -Wshadow -Werror -Os -g0 -flto" + emcc $CC_FLAGS -s WASM=1 -I. -o $OUT_WASM $IN_FILES + # Did compilation work? + if [ $? -ne 0 ]; then + echo "Compiling ${IN_FILES}: FAILED" + exit 1 + fi + echo "Compiling ${IN_FILES}: PASSED" + rm -f $OUT_WASM +} + +# Emscripten build using docker. +emscripten_docker_build() { + docker container run --rm \ + --volume $PWD:/code \ + --workdir /code \ + emscripten/emsdk:latest \ + emcc $CC_FLAGS -s WASM=1 -I. -o $OUT_WASM $IN_FILES + # Did compilation work? + if [ $? -ne 0 ]; then + echo "Compiling ${IN_FILES} (using docker): FAILED" + exit 1 + fi + echo "Compiling ${IN_FILES} (using docker): PASSED" + rm -f $OUT_WASM +} + +# Try Emscripten build using emcc or docker. +try_emscripten_build() { + which emcc > /dev/null + if [ $? -eq 0 ]; then + emscripten_emcc_build + return $? + fi + + which docker > /dev/null + if [ $? -eq 0 ]; then + emscripten_docker_build + return $? + fi + + echo "(Skipping Emscripten test)" +} + +# Amalgamate the sources +./create_single_file_library.sh +# Did combining work? +if [ $? -ne 0 ]; then + echo "Single file library creation script: FAILED" + exit 1 +fi +echo "Single file library creation script: PASSED" + +# Copy the header to here (for the tests) +cp "$ZSTD_SRC_ROOT/zstd.h" zstd.h + +# Compile the generated output +cc -Wall -Wextra -Werror -Wshadow -pthread -I. -Os -g0 -o $OUT_FILE zstd.c examples/roundtrip.c +# Did compilation work? +if [ $? -ne 0 ]; then + echo "Compiling roundtrip.c: FAILED" + exit 1 +fi +echo "Compiling roundtrip.c: PASSED" + +# Run then delete the compiled output +./$OUT_FILE +retVal=$? +rm -f $OUT_FILE +# Did the test work? +if [ $retVal -ne 0 ]; then + echo "Running roundtrip.c: FAILED" + exit 1 +fi +echo "Running roundtrip.c: PASSED" + +# Try Emscripten build if emcc or docker command is available. +try_emscripten_build + +exit 0 diff --git a/dependencies/zstd-1.5.0/build/single_file_libs/combine.sh b/dependencies/zstd-1.5.0/build/single_file_libs/combine.sh new file mode 100755 index 0000000..8eac4f9 --- /dev/null +++ b/dependencies/zstd-1.5.0/build/single_file_libs/combine.sh @@ -0,0 +1,211 @@ +#!/bin/sh -e + +# Tool to bundle multiple C/C++ source files, inlining any includes. +# +# Note: this POSIX-compliant script is many times slower than the original bash +# implementation (due to the grep calls) but it runs and works everywhere. +# +# TODO: ROOTS, FOUND, etc., as arrays (since they fail on paths with spaces) +# TODO: revert to Bash-only regex (the grep ones being too slow) +# +# Author: Carl Woffenden, Numfum GmbH (this script is released under a CC0 license/Public Domain) + +# Common file roots +ROOTS="." + +# -x option excluded includes +XINCS="" + +# -k option includes to keep as include directives +KINCS="" + +# Files previously visited +FOUND="" + +# Optional destination file (empty string to write to stdout) +DESTN="" + +# Whether the "#pragma once" directives should be written to the output +PONCE=0 + +# Prints the script usage then exits +usage() { + echo "Usage: $0 [-r ] [-x
    ] [-k
    ] [-o ] infile" + echo " -r file root search path" + echo " -x file to completely exclude from inlining" + echo " -k file to exclude from inlining but keep the include directive" + echo " -p keep any '#pragma once' directives (removed by default)" + echo " -o output file (otherwise stdout)" + echo "Example: $0 -r ../my/path - r ../other/path -o out.c in.c" + exit 1 +} + +# Tests that the grep implementation works as expected (older OSX grep fails) +test_deps() { + if ! echo '#include "foo"' | grep -Eq '^\s*#\s*include\s*".+"'; then + echo "Aborting: the grep implementation fails to parse include lines" + exit 1 + fi + if ! echo '"foo.h"' | sed -E 's/"([^"]+)"/\1/' | grep -Eq '^foo\.h$'; then + echo "Aborting: sed is unavailable or non-functional" + exit 1 + fi +} + +# Tests if list $1 has item $2 (returning zero on a match) +list_has_item() { + if echo "$1" | grep -Eq "(^|\s*)$2(\$|\s*)"; then + return 0 + else + return 1 + fi +} + +# Adds a new line with the supplied arguments to $DESTN (or stdout) +write_line() { + if [ -n "$DESTN" ]; then + printf '%s\n' "$@" >> "$DESTN" + else + printf '%s\n' "$@" + fi +} + +log_line() { + echo $@ >&2 +} + +# Find this file! +resolve_include() { + local srcdir=$1 + local inc=$2 + for root in $srcdir $ROOTS; do + if [ -f "$root/$inc" ]; then + # Try to reduce the file path into a canonical form (so that multiple) + # includes of the same file are successfully deduplicated, even if they + # are expressed differently. + local relpath="$(realpath --relative-to . "$root/$inc" 2>/dev/null)" + if [ "$relpath" != "" ]; then # not all realpaths support --relative-to + echo "$relpath" + return 0 + fi + local relpath="$(realpath "$root/$inc" 2>/dev/null)" + if [ "$relpath" != "" ]; then # not all distros have realpath... + echo "$relpath" + return 0 + fi + # Fallback on Python to reduce the path if the above fails. + local relpath=$(python -c "import os,sys; print os.path.relpath(sys.argv[1])" "$root/$inc" 2>/dev/null) + if [ "$relpath" != "" ]; then # not all distros have realpath... + echo "$relpath" + return 0 + fi + # Worst case, fall back to just the root + relative include path. The + # problem with this is that it is possible to emit multiple different + # resolved paths to the same file, depending on exactly how its included. + # Since the main loop below keeps a list of the resolved paths it's + # already included, in order to avoid repeated includes, this failure to + # produce a canonical/reduced path can lead to multiple inclusions of the + # same file. But it seems like the resulting single file library still + # works (hurray include guards!), so I guess it's ok. + echo "$root/$inc" + return 0 + fi + done + return 1 +} + +# Adds the contents of $1 with any of its includes inlined +add_file() { + local file=$1 + if [ -n "$file" ]; then + log_line "Processing: $file" + # Get directory of the current so we can resolve relative includes + local srcdir="$(dirname "$file")" + # Read the file + local line= + while IFS= read -r line; do + if echo "$line" | grep -Eq '^\s*#\s*include\s*".+"'; then + # We have an include directive so strip the (first) file + local inc=$(echo "$line" | grep -Eo '".*"' | sed -E 's/"([^"]+)"/\1/' | head -1) + local res_inc="$(resolve_include "$srcdir" "$inc")" + if list_has_item "$XINCS" "$inc"; then + # The file was excluded so error if the source attempts to use it + write_line "#error Using excluded file: $inc" + log_line "Excluding: $inc" + else + if ! list_has_item "$FOUND" "$res_inc"; then + # The file was not previously encountered + FOUND="$FOUND $res_inc" + if list_has_item "$KINCS" "$inc"; then + # But the include was flagged to keep as included + write_line "/**** *NOT* inlining $inc ****/" + write_line "$line" + log_line "Not Inlining: $inc" + else + # The file was neither excluded nor seen before so inline it + write_line "/**** start inlining $inc ****/" + add_file "$res_inc" + write_line "/**** ended inlining $inc ****/" + fi + else + write_line "/**** skipping file: $inc ****/" + fi + fi + else + # Skip any 'pragma once' directives, otherwise write the source line + local write=$PONCE + if [ $write -eq 0 ]; then + if echo "$line" | grep -Eqv '^\s*#\s*pragma\s*once\s*'; then + write=1 + fi + fi + if [ $write -ne 0 ]; then + write_line "$line" + fi + fi + done < "$file" + else + write_line "#error Unable to find \"$1\"" + log_line "Error: Unable to find: \"$1\"" + fi +} + +while getopts ":r:x:k:po:" opts; do + case $opts in + r) + ROOTS="$ROOTS $OPTARG" + ;; + x) + XINCS="$XINCS $OPTARG" + ;; + k) + KINCS="$KINCS $OPTARG" + ;; + p) + PONCE=1 + ;; + o) + DESTN="$OPTARG" + ;; + *) + usage + ;; + esac +done +shift $((OPTIND-1)) + +if [ -n "$1" ]; then + if [ -f "$1" ]; then + if [ -n "$DESTN" ]; then + printf "" > "$DESTN" + fi + test_deps + add_file "$1" + else + echo "Input file not found: \"$1\"" + exit 1 + fi +else + usage +fi +exit 0 diff --git a/dependencies/zstd-1.5.0/build/single_file_libs/create_single_file_decoder.sh b/dependencies/zstd-1.5.0/build/single_file_libs/create_single_file_decoder.sh new file mode 100755 index 0000000..b5f5613 --- /dev/null +++ b/dependencies/zstd-1.5.0/build/single_file_libs/create_single_file_decoder.sh @@ -0,0 +1,14 @@ +#!/bin/sh + +# Where to find the sources +ZSTD_SRC_ROOT="../../lib" + +# Amalgamate the sources +echo "Amalgamating files... this can take a while" +./combine.sh -r "$ZSTD_SRC_ROOT" -o zstddeclib.c zstddeclib-in.c +# Did combining work? +if [ $? -ne 0 ]; then + echo "Combine script: FAILED" + exit 1 +fi +echo "Combine script: PASSED" diff --git a/dependencies/zstd-1.5.0/build/single_file_libs/create_single_file_library.sh b/dependencies/zstd-1.5.0/build/single_file_libs/create_single_file_library.sh new file mode 100755 index 0000000..6f38526 --- /dev/null +++ b/dependencies/zstd-1.5.0/build/single_file_libs/create_single_file_library.sh @@ -0,0 +1,14 @@ +#!/bin/sh + +# Where to find the sources +ZSTD_SRC_ROOT="../../lib" + +# Amalgamate the sources +echo "Amalgamating files... this can take a while" +./combine.sh -r "$ZSTD_SRC_ROOT" -o zstd.c zstd-in.c +# Did combining work? +if [ $? -ne 0 ]; then + echo "Combine script: FAILED" + exit 1 +fi +echo "Combine script: PASSED" diff --git a/dependencies/zstd-1.5.0/build/single_file_libs/examples/README.md b/dependencies/zstd-1.5.0/build/single_file_libs/examples/README.md new file mode 100644 index 0000000..e93bee3 --- /dev/null +++ b/dependencies/zstd-1.5.0/build/single_file_libs/examples/README.md @@ -0,0 +1,11 @@ +# Single File ZStandard Examples + +The examples `#include` the generated `zstddeclib.c` directly but work equally as well when including `zstd.h` and compiling the amalgamated source separately. + +`simple.c` is the most basic example of decompressing content and verifying the result. + +`emscripten.c` is a bare-bones [Emscripten](https://github.com/emscripten-core/emscripten) compiled WebGL demo using Zstd to further compress a DXT1 texture (see the [original PNG image](testcard.png)). The 256x256 texture would normally be 32kB, but even when bundled with the Zstd decompressor the resulting WebAssembly weighs in at 41kB (`shell.html` is a support file to run the Wasm). + +`roundtrip.c` is an example to use with the optional [amalgamated library](../create_single_file_library.sh) showing compression the decompression. + +The example files in this directory are released under a [Creative Commons Zero license](https://creativecommons.org/publicdomain/zero/1.0/) (or Public Domain, whichever is applicable in your jurisdiction). diff --git a/dependencies/zstd-1.5.0/build/single_file_libs/examples/emscripten.c b/dependencies/zstd-1.5.0/build/single_file_libs/examples/emscripten.c new file mode 100644 index 0000000..10dae86 --- /dev/null +++ b/dependencies/zstd-1.5.0/build/single_file_libs/examples/emscripten.c @@ -0,0 +1,340 @@ +/** + * \file emscripten.c + * Emscripten example of using the single-file \c zstddeclib. Draws a rotating + * textured quad with data from the in-line Zstd compressed DXT1 texture (DXT1 + * being hardware compression, further compressed with Zstd). + * \n + * Compile using: + * \code + * export CC_FLAGS="-Wall -Wextra -Werror -Os -g0 -flto --llvm-lto 3 -lGL -DNDEBUG=1" + * export EM_FLAGS="-s WASM=1 -s ENVIRONMENT=web --shell-file shell.html --closure 1" + * emcc $CC_FLAGS $EM_FLAGS -o out.html emscripten.c + * \endcode + * + * \author Carl Woffenden, Numfum GmbH (released under a CC0 license) + */ + +#include +#include +#include +#include + +#include +#include + +#include +#include + +#include "../zstddeclib.c" + +//************************* Test Data (DXT texture) **************************/ + +/** + * Zstd compressed DXT1 256x256 texture source. + * \n + * See \c testcard.png for the original. + */ +static uint8_t const srcZstd[] = { +#include "testcard-zstd.inl" +}; + +/** + * Uncompressed size of \c #srcZstd. + */ +#define DXT1_256x256 32768 + +/** + * Destination for decoding \c #srcZstd. + */ +static uint8_t dstDxt1[DXT1_256x256] = {}; + +#ifndef ZSTD_VERSION_MAJOR +/** + * For the case where the decompression library hasn't been included we add a + * dummy function to fake the process and stop the buffers being optimised out. + */ +size_t ZSTD_decompress(void* dst, size_t dstLen, const void* src, size_t srcLen) { + return (memcmp(dst, src, (srcLen < dstLen) ? srcLen : dstLen)) ? dstLen : 0; +} +#endif + +//*************************** Program and Shaders ***************************/ + +/** + * Program object ID. + */ +static GLuint progId = 0; + +/** + * Vertex shader ID. + */ +static GLuint vertId = 0; + +/** + * Fragment shader ID. + */ +static GLuint fragId = 0; + +//********************************* Uniforms *********************************/ + +/** + * Quad rotation angle ID. + */ +static GLint uRotId = -1; + +/** + * Draw colour ID. + */ +static GLint uTx0Id = -1; + +//******************************* Shader Source ******************************/ + +/** + * Vertex shader to draw texture mapped polys with an applied rotation. + */ +static GLchar const vertShader2D[] = +#if GL_ES_VERSION_2_0 + "#version 100\n" + "precision mediump float;\n" +#else + "#version 120\n" +#endif + "uniform float uRot;" // rotation + "attribute vec2 aPos;" // vertex position coords + "attribute vec2 aUV0;" // vertex texture UV0 + "varying vec2 vUV0;" // (passed to fragment shader) + "void main() {" + " float cosA = cos(radians(uRot));" + " float sinA = sin(radians(uRot));" + " mat3 rot = mat3(cosA, -sinA, 0.0," + " sinA, cosA, 0.0," + " 0.0, 0.0, 1.0);" + " gl_Position = vec4(rot * vec3(aPos, 1.0), 1.0);" + " vUV0 = aUV0;" + "}"; + +/** + * Fragment shader for the above polys. + */ +static GLchar const fragShader2D[] = +#if GL_ES_VERSION_2_0 + "#version 100\n" + "precision mediump float;\n" +#else + "#version 120\n" +#endif + "uniform sampler2D uTx0;" + "varying vec2 vUV0;" // (passed from fragment shader) + "void main() {" + " gl_FragColor = texture2D(uTx0, vUV0);" + "}"; + +/** + * Helper to compile a shader. + * + * \param type shader type + * \param text shader source + * \return the shader ID (or zero if compilation failed) + */ +static GLuint compileShader(GLenum const type, const GLchar* text) { + GLuint shader = glCreateShader(type); + if (shader) { + glShaderSource (shader, 1, &text, NULL); + glCompileShader(shader); + GLint compiled; + glGetShaderiv(shader, GL_COMPILE_STATUS, &compiled); + if (compiled) { + return shader; + } else { + GLint logLen; + glGetShaderiv(shader, GL_INFO_LOG_LENGTH, &logLen); + if (logLen > 1) { + GLchar* logStr = malloc(logLen); + glGetShaderInfoLog(shader, logLen, NULL, logStr); + #ifndef NDEBUG + printf("Shader compilation error: %s\n", logStr); + #endif + free(logStr); + } + glDeleteShader(shader); + } + } + return 0; +} + +//********************************** Helpers *********************************/ + +/** + * Vertex position index. + */ +#define GL_VERT_POSXY_ID 0 + +/** + * Vertex UV0 index. + */ +#define GL_VERT_TXUV0_ID 1 + + /** + * \c GL vec2 storage type. + */ +struct vec2 { + float x; + float y; +}; + +/** + * Combined 2D vertex and 2D texture coordinates. + */ +struct posTex2d { + struct vec2 pos; + struct vec2 uv0; +}; + +//****************************************************************************/ + +/** + * Current quad rotation angle (in degrees, updated per frame). + */ +static float rotDeg = 0.0f; + +/** + * Emscripten (single) GL context. + */ +static EMSCRIPTEN_WEBGL_CONTEXT_HANDLE glCtx = 0; + +/** + * Emscripten resize handler. + */ +static EM_BOOL resize(int type, const EmscriptenUiEvent* e, void* data) { + double surfaceW; + double surfaceH; + if (emscripten_get_element_css_size ("#canvas", &surfaceW, &surfaceH) == EMSCRIPTEN_RESULT_SUCCESS) { + emscripten_set_canvas_element_size("#canvas", surfaceW, surfaceH); + if (glCtx) { + glViewport(0, 0, (int) surfaceW, (int) surfaceH); + } + } + (void) type; + (void) data; + (void) e; + return EM_FALSE; +} + +/** + * Boilerplate to create a WebGL context. + */ +static EM_BOOL initContext() { + // Default attributes + EmscriptenWebGLContextAttributes attr; + emscripten_webgl_init_context_attributes(&attr); + if ((glCtx = emscripten_webgl_create_context("#canvas", &attr))) { + // Bind the context and fire a resize to get the initial size + emscripten_webgl_make_context_current(glCtx); + emscripten_set_resize_callback(EMSCRIPTEN_EVENT_TARGET_DOCUMENT, NULL, EM_FALSE, resize); + resize(0, NULL, NULL); + return EM_TRUE; + } + return EM_FALSE; +} + +/** + * Called once per frame (clears the screen and draws the rotating quad). + */ +static void tick() { + glClearColor(1.0f, 0.0f, 1.0f, 1.0f); + glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); + + if (uRotId >= 0) { + glUniform1f(uRotId, rotDeg); + rotDeg += 0.1f; + if (rotDeg >= 360.0f) { + rotDeg -= 360.0f; + } + } + + glDrawElements(GL_TRIANGLES, 6, GL_UNSIGNED_SHORT, 0); + glFlush(); +} + +/** + * Creates the GL context, shaders and quad data, decompresses the Zstd data + * and 'uploads' the resulting texture. + * + * As a (naive) comparison, removing Zstd and building with "-Os -g0 s WASM=1 + * -lGL emscripten.c" results in a 15kB WebAssembly file; re-adding Zstd + * increases the Wasm by 26kB. + */ +int main() { + if (initContext()) { + // Compile shaders and set the initial GL state + if ((progId = glCreateProgram())) { + vertId = compileShader(GL_VERTEX_SHADER, vertShader2D); + fragId = compileShader(GL_FRAGMENT_SHADER, fragShader2D); + + glBindAttribLocation(progId, GL_VERT_POSXY_ID, "aPos"); + glBindAttribLocation(progId, GL_VERT_TXUV0_ID, "aUV0"); + + glAttachShader(progId, vertId); + glAttachShader(progId, fragId); + glLinkProgram (progId); + glUseProgram (progId); + uRotId = glGetUniformLocation(progId, "uRot"); + uTx0Id = glGetUniformLocation(progId, "uTx0"); + if (uTx0Id >= 0) { + glUniform1i(uTx0Id, 0); + } + + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + glEnable(GL_BLEND); + glDisable(GL_DITHER); + + glCullFace(GL_BACK); + glEnable(GL_CULL_FACE); + } + + GLuint vertsBuf = 0; + GLuint indexBuf = 0; + GLuint txName = 0; + // Create the textured quad (vert positions then UVs) + struct posTex2d verts2d[] = { + {{-0.85f, -0.85f}, {0.0f, 0.0f}}, // BL + {{ 0.85f, -0.85f}, {1.0f, 0.0f}}, // BR + {{-0.85f, 0.85f}, {0.0f, 1.0f}}, // TL + {{ 0.85f, 0.85f}, {1.0f, 1.0f}}, // TR + }; + uint16_t index2d[] = { + 0, 1, 2, + 2, 1, 3, + }; + glGenBuffers(1, &vertsBuf); + glBindBuffer(GL_ARRAY_BUFFER, vertsBuf); + glBufferData(GL_ARRAY_BUFFER, + sizeof(verts2d), verts2d, GL_STATIC_DRAW); + glVertexAttribPointer(GL_VERT_POSXY_ID, 2, + GL_FLOAT, GL_FALSE, sizeof(struct posTex2d), 0); + glVertexAttribPointer(GL_VERT_TXUV0_ID, 2, + GL_FLOAT, GL_FALSE, sizeof(struct posTex2d), + (void*) offsetof(struct posTex2d, uv0)); + glGenBuffers(1, &indexBuf); + glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, indexBuf); + glBufferData(GL_ELEMENT_ARRAY_BUFFER, + sizeof(index2d), index2d, GL_STATIC_DRAW); + glEnableVertexAttribArray(GL_VERT_POSXY_ID); + glEnableVertexAttribArray(GL_VERT_TXUV0_ID); + + // Decode the Zstd data and create the texture + if (ZSTD_decompress(dstDxt1, DXT1_256x256, srcZstd, sizeof srcZstd) == DXT1_256x256) { + glGenTextures(1, &txName); + glBindTexture(GL_TEXTURE_2D, txName); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); + glCompressedTexImage2D(GL_TEXTURE_2D, 0, + GL_COMPRESSED_RGB_S3TC_DXT1_EXT, + 256, 256, 0, DXT1_256x256, dstDxt1); + } else { + printf("Failed to decode Zstd data\n"); + } + emscripten_set_main_loop(tick, 0, EM_FALSE); + emscripten_exit_with_live_runtime(); + } + return EXIT_FAILURE; +} diff --git a/dependencies/zstd-1.5.0/build/single_file_libs/examples/roundtrip.c b/dependencies/zstd-1.5.0/build/single_file_libs/examples/roundtrip.c new file mode 100644 index 0000000..b228de8 --- /dev/null +++ b/dependencies/zstd-1.5.0/build/single_file_libs/examples/roundtrip.c @@ -0,0 +1,83 @@ +/* + * \file roundtrip.c + * In this example we include \c zstd.h and compile separately the amalgamated + * \c zstd.c: + * \code + * cc -Wall -Wextra -Werror -I. -Os -g0 zstd.c examples/roundtrip.c + * \endcode + * + * \author Carl Woffenden, Numfum GmbH (released under a CC0 license) + */ + +#include +#include +#include +#include +#include + +#include "zstd.h" + +//************************** Test Data (DXT texture) **************************/ + +/** + * Raw test data (borrowed from the Emscripten example). + * \n + * See \c testcard.png for the original. + */ +static uint8_t const rawData[] = { +#include "testcard-dxt1.inl" +}; + +#ifndef ZSTD_VERSION_MAJOR +/* + * For the case where the decompression library hasn't been included we add + * dummy functions to fake the process and stop the buffers being optimised out. + */ +size_t ZSTD_compressBound(size_t maxSrc) { + return maxSrc + 32; +} +int ZSTD_maxCLevel(void) { + return 20; +} +size_t ZSTD_compress(void* dst, size_t dstLen, const void* src, size_t srcLen, int level) { + return (memcmp(dst, src, (srcLen < dstLen) ? srcLen : dstLen)) ? level : dstLen; +} +unsigned ZSTD_isError(size_t code) { + return ((int) code) < 0; +} +size_t ZSTD_decompress(void* dst, size_t dstLen, const void* src, size_t srcLen) { + return (memcmp(dst, src, (srcLen < dstLen) ? srcLen : dstLen)) ? 0 : dstLen; +} +#endif + +//*****************************************************************************/ + +/** + * Simple single-file test to compress \c rawData, decompress the result, then + * compare the decompressed version with the original. + */ +int main() { + size_t bounds = ZSTD_compressBound(sizeof rawData); + void* compBuf = malloc(bounds); + void* testBuf = malloc(sizeof rawData); + int compare = -1; + if (compBuf && testBuf) { + size_t compSize = ZSTD_compress(compBuf, bounds, rawData, sizeof rawData, ZSTD_maxCLevel()); + if (!ZSTD_isError(compSize)) { + printf("Compression: PASSED (size: %lu, uncompressed: %lu)\n", (unsigned long) compSize, (unsigned long) (sizeof rawData)); + size_t decSize = ZSTD_decompress(testBuf, sizeof rawData, compBuf, compSize); + if (!ZSTD_isError(decSize)) { + printf("Decompression: PASSED\n"); + compare = memcmp(rawData, testBuf, decSize); + printf("Byte comparison: %s\n", (compare == 0) ? "PASSED" : "FAILED"); + } else { + printf("Decompression: FAILED\n"); + } + } else { + printf("Compression: FAILED\n"); + } + free(compBuf); + free(testBuf); + } + return (compare == 0) ? EXIT_SUCCESS : EXIT_FAILURE; +} diff --git a/dependencies/zstd-1.5.0/build/single_file_libs/examples/shell.html b/dependencies/zstd-1.5.0/build/single_file_libs/examples/shell.html new file mode 100644 index 0000000..5beb0e6 --- /dev/null +++ b/dependencies/zstd-1.5.0/build/single_file_libs/examples/shell.html @@ -0,0 +1,31 @@ + + + + + + + + Emscripten Shell + + + + + +{{{ SCRIPT }}} + + diff --git a/dependencies/zstd-1.5.0/build/single_file_libs/examples/simple.c b/dependencies/zstd-1.5.0/build/single_file_libs/examples/simple.c new file mode 100644 index 0000000..ee63416 --- /dev/null +++ b/dependencies/zstd-1.5.0/build/single_file_libs/examples/simple.c @@ -0,0 +1,75 @@ +/** + * \file simple.c + * Simple standalone example of using the single-file \c zstddeclib. + * + * \note In this simple example we include the amalgamated source and compile + * just this single file, but we could equally (and more conventionally) + * include \c zstd.h and compile both this file and \c zstddeclib.c (the + * resulting binaries differ slightly in size but perform the same). + * + * \author Carl Woffenden, Numfum GmbH (released under a CC0 license) + */ + +#include +#include +#include +#include +#include + +#include "../zstddeclib.c" + +//************************* Test Data (DXT texture) **************************/ + +/** + * Raw 256x256 DXT1 data (used to compare the result). + * \n + * See \c testcard.png for the original. + */ +static uint8_t const rawDxt1[] = { +#include "testcard-dxt1.inl" +}; + +/** + * Zstd compressed version of \c #rawDxt1. + * \n + * See \c testcard.png for the original. + */ +static uint8_t const srcZstd[] = { +#include "testcard-zstd.inl" +}; + +/** + * Destination for decoding \c #srcZstd. + */ +static uint8_t dstDxt1[sizeof rawDxt1] = {}; + +#ifndef ZSTD_VERSION_MAJOR +/** + * For the case where the decompression library hasn't been included we add a + * dummy function to fake the process and stop the buffers being optimised out. + */ +size_t ZSTD_decompress(void* dst, size_t dstLen, const void* src, size_t srcLen) { + return (memcmp(dst, src, (srcLen < dstLen) ? srcLen : dstLen)) ? 0 : dstLen; +} +#endif + +//****************************************************************************/ + +/** + * Simple single-file test to decompress \c #srcZstd into \c # dstDxt1 then + * compare the resulting bytes with \c #rawDxt1. + * \n + * As a (naive) comparison, removing Zstd and building with "-Os -g0 simple.c" + * results in a 44kB binary (macOS 10.14, Clang 10); re-adding Zstd increases + * the binary by 56kB (after calling \c strip). + */ +int main() { + size_t size = ZSTD_decompress(dstDxt1, sizeof dstDxt1, srcZstd, sizeof srcZstd); + int compare = memcmp(rawDxt1, dstDxt1, sizeof dstDxt1); + printf("Decompressed size: %s\n", (size == sizeof dstDxt1) ? "PASSED" : "FAILED"); + printf("Byte comparison: %s\n", (compare == 0) ? "PASSED" : "FAILED"); + if (size == sizeof dstDxt1 && compare == 0) { + return EXIT_SUCCESS; + } + return EXIT_FAILURE; +} diff --git a/dependencies/zstd-1.5.0/build/single_file_libs/examples/testcard-dxt1.inl b/dependencies/zstd-1.5.0/build/single_file_libs/examples/testcard-dxt1.inl new file mode 100644 index 0000000..e099e66 --- /dev/null +++ b/dependencies/zstd-1.5.0/build/single_file_libs/examples/testcard-dxt1.inl @@ -0,0 +1,2731 @@ +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, +0x55, 0xa9, 0xa9, 0xa9, 0x00, 0x00, 0xff, 0xff, 0x55, 0xaa, 0xaa, 0xaa, +0x00, 0x00, 0xff, 0xff, 0x55, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0xff, 0xff, +0x55, 0x6a, 0x6a, 0x6a, 0x00, 0x00, 0xff, 0xff, 0x55, 0xa9, 0xa9, 0xa9, +0x00, 0x00, 0xff, 0xff, 0x55, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0xff, 0xff, +0x55, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0xff, 0xff, 0x55, 0x6a, 0x6a, 0x6a, +0x00, 0x00, 0xff, 0xff, 0x55, 0xa9, 0xa9, 0xa9, 0x00, 0x00, 0xff, 0xff, +0x55, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0xff, 0xff, 0x55, 0xaa, 0xaa, 0xaa, +0x00, 0x00, 0xff, 0xff, 0x55, 0x6a, 0x6a, 0x6a, 0x00, 0x00, 0xff, 0xff, +0x55, 0xa9, 0xa9, 0xa9, 0x00, 0x00, 0xff, 0xff, 0x55, 0xaa, 0xaa, 0xaa, +0x00, 0x00, 0xff, 0xff, 0x55, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0xff, 0xff, +0x55, 0x6a, 0x6a, 0x6a, 0x00, 0x00, 0xff, 0xff, 0x55, 0xa9, 0xa9, 0xa9, +0x00, 0x00, 0xff, 0xff, 0x55, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0xff, 0xff, +0x55, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0xff, 0xff, 0x55, 0x6a, 0x6a, 0x6a, +0x00, 0x00, 0xff, 0xff, 0x55, 0xa9, 0xa9, 0xa9, 0x00, 0x00, 0xff, 0xff, +0x55, 0xaa, 0xaa, 0xaa, 0xff, 0xff, 0x30, 0x84, 0x00, 0x55, 0x55, 0xb5, +0xde, 0xf7, 0x30, 0x84, 0x00, 0x15, 0x35, 0x20, 0xdf, 0xff, 0x30, 0x84, +0x00, 0xd4, 0x80, 0x54, 0xde, 0xf7, 0x30, 0x84, 0x00, 0x2b, 0x7e, 0x55, +0xde, 0xf7, 0x10, 0x84, 0x00, 0xa0, 0x55, 0x55, 0xdf, 0xff, 0xe7, 0x39, +0x00, 0x2a, 0x3f, 0x3f, 0x82, 0x10, 0xff, 0xff, 0x55, 0xa9, 0xa9, 0xa9, +0xff, 0xff, 0x28, 0x42, 0x00, 0xff, 0xff, 0xff, 0x41, 0x08, 0xff, 0xff, +0x55, 0xaa, 0xaa, 0xaa, 0xff, 0xff, 0x8a, 0x52, 0x00, 0x3f, 0x3f, 0x3f, +0xff, 0xff, 0x08, 0x42, 0x00, 0xa8, 0xfc, 0xfc, 0xde, 0xf7, 0x30, 0x84, +0x00, 0x02, 0x55, 0x55, 0xff, 0xff, 0x10, 0x84, 0x00, 0xfa, 0xaf, 0x55, +0xdf, 0xff, 0x30, 0x84, 0x00, 0x15, 0x20, 0x35, 0xde, 0xf7, 0x30, 0x84, +0x00, 0x54, 0x54, 0x80, 0xff, 0xff, 0x30, 0x84, 0x00, 0x55, 0x55, 0x57, +0x00, 0x00, 0xff, 0xff, 0x55, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0xff, 0xff, +0x55, 0x6a, 0x6a, 0x6a, 0x00, 0x00, 0xff, 0xff, 0x55, 0xa9, 0xa9, 0xa9, +0x00, 0x00, 0xff, 0xff, 0x55, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0xff, 0xff, +0x55, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0xff, 0xff, 0x55, 0x6a, 0x6a, 0x6a, +0x00, 0x00, 0xff, 0xff, 0x55, 0xa9, 0xa9, 0xa9, 0x00, 0x00, 0xff, 0xff, +0x55, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0xff, 0xff, 0x55, 0xaa, 0xaa, 0xaa, +0x00, 0x00, 0xff, 0xff, 0x55, 0x6a, 0x6a, 0x6a, 0x00, 0x00, 0xff, 0xff, +0x55, 0xa9, 0xa9, 0xa9, 0x00, 0x00, 0xff, 0xff, 0x55, 0xaa, 0xaa, 0xaa, +0x00, 0x00, 0xff, 0xff, 0x55, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0xff, 0xff, +0x55, 0x6a, 0x6a, 0x6a, 0x00, 0x00, 0xff, 0xff, 0x55, 0xa9, 0xa9, 0xa9, +0x00, 0x00, 0xff, 0xff, 0x55, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0xff, 0xff, +0x55, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0xff, 0xff, 0x55, 0x6a, 0x6a, 0x6a, +0x00, 0x00, 0xff, 0xff, 0x55, 0xa9, 0xa9, 0xa9, 0x00, 0x00, 0xff, 0xff, +0x55, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0xff, 0xff, 0x55, 0xaa, 0xaa, 0xaa, +0x00, 0x00, 0xff, 0xff, 0x55, 0x6a, 0x6a, 0x6a, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0xa9, +0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, +0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x6a, +0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0xa9, 0xfb, 0xdf, 0x0a, 0x52, +0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, +0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x6a, 0x00, 0x00, 0xff, 0xff, +0xa9, 0xa9, 0xa9, 0xa9, 0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, +0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, +0x6a, 0x6a, 0x6a, 0x6a, 0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0xa9, +0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, +0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x6a, +0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0xa9, 0xfb, 0xdf, 0x0a, 0x52, +0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0x10, 0x84, 0x15, 0x15, 0x15, 0x2d, 0xff, 0xff, 0x30, 0x84, +0x54, 0xd4, 0x88, 0x5c, 0xff, 0xff, 0x10, 0x84, 0xb5, 0xe2, 0x57, 0x55, +0x7d, 0xef, 0x30, 0x84, 0xe0, 0x55, 0x55, 0x55, 0x41, 0x08, 0xff, 0xff, +0x6a, 0x6a, 0x6a, 0x6a, 0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0xa9, +0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, +0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x6a, +0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0xa9, 0xfb, 0xdf, 0x0a, 0x52, +0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, +0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x6a, 0x00, 0x00, 0xff, 0xff, +0xa9, 0xa9, 0xa9, 0xa9, 0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, +0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, +0x6a, 0x6a, 0x6a, 0x6a, 0xff, 0xff, 0x30, 0x84, 0xd4, 0x54, 0x54, 0x54, +0x9d, 0xef, 0x30, 0x84, 0x82, 0xd5, 0x55, 0x55, 0xff, 0xff, 0x10, 0x84, +0x57, 0xe2, 0xb5, 0x55, 0xff, 0xff, 0x30, 0x84, 0x15, 0x15, 0x38, 0x2d, +0xff, 0xff, 0x10, 0x84, 0x54, 0x54, 0x54, 0x5c, 0xfb, 0xdf, 0x0a, 0x52, +0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, +0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x6a, 0x00, 0x00, 0xff, 0xff, +0xa9, 0xa9, 0xa9, 0xa9, 0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, +0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, +0x6a, 0x6a, 0x6a, 0x6a, 0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0xa9, +0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, +0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x6a, +0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0xa9, 0xfb, 0xdf, 0x0a, 0x52, +0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, +0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x6a, 0x00, 0x00, 0xff, 0xff, +0xa9, 0xa9, 0xa9, 0xa9, 0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, +0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, +0x6a, 0x6a, 0x6a, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0xa9, 0xfb, 0xdf, 0x0a, 0x52, +0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, +0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x6a, 0x00, 0x00, 0xff, 0xff, +0xa9, 0xa9, 0xa9, 0xa9, 0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, +0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, +0x6a, 0x6a, 0x6a, 0x6a, 0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0xa9, +0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, +0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x6a, +0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0xa9, 0xfb, 0xdf, 0x0a, 0x52, +0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, +0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x6a, 0x41, 0x08, 0xff, 0xff, +0xa9, 0xa9, 0xa9, 0xa9, 0x9e, 0xf7, 0x10, 0x84, 0x55, 0x55, 0x35, 0xe2, +0x5c, 0xe7, 0x10, 0x84, 0xb5, 0x83, 0x5c, 0x55, 0xff, 0xff, 0x30, 0x84, +0x38, 0x15, 0x15, 0x15, 0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0xa9, +0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, +0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x6a, +0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0xa9, 0xfb, 0xdf, 0x0a, 0x52, +0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, +0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x6a, 0x00, 0x00, 0xff, 0xff, +0xa9, 0xa9, 0xa9, 0xa9, 0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, +0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, +0x6a, 0x6a, 0x6a, 0x6a, 0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0xa9, +0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, +0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x6a, +0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0xa9, 0xfb, 0xdf, 0x0a, 0x52, +0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, +0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x6a, 0xde, 0xf7, 0x30, 0x84, +0x88, 0x94, 0x54, 0x54, 0x5c, 0xe7, 0x10, 0x84, 0x57, 0x70, 0x0d, 0xd5, +0xbe, 0xf7, 0x30, 0x84, 0x55, 0x55, 0x57, 0x62, 0x00, 0x00, 0xff, 0xff, +0x6a, 0x6a, 0x6a, 0x6a, 0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0xa9, +0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, +0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x6a, +0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0xa9, 0xfb, 0xdf, 0x0a, 0x52, +0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, +0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x6a, 0x00, 0x00, 0xff, 0xff, +0xa9, 0xa9, 0xa9, 0xa9, 0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, +0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, +0x6a, 0x6a, 0x6a, 0x6a, 0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0xa9, +0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, +0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x6a, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, +0xa9, 0xa9, 0xa9, 0x55, 0x00, 0x00, 0xff, 0xff, 0xaa, 0xaa, 0xaa, 0x55, +0x00, 0x00, 0xff, 0xff, 0xaa, 0xaa, 0xaa, 0x55, 0x00, 0x00, 0xff, 0xff, +0x6a, 0x6a, 0x6a, 0x55, 0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0x55, +0x00, 0x00, 0xff, 0xff, 0xaa, 0xaa, 0xaa, 0x55, 0x00, 0x00, 0xff, 0xff, +0xaa, 0xaa, 0xaa, 0x55, 0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x55, +0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0x55, 0x00, 0x00, 0xff, 0xff, +0xaa, 0xaa, 0xaa, 0x55, 0x00, 0x00, 0xff, 0xff, 0xaa, 0xaa, 0xaa, 0x55, +0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x55, 0x00, 0x00, 0xff, 0xff, +0xa9, 0xa9, 0xa9, 0x55, 0x00, 0x00, 0xff, 0xff, 0xaa, 0xaa, 0xaa, 0x55, +0x00, 0x00, 0xff, 0xff, 0xaa, 0xaa, 0xaa, 0x55, 0xff, 0xff, 0x08, 0x42, +0x3f, 0x3f, 0x2f, 0x00, 0x51, 0x8c, 0xdf, 0xff, 0x61, 0x25, 0x01, 0x55, +0xff, 0xff, 0x49, 0x4a, 0xfe, 0xff, 0xff, 0x00, 0x00, 0x00, 0xff, 0xff, +0xaa, 0xaa, 0xaa, 0x55, 0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x55, +0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0x55, 0x00, 0x00, 0xff, 0xff, +0xaa, 0xaa, 0xaa, 0x55, 0x00, 0x00, 0xff, 0xff, 0xaa, 0xaa, 0xaa, 0x55, +0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x55, 0x00, 0x00, 0xff, 0xff, +0xa9, 0xa9, 0xa9, 0x55, 0x00, 0x00, 0xff, 0xff, 0xaa, 0xaa, 0xaa, 0x55, +0x00, 0x00, 0xff, 0xff, 0xaa, 0xaa, 0xaa, 0x55, 0x00, 0x00, 0xff, 0xff, +0x6a, 0x6a, 0x6a, 0x55, 0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0x55, +0x00, 0x00, 0xff, 0xff, 0xaa, 0xaa, 0xaa, 0x55, 0x00, 0x00, 0xff, 0xff, +0xaa, 0xaa, 0xaa, 0x55, 0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x55, +0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0x55, 0x00, 0x00, 0xff, 0xff, +0xaa, 0xaa, 0xaa, 0x55, 0x00, 0x00, 0xff, 0xff, 0xaa, 0xaa, 0xaa, 0x55, +0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x55, 0x00, 0x00, 0xff, 0xff, +0xa9, 0xa9, 0xa9, 0x55, 0x00, 0x00, 0xff, 0xff, 0xaa, 0xaa, 0xaa, 0x55, +0x00, 0x00, 0xff, 0xff, 0xaa, 0xaa, 0xaa, 0x55, 0x00, 0x00, 0xff, 0xff, +0x6a, 0x6a, 0x6a, 0x55, 0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0x55, +0x00, 0x00, 0xff, 0xff, 0xaa, 0xaa, 0xaa, 0x55, 0xff, 0xff, 0x69, 0x4a, +0x2f, 0xff, 0xff, 0x00, 0x51, 0x8c, 0xff, 0xff, 0x42, 0x66, 0x60, 0x55, +0xff, 0xff, 0x28, 0x42, 0xfc, 0xfc, 0xfc, 0x00, 0x00, 0x00, 0xff, 0xff, +0xaa, 0xaa, 0xaa, 0x55, 0x00, 0x00, 0xff, 0xff, 0xaa, 0xaa, 0xaa, 0x55, +0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x55, 0x00, 0x00, 0xff, 0xff, +0xa9, 0xa9, 0xa9, 0x55, 0x00, 0x00, 0xff, 0xff, 0xaa, 0xaa, 0xaa, 0x55, +0x00, 0x00, 0xff, 0xff, 0xaa, 0xaa, 0xaa, 0x55, 0x00, 0x00, 0xff, 0xff, +0x6a, 0x6a, 0x6a, 0x55, 0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0x55, +0x00, 0x00, 0xff, 0xff, 0xaa, 0xaa, 0xaa, 0x55, 0x00, 0x00, 0xff, 0xff, +0xaa, 0xaa, 0xaa, 0x55, 0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x55, +0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0x55, 0x00, 0x00, 0xff, 0xff, +0xaa, 0xaa, 0xaa, 0x55, 0x00, 0x00, 0xff, 0xff, 0xaa, 0xaa, 0xaa, 0x55, +0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x55, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0xa9, 0xa9, 0xa9, +0x00, 0x00, 0xff, 0xff, 0x55, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0xff, 0xff, +0x55, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0xff, 0xff, 0x55, 0x6a, 0x6a, 0x6a, +0xde, 0xff, 0xc8, 0x88, 0xff, 0xff, 0xff, 0xff, 0xde, 0xff, 0xc8, 0x88, +0xff, 0xff, 0xff, 0xff, 0xde, 0xff, 0xc8, 0x88, 0xff, 0xff, 0xff, 0xff, +0xde, 0xff, 0xc8, 0x88, 0xff, 0xff, 0xff, 0xff, 0x99, 0xff, 0x00, 0x5a, +0xff, 0xff, 0xff, 0xff, 0x99, 0xff, 0x00, 0x5a, 0xff, 0xff, 0xff, 0xff, +0x99, 0xff, 0x00, 0x5a, 0xff, 0xff, 0xff, 0xff, 0x99, 0xff, 0x00, 0x5a, +0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x55, 0xa9, 0xa9, 0xa9, +0xde, 0xf7, 0x10, 0x84, 0x00, 0x55, 0xd5, 0x25, 0xbe, 0xf7, 0x30, 0x84, +0x00, 0xc9, 0x58, 0x57, 0xff, 0xff, 0x08, 0x42, 0x00, 0x3f, 0x3f, 0x3f, +0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, +0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, +0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, +0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, +0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, +0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, +0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, +0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, +0x76, 0xfe, 0x01, 0xd8, 0xff, 0xff, 0xff, 0xff, 0x76, 0xfe, 0x01, 0xd8, +0xff, 0xff, 0xff, 0xff, 0x76, 0xfe, 0x01, 0xd8, 0xff, 0xff, 0xff, 0xff, +0x76, 0xfe, 0x01, 0xd8, 0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, +0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, +0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, +0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, +0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, +0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, +0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, +0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, +0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x08, 0x42, +0x00, 0xbc, 0xfc, 0xfc, 0xbe, 0xf7, 0x10, 0x84, 0x00, 0x58, 0xc9, 0x35, +0xff, 0xff, 0x10, 0x84, 0x00, 0x55, 0x55, 0x56, 0x00, 0x00, 0xff, 0xff, +0x55, 0x6a, 0x6a, 0x6a, 0xf6, 0xff, 0xc1, 0x59, 0xff, 0xff, 0xff, 0xff, +0xf6, 0xff, 0xc1, 0x59, 0xff, 0xff, 0xff, 0xff, 0xf6, 0xff, 0xc1, 0x59, +0xff, 0xff, 0xff, 0xff, 0xf6, 0xff, 0xc1, 0x59, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0x71, 0x39, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x71, 0x39, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x71, 0x39, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0x71, 0x39, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, +0x55, 0xa9, 0xa9, 0xa9, 0x00, 0x00, 0xff, 0xff, 0x55, 0xaa, 0xaa, 0xaa, +0x00, 0x00, 0xff, 0xff, 0x55, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0xff, 0xff, +0x55, 0x6a, 0x6a, 0x6a, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0xa9, 0xfb, 0xdf, 0x0a, 0x52, +0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, +0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x6a, 0xde, 0xff, 0xc8, 0x88, +0xff, 0xff, 0xff, 0xff, 0xde, 0xff, 0xc8, 0x88, 0xff, 0xff, 0xff, 0xff, +0xde, 0xff, 0xc8, 0x88, 0xff, 0xff, 0xff, 0xff, 0xde, 0xff, 0xc8, 0x88, +0xff, 0xff, 0xff, 0xff, 0x99, 0xff, 0x00, 0x5a, 0xff, 0xff, 0xff, 0xff, +0x99, 0xff, 0x00, 0x5a, 0xff, 0xff, 0xff, 0xff, 0x99, 0xff, 0x00, 0x5a, +0xff, 0xff, 0xff, 0xff, 0xe9, 0x93, 0xc7, 0x8b, 0xaa, 0xaa, 0xaa, 0x2a, +0xbe, 0xf7, 0x10, 0x84, 0x54, 0x94, 0x8c, 0x70, 0x7d, 0xef, 0x10, 0x84, +0x63, 0x5c, 0x55, 0x55, 0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, +0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x6a, 0xda, 0xf7, 0x81, 0xf7, +0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, +0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, +0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, +0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, +0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, +0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, +0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, +0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, 0x76, 0xfe, 0x01, 0xd8, +0xff, 0xff, 0xff, 0xff, 0x76, 0xfe, 0x01, 0xd8, 0xff, 0xff, 0xff, 0xff, +0x76, 0xfe, 0x01, 0xd8, 0xff, 0xff, 0xff, 0xff, 0x76, 0xfe, 0x01, 0xd8, +0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, +0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, +0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, +0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, +0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, +0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, +0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, +0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, +0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0xa9, +0x71, 0x8c, 0xcf, 0x7b, 0xbf, 0xff, 0xff, 0xff, 0x9d, 0xef, 0x10, 0x84, +0x72, 0x8d, 0x95, 0x55, 0xbe, 0xf7, 0x10, 0x84, 0x15, 0x15, 0x1c, 0x23, +0xf6, 0xff, 0xc1, 0x59, 0xff, 0xff, 0xff, 0xff, 0xf6, 0xff, 0xc1, 0x59, +0xff, 0xff, 0xff, 0xff, 0xf6, 0xff, 0xc1, 0x59, 0xff, 0xff, 0xff, 0xff, +0xf6, 0xff, 0xc1, 0x59, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x71, 0x39, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x71, 0x39, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0x71, 0x39, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x71, 0x39, +0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0xa9, +0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, +0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x6a, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, +0xa9, 0xa9, 0xa9, 0xa9, 0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, +0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, +0x6a, 0x6a, 0x6a, 0x6a, 0xde, 0xff, 0xc8, 0x88, 0xff, 0xff, 0xff, 0xff, +0xde, 0xff, 0xc8, 0x88, 0xff, 0xff, 0xff, 0xff, 0xde, 0xff, 0xc8, 0x88, +0xff, 0xff, 0xff, 0xff, 0xde, 0xff, 0xc8, 0x88, 0xff, 0xff, 0xff, 0xff, +0x99, 0xff, 0x00, 0x5a, 0xff, 0xff, 0xff, 0xff, 0x99, 0xff, 0x00, 0x5a, +0xff, 0xff, 0xff, 0xff, 0x56, 0xd6, 0xa1, 0x72, 0xff, 0xff, 0xff, 0x3f, +0x5c, 0xef, 0x2a, 0x94, 0x15, 0x8d, 0x73, 0x54, 0x41, 0x08, 0xff, 0xff, +0xa9, 0xa9, 0xa9, 0xa9, 0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, +0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, +0x6a, 0x6a, 0x6a, 0x6a, 0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, +0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, +0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, +0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, +0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, +0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, +0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, +0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, +0xff, 0xff, 0xff, 0xff, 0x76, 0xfe, 0x01, 0xd8, 0xff, 0xff, 0xff, 0xff, +0x76, 0xfe, 0x01, 0xd8, 0xff, 0xff, 0xff, 0xff, 0x76, 0xfe, 0x01, 0xd8, +0xff, 0xff, 0xff, 0xff, 0x76, 0xfe, 0x01, 0xd8, 0xff, 0xff, 0xff, 0xff, +0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, +0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, +0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, +0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, +0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, +0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, +0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, +0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, +0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0xa9, 0xfb, 0xdf, 0x0a, 0x52, +0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0x30, 0x84, 0x25, 0x15, 0x15, 0x15, 0x7c, 0xf7, 0x09, 0x94, +0x55, 0x5c, 0x73, 0x85, 0x09, 0x94, 0xa7, 0x8b, 0xff, 0xff, 0xff, 0xfe, +0xf6, 0xff, 0xc1, 0x59, 0xff, 0xff, 0xff, 0xff, 0xf6, 0xff, 0xc1, 0x59, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x71, 0x39, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0x71, 0x39, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x71, 0x39, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x71, 0x39, 0xff, 0xff, 0xff, 0xff, +0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0xa9, 0xfb, 0xdf, 0x0a, 0x52, +0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, +0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x6a, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0x55, +0x00, 0x00, 0xff, 0xff, 0xaa, 0xaa, 0xaa, 0x55, 0x00, 0x00, 0xff, 0xff, +0xaa, 0xaa, 0xaa, 0x55, 0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x55, +0xde, 0xff, 0xc8, 0x88, 0xff, 0xff, 0xff, 0xff, 0xde, 0xff, 0xc8, 0x88, +0xff, 0xff, 0xff, 0xff, 0xde, 0xff, 0xc8, 0x88, 0xff, 0xff, 0xff, 0xff, +0xde, 0xff, 0xc8, 0x88, 0xff, 0xff, 0xff, 0xff, 0x99, 0xff, 0x00, 0x5a, +0xff, 0xff, 0xff, 0xff, 0x7c, 0xf7, 0xc8, 0x8b, 0x55, 0x55, 0xd5, 0x35, +0x3b, 0xef, 0x09, 0x94, 0x05, 0x61, 0x58, 0x57, 0x2a, 0x9c, 0xc7, 0x8b, +0xfc, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0x55, +0x00, 0x00, 0xff, 0xff, 0xaa, 0xaa, 0xaa, 0x55, 0x00, 0x00, 0xff, 0xff, +0xaa, 0xaa, 0xaa, 0x55, 0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x55, +0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, +0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, +0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, +0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, +0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, +0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, +0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, +0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, +0x76, 0xfe, 0x01, 0xd8, 0xff, 0xff, 0xff, 0xff, 0x76, 0xfe, 0x01, 0xd8, +0xff, 0xff, 0xff, 0xff, 0x76, 0xfe, 0x01, 0xd8, 0xff, 0xff, 0xff, 0xff, +0x76, 0xfe, 0x01, 0xd8, 0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, +0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, +0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, +0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, +0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, +0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, +0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, +0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, +0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, +0xa9, 0xa9, 0xa9, 0x55, 0x00, 0x00, 0xff, 0xff, 0xaa, 0xaa, 0xaa, 0x55, +0x00, 0x00, 0xff, 0xff, 0xaa, 0xaa, 0xaa, 0x55, 0x00, 0x00, 0xff, 0xff, +0x6a, 0x6a, 0x6a, 0x55, 0xf9, 0xe6, 0x60, 0x6a, 0x3f, 0xff, 0xff, 0xff, +0x9d, 0xf7, 0x09, 0x94, 0x56, 0x52, 0x49, 0x35, 0xc2, 0x72, 0xce, 0xac, +0xaa, 0xaa, 0xaa, 0xa9, 0xf6, 0xff, 0xc1, 0x59, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0x71, 0x39, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x71, 0x39, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x71, 0x39, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0x71, 0x39, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, +0xa9, 0xa9, 0xa9, 0x55, 0x00, 0x00, 0xff, 0xff, 0xaa, 0xaa, 0xaa, 0x55, +0x00, 0x00, 0xff, 0xff, 0xaa, 0xaa, 0xaa, 0x55, 0x00, 0x00, 0xff, 0xff, +0x6a, 0x6a, 0x6a, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0xff, 0xff, 0x55, 0xa9, 0xa9, 0xa9, 0x00, 0x00, 0xff, 0xff, +0x55, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0xff, 0xff, 0x55, 0xaa, 0xaa, 0xaa, +0x00, 0x00, 0xff, 0xff, 0x55, 0x6a, 0x6a, 0x6a, 0xde, 0xff, 0xc8, 0x88, +0xff, 0xff, 0xff, 0xff, 0xde, 0xff, 0xc8, 0x88, 0xff, 0xff, 0xff, 0xff, +0xde, 0xff, 0xc8, 0x88, 0xff, 0xff, 0xff, 0xff, 0xde, 0xff, 0xc8, 0x88, +0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0x10, 0x84, 0x00, 0x54, 0xd4, 0x34, +0xde, 0xf7, 0xef, 0x7b, 0x00, 0x73, 0x5c, 0x57, 0x00, 0x00, 0xff, 0xff, +0x55, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0xff, 0xff, 0x55, 0x6a, 0x6a, 0x6a, +0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, +0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, +0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, +0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, +0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, +0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, +0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, +0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, +0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, +0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, +0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, 0x76, 0xfe, 0x01, 0xd8, +0xff, 0xff, 0xff, 0xff, 0x76, 0xfe, 0x01, 0xd8, 0xff, 0xff, 0xff, 0xff, +0x76, 0xfe, 0x01, 0xd8, 0xff, 0xff, 0xff, 0xff, 0x76, 0xfe, 0x01, 0xd8, +0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, +0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, +0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, +0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, +0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, +0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, +0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, +0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, +0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, +0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, +0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, +0x00, 0x00, 0xff, 0xff, 0x55, 0xa9, 0xa9, 0xa9, 0x00, 0x00, 0xff, 0xff, +0x55, 0xaa, 0xaa, 0xaa, 0xde, 0xf7, 0xef, 0x7b, 0x00, 0x73, 0xcd, 0x35, +0xff, 0xff, 0x10, 0x84, 0x00, 0x15, 0x15, 0x17, 0xff, 0xff, 0x71, 0x39, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x71, 0x39, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0x71, 0x39, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x71, 0x39, +0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x55, 0xa9, 0xa9, 0xa9, +0x00, 0x00, 0xff, 0xff, 0x55, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0xff, 0xff, +0x55, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0xff, 0xff, 0x55, 0x6a, 0x6a, 0x6a, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, +0xa9, 0xa9, 0xa9, 0xa9, 0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, +0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, +0x6a, 0x6a, 0x6a, 0x6a, 0xde, 0xff, 0xc8, 0x88, 0xff, 0xff, 0xff, 0xff, +0xde, 0xff, 0xc8, 0x88, 0xff, 0xff, 0xff, 0xff, 0xde, 0xff, 0xc8, 0x88, +0xff, 0xff, 0xff, 0xff, 0x5d, 0xf7, 0xef, 0xaa, 0x55, 0x55, 0xd5, 0x35, +0xde, 0xf7, 0xef, 0x7b, 0xcc, 0x70, 0x5c, 0x54, 0xfb, 0xdf, 0x0a, 0x52, +0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, +0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x6a, 0xda, 0xf7, 0x81, 0xf7, +0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, +0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, +0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, +0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, +0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, +0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, +0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, +0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, +0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, +0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, +0xff, 0xff, 0xff, 0xff, 0x76, 0xfe, 0x01, 0xd8, 0xff, 0xff, 0xff, 0xff, +0x76, 0xfe, 0x01, 0xd8, 0xff, 0xff, 0xff, 0xff, 0x76, 0xfe, 0x01, 0xd8, +0xff, 0xff, 0xff, 0xff, 0x76, 0xfe, 0x01, 0xd8, 0xff, 0xff, 0xff, 0xff, +0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, +0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, +0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, +0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, +0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, +0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, +0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, +0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, +0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, +0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, +0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, +0xa9, 0xa9, 0xa9, 0xa9, 0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, +0x2c, 0x63, 0xd3, 0x9c, 0x6a, 0xaa, 0xaa, 0xaa, 0xde, 0xf7, 0xef, 0x7b, +0x1c, 0x33, 0x0d, 0x35, 0xd4, 0x62, 0x57, 0x94, 0xaa, 0xaa, 0xaa, 0xa9, +0xff, 0xff, 0x71, 0x39, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x71, 0x39, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x71, 0x39, 0xff, 0xff, 0xff, 0xff, +0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0xa9, 0xfb, 0xdf, 0x0a, 0x52, +0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, +0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x6a, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0xa9, +0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, +0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x6a, +0xde, 0xff, 0xc8, 0x88, 0xff, 0xff, 0xff, 0xff, 0xde, 0xff, 0xc8, 0x88, +0xff, 0xff, 0xff, 0xff, 0xd8, 0xdd, 0xcb, 0x99, 0xff, 0xff, 0xff, 0x3f, +0xdb, 0xee, 0x30, 0xb3, 0x85, 0x61, 0x50, 0x54, 0x00, 0x00, 0xff, 0xff, +0xa9, 0xa9, 0xa9, 0xa9, 0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, +0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, +0x6a, 0x6a, 0x6a, 0x6a, 0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, +0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, +0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, +0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, +0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, +0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, +0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, +0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, +0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, +0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, +0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, +0x76, 0xfe, 0x01, 0xd8, 0xff, 0xff, 0xff, 0xff, 0x76, 0xfe, 0x01, 0xd8, +0xff, 0xff, 0xff, 0xff, 0x76, 0xfe, 0x01, 0xd8, 0xff, 0xff, 0xff, 0xff, +0x76, 0xfe, 0x01, 0xd8, 0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, +0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, +0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, +0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, +0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, +0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, +0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, +0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, +0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, +0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, +0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, +0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0xa9, +0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, +0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x6a, +0x1d, 0xe7, 0xb6, 0x83, 0x54, 0x52, 0x41, 0x85, 0xff, 0xff, 0x71, 0x39, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x71, 0x39, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0x71, 0x39, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, +0xa9, 0xa9, 0xa9, 0xa9, 0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, +0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, +0x6a, 0x6a, 0x6a, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0x55, 0x00, 0x00, 0xff, 0xff, +0xaa, 0xaa, 0xaa, 0x55, 0x00, 0x00, 0xff, 0xff, 0xaa, 0xaa, 0xaa, 0x55, +0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x55, 0xde, 0xff, 0xc8, 0x88, +0xff, 0xff, 0xff, 0xff, 0x30, 0xb3, 0x0f, 0xb3, 0xff, 0xff, 0xff, 0xbf, +0x9e, 0xf7, 0x30, 0xb3, 0x35, 0xcd, 0x71, 0x5a, 0xf2, 0xbb, 0xae, 0xaa, +0xfe, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0x55, +0x00, 0x00, 0xff, 0xff, 0xaa, 0xaa, 0xaa, 0x55, 0x00, 0x00, 0xff, 0xff, +0xaa, 0xaa, 0xaa, 0x55, 0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x55, +0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, +0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, +0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, +0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, +0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, +0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, +0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, +0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, +0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, +0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, +0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, 0x76, 0xfe, 0x01, 0xd8, +0xff, 0xff, 0xff, 0xff, 0x76, 0xfe, 0x01, 0xd8, 0xff, 0xff, 0xff, 0xff, +0x76, 0xfe, 0x01, 0xd8, 0xff, 0xff, 0xff, 0xff, 0x76, 0xfe, 0x01, 0xd8, +0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, +0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, +0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, +0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, +0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, +0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, +0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, +0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, +0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, +0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, +0xff, 0xff, 0xff, 0xff, 0xda, 0xf7, 0x81, 0xf7, 0xff, 0xff, 0xff, 0xff, +0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0x55, 0x00, 0x00, 0xff, 0xff, +0xaa, 0xaa, 0xaa, 0x55, 0x00, 0x00, 0xff, 0xff, 0xaa, 0xaa, 0xaa, 0x55, +0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x55, 0x5e, 0xef, 0x96, 0x7b, +0x15, 0xd5, 0x55, 0x55, 0x9e, 0xf7, 0xb6, 0x7b, 0x57, 0x5c, 0x53, 0x69, +0xff, 0xff, 0x71, 0x39, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x71, 0x39, +0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0x55, +0x00, 0x00, 0xff, 0xff, 0xaa, 0xaa, 0xaa, 0x55, 0x00, 0x00, 0xff, 0xff, +0xaa, 0xaa, 0xaa, 0x55, 0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x55, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, +0x55, 0xa9, 0xa9, 0xa9, 0x00, 0x00, 0xff, 0xff, 0x55, 0xaa, 0xaa, 0xaa, +0x00, 0x00, 0xff, 0xff, 0x55, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0xff, 0xff, +0x55, 0x6a, 0x6a, 0x6a, 0xde, 0xff, 0xc8, 0x88, 0xff, 0xff, 0xff, 0xff, +0x7d, 0xf7, 0x2f, 0xb3, 0x95, 0x35, 0xc5, 0x69, 0xdb, 0xee, 0x0f, 0xb3, +0x54, 0x57, 0x55, 0x55, 0xde, 0xff, 0xc8, 0x88, 0xff, 0xff, 0xff, 0xff, +0x00, 0x00, 0xff, 0xff, 0x55, 0xa9, 0xa9, 0xa9, 0x00, 0x00, 0xff, 0xff, +0x55, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0xff, 0xff, 0x55, 0xaa, 0xaa, 0xaa, +0x00, 0x00, 0xff, 0xff, 0x55, 0x6a, 0x6a, 0x6a, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x41, 0x08, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x41, 0x08, 0x00, 0x00, +0xff, 0xff, 0xff, 0xff, 0x41, 0x08, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, +0x41, 0x08, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x41, 0x08, 0x00, 0x00, +0xff, 0xff, 0xff, 0xff, 0x41, 0x08, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, +0x41, 0x08, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x41, 0x08, 0x00, 0x00, +0xff, 0xff, 0xff, 0xff, 0x41, 0x08, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, +0x41, 0x08, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x41, 0x08, 0x00, 0x00, +0xff, 0xff, 0xff, 0xff, 0x41, 0x08, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, +0x41, 0x08, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x41, 0x08, 0x00, 0x00, +0xff, 0xff, 0xff, 0xff, 0x41, 0x08, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, +0x41, 0x08, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x41, 0x08, 0x00, 0x00, +0xff, 0xff, 0xff, 0xff, 0x41, 0x08, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, +0x41, 0x08, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x41, 0x08, 0x00, 0x00, +0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, +0x55, 0xa9, 0xa9, 0xa9, 0x00, 0x00, 0xff, 0xff, 0x55, 0xaa, 0xaa, 0xaa, +0x00, 0x00, 0xff, 0xff, 0x55, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0xff, 0xff, +0x55, 0x6a, 0x6a, 0x6a, 0xff, 0xff, 0x71, 0x39, 0xff, 0xff, 0xff, 0xff, +0x5e, 0xef, 0xf2, 0x49, 0x8f, 0x3f, 0xbf, 0xff, 0x7e, 0xef, 0x96, 0x7b, +0x55, 0x57, 0x54, 0x5a, 0xff, 0xff, 0x71, 0x39, 0xff, 0xff, 0xff, 0xff, +0x00, 0x00, 0xff, 0xff, 0x55, 0xa9, 0xa9, 0xa9, 0x00, 0x00, 0xff, 0xff, +0x55, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0xff, 0xff, 0x55, 0xaa, 0xaa, 0xaa, +0x00, 0x00, 0xff, 0xff, 0x55, 0x6a, 0x6a, 0x6a, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0xa9, +0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, +0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x6a, +0x7d, 0xf7, 0x2f, 0xb3, 0x55, 0x55, 0x95, 0x35, 0x7d, 0xf7, 0x30, 0xb3, +0x53, 0x5c, 0x56, 0x55, 0xde, 0xff, 0xc8, 0x88, 0xff, 0xff, 0xff, 0xff, +0xde, 0xff, 0xc8, 0x88, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, +0xa9, 0xa9, 0xa9, 0xa9, 0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, +0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, +0x6a, 0x6a, 0x6a, 0x6a, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x41, 0x08, 0x00, 0x00, +0xff, 0xff, 0xff, 0xff, 0x41, 0x08, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, +0x41, 0x08, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x41, 0x08, 0x00, 0x00, +0xff, 0xff, 0xff, 0xff, 0x41, 0x08, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, +0x41, 0x08, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x41, 0x08, 0x00, 0x00, +0xff, 0xff, 0xff, 0xff, 0x41, 0x08, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, +0x41, 0x08, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x41, 0x08, 0x00, 0x00, +0xff, 0xff, 0xff, 0xff, 0x41, 0x08, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, +0x41, 0x08, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x41, 0x08, 0x00, 0x00, +0xff, 0xff, 0xff, 0xff, 0x41, 0x08, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, +0x41, 0x08, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x41, 0x08, 0x00, 0x00, +0xff, 0xff, 0xff, 0xff, 0x41, 0x08, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, +0x41, 0x08, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x41, 0x08, 0x00, 0x00, +0xff, 0xff, 0xff, 0xff, 0x41, 0x08, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0xa9, +0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, +0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x6a, +0xff, 0xff, 0x71, 0x39, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x71, 0x39, +0xff, 0xff, 0xff, 0xff, 0x7e, 0xef, 0xb6, 0x83, 0x71, 0x4d, 0xa5, 0x15, +0x73, 0x5a, 0xb8, 0x9c, 0xaa, 0xaa, 0xaa, 0xa9, 0x00, 0x00, 0xff, 0xff, +0xa9, 0xa9, 0xa9, 0xa9, 0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, +0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, +0x6a, 0x6a, 0x6a, 0x6a, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0xa9, 0xfb, 0xdf, 0x0a, 0x52, +0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, +0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x6a, 0xfc, 0xee, 0x70, 0xb3, +0xc5, 0x49, 0x51, 0x58, 0xde, 0xff, 0xc8, 0x88, 0xff, 0xff, 0xff, 0xff, +0xde, 0xff, 0xc8, 0x88, 0xff, 0xff, 0xff, 0xff, 0xde, 0xff, 0xc8, 0x88, +0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0xa9, +0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, +0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x6a, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x41, 0x08, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, +0x41, 0x08, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x41, 0x08, 0x00, 0x00, +0xff, 0xff, 0xff, 0xff, 0x41, 0x08, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, +0x41, 0x08, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x41, 0x08, 0x00, 0x00, +0xff, 0xff, 0xff, 0xff, 0x41, 0x08, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, +0x41, 0x08, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x41, 0x08, 0x00, 0x00, +0xff, 0xff, 0xff, 0xff, 0x41, 0x08, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, +0x41, 0x08, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x41, 0x08, 0x00, 0x00, +0xff, 0xff, 0xff, 0xff, 0x41, 0x08, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, +0x41, 0x08, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x41, 0x08, 0x00, 0x00, +0xff, 0xff, 0xff, 0xff, 0x41, 0x08, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, +0x41, 0x08, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x41, 0x08, 0x00, 0x00, +0xff, 0xff, 0xff, 0xff, 0x41, 0x08, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, +0x41, 0x08, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0xa9, 0xfb, 0xdf, 0x0a, 0x52, +0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, +0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x6a, 0xff, 0xff, 0x71, 0x39, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x71, 0x39, 0xff, 0xff, 0xff, 0xff, +0x19, 0xa5, 0xaf, 0x28, 0x2a, 0xaa, 0xaa, 0xaa, 0x1d, 0xe7, 0xd6, 0x83, +0x54, 0x58, 0x51, 0x49, 0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0xa9, +0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, +0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x6a, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, +0xa9, 0xa9, 0xa9, 0x55, 0x00, 0x00, 0xff, 0xff, 0xaa, 0xaa, 0xaa, 0x55, +0x00, 0x00, 0xff, 0xff, 0xaa, 0xaa, 0xaa, 0x55, 0xff, 0xff, 0x10, 0x84, +0x15, 0x15, 0x35, 0x00, 0x9e, 0xf7, 0x30, 0xb3, 0x54, 0x57, 0x55, 0x55, +0xde, 0xff, 0xc8, 0x88, 0xff, 0xff, 0xff, 0xff, 0xde, 0xff, 0xc8, 0x88, +0xff, 0xff, 0xff, 0xff, 0xde, 0xff, 0xc8, 0x88, 0xff, 0xff, 0xff, 0xff, +0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0x55, 0x00, 0x00, 0xff, 0xff, +0xaa, 0xaa, 0xaa, 0x55, 0x00, 0x00, 0xff, 0xff, 0xaa, 0xaa, 0xaa, 0x55, +0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x55, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x41, 0x08, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x41, 0x08, 0x00, 0x00, +0xff, 0xff, 0xff, 0xff, 0x41, 0x08, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, +0x41, 0x08, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x41, 0x08, 0x00, 0x00, +0xff, 0xff, 0xff, 0xff, 0x41, 0x08, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, +0x41, 0x08, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x41, 0x08, 0x00, 0x00, +0xff, 0xff, 0xff, 0xff, 0x41, 0x08, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, +0x41, 0x08, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x41, 0x08, 0x00, 0x00, +0xff, 0xff, 0xff, 0xff, 0x41, 0x08, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, +0x41, 0x08, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x41, 0x08, 0x00, 0x00, +0xff, 0xff, 0xff, 0xff, 0x41, 0x08, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, +0x41, 0x08, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x41, 0x08, 0x00, 0x00, +0xff, 0xff, 0xff, 0xff, 0x41, 0x08, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, +0x41, 0x08, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x41, 0x08, 0x00, 0x00, +0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, +0xa9, 0xa9, 0xa9, 0x55, 0x00, 0x00, 0xff, 0xff, 0xaa, 0xaa, 0xaa, 0x55, +0x00, 0x00, 0xff, 0xff, 0xaa, 0xaa, 0xaa, 0x55, 0x00, 0x00, 0xff, 0xff, +0x6a, 0x6a, 0x6a, 0x55, 0xff, 0xff, 0x71, 0x39, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0x71, 0x39, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x71, 0x39, +0xff, 0xff, 0xff, 0xff, 0x3d, 0xe7, 0xb6, 0x7b, 0xc5, 0x35, 0x15, 0xd5, +0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0x55, 0x00, 0x00, 0xff, 0xff, +0xaa, 0xaa, 0xaa, 0x55, 0x00, 0x00, 0xff, 0xff, 0xaa, 0xaa, 0xaa, 0x55, +0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x55, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x55, 0xa9, 0xa9, 0xa9, +0x00, 0x00, 0xff, 0xff, 0x55, 0xaa, 0xaa, 0xaa, 0xff, 0xff, 0x08, 0x42, +0x00, 0xff, 0xff, 0xff, 0xdf, 0xff, 0x71, 0x8c, 0x00, 0x11, 0x1b, 0x14, +0xde, 0xff, 0xc8, 0x88, 0xff, 0xff, 0xff, 0xff, 0xde, 0xff, 0xc8, 0x88, +0xff, 0xff, 0xff, 0xff, 0xde, 0xff, 0xc8, 0x88, 0xff, 0xff, 0xff, 0xff, +0xde, 0xff, 0xc8, 0x88, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, +0x55, 0xa9, 0xa9, 0xa9, 0x00, 0x00, 0xff, 0xff, 0x55, 0xaa, 0xaa, 0xaa, +0x00, 0x00, 0xff, 0xff, 0x55, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0xff, 0xff, +0x55, 0x6a, 0x6a, 0x6a, 0x1f, 0x62, 0x1e, 0x5a, 0xea, 0xaa, 0xaa, 0xea, +0x1f, 0x62, 0xfd, 0x59, 0xfe, 0xfa, 0xfe, 0xfe, 0x1e, 0x5a, 0xfd, 0x59, +0x5f, 0x57, 0x57, 0x57, 0xfd, 0x59, 0xdb, 0x51, 0xfa, 0xfa, 0xfa, 0xfa, +0xfc, 0x51, 0xba, 0x51, 0xfe, 0xfe, 0xfa, 0xfe, 0xda, 0x51, 0x99, 0x49, +0xea, 0xea, 0xe8, 0xea, 0xb9, 0x51, 0x98, 0x49, 0x7e, 0x7e, 0x7e, 0x7e, +0x97, 0x49, 0x76, 0x41, 0xe8, 0xe8, 0xe8, 0xe8, 0x97, 0x49, 0x75, 0x41, +0x5f, 0x5f, 0x5f, 0x5f, 0x75, 0x41, 0x32, 0x39, 0xea, 0xea, 0xea, 0xea, +0x53, 0x39, 0x32, 0x39, 0x7e, 0x7e, 0x5e, 0x7e, 0x31, 0x39, 0x10, 0x31, +0xfa, 0xfa, 0x78, 0x7a, 0x0f, 0x31, 0xcd, 0x28, 0xa0, 0x80, 0x80, 0x80, +0xee, 0x30, 0xed, 0x28, 0x5e, 0x7e, 0x5e, 0x5e, 0xcc, 0x28, 0xaa, 0x20, +0xa0, 0xa0, 0xa0, 0xa0, 0xcc, 0x28, 0xaa, 0x20, 0x5f, 0x5f, 0x5f, 0x5f, +0xaa, 0x20, 0x88, 0x18, 0xfa, 0xfa, 0xfa, 0xfa, 0x88, 0x18, 0x66, 0x18, +0xe8, 0xe8, 0xe8, 0xe8, 0x87, 0x18, 0x45, 0x10, 0xfa, 0xfa, 0xfa, 0xfa, +0x66, 0x10, 0x44, 0x10, 0x7e, 0x7e, 0x7e, 0x7e, 0x44, 0x10, 0x22, 0x08, +0xa8, 0xe8, 0xa8, 0xe8, 0x44, 0x10, 0x22, 0x08, 0x5f, 0x7f, 0x7f, 0x7f, +0x22, 0x08, 0x01, 0x08, 0xea, 0xfa, 0xfa, 0xea, 0x01, 0x08, 0x00, 0x00, +0xaa, 0xea, 0xaa, 0xaa, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, +0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, +0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, +0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, +0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, +0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, +0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, +0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, +0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x55, 0xa9, 0xa9, 0xa9, +0x00, 0x00, 0xff, 0xff, 0x55, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0xff, 0xff, +0x55, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0xff, 0xff, 0x55, 0x6a, 0x6a, 0x6a, +0xff, 0xff, 0x71, 0x39, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x71, 0x39, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x71, 0x39, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0x71, 0x39, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0x51, 0x8c, +0x00, 0x50, 0x78, 0x44, 0x00, 0x00, 0xff, 0xff, 0x55, 0xaa, 0xaa, 0xaa, +0x00, 0x00, 0xff, 0xff, 0x55, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0xff, 0xff, +0x55, 0x6a, 0x6a, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0xa9, 0xfb, 0xdf, 0x0a, 0x52, +0xff, 0xff, 0xff, 0xff, 0x3c, 0xe7, 0x69, 0x4a, 0xbf, 0x3f, 0x2f, 0x8f, +0xff, 0xff, 0xef, 0x7b, 0x16, 0x17, 0x15, 0x15, 0xde, 0xff, 0xc8, 0x88, +0xff, 0xff, 0xff, 0xff, 0xde, 0xff, 0xc8, 0x88, 0xff, 0xff, 0xff, 0xff, +0xde, 0xff, 0xc8, 0x88, 0xff, 0xff, 0xff, 0xff, 0xde, 0xff, 0xc8, 0x88, +0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0xa9, +0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, +0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x6a, +0x1f, 0x62, 0x1e, 0x5a, 0xaa, 0xea, 0xaa, 0xea, 0x1f, 0x62, 0xfd, 0x59, +0xfe, 0xfe, 0xfe, 0xfe, 0x1e, 0x5a, 0xfd, 0x59, 0x57, 0x57, 0x57, 0x57, +0xfd, 0x59, 0xdb, 0x51, 0xfa, 0xfa, 0xfa, 0xfa, 0xdb, 0x51, 0xb9, 0x51, +0xa0, 0xa0, 0xa0, 0x80, 0xba, 0x51, 0xb9, 0x49, 0xe8, 0xe8, 0xe8, 0xe8, +0xda, 0x51, 0x98, 0x49, 0x5f, 0x7f, 0x7f, 0x5f, 0x97, 0x49, 0x76, 0x41, +0xe8, 0xe8, 0xe8, 0xe0, 0x97, 0x49, 0x75, 0x41, 0x57, 0x57, 0x5f, 0x5f, +0x75, 0x41, 0x32, 0x39, 0xea, 0xea, 0xea, 0xea, 0x53, 0x39, 0x32, 0x39, +0x5c, 0x5e, 0x7e, 0x5e, 0x32, 0x39, 0x0f, 0x31, 0xfa, 0xfa, 0xfa, 0xfa, +0x0f, 0x31, 0xee, 0x28, 0xe0, 0xe0, 0xa0, 0xa0, 0x10, 0x31, 0xed, 0x28, +0x5f, 0x5f, 0x5f, 0x5f, 0xcc, 0x28, 0xcb, 0x20, 0xe0, 0xe8, 0xe8, 0xe0, +0xcc, 0x28, 0xaa, 0x20, 0x5f, 0x5f, 0x5f, 0x5f, 0xa9, 0x20, 0x88, 0x18, +0xe8, 0xe8, 0xe8, 0xe8, 0x88, 0x18, 0x66, 0x18, 0xe8, 0xe8, 0xe8, 0xe8, +0x67, 0x18, 0x65, 0x10, 0xfe, 0xfa, 0xfe, 0xfa, 0x66, 0x10, 0x44, 0x10, +0x7e, 0x7e, 0x7e, 0x7e, 0x44, 0x10, 0x22, 0x08, 0xa8, 0xa8, 0xa8, 0xa8, +0x44, 0x10, 0x22, 0x08, 0x5f, 0x7f, 0x7f, 0x7f, 0x22, 0x08, 0x01, 0x08, +0xf8, 0xe8, 0xea, 0xea, 0x01, 0x08, 0x00, 0x00, 0xaa, 0xe8, 0xea, 0xe8, +0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, +0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, +0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, +0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, +0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, +0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, +0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, +0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, +0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0xa9, 0xfb, 0xdf, 0x0a, 0x52, +0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, +0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x6a, 0xff, 0xff, 0x71, 0x39, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x71, 0x39, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0x71, 0x39, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x71, 0x39, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x10, 0x84, 0xe4, 0x34, 0x94, 0xd4, +0x3c, 0xe7, 0x69, 0x4a, 0xff, 0xff, 0xfe, 0xfc, 0xfb, 0xdf, 0x0a, 0x52, +0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x6a, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, +0xa9, 0xa9, 0xa9, 0xa9, 0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, +0x9d, 0xef, 0x30, 0x84, 0x4d, 0x79, 0x51, 0x5a, 0x00, 0x00, 0xff, 0xff, +0x6a, 0x6a, 0x6a, 0x6a, 0xde, 0xff, 0xc8, 0x88, 0xff, 0xff, 0xff, 0xff, +0xde, 0xff, 0xc8, 0x88, 0xff, 0xff, 0xff, 0xff, 0xde, 0xff, 0xc8, 0x88, +0xff, 0xff, 0xff, 0xff, 0xde, 0xff, 0xc8, 0x88, 0xff, 0xff, 0xff, 0xff, +0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0xa9, 0xfb, 0xdf, 0x0a, 0x52, +0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, +0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x6a, 0x1f, 0x62, 0x1e, 0x5a, +0xea, 0xea, 0xea, 0xea, 0x1f, 0x62, 0xfd, 0x59, 0xfe, 0xfe, 0xfa, 0xfe, +0x1e, 0x5a, 0xfd, 0x59, 0x57, 0x5f, 0x57, 0x57, 0xfd, 0x59, 0xdb, 0x51, +0xfa, 0xfa, 0xfa, 0xfa, 0xdb, 0x51, 0xba, 0x51, 0xe0, 0xe0, 0xe0, 0xe0, +0xba, 0x51, 0xb9, 0x49, 0xe8, 0xe8, 0xe8, 0xe8, 0xda, 0x51, 0x98, 0x49, +0x5f, 0x5f, 0x5f, 0x5f, 0x97, 0x49, 0x76, 0x41, 0xe8, 0xe0, 0xe8, 0xe0, +0x97, 0x49, 0x75, 0x41, 0x5f, 0x5f, 0x5f, 0x5f, 0x75, 0x41, 0x32, 0x39, +0xea, 0xea, 0xea, 0xea, 0x53, 0x39, 0x32, 0x39, 0x7e, 0x7a, 0x7a, 0x7e, +0x31, 0x39, 0x10, 0x31, 0x78, 0xf8, 0xf8, 0x78, 0x0f, 0x31, 0xee, 0x28, +0xa0, 0xe0, 0xa0, 0xe0, 0x10, 0x31, 0xed, 0x28, 0x5f, 0x5f, 0x5f, 0x5f, +0xed, 0x28, 0xaa, 0x20, 0xea, 0xea, 0xea, 0xea, 0xcc, 0x28, 0xaa, 0x20, +0x5f, 0x5f, 0x5f, 0x5f, 0xaa, 0x20, 0x88, 0x18, 0xfa, 0xfa, 0xfa, 0xfa, +0x88, 0x18, 0x66, 0x18, 0xe8, 0xe8, 0xe8, 0xe8, 0x67, 0x18, 0x65, 0x10, +0xfa, 0xfa, 0xf8, 0xfa, 0x66, 0x10, 0x44, 0x10, 0x7e, 0x7e, 0x7e, 0x7e, +0x44, 0x10, 0x22, 0x08, 0xa8, 0xa8, 0xa8, 0xa8, 0x44, 0x10, 0x22, 0x08, +0x5f, 0x5f, 0x7f, 0x5f, 0x22, 0x08, 0x01, 0x08, 0xea, 0xea, 0xea, 0xe8, +0x01, 0x08, 0x00, 0x00, 0xea, 0xea, 0xe8, 0xea, 0xd3, 0x9d, 0x02, 0x10, +0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, +0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, +0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, +0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, +0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, +0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, +0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, +0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, +0xa9, 0xa9, 0xa9, 0xa9, 0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, +0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, +0x6a, 0x6a, 0x6a, 0x6a, 0xff, 0xff, 0x71, 0x39, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0x71, 0x39, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x71, 0x39, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x71, 0x39, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0x08, 0x42, 0xfc, 0xfc, 0xfc, 0xfc, 0x9e, 0xf7, 0x30, 0x84, +0x5c, 0x5b, 0x51, 0x69, 0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, +0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x6a, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0x55, +0xff, 0xff, 0xef, 0x7b, 0x55, 0xd5, 0x95, 0x00, 0xbe, 0xf7, 0x10, 0x84, +0x5c, 0x54, 0x57, 0x00, 0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x55, +0xde, 0xff, 0xc8, 0x88, 0xff, 0xff, 0xff, 0xff, 0xde, 0xff, 0xc8, 0x88, +0xff, 0xff, 0xff, 0xff, 0xde, 0xff, 0xc8, 0x88, 0xff, 0xff, 0xff, 0xff, +0xde, 0xff, 0xc8, 0x88, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, +0xa9, 0xa9, 0xa9, 0x55, 0x00, 0x00, 0xff, 0xff, 0xaa, 0xaa, 0xaa, 0x55, +0x00, 0x00, 0xff, 0xff, 0xaa, 0xaa, 0xaa, 0x55, 0x00, 0x00, 0xff, 0xff, +0x6a, 0x6a, 0x6a, 0x55, 0x1f, 0x62, 0x1e, 0x5a, 0xea, 0xaa, 0xea, 0xea, +0x1f, 0x62, 0xfd, 0x59, 0xfe, 0xfe, 0xfe, 0xfe, 0x1e, 0x5a, 0xfd, 0x59, +0x57, 0x57, 0x57, 0x57, 0xfd, 0x59, 0xdb, 0x51, 0xea, 0xfa, 0xfa, 0xea, +0xdb, 0x51, 0xb9, 0x51, 0x80, 0x80, 0xa0, 0x80, 0xba, 0x51, 0xb8, 0x49, +0xa8, 0xa8, 0xa8, 0xa0, 0xb9, 0x51, 0x98, 0x49, 0x7e, 0x7e, 0x7e, 0x7e, +0x97, 0x49, 0x76, 0x41, 0xa8, 0xe8, 0xe8, 0xe0, 0x97, 0x49, 0x75, 0x41, +0x5f, 0x5f, 0x57, 0x5f, 0x75, 0x41, 0x32, 0x39, 0xea, 0xea, 0xea, 0xea, +0x53, 0x39, 0x32, 0x39, 0x58, 0x7e, 0x7a, 0x7a, 0x32, 0x39, 0x0f, 0x31, +0xfa, 0xfa, 0xfa, 0xfa, 0x0f, 0x31, 0xee, 0x28, 0xa0, 0xe0, 0xe0, 0xe0, +0xef, 0x30, 0xed, 0x28, 0x5e, 0x7f, 0x5e, 0x7f, 0xed, 0x28, 0xaa, 0x20, +0xea, 0xea, 0xea, 0xea, 0xcc, 0x28, 0xaa, 0x20, 0x5f, 0x5f, 0x5f, 0x5f, +0xa9, 0x20, 0x88, 0x18, 0xf8, 0xe8, 0xe8, 0xe8, 0x88, 0x18, 0x66, 0x18, +0xe8, 0xe8, 0xe8, 0xe8, 0x67, 0x18, 0x65, 0x10, 0xfa, 0xfa, 0xfa, 0xfa, +0x66, 0x10, 0x44, 0x10, 0x7e, 0x7e, 0x7e, 0x7e, 0x44, 0x10, 0x22, 0x08, +0xa8, 0xa8, 0xa8, 0xe0, 0x44, 0x10, 0x22, 0x08, 0x7f, 0x7f, 0x5f, 0x5f, +0x22, 0x08, 0x01, 0x08, 0xfa, 0xf8, 0xfa, 0xf8, 0x01, 0x08, 0x00, 0x00, +0xa8, 0xa8, 0xa8, 0xa8, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, +0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, +0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, +0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, +0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, +0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, +0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, +0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, +0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0x55, +0x00, 0x00, 0xff, 0xff, 0xaa, 0xaa, 0xaa, 0x55, 0x00, 0x00, 0xff, 0xff, +0xaa, 0xaa, 0xaa, 0x55, 0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x55, +0xff, 0xff, 0x71, 0x39, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x71, 0x39, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x71, 0x39, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0x71, 0x39, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, +0xa9, 0xa9, 0xa9, 0x55, 0xbe, 0xf7, 0x10, 0x84, 0x4d, 0xc5, 0xb5, 0x00, +0x00, 0x00, 0xff, 0xff, 0xaa, 0xaa, 0xaa, 0x55, 0x00, 0x00, 0xff, 0xff, +0x6a, 0x6a, 0x6a, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0xff, 0xff, 0x55, 0xa9, 0xa9, 0xa9, 0xff, 0xff, 0x30, 0x84, +0x00, 0xe5, 0x45, 0x6d, 0x00, 0x00, 0xff, 0xff, 0x55, 0xaa, 0xaa, 0xaa, +0x00, 0x00, 0xff, 0xff, 0x55, 0x6a, 0x6a, 0x6a, 0xde, 0xff, 0xc8, 0x88, +0xff, 0xff, 0xff, 0xff, 0xde, 0xff, 0xc8, 0x88, 0xff, 0xff, 0xff, 0xff, +0xde, 0xff, 0xc8, 0x88, 0xff, 0xff, 0xff, 0xff, 0xde, 0xff, 0xc8, 0x88, +0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x55, 0xa9, 0xa9, 0xa9, +0x00, 0x00, 0xff, 0xff, 0x55, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0xff, 0xff, +0x55, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0xff, 0xff, 0x55, 0x6a, 0x6a, 0x6a, +0x8c, 0xf8, 0x6b, 0xf0, 0xaa, 0xaa, 0xaa, 0xea, 0x8c, 0xf0, 0x6b, 0xf0, +0xff, 0xdf, 0xff, 0xff, 0x8b, 0xf0, 0x6b, 0xe8, 0x5f, 0x5f, 0x7f, 0x5f, +0x6b, 0xe8, 0x6a, 0xd8, 0xfa, 0xfa, 0xfa, 0xfa, 0x6a, 0xd8, 0x6a, 0xd0, +0xe0, 0xa0, 0xe0, 0xe0, 0x6a, 0xd0, 0x69, 0xc8, 0xf8, 0xf8, 0x78, 0xf8, +0x69, 0xc8, 0x49, 0xb8, 0xa8, 0xe8, 0xe8, 0xe8, 0x69, 0xc0, 0x48, 0xb0, +0xfa, 0xfa, 0xfa, 0xfe, 0x69, 0xb8, 0x48, 0xa8, 0x5f, 0x5f, 0x5f, 0x5f, +0x48, 0xa8, 0x47, 0x98, 0x7a, 0xfa, 0xfa, 0xfa, 0x47, 0x98, 0x47, 0x90, +0x7c, 0x5c, 0x58, 0x5c, 0x47, 0x90, 0x46, 0x80, 0x7a, 0x7e, 0x7a, 0x7e, +0x46, 0x80, 0x45, 0x70, 0xf8, 0xf8, 0xf8, 0xf8, 0x45, 0x70, 0x25, 0x68, +0x78, 0x78, 0x78, 0x78, 0x25, 0x68, 0x24, 0x58, 0xfa, 0xfa, 0xfa, 0xfa, +0x24, 0x58, 0x24, 0x50, 0x78, 0x78, 0x78, 0x78, 0x24, 0x50, 0x23, 0x40, +0xfa, 0xfa, 0xfa, 0xfa, 0x23, 0x40, 0x23, 0x38, 0x78, 0x78, 0x78, 0x78, +0x23, 0x38, 0x02, 0x28, 0xea, 0xea, 0xea, 0xea, 0x22, 0x30, 0x02, 0x20, +0xfa, 0xfe, 0xfa, 0xfa, 0x02, 0x20, 0x01, 0x18, 0xe8, 0xe8, 0xe8, 0xf8, +0x01, 0x18, 0x01, 0x10, 0xf8, 0xf8, 0xf8, 0xe8, 0x01, 0x10, 0x00, 0x08, +0xe8, 0xe8, 0xe8, 0xe0, 0x01, 0x10, 0x00, 0x00, 0xfe, 0xfe, 0xfe, 0xfe, +0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, +0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, +0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, +0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, +0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, +0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, +0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, +0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, +0x00, 0x00, 0xff, 0xff, 0x55, 0xa9, 0xa9, 0xa9, 0x00, 0x00, 0xff, 0xff, +0x55, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0xff, 0xff, 0x55, 0xaa, 0xaa, 0xaa, +0x00, 0x00, 0xff, 0xff, 0x55, 0x6a, 0x6a, 0x6a, 0xff, 0xff, 0x71, 0x39, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x71, 0x39, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0x71, 0x39, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x71, 0x39, +0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x55, 0xa9, 0xa9, 0xa9, +0xff, 0xff, 0x10, 0x84, 0x00, 0xd5, 0x55, 0x55, 0xff, 0xff, 0x10, 0x84, +0x00, 0x56, 0x54, 0x5e, 0x00, 0x00, 0xff, 0xff, 0x55, 0x6a, 0x6a, 0x6a, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, +0xa9, 0xa9, 0xa9, 0xa9, 0x7d, 0xef, 0x10, 0x84, 0x79, 0x51, 0x53, 0x5a, +0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, +0x6a, 0x6a, 0x6a, 0x6a, 0xde, 0xff, 0xc8, 0x88, 0xff, 0xff, 0xff, 0xff, +0xde, 0xff, 0xc8, 0x88, 0xff, 0xff, 0xff, 0xff, 0xde, 0xff, 0xc8, 0x88, +0xff, 0xff, 0xff, 0xff, 0xde, 0xff, 0xc8, 0x88, 0xff, 0xff, 0xff, 0xff, +0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0xa9, 0xfb, 0xdf, 0x0a, 0x52, +0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, +0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x6a, 0x6c, 0xf8, 0x6b, 0xf0, +0xe8, 0xa8, 0xe8, 0xa8, 0x8b, 0xf8, 0x6b, 0xe8, 0xea, 0xfa, 0xfa, 0xea, +0x8b, 0xf0, 0x6b, 0xe8, 0x57, 0x57, 0x57, 0x57, 0x6b, 0xe8, 0x6a, 0xd8, +0xfa, 0xfa, 0xfa, 0xfa, 0x6a, 0xd8, 0x6a, 0xd0, 0xa0, 0xa0, 0xa0, 0xe0, +0x6a, 0xd0, 0x69, 0xc8, 0x60, 0x68, 0xf8, 0xe8, 0x6a, 0xd0, 0x69, 0xc0, +0x5f, 0x5f, 0x5f, 0x5f, 0x69, 0xc0, 0x48, 0xb0, 0xfa, 0xfa, 0xfa, 0xfa, +0x68, 0xb0, 0x48, 0xa8, 0x7e, 0x7a, 0x7e, 0x7a, 0x48, 0xa8, 0x47, 0x98, +0x7a, 0xfa, 0x7a, 0xfa, 0x47, 0x90, 0x47, 0x98, 0x09, 0x09, 0x09, 0x09, +0x47, 0x90, 0x46, 0x80, 0x7e, 0x7e, 0x7e, 0x7e, 0x46, 0x80, 0x25, 0x70, +0xe8, 0xe8, 0xe8, 0xf8, 0x46, 0x78, 0x25, 0x68, 0x7e, 0x7e, 0x7e, 0x7e, +0x45, 0x68, 0x24, 0x58, 0xfa, 0xfe, 0xfa, 0xfa, 0x24, 0x58, 0x24, 0x50, +0x78, 0x78, 0x78, 0x78, 0x24, 0x50, 0x23, 0x40, 0xfa, 0xfa, 0xfa, 0xfa, +0x23, 0x40, 0x23, 0x38, 0x78, 0x78, 0x78, 0x78, 0x23, 0x38, 0x02, 0x28, +0xea, 0xea, 0xfa, 0xea, 0x02, 0x30, 0x22, 0x20, 0xfe, 0xfe, 0xfa, 0xfa, +0x22, 0x28, 0x01, 0x18, 0x7e, 0x7e, 0xfe, 0xfe, 0x01, 0x18, 0x01, 0x10, +0xe8, 0xe8, 0xe8, 0xe8, 0x01, 0x10, 0x00, 0x08, 0xe8, 0xe8, 0xe8, 0xe0, +0x01, 0x08, 0x00, 0x08, 0xff, 0xff, 0xfb, 0xff, 0xd3, 0x9d, 0x02, 0x10, +0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, +0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, +0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, +0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, +0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, +0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, +0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, +0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, +0xa9, 0xa9, 0xa9, 0xa9, 0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, +0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, +0x6a, 0x6a, 0x6a, 0x6a, 0xff, 0xff, 0x71, 0x39, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0x71, 0x39, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x71, 0x39, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x71, 0x39, 0xff, 0xff, 0xff, 0xff, +0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0xa9, 0xfb, 0xdf, 0x0a, 0x52, +0xff, 0xff, 0xff, 0xff, 0x7d, 0xef, 0x10, 0x84, 0x5b, 0x51, 0x71, 0x69, +0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x6a, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0xdf, 0xff, 0x10, 0x84, 0x54, 0x54, 0xd4, 0x94, +0x1c, 0xe7, 0xef, 0x7b, 0x5c, 0x54, 0x54, 0x56, 0xfb, 0xdf, 0x0a, 0x52, +0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x6a, +0xde, 0xff, 0xc8, 0x88, 0xff, 0xff, 0xff, 0xff, 0xde, 0xff, 0xc8, 0x88, +0xff, 0xff, 0xff, 0xff, 0xde, 0xff, 0xc8, 0x88, 0xff, 0xff, 0xff, 0xff, +0xde, 0xff, 0xc8, 0x88, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, +0xa9, 0xa9, 0xa9, 0xa9, 0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, +0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, +0x6a, 0x6a, 0x6a, 0x6a, 0x8c, 0xf8, 0x6b, 0xf0, 0xfa, 0xea, 0xea, 0xea, +0x8c, 0xf0, 0x6b, 0xf0, 0xfa, 0xfe, 0xfa, 0xff, 0x8b, 0xf0, 0x6b, 0xe8, +0x5f, 0x5f, 0x5e, 0x5f, 0x6b, 0xe8, 0x6a, 0xd8, 0xfa, 0xfa, 0xfa, 0xfa, +0x6a, 0xd8, 0x6a, 0xd0, 0xe0, 0xa0, 0xa0, 0xe0, 0x6a, 0xd0, 0x69, 0xc8, +0xf8, 0xe8, 0xf8, 0xf8, 0x6a, 0xc8, 0x69, 0xc0, 0x7e, 0x7e, 0x5e, 0x5e, +0x69, 0xc0, 0x48, 0xb0, 0xfa, 0xfa, 0xfa, 0xfa, 0x68, 0xb0, 0x48, 0xa8, +0x7e, 0x5e, 0x7a, 0x7e, 0x48, 0xa8, 0x47, 0x98, 0x7a, 0x7a, 0x7a, 0xfa, +0x47, 0x90, 0x47, 0x98, 0x09, 0x09, 0x09, 0x09, 0x47, 0x90, 0x46, 0x80, +0x7e, 0x7e, 0x7a, 0x7e, 0x46, 0x80, 0x25, 0x70, 0xfa, 0xea, 0xea, 0xea, +0x46, 0x78, 0x25, 0x68, 0x7e, 0x7e, 0x7e, 0x7e, 0x45, 0x68, 0x24, 0x58, +0xfe, 0xfa, 0xfe, 0xfe, 0x24, 0x58, 0x24, 0x50, 0x78, 0x78, 0x78, 0x78, +0x24, 0x50, 0x23, 0x40, 0xfa, 0xfa, 0xfa, 0xfa, 0x23, 0x40, 0x23, 0x38, +0x78, 0x78, 0x78, 0x78, 0x23, 0x38, 0x22, 0x28, 0xea, 0xfa, 0xfa, 0xfa, +0x22, 0x30, 0x02, 0x20, 0xfa, 0xfe, 0xfa, 0xfa, 0x22, 0x28, 0x01, 0x18, +0xfe, 0xfe, 0xfe, 0xfe, 0x01, 0x18, 0x01, 0x10, 0xe8, 0xe8, 0xe8, 0xf8, +0x01, 0x10, 0x00, 0x08, 0xe8, 0xe8, 0xe0, 0xe8, 0x01, 0x10, 0x00, 0x00, +0xfe, 0xfa, 0xfa, 0xfe, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, +0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, +0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, +0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, +0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, +0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, +0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, +0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, +0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0xa9, +0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, +0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x6a, +0xff, 0xff, 0x71, 0x39, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x71, 0x39, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x71, 0x39, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0x71, 0x39, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, +0xa9, 0xa9, 0xa9, 0xa9, 0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, +0x7d, 0xef, 0x10, 0x84, 0x4d, 0x45, 0xe5, 0xa5, 0x00, 0x00, 0xff, 0xff, +0x6a, 0x6a, 0x6a, 0x6a, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0xff, 0xff, 0x10, 0x84, 0x94, 0x14, 0xb4, 0x00, 0xdf, 0xff, 0xef, 0x7b, +0x57, 0x55, 0x55, 0x00, 0x00, 0x00, 0xff, 0xff, 0xaa, 0xaa, 0xaa, 0x55, +0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x55, 0xde, 0xff, 0xc8, 0x88, +0xff, 0xff, 0xff, 0xff, 0xde, 0xff, 0xc8, 0x88, 0xff, 0xff, 0xff, 0xff, +0xde, 0xff, 0xc8, 0x88, 0xff, 0xff, 0xff, 0xff, 0xde, 0xff, 0xc8, 0x88, +0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0x55, +0x00, 0x00, 0xff, 0xff, 0xaa, 0xaa, 0xaa, 0x55, 0x00, 0x00, 0xff, 0xff, +0xaa, 0xaa, 0xaa, 0x55, 0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x55, +0x8c, 0xf8, 0x6b, 0xf0, 0xea, 0xea, 0xea, 0xea, 0x8c, 0xf0, 0x6b, 0xf0, +0xff, 0xff, 0xff, 0xfb, 0x6b, 0xf0, 0x6b, 0xe0, 0xea, 0xfa, 0xea, 0xfa, +0x6b, 0xe8, 0x6a, 0xd8, 0xfa, 0xfa, 0xfa, 0xfa, 0x6a, 0xd8, 0x6a, 0xd0, +0xe0, 0xe0, 0xa0, 0xe0, 0x6a, 0xd0, 0x69, 0xc8, 0x70, 0xe8, 0x78, 0xe8, +0x6a, 0xd0, 0x69, 0xc0, 0x5f, 0x5f, 0x5f, 0x5f, 0x69, 0xc0, 0x48, 0xb0, +0xfe, 0xfe, 0xfa, 0x7a, 0x68, 0xb0, 0x48, 0xa8, 0x7a, 0x7a, 0x7e, 0x7a, +0x48, 0xa8, 0x47, 0x98, 0xfa, 0xfa, 0xfa, 0xfa, 0x47, 0x90, 0x47, 0x98, +0x09, 0x09, 0x09, 0x09, 0x47, 0x90, 0x46, 0x80, 0x7a, 0x7a, 0x7e, 0x7e, +0x46, 0x80, 0x25, 0x70, 0xe8, 0xe8, 0xe8, 0xe8, 0x45, 0x70, 0x25, 0x68, +0x78, 0x78, 0x78, 0x78, 0x25, 0x68, 0x24, 0x58, 0xfa, 0xfa, 0xfa, 0xfa, +0x24, 0x58, 0x24, 0x50, 0x78, 0x78, 0x78, 0x78, 0x24, 0x50, 0x23, 0x40, +0xfa, 0xfa, 0xfa, 0xfa, 0x23, 0x40, 0x23, 0x38, 0x78, 0x78, 0x78, 0x78, +0x23, 0x38, 0x02, 0x28, 0xea, 0xfa, 0xea, 0xea, 0x22, 0x30, 0x02, 0x20, +0xfa, 0xfa, 0xfa, 0xfe, 0x22, 0x28, 0x01, 0x18, 0xfe, 0xfe, 0xfe, 0x7e, +0x01, 0x18, 0x01, 0x10, 0xe8, 0xe8, 0xf8, 0xe8, 0x01, 0x10, 0x00, 0x08, +0xa8, 0xe8, 0xa0, 0xa8, 0x01, 0x10, 0x00, 0x00, 0xfe, 0xfe, 0xfe, 0xfe, +0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, +0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, +0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, +0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, +0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, +0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, +0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, +0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, +0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0x55, 0x00, 0x00, 0xff, 0xff, +0xaa, 0xaa, 0xaa, 0x55, 0x00, 0x00, 0xff, 0xff, 0xaa, 0xaa, 0xaa, 0x55, +0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x55, 0xff, 0xff, 0x71, 0x39, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x71, 0x39, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0x71, 0x39, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x71, 0x39, +0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0x55, +0x00, 0x00, 0xff, 0xff, 0xaa, 0xaa, 0xaa, 0x55, 0xff, 0xff, 0x10, 0x84, +0xb5, 0x15, 0x95, 0x00, 0xff, 0xff, 0x10, 0x84, 0x15, 0x15, 0x17, 0x00, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xde, 0xf7, 0x30, 0x84, +0x00, 0x44, 0x44, 0x6c, 0x00, 0x00, 0xff, 0xff, 0x55, 0xaa, 0xaa, 0xaa, +0x00, 0x00, 0xff, 0xff, 0x55, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0xff, 0xff, +0x55, 0x6a, 0x6a, 0x6a, 0xde, 0xff, 0xc8, 0x88, 0xff, 0xff, 0xff, 0xff, +0xde, 0xff, 0xc8, 0x88, 0xff, 0xff, 0xff, 0xff, 0xde, 0xff, 0xc8, 0x88, +0xff, 0xff, 0xff, 0xff, 0xde, 0xff, 0xc8, 0x88, 0xff, 0xff, 0xff, 0xff, +0x00, 0x00, 0xff, 0xff, 0x55, 0xa9, 0xa9, 0xa9, 0x00, 0x00, 0xff, 0xff, +0x55, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0xff, 0xff, 0x55, 0xaa, 0xaa, 0xaa, +0x00, 0x00, 0xff, 0xff, 0x55, 0x6a, 0x6a, 0x6a, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, +0x55, 0xa9, 0xa9, 0xa9, 0x00, 0x00, 0xff, 0xff, 0x55, 0xaa, 0xaa, 0xaa, +0x00, 0x00, 0xff, 0xff, 0x55, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0xff, 0xff, +0x55, 0x6a, 0x6a, 0x6a, 0xff, 0xff, 0x71, 0x39, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0x71, 0x39, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x71, 0x39, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x71, 0x39, 0xff, 0xff, 0xff, 0xff, +0x00, 0x00, 0xff, 0xff, 0x55, 0xa9, 0xa9, 0xa9, 0x00, 0x00, 0xff, 0xff, +0x55, 0xaa, 0xaa, 0xaa, 0x41, 0x08, 0xff, 0xff, 0x55, 0xaa, 0xaa, 0xaa, +0xbe, 0xf7, 0x10, 0x84, 0x00, 0x14, 0x14, 0x1c, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0xde, 0xf7, 0x30, 0x84, 0x6c, 0x78, 0x78, 0x50, +0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, +0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x6a, +0xde, 0xff, 0xc8, 0x88, 0xff, 0xff, 0xff, 0xff, 0xde, 0xff, 0xc8, 0x88, +0xff, 0xff, 0xff, 0xff, 0xde, 0xff, 0xc8, 0x88, 0xff, 0xff, 0xff, 0xff, +0xde, 0xff, 0xc8, 0x88, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, +0xa9, 0xa9, 0xa9, 0xa9, 0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, +0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, +0x6a, 0x6a, 0x6a, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0xa9, +0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, +0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x6a, +0xff, 0xff, 0x71, 0x39, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x71, 0x39, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x71, 0x39, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0x71, 0x39, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, +0xa9, 0xa9, 0xa9, 0xa9, 0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, +0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0xde, 0xf7, 0x30, 0x84, +0x1e, 0x1b, 0x1b, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0xdf, 0xff, 0x10, 0x84, 0x50, 0x50, 0x58, 0x58, 0xfb, 0xdf, 0x0a, 0x52, +0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, +0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x6a, 0xde, 0xff, 0xc8, 0x88, +0xff, 0xff, 0xff, 0xff, 0xde, 0xff, 0xc8, 0x88, 0xff, 0xff, 0xff, 0xff, +0xde, 0xff, 0xc8, 0x88, 0xff, 0xff, 0xff, 0xff, 0xde, 0xff, 0xc8, 0x88, +0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0xa9, +0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, +0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x6a, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0xa9, 0xfb, 0xdf, 0x0a, 0x52, +0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, +0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x6a, 0xff, 0xff, 0x71, 0x39, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x71, 0x39, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0x71, 0x39, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x71, 0x39, +0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0xa9, +0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, +0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0x30, 0x84, 0x11, 0x11, 0x39, 0x39, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x08, 0x42, +0xf8, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0xff, 0xff, 0xaa, 0xaa, 0xaa, 0x55, +0x00, 0x00, 0xff, 0xff, 0xaa, 0xaa, 0xaa, 0x55, 0x00, 0x00, 0xff, 0xff, +0x6a, 0x6a, 0x6a, 0x55, 0xde, 0xff, 0xc8, 0x88, 0xff, 0xff, 0xff, 0xff, +0xde, 0xff, 0xc8, 0x88, 0xff, 0xff, 0xff, 0xff, 0xde, 0xff, 0xc8, 0x88, +0xff, 0xff, 0xff, 0xff, 0xde, 0xff, 0xc8, 0x88, 0xff, 0xff, 0xff, 0xff, +0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0x55, 0x00, 0x00, 0xff, 0xff, +0xaa, 0xaa, 0xaa, 0x55, 0x00, 0x00, 0xff, 0xff, 0xaa, 0xaa, 0xaa, 0x55, +0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x55, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, +0xa9, 0xa9, 0xa9, 0x55, 0x00, 0x00, 0xff, 0xff, 0xaa, 0xaa, 0xaa, 0x55, +0x00, 0x00, 0xff, 0xff, 0xaa, 0xaa, 0xaa, 0x55, 0x00, 0x00, 0xff, 0xff, +0x6a, 0x6a, 0x6a, 0x55, 0xff, 0xff, 0x71, 0x39, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0x71, 0x39, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x71, 0x39, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x71, 0x39, 0xff, 0xff, 0xff, 0xff, +0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0x55, 0x00, 0x00, 0xff, 0xff, +0xaa, 0xaa, 0xaa, 0x55, 0x00, 0x00, 0xff, 0xff, 0xaa, 0xaa, 0xaa, 0x55, +0xff, 0xff, 0x08, 0x42, 0x2b, 0x2b, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0xa2, 0x10, 0xff, 0xff, 0x55, 0xa9, 0xa9, 0xa9, +0x00, 0x00, 0xff, 0xff, 0x55, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0xff, 0xff, +0x55, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0xff, 0xff, 0x55, 0x6a, 0x6a, 0x6a, +0xde, 0xff, 0xc8, 0x88, 0xff, 0xff, 0xff, 0xff, 0xde, 0xff, 0xc8, 0x88, +0xff, 0xff, 0xff, 0xff, 0xde, 0xff, 0xc8, 0x88, 0xff, 0xff, 0xff, 0xff, +0xde, 0xff, 0xc8, 0x88, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, +0x55, 0xa9, 0xa9, 0xa9, 0x00, 0x00, 0xff, 0xff, 0x55, 0xaa, 0xaa, 0xaa, +0x00, 0x00, 0xff, 0xff, 0x55, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0xff, 0xff, +0x55, 0x6a, 0x6a, 0x6a, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, +0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, +0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0xd3, 0x9d, 0x02, 0x10, +0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, +0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, +0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0xd3, 0x9d, 0x02, 0x10, +0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, +0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, +0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0xd3, 0x9d, 0x02, 0x10, +0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0xa9, 0xa9, 0xa9, +0x00, 0x00, 0xff, 0xff, 0x55, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0xff, 0xff, +0x55, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0xff, 0xff, 0x55, 0x6a, 0x6a, 0x6a, +0xff, 0xff, 0x71, 0x39, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x71, 0x39, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x71, 0x39, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0x71, 0x39, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, +0x55, 0xa9, 0xa9, 0xa9, 0x00, 0x00, 0xff, 0xff, 0x55, 0xaa, 0xaa, 0xaa, +0x00, 0x00, 0xff, 0xff, 0x55, 0xaa, 0xaa, 0xaa, 0x04, 0x21, 0xbe, 0xf7, +0x55, 0x5a, 0x5a, 0x5a, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0xff, 0xff, 0x28, 0x42, 0xfc, 0xfc, 0xfc, 0xfc, 0xfb, 0xdf, 0x0a, 0x52, +0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, +0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x6a, 0xde, 0xff, 0xc8, 0x88, +0xff, 0xff, 0xff, 0xff, 0xde, 0xff, 0xc8, 0x88, 0xff, 0xff, 0xff, 0xff, +0xde, 0xff, 0xc8, 0x88, 0xff, 0xff, 0xff, 0xff, 0xde, 0xff, 0xc8, 0x88, +0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0xa9, +0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, +0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x6a, +0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, +0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0xd3, 0x9d, 0x02, 0x10, +0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, +0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, +0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0xd3, 0x9d, 0x02, 0x10, +0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, +0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, +0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0xd3, 0x9d, 0x02, 0x10, +0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, +0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0xa9, 0xfb, 0xdf, 0x0a, 0x52, +0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, +0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x6a, 0xff, 0xff, 0x71, 0x39, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x71, 0x39, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0x71, 0x39, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x71, 0x39, +0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0xa9, +0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, +0xff, 0xff, 0xff, 0xff, 0xde, 0xf7, 0x49, 0x4a, 0x0f, 0x0f, 0x0f, 0x0f, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0xff, 0xff, 0x28, 0x42, +0xfc, 0xfc, 0xfc, 0xfc, 0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, +0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, +0x6a, 0x6a, 0x6a, 0x6a, 0xfb, 0xd5, 0x0a, 0x04, 0xff, 0xff, 0xff, 0xff, +0xfb, 0xd5, 0x0a, 0x04, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xd5, 0x0a, 0x04, +0xff, 0xff, 0xff, 0xff, 0xfb, 0xd5, 0x0a, 0x04, 0xff, 0xff, 0xff, 0xff, +0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0xa9, 0xfb, 0xdf, 0x0a, 0x52, +0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, +0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x6a, 0xd3, 0x9d, 0x02, 0x10, +0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, +0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, +0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0xd3, 0x9d, 0x02, 0x10, +0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, +0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, +0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0xd3, 0x9d, 0x02, 0x10, +0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, +0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, +0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, +0xa9, 0xa9, 0xa9, 0xa9, 0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, +0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, +0x6a, 0x6a, 0x6a, 0x6a, 0xda, 0xfd, 0x60, 0x3b, 0xff, 0xff, 0xff, 0xff, +0xda, 0xfd, 0x60, 0x3b, 0xff, 0xff, 0xff, 0xff, 0xda, 0xfd, 0x60, 0x3b, +0xff, 0xff, 0xff, 0xff, 0xda, 0xfd, 0x60, 0x3b, 0xff, 0xff, 0xff, 0xff, +0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0xa9, 0xfb, 0xdf, 0x0a, 0x52, +0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, +0x10, 0x84, 0xdf, 0xff, 0x50, 0x50, 0x50, 0x50, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0xa2, 0x10, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0x55, +0x00, 0x00, 0xff, 0xff, 0xaa, 0xaa, 0xaa, 0x55, 0x00, 0x00, 0xff, 0xff, +0xaa, 0xaa, 0xaa, 0x55, 0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x55, +0xfb, 0xd5, 0x0a, 0x04, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xd5, 0x0a, 0x04, +0xff, 0xff, 0xff, 0xff, 0xfb, 0xd5, 0x0a, 0x04, 0xff, 0xff, 0xff, 0xff, +0xfb, 0xd5, 0x0a, 0x04, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, +0xa9, 0xa9, 0xa9, 0x55, 0x00, 0x00, 0xff, 0xff, 0xaa, 0xaa, 0xaa, 0x55, +0x00, 0x00, 0xff, 0xff, 0xaa, 0xaa, 0xaa, 0x55, 0x00, 0x00, 0xff, 0xff, +0x6a, 0x6a, 0x6a, 0x55, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, +0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, +0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0xd3, 0x9d, 0x02, 0x10, +0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, +0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, +0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0xd3, 0x9d, 0x02, 0x10, +0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, +0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, +0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0xd3, 0x9d, 0x02, 0x10, +0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0x55, +0x00, 0x00, 0xff, 0xff, 0xaa, 0xaa, 0xaa, 0x55, 0x00, 0x00, 0xff, 0xff, +0xaa, 0xaa, 0xaa, 0x55, 0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x55, +0xda, 0xfd, 0x60, 0x3b, 0xff, 0xff, 0xff, 0xff, 0xda, 0xfd, 0x60, 0x3b, +0xff, 0xff, 0xff, 0xff, 0xda, 0xfd, 0x60, 0x3b, 0xff, 0xff, 0xff, 0xff, +0xda, 0xfd, 0x60, 0x3b, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, +0xa9, 0xa9, 0xa9, 0x55, 0x00, 0x00, 0xff, 0xff, 0xaa, 0xaa, 0xaa, 0x55, +0x00, 0x00, 0xff, 0xff, 0xaa, 0xaa, 0xaa, 0x55, 0xbe, 0xf7, 0xaa, 0x52, +0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0xff, 0xff, 0x08, 0x42, 0x00, 0xf8, 0xf8, 0xf8, 0x00, 0x00, 0xff, 0xff, +0x55, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0xff, 0xff, 0x55, 0xaa, 0xaa, 0xaa, +0x00, 0x00, 0xff, 0xff, 0x55, 0x6a, 0x6a, 0x6a, 0xfb, 0xd5, 0x0a, 0x04, +0xff, 0xff, 0xff, 0xff, 0xfb, 0xd5, 0x0a, 0x04, 0xff, 0xff, 0xff, 0xff, +0xfb, 0xd5, 0x0a, 0x04, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xd5, 0x0a, 0x04, +0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x55, 0xa9, 0xa9, 0xa9, +0x00, 0x00, 0xff, 0xff, 0x55, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0xff, 0xff, +0x55, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0xff, 0xff, 0x55, 0x6a, 0x6a, 0x6a, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0xd6, 0xb5, 0x21, 0x08, 0xff, 0xff, 0xff, 0xff, +0xd6, 0xb5, 0x21, 0x08, 0xff, 0xff, 0xff, 0xff, 0xd6, 0xb5, 0x21, 0x08, +0xff, 0xff, 0xff, 0xff, 0xd6, 0xb5, 0x21, 0x08, 0xff, 0xff, 0xff, 0xff, +0xd6, 0xb5, 0x21, 0x08, 0xff, 0xff, 0xff, 0xff, 0xd6, 0xb5, 0x21, 0x08, +0xff, 0xff, 0xff, 0xff, 0xd6, 0xb5, 0x21, 0x08, 0xff, 0xff, 0xff, 0xff, +0xd6, 0xb5, 0x21, 0x08, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, +0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, +0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, +0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, +0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, +0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, +0xde, 0xf5, 0x14, 0xa6, 0xff, 0xff, 0xff, 0xff, 0xde, 0xf5, 0x14, 0xa6, +0xff, 0xff, 0xff, 0xff, 0xde, 0xf5, 0x14, 0xa6, 0xff, 0xff, 0xff, 0xff, +0xde, 0xf5, 0x14, 0xa6, 0xff, 0xff, 0xff, 0xff, 0xde, 0xf5, 0x14, 0xa6, +0xff, 0xff, 0xff, 0xff, 0xde, 0xf5, 0x14, 0xa6, 0xff, 0xff, 0xff, 0xff, +0xde, 0xf5, 0x14, 0xa6, 0xff, 0xff, 0xff, 0xff, 0xde, 0xf5, 0x14, 0xa6, +0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0xff, 0xff, 0x55, 0xa9, 0xa9, 0xa9, 0x00, 0x00, 0xff, 0xff, +0x55, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0xff, 0xff, 0x55, 0xaa, 0xaa, 0xaa, +0x00, 0x00, 0xff, 0xff, 0x55, 0x6a, 0x6a, 0x6a, 0xda, 0xfd, 0x60, 0x3b, +0xff, 0xff, 0xff, 0xff, 0xda, 0xfd, 0x60, 0x3b, 0xff, 0xff, 0xff, 0xff, +0xda, 0xfd, 0x60, 0x3b, 0xff, 0xff, 0xff, 0xff, 0xda, 0xfd, 0x60, 0x3b, +0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x55, 0xa9, 0xa9, 0xa9, +0x00, 0x00, 0xff, 0xff, 0x55, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0xff, 0xff, +0x55, 0xaa, 0xaa, 0xaa, 0xff, 0xff, 0x08, 0x42, 0x00, 0x2b, 0x2b, 0x2b, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xdf, 0xff, 0x10, 0x84, +0x58, 0x58, 0x50, 0x50, 0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, +0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, +0x6a, 0x6a, 0x6a, 0x6a, 0xfb, 0xd5, 0x0a, 0x04, 0xff, 0xff, 0xff, 0xff, +0xfb, 0xd5, 0x0a, 0x04, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xd5, 0x0a, 0x04, +0xff, 0xff, 0xff, 0xff, 0xfb, 0xd5, 0x0a, 0x04, 0xff, 0xff, 0xff, 0xff, +0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0xa9, 0xfb, 0xdf, 0x0a, 0x52, +0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, +0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x6a, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0xd6, 0xb5, 0x21, 0x08, 0xff, 0xff, 0xff, 0xff, 0xd6, 0xb5, 0x21, 0x08, +0xff, 0xff, 0xff, 0xff, 0xd6, 0xb5, 0x21, 0x08, 0xff, 0xff, 0xff, 0xff, +0xd6, 0xb5, 0x21, 0x08, 0xff, 0xff, 0xff, 0xff, 0xd6, 0xb5, 0x21, 0x08, +0xff, 0xff, 0xff, 0xff, 0xd6, 0xb5, 0x21, 0x08, 0xff, 0xff, 0xff, 0xff, +0xd6, 0xb5, 0x21, 0x08, 0xff, 0xff, 0xff, 0xff, 0xd6, 0xb5, 0x21, 0x08, +0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, +0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, +0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, +0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, +0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, +0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0xde, 0xf5, 0x14, 0xa6, +0xff, 0xff, 0xff, 0xff, 0xde, 0xf5, 0x14, 0xa6, 0xff, 0xff, 0xff, 0xff, +0xde, 0xf5, 0x14, 0xa6, 0xff, 0xff, 0xff, 0xff, 0xde, 0xf5, 0x14, 0xa6, +0xff, 0xff, 0xff, 0xff, 0xde, 0xf5, 0x14, 0xa6, 0xff, 0xff, 0xff, 0xff, +0xde, 0xf5, 0x14, 0xa6, 0xff, 0xff, 0xff, 0xff, 0xde, 0xf5, 0x14, 0xa6, +0xff, 0xff, 0xff, 0xff, 0xde, 0xf5, 0x14, 0xa6, 0xff, 0xff, 0xff, 0xff, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, +0xa9, 0xa9, 0xa9, 0xa9, 0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, +0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, +0x6a, 0x6a, 0x6a, 0x6a, 0xda, 0xfd, 0x60, 0x3b, 0xff, 0xff, 0xff, 0xff, +0xda, 0xfd, 0x60, 0x3b, 0xff, 0xff, 0xff, 0xff, 0xda, 0xfd, 0x60, 0x3b, +0xff, 0xff, 0xff, 0xff, 0xda, 0xfd, 0x60, 0x3b, 0xff, 0xff, 0xff, 0xff, +0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0xa9, 0xfb, 0xdf, 0x0a, 0x52, +0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, +0xdf, 0xff, 0x30, 0x84, 0x39, 0x39, 0x11, 0x11, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0xde, 0xf7, 0x30, 0x84, 0x50, 0x78, 0x78, 0x6c, +0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, +0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x6a, +0xfb, 0xd5, 0x0a, 0x04, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xd5, 0x0a, 0x04, +0xff, 0xff, 0xff, 0xff, 0xfb, 0xd5, 0x0a, 0x04, 0xff, 0xff, 0xff, 0xff, +0xfb, 0xd5, 0x0a, 0x04, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, +0xa9, 0xa9, 0xa9, 0xa9, 0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, +0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, +0x6a, 0x6a, 0x6a, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd6, 0xb5, 0x21, 0x08, +0xff, 0xff, 0xff, 0xff, 0xd6, 0xb5, 0x21, 0x08, 0xff, 0xff, 0xff, 0xff, +0xd6, 0xb5, 0x21, 0x08, 0xff, 0xff, 0xff, 0xff, 0xd6, 0xb5, 0x21, 0x08, +0xff, 0xff, 0xff, 0xff, 0xd6, 0xb5, 0x21, 0x08, 0xff, 0xff, 0xff, 0xff, +0xd6, 0xb5, 0x21, 0x08, 0xff, 0xff, 0xff, 0xff, 0xd6, 0xb5, 0x21, 0x08, +0xff, 0xff, 0xff, 0xff, 0xd6, 0xb5, 0x21, 0x08, 0xff, 0xff, 0xff, 0xff, +0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, +0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, +0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, +0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, +0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, +0xff, 0xff, 0xff, 0xff, 0xde, 0xf5, 0x14, 0xa6, 0xff, 0xff, 0xff, 0xff, +0xde, 0xf5, 0x14, 0xa6, 0xff, 0xff, 0xff, 0xff, 0xde, 0xf5, 0x14, 0xa6, +0xff, 0xff, 0xff, 0xff, 0xde, 0xf5, 0x14, 0xa6, 0xff, 0xff, 0xff, 0xff, +0xde, 0xf5, 0x14, 0xa6, 0xff, 0xff, 0xff, 0xff, 0xde, 0xf5, 0x14, 0xa6, +0xff, 0xff, 0xff, 0xff, 0xde, 0xf5, 0x14, 0xa6, 0xff, 0xff, 0xff, 0xff, +0xde, 0xf5, 0x14, 0xa6, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0xa9, +0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, +0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x6a, +0xda, 0xfd, 0x60, 0x3b, 0xff, 0xff, 0xff, 0xff, 0xda, 0xfd, 0x60, 0x3b, +0xff, 0xff, 0xff, 0xff, 0xda, 0xfd, 0x60, 0x3b, 0xff, 0xff, 0xff, 0xff, +0xda, 0xfd, 0x60, 0x3b, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, +0xa9, 0xa9, 0xa9, 0xa9, 0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, +0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0xde, 0xf7, 0x30, 0x84, +0x11, 0x1b, 0x1b, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0xbe, 0xf7, 0x30, 0x84, 0x4c, 0x44, 0x44, 0x00, 0x00, 0x00, 0xff, 0xff, +0xaa, 0xaa, 0xaa, 0x55, 0x00, 0x00, 0xff, 0xff, 0xaa, 0xaa, 0xaa, 0x55, +0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x55, 0xfb, 0xd5, 0x0a, 0x04, +0xff, 0xff, 0xff, 0xff, 0xfb, 0xd5, 0x0a, 0x04, 0xff, 0xff, 0xff, 0xff, +0xfb, 0xd5, 0x0a, 0x04, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xd5, 0x0a, 0x04, +0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0x55, +0x00, 0x00, 0xff, 0xff, 0xaa, 0xaa, 0xaa, 0x55, 0x00, 0x00, 0xff, 0xff, +0xaa, 0xaa, 0xaa, 0x55, 0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x55, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0xd6, 0xb5, 0x21, 0x08, 0xff, 0xff, 0xff, 0xff, +0xd6, 0xb5, 0x21, 0x08, 0xff, 0xff, 0xff, 0xff, 0xd6, 0xb5, 0x21, 0x08, +0xff, 0xff, 0xff, 0xff, 0xd6, 0xb5, 0x21, 0x08, 0xff, 0xff, 0xff, 0xff, +0xd6, 0xb5, 0x21, 0x08, 0xff, 0xff, 0xff, 0xff, 0xd6, 0xb5, 0x21, 0x08, +0xff, 0xff, 0xff, 0xff, 0xd6, 0xb5, 0x21, 0x08, 0xff, 0xff, 0xff, 0xff, +0xd6, 0xb5, 0x21, 0x08, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, +0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, +0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, +0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, +0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, +0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, +0xde, 0xf5, 0x14, 0xa6, 0xff, 0xff, 0xff, 0xff, 0xde, 0xf5, 0x14, 0xa6, +0xff, 0xff, 0xff, 0xff, 0xde, 0xf5, 0x14, 0xa6, 0xff, 0xff, 0xff, 0xff, +0xde, 0xf5, 0x14, 0xa6, 0xff, 0xff, 0xff, 0xff, 0xde, 0xf5, 0x14, 0xa6, +0xff, 0xff, 0xff, 0xff, 0xde, 0xf5, 0x14, 0xa6, 0xff, 0xff, 0xff, 0xff, +0xde, 0xf5, 0x14, 0xa6, 0xff, 0xff, 0xff, 0xff, 0xde, 0xf5, 0x14, 0xa6, +0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0x55, 0x00, 0x00, 0xff, 0xff, +0xaa, 0xaa, 0xaa, 0x55, 0x00, 0x00, 0xff, 0xff, 0xaa, 0xaa, 0xaa, 0x55, +0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x55, 0xda, 0xfd, 0x60, 0x3b, +0xff, 0xff, 0xff, 0xff, 0xda, 0xfd, 0x60, 0x3b, 0xff, 0xff, 0xff, 0xff, +0xda, 0xfd, 0x60, 0x3b, 0xff, 0xff, 0xff, 0xff, 0xda, 0xfd, 0x60, 0x3b, +0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0x55, +0x00, 0x00, 0xff, 0xff, 0xaa, 0xaa, 0xaa, 0x55, 0x41, 0x08, 0xff, 0xff, +0xaa, 0xaa, 0xaa, 0x55, 0xbe, 0xf7, 0x10, 0x84, 0x1c, 0x14, 0x14, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0xff, 0xff, 0x10, 0x84, +0x00, 0xb4, 0x14, 0x94, 0xdf, 0xff, 0xef, 0x7b, 0x00, 0x55, 0x55, 0x57, +0x00, 0x00, 0xff, 0xff, 0x55, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0xff, 0xff, +0x55, 0x6a, 0x6a, 0x6a, 0xfb, 0xd5, 0x0a, 0x04, 0xff, 0xff, 0xff, 0xff, +0xfb, 0xd5, 0x0a, 0x04, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xd5, 0x0a, 0x04, +0xff, 0xff, 0xff, 0xff, 0xfb, 0xd5, 0x0a, 0x04, 0xff, 0xff, 0xff, 0xff, +0x00, 0x00, 0xff, 0xff, 0x55, 0xa9, 0xa9, 0xa9, 0x00, 0x00, 0xff, 0xff, +0x55, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0xff, 0xff, 0x55, 0xaa, 0xaa, 0xaa, +0x00, 0x00, 0xff, 0xff, 0x55, 0x6a, 0x6a, 0x6a, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0xd6, 0xb5, 0x21, 0x08, 0xff, 0xff, 0xff, 0xff, 0xd6, 0xb5, 0x21, 0x08, +0xff, 0xff, 0xff, 0xff, 0xd6, 0xb5, 0x21, 0x08, 0xff, 0xff, 0xff, 0xff, +0xd6, 0xb5, 0x21, 0x08, 0xff, 0xff, 0xff, 0xff, 0xd6, 0xb5, 0x21, 0x08, +0xff, 0xff, 0xff, 0xff, 0xd6, 0xb5, 0x21, 0x08, 0xff, 0xff, 0xff, 0xff, +0xd6, 0xb5, 0x21, 0x08, 0xff, 0xff, 0xff, 0xff, 0xd6, 0xb5, 0x21, 0x08, +0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, +0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, +0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, +0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, +0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, +0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0xde, 0xf5, 0x14, 0xa6, +0xff, 0xff, 0xff, 0xff, 0xde, 0xf5, 0x14, 0xa6, 0xff, 0xff, 0xff, 0xff, +0xde, 0xf5, 0x14, 0xa6, 0xff, 0xff, 0xff, 0xff, 0xde, 0xf5, 0x14, 0xa6, +0xff, 0xff, 0xff, 0xff, 0xde, 0xf5, 0x14, 0xa6, 0xff, 0xff, 0xff, 0xff, +0xde, 0xf5, 0x14, 0xa6, 0xff, 0xff, 0xff, 0xff, 0xde, 0xf5, 0x14, 0xa6, +0xff, 0xff, 0xff, 0xff, 0xde, 0xf5, 0x14, 0xa6, 0xff, 0xff, 0xff, 0xff, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, +0x55, 0xa9, 0xa9, 0xa9, 0x00, 0x00, 0xff, 0xff, 0x55, 0xaa, 0xaa, 0xaa, +0x00, 0x00, 0xff, 0xff, 0x55, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0xff, 0xff, +0x55, 0x6a, 0x6a, 0x6a, 0xda, 0xfd, 0x60, 0x3b, 0xff, 0xff, 0xff, 0xff, +0xda, 0xfd, 0x60, 0x3b, 0xff, 0xff, 0xff, 0xff, 0xda, 0xfd, 0x60, 0x3b, +0xff, 0xff, 0xff, 0xff, 0xda, 0xfd, 0x60, 0x3b, 0xff, 0xff, 0xff, 0xff, +0x00, 0x00, 0xff, 0xff, 0x55, 0xa9, 0xa9, 0xa9, 0x00, 0x00, 0xff, 0xff, +0x55, 0xaa, 0xaa, 0xaa, 0xff, 0xff, 0x10, 0x84, 0x00, 0x95, 0x15, 0xb5, +0xff, 0xff, 0x10, 0x84, 0x00, 0x17, 0x15, 0x15, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0xdf, 0xff, 0x10, 0x84, 0x94, 0xd4, 0x54, 0x54, +0x3c, 0xe7, 0xef, 0x7b, 0x56, 0x54, 0x54, 0x5c, 0xfb, 0xdf, 0x0a, 0x52, +0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x6a, +0xfb, 0xd5, 0x0a, 0x04, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xd5, 0x0a, 0x04, +0xff, 0xff, 0xff, 0xff, 0xfb, 0xd5, 0x0a, 0x04, 0xff, 0xff, 0xff, 0xff, +0xfb, 0xd5, 0x0a, 0x04, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, +0xa9, 0xa9, 0xa9, 0xa9, 0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, +0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, +0x6a, 0x6a, 0x6a, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd6, 0xb5, 0x21, 0x08, +0xff, 0xff, 0xff, 0xff, 0xd6, 0xb5, 0x21, 0x08, 0xff, 0xff, 0xff, 0xff, +0xd6, 0xb5, 0x21, 0x08, 0xff, 0xff, 0xff, 0xff, 0xd6, 0xb5, 0x21, 0x08, +0xff, 0xff, 0xff, 0xff, 0xd6, 0xb5, 0x21, 0x08, 0xff, 0xff, 0xff, 0xff, +0xd6, 0xb5, 0x21, 0x08, 0xff, 0xff, 0xff, 0xff, 0xd6, 0xb5, 0x21, 0x08, +0xff, 0xff, 0xff, 0xff, 0xd6, 0xb5, 0x21, 0x08, 0xff, 0xff, 0xff, 0xff, +0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, +0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, +0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, +0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, +0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, +0xff, 0xff, 0xff, 0xff, 0xde, 0xf5, 0x14, 0xa6, 0xff, 0xff, 0xff, 0xff, +0xde, 0xf5, 0x14, 0xa6, 0xff, 0xff, 0xff, 0xff, 0xde, 0xf5, 0x14, 0xa6, +0xff, 0xff, 0xff, 0xff, 0xde, 0xf5, 0x14, 0xa6, 0xff, 0xff, 0xff, 0xff, +0xde, 0xf5, 0x14, 0xa6, 0xff, 0xff, 0xff, 0xff, 0xde, 0xf5, 0x14, 0xa6, +0xff, 0xff, 0xff, 0xff, 0xde, 0xf5, 0x14, 0xa6, 0xff, 0xff, 0xff, 0xff, +0xde, 0xf5, 0x14, 0xa6, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0xa9, +0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, +0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x6a, +0xda, 0xfd, 0x60, 0x3b, 0xff, 0xff, 0xff, 0xff, 0xda, 0xfd, 0x60, 0x3b, +0xff, 0xff, 0xff, 0xff, 0xda, 0xfd, 0x60, 0x3b, 0xff, 0xff, 0xff, 0xff, +0xda, 0xfd, 0x60, 0x3b, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, +0xa9, 0xa9, 0xa9, 0xa9, 0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, +0x7d, 0xef, 0x10, 0x84, 0xa5, 0xe5, 0x45, 0x4d, 0x00, 0x00, 0xff, 0xff, +0x6a, 0x6a, 0x6a, 0x6a, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0xa9, 0x5d, 0xef, 0x10, 0x84, +0x5a, 0x53, 0x51, 0x79, 0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, +0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x6a, 0xfb, 0xd5, 0x0a, 0x04, +0xff, 0xff, 0xff, 0xff, 0xfb, 0xd5, 0x0a, 0x04, 0xff, 0xff, 0xff, 0xff, +0xfb, 0xd5, 0x0a, 0x04, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xd5, 0x0a, 0x04, +0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0xa9, +0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, +0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x6a, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0xd6, 0xb5, 0x21, 0x08, 0xff, 0xff, 0xff, 0xff, +0xd6, 0xb5, 0x21, 0x08, 0xff, 0xff, 0xff, 0xff, 0xd6, 0xb5, 0x21, 0x08, +0xff, 0xff, 0xff, 0xff, 0xd6, 0xb5, 0x21, 0x08, 0xff, 0xff, 0xff, 0xff, +0xd6, 0xb5, 0x21, 0x08, 0xff, 0xff, 0xff, 0xff, 0xd6, 0xb5, 0x21, 0x08, +0xff, 0xff, 0xff, 0xff, 0xd6, 0xb5, 0x21, 0x08, 0xff, 0xff, 0xff, 0xff, +0xd6, 0xb5, 0x21, 0x08, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, +0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, +0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, +0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, +0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, +0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, +0xde, 0xf5, 0x14, 0xa6, 0xff, 0xff, 0xff, 0xff, 0xde, 0xf5, 0x14, 0xa6, +0xff, 0xff, 0xff, 0xff, 0xde, 0xf5, 0x14, 0xa6, 0xff, 0xff, 0xff, 0xff, +0xde, 0xf5, 0x14, 0xa6, 0xff, 0xff, 0xff, 0xff, 0xde, 0xf5, 0x14, 0xa6, +0xff, 0xff, 0xff, 0xff, 0xde, 0xf5, 0x14, 0xa6, 0xff, 0xff, 0xff, 0xff, +0xde, 0xf5, 0x14, 0xa6, 0xff, 0xff, 0xff, 0xff, 0xde, 0xf5, 0x14, 0xa6, +0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0xa9, 0xfb, 0xdf, 0x0a, 0x52, +0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, +0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x6a, 0xda, 0xfd, 0x60, 0x3b, +0xff, 0xff, 0xff, 0xff, 0xda, 0xfd, 0x60, 0x3b, 0xff, 0xff, 0xff, 0xff, +0xda, 0xfd, 0x60, 0x3b, 0xff, 0xff, 0xff, 0xff, 0xda, 0xfd, 0x60, 0x3b, +0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0xa9, +0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0x7d, 0xef, 0x10, 0x84, +0x69, 0x71, 0x51, 0x5b, 0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x6a, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, +0xa9, 0xa9, 0xa9, 0x55, 0xff, 0xff, 0x30, 0x84, 0x6d, 0x45, 0xe5, 0x00, +0x00, 0x00, 0xff, 0xff, 0xaa, 0xaa, 0xaa, 0x55, 0x00, 0x00, 0xff, 0xff, +0x6a, 0x6a, 0x6a, 0x55, 0xfb, 0xd5, 0x0a, 0x04, 0xff, 0xff, 0xff, 0xff, +0xfb, 0xd5, 0x0a, 0x04, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xd5, 0x0a, 0x04, +0xff, 0xff, 0xff, 0xff, 0xfb, 0xd5, 0x0a, 0x04, 0xff, 0xff, 0xff, 0xff, +0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0x55, 0x00, 0x00, 0xff, 0xff, +0xaa, 0xaa, 0xaa, 0x55, 0x00, 0x00, 0xff, 0xff, 0xaa, 0xaa, 0xaa, 0x55, +0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x55, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0xd6, 0xb5, 0x21, 0x08, 0xff, 0xff, 0xff, 0xff, 0xd6, 0xb5, 0x21, 0x08, +0xff, 0xff, 0xff, 0xff, 0xd6, 0xb5, 0x21, 0x08, 0xff, 0xff, 0xff, 0xff, +0xd6, 0xb5, 0x21, 0x08, 0xff, 0xff, 0xff, 0xff, 0xd6, 0xb5, 0x21, 0x08, +0xff, 0xff, 0xff, 0xff, 0xd6, 0xb5, 0x21, 0x08, 0xff, 0xff, 0xff, 0xff, +0xd6, 0xb5, 0x21, 0x08, 0xff, 0xff, 0xff, 0xff, 0xd6, 0xb5, 0x21, 0x08, +0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, +0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, +0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, +0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, +0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, +0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0xde, 0xf5, 0x14, 0xa6, +0xff, 0xff, 0xff, 0xff, 0xde, 0xf5, 0x14, 0xa6, 0xff, 0xff, 0xff, 0xff, +0xde, 0xf5, 0x14, 0xa6, 0xff, 0xff, 0xff, 0xff, 0xde, 0xf5, 0x14, 0xa6, +0xff, 0xff, 0xff, 0xff, 0xde, 0xf5, 0x14, 0xa6, 0xff, 0xff, 0xff, 0xff, +0xde, 0xf5, 0x14, 0xa6, 0xff, 0xff, 0xff, 0xff, 0xde, 0xf5, 0x14, 0xa6, +0xff, 0xff, 0xff, 0xff, 0xde, 0xf5, 0x14, 0xa6, 0xff, 0xff, 0xff, 0xff, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, +0xa9, 0xa9, 0xa9, 0x55, 0x00, 0x00, 0xff, 0xff, 0xaa, 0xaa, 0xaa, 0x55, +0x00, 0x00, 0xff, 0xff, 0xaa, 0xaa, 0xaa, 0x55, 0x00, 0x00, 0xff, 0xff, +0x6a, 0x6a, 0x6a, 0x55, 0xda, 0xfd, 0x60, 0x3b, 0xff, 0xff, 0xff, 0xff, +0xda, 0xfd, 0x60, 0x3b, 0xff, 0xff, 0xff, 0xff, 0xda, 0xfd, 0x60, 0x3b, +0xff, 0xff, 0xff, 0xff, 0xda, 0xfd, 0x60, 0x3b, 0xff, 0xff, 0xff, 0xff, +0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0x55, 0xff, 0xff, 0x10, 0x84, +0x55, 0x55, 0xd5, 0x00, 0xff, 0xff, 0x10, 0x84, 0x5e, 0x54, 0x56, 0x00, +0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x55, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x55, 0xa9, 0xa9, 0xa9, +0xff, 0xff, 0xef, 0x7b, 0x00, 0x95, 0xd5, 0x55, 0xbe, 0xf7, 0x10, 0x84, +0x00, 0x57, 0x54, 0x5c, 0x00, 0x00, 0xff, 0xff, 0x55, 0x6a, 0x6a, 0x6a, +0xfb, 0xd5, 0x0a, 0x04, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xd5, 0x0a, 0x04, +0xff, 0xff, 0xff, 0xff, 0xfb, 0xd5, 0x0a, 0x04, 0xff, 0xff, 0xff, 0xff, +0xfb, 0xd5, 0x0a, 0x04, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, +0x55, 0xa9, 0xa9, 0xa9, 0x00, 0x00, 0xff, 0xff, 0x55, 0xaa, 0xaa, 0xaa, +0x00, 0x00, 0xff, 0xff, 0x55, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0xff, 0xff, +0x55, 0x6a, 0x6a, 0x6a, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0xde, 0xf5, 0x14, 0xa6, 0xff, 0xff, 0xff, 0xff, 0xde, 0xf5, 0x14, 0xa6, +0xff, 0xff, 0xff, 0xff, 0xde, 0xf5, 0x14, 0xa6, 0xff, 0xff, 0xff, 0xff, +0xde, 0xf5, 0x14, 0xa6, 0xff, 0xff, 0xff, 0xff, 0xc0, 0xf5, 0x00, 0xa6, +0xff, 0xff, 0xff, 0xff, 0xc0, 0xf5, 0x00, 0xa6, 0xff, 0xff, 0xff, 0xff, +0xc0, 0xf5, 0x00, 0xa6, 0xff, 0xff, 0xff, 0xff, 0xc0, 0xf5, 0x00, 0xa6, +0xff, 0xff, 0xff, 0xff, 0x14, 0x06, 0xde, 0x05, 0xaa, 0xaa, 0xaa, 0xaa, +0x14, 0x06, 0xde, 0x05, 0xaa, 0xaa, 0xaa, 0xaa, 0x14, 0x06, 0xde, 0x05, +0xaa, 0xaa, 0xaa, 0xaa, 0x14, 0x06, 0xde, 0x05, 0xaa, 0xaa, 0xaa, 0xaa, +0x00, 0x06, 0xc0, 0x05, 0xaa, 0xaa, 0xaa, 0xaa, 0x00, 0x06, 0xc0, 0x05, +0xaa, 0xaa, 0xaa, 0xaa, 0x00, 0x06, 0xc0, 0x05, 0xaa, 0xaa, 0xaa, 0xaa, +0x00, 0x06, 0xc0, 0x05, 0xaa, 0xaa, 0xaa, 0xaa, 0x1e, 0xf0, 0x14, 0xa0, +0xff, 0xff, 0xff, 0xff, 0x1e, 0xf0, 0x14, 0xa0, 0xff, 0xff, 0xff, 0xff, +0x1e, 0xf0, 0x14, 0xa0, 0xff, 0xff, 0xff, 0xff, 0x1e, 0xf0, 0x14, 0xa0, +0xff, 0xff, 0xff, 0xff, 0x00, 0xf0, 0x00, 0xa0, 0xff, 0xff, 0xff, 0xff, +0x00, 0xf0, 0x00, 0xa0, 0xff, 0xff, 0xff, 0xff, 0x00, 0xf0, 0x00, 0xa0, +0xff, 0xff, 0xff, 0xff, 0x00, 0xf0, 0x00, 0xa0, 0xff, 0xff, 0xff, 0xff, +0x1e, 0x00, 0x14, 0x00, 0xff, 0xff, 0xff, 0xff, 0x1e, 0x00, 0x14, 0x00, +0xff, 0xff, 0xff, 0xff, 0x1e, 0x00, 0x14, 0x00, 0xff, 0xff, 0xff, 0xff, +0x1e, 0x00, 0x14, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x55, 0xa9, 0xa9, 0xa9, +0x00, 0x00, 0xff, 0xff, 0x55, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0xff, 0xff, +0x55, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0xff, 0xff, 0x55, 0x6a, 0x6a, 0x6a, +0xda, 0xfd, 0x60, 0x3b, 0xff, 0xff, 0xff, 0xff, 0xda, 0xfd, 0x60, 0x3b, +0xff, 0xff, 0xff, 0xff, 0xda, 0xfd, 0x60, 0x3b, 0xff, 0xff, 0xff, 0xff, +0xda, 0xfd, 0x60, 0x3b, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, +0x55, 0xa9, 0xa9, 0xa9, 0xbe, 0xf7, 0x10, 0x84, 0x00, 0xb5, 0xc5, 0x4d, +0x00, 0x00, 0xff, 0xff, 0x55, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0xff, 0xff, +0x55, 0x6a, 0x6a, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0xa9, 0xfb, 0xdf, 0x0a, 0x52, +0xff, 0xff, 0xff, 0xff, 0x9e, 0xf7, 0x30, 0x84, 0x5a, 0x51, 0x79, 0x4d, +0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x6a, 0xfb, 0xd5, 0x0a, 0x04, +0xff, 0xff, 0xff, 0xff, 0xfb, 0xd5, 0x0a, 0x04, 0xff, 0xff, 0xff, 0xff, +0xfb, 0xd5, 0x0a, 0x04, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xd5, 0x0a, 0x04, +0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0xa9, +0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, +0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x6a, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0xde, 0xf5, 0x14, 0xa6, +0xff, 0xff, 0xff, 0xff, 0xde, 0xf5, 0x14, 0xa6, 0xff, 0xff, 0xff, 0xff, +0xde, 0xf5, 0x14, 0xa6, 0xff, 0xff, 0xff, 0xff, 0xde, 0xf5, 0x14, 0xa6, +0xff, 0xff, 0xff, 0xff, 0xc0, 0xf5, 0x00, 0xa6, 0xff, 0xff, 0xff, 0xff, +0xc0, 0xf5, 0x00, 0xa6, 0xff, 0xff, 0xff, 0xff, 0xc0, 0xf5, 0x00, 0xa6, +0xff, 0xff, 0xff, 0xff, 0xc0, 0xf5, 0x00, 0xa6, 0xff, 0xff, 0xff, 0xff, +0x14, 0x06, 0xde, 0x05, 0xaa, 0xaa, 0xaa, 0xaa, 0x14, 0x06, 0xde, 0x05, +0xaa, 0xaa, 0xaa, 0xaa, 0x14, 0x06, 0xde, 0x05, 0xaa, 0xaa, 0xaa, 0xaa, +0x14, 0x06, 0xde, 0x05, 0xaa, 0xaa, 0xaa, 0xaa, 0x00, 0x06, 0xc0, 0x05, +0xaa, 0xaa, 0xaa, 0xaa, 0x00, 0x06, 0xc0, 0x05, 0xaa, 0xaa, 0xaa, 0xaa, +0x00, 0x06, 0xc0, 0x05, 0xaa, 0xaa, 0xaa, 0xaa, 0x00, 0x06, 0xc0, 0x05, +0xaa, 0xaa, 0xaa, 0xaa, 0x1e, 0xf0, 0x14, 0xa0, 0xff, 0xff, 0xff, 0xff, +0x1e, 0xf0, 0x14, 0xa0, 0xff, 0xff, 0xff, 0xff, 0x1e, 0xf0, 0x14, 0xa0, +0xff, 0xff, 0xff, 0xff, 0x1e, 0xf0, 0x14, 0xa0, 0xff, 0xff, 0xff, 0xff, +0x00, 0xf0, 0x00, 0xa0, 0xff, 0xff, 0xff, 0xff, 0x00, 0xf0, 0x00, 0xa0, +0xff, 0xff, 0xff, 0xff, 0x00, 0xf0, 0x00, 0xa0, 0xff, 0xff, 0xff, 0xff, +0x00, 0xf0, 0x00, 0xa0, 0xff, 0xff, 0xff, 0xff, 0x1e, 0x00, 0x14, 0x00, +0xff, 0xff, 0xff, 0xff, 0x1e, 0x00, 0x14, 0x00, 0xff, 0xff, 0xff, 0xff, +0x1e, 0x00, 0x14, 0x00, 0xff, 0xff, 0xff, 0xff, 0x1e, 0x00, 0x14, 0x00, +0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0xa9, 0xfb, 0xdf, 0x0a, 0x52, +0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, +0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x6a, 0xda, 0xfd, 0x60, 0x3b, +0xff, 0xff, 0xff, 0xff, 0xda, 0xfd, 0x60, 0x3b, 0xff, 0xff, 0xff, 0xff, +0xda, 0xfd, 0x60, 0x3b, 0xff, 0xff, 0xff, 0xff, 0xda, 0xfd, 0x60, 0x3b, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x08, 0x42, 0xfc, 0xfc, 0xfc, 0xfc, +0x9e, 0xf7, 0x30, 0x84, 0x69, 0x51, 0x5b, 0x5c, 0xfb, 0xdf, 0x0a, 0x52, +0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x6a, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, +0xa9, 0xa9, 0xa9, 0xa9, 0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, +0x3c, 0xe7, 0x69, 0x4a, 0x8f, 0x2f, 0x3f, 0xbf, 0xff, 0xff, 0xef, 0x7b, +0x15, 0x15, 0x17, 0x16, 0xfb, 0xd5, 0x0a, 0x04, 0xff, 0xff, 0xff, 0xff, +0xfb, 0xd5, 0x0a, 0x04, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xd5, 0x0a, 0x04, +0xff, 0xff, 0xff, 0xff, 0xfb, 0xd5, 0x0a, 0x04, 0xff, 0xff, 0xff, 0xff, +0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0xa9, 0xfb, 0xdf, 0x0a, 0x52, +0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, +0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x6a, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0xde, 0xf5, 0x14, 0xa6, 0xff, 0xff, 0xff, 0xff, +0xde, 0xf5, 0x14, 0xa6, 0xff, 0xff, 0xff, 0xff, 0xde, 0xf5, 0x14, 0xa6, +0xff, 0xff, 0xff, 0xff, 0xde, 0xf5, 0x14, 0xa6, 0xff, 0xff, 0xff, 0xff, +0xc0, 0xf5, 0x00, 0xa6, 0xff, 0xff, 0xff, 0xff, 0xc0, 0xf5, 0x00, 0xa6, +0xff, 0xff, 0xff, 0xff, 0xc0, 0xf5, 0x00, 0xa6, 0xff, 0xff, 0xff, 0xff, +0xc0, 0xf5, 0x00, 0xa6, 0xff, 0xff, 0xff, 0xff, 0x14, 0x06, 0xde, 0x05, +0xaa, 0xaa, 0xaa, 0xaa, 0x14, 0x06, 0xde, 0x05, 0xaa, 0xaa, 0xaa, 0xaa, +0x14, 0x06, 0xde, 0x05, 0xaa, 0xaa, 0xaa, 0xaa, 0x14, 0x06, 0xde, 0x05, +0xaa, 0xaa, 0xaa, 0xaa, 0x00, 0x06, 0xc0, 0x05, 0xaa, 0xaa, 0xaa, 0xaa, +0x00, 0x06, 0xc0, 0x05, 0xaa, 0xaa, 0xaa, 0xaa, 0x00, 0x06, 0xc0, 0x05, +0xaa, 0xaa, 0xaa, 0xaa, 0x00, 0x06, 0xc0, 0x05, 0xaa, 0xaa, 0xaa, 0xaa, +0x1e, 0xf0, 0x14, 0xa0, 0xff, 0xff, 0xff, 0xff, 0x1e, 0xf0, 0x14, 0xa0, +0xff, 0xff, 0xff, 0xff, 0x1e, 0xf0, 0x14, 0xa0, 0xff, 0xff, 0xff, 0xff, +0x1e, 0xf0, 0x14, 0xa0, 0xff, 0xff, 0xff, 0xff, 0x00, 0xf0, 0x00, 0xa0, +0xff, 0xff, 0xff, 0xff, 0x00, 0xf0, 0x00, 0xa0, 0xff, 0xff, 0xff, 0xff, +0x00, 0xf0, 0x00, 0xa0, 0xff, 0xff, 0xff, 0xff, 0x00, 0xf0, 0x00, 0xa0, +0xff, 0xff, 0xff, 0xff, 0x1e, 0x00, 0x14, 0x00, 0xff, 0xff, 0xff, 0xff, +0x1e, 0x00, 0x14, 0x00, 0xff, 0xff, 0xff, 0xff, 0x1e, 0x00, 0x14, 0x00, +0xff, 0xff, 0xff, 0xff, 0x1e, 0x00, 0x14, 0x00, 0xff, 0xff, 0xff, 0xff, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, +0xa9, 0xa9, 0xa9, 0xa9, 0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, +0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, +0x6a, 0x6a, 0x6a, 0x6a, 0xda, 0xfd, 0x60, 0x3b, 0xff, 0xff, 0xff, 0xff, +0xda, 0xfd, 0x60, 0x3b, 0xff, 0xff, 0xff, 0xff, 0xda, 0xfd, 0x60, 0x3b, +0xff, 0xff, 0xff, 0xff, 0xda, 0xfd, 0x60, 0x3b, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0x10, 0x84, 0xd4, 0x94, 0x34, 0xe4, 0x1c, 0xe7, 0x69, 0x4a, +0xfc, 0xfe, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, +0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x6a, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0x55, +0x00, 0x00, 0xff, 0xff, 0xaa, 0xaa, 0xaa, 0x55, 0xff, 0xff, 0x08, 0x42, +0xff, 0xff, 0xff, 0x00, 0xdf, 0xff, 0x71, 0x8c, 0x14, 0x1b, 0x11, 0x00, +0xfb, 0xd5, 0x0a, 0x04, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xd5, 0x0a, 0x04, +0xff, 0xff, 0xff, 0xff, 0xfb, 0xd5, 0x0a, 0x04, 0xff, 0xff, 0xff, 0xff, +0xfb, 0xd5, 0x0a, 0x04, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, +0xa9, 0xa9, 0xa9, 0x55, 0x00, 0x00, 0xff, 0xff, 0xaa, 0xaa, 0xaa, 0x55, +0x00, 0x00, 0xff, 0xff, 0xaa, 0xaa, 0xaa, 0x55, 0x00, 0x00, 0xff, 0xff, +0x6a, 0x6a, 0x6a, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0xde, 0xf5, 0x14, 0xa6, 0xff, 0xff, 0xff, 0xff, 0xde, 0xf5, 0x14, 0xa6, +0xff, 0xff, 0xff, 0xff, 0xde, 0xf5, 0x14, 0xa6, 0xff, 0xff, 0xff, 0xff, +0xde, 0xf5, 0x14, 0xa6, 0xff, 0xff, 0xff, 0xff, 0xc0, 0xf5, 0x00, 0xa6, +0xff, 0xff, 0xff, 0xff, 0xc0, 0xf5, 0x00, 0xa6, 0xff, 0xff, 0xff, 0xff, +0xc0, 0xf5, 0x00, 0xa6, 0xff, 0xff, 0xff, 0xff, 0xc0, 0xf5, 0x00, 0xa6, +0xff, 0xff, 0xff, 0xff, 0x14, 0x06, 0xde, 0x05, 0xaa, 0xaa, 0xaa, 0xaa, +0x14, 0x06, 0xde, 0x05, 0xaa, 0xaa, 0xaa, 0xaa, 0x14, 0x06, 0xde, 0x05, +0xaa, 0xaa, 0xaa, 0xaa, 0x14, 0x06, 0xde, 0x05, 0xaa, 0xaa, 0xaa, 0xaa, +0x00, 0x06, 0xc0, 0x05, 0xaa, 0xaa, 0xaa, 0xaa, 0x00, 0x06, 0xc0, 0x05, +0xaa, 0xaa, 0xaa, 0xaa, 0x00, 0x06, 0xc0, 0x05, 0xaa, 0xaa, 0xaa, 0xaa, +0x00, 0x06, 0xc0, 0x05, 0xaa, 0xaa, 0xaa, 0xaa, 0x1e, 0xf0, 0x14, 0xa0, +0xff, 0xff, 0xff, 0xff, 0x1e, 0xf0, 0x14, 0xa0, 0xff, 0xff, 0xff, 0xff, +0x1e, 0xf0, 0x14, 0xa0, 0xff, 0xff, 0xff, 0xff, 0x1e, 0xf0, 0x14, 0xa0, +0xff, 0xff, 0xff, 0xff, 0x00, 0xf0, 0x00, 0xa0, 0xff, 0xff, 0xff, 0xff, +0x00, 0xf0, 0x00, 0xa0, 0xff, 0xff, 0xff, 0xff, 0x00, 0xf0, 0x00, 0xa0, +0xff, 0xff, 0xff, 0xff, 0x00, 0xf0, 0x00, 0xa0, 0xff, 0xff, 0xff, 0xff, +0x1e, 0x00, 0x14, 0x00, 0xff, 0xff, 0xff, 0xff, 0x1e, 0x00, 0x14, 0x00, +0xff, 0xff, 0xff, 0xff, 0x1e, 0x00, 0x14, 0x00, 0xff, 0xff, 0xff, 0xff, +0x1e, 0x00, 0x14, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0x55, +0x00, 0x00, 0xff, 0xff, 0xaa, 0xaa, 0xaa, 0x55, 0x00, 0x00, 0xff, 0xff, +0xaa, 0xaa, 0xaa, 0x55, 0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x55, +0xda, 0xfd, 0x60, 0x3b, 0xff, 0xff, 0xff, 0xff, 0xda, 0xfd, 0x60, 0x3b, +0xff, 0xff, 0xff, 0xff, 0xda, 0xfd, 0x60, 0x3b, 0xff, 0xff, 0xff, 0xff, +0xda, 0xfd, 0x60, 0x3b, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0x51, 0x8c, +0x44, 0x78, 0x50, 0x00, 0x00, 0x00, 0xff, 0xff, 0xaa, 0xaa, 0xaa, 0x55, +0x00, 0x00, 0xff, 0xff, 0xaa, 0xaa, 0xaa, 0x55, 0x00, 0x00, 0xff, 0xff, +0x6a, 0x6a, 0x6a, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0xff, 0xff, 0x55, 0xa9, 0xa9, 0xa9, 0x00, 0x00, 0xff, 0xff, +0x55, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0xff, 0xff, 0x55, 0xaa, 0xaa, 0xaa, +0xff, 0xff, 0x10, 0x84, 0x00, 0x35, 0x15, 0x15, 0xbe, 0xef, 0xb0, 0x4c, +0x55, 0x55, 0x57, 0x54, 0xfb, 0xd5, 0x0a, 0x04, 0xff, 0xff, 0xff, 0xff, +0xfb, 0xd5, 0x0a, 0x04, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xd5, 0x0a, 0x04, +0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x55, 0xa9, 0xa9, 0xa9, +0x00, 0x00, 0xff, 0xff, 0x55, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0xff, 0xff, +0x55, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0xff, 0xff, 0x55, 0x6a, 0x6a, 0x6a, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0xde, 0xf5, 0x14, 0xa6, +0xff, 0xff, 0xff, 0xff, 0xde, 0xf5, 0x14, 0xa6, 0xff, 0xff, 0xff, 0xff, +0xde, 0xf5, 0x14, 0xa6, 0xff, 0xff, 0xff, 0xff, 0xde, 0xf5, 0x14, 0xa6, +0xff, 0xff, 0xff, 0xff, 0xc0, 0xf5, 0x00, 0xa6, 0xff, 0xff, 0xff, 0xff, +0xc0, 0xf5, 0x00, 0xa6, 0xff, 0xff, 0xff, 0xff, 0xc0, 0xf5, 0x00, 0xa6, +0xff, 0xff, 0xff, 0xff, 0xc0, 0xf5, 0x00, 0xa6, 0xff, 0xff, 0xff, 0xff, +0x14, 0x06, 0xde, 0x05, 0xaa, 0xaa, 0xaa, 0xaa, 0x14, 0x06, 0xde, 0x05, +0xaa, 0xaa, 0xaa, 0xaa, 0x14, 0x06, 0xde, 0x05, 0xaa, 0xaa, 0xaa, 0xaa, +0x14, 0x06, 0xde, 0x05, 0xaa, 0xaa, 0xaa, 0xaa, 0x00, 0x06, 0xc0, 0x05, +0xaa, 0xaa, 0xaa, 0xaa, 0x00, 0x06, 0xc0, 0x05, 0xaa, 0xaa, 0xaa, 0xaa, +0x00, 0x06, 0xc0, 0x05, 0xaa, 0xaa, 0xaa, 0xaa, 0x00, 0x06, 0xc0, 0x05, +0xaa, 0xaa, 0xaa, 0xaa, 0x1e, 0xf0, 0x14, 0xa0, 0xff, 0xff, 0xff, 0xff, +0x1e, 0xf0, 0x14, 0xa0, 0xff, 0xff, 0xff, 0xff, 0x1e, 0xf0, 0x14, 0xa0, +0xff, 0xff, 0xff, 0xff, 0x1e, 0xf0, 0x14, 0xa0, 0xff, 0xff, 0xff, 0xff, +0x00, 0xf0, 0x00, 0xa0, 0xff, 0xff, 0xff, 0xff, 0x00, 0xf0, 0x00, 0xa0, +0xff, 0xff, 0xff, 0xff, 0x00, 0xf0, 0x00, 0xa0, 0xff, 0xff, 0xff, 0xff, +0x00, 0xf0, 0x00, 0xa0, 0xff, 0xff, 0xff, 0xff, 0x1e, 0x00, 0x14, 0x00, +0xff, 0xff, 0xff, 0xff, 0x1e, 0x00, 0x14, 0x00, 0xff, 0xff, 0xff, 0xff, +0x1e, 0x00, 0x14, 0x00, 0xff, 0xff, 0xff, 0xff, 0x1e, 0x00, 0x14, 0x00, +0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0xff, 0xff, 0x55, 0xa9, 0xa9, 0xa9, 0x00, 0x00, 0xff, 0xff, +0x55, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0xff, 0xff, 0x55, 0xaa, 0xaa, 0xaa, +0x00, 0x00, 0xff, 0xff, 0x55, 0x6a, 0x6a, 0x6a, 0xda, 0xfd, 0x60, 0x3b, +0xff, 0xff, 0xff, 0xff, 0xda, 0xfd, 0x60, 0x3b, 0xff, 0xff, 0xff, 0xff, +0xda, 0xfd, 0x60, 0x3b, 0xff, 0xff, 0xff, 0xff, 0x5b, 0xe7, 0x29, 0x7c, +0xd5, 0x15, 0x35, 0xc5, 0x00, 0x00, 0xff, 0xff, 0x55, 0xa9, 0xa9, 0xa9, +0x00, 0x00, 0xff, 0xff, 0x55, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0xff, 0xff, +0x55, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0xff, 0xff, 0x55, 0x6a, 0x6a, 0x6a, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, +0xa9, 0xa9, 0xa9, 0xa9, 0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, +0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, +0x6a, 0x6a, 0x6a, 0x6a, 0x9d, 0xe7, 0xd0, 0x54, 0x5a, 0x51, 0x69, 0xc5, +0xfb, 0xd5, 0x0a, 0x04, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xd5, 0x0a, 0x04, +0xff, 0xff, 0xff, 0xff, 0xfb, 0xd5, 0x0a, 0x04, 0xff, 0xff, 0xff, 0xff, +0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0xa9, 0xfb, 0xdf, 0x0a, 0x52, +0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, +0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x6a, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0xde, 0xf5, 0x14, 0xa6, 0xff, 0xff, 0xff, 0xff, +0xde, 0xf5, 0x14, 0xa6, 0xff, 0xff, 0xff, 0xff, 0xde, 0xf5, 0x14, 0xa6, +0xff, 0xff, 0xff, 0xff, 0xde, 0xf5, 0x14, 0xa6, 0xff, 0xff, 0xff, 0xff, +0xc0, 0xf5, 0x00, 0xa6, 0xff, 0xff, 0xff, 0xff, 0xc0, 0xf5, 0x00, 0xa6, +0xff, 0xff, 0xff, 0xff, 0xc0, 0xf5, 0x00, 0xa6, 0xff, 0xff, 0xff, 0xff, +0xc0, 0xf5, 0x00, 0xa6, 0xff, 0xff, 0xff, 0xff, 0x14, 0x06, 0xde, 0x05, +0xaa, 0xaa, 0xaa, 0xaa, 0x14, 0x06, 0xde, 0x05, 0xaa, 0xaa, 0xaa, 0xaa, +0x14, 0x06, 0xde, 0x05, 0xaa, 0xaa, 0xaa, 0xaa, 0x14, 0x06, 0xde, 0x05, +0xaa, 0xaa, 0xaa, 0xaa, 0x00, 0x06, 0xc0, 0x05, 0xaa, 0xaa, 0xaa, 0xaa, +0x00, 0x06, 0xc0, 0x05, 0xaa, 0xaa, 0xaa, 0xaa, 0x00, 0x06, 0xc0, 0x05, +0xaa, 0xaa, 0xaa, 0xaa, 0x00, 0x06, 0xc0, 0x05, 0xaa, 0xaa, 0xaa, 0xaa, +0x1e, 0xf0, 0x14, 0xa0, 0xff, 0xff, 0xff, 0xff, 0x1e, 0xf0, 0x14, 0xa0, +0xff, 0xff, 0xff, 0xff, 0x1e, 0xf0, 0x14, 0xa0, 0xff, 0xff, 0xff, 0xff, +0x1e, 0xf0, 0x14, 0xa0, 0xff, 0xff, 0xff, 0xff, 0x00, 0xf0, 0x00, 0xa0, +0xff, 0xff, 0xff, 0xff, 0x00, 0xf0, 0x00, 0xa0, 0xff, 0xff, 0xff, 0xff, +0x00, 0xf0, 0x00, 0xa0, 0xff, 0xff, 0xff, 0xff, 0x00, 0xf0, 0x00, 0xa0, +0xff, 0xff, 0xff, 0xff, 0x1e, 0x00, 0x14, 0x00, 0xff, 0xff, 0xff, 0xff, +0x1e, 0x00, 0x14, 0x00, 0xff, 0xff, 0xff, 0xff, 0x1e, 0x00, 0x14, 0x00, +0xff, 0xff, 0xff, 0xff, 0x1e, 0x00, 0x14, 0x00, 0xff, 0xff, 0xff, 0xff, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, +0xa9, 0xa9, 0xa9, 0xa9, 0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, +0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, +0x6a, 0x6a, 0x6a, 0x6a, 0xda, 0xfd, 0x60, 0x3b, 0xff, 0xff, 0xff, 0xff, +0xda, 0xfd, 0x60, 0x3b, 0xff, 0xff, 0xff, 0xff, 0xe1, 0x52, 0x70, 0xa5, +0xaa, 0xaa, 0xaa, 0x6a, 0x3a, 0xe7, 0x6a, 0x84, 0x49, 0x51, 0x58, 0x54, +0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0xa9, 0xfb, 0xdf, 0x0a, 0x52, +0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, +0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x6a, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0xa9, +0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, +0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x6a, +0x9d, 0xef, 0xb0, 0x4c, 0x35, 0x95, 0x55, 0x55, 0x9d, 0xef, 0xd0, 0x4c, +0x55, 0x56, 0x5c, 0x53, 0xfb, 0xd5, 0x0a, 0x04, 0xff, 0xff, 0xff, 0xff, +0xfb, 0xd5, 0x0a, 0x04, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, +0xa9, 0xa9, 0xa9, 0xa9, 0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, +0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, +0x6a, 0x6a, 0x6a, 0x6a, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0xde, 0xf5, 0x14, 0xa6, 0xff, 0xff, 0xff, 0xff, 0xde, 0xf5, 0x14, 0xa6, +0xff, 0xff, 0xff, 0xff, 0xde, 0xf5, 0x14, 0xa6, 0xff, 0xff, 0xff, 0xff, +0xde, 0xf5, 0x14, 0xa6, 0xff, 0xff, 0xff, 0xff, 0xc0, 0xf5, 0x00, 0xa6, +0xff, 0xff, 0xff, 0xff, 0xc0, 0xf5, 0x00, 0xa6, 0xff, 0xff, 0xff, 0xff, +0xc0, 0xf5, 0x00, 0xa6, 0xff, 0xff, 0xff, 0xff, 0xc0, 0xf5, 0x00, 0xa6, +0xff, 0xff, 0xff, 0xff, 0x14, 0x06, 0xde, 0x05, 0xaa, 0xaa, 0xaa, 0xaa, +0x14, 0x06, 0xde, 0x05, 0xaa, 0xaa, 0xaa, 0xaa, 0x14, 0x06, 0xde, 0x05, +0xaa, 0xaa, 0xaa, 0xaa, 0x14, 0x06, 0xde, 0x05, 0xaa, 0xaa, 0xaa, 0xaa, +0x00, 0x06, 0xc0, 0x05, 0xaa, 0xaa, 0xaa, 0xaa, 0x00, 0x06, 0xc0, 0x05, +0xaa, 0xaa, 0xaa, 0xaa, 0x00, 0x06, 0xc0, 0x05, 0xaa, 0xaa, 0xaa, 0xaa, +0x00, 0x06, 0xc0, 0x05, 0xaa, 0xaa, 0xaa, 0xaa, 0x1e, 0xf0, 0x14, 0xa0, +0xff, 0xff, 0xff, 0xff, 0x1e, 0xf0, 0x14, 0xa0, 0xff, 0xff, 0xff, 0xff, +0x1e, 0xf0, 0x14, 0xa0, 0xff, 0xff, 0xff, 0xff, 0x1e, 0xf0, 0x14, 0xa0, +0xff, 0xff, 0xff, 0xff, 0x00, 0xf0, 0x00, 0xa0, 0xff, 0xff, 0xff, 0xff, +0x00, 0xf0, 0x00, 0xa0, 0xff, 0xff, 0xff, 0xff, 0x00, 0xf0, 0x00, 0xa0, +0xff, 0xff, 0xff, 0xff, 0x00, 0xf0, 0x00, 0xa0, 0xff, 0xff, 0xff, 0xff, +0x1e, 0x00, 0x14, 0x00, 0xff, 0xff, 0xff, 0xff, 0x1e, 0x00, 0x14, 0x00, +0xff, 0xff, 0xff, 0xff, 0x1e, 0x00, 0x14, 0x00, 0xff, 0xff, 0xff, 0xff, +0x1e, 0x00, 0x14, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0xa9, +0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, +0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x6a, +0xda, 0xfd, 0x60, 0x3b, 0xff, 0xff, 0xff, 0xff, 0xda, 0xfd, 0x60, 0x3b, +0xff, 0xff, 0xff, 0xff, 0x9d, 0xef, 0x49, 0x84, 0x15, 0xa5, 0x4d, 0x71, +0x2e, 0x9d, 0xa6, 0x6b, 0xfc, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, +0xa9, 0xa9, 0xa9, 0xa9, 0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, +0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, +0x6a, 0x6a, 0x6a, 0x6a, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0x55, 0x00, 0x00, 0xff, 0xff, +0xaa, 0xaa, 0xaa, 0x55, 0x00, 0x00, 0xff, 0xff, 0xaa, 0xaa, 0xaa, 0x55, +0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x55, 0xfb, 0xd5, 0x0a, 0x04, +0xff, 0xff, 0xff, 0xff, 0x9d, 0xe7, 0xb0, 0x4c, 0x69, 0xc5, 0x35, 0x95, +0x3c, 0xd7, 0xaf, 0x4c, 0x55, 0x55, 0x57, 0x54, 0xfb, 0xd5, 0x0a, 0x04, +0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0x55, +0x00, 0x00, 0xff, 0xff, 0xaa, 0xaa, 0xaa, 0x55, 0x00, 0x00, 0xff, 0xff, +0xaa, 0xaa, 0xaa, 0x55, 0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x55, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0xde, 0xf5, 0x14, 0xa6, +0xff, 0xff, 0xff, 0xff, 0xde, 0xf5, 0x14, 0xa6, 0xff, 0xff, 0xff, 0xff, +0xde, 0xf5, 0x14, 0xa6, 0xff, 0xff, 0xff, 0xff, 0xde, 0xf5, 0x14, 0xa6, +0xff, 0xff, 0xff, 0xff, 0xc0, 0xf5, 0x00, 0xa6, 0xff, 0xff, 0xff, 0xff, +0xc0, 0xf5, 0x00, 0xa6, 0xff, 0xff, 0xff, 0xff, 0xc0, 0xf5, 0x00, 0xa6, +0xff, 0xff, 0xff, 0xff, 0xc0, 0xf5, 0x00, 0xa6, 0xff, 0xff, 0xff, 0xff, +0x14, 0x06, 0xde, 0x05, 0xaa, 0xaa, 0xaa, 0xaa, 0x14, 0x06, 0xde, 0x05, +0xaa, 0xaa, 0xaa, 0xaa, 0x14, 0x06, 0xde, 0x05, 0xaa, 0xaa, 0xaa, 0xaa, +0x14, 0x06, 0xde, 0x05, 0xaa, 0xaa, 0xaa, 0xaa, 0x00, 0x06, 0xc0, 0x05, +0xaa, 0xaa, 0xaa, 0xaa, 0x00, 0x06, 0xc0, 0x05, 0xaa, 0xaa, 0xaa, 0xaa, +0x00, 0x06, 0xc0, 0x05, 0xaa, 0xaa, 0xaa, 0xaa, 0x00, 0x06, 0xc0, 0x05, +0xaa, 0xaa, 0xaa, 0xaa, 0x1e, 0xf0, 0x14, 0xa0, 0xff, 0xff, 0xff, 0xff, +0x1e, 0xf0, 0x14, 0xa0, 0xff, 0xff, 0xff, 0xff, 0x1e, 0xf0, 0x14, 0xa0, +0xff, 0xff, 0xff, 0xff, 0x1e, 0xf0, 0x14, 0xa0, 0xff, 0xff, 0xff, 0xff, +0x00, 0xf0, 0x00, 0xa0, 0xff, 0xff, 0xff, 0xff, 0x00, 0xf0, 0x00, 0xa0, +0xff, 0xff, 0xff, 0xff, 0x00, 0xf0, 0x00, 0xa0, 0xff, 0xff, 0xff, 0xff, +0x00, 0xf0, 0x00, 0xa0, 0xff, 0xff, 0xff, 0xff, 0x1e, 0x00, 0x14, 0x00, +0xff, 0xff, 0xff, 0xff, 0x1e, 0x00, 0x14, 0x00, 0xff, 0xff, 0xff, 0xff, +0x1e, 0x00, 0x14, 0x00, 0xff, 0xff, 0xff, 0xff, 0x1e, 0x00, 0x14, 0x00, +0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0x55, 0x00, 0x00, 0xff, 0xff, +0xaa, 0xaa, 0xaa, 0x55, 0x00, 0x00, 0xff, 0xff, 0xaa, 0xaa, 0xaa, 0x55, +0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x55, 0xda, 0xfd, 0x60, 0x3b, +0xff, 0xff, 0xff, 0xff, 0x7c, 0xef, 0xc0, 0x4a, 0xff, 0xbf, 0x3f, 0x8f, +0x9c, 0xef, 0x29, 0x7c, 0x5a, 0x54, 0x57, 0x55, 0xda, 0xfd, 0x60, 0x3b, +0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0x55, +0x00, 0x00, 0xff, 0xff, 0xaa, 0xaa, 0xaa, 0x55, 0x00, 0x00, 0xff, 0xff, +0xaa, 0xaa, 0xaa, 0x55, 0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x55, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, +0x55, 0xa9, 0xa9, 0xa9, 0x00, 0x00, 0xff, 0xff, 0x55, 0xaa, 0xaa, 0xaa, +0x00, 0x00, 0xff, 0xff, 0x55, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0xff, 0xff, +0x55, 0x6a, 0x6a, 0x6a, 0xfb, 0xd5, 0x0a, 0x04, 0xff, 0xff, 0xff, 0xff, +0xb0, 0x4c, 0xb0, 0x44, 0x2a, 0xaa, 0xaa, 0xaa, 0xbe, 0xef, 0xb0, 0x4c, +0x5a, 0x71, 0xcd, 0x35, 0x6e, 0x3c, 0xf1, 0x5c, 0xaa, 0xaa, 0xaa, 0xa9, +0x00, 0x00, 0xff, 0xff, 0x55, 0xa9, 0xa9, 0xa9, 0x00, 0x00, 0xff, 0xff, +0x55, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0xff, 0xff, 0x55, 0xaa, 0xaa, 0xaa, +0x00, 0x00, 0xff, 0xff, 0x55, 0x6a, 0x6a, 0x6a, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0xde, 0xf5, 0x14, 0xa6, 0xff, 0xff, 0xff, 0xff, +0xde, 0xf5, 0x14, 0xa6, 0xff, 0xff, 0xff, 0xff, 0xde, 0xf5, 0x14, 0xa6, +0xff, 0xff, 0xff, 0xff, 0xde, 0xf5, 0x14, 0xa6, 0xff, 0xff, 0xff, 0xff, +0xc0, 0xf5, 0x00, 0xa6, 0xff, 0xff, 0xff, 0xff, 0xc0, 0xf5, 0x00, 0xa6, +0xff, 0xff, 0xff, 0xff, 0xc0, 0xf5, 0x00, 0xa6, 0xff, 0xff, 0xff, 0xff, +0xc0, 0xf5, 0x00, 0xa6, 0xff, 0xff, 0xff, 0xff, 0x14, 0x06, 0xde, 0x05, +0xaa, 0xaa, 0xaa, 0xaa, 0x14, 0x06, 0xde, 0x05, 0xaa, 0xaa, 0xaa, 0xaa, +0x14, 0x06, 0xde, 0x05, 0xaa, 0xaa, 0xaa, 0xaa, 0x14, 0x06, 0xde, 0x05, +0xaa, 0xaa, 0xaa, 0xaa, 0x00, 0x06, 0xc0, 0x05, 0xaa, 0xaa, 0xaa, 0xaa, +0x00, 0x06, 0xc0, 0x05, 0xaa, 0xaa, 0xaa, 0xaa, 0x00, 0x06, 0xc0, 0x05, +0xaa, 0xaa, 0xaa, 0xaa, 0x00, 0x06, 0xc0, 0x05, 0xaa, 0xaa, 0xaa, 0xaa, +0x1e, 0xf0, 0x14, 0xa0, 0xff, 0xff, 0xff, 0xff, 0x1e, 0xf0, 0x14, 0xa0, +0xff, 0xff, 0xff, 0xff, 0x1e, 0xf0, 0x14, 0xa0, 0xff, 0xff, 0xff, 0xff, +0x1e, 0xf0, 0x14, 0xa0, 0xff, 0xff, 0xff, 0xff, 0x00, 0xf0, 0x00, 0xa0, +0xff, 0xff, 0xff, 0xff, 0x00, 0xf0, 0x00, 0xa0, 0xff, 0xff, 0xff, 0xff, +0x00, 0xf0, 0x00, 0xa0, 0xff, 0xff, 0xff, 0xff, 0x00, 0xf0, 0x00, 0xa0, +0xff, 0xff, 0xff, 0xff, 0x1e, 0x00, 0x14, 0x00, 0xff, 0xff, 0xff, 0xff, +0x1e, 0x00, 0x14, 0x00, 0xff, 0xff, 0xff, 0xff, 0x1e, 0x00, 0x14, 0x00, +0xff, 0xff, 0xff, 0xff, 0x1e, 0x00, 0x14, 0x00, 0xff, 0xff, 0xff, 0xff, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, +0x55, 0xa9, 0xa9, 0xa9, 0x00, 0x00, 0xff, 0xff, 0x55, 0xaa, 0xaa, 0xaa, +0x00, 0x00, 0xff, 0xff, 0x55, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0xff, 0xff, +0x55, 0x6a, 0x6a, 0x6a, 0x7c, 0xef, 0x29, 0x7c, 0x55, 0x55, 0xd5, 0x15, +0xbd, 0xf7, 0x49, 0x7c, 0x69, 0x53, 0x5c, 0x57, 0xda, 0xfd, 0x60, 0x3b, +0xff, 0xff, 0xff, 0xff, 0xda, 0xfd, 0x60, 0x3b, 0xff, 0xff, 0xff, 0xff, +0x00, 0x00, 0xff, 0xff, 0x55, 0xa9, 0xa9, 0xa9, 0x00, 0x00, 0xff, 0xff, +0x55, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0xff, 0xff, 0x55, 0xaa, 0xaa, 0xaa, +0x00, 0x00, 0xff, 0xff, 0x55, 0x6a, 0x6a, 0x6a, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0xa9, +0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, +0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x6a, +0xfb, 0xd5, 0x0a, 0x04, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xd5, 0x0a, 0x04, +0xff, 0xff, 0xff, 0xff, 0x7d, 0xe7, 0xb0, 0x4c, 0x95, 0x55, 0x55, 0x55, +0x3b, 0xd7, 0xd0, 0x4c, 0x54, 0x50, 0x61, 0x85, 0x00, 0x00, 0xff, 0xff, +0xa9, 0xa9, 0xa9, 0xa9, 0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, +0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, +0x6a, 0x6a, 0x6a, 0x6a, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0xde, 0xf5, 0x14, 0xa6, 0xff, 0xff, 0xff, 0xff, 0xde, 0xf5, 0x14, 0xa6, +0xff, 0xff, 0xff, 0xff, 0xde, 0xf5, 0x14, 0xa6, 0xff, 0xff, 0xff, 0xff, +0xde, 0xf5, 0x14, 0xa6, 0xff, 0xff, 0xff, 0xff, 0xc0, 0xf5, 0x00, 0xa6, +0xff, 0xff, 0xff, 0xff, 0xc0, 0xf5, 0x00, 0xa6, 0xff, 0xff, 0xff, 0xff, +0xc0, 0xf5, 0x00, 0xa6, 0xff, 0xff, 0xff, 0xff, 0xc0, 0xf5, 0x00, 0xa6, +0xff, 0xff, 0xff, 0xff, 0x14, 0x06, 0xde, 0x05, 0xaa, 0xaa, 0xaa, 0xaa, +0x14, 0x06, 0xde, 0x05, 0xaa, 0xaa, 0xaa, 0xaa, 0x14, 0x06, 0xde, 0x05, +0xaa, 0xaa, 0xaa, 0xaa, 0x14, 0x06, 0xde, 0x05, 0xaa, 0xaa, 0xaa, 0xaa, +0x00, 0x06, 0xc0, 0x05, 0xaa, 0xaa, 0xaa, 0xaa, 0x00, 0x06, 0xc0, 0x05, +0xaa, 0xaa, 0xaa, 0xaa, 0x00, 0x06, 0xc0, 0x05, 0xaa, 0xaa, 0xaa, 0xaa, +0x00, 0x06, 0xc0, 0x05, 0xaa, 0xaa, 0xaa, 0xaa, 0x1e, 0xf0, 0x14, 0xa0, +0xff, 0xff, 0xff, 0xff, 0x1e, 0xf0, 0x14, 0xa0, 0xff, 0xff, 0xff, 0xff, +0x1e, 0xf0, 0x14, 0xa0, 0xff, 0xff, 0xff, 0xff, 0x1e, 0xf0, 0x14, 0xa0, +0xff, 0xff, 0xff, 0xff, 0x00, 0xf0, 0x00, 0xa0, 0xff, 0xff, 0xff, 0xff, +0x00, 0xf0, 0x00, 0xa0, 0xff, 0xff, 0xff, 0xff, 0x00, 0xf0, 0x00, 0xa0, +0xff, 0xff, 0xff, 0xff, 0x00, 0xf0, 0x00, 0xa0, 0xff, 0xff, 0xff, 0xff, +0x1e, 0x00, 0x14, 0x00, 0xff, 0xff, 0xff, 0xff, 0x1e, 0x00, 0x14, 0x00, +0xff, 0xff, 0xff, 0xff, 0x1e, 0x00, 0x14, 0x00, 0xff, 0xff, 0xff, 0xff, +0x1e, 0x00, 0x14, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0xa9, +0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, +0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x6a, +0x3a, 0xe7, 0x49, 0x84, 0x85, 0x41, 0x52, 0x54, 0xda, 0xfd, 0x60, 0x3b, +0xff, 0xff, 0xff, 0xff, 0xda, 0xfd, 0x60, 0x3b, 0xff, 0xff, 0xff, 0xff, +0xda, 0xfd, 0x60, 0x3b, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, +0xa9, 0xa9, 0xa9, 0xa9, 0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, +0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, +0x6a, 0x6a, 0x6a, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0xa9, 0xfb, 0xdf, 0x0a, 0x52, +0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, +0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x6a, 0xfb, 0xd5, 0x0a, 0x04, +0xff, 0xff, 0xff, 0xff, 0xfb, 0xd5, 0x0a, 0x04, 0xff, 0xff, 0xff, 0xff, +0xfb, 0xd5, 0x0a, 0x04, 0xff, 0xff, 0xff, 0xff, 0x9d, 0xe7, 0x8f, 0x44, +0x35, 0xd5, 0x55, 0x55, 0xde, 0xf7, 0xef, 0x7b, 0x54, 0x5c, 0x70, 0xcc, +0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, +0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x6a, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0xde, 0xf5, 0x14, 0xa6, +0xff, 0xff, 0xff, 0xff, 0xde, 0xf5, 0x14, 0xa6, 0xff, 0xff, 0xff, 0xff, +0xde, 0xf5, 0x14, 0xa6, 0xff, 0xff, 0xff, 0xff, 0xde, 0xf5, 0x14, 0xa6, +0xff, 0xff, 0xff, 0xff, 0xc0, 0xf5, 0x00, 0xa6, 0xff, 0xff, 0xff, 0xff, +0xc0, 0xf5, 0x00, 0xa6, 0xff, 0xff, 0xff, 0xff, 0xc0, 0xf5, 0x00, 0xa6, +0xff, 0xff, 0xff, 0xff, 0xc0, 0xf5, 0x00, 0xa6, 0xff, 0xff, 0xff, 0xff, +0x14, 0x06, 0xde, 0x05, 0xaa, 0xaa, 0xaa, 0xaa, 0x14, 0x06, 0xde, 0x05, +0xaa, 0xaa, 0xaa, 0xaa, 0x14, 0x06, 0xde, 0x05, 0xaa, 0xaa, 0xaa, 0xaa, +0x14, 0x06, 0xde, 0x05, 0xaa, 0xaa, 0xaa, 0xaa, 0x00, 0x06, 0xc0, 0x05, +0xaa, 0xaa, 0xaa, 0xaa, 0x00, 0x06, 0xc0, 0x05, 0xaa, 0xaa, 0xaa, 0xaa, +0x00, 0x06, 0xc0, 0x05, 0xaa, 0xaa, 0xaa, 0xaa, 0x00, 0x06, 0xc0, 0x05, +0xaa, 0xaa, 0xaa, 0xaa, 0x1e, 0xf0, 0x14, 0xa0, 0xff, 0xff, 0xff, 0xff, +0x1e, 0xf0, 0x14, 0xa0, 0xff, 0xff, 0xff, 0xff, 0x1e, 0xf0, 0x14, 0xa0, +0xff, 0xff, 0xff, 0xff, 0x1e, 0xf0, 0x14, 0xa0, 0xff, 0xff, 0xff, 0xff, +0x00, 0xf0, 0x00, 0xa0, 0xff, 0xff, 0xff, 0xff, 0x00, 0xf0, 0x00, 0xa0, +0xff, 0xff, 0xff, 0xff, 0x00, 0xf0, 0x00, 0xa0, 0xff, 0xff, 0xff, 0xff, +0x00, 0xf0, 0x00, 0xa0, 0xff, 0xff, 0xff, 0xff, 0x1e, 0x00, 0x14, 0x00, +0xff, 0xff, 0xff, 0xff, 0x1e, 0x00, 0x14, 0x00, 0xff, 0xff, 0xff, 0xff, +0x1e, 0x00, 0x14, 0x00, 0xff, 0xff, 0xff, 0xff, 0x1e, 0x00, 0x14, 0x00, +0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0xa9, 0xfb, 0xdf, 0x0a, 0x52, +0xff, 0xff, 0xff, 0xff, 0x2c, 0x63, 0xd3, 0x9c, 0xaa, 0xaa, 0xaa, 0x6a, +0xde, 0xf7, 0xef, 0x7b, 0x35, 0x0d, 0x33, 0x1c, 0x70, 0xad, 0x85, 0x63, +0xfe, 0xff, 0xff, 0xff, 0xda, 0xfd, 0x60, 0x3b, 0xff, 0xff, 0xff, 0xff, +0xda, 0xfd, 0x60, 0x3b, 0xff, 0xff, 0xff, 0xff, 0xda, 0xfd, 0x60, 0x3b, +0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0xa9, +0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, +0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x6a, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, +0xa9, 0xa9, 0xa9, 0x55, 0x00, 0x00, 0xff, 0xff, 0xaa, 0xaa, 0xaa, 0x55, +0x00, 0x00, 0xff, 0xff, 0xaa, 0xaa, 0xaa, 0x55, 0x00, 0x00, 0xff, 0xff, +0x6a, 0x6a, 0x6a, 0x55, 0xfb, 0xd5, 0x0a, 0x04, 0xff, 0xff, 0xff, 0xff, +0xfb, 0xd5, 0x0a, 0x04, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xd5, 0x0a, 0x04, +0xff, 0xff, 0xff, 0xff, 0xfb, 0xd5, 0x0a, 0x04, 0xff, 0xff, 0xff, 0xff, +0xdf, 0xff, 0x10, 0x84, 0x34, 0xd4, 0x54, 0x00, 0xde, 0xf7, 0xef, 0x7b, +0x57, 0x5c, 0x73, 0x00, 0x00, 0x00, 0xff, 0xff, 0xaa, 0xaa, 0xaa, 0x55, +0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x55, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0xde, 0xf5, 0x14, 0xa6, 0xff, 0xff, 0xff, 0xff, +0xde, 0xf5, 0x14, 0xa6, 0xff, 0xff, 0xff, 0xff, 0xde, 0xf5, 0x14, 0xa6, +0xff, 0xff, 0xff, 0xff, 0xde, 0xf5, 0x14, 0xa6, 0xff, 0xff, 0xff, 0xff, +0xc0, 0xf5, 0x00, 0xa6, 0xff, 0xff, 0xff, 0xff, 0xc0, 0xf5, 0x00, 0xa6, +0xff, 0xff, 0xff, 0xff, 0xc0, 0xf5, 0x00, 0xa6, 0xff, 0xff, 0xff, 0xff, +0xc0, 0xf5, 0x00, 0xa6, 0xff, 0xff, 0xff, 0xff, 0x14, 0x06, 0xde, 0x05, +0xaa, 0xaa, 0xaa, 0xaa, 0x14, 0x06, 0xde, 0x05, 0xaa, 0xaa, 0xaa, 0xaa, +0x14, 0x06, 0xde, 0x05, 0xaa, 0xaa, 0xaa, 0xaa, 0x14, 0x06, 0xde, 0x05, +0xaa, 0xaa, 0xaa, 0xaa, 0x00, 0x06, 0xc0, 0x05, 0xaa, 0xaa, 0xaa, 0xaa, +0x00, 0x06, 0xc0, 0x05, 0xaa, 0xaa, 0xaa, 0xaa, 0x00, 0x06, 0xc0, 0x05, +0xaa, 0xaa, 0xaa, 0xaa, 0x00, 0x06, 0xc0, 0x05, 0xaa, 0xaa, 0xaa, 0xaa, +0x1e, 0xf0, 0x14, 0xa0, 0xff, 0xff, 0xff, 0xff, 0x1e, 0xf0, 0x14, 0xa0, +0xff, 0xff, 0xff, 0xff, 0x1e, 0xf0, 0x14, 0xa0, 0xff, 0xff, 0xff, 0xff, +0x1e, 0xf0, 0x14, 0xa0, 0xff, 0xff, 0xff, 0xff, 0x00, 0xf0, 0x00, 0xa0, +0xff, 0xff, 0xff, 0xff, 0x00, 0xf0, 0x00, 0xa0, 0xff, 0xff, 0xff, 0xff, +0x00, 0xf0, 0x00, 0xa0, 0xff, 0xff, 0xff, 0xff, 0x00, 0xf0, 0x00, 0xa0, +0xff, 0xff, 0xff, 0xff, 0x1e, 0x00, 0x14, 0x00, 0xff, 0xff, 0xff, 0xff, +0x1e, 0x00, 0x14, 0x00, 0xff, 0xff, 0xff, 0xff, 0x1e, 0x00, 0x14, 0x00, +0xff, 0xff, 0xff, 0xff, 0x1e, 0x00, 0x14, 0x00, 0xff, 0xff, 0xff, 0xff, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, +0xa9, 0xa9, 0xa9, 0x55, 0x00, 0x00, 0xff, 0xff, 0xaa, 0xaa, 0xaa, 0x55, +0xde, 0xf7, 0xef, 0x7b, 0x35, 0xcd, 0x73, 0x00, 0xff, 0xff, 0x10, 0x84, +0x17, 0x15, 0x15, 0x00, 0xda, 0xfd, 0x60, 0x3b, 0xff, 0xff, 0xff, 0xff, +0xda, 0xfd, 0x60, 0x3b, 0xff, 0xff, 0xff, 0xff, 0xda, 0xfd, 0x60, 0x3b, +0xff, 0xff, 0xff, 0xff, 0xda, 0xfd, 0x60, 0x3b, 0xff, 0xff, 0xff, 0xff, +0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0x55, 0x00, 0x00, 0xff, 0xff, +0xaa, 0xaa, 0xaa, 0x55, 0x00, 0x00, 0xff, 0xff, 0xaa, 0xaa, 0xaa, 0x55, +0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x55, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0xa9, 0xa9, 0xa9, +0x00, 0x00, 0xff, 0xff, 0x55, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0xff, 0xff, +0x55, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0xff, 0xff, 0x55, 0x6a, 0x6a, 0x6a, +0xfb, 0xd5, 0x0a, 0x04, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xd5, 0x0a, 0x04, +0xff, 0xff, 0xff, 0xff, 0xfb, 0xd5, 0x0a, 0x04, 0xff, 0xff, 0xff, 0xff, +0xfb, 0xd5, 0x0a, 0x04, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xf6, 0x63, +0x55, 0x55, 0x55, 0x55, 0x7e, 0xef, 0xd6, 0x63, 0x35, 0xd5, 0x55, 0x55, +0x3d, 0xe7, 0x17, 0x6c, 0x57, 0x58, 0x61, 0x05, 0xd8, 0x8c, 0xf6, 0x63, +0x55, 0x55, 0x55, 0x57, 0x00, 0x00, 0xff, 0xff, 0x55, 0xa9, 0xa9, 0xa9, +0x00, 0x00, 0xff, 0xff, 0x55, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0xff, 0xff, +0x55, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0xff, 0xff, 0x55, 0x6a, 0x6a, 0x6a, +0x00, 0x00, 0xff, 0xff, 0x55, 0xa9, 0xa9, 0xa9, 0x00, 0x00, 0xff, 0xff, +0x55, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0xff, 0xff, 0x55, 0xaa, 0xaa, 0xaa, +0x00, 0x00, 0xff, 0xff, 0x55, 0x6a, 0x6a, 0x6a, 0x00, 0x00, 0xff, 0xff, +0x55, 0xa9, 0xa9, 0xa9, 0x00, 0x00, 0xff, 0xff, 0x55, 0xaa, 0xaa, 0xaa, +0x00, 0x00, 0xff, 0xff, 0x55, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0xff, 0xff, +0x55, 0x6a, 0x6a, 0x6a, 0x00, 0x00, 0xff, 0xff, 0x55, 0xa9, 0xa9, 0xa9, +0x00, 0x00, 0xff, 0xff, 0x55, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0xff, 0xff, +0x55, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0xff, 0xff, 0x55, 0x6a, 0x6a, 0x6a, +0x00, 0x00, 0xff, 0xff, 0x55, 0xa9, 0xa9, 0xa9, 0x00, 0x00, 0xff, 0xff, +0x55, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0xff, 0xff, 0x55, 0xaa, 0xaa, 0xaa, +0x00, 0x00, 0xff, 0xff, 0x55, 0x6a, 0x6a, 0x6a, 0x00, 0x00, 0xff, 0xff, +0x55, 0xa9, 0xa9, 0xa9, 0x00, 0x00, 0xff, 0xff, 0x55, 0xaa, 0xaa, 0xaa, +0x00, 0x00, 0xff, 0xff, 0x55, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0xff, 0xff, +0x55, 0x6a, 0x6a, 0x6a, 0x00, 0x00, 0xff, 0xff, 0x55, 0xa9, 0xa9, 0xa9, +0x00, 0x00, 0xff, 0xff, 0x55, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0xff, 0xff, +0x55, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0xff, 0xff, 0x55, 0x6a, 0x6a, 0x6a, +0x00, 0x00, 0xff, 0xff, 0x55, 0xa9, 0xa9, 0xa9, 0x00, 0x00, 0xff, 0xff, +0x55, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0xff, 0xff, 0x55, 0xaa, 0xaa, 0xaa, +0x00, 0x00, 0xff, 0xff, 0x55, 0x6a, 0x6a, 0x6a, 0x00, 0x00, 0xff, 0xff, +0x55, 0xa9, 0xa9, 0xa9, 0x00, 0x00, 0xff, 0xff, 0x55, 0xaa, 0xaa, 0xaa, +0x00, 0x00, 0xff, 0xff, 0x55, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0xff, 0xff, +0x55, 0x6a, 0x6a, 0x6a, 0xfd, 0xde, 0x93, 0x32, 0xff, 0xff, 0xff, 0x3f, +0x9e, 0xef, 0x37, 0x6c, 0x35, 0x49, 0x52, 0x56, 0xf6, 0x63, 0xfb, 0xb5, +0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf6, 0x63, 0x55, 0x55, 0x55, 0x55, +0xda, 0xfd, 0x60, 0x3b, 0xff, 0xff, 0xff, 0xff, 0xda, 0xfd, 0x60, 0x3b, +0xff, 0xff, 0xff, 0xff, 0xda, 0xfd, 0x60, 0x3b, 0xff, 0xff, 0xff, 0xff, +0xda, 0xfd, 0x60, 0x3b, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, +0x55, 0xa9, 0xa9, 0xa9, 0x00, 0x00, 0xff, 0xff, 0x55, 0xaa, 0xaa, 0xaa, +0x00, 0x00, 0xff, 0xff, 0x55, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0xff, 0xff, +0x55, 0x6a, 0x6a, 0x6a, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0xa9, 0xfb, 0xdf, 0x0a, 0x52, +0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, +0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x6a, 0xfb, 0xd5, 0x0a, 0x04, +0xff, 0xff, 0xff, 0xff, 0xfb, 0xd5, 0x0a, 0x04, 0xff, 0xff, 0xff, 0xff, +0xfb, 0xd5, 0x0a, 0x04, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xd5, 0x0a, 0x04, +0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xf6, 0x63, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0xf6, 0x63, 0x55, 0x55, 0x55, 0x55, 0x9e, 0xef, 0xf6, 0x63, +0x95, 0x55, 0x55, 0x55, 0x5e, 0xe7, 0x16, 0x6c, 0x5c, 0x73, 0x8d, 0x15, +0x41, 0x08, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0xa9, 0xfb, 0xdf, 0x0a, 0x52, +0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, +0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x6a, 0x00, 0x00, 0xff, 0xff, +0xa9, 0xa9, 0xa9, 0xa9, 0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, +0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, +0x6a, 0x6a, 0x6a, 0x6a, 0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0xa9, +0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, +0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x6a, +0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0xa9, 0xfb, 0xdf, 0x0a, 0x52, +0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, +0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x6a, 0x00, 0x00, 0xff, 0xff, +0xa9, 0xa9, 0xa9, 0xa9, 0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, +0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, +0x6a, 0x6a, 0x6a, 0x6a, 0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0xa9, +0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, +0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x6a, +0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0xa9, 0xfb, 0xdf, 0x0a, 0x52, +0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, +0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x6a, 0x00, 0x00, 0xff, 0xff, +0xa9, 0xa9, 0xa9, 0xa9, 0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, +0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, +0x6a, 0x6a, 0x6a, 0x6a, 0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0xa9, +0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x30, 0x84, 0x15, 0x15, 0x15, 0x25, +0x9e, 0xef, 0x36, 0x6c, 0x85, 0x73, 0x5c, 0x55, 0x16, 0x6c, 0xf6, 0x63, +0x57, 0x55, 0x55, 0x55, 0x00, 0x00, 0xf6, 0x63, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0xf6, 0x63, 0x55, 0x55, 0x55, 0x55, 0xda, 0xfd, 0x60, 0x3b, +0xff, 0xff, 0xff, 0xff, 0xda, 0xfd, 0x60, 0x3b, 0xff, 0xff, 0xff, 0xff, +0xda, 0xfd, 0x60, 0x3b, 0xff, 0xff, 0xff, 0xff, 0xda, 0xfd, 0x60, 0x3b, +0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0xa9, +0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, +0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x6a, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, +0xa9, 0xa9, 0xa9, 0xa9, 0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, +0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, +0x6a, 0x6a, 0x6a, 0x6a, 0xfb, 0xd5, 0x0a, 0x04, 0xff, 0xff, 0xff, 0xff, +0xfb, 0xd5, 0x0a, 0x04, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xd5, 0x0a, 0x04, +0xff, 0xff, 0xff, 0xff, 0xfb, 0xd5, 0x0a, 0x04, 0xff, 0xff, 0xff, 0xff, +0x00, 0x00, 0xf6, 0x63, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xf6, 0x63, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xf6, 0x63, 0x55, 0x55, 0x55, 0x55, +0x16, 0x6c, 0xf6, 0x63, 0xd5, 0x55, 0x55, 0x55, 0xbe, 0xf7, 0x10, 0x84, +0x70, 0x8c, 0x94, 0x54, 0x7d, 0xef, 0x10, 0x84, 0x55, 0x55, 0x5c, 0x63, +0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, +0x6a, 0x6a, 0x6a, 0x6a, 0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0xa9, +0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, +0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x6a, +0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0xa9, 0xfb, 0xdf, 0x0a, 0x52, +0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, +0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x6a, 0x00, 0x00, 0xff, 0xff, +0xa9, 0xa9, 0xa9, 0xa9, 0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, +0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, +0x6a, 0x6a, 0x6a, 0x6a, 0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0xa9, +0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, +0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x6a, +0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0xa9, 0xfb, 0xdf, 0x0a, 0x52, +0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, +0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x6a, 0x00, 0x00, 0xff, 0xff, +0xa9, 0xa9, 0xa9, 0xa9, 0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, +0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, +0x6a, 0x6a, 0x6a, 0x6a, 0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0xa9, +0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, +0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x6a, +0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0xa9, 0x71, 0x8c, 0xcf, 0x7b, +0xff, 0xff, 0xff, 0xbf, 0x9d, 0xef, 0x10, 0x84, 0x55, 0x95, 0x8d, 0x72, +0xbe, 0xf7, 0x10, 0x84, 0x23, 0x1c, 0x15, 0x15, 0x00, 0x00, 0xf6, 0x63, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xf6, 0x63, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0xf6, 0x63, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xf6, 0x63, +0x55, 0x55, 0x55, 0x55, 0xda, 0xfd, 0x60, 0x3b, 0xff, 0xff, 0xff, 0xff, +0xda, 0xfd, 0x60, 0x3b, 0xff, 0xff, 0xff, 0xff, 0xda, 0xfd, 0x60, 0x3b, +0xff, 0xff, 0xff, 0xff, 0xda, 0xfd, 0x60, 0x3b, 0xff, 0xff, 0xff, 0xff, +0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0xa9, 0xfb, 0xdf, 0x0a, 0x52, +0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, +0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x6a, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0x55, +0x00, 0x00, 0xff, 0xff, 0xaa, 0xaa, 0xaa, 0x55, 0x00, 0x00, 0xff, 0xff, +0xaa, 0xaa, 0xaa, 0x55, 0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x55, +0xfb, 0xd5, 0x0a, 0x04, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xd5, 0x0a, 0x04, +0xff, 0xff, 0xff, 0xff, 0xfb, 0xd5, 0x0a, 0x04, 0xff, 0xff, 0xff, 0xff, +0xfb, 0xd5, 0x0a, 0x04, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xf6, 0x63, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xf6, 0x63, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0xf6, 0x63, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xf6, 0x63, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0x55, +0xde, 0xf7, 0x10, 0x84, 0x25, 0xd5, 0x55, 0x00, 0xbe, 0xf7, 0x30, 0x84, +0x57, 0x58, 0xc9, 0x00, 0xff, 0xff, 0x08, 0x42, 0x3f, 0x3f, 0x3f, 0x00, +0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0x55, 0x00, 0x00, 0xff, 0xff, +0xaa, 0xaa, 0xaa, 0x55, 0x00, 0x00, 0xff, 0xff, 0xaa, 0xaa, 0xaa, 0x55, +0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x55, 0x00, 0x00, 0xff, 0xff, +0xa9, 0xa9, 0xa9, 0x55, 0x00, 0x00, 0xff, 0xff, 0xaa, 0xaa, 0xaa, 0x55, +0x00, 0x00, 0xff, 0xff, 0xaa, 0xaa, 0xaa, 0x55, 0x00, 0x00, 0xff, 0xff, +0x6a, 0x6a, 0x6a, 0x55, 0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0x55, +0x00, 0x00, 0xff, 0xff, 0xaa, 0xaa, 0xaa, 0x55, 0x00, 0x00, 0xff, 0xff, +0xaa, 0xaa, 0xaa, 0x55, 0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x55, +0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0x55, 0x00, 0x00, 0xff, 0xff, +0xaa, 0xaa, 0xaa, 0x55, 0x00, 0x00, 0xff, 0xff, 0xaa, 0xaa, 0xaa, 0x55, +0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x55, 0x00, 0x00, 0xff, 0xff, +0xa9, 0xa9, 0xa9, 0x55, 0x00, 0x00, 0xff, 0xff, 0xaa, 0xaa, 0xaa, 0x55, +0x00, 0x00, 0xff, 0xff, 0xaa, 0xaa, 0xaa, 0x55, 0x00, 0x00, 0xff, 0xff, +0x6a, 0x6a, 0x6a, 0x55, 0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0x55, +0x00, 0x00, 0xff, 0xff, 0xaa, 0xaa, 0xaa, 0x55, 0x00, 0x00, 0xff, 0xff, +0xaa, 0xaa, 0xaa, 0x55, 0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x55, +0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0x55, 0x00, 0x00, 0xff, 0xff, +0xaa, 0xaa, 0xaa, 0x55, 0x00, 0x00, 0xff, 0xff, 0xaa, 0xaa, 0xaa, 0x55, +0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x55, 0xff, 0xff, 0x08, 0x42, +0xfc, 0xfc, 0xbc, 0x00, 0xbe, 0xf7, 0x10, 0x84, 0x35, 0xc9, 0x58, 0x00, +0xff, 0xff, 0x10, 0x84, 0x56, 0x55, 0x55, 0x00, 0x00, 0x00, 0xff, 0xff, +0x6a, 0x6a, 0x6a, 0x55, 0x00, 0x00, 0xf6, 0x63, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0xf6, 0x63, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xf6, 0x63, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xf6, 0x63, 0x55, 0x55, 0x55, 0x55, +0xda, 0xfd, 0x60, 0x3b, 0xff, 0xff, 0xff, 0xff, 0xda, 0xfd, 0x60, 0x3b, +0xff, 0xff, 0xff, 0xff, 0xda, 0xfd, 0x60, 0x3b, 0xff, 0xff, 0xff, 0xff, +0xda, 0xfd, 0x60, 0x3b, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, +0xa9, 0xa9, 0xa9, 0x55, 0x00, 0x00, 0xff, 0xff, 0xaa, 0xaa, 0xaa, 0x55, +0x00, 0x00, 0xff, 0xff, 0xaa, 0xaa, 0xaa, 0x55, 0x00, 0x00, 0xff, 0xff, +0x6a, 0x6a, 0x6a, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0xff, 0xff, 0x55, 0xa9, 0xa9, 0xa9, 0x00, 0x00, 0xff, 0xff, +0x55, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0xff, 0xff, 0x55, 0xaa, 0xaa, 0xaa, +0x00, 0x00, 0xff, 0xff, 0x55, 0x6a, 0x6a, 0x6a, 0x00, 0x00, 0xff, 0xff, +0x55, 0xa9, 0xa9, 0xa9, 0x00, 0x00, 0xff, 0xff, 0x55, 0xaa, 0xaa, 0xaa, +0x00, 0x00, 0xff, 0xff, 0x55, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0xff, 0xff, +0x55, 0x6a, 0x6a, 0x6a, 0x00, 0x00, 0xff, 0xff, 0x55, 0xa9, 0xa9, 0xa9, +0x00, 0x00, 0xff, 0xff, 0x55, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0xff, 0xff, +0x55, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0xff, 0xff, 0x55, 0x6a, 0x6a, 0x6a, +0x00, 0x00, 0xff, 0xff, 0x55, 0xa9, 0xa9, 0xa9, 0x00, 0x00, 0xff, 0xff, +0x55, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0xff, 0xff, 0x55, 0xaa, 0xaa, 0xaa, +0xff, 0xff, 0x08, 0x42, 0x00, 0x2f, 0x3f, 0x3f, 0xff, 0xff, 0x8a, 0x52, +0x00, 0xfc, 0xe0, 0x2c, 0xdf, 0xff, 0x30, 0x84, 0x00, 0x55, 0x55, 0x56, +0x00, 0x00, 0xff, 0xff, 0x55, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0xff, 0xff, +0x55, 0x6a, 0x6a, 0x6a, 0x00, 0x00, 0xff, 0xff, 0x55, 0xa9, 0xa9, 0xa9, +0x00, 0x00, 0xff, 0xff, 0x55, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0xff, 0xff, +0x55, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0xff, 0xff, 0x55, 0x6a, 0x6a, 0x6a, +0x00, 0x00, 0xff, 0xff, 0x55, 0xa9, 0xa9, 0xa9, 0x00, 0x00, 0xff, 0xff, +0x55, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0xff, 0xff, 0x55, 0xaa, 0xaa, 0xaa, +0x00, 0x00, 0xff, 0xff, 0x55, 0x6a, 0x6a, 0x6a, 0x00, 0x00, 0xff, 0xff, +0x55, 0xa9, 0xa9, 0xa9, 0x00, 0x00, 0xff, 0xff, 0x55, 0xaa, 0xaa, 0xaa, +0x00, 0x00, 0xff, 0xff, 0x55, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0xff, 0xff, +0x55, 0x6a, 0x6a, 0x6a, 0x00, 0x00, 0xff, 0xff, 0x55, 0xa9, 0xa9, 0xa9, +0x00, 0x00, 0xff, 0xff, 0x55, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0xff, 0xff, +0x55, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0xff, 0xff, 0x55, 0x6a, 0x6a, 0x6a, +0x00, 0x00, 0xff, 0xff, 0x55, 0xa9, 0xa9, 0xa9, 0x00, 0x00, 0xff, 0xff, +0x55, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0xff, 0xff, 0x55, 0xaa, 0xaa, 0xaa, +0x00, 0x00, 0xff, 0xff, 0x55, 0x6a, 0x6a, 0x6a, 0x00, 0x00, 0xff, 0xff, +0x55, 0xa9, 0xa9, 0xa9, 0x00, 0x00, 0xff, 0xff, 0x55, 0xaa, 0xaa, 0xaa, +0xdf, 0xff, 0x30, 0x84, 0x00, 0x55, 0x55, 0x25, 0xff, 0xff, 0x8a, 0x52, +0x00, 0x2f, 0x22, 0x3e, 0xff, 0xff, 0x08, 0x42, 0x00, 0xfc, 0xfc, 0xfc, +0x00, 0x00, 0xff, 0xff, 0x55, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0xff, 0xff, +0x55, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0xff, 0xff, 0x55, 0x6a, 0x6a, 0x6a, +0x00, 0x00, 0xff, 0xff, 0x55, 0xa9, 0xa9, 0xa9, 0x00, 0x00, 0xff, 0xff, +0x55, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0xff, 0xff, 0x55, 0xaa, 0xaa, 0xaa, +0x00, 0x00, 0xff, 0xff, 0x55, 0x6a, 0x6a, 0x6a, 0x00, 0x00, 0xff, 0xff, +0x55, 0xa9, 0xa9, 0xa9, 0x00, 0x00, 0xff, 0xff, 0x55, 0xaa, 0xaa, 0xaa, +0x00, 0x00, 0xff, 0xff, 0x55, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0xff, 0xff, +0x55, 0x6a, 0x6a, 0x6a, 0x00, 0x00, 0xff, 0xff, 0x55, 0xa9, 0xa9, 0xa9, +0x00, 0x00, 0xff, 0xff, 0x55, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0xff, 0xff, +0x55, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0xff, 0xff, 0x55, 0x6a, 0x6a, 0x6a, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, +0xa9, 0xa9, 0xa9, 0xa9, 0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, +0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, +0x6a, 0x6a, 0x6a, 0x6a, 0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0xa9, +0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, +0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x6a, +0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0xa9, 0xfb, 0xdf, 0x0a, 0x52, +0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, +0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x6a, 0x00, 0x00, 0xff, 0xff, +0xa9, 0xa9, 0xa9, 0xa9, 0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, +0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, +0x6a, 0x6a, 0x6a, 0x6a, 0x41, 0x08, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0xa9, +0x9e, 0xf7, 0x10, 0x84, 0xe2, 0x35, 0x55, 0x55, 0x3c, 0xe7, 0x10, 0x84, +0x55, 0x5c, 0x83, 0xb5, 0xff, 0xff, 0x30, 0x84, 0x15, 0x15, 0x15, 0x38, +0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0xa9, 0xfb, 0xdf, 0x0a, 0x52, +0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, +0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x6a, 0x00, 0x00, 0xff, 0xff, +0xa9, 0xa9, 0xa9, 0xa9, 0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, +0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, +0x6a, 0x6a, 0x6a, 0x6a, 0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0xa9, +0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, +0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x6a, +0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0xa9, 0xfb, 0xdf, 0x0a, 0x52, +0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, +0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x6a, 0x00, 0x00, 0xff, 0xff, +0xa9, 0xa9, 0xa9, 0xa9, 0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, +0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, +0x6a, 0x6a, 0x6a, 0x6a, 0xde, 0xf7, 0x30, 0x84, 0x54, 0x54, 0x94, 0x88, +0x5c, 0xe7, 0x10, 0x84, 0xd5, 0x0d, 0x70, 0x57, 0xbe, 0xf7, 0x30, 0x84, +0x62, 0x57, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x6a, +0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0xa9, 0xfb, 0xdf, 0x0a, 0x52, +0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, +0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x6a, 0x00, 0x00, 0xff, 0xff, +0xa9, 0xa9, 0xa9, 0xa9, 0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, +0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, +0x6a, 0x6a, 0x6a, 0x6a, 0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0xa9, +0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, +0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x6a, +0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0xa9, 0xfb, 0xdf, 0x0a, 0x52, +0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, +0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x6a, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0xa9, +0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, +0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x6a, +0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0xa9, 0xfb, 0xdf, 0x0a, 0x52, +0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, +0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x6a, 0x00, 0x00, 0xff, 0xff, +0xa9, 0xa9, 0xa9, 0xa9, 0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, +0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, +0x6a, 0x6a, 0x6a, 0x6a, 0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0xa9, +0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, +0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x6a, +0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0xa9, 0xfb, 0xdf, 0x0a, 0x52, +0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0x10, 0x84, 0x2d, 0x15, 0x15, 0x15, 0xff, 0xff, 0x30, 0x84, +0x5c, 0x88, 0xd4, 0x54, 0xff, 0xff, 0x10, 0x84, 0x55, 0x57, 0xe2, 0xb5, +0x9d, 0xef, 0x30, 0x84, 0x55, 0x55, 0x55, 0xe0, 0x41, 0x08, 0xff, 0xff, +0x6a, 0x6a, 0x6a, 0x6a, 0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0xa9, +0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, +0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x6a, +0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0xa9, 0xfb, 0xdf, 0x0a, 0x52, +0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, +0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x6a, 0x00, 0x00, 0xff, 0xff, +0xa9, 0xa9, 0xa9, 0xa9, 0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, +0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, +0x6a, 0x6a, 0x6a, 0x6a, 0xff, 0xff, 0x30, 0x84, 0x54, 0x54, 0x54, 0xd4, +0x9d, 0xef, 0x30, 0x84, 0x55, 0x55, 0xd5, 0x82, 0xff, 0xff, 0x10, 0x84, +0x55, 0xb5, 0xe2, 0x57, 0xff, 0xff, 0x30, 0x84, 0x2d, 0x38, 0x15, 0x15, +0xff, 0xff, 0x10, 0x84, 0x5c, 0x54, 0x54, 0x54, 0xfb, 0xdf, 0x0a, 0x52, +0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, +0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x6a, 0x00, 0x00, 0xff, 0xff, +0xa9, 0xa9, 0xa9, 0xa9, 0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, +0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, +0x6a, 0x6a, 0x6a, 0x6a, 0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0xa9, +0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, +0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x6a, +0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0xa9, 0xfb, 0xdf, 0x0a, 0x52, +0xff, 0xff, 0xff, 0xff, 0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, +0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x6a, 0x00, 0x00, 0xff, 0xff, +0xa9, 0xa9, 0xa9, 0xa9, 0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, +0xfb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, +0x6a, 0x6a, 0x6a, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0x55, 0x00, 0x00, 0xff, 0xff, +0xaa, 0xaa, 0xaa, 0x55, 0x00, 0x00, 0xff, 0xff, 0xaa, 0xaa, 0xaa, 0x55, +0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x55, 0x00, 0x00, 0xff, 0xff, +0xa9, 0xa9, 0xa9, 0x55, 0x00, 0x00, 0xff, 0xff, 0xaa, 0xaa, 0xaa, 0x55, +0x00, 0x00, 0xff, 0xff, 0xaa, 0xaa, 0xaa, 0x55, 0x00, 0x00, 0xff, 0xff, +0x6a, 0x6a, 0x6a, 0x55, 0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0x55, +0x00, 0x00, 0xff, 0xff, 0xaa, 0xaa, 0xaa, 0x55, 0x00, 0x00, 0xff, 0xff, +0xaa, 0xaa, 0xaa, 0x55, 0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x55, +0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0x55, 0x00, 0x00, 0xff, 0xff, +0xaa, 0xaa, 0xaa, 0x55, 0x00, 0x00, 0xff, 0xff, 0xaa, 0xaa, 0xaa, 0x55, +0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x55, 0x00, 0x00, 0xff, 0xff, +0xa9, 0xa9, 0xa9, 0x55, 0x00, 0x00, 0xff, 0xff, 0xaa, 0xaa, 0xaa, 0x55, +0x00, 0x00, 0xff, 0xff, 0xaa, 0xaa, 0xaa, 0x55, 0x00, 0x00, 0xff, 0xff, +0x6a, 0x6a, 0x6a, 0x55, 0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0x55, +0x00, 0x00, 0xff, 0xff, 0xaa, 0xaa, 0xaa, 0x55, 0xff, 0xff, 0x30, 0x84, +0xb5, 0x55, 0x55, 0x00, 0xde, 0xf7, 0x30, 0x84, 0x20, 0x35, 0x15, 0x00, +0xdf, 0xff, 0x30, 0x84, 0x54, 0x80, 0xd4, 0x00, 0xde, 0xf7, 0x30, 0x84, +0x55, 0x7e, 0x2b, 0x00, 0xdf, 0xff, 0x10, 0x84, 0x55, 0x55, 0xa0, 0x00, +0xef, 0x7b, 0xdf, 0xff, 0x40, 0x40, 0x6a, 0x55, 0x82, 0x10, 0xff, 0xff, +0xa9, 0xa9, 0xa9, 0x55, 0xff, 0xff, 0x28, 0x42, 0xff, 0xff, 0xff, 0x00, +0x21, 0x08, 0xff, 0xff, 0xaa, 0xaa, 0xaa, 0x55, 0xc3, 0x18, 0xff, 0xff, +0x6a, 0x6a, 0x6a, 0x55, 0xff, 0xff, 0x08, 0x42, 0xfc, 0xfc, 0xa8, 0x00, +0xde, 0xf7, 0x30, 0x84, 0x55, 0x55, 0x02, 0x00, 0xff, 0xff, 0x10, 0x84, +0x55, 0xaf, 0xfa, 0x00, 0xdf, 0xff, 0x30, 0x84, 0x35, 0x20, 0x15, 0x00, +0xde, 0xf7, 0x30, 0x84, 0x80, 0x54, 0x54, 0x00, 0xff, 0xff, 0x30, 0x84, +0x57, 0x55, 0x55, 0x00, 0x00, 0x00, 0xff, 0xff, 0xaa, 0xaa, 0xaa, 0x55, +0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x55, 0x00, 0x00, 0xff, 0xff, +0xa9, 0xa9, 0xa9, 0x55, 0x00, 0x00, 0xff, 0xff, 0xaa, 0xaa, 0xaa, 0x55, +0x00, 0x00, 0xff, 0xff, 0xaa, 0xaa, 0xaa, 0x55, 0x00, 0x00, 0xff, 0xff, +0x6a, 0x6a, 0x6a, 0x55, 0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0x55, +0x00, 0x00, 0xff, 0xff, 0xaa, 0xaa, 0xaa, 0x55, 0x00, 0x00, 0xff, 0xff, +0xaa, 0xaa, 0xaa, 0x55, 0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x55, +0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0x55, 0x00, 0x00, 0xff, 0xff, +0xaa, 0xaa, 0xaa, 0x55, 0x00, 0x00, 0xff, 0xff, 0xaa, 0xaa, 0xaa, 0x55, +0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x55, 0x00, 0x00, 0xff, 0xff, +0xa9, 0xa9, 0xa9, 0x55, 0x00, 0x00, 0xff, 0xff, 0xaa, 0xaa, 0xaa, 0x55, +0x00, 0x00, 0xff, 0xff, 0xaa, 0xaa, 0xaa, 0x55, 0x00, 0x00, 0xff, 0xff, +0x6a, 0x6a, 0x6a, 0x55, 0x00, 0x00, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0x55, +0x00, 0x00, 0xff, 0xff, 0xaa, 0xaa, 0xaa, 0x55, 0x00, 0x00, 0xff, 0xff, +0xaa, 0xaa, 0xaa, 0x55, 0x00, 0x00, 0xff, 0xff, 0x6a, 0x6a, 0x6a, 0x55, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, +0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, +0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55 \ No newline at end of file diff --git a/dependencies/zstd-1.5.0/build/single_file_libs/examples/testcard-zstd.inl b/dependencies/zstd-1.5.0/build/single_file_libs/examples/testcard-zstd.inl new file mode 100644 index 0000000..9e43883 --- /dev/null +++ b/dependencies/zstd-1.5.0/build/single_file_libs/examples/testcard-zstd.inl @@ -0,0 +1,261 @@ +0x28, 0xb5, 0x2f, 0xfd, 0x60, 0x00, 0x7f, 0x6d, 0x61, 0x00, 0x0a, 0x66, +0xec, 0x17, 0x48, 0x60, 0x1c, 0x5a, 0xc9, 0x5d, 0x1a, 0x38, 0x07, 0xe8, +0xc5, 0x82, 0x99, 0x68, 0xe6, 0x95, 0x45, 0x58, 0x0d, 0x0c, 0xf3, 0x36, +0xc8, 0xd9, 0x0f, 0x46, 0x2d, 0x68, 0x11, 0xf8, 0x31, 0x10, 0xa1, 0x1a, +0x2f, 0x99, 0x5c, 0x84, 0xfd, 0x92, 0x02, 0xe6, 0x3b, 0x44, 0x9b, 0x01, +0x5d, 0x92, 0xff, 0x38, 0x26, 0x00, 0x6a, 0x6b, 0xc3, 0x53, 0xb2, 0x0c, +0x25, 0xf3, 0xd8, 0x59, 0x68, 0x9b, 0x14, 0x8a, 0x89, 0x75, 0x18, 0x03, +0x1d, 0xc9, 0x0f, 0x63, 0x01, 0x73, 0x01, 0x72, 0x01, 0x4f, 0x66, 0x31, +0x58, 0x0f, 0x97, 0x4b, 0x0c, 0x4c, 0x06, 0xac, 0x07, 0x0b, 0x68, 0xd4, +0xad, 0x80, 0x64, 0x13, 0x74, 0xa1, 0x12, 0x16, 0x58, 0xcf, 0x1a, 0x95, +0x5f, 0x0d, 0x26, 0x55, 0xd0, 0x9c, 0xf4, 0x52, 0x35, 0x2e, 0x20, 0xc1, +0x06, 0x69, 0x03, 0x0a, 0x93, 0x83, 0x5e, 0x27, 0x9b, 0x4c, 0x6d, 0xee, +0x87, 0x03, 0x30, 0x6c, 0x46, 0xd7, 0x50, 0x5c, 0xca, 0xe6, 0xa6, 0x4d, +0xa8, 0xf6, 0xab, 0xd7, 0x0e, 0x27, 0x27, 0x90, 0xc4, 0xb2, 0xd1, 0x10, +0xfa, 0x43, 0x82, 0xc8, 0xf2, 0xe5, 0xff, 0xff, 0xd5, 0x52, 0x62, 0x43, +0x87, 0x26, 0x2a, 0x05, 0x70, 0x0e, 0xb0, 0x2f, 0xc4, 0x56, 0xef, 0xb5, +0xca, 0xb8, 0x53, 0xb7, 0x96, 0x0e, 0xe7, 0x00, 0x2c, 0xa8, 0xda, 0x3b, +0x07, 0x70, 0xa7, 0x78, 0x38, 0x60, 0x87, 0x7a, 0x01, 0x3b, 0x75, 0xec, +0xfa, 0x77, 0xe2, 0x46, 0x94, 0x61, 0x8e, 0x0d, 0x0c, 0xfb, 0xe7, 0x8b, +0x13, 0x50, 0x31, 0xa9, 0x27, 0xcd, 0x27, 0xef, 0x6b, 0xa6, 0xab, 0x9c, +0x4d, 0x95, 0x6c, 0x3a, 0xbb, 0x8e, 0x96, 0x92, 0x18, 0x5a, 0x7c, 0x4f, +0xff, 0x7b, 0x38, 0xf2, 0xdb, 0x86, 0xde, 0xff, 0x1f, 0x2f, 0x21, 0x86, +0x7d, 0xbf, 0x45, 0xd0, 0x6e, 0x77, 0x0a, 0xee, 0x0a, 0xee, 0x14, 0x9a, +0xb8, 0x84, 0xf3, 0xac, 0xbe, 0xc8, 0x7f, 0x8d, 0xff, 0xff, 0xcf, 0x2a, +0xfb, 0x69, 0xfc, 0xfb, 0xfd, 0x7a, 0x10, 0x22, 0x36, 0xfc, 0xff, 0x3f, +0xcf, 0xd0, 0xf1, 0x7f, 0xfe, 0xff, 0x3d, 0x24, 0xdf, 0x78, 0x4a, 0xff, +0xda, 0x9c, 0x39, 0xcf, 0xef, 0xe7, 0xfd, 0x52, 0x98, 0xb5, 0x40, 0x92, +0xee, 0xdd, 0x99, 0xf5, 0x53, 0x5b, 0x65, 0x6b, 0xb5, 0xd8, 0x7b, 0xae, +0xfa, 0xc1, 0x0f, 0x0c, 0x7f, 0x4f, 0x55, 0xa3, 0xad, 0x2c, 0xa0, 0xbd, +0xf7, 0x2a, 0x0e, 0xe8, 0xbd, 0xc7, 0x5e, 0xf5, 0xd8, 0x54, 0x9e, 0x56, +0xa3, 0xd6, 0x59, 0xd5, 0xfe, 0x1f, 0xc0, 0x30, 0x8c, 0xfc, 0x46, 0x04, +0xae, 0x60, 0xbc, 0xe8, 0xcf, 0xec, 0x3d, 0xde, 0xf9, 0xf0, 0xfe, 0xef, +0x7d, 0xcc, 0xf7, 0x2b, 0xe5, 0x1b, 0x70, 0xff, 0xff, 0x7e, 0x3f, 0x6e, +0xe4, 0x02, 0x07, 0xfc, 0x1b, 0x7a, 0xff, 0xe7, 0x58, 0xfc, 0x7e, 0x3a, +0xdc, 0x97, 0xfd, 0x57, 0xef, 0xa3, 0xfc, 0x2a, 0xc7, 0x4d, 0xf3, 0xcb, +0x9d, 0xce, 0xac, 0xfe, 0xeb, 0x2e, 0x86, 0xb9, 0x69, 0x54, 0xef, 0xf9, +0x55, 0xcf, 0xff, 0x48, 0x24, 0x72, 0x3a, 0x9d, 0x72, 0x2f, 0x2f, 0x2f, +0xff, 0x3f, 0xe7, 0x01, 0x6c, 0x4d, 0x6c, 0xcd, 0x2d, 0x5b, 0x53, 0xb7, +0x59, 0x22, 0x08, 0x0b, 0xa7, 0x92, 0x15, 0x75, 0x93, 0xb0, 0x5d, 0xaf, +0x2a, 0x63, 0x95, 0x1d, 0x25, 0xd2, 0xd2, 0xa8, 0x1c, 0x84, 0xc9, 0xdc, +0x72, 0xba, 0xd7, 0xfc, 0x69, 0xf5, 0xc7, 0x19, 0xa9, 0xbe, 0xfa, 0x26, +0x55, 0x25, 0x75, 0xb7, 0x60, 0xa3, 0xd8, 0x68, 0x54, 0xb7, 0x1b, 0xa5, +0x54, 0x62, 0xb1, 0x49, 0xde, 0xe2, 0xac, 0xa2, 0xe8, 0x7b, 0xff, 0x5f, +0x75, 0x4e, 0xb8, 0xa2, 0xdd, 0x6a, 0xb7, 0xda, 0x6e, 0x2e, 0x04, 0xcd, +0x08, 0x2f, 0xec, 0x8e, 0x49, 0xaf, 0x49, 0x6f, 0x8b, 0x4f, 0x2e, 0x1a, +0xc5, 0x62, 0x7b, 0x6b, 0x3e, 0x32, 0x3e, 0x32, 0xbe, 0x08, 0x35, 0x4d, +0x63, 0x93, 0xa6, 0xc8, 0x42, 0xe6, 0x21, 0xcc, 0x59, 0xc8, 0x4c, 0xe5, +0x86, 0xe1, 0x03, 0x06, 0xa4, 0xec, 0xff, 0xb7, 0x78, 0x7e, 0x62, 0x43, +0xc7, 0x2c, 0x50, 0x30, 0x4a, 0xc8, 0x9b, 0xf3, 0xbf, 0xe6, 0x62, 0xa0, +0x50, 0xa6, 0x9c, 0xe3, 0x6e, 0x5b, 0xaf, 0x77, 0x8b, 0xbb, 0xe1, 0x70, +0xaa, 0xaa, 0xaa, 0x92, 0xb4, 0x52, 0xad, 0x14, 0x87, 0x93, 0x0b, 0xe6, +0x82, 0x39, 0x11, 0xb9, 0x20, 0x9a, 0x16, 0x34, 0x22, 0x68, 0xb2, 0x68, +0xb2, 0x76, 0xd3, 0xe8, 0x6e, 0xda, 0x6b, 0x62, 0x34, 0x2e, 0x8d, 0xbd, +0x2d, 0x3d, 0x6b, 0x4c, 0x26, 0x33, 0xda, 0x33, 0xf3, 0x91, 0x51, 0x46, +0x79, 0xbd, 0x3e, 0x39, 0x9f, 0xcf, 0xd2, 0xb8, 0x5c, 0xfa, 0x22, 0xf8, +0x8e, 0xb6, 0xbe, 0x08, 0x40, 0x14, 0x49, 0x40, 0x14, 0xf2, 0x0c, 0x2d, +0x30, 0x85, 0x3c, 0x63, 0x29, 0xd3, 0x98, 0x85, 0x6c, 0xb5, 0xdb, 0xad, +0x5c, 0x63, 0x9e, 0x72, 0xcf, 0x43, 0xe6, 0xaf, 0x77, 0xa6, 0xe2, 0x21, +0x0c, 0x4d, 0xd3, 0x49, 0x1e, 0xc2, 0x14, 0x6f, 0xee, 0xdb, 0x7b, 0x7b, +0x08, 0xb3, 0xa4, 0x60, 0x3b, 0x9d, 0x6e, 0x8b, 0x37, 0x4b, 0x0a, 0x74, +0x35, 0x33, 0xbc, 0xf9, 0x64, 0x85, 0x63, 0x32, 0x29, 0x20, 0x59, 0x0c, +0x3c, 0x96, 0x67, 0x62, 0xb7, 0x8a, 0x92, 0x4d, 0xa0, 0xd3, 0xf3, 0xd1, +0x85, 0x80, 0x38, 0xcb, 0x64, 0x60, 0xc9, 0xb5, 0xaf, 0x97, 0x8d, 0x20, +0x45, 0x28, 0xb8, 0xab, 0xe8, 0xc9, 0x0a, 0x88, 0x1f, 0xd6, 0x47, 0x54, +0xf1, 0xd3, 0xfb, 0x62, 0xa7, 0xfd, 0xf2, 0x8b, 0xfd, 0xb6, 0xe4, 0x2e, +0xb6, 0x91, 0x73, 0x1c, 0xd0, 0x7b, 0xba, 0x83, 0xc9, 0xac, 0x51, 0x39, +0x92, 0xc5, 0x4f, 0x30, 0x1e, 0x2e, 0xd5, 0xf1, 0xa8, 0xa6, 0xa5, 0x80, +0x70, 0xb9, 0xbc, 0xb7, 0xc2, 0x52, 0x32, 0x6c, 0xe3, 0x3d, 0xed, 0x41, +0xa4, 0x4b, 0x31, 0x2a, 0xe6, 0x62, 0x11, 0x19, 0x95, 0x73, 0x1d, 0xbf, +0xe1, 0x6c, 0xfc, 0x47, 0x75, 0x6c, 0x37, 0x63, 0x02, 0xf8, 0x34, 0x40, +0x9a, 0x00, 0x1d, 0xf7, 0x32, 0x56, 0x77, 0xda, 0x5b, 0x9f, 0x9f, 0x0f, +0xbb, 0x91, 0x5b, 0xbd, 0xe7, 0x58, 0x82, 0x4a, 0x20, 0xcd, 0x4f, 0x47, +0x15, 0xf3, 0x51, 0xf1, 0x43, 0x51, 0x10, 0x96, 0xae, 0xba, 0xf7, 0x21, +0x50, 0xef, 0x55, 0x27, 0x0c, 0x1f, 0xe0, 0x54, 0xf8, 0xc9, 0x69, 0xef, +0xb9, 0x53, 0xf7, 0x83, 0x73, 0x9d, 0xce, 0x86, 0x07, 0x83, 0x44, 0x61, +0x37, 0x35, 0x35, 0x33, 0x4e, 0x33, 0x33, 0x3e, 0x9f, 0x50, 0x48, 0x24, +0xe6, 0xd0, 0x79, 0x49, 0xc3, 0x2d, 0xa0, 0x46, 0x31, 0x9a, 0x72, 0xc3, +0x84, 0xff, 0x7a, 0x95, 0xbb, 0x00, 0x22, 0xcc, 0x14, 0x00, 0x04, 0xac, +0x60, 0x64, 0x86, 0xe4, 0x6f, 0xb1, 0x58, 0xf4, 0xdc, 0xb0, 0x05, 0x00, +0x72, 0x38, 0xf8, 0xce, 0xce, 0x8e, 0xcf, 0x37, 0x33, 0x43, 0x24, 0x0a, +0x85, 0x33, 0x35, 0x35, 0x37, 0xc2, 0xa8, 0x28, 0x27, 0x1b, 0x9d, 0xce, +0x29, 0x18, 0xe4, 0xfc, 0x09, 0x53, 0xa5, 0x51, 0xad, 0x74, 0x79, 0x7b, +0xb5, 0x4a, 0x65, 0x94, 0x36, 0x89, 0xf5, 0x62, 0x9b, 0xd8, 0x9a, 0xe8, +0x2b, 0xff, 0xa1, 0x73, 0xfe, 0x2e, 0x2c, 0x41, 0x45, 0x37, 0xef, 0x6e, +0x7b, 0x38, 0xca, 0xa5, 0xd2, 0xb8, 0x1c, 0x3b, 0x96, 0x21, 0xbb, 0x5d, +0xad, 0xd1, 0xdb, 0x1c, 0xf6, 0x5e, 0x4b, 0xd9, 0x59, 0x1b, 0x67, 0xf5, +0x7a, 0x7c, 0x9a, 0x91, 0x3e, 0x8e, 0xe3, 0xee, 0x7b, 0xb9, 0xa4, 0xb9, +0xf5, 0x70, 0xee, 0x1d, 0x4e, 0x4f, 0xcc, 0xd6, 0x7b, 0x07, 0x71, 0x48, +0xf2, 0x06, 0xd0, 0x10, 0x82, 0x21, 0xe4, 0x55, 0x2e, 0xa5, 0x1d, 0xbe, +0x48, 0x8c, 0x69, 0xbb, 0x24, 0x40, 0x68, 0x9b, 0xba, 0x5a, 0x5a, 0xa7, +0xe2, 0xd1, 0xac, 0xc2, 0xd8, 0x87, 0x9c, 0xe3, 0x78, 0xee, 0xa6, 0xcd, +0xdd, 0x68, 0x6e, 0xdd, 0xdb, 0x2e, 0xc6, 0xbb, 0x8b, 0xe9, 0xc1, 0xd9, +0xf6, 0x62, 0x7e, 0x72, 0x7e, 0x72, 0x34, 0xe4, 0x68, 0xc8, 0x11, 0x32, +0x10, 0x32, 0x20, 0x32, 0xf0, 0x12, 0x19, 0x90, 0xe0, 0x45, 0x91, 0xe0, +0x25, 0x83, 0xba, 0xc9, 0x20, 0x26, 0x87, 0xa5, 0x72, 0xa9, 0x64, 0x72, +0x80, 0x21, 0x54, 0x13, 0xeb, 0x29, 0x18, 0x42, 0x34, 0x84, 0x94, 0x34, +0x84, 0xa4, 0x1d, 0xa4, 0x1d, 0x82, 0x1c, 0xef, 0xaf, 0x0e, 0x63, 0x47, +0x6d, 0x10, 0xb9, 0xec, 0xd8, 0x2d, 0x3b, 0x9e, 0x21, 0xb1, 0x67, 0x48, +0x34, 0x24, 0x1a, 0x52, 0xdb, 0xa4, 0x6d, 0x62, 0xd3, 0xfa, 0xff, 0xfa, +0x03, 0x34, 0xef, 0x9d, 0xc9, 0xe1, 0x5d, 0xec, 0xf5, 0xf1, 0x79, 0x8c, +0x97, 0xd2, 0x24, 0xc1, 0x2d, 0xe0, 0x39, 0x16, 0x1e, 0xa9, 0x41, 0xc3, +0xbf, 0x4a, 0xd9, 0x3c, 0xea, 0x77, 0x96, 0x55, 0xe6, 0x95, 0xc3, 0xf1, +0x8e, 0x7b, 0x4f, 0xad, 0x61, 0xf8, 0xe7, 0x01, 0xad, 0x46, 0xf5, 0x2c, +0xac, 0x55, 0x2c, 0x94, 0xaa, 0x46, 0xfb, 0x5e, 0xcd, 0xaa, 0x1f, 0x78, +0x4f, 0x2f, 0xd1, 0xc9, 0x02, 0xd6, 0x2c, 0x67, 0xef, 0x3f, 0x54, 0xab, +0xda, 0x03, 0x79, 0x1f, 0xab, 0xfd, 0x0c, 0x38, 0x3c, 0xbc, 0xe1, 0xd5, +0x01, 0xf6, 0xfb, 0xfb, 0xf1, 0x70, 0xee, 0xfd, 0x90, 0x13, 0x97, 0xc4, +0xbc, 0x08, 0xe7, 0x4b, 0x88, 0x34, 0xf7, 0x56, 0x1e, 0x0c, 0xdb, 0xe4, +0x9c, 0x78, 0xf1, 0xf4, 0x62, 0x4c, 0xb5, 0xf7, 0xdd, 0xd9, 0x4c, 0x5a, +0x69, 0xa6, 0x36, 0x27, 0x03, 0xbe, 0x86, 0xc2, 0x72, 0xa2, 0x60, 0x73, +0xf1, 0xe0, 0x17, 0x50, 0xb5, 0x93, 0x81, 0xac, 0xf1, 0xc9, 0xd4, 0x66, +0x73, 0x71, 0xce, 0x63, 0xa8, 0x60, 0x98, 0xda, 0x86, 0x46, 0x72, 0xec, +0x54, 0xc1, 0xe6, 0x8a, 0x10, 0x23, 0x2d, 0x0c, 0xdd, 0x44, 0x0b, 0xa0, +0x44, 0xa4, 0x9d, 0x0e, 0x64, 0x31, 0x30, 0x45, 0xb1, 0x97, 0x4c, 0x6d, +0x9f, 0x43, 0x99, 0x71, 0xa8, 0x9a, 0xe6, 0xbd, 0x3a, 0xe1, 0xff, 0x7f, +0x33, 0x61, 0xf1, 0x48, 0xda, 0x48, 0x28, 0x10, 0x23, 0x9b, 0x24, 0xeb, +0xee, 0xbd, 0x35, 0x0e, 0x6e, 0x75, 0x23, 0x20, 0xd6, 0x95, 0x8c, 0xa5, +0x24, 0xec, 0x44, 0x67, 0x52, 0x2e, 0x78, 0x2a, 0xba, 0x3e, 0x3a, 0x4e, +0xc9, 0x5c, 0x23, 0xb0, 0xd5, 0xfb, 0x29, 0xaf, 0x9a, 0x0b, 0x90, 0x89, +0xd8, 0xec, 0xa9, 0xa8, 0x13, 0xfc, 0x22, 0xfa, 0xf2, 0x74, 0x2f, 0x4e, +0x35, 0xb0, 0x6d, 0x6c, 0xfd, 0xc4, 0xfe, 0xd0, 0x98, 0x3d, 0xe5, 0x43, +0x0a, 0xd0, 0x33, 0x26, 0x3b, 0x12, 0x7d, 0x65, 0xa1, 0xff, 0xff, 0x6f, +0x53, 0x0e, 0x28, 0x84, 0xa7, 0xa2, 0x2e, 0xf8, 0x4a, 0xb6, 0xa1, 0x47, +0xf5, 0xd0, 0x13, 0x9d, 0xd9, 0x50, 0xef, 0x9f, 0x31, 0xb4, 0x13, 0x67, +0xf9, 0x0a, 0x99, 0xb5, 0x80, 0xec, 0x4a, 0x1a, 0x59, 0x21, 0x3b, 0xce, +0xc5, 0x7e, 0x96, 0x85, 0x92, 0xc5, 0xb0, 0x75, 0xaa, 0x41, 0x16, 0xa9, +0xd3, 0xde, 0x13, 0x7d, 0xd9, 0x61, 0x30, 0x1c, 0x73, 0x61, 0x54, 0x90, +0xcf, 0xd4, 0xe8, 0xfe, 0xbf, 0xbf, 0x36, 0x57, 0x26, 0x38, 0xab, 0x06, +0xc4, 0x7e, 0x3c, 0x5b, 0x35, 0xd2, 0x7c, 0x2c, 0x0a, 0x82, 0xf2, 0xa8, +0xf2, 0x8b, 0x48, 0xa9, 0x90, 0x00, 0x01, 0x10, 0x10, 0x14, 0x04, 0x00, +0x32, 0xa2, 0x06, 0x82, 0x28, 0x90, 0xc2, 0xb4, 0x85, 0xda, 0x01, 0x52, +0xe9, 0x18, 0x85, 0x60, 0x00, 0x00, 0x20, 0x0c, 0x00, 0x14, 0x41, 0x00, +0x40, 0xa0, 0x04, 0x40, 0x00, 0x80, 0x50, 0x03, 0x01, 0x10, 0x18, 0x01, +0x80, 0xd4, 0x14, 0x99, 0x01, 0xfd, 0x07, 0xf8, 0x16, 0x0e, 0xd9, 0x5d, +0xa3, 0x70, 0xfe, 0xda, 0x17, 0xfa, 0xce, 0x46, 0x9a, 0x99, 0x81, 0x1a, +0x39, 0xba, 0x63, 0xb1, 0x18, 0x11, 0x58, 0xd7, 0xc7, 0xba, 0x03, 0x3e, +0x01, 0xf2, 0xf9, 0x4e, 0x12, 0xa3, 0x50, 0x7b, 0xaf, 0x7b, 0x60, 0x5c, +0x83, 0x23, 0xd2, 0x60, 0x27, 0x84, 0xad, 0xb8, 0x02, 0xed, 0xfe, 0xb4, +0x9c, 0x08, 0x9f, 0x49, 0xae, 0x55, 0x02, 0x94, 0xc0, 0x1b, 0x90, 0x75, +0x0b, 0x90, 0xc4, 0xc7, 0x43, 0x9e, 0x67, 0x25, 0x70, 0x61, 0x0d, 0xb8, +0x7a, 0x97, 0x43, 0xfc, 0xd1, 0x7e, 0x68, 0xed, 0x03, 0xb7, 0x1e, 0x75, +0xe9, 0x4d, 0x7a, 0x23, 0x18, 0x37, 0x63, 0x6f, 0xab, 0x5f, 0x7c, 0x5b, +0x1c, 0x05, 0xdf, 0x3f, 0x00, 0x86, 0x37, 0xa0, 0xfa, 0x0c, 0xe0, 0xed, +0x35, 0x35, 0x2f, 0xd8, 0xd1, 0x75, 0xba, 0x37, 0x34, 0x7e, 0xb0, 0x84, +0x2a, 0x01, 0x0c, 0x98, 0xed, 0x47, 0xf9, 0x86, 0x81, 0x74, 0x00, 0x5d, +0x8b, 0x4c, 0x18, 0x8a, 0x31, 0xcd, 0xae, 0x07, 0x44, 0xb5, 0xd5, 0x07, +0xa0, 0xdf, 0xf4, 0xfa, 0xa6, 0x42, 0xd0, 0x4f, 0x17, 0xd8, 0xdf, 0xb6, +0x34, 0x44, 0xe3, 0x01, 0xc4, 0xb6, 0x2d, 0xb5, 0x56, 0xc6, 0x2a, 0x1f, +0x05, 0x6c, 0x35, 0xe0, 0x09, 0x31, 0xef, 0x60, 0xfe, 0xaf, 0x07, 0x80, +0x32, 0xa0, 0xe9, 0xd3, 0x96, 0x45, 0xa7, 0xaa, 0xb6, 0xfb, 0x03, 0x10, +0xe3, 0x97, 0x96, 0x8d, 0x3a, 0x01, 0xdd, 0x58, 0x58, 0x78, 0x00, 0xab, +0xff, 0x06, 0xa0, 0xd6, 0x01, 0x58, 0x08, 0xb7, 0xdc, 0x2d, 0xa7, 0xfb, +0x22, 0xa8, 0x67, 0x00, 0xe3, 0xcf, 0x82, 0x43, 0xfc, 0x96, 0x1b, 0x40, +0x63, 0xcf, 0x9d, 0x42, 0x5d, 0x66, 0x40, 0xaa, 0xaf, 0x28, 0x94, 0xd3, +0x2a, 0xd4, 0x02, 0x13, 0xd2, 0xdf, 0x03, 0x9c, 0x60, 0x6b, 0x16, 0x94, +0xb4, 0xbe, 0x62, 0xc2, 0x35, 0x60, 0x45, 0x09, 0x23, 0x5a, 0xe0, 0x85, +0xb3, 0x03, 0x50, 0x68, 0x0c, 0x20, 0xa5, 0xf9, 0x94, 0xd2, 0x35, 0x80, +0xad, 0x4c, 0x4e, 0x40, 0x41, 0x97, 0x92, 0x75, 0xbe, 0x0c, 0x03, 0x50, +0x85, 0x08, 0xaf, 0x36, 0x00, 0x68, 0xaf, 0x09, 0xb3, 0x0c, 0x20, 0x4f, +0x81, 0x6a, 0x6a, 0xf5, 0x0d, 0x70, 0x69, 0x00, 0x4c, 0xb4, 0x0f, 0x59, +0xe7, 0x31, 0x0a, 0x45, 0x9f, 0xde, 0x90, 0xd6, 0x38, 0x80, 0x6b, 0x2c, +0xb9, 0x2f, 0xd4, 0x01, 0x40, 0x14, 0xd5, 0xed, 0x8e, 0x01, 0x53, 0xbf, +0x03, 0x18, 0x1e, 0xb0, 0xc1, 0x85, 0x32, 0xec, 0x78, 0x2b, 0xf0, 0xbb, +0xbb, 0x6c, 0xf3, 0x4d, 0xdc, 0x73, 0x40, 0xfd, 0x10, 0x09, 0x9e, 0x20, +0xe2, 0x12, 0x8c, 0xe0, 0xd2, 0xed, 0x80, 0x6b, 0xcc, 0x78, 0x20, 0x03, +0xd0, 0x5e, 0x06, 0xf4, 0xb0, 0xc4, 0x0e, 0x15, 0x1d, 0x80, 0xb4, 0x76, +0xdf, 0x49, 0x03, 0x50, 0x82, 0xad, 0xda, 0x8b, 0x5a, 0x61, 0xc2, 0x5e, +0xb5, 0x1e, 0x46, 0xc0, 0xde, 0xaa, 0x0e, 0x15, 0x06, 0xd2, 0xf4, 0xb2, +0xd1, 0xed, 0x38, 0x0a, 0x03, 0x18, 0x33, 0x1a, 0x80, 0x61, 0x3e, 0xec, +0x7c, 0x74, 0xa8, 0x1d, 0x80, 0x1a, 0xce, 0x25, 0x1d, 0x41, 0xd1, 0xc1, +0x03, 0x28, 0xb5, 0xaf, 0x72, 0x9c, 0x59, 0x7a, 0xe1, 0x7d, 0xc0, 0xa5, +0x08, 0x1e, 0x18, 0x24, 0xfa, 0xbd, 0x99, 0x4a, 0x31, 0xa0, 0xea, 0xee, +0xf8, 0x36, 0x60, 0x98, 0xc9, 0x10, 0xd1, 0xa7, 0x35, 0x00, 0x8d, 0x40, +0x8e, 0x5a, 0x35, 0x0f, 0x80, 0xb1, 0xd4, 0x32, 0x79, 0x40, 0x34, 0x05, +0x7e, 0x98, 0xc6, 0x80, 0x3e, 0x90, 0x01, 0x65, 0xf4, 0x80, 0x73, 0x08, +0x64, 0xd7, 0x36, 0xc1, 0x7c, 0xc0, 0x5c, 0x75, 0x00, 0xc5, 0x09, 0x58, +0x9c, 0x13, 0x01, 0x72, 0x37, 0x9b, 0x79, 0xe4, 0x05, 0xd1, 0x01, 0x04, +0x98, 0x08, 0x74, 0xfd, 0xfc, 0x3f, 0x1c, 0x00, 0x73, 0x01, 0xfc, 0x1c, +0xcc, 0x16, 0x43, 0x19, 0x1d, 0xac, 0x61, 0x4b, 0x11, 0xc2, 0xa0, 0xf2, +0x01, 0x0b, 0x7b, 0x3b, 0xf4, 0xfc, 0x58, 0x5d, 0x2d, 0x5c, 0x01, 0x8c, +0x62, 0x17, 0x78, 0xbe, 0x60, 0x8c, 0x01, 0x6f, 0x91, 0x49, 0x65, 0x54, +0x92, 0xe9, 0x01, 0x1e, 0x10, 0x77, 0x35, 0x00, 0xa8, 0xd4, 0xc7, 0x71, +0x07, 0xd8, 0xcd, 0xa3, 0x7d, 0x69, 0x20, 0xac, 0x07, 0x00, 0x35, 0xc7, +0x62, 0xee, 0x8c, 0x7d, 0x0c, 0xb8, 0x43, 0x0e, 0x00, 0x08, 0xfb, 0xe7, +0xec, 0x33, 0x37, 0x04, 0x80, 0x2d, 0x1d, 0xa6, 0x13, 0x34, 0x1b, 0x1d, +0xc0, 0xca, 0x00, 0x92, 0xed, 0x2e, 0x56, 0xbe, 0x91, 0x80, 0x0c, 0x88, +0xa6, 0x01, 0xdf, 0x7f, 0x90, 0x49, 0xed, 0x0c, 0xe0, 0x08, 0x73, 0x28, +0x74, 0xc7, 0xe1, 0xb1, 0x03, 0x5d, 0xc5, 0xab, 0x61, 0x42, 0xdf, 0x03, +0x43, 0xf3, 0x35, 0x04, 0xcf, 0xc6, 0x1d, 0x79, 0x07, 0x40, 0x22, 0xe4, +0x68, 0x0d, 0x01, 0x95, 0xad, 0x72, 0x69, 0x00, 0x39, 0x9d, 0x53, 0x8f, +0x13, 0x0d, 0xb0, 0x29, 0x79, 0x1a, 0x39, 0x20, 0x12, 0x28, 0x9b, 0x02, +0x8f, 0x74, 0x90, 0x4c, 0xe8, 0xd1, 0x57, 0xf4, 0x01, 0x44, 0x04, 0xe0, +0x0c, 0x82, 0x91, 0xc5, 0x4f, 0x8f, 0xc6, 0x00, 0x43, 0x85, 0x65, 0xc8, +0xe6, 0x34, 0x1d, 0x80, 0xc0, 0xca, 0xdb, 0x57, 0x6c, 0x00, 0x72, 0x42, +0x5f, 0xd0, 0x49, 0x57, 0x47, 0xd4, 0x97, 0x18, 0x18, 0x80, 0x68, 0x8e, +0x0a, 0xf1, 0x6b, 0x34, 0xf1, 0x60, 0x2c, 0x41, 0x29, 0xd3, 0x3d, 0x55, +0x95, 0xb1, 0x3c, 0xd4, 0x95, 0x42, 0xef, 0xe7, 0xca, 0x00, 0x2e, 0xce, +0x25, 0xc2, 0xca, 0xf5, 0x00, 0x17, 0x3b, 0x8c, 0x42, 0x88, 0x03, 0xde, +0x97, 0xe1, 0x3a, 0x74, 0xb0, 0x33, 0xe0, 0x8f, 0x47, 0xeb, 0x2a, 0x5f, +0x36, 0x3e, 0x5a, 0xff, 0xc5, 0x80, 0xb9, 0x13, 0xa9, 0x1f, 0xf8, 0x86, +0xc9, 0x51, 0xf8, 0x4c, 0xaa, 0xe1, 0x65, 0x80, 0xb0, 0x8b, 0x91, 0xec, +0xcc, 0xbf, 0x70, 0x19, 0x98, 0x03, 0x10, 0xf0, 0x38, 0x40, 0xc4, 0x65, +0xbe, 0x41, 0xb2, 0x58, 0x3f, 0xe0, 0xcc, 0x0e, 0x08, 0x2b, 0x73, 0xf4, +0xdd, 0x86, 0x06, 0xa0, 0xc6, 0x8f, 0x1a, 0x32, 0x66, 0x50, 0x8e, 0xe1, +0x59, 0x67, 0x00, 0xed, 0x66, 0x1d, 0xdd, 0xfa, 0x7b, 0xe2, 0x56, 0x89, +0xd9, 0xa0, 0x4f, 0x41, 0x94, 0x28, 0xb8, 0xc6, 0xc7, 0x64, 0xde, 0x9b, +0x64, 0x44, 0x33, 0x39, 0xb5, 0x6c, 0xb9, 0x42, 0xe7, 0x7e, 0x16, 0xd2, +0x01, 0x12, 0x03, 0xb3, 0x48, 0x47, 0x6b, 0x75, 0x26, 0x19, 0x8c, 0xac, +0x6f, 0xb1, 0x6f, 0xdc, 0x04, 0x27, 0x3a, 0x00, 0xd6, 0xae, 0xfa, 0xe1, +0xf7, 0x30, 0xa4, 0xdb, 0xd5, 0x86, 0x5a, 0x07, 0x11, 0xde, 0xea, 0xf4, +0xb0, 0x83, 0x16, 0xbb, 0xc6, 0x00, 0x6e, 0xf2, 0x6b, 0x40, 0x81, 0x01, +0x67, 0x0e, 0xa9, 0x82, 0x23, 0x04, 0x34, 0xed, 0x02, 0xf5, 0xe4, 0x0e, +0x58, 0xe8, 0x8a, 0x58, 0x57, 0xb0, 0x56, 0x65, 0x3d, 0x40, 0x64, 0x03, +0x6e, 0x7b, 0x07, 0x20, 0x99, 0x90, 0x36, 0x95, 0x9f, 0xdf, 0x3d, 0xe8, +0x00, 0xa0, 0x57, 0x8f, 0x6d, 0xa4, 0xb3, 0x1d, 0x7a, 0x06, 0xa8, 0x26, +0x41, 0xb0, 0x8c, 0x9c, 0x10, 0x85, 0x6c, 0xb4, 0x31, 0xa6, 0x5b, 0x7a, +0x10, 0x51, 0x15, 0x3c, 0xa2, 0x42, 0xd3, 0x23, 0x02, 0xc0, 0x17, 0x7e, +0x03, 0x28, 0xba, 0xce, 0x9b, 0xae, 0xdd, 0x1a, 0x19, 0xd0, 0x15, 0xac, +0xeb, 0x20, 0x3c, 0x3a, 0x00, 0xc6, 0xbb, 0x8a, 0xd5, 0x64, 0xc2, 0x21, +0x1d, 0x6c, 0x15, 0x5a, 0xd3, 0x44, 0x98, 0x14, 0x95, 0xb3, 0xb7, 0xdd, +0xa6, 0xea, 0x06, 0x54, 0x78, 0xc3, 0xe8, 0x79, 0x9b, 0x86, 0x29, 0x76, +0x8b, 0x6b, 0xaa, 0x0d, 0xa8, 0x2f, 0x22, 0x2a, 0xeb, 0x68, 0x81, 0x6c, +0x56, 0xfd, 0x79, 0xac, 0x79, 0x4b, 0xa0, 0x01, 0x3f, 0x17, 0x43, 0x82, +0xb4, 0xd5, 0x00, 0x14, 0xb7, 0xf5, 0x00, 0xf4, 0x15, 0xa8, 0xd7, 0x4b, +0xb1, 0xbc, 0xa8, 0x36, 0x98, 0xf0, 0x8c, 0xe7, 0xf4, 0x7b, 0x35, 0xd8, +0xad, 0x0d, 0x5f, 0x9d, 0x96, 0xab, 0xed, 0x48, 0xe2, 0xdc, 0x1c, 0xbe, +0x12, 0xfa, 0x41, 0x6f, 0xf5, 0x1e, 0xb6, 0x9f, 0xee, 0xac, 0x21, 0xf4, +0xf6, 0x00, 0x38, 0xb1, 0x1f, 0xfd, 0xd0, 0x0e, 0xc7, 0xdd, 0xa0, 0x39, +0x07, 0x8c, 0x35, 0x1f, 0x7e, 0xcc, 0xbf, 0xf6, 0xe0, 0x06, 0x66, 0x7d, +0x10, 0x3f, 0xc5, 0x3e, 0xde, 0x42, 0xf9, 0x3d, 0x00, 0x54, 0x81, 0x67, +0x8a, 0xe6, 0x63, 0x0d, 0x01, 0xd0, 0x31, 0xe0, 0x6e, 0xd0, 0xe1, 0x59, +0xf6, 0x1b, 0xf7, 0x0d, 0x52, 0x06, 0x80, 0x61, 0x4f, 0xe8, 0x77, 0xdd, +0x6f, 0x48, 0x20, 0x1d, 0xbb, 0x2a, 0x16, 0x8b, 0x54, 0x87, 0x92, 0x83, +0xe6, 0x8f, 0x55, 0x59, 0x06, 0x00, 0xe9, 0xc5, 0xce, 0x21, 0x63, 0x87, +0xaf, 0x86, 0xcc, 0xba, 0xd6, 0xe7, 0x00, 0xf6, 0x91, 0x92, 0x92, 0xea, +0xe8, 0x42, 0x06, 0x69, 0x13, 0xf5, 0x00, 0xd0, 0xb0, 0xa7, 0xcb, 0x4c, +0xb0, 0xd2, 0x2d, 0x28, 0x63, 0xf0, 0x6a, 0xc7, 0x80, 0x6a, 0x19, 0xb2, +0x66, 0x51, 0xf3, 0xb1, 0x21, 0xa0, 0x48, 0xad, 0x1e, 0x80, 0x62, 0xaf, +0x00, 0xf4, 0xa5, 0x4e, 0x83, 0x75, 0x1b, 0xfe, 0x00, 0xc4, 0xcf, 0x55, +0xb2, 0x50, 0xa6, 0xeb, 0x38, 0xed, 0x8f, 0xd3, 0x1d, 0x00, 0xf6, 0xe3, +0x90, 0x1c, 0x60, 0x9e, 0x8e, 0xeb, 0x0b, 0xba, 0x44, 0x06, 0x68, 0xbb, +0xd3, 0x10, 0x63, 0x35, 0xe1, 0x86, 0x5c, 0x5c, 0x2b, 0x85, 0xa6, 0xe7, +0x38, 0x2c, 0x18, 0x83, 0x1f, 0x8f, 0x9b, 0x8e, 0x4d, 0x26, 0xcd, 0x34, +0x0c, 0x66, 0x1d, 0x70, 0xb7, 0x01, 0xe6, 0x02, 0xa8, 0x51, 0x63, 0xcf, +0xbb, 0x03, 0xca, 0x85, 0xc6, 0x9c, 0xf6, 0xf1, 0x51, 0xe0, 0x60, 0x07, +0x40, 0x86, 0xf0, 0x1e, 0x6e, 0xef, 0x61, 0x10, 0xd9, 0x36, 0xcc, 0xfc, +0x58, 0xe2, 0x37, 0x0d, 0x58, 0xb7, 0xbe, 0xca, 0xc9, 0xd8, 0xcd, 0xaa, +0xd5, 0x5b, 0x77, 0x83, 0xcb, 0x0e, 0x30, 0xce, 0xc8, 0xb8, 0xcd, 0xbf, +0x1e, 0x63, 0x04, 0xad, 0xb7, 0xcd, 0x43, 0x62, 0x4c, 0xe0, 0x1a, 0xd4, +0x21, 0xe2, 0xdd, 0x33, 0xdf, 0xb1, 0xdd, 0xdc, 0x01, 0x22, 0x18, 0xce, +0xa1, 0xd8, 0xcb, 0x67, 0xd5, 0x38, 0x4a, 0xbc, 0xd5, 0x81, 0x3d, 0x03, +0x98, 0x35, 0x60, 0x41, 0x85, 0x0c, 0x1d, 0xe7, 0x76, 0xf8, 0x11, 0x52, +0x76, 0xf6, 0x06, 0x16, 0x02, 0x45, 0xc8, 0xd8, 0x2f, 0x5e, 0x57, 0xbc, +0x3b, 0x89, 0x97, 0x09, 0x3e, 0x03, 0x34, 0x1a, 0x9d, 0x37, 0x87, 0x48, +0x0a, 0xe0, 0xa7, 0x4f, 0x8c, 0x3a, 0xa2, 0xaf, 0xfd, 0x7b, 0x80, 0xcf, +0xe5, 0x18, 0x61, 0x68, 0xba, 0x61, 0x8b, 0x09, 0xaa, 0xa3, 0x0c, 0x47, +0x3c, 0x43, 0x03, 0xac, 0xa3, 0x2e, 0x5e, 0x72, 0x0c, 0x80, 0x19, 0x61, +0xe6, 0x6e, 0x0e, 0xd9, 0xe8, 0xe8, 0xaf, 0x11, 0x9b, 0x4a, 0x73, 0x7a, +0x61, 0x66, 0xf0, 0x54, 0x1d, 0x18, 0xc8, 0x23, 0x36, 0xbf, 0xb5, 0xf4, +0x86, 0x54, 0xed, 0xb5, 0x91, 0xee, 0xb8, 0xbc, 0xde, 0xc3, 0x87, 0x9b, +0x2f, 0x81, 0xf2, 0xee, 0xa3, 0xec, 0x02 \ No newline at end of file diff --git a/dependencies/zstd-1.5.0/build/single_file_libs/examples/testcard.png b/dependencies/zstd-1.5.0/build/single_file_libs/examples/testcard.png new file mode 100755 index 0000000000000000000000000000000000000000..43088bb169697b7ef55841da016b1f1beda3ef68 GIT binary patch literal 12675 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 literal 0 HcmV?d00001 diff --git a/dependencies/zstd-1.5.0/build/single_file_libs/zstd-in.c b/dependencies/zstd-1.5.0/build/single_file_libs/zstd-in.c new file mode 100644 index 0000000..1b27953 --- /dev/null +++ b/dependencies/zstd-1.5.0/build/single_file_libs/zstd-in.c @@ -0,0 +1,84 @@ +/** + * \file zstd.c + * Single-file Zstandard library. + * + * Generate using: + * \code + * combine.sh -r ../../lib -o zstd.c zstd-in.c + * \endcode + */ +/* + * Copyright (c) 2016-2021, Yann Collet, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ +/* + * Settings to bake for the single library file. + * + * Note: It's important that none of these affects 'zstd.h' (only the + * implementation files we're amalgamating). + * + * Note: MEM_MODULE stops xxhash redefining BYTE, U16, etc., which are also + * defined in mem.h (breaking C99 compatibility). + * + * Note: the undefs for xxHash allow Zstd's implementation to coinside with with + * standalone xxHash usage (with global defines). + * + * Note: multithreading is enabled for all platforms apart from Emscripten. + */ +#define DEBUGLEVEL 0 +#define MEM_MODULE +#undef XXH_NAMESPACE +#define XXH_NAMESPACE ZSTD_ +#undef XXH_PRIVATE_API +#define XXH_PRIVATE_API +#undef XXH_INLINE_ALL +#define XXH_INLINE_ALL +#define ZSTD_LEGACY_SUPPORT 0 +#ifndef __EMSCRIPTEN__ +#define ZSTD_MULTITHREAD +#endif +#define ZSTD_TRACE 0 + +/* Include zstd_deps.h first with all the options we need enabled. */ +#define ZSTD_DEPS_NEED_MALLOC +#define ZSTD_DEPS_NEED_MATH64 +#include "common/zstd_deps.h" + +#include "common/debug.c" +#include "common/entropy_common.c" +#include "common/error_private.c" +#include "common/fse_decompress.c" +#include "common/threading.c" +#include "common/pool.c" +#include "common/zstd_common.c" + +#include "compress/fse_compress.c" +#include "compress/hist.c" +#include "compress/huf_compress.c" +#include "compress/zstd_compress_literals.c" +#include "compress/zstd_compress_sequences.c" +#include "compress/zstd_compress_superblock.c" +#include "compress/zstd_compress.c" +#include "compress/zstd_double_fast.c" +#include "compress/zstd_fast.c" +#include "compress/zstd_lazy.c" +#include "compress/zstd_ldm.c" +#include "compress/zstd_opt.c" +#ifdef ZSTD_MULTITHREAD +#include "compress/zstdmt_compress.c" +#endif + +#include "decompress/huf_decompress.c" +#include "decompress/zstd_ddict.c" +#include "decompress/zstd_decompress.c" +#include "decompress/zstd_decompress_block.c" + +#include "dictBuilder/cover.c" +#include "dictBuilder/divsufsort.c" +#include "dictBuilder/fastcover.c" +#include "dictBuilder/zdict.c" diff --git a/dependencies/zstd-1.5.0/build/single_file_libs/zstddeclib-in.c b/dependencies/zstd-1.5.0/build/single_file_libs/zstddeclib-in.c new file mode 100644 index 0000000..019d9c2 --- /dev/null +++ b/dependencies/zstd-1.5.0/build/single_file_libs/zstddeclib-in.c @@ -0,0 +1,56 @@ +/** + * \file zstddeclib.c + * Single-file Zstandard decompressor. + * + * Generate using: + * \code + * combine.sh -r ../../lib -o zstddeclib.c zstddeclib-in.c + * \endcode + */ +/* + * Copyright (c) 2016-2021, Yann Collet, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ +/* + * Settings to bake for the standalone decompressor. + * + * Note: It's important that none of these affects 'zstd.h' (only the + * implementation files we're amalgamating). + * + * Note: MEM_MODULE stops xxhash redefining BYTE, U16, etc., which are also + * defined in mem.h (breaking C99 compatibility). + * + * Note: the undefs for xxHash allow Zstd's implementation to coinside with with + * standalone xxHash usage (with global defines). + */ +#define DEBUGLEVEL 0 +#define MEM_MODULE +#undef XXH_NAMESPACE +#define XXH_NAMESPACE ZSTD_ +#undef XXH_PRIVATE_API +#define XXH_PRIVATE_API +#undef XXH_INLINE_ALL +#define XXH_INLINE_ALL +#define ZSTD_LEGACY_SUPPORT 0 +#define ZSTD_STRIP_ERROR_STRINGS +#define ZSTD_TRACE 0 + +/* Include zstd_deps.h first with all the options we need enabled. */ +#define ZSTD_DEPS_NEED_MALLOC +#include "common/zstd_deps.h" + +#include "common/debug.c" +#include "common/entropy_common.c" +#include "common/error_private.c" +#include "common/fse_decompress.c" +#include "common/zstd_common.c" + +#include "decompress/huf_decompress.c" +#include "decompress/zstd_ddict.c" +#include "decompress/zstd_decompress.c" +#include "decompress/zstd_decompress_block.c" diff --git a/dependencies/zstd-1.5.0/contrib/VS2005/README.md b/dependencies/zstd-1.5.0/contrib/VS2005/README.md new file mode 100644 index 0000000..ec1ef68 --- /dev/null +++ b/dependencies/zstd-1.5.0/contrib/VS2005/README.md @@ -0,0 +1,3 @@ +## Project Support Notice + +The VS2005 Project directory has been moved to the contrib directory in order to indicate that it will no longer be supported. diff --git a/dependencies/zstd-1.5.0/contrib/VS2005/fullbench/fullbench.vcproj b/dependencies/zstd-1.5.0/contrib/VS2005/fullbench/fullbench.vcproj new file mode 100644 index 0000000..98f8593 --- /dev/null +++ b/dependencies/zstd-1.5.0/contrib/VS2005/fullbench/fullbench.vcproj @@ -0,0 +1,440 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/dependencies/zstd-1.5.0/contrib/VS2005/fuzzer/fuzzer.vcproj b/dependencies/zstd-1.5.0/contrib/VS2005/fuzzer/fuzzer.vcproj new file mode 100644 index 0000000..d182535 --- /dev/null +++ b/dependencies/zstd-1.5.0/contrib/VS2005/fuzzer/fuzzer.vcproj @@ -0,0 +1,488 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/dependencies/zstd-1.5.0/contrib/VS2005/zstd.sln b/dependencies/zstd-1.5.0/contrib/VS2005/zstd.sln new file mode 100644 index 0000000..0c31ae1 --- /dev/null +++ b/dependencies/zstd-1.5.0/contrib/VS2005/zstd.sln @@ -0,0 +1,55 @@ +Microsoft Visual Studio Solution File, Format Version 9.00 +# Visual C++ Express 2005 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zstd", "zstd\zstd.vcproj", "{1A2AB08E-5CE7-4C5B-BE55-458157C14051}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "fuzzer", "fuzzer\fuzzer.vcproj", "{A62E89D2-9DDE-42BA-8F9B-9DA74889A6B0}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "fullbench", "fullbench\fullbench.vcproj", "{CC8F1D1B-BA2F-43E3-A71F-FA415D81AAD3}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zstdlib", "zstdlib\zstdlib.vcproj", "{99DE2A79-7298-4004-A0ED-030D7A3796CA}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Debug|x64 = Debug|x64 + Release|Win32 = Release|Win32 + Release|x64 = Release|x64 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {1A2AB08E-5CE7-4C5B-BE55-458157C14051}.Debug|Win32.ActiveCfg = Debug|Win32 + {1A2AB08E-5CE7-4C5B-BE55-458157C14051}.Debug|Win32.Build.0 = Debug|Win32 + {1A2AB08E-5CE7-4C5B-BE55-458157C14051}.Debug|x64.ActiveCfg = Debug|x64 + {1A2AB08E-5CE7-4C5B-BE55-458157C14051}.Debug|x64.Build.0 = Debug|x64 + {1A2AB08E-5CE7-4C5B-BE55-458157C14051}.Release|Win32.ActiveCfg = Release|Win32 + {1A2AB08E-5CE7-4C5B-BE55-458157C14051}.Release|Win32.Build.0 = Release|Win32 + {1A2AB08E-5CE7-4C5B-BE55-458157C14051}.Release|x64.ActiveCfg = Release|x64 + {1A2AB08E-5CE7-4C5B-BE55-458157C14051}.Release|x64.Build.0 = Release|x64 + {A62E89D2-9DDE-42BA-8F9B-9DA74889A6B0}.Debug|Win32.ActiveCfg = Debug|Win32 + {A62E89D2-9DDE-42BA-8F9B-9DA74889A6B0}.Debug|Win32.Build.0 = Debug|Win32 + {A62E89D2-9DDE-42BA-8F9B-9DA74889A6B0}.Debug|x64.ActiveCfg = Debug|x64 + {A62E89D2-9DDE-42BA-8F9B-9DA74889A6B0}.Debug|x64.Build.0 = Debug|x64 + {A62E89D2-9DDE-42BA-8F9B-9DA74889A6B0}.Release|Win32.ActiveCfg = Release|Win32 + {A62E89D2-9DDE-42BA-8F9B-9DA74889A6B0}.Release|Win32.Build.0 = Release|Win32 + {A62E89D2-9DDE-42BA-8F9B-9DA74889A6B0}.Release|x64.ActiveCfg = Release|x64 + {A62E89D2-9DDE-42BA-8F9B-9DA74889A6B0}.Release|x64.Build.0 = Release|x64 + {CC8F1D1B-BA2F-43E3-A71F-FA415D81AAD3}.Debug|Win32.ActiveCfg = Debug|Win32 + {CC8F1D1B-BA2F-43E3-A71F-FA415D81AAD3}.Debug|Win32.Build.0 = Debug|Win32 + {CC8F1D1B-BA2F-43E3-A71F-FA415D81AAD3}.Debug|x64.ActiveCfg = Debug|x64 + {CC8F1D1B-BA2F-43E3-A71F-FA415D81AAD3}.Debug|x64.Build.0 = Debug|x64 + {CC8F1D1B-BA2F-43E3-A71F-FA415D81AAD3}.Release|Win32.ActiveCfg = Release|Win32 + {CC8F1D1B-BA2F-43E3-A71F-FA415D81AAD3}.Release|Win32.Build.0 = Release|Win32 + {CC8F1D1B-BA2F-43E3-A71F-FA415D81AAD3}.Release|x64.ActiveCfg = Release|x64 + {CC8F1D1B-BA2F-43E3-A71F-FA415D81AAD3}.Release|x64.Build.0 = Release|x64 + {99DE2A79-7298-4004-A0ED-030D7A3796CA}.Debug|Win32.ActiveCfg = Debug|Win32 + {99DE2A79-7298-4004-A0ED-030D7A3796CA}.Debug|Win32.Build.0 = Debug|Win32 + {99DE2A79-7298-4004-A0ED-030D7A3796CA}.Debug|x64.ActiveCfg = Debug|x64 + {99DE2A79-7298-4004-A0ED-030D7A3796CA}.Debug|x64.Build.0 = Debug|x64 + {99DE2A79-7298-4004-A0ED-030D7A3796CA}.Release|Win32.ActiveCfg = Release|Win32 + {99DE2A79-7298-4004-A0ED-030D7A3796CA}.Release|Win32.Build.0 = Release|Win32 + {99DE2A79-7298-4004-A0ED-030D7A3796CA}.Release|x64.ActiveCfg = Release|x64 + {99DE2A79-7298-4004-A0ED-030D7A3796CA}.Release|x64.Build.0 = Release|x64 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/dependencies/zstd-1.5.0/contrib/VS2005/zstd/zstd.vcproj b/dependencies/zstd-1.5.0/contrib/VS2005/zstd/zstd.vcproj new file mode 100644 index 0000000..78645d1 --- /dev/null +++ b/dependencies/zstd-1.5.0/contrib/VS2005/zstd/zstd.vcproj @@ -0,0 +1,548 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/dependencies/zstd-1.5.0/contrib/VS2005/zstdlib/zstdlib.vcproj b/dependencies/zstd-1.5.0/contrib/VS2005/zstdlib/zstdlib.vcproj new file mode 100644 index 0000000..67ddd2d --- /dev/null +++ b/dependencies/zstd-1.5.0/contrib/VS2005/zstdlib/zstdlib.vcproj @@ -0,0 +1,546 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/dependencies/zstd-1.5.0/contrib/cleanTabs b/dependencies/zstd-1.5.0/contrib/cleanTabs new file mode 100755 index 0000000..215913a --- /dev/null +++ b/dependencies/zstd-1.5.0/contrib/cleanTabs @@ -0,0 +1,2 @@ +#!/bin/sh +sed -i '' $'s/\t/ /g' ../lib/**/*.{h,c} ../programs/*.{h,c} ../tests/*.c ./**/*.{h,cpp} ../examples/*.c ../zlibWrapper/*.{h,c} diff --git a/dependencies/zstd-1.5.0/contrib/diagnose_corruption/.gitignore b/dependencies/zstd-1.5.0/contrib/diagnose_corruption/.gitignore new file mode 100644 index 0000000..a8e92b6 --- /dev/null +++ b/dependencies/zstd-1.5.0/contrib/diagnose_corruption/.gitignore @@ -0,0 +1 @@ +check_flipped_bits diff --git a/dependencies/zstd-1.5.0/contrib/diagnose_corruption/Makefile b/dependencies/zstd-1.5.0/contrib/diagnose_corruption/Makefile new file mode 100644 index 0000000..a21a002 --- /dev/null +++ b/dependencies/zstd-1.5.0/contrib/diagnose_corruption/Makefile @@ -0,0 +1,35 @@ +# ################################################################ +# Copyright (c) 2019-present, Facebook, Inc. +# All rights reserved. +# +# This source code is licensed under both the BSD-style license (found in the +# LICENSE file in the root directory of this source tree) and the GPLv2 (found +# in the COPYING file in the root directory of this source tree). +# ################################################################ + +.PHONY: all +all: check_flipped_bits + +ZSTDLIBDIR ?= ../../lib + +CFLAGS ?= -O3 +CFLAGS += -I$(ZSTDLIBDIR) -I$(ZSTDLIBDIR)/common -I$(ZSTDLIBDIR)/compress \ + -I$(ZSTDLIBDIR)/decompress +CFLAGS += -Wall -Wextra -Wcast-qual -Wcast-align -Wshadow \ + -Wstrict-aliasing=1 -Wswitch-enum -Wdeclaration-after-statement \ + -Wstrict-prototypes -Wundef \ + -Wvla -Wformat=2 -Winit-self -Wfloat-equal -Wwrite-strings \ + -Wredundant-decls -Wmissing-prototypes +CFLAGS += $(DEBUGFLAGS) $(MOREFLAGS) +FLAGS = $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) + +.PHONY: $(ZSTDLIBDIR)/libzstd.a +$(ZSTDLIBDIR)/libzstd.a: + $(MAKE) -C $(ZSTDLIBDIR) libzstd.a + +check_flipped_bits: check_flipped_bits.c $(ZSTDLIBDIR)/libzstd.a + $(CC) $(FLAGS) $< -o $@$(EXT) $(ZSTDLIBDIR)/libzstd.a + +.PHONY: clean +clean: + rm -f check_flipped_bits diff --git a/dependencies/zstd-1.5.0/contrib/diagnose_corruption/check_flipped_bits.c b/dependencies/zstd-1.5.0/contrib/diagnose_corruption/check_flipped_bits.c new file mode 100644 index 0000000..cc40ab8 --- /dev/null +++ b/dependencies/zstd-1.5.0/contrib/diagnose_corruption/check_flipped_bits.c @@ -0,0 +1,400 @@ +/* + * Copyright (c) 2019-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + +#define ZSTD_STATIC_LINKING_ONLY +#include "zstd.h" +#include "zstd_errors.h" + +#include +#include +#include +#include +#include +#include + +typedef struct { + char *input; + size_t input_size; + + char *perturbed; /* same size as input */ + + char *output; + size_t output_size; + + const char *dict_file_name; + const char *dict_file_dir_name; + int32_t dict_id; + char *dict; + size_t dict_size; + ZSTD_DDict* ddict; + + ZSTD_DCtx* dctx; + + int success_count; + int error_counts[ZSTD_error_maxCode]; +} stuff_t; + +static void free_stuff(stuff_t* stuff) { + free(stuff->input); + free(stuff->output); + ZSTD_freeDDict(stuff->ddict); + free(stuff->dict); + ZSTD_freeDCtx(stuff->dctx); +} + +static void usage(void) { + fprintf(stderr, "check_flipped_bits input_filename [-d dict] [-D dict_dir]\n"); + fprintf(stderr, "\n"); + fprintf(stderr, "Arguments:\n"); + fprintf(stderr, " -d file: path to a dictionary file to use.\n"); + fprintf(stderr, " -D dir : path to a directory, with files containing dictionaries, of the\n" + " form DICTID.zstd-dict, e.g., 12345.zstd-dict.\n"); + exit(1); +} + +static void print_summary(stuff_t* stuff) { + int error_code; + fprintf(stderr, "%9d successful decompressions\n", stuff->success_count); + for (error_code = 0; error_code < ZSTD_error_maxCode; error_code++) { + int count = stuff->error_counts[error_code]; + if (count) { + fprintf( + stderr, "%9d failed decompressions with message: %s\n", + count, ZSTD_getErrorString(error_code)); + } + } +} + +static char* readFile(const char* filename, size_t* size) { + struct stat statbuf; + int ret; + FILE* f; + char *buf; + size_t bytes_read; + + ret = stat(filename, &statbuf); + if (ret != 0) { + fprintf(stderr, "stat failed: %m\n"); + return NULL; + } + if ((statbuf.st_mode & S_IFREG) != S_IFREG) { + fprintf(stderr, "Input must be regular file\n"); + return NULL; + } + + *size = statbuf.st_size; + + f = fopen(filename, "r"); + if (f == NULL) { + fprintf(stderr, "fopen failed: %m\n"); + return NULL; + } + + buf = malloc(*size); + if (buf == NULL) { + fprintf(stderr, "malloc failed\n"); + fclose(f); + return NULL; + } + + bytes_read = fread(buf, 1, *size, f); + if (bytes_read != *size) { + fprintf(stderr, "failed to read whole file\n"); + fclose(f); + free(buf); + return NULL; + } + + ret = fclose(f); + if (ret != 0) { + fprintf(stderr, "fclose failed: %m\n"); + free(buf); + return NULL; + } + + return buf; +} + +static ZSTD_DDict* readDict(const char* filename, char **buf, size_t* size, int32_t* dict_id) { + ZSTD_DDict* ddict; + *buf = readFile(filename, size); + if (*buf == NULL) { + fprintf(stderr, "Opening dictionary file '%s' failed\n", filename); + return NULL; + } + + ddict = ZSTD_createDDict_advanced(*buf, *size, ZSTD_dlm_byRef, ZSTD_dct_auto, ZSTD_defaultCMem); + if (ddict == NULL) { + fprintf(stderr, "Failed to create ddict.\n"); + return NULL; + } + if (dict_id != NULL) { + *dict_id = ZSTD_getDictID_fromDDict(ddict); + } + return ddict; +} + +static ZSTD_DDict* readDictByID(stuff_t *stuff, int32_t dict_id, char **buf, size_t* size) { + if (stuff->dict_file_dir_name == NULL) { + return NULL; + } else { + size_t dir_name_len = strlen(stuff->dict_file_dir_name); + int dir_needs_separator = 0; + size_t dict_file_name_alloc_size = dir_name_len + 1 /* '/' */ + 10 /* max int32_t len */ + strlen(".zstd-dict") + 1 /* '\0' */; + char *dict_file_name = malloc(dict_file_name_alloc_size); + ZSTD_DDict* ddict; + int32_t read_dict_id; + if (dict_file_name == NULL) { + fprintf(stderr, "malloc failed.\n"); + return 0; + } + + if (dir_name_len > 0 && stuff->dict_file_dir_name[dir_name_len - 1] != '/') { + dir_needs_separator = 1; + } + + snprintf( + dict_file_name, + dict_file_name_alloc_size, + "%s%s%u.zstd-dict", + stuff->dict_file_dir_name, + dir_needs_separator ? "/" : "", + dict_id); + + /* fprintf(stderr, "Loading dict %u from '%s'.\n", dict_id, dict_file_name); */ + + ddict = readDict(dict_file_name, buf, size, &read_dict_id); + if (ddict == NULL) { + fprintf(stderr, "Failed to create ddict from '%s'.\n", dict_file_name); + free(dict_file_name); + return 0; + } + if (read_dict_id != dict_id) { + fprintf(stderr, "Read dictID (%u) does not match expected (%u).\n", read_dict_id, dict_id); + free(dict_file_name); + ZSTD_freeDDict(ddict); + return 0; + } + + free(dict_file_name); + return ddict; + } +} + +static int init_stuff(stuff_t* stuff, int argc, char *argv[]) { + const char* input_filename; + + if (argc < 2) { + usage(); + } + + input_filename = argv[1]; + stuff->input_size = 0; + stuff->input = readFile(input_filename, &stuff->input_size); + if (stuff->input == NULL) { + fprintf(stderr, "Failed to read input file.\n"); + return 0; + } + + stuff->perturbed = malloc(stuff->input_size); + if (stuff->perturbed == NULL) { + fprintf(stderr, "malloc failed.\n"); + return 0; + } + memcpy(stuff->perturbed, stuff->input, stuff->input_size); + + stuff->output_size = ZSTD_DStreamOutSize(); + stuff->output = malloc(stuff->output_size); + if (stuff->output == NULL) { + fprintf(stderr, "malloc failed.\n"); + return 0; + } + + stuff->dict_file_name = NULL; + stuff->dict_file_dir_name = NULL; + stuff->dict_id = 0; + stuff->dict = NULL; + stuff->dict_size = 0; + stuff->ddict = NULL; + + if (argc > 2) { + if (!strcmp(argv[2], "-d")) { + if (argc > 3) { + stuff->dict_file_name = argv[3]; + } else { + usage(); + } + } else + if (!strcmp(argv[2], "-D")) { + if (argc > 3) { + stuff->dict_file_dir_name = argv[3]; + } else { + usage(); + } + } else { + usage(); + } + } + + if (stuff->dict_file_dir_name) { + int32_t dict_id = ZSTD_getDictID_fromFrame(stuff->input, stuff->input_size); + if (dict_id != 0) { + stuff->ddict = readDictByID(stuff, dict_id, &stuff->dict, &stuff->dict_size); + if (stuff->ddict == NULL) { + fprintf(stderr, "Failed to create cached ddict.\n"); + return 0; + } + stuff->dict_id = dict_id; + } + } else + if (stuff->dict_file_name) { + stuff->ddict = readDict(stuff->dict_file_name, &stuff->dict, &stuff->dict_size, &stuff->dict_id); + if (stuff->ddict == NULL) { + fprintf(stderr, "Failed to create ddict from '%s'.\n", stuff->dict_file_name); + return 0; + } + } + + stuff->dctx = ZSTD_createDCtx(); + if (stuff->dctx == NULL) { + return 0; + } + + stuff->success_count = 0; + memset(stuff->error_counts, 0, sizeof(stuff->error_counts)); + + return 1; +} + +static int test_decompress(stuff_t* stuff) { + size_t ret; + ZSTD_inBuffer in = {stuff->perturbed, stuff->input_size, 0}; + ZSTD_outBuffer out = {stuff->output, stuff->output_size, 0}; + ZSTD_DCtx* dctx = stuff->dctx; + int32_t custom_dict_id = ZSTD_getDictID_fromFrame(in.src, in.size); + char *custom_dict = NULL; + size_t custom_dict_size = 0; + ZSTD_DDict* custom_ddict = NULL; + + if (custom_dict_id != 0 && custom_dict_id != stuff->dict_id) { + /* fprintf(stderr, "Instead of dict %u, this perturbed blob wants dict %u.\n", stuff->dict_id, custom_dict_id); */ + custom_ddict = readDictByID(stuff, custom_dict_id, &custom_dict, &custom_dict_size); + } + + ZSTD_DCtx_reset(dctx, ZSTD_reset_session_only); + + if (custom_ddict != NULL) { + ZSTD_DCtx_refDDict(dctx, custom_ddict); + } else { + ZSTD_DCtx_refDDict(dctx, stuff->ddict); + } + + while (in.pos != in.size) { + out.pos = 0; + ret = ZSTD_decompressStream(dctx, &out, &in); + + if (ZSTD_isError(ret)) { + unsigned int code = ZSTD_getErrorCode(ret); + if (code >= ZSTD_error_maxCode) { + fprintf(stderr, "Received unexpected error code!\n"); + exit(1); + } + stuff->error_counts[code]++; + /* + fprintf( + stderr, "Decompression failed: %s\n", ZSTD_getErrorName(ret)); + */ + if (custom_ddict != NULL) { + ZSTD_freeDDict(custom_ddict); + free(custom_dict); + } + return 0; + } + } + + stuff->success_count++; + + if (custom_ddict != NULL) { + ZSTD_freeDDict(custom_ddict); + free(custom_dict); + } + return 1; +} + +static int perturb_bits(stuff_t* stuff) { + size_t pos; + size_t bit; + for (pos = 0; pos < stuff->input_size; pos++) { + unsigned char old_val = stuff->input[pos]; + if (pos % 1000 == 0) { + fprintf(stderr, "Perturbing byte %zu / %zu\n", pos, stuff->input_size); + } + for (bit = 0; bit < 8; bit++) { + unsigned char new_val = old_val ^ (1 << bit); + stuff->perturbed[pos] = new_val; + if (test_decompress(stuff)) { + fprintf( + stderr, + "Flipping byte %zu bit %zu (0x%02x -> 0x%02x) " + "produced a successful decompression!\n", + pos, bit, old_val, new_val); + } + } + stuff->perturbed[pos] = old_val; + } + return 1; +} + +static int perturb_bytes(stuff_t* stuff) { + size_t pos; + size_t new_val; + for (pos = 0; pos < stuff->input_size; pos++) { + unsigned char old_val = stuff->input[pos]; + if (pos % 1000 == 0) { + fprintf(stderr, "Perturbing byte %zu / %zu\n", pos, stuff->input_size); + } + for (new_val = 0; new_val < 256; new_val++) { + stuff->perturbed[pos] = new_val; + if (test_decompress(stuff)) { + fprintf( + stderr, + "Changing byte %zu (0x%02x -> 0x%02x) " + "produced a successful decompression!\n", + pos, old_val, (unsigned char)new_val); + } + } + stuff->perturbed[pos] = old_val; + } + return 1; +} + +int main(int argc, char* argv[]) { + stuff_t stuff; + + if(!init_stuff(&stuff, argc, argv)) { + fprintf(stderr, "Failed to init.\n"); + return 1; + } + + if (test_decompress(&stuff)) { + fprintf(stderr, "Blob already decompresses successfully!\n"); + return 1; + } + + perturb_bits(&stuff); + + perturb_bytes(&stuff); + + print_summary(&stuff); + + free_stuff(&stuff); + + return 0; +} diff --git a/dependencies/zstd-1.5.0/contrib/docker/Dockerfile b/dependencies/zstd-1.5.0/contrib/docker/Dockerfile new file mode 100644 index 0000000..e06a32c --- /dev/null +++ b/dependencies/zstd-1.5.0/contrib/docker/Dockerfile @@ -0,0 +1,20 @@ +# Dockerfile +# First image to build the binary +FROM alpine as builder + +RUN apk --no-cache add make gcc libc-dev +COPY . /src +RUN mkdir /pkg && cd /src && make && make DESTDIR=/pkg install + +# Second minimal image to only keep the built binary +FROM alpine + +# Copy the built files +COPY --from=builder /pkg / + +# Copy the license as well +RUN mkdir -p /usr/local/share/licenses/zstd +COPY --from=builder /src/LICENSE /usr/local/share/licences/zstd/ + +# Just run `zstd` if no other command is given +CMD ["/usr/local/bin/zstd"] diff --git a/dependencies/zstd-1.5.0/contrib/docker/README.md b/dependencies/zstd-1.5.0/contrib/docker/README.md new file mode 100644 index 0000000..43f6d7a --- /dev/null +++ b/dependencies/zstd-1.5.0/contrib/docker/README.md @@ -0,0 +1,20 @@ + +## Requirement + +The `Dockerfile` script requires a version of `docker` >= 17.05 + +## Installing docker + +The official docker install docs use a ppa with a modern version available: +https://docs.docker.com/install/linux/docker-ce/ubuntu/ + +## How to run + +`docker build -t zstd .` + +## test + +``` +echo foo | docker run -i --rm zstd | docker run -i --rm zstd zstdcat +foo +``` diff --git a/dependencies/zstd-1.5.0/contrib/freestanding_lib/freestanding.py b/dependencies/zstd-1.5.0/contrib/freestanding_lib/freestanding.py new file mode 100755 index 0000000..1971687 --- /dev/null +++ b/dependencies/zstd-1.5.0/contrib/freestanding_lib/freestanding.py @@ -0,0 +1,749 @@ +#!/usr/bin/env python3 +# ################################################################ +# Copyright (c) 2021-2021, Facebook, Inc. +# All rights reserved. +# +# This source code is licensed under both the BSD-style license (found in the +# LICENSE file in the root directory of this source tree) and the GPLv2 (found +# in the COPYING file in the root directory of this source tree). +# You may select, at your option, one of the above-listed licenses. +# ########################################################################## + +import argparse +import contextlib +import os +import re +import shutil +import sys +from typing import Optional + + +INCLUDED_SUBDIRS = ["common", "compress", "decompress"] + +SKIPPED_FILES = [ + "common/mem.h", + "common/zstd_deps.h", + "common/pool.c", + "common/pool.h", + "common/threading.c", + "common/threading.h", + "common/zstd_trace.c", + "common/zstd_trace.h", + "compress/zstdmt_compress.h", + "compress/zstdmt_compress.c", +] + +XXHASH_FILES = [ + "common/xxhash.c", + "common/xxhash.h", +] + + +class FileLines(object): + def __init__(self, filename): + self.filename = filename + with open(self.filename, "r") as f: + self.lines = f.readlines() + + def write(self): + with open(self.filename, "w") as f: + f.write("".join(self.lines)) + + +class PartialPreprocessor(object): + """ + Looks for simple ifdefs and ifndefs and replaces them. + Handles && and ||. + Has fancy logic to handle translating elifs to ifs. + Only looks for macros in the first part of the expression with no + parens. + Does not handle multi-line macros (only looks in first line). + """ + def __init__(self, defs: [(str, Optional[str])], replaces: [(str, str)], undefs: [str]): + MACRO_GROUP = r"(?P[a-zA-Z_][a-zA-Z_0-9]*)" + ELIF_GROUP = r"(?Pel)?" + OP_GROUP = r"(?P&&|\|\|)?" + + self._defs = {macro:value for macro, value in defs} + self._replaces = {macro:value for macro, value in replaces} + self._defs.update(self._replaces) + self._undefs = set(undefs) + + self._define = re.compile(r"\s*#\s*define") + self._if = re.compile(r"\s*#\s*if") + self._elif = re.compile(r"\s*#\s*(?Pel)if") + self._else = re.compile(r"\s*#\s*(?Pelse)") + self._endif = re.compile(r"\s*#\s*endif") + + self._ifdef = re.compile(fr"\s*#\s*if(?Pn)?def {MACRO_GROUP}\s*") + self._if_defined = re.compile( + fr"\s*#\s*{ELIF_GROUP}if\s+(?P!)?\s*defined\s*\(\s*{MACRO_GROUP}\s*\)\s*{OP_GROUP}" + ) + self._if_defined_value = re.compile( + fr"\s*#\s*{ELIF_GROUP}if\s+defined\s*\(\s*{MACRO_GROUP}\s*\)\s*" + fr"(?P&&)\s*" + fr"(?P\()?\s*" + fr"(?P[a-zA-Z_][a-zA-Z_0-9]*)\s*" + fr"(?P[=>[0-9]*)\s*" + fr"(?P\))?\s*" + ) + self._if_true = re.compile( + fr"\s*#\s*{ELIF_GROUP}if\s+{MACRO_GROUP}\s*{OP_GROUP}" + ) + + self._c_comment = re.compile(r"/\*.*?\*/") + self._cpp_comment = re.compile(r"//") + + def _log(self, *args, **kwargs): + print(*args, **kwargs) + + def _strip_comments(self, line): + # First strip c-style comments (may include //) + while True: + m = self._c_comment.search(line) + if m is None: + break + line = line[:m.start()] + line[m.end():] + + # Then strip cpp-style comments + m = self._cpp_comment.search(line) + if m is not None: + line = line[:m.start()] + + return line + + def _fixup_indentation(self, macro, replace: [str]): + if len(replace) == 0: + return replace + if len(replace) == 1 and self._define.match(replace[0]) is None: + # If there is only one line, only replace defines + return replace + + + all_pound = True + for line in replace: + if not line.startswith('#'): + all_pound = False + if all_pound: + replace = [line[1:] for line in replace] + + min_spaces = len(replace[0]) + for line in replace: + spaces = 0 + for i, c in enumerate(line): + if c != ' ': + # Non-preprocessor line ==> skip the fixup + if not all_pound and c != '#': + return replace + spaces = i + break + min_spaces = min(min_spaces, spaces) + + replace = [line[min_spaces:] for line in replace] + + if all_pound: + replace = ["#" + line for line in replace] + + return replace + + def _handle_if_block(self, macro, idx, is_true, prepend): + """ + Remove the #if or #elif block starting on this line. + """ + REMOVE_ONE = 0 + KEEP_ONE = 1 + REMOVE_REST = 2 + + if is_true: + state = KEEP_ONE + else: + state = REMOVE_ONE + + line = self._inlines[idx] + is_if = self._if.match(line) is not None + assert is_if or self._elif.match(line) is not None + depth = 0 + + start_idx = idx + + idx += 1 + replace = prepend + finished = False + while idx < len(self._inlines): + line = self._inlines[idx] + # Nested if statement + if self._if.match(line): + depth += 1 + idx += 1 + continue + # We're inside a nested statement + if depth > 0: + if self._endif.match(line): + depth -= 1 + idx += 1 + continue + + # We're at the original depth + + # Looking only for an endif. + # We've found a true statement, but haven't + # completely elided the if block, so we just + # remove the remainder. + if state == REMOVE_REST: + if self._endif.match(line): + if is_if: + # Remove the endif because we took the first if + idx += 1 + finished = True + break + idx += 1 + continue + + if state == KEEP_ONE: + m = self._elif.match(line) + if self._endif.match(line): + replace += self._inlines[start_idx + 1:idx] + idx += 1 + finished = True + break + if self._elif.match(line) or self._else.match(line): + replace += self._inlines[start_idx + 1:idx] + state = REMOVE_REST + idx += 1 + continue + + if state == REMOVE_ONE: + m = self._elif.match(line) + if m is not None: + if is_if: + idx += 1 + b = m.start('elif') + e = m.end('elif') + assert e - b == 2 + replace.append(line[:b] + line[e:]) + finished = True + break + m = self._else.match(line) + if m is not None: + if is_if: + idx += 1 + while self._endif.match(self._inlines[idx]) is None: + replace.append(self._inlines[idx]) + idx += 1 + idx += 1 + finished = True + break + if self._endif.match(line): + if is_if: + # Remove the endif because no other elifs + idx += 1 + finished = True + break + idx += 1 + continue + if not finished: + raise RuntimeError("Unterminated if block!") + + replace = self._fixup_indentation(macro, replace) + + self._log(f"\tHardwiring {macro}") + if start_idx > 0: + self._log(f"\t\t {self._inlines[start_idx - 1][:-1]}") + for x in range(start_idx, idx): + self._log(f"\t\t- {self._inlines[x][:-1]}") + for line in replace: + self._log(f"\t\t+ {line[:-1]}") + if idx < len(self._inlines): + self._log(f"\t\t {self._inlines[idx][:-1]}") + + return idx, replace + + def _preprocess_once(self): + outlines = [] + idx = 0 + changed = False + while idx < len(self._inlines): + line = self._inlines[idx] + sline = self._strip_comments(line) + m = self._ifdef.fullmatch(sline) + if_true = False + if m is None: + m = self._if_defined_value.fullmatch(sline) + if m is None: + m = self._if_defined.match(sline) + if m is None: + m = self._if_true.match(sline) + if_true = (m is not None) + if m is None: + outlines.append(line) + idx += 1 + continue + + groups = m.groupdict() + macro = groups['macro'] + op = groups.get('op') + + if not (macro in self._defs or macro in self._undefs): + outlines.append(line) + idx += 1 + continue + + defined = macro in self._defs + + # Needed variables set: + # resolved: Is the statement fully resolved? + # is_true: If resolved, is the statement true? + ifdef = False + if if_true: + if not defined: + outlines.append(line) + idx += 1 + continue + + defined_value = self._defs[macro] + is_int = True + try: + defined_value = int(defined_value) + except TypeError: + is_int = False + except ValueError: + is_int = False + + resolved = is_int + is_true = (defined_value != 0) + + if resolved and op is not None: + if op == '&&': + resolved = not is_true + else: + assert op == '||' + resolved = is_true + + else: + ifdef = groups.get('not') is None + elseif = groups.get('elif') is not None + + macro2 = groups.get('macro2') + cmp = groups.get('cmp') + value = groups.get('value') + openp = groups.get('openp') + closep = groups.get('closep') + + is_true = (ifdef == defined) + resolved = True + if op is not None: + if op == '&&': + resolved = not is_true + else: + assert op == '||' + resolved = is_true + + if macro2 is not None and not resolved: + assert ifdef and defined and op == '&&' and cmp is not None + # If the statment is true, but we have a single value check, then + # check the value. + defined_value = self._defs[macro] + are_ints = True + try: + defined_value = int(defined_value) + value = int(value) + except TypeError: + are_ints = False + except ValueError: + are_ints = False + if ( + macro == macro2 and + ((openp is None) == (closep is None)) and + are_ints + ): + resolved = True + if cmp == '<': + is_true = defined_value < value + elif cmp == '<=': + is_true = defined_value <= value + elif cmp == '==': + is_true = defined_value == value + elif cmp == '!=': + is_true = defined_value != value + elif cmp == '>=': + is_true = defined_value >= value + elif cmp == '>': + is_true = defined_value > value + else: + resolved = False + + if op is not None and not resolved: + # Remove the first op in the line + spaces + if op == '&&': + opre = op + else: + assert op == '||' + opre = r'\|\|' + needle = re.compile(fr"(?P\s*#\s*(el)?if\s+).*?(?P{opre}\s*)") + match = needle.match(line) + assert match is not None + newline = line[:match.end('if')] + line[match.end('op'):] + + self._log(f"\tHardwiring partially resolved {macro}") + self._log(f"\t\t- {line[:-1]}") + self._log(f"\t\t+ {newline[:-1]}") + + outlines.append(newline) + idx += 1 + continue + + # Skip any statements we cannot fully compute + if not resolved: + outlines.append(line) + idx += 1 + continue + + prepend = [] + if macro in self._replaces: + assert not ifdef + assert op is None + value = self._replaces.pop(macro) + prepend = [f"#define {macro} {value}\n"] + + idx, replace = self._handle_if_block(macro, idx, is_true, prepend) + outlines += replace + changed = True + + return changed, outlines + + def preprocess(self, filename): + with open(filename, 'r') as f: + self._inlines = f.readlines() + changed = True + iters = 0 + while changed: + iters += 1 + changed, outlines = self._preprocess_once() + self._inlines = outlines + + with open(filename, 'w') as f: + f.write(''.join(self._inlines)) + + +class Freestanding(object): + def __init__( + self, zstd_deps: str, mem: str, source_lib: str, output_lib: str, + external_xxhash: bool, xxh64_state: Optional[str], + xxh64_prefix: Optional[str], rewritten_includes: [(str, str)], + defs: [(str, Optional[str])], replaces: [(str, str)], + undefs: [str], excludes: [str], seds: [str], + ): + self._zstd_deps = zstd_deps + self._mem = mem + self._src_lib = source_lib + self._dst_lib = output_lib + self._external_xxhash = external_xxhash + self._xxh64_state = xxh64_state + self._xxh64_prefix = xxh64_prefix + self._rewritten_includes = rewritten_includes + self._defs = defs + self._replaces = replaces + self._undefs = undefs + self._excludes = excludes + self._seds = seds + + def _dst_lib_file_paths(self): + """ + Yields all the file paths in the dst_lib. + """ + for root, dirname, filenames in os.walk(self._dst_lib): + for filename in filenames: + filepath = os.path.join(root, filename) + yield filepath + + def _log(self, *args, **kwargs): + print(*args, **kwargs) + + def _copy_file(self, lib_path): + if not (lib_path.endswith(".c") or lib_path.endswith(".h")): + return + if lib_path in SKIPPED_FILES: + self._log(f"\tSkipping file: {lib_path}") + return + if self._external_xxhash and lib_path in XXHASH_FILES: + self._log(f"\tSkipping xxhash file: {lib_path}") + return + + src_path = os.path.join(self._src_lib, lib_path) + dst_path = os.path.join(self._dst_lib, lib_path) + self._log(f"\tCopying: {src_path} -> {dst_path}") + shutil.copyfile(src_path, dst_path) + + def _copy_source_lib(self): + self._log("Copying source library into output library") + + assert os.path.exists(self._src_lib) + os.makedirs(self._dst_lib, exist_ok=True) + self._copy_file("zstd.h") + self._copy_file("zstd_errors.h") + for subdir in INCLUDED_SUBDIRS: + src_dir = os.path.join(self._src_lib, subdir) + dst_dir = os.path.join(self._dst_lib, subdir) + + assert os.path.exists(src_dir) + os.makedirs(dst_dir, exist_ok=True) + + for filename in os.listdir(src_dir): + lib_path = os.path.join(subdir, filename) + self._copy_file(lib_path) + + def _copy_zstd_deps(self): + dst_zstd_deps = os.path.join(self._dst_lib, "common", "zstd_deps.h") + self._log(f"Copying zstd_deps: {self._zstd_deps} -> {dst_zstd_deps}") + shutil.copyfile(self._zstd_deps, dst_zstd_deps) + + def _copy_mem(self): + dst_mem = os.path.join(self._dst_lib, "common", "mem.h") + self._log(f"Copying mem: {self._mem} -> {dst_mem}") + shutil.copyfile(self._mem, dst_mem) + + def _hardwire_preprocessor(self, name: str, value: Optional[str] = None, undef=False): + """ + If value=None then hardwire that it is defined, but not what the value is. + If undef=True then value must be None. + If value='' then the macro is defined to '' exactly. + """ + assert not (undef and value is not None) + for filepath in self._dst_lib_file_paths(): + file = FileLines(filepath) + + def _hardwire_defines(self): + self._log("Hardwiring macros") + partial_preprocessor = PartialPreprocessor(self._defs, self._replaces, self._undefs) + for filepath in self._dst_lib_file_paths(): + partial_preprocessor.preprocess(filepath) + + def _remove_excludes(self): + self._log("Removing excluded sections") + for exclude in self._excludes: + self._log(f"\tRemoving excluded sections for: {exclude}") + begin_re = re.compile(f"BEGIN {exclude}") + end_re = re.compile(f"END {exclude}") + for filepath in self._dst_lib_file_paths(): + file = FileLines(filepath) + outlines = [] + skipped = [] + emit = True + for line in file.lines: + if emit and begin_re.search(line) is not None: + assert end_re.search(line) is None + emit = False + if emit: + outlines.append(line) + else: + skipped.append(line) + if end_re.search(line) is not None: + assert begin_re.search(line) is None + self._log(f"\t\tRemoving excluded section: {exclude}") + for s in skipped: + self._log(f"\t\t\t- {s}") + emit = True + skipped = [] + if not emit: + raise RuntimeError("Excluded section unfinished!") + file.lines = outlines + file.write() + + def _rewrite_include(self, original, rewritten): + self._log(f"\tRewriting include: {original} -> {rewritten}") + regex = re.compile(f"\\s*#\\s*include\\s*(?P{original})") + for filepath in self._dst_lib_file_paths(): + file = FileLines(filepath) + for i, line in enumerate(file.lines): + match = regex.match(line) + if match is None: + continue + s = match.start('include') + e = match.end('include') + file.lines[i] = line[:s] + rewritten + line[e:] + file.write() + + def _rewrite_includes(self): + self._log("Rewriting includes") + for original, rewritten in self._rewritten_includes: + self._rewrite_include(original, rewritten) + + def _replace_xxh64_prefix(self): + if self._xxh64_prefix is None: + return + self._log(f"Replacing XXH64 prefix with {self._xxh64_prefix}") + replacements = [] + if self._xxh64_state is not None: + replacements.append( + (re.compile(r"([^\w]|^)(?PXXH64_state_t)([^\w]|$)"), self._xxh64_state) + ) + if self._xxh64_prefix is not None: + replacements.append( + (re.compile(r"([^\w]|^)(?PXXH64)[\(_]"), self._xxh64_prefix) + ) + for filepath in self._dst_lib_file_paths(): + file = FileLines(filepath) + for i, line in enumerate(file.lines): + modified = False + for regex, replacement in replacements: + match = regex.search(line) + while match is not None: + modified = True + b = match.start('orig') + e = match.end('orig') + line = line[:b] + replacement + line[e:] + match = regex.search(line) + if modified: + self._log(f"\t- {file.lines[i][:-1]}") + self._log(f"\t+ {line[:-1]}") + file.lines[i] = line + file.write() + + def _parse_sed(self, sed): + assert sed[0] == 's' + delim = sed[1] + match = re.fullmatch(f's{delim}(.+){delim}(.*){delim}(.*)', sed) + assert match is not None + regex = re.compile(match.group(1)) + format_str = match.group(2) + is_global = match.group(3) == 'g' + return regex, format_str, is_global + + def _process_sed(self, sed): + self._log(f"Processing sed: {sed}") + regex, format_str, is_global = self._parse_sed(sed) + + for filepath in self._dst_lib_file_paths(): + file = FileLines(filepath) + for i, line in enumerate(file.lines): + modified = False + while True: + match = regex.search(line) + if match is None: + break + replacement = format_str.format(match.groups(''), match.groupdict('')) + b = match.start() + e = match.end() + line = line[:b] + replacement + line[e:] + modified = True + if not is_global: + break + if modified: + self._log(f"\t- {file.lines[i][:-1]}") + self._log(f"\t+ {line[:-1]}") + file.lines[i] = line + file.write() + + def _process_seds(self): + self._log("Processing seds") + for sed in self._seds: + self._process_sed(sed) + + + + def go(self): + self._copy_source_lib() + self._copy_zstd_deps() + self._copy_mem() + self._hardwire_defines() + self._remove_excludes() + self._rewrite_includes() + self._replace_xxh64_prefix() + self._process_seds() + + +def parse_optional_pair(defines: [str]) -> [(str, Optional[str])]: + output = [] + for define in defines: + parsed = define.split('=') + if len(parsed) == 1: + output.append((parsed[0], None)) + elif len(parsed) == 2: + output.append((parsed[0], parsed[1])) + else: + raise RuntimeError(f"Bad define: {define}") + return output + + +def parse_pair(rewritten_includes: [str]) -> [(str, str)]: + output = [] + for rewritten_include in rewritten_includes: + parsed = rewritten_include.split('=') + if len(parsed) == 2: + output.append((parsed[0], parsed[1])) + else: + raise RuntimeError(f"Bad rewritten include: {rewritten_include}") + return output + + + +def main(name, args): + parser = argparse.ArgumentParser(prog=name) + parser.add_argument("--zstd-deps", default="zstd_deps.h", help="Zstd dependencies file") + parser.add_argument("--mem", default="mem.h", help="Memory module") + parser.add_argument("--source-lib", default="../../lib", help="Location of the zstd library") + parser.add_argument("--output-lib", default="./freestanding_lib", help="Where to output the freestanding zstd library") + parser.add_argument("--xxhash", default=None, help="Alternate external xxhash include e.g. --xxhash=''. If set xxhash is not included.") + parser.add_argument("--xxh64-state", default=None, help="Alternate XXH64 state type (excluding _) e.g. --xxh64-state='struct xxh64_state'") + parser.add_argument("--xxh64-prefix", default=None, help="Alternate XXH64 function prefix (excluding _) e.g. --xxh64-prefix=xxh64") + parser.add_argument("--rewrite-include", default=[], dest="rewritten_includes", action="append", help="Rewrite an include REGEX=NEW (e.g. '=')") + parser.add_argument("--sed", default=[], dest="seds", action="append", help="Apply a sed replacement. Format: `s/REGEX/FORMAT/[g]`. REGEX is a Python regex. FORMAT is a Python format string formatted by the regex dict.") + parser.add_argument("-D", "--define", default=[], dest="defs", action="append", help="Pre-define this macro (can be passed multiple times)") + parser.add_argument("-U", "--undefine", default=[], dest="undefs", action="append", help="Pre-undefine this macro (can be passed mutliple times)") + parser.add_argument("-R", "--replace", default=[], dest="replaces", action="append", help="Pre-define this macro and replace the first ifndef block with its definition") + parser.add_argument("-E", "--exclude", default=[], dest="excludes", action="append", help="Exclude all lines between 'BEGIN ' and 'END '") + args = parser.parse_args(args) + + # Always remove threading + if "ZSTD_MULTITHREAD" not in args.undefs: + args.undefs.append("ZSTD_MULTITHREAD") + + args.defs = parse_optional_pair(args.defs) + for name, _ in args.defs: + if name in args.undefs: + raise RuntimeError(f"{name} is both defined and undefined!") + + # Always set tracing to 0 + if "ZSTD_NO_TRACE" not in (arg[0] for arg in args.defs): + args.defs.append(("ZSTD_NO_TRACE", None)) + args.defs.append(("ZSTD_TRACE", "0")) + + args.replaces = parse_pair(args.replaces) + for name, _ in args.replaces: + if name in args.undefs or name in args.defs: + raise RuntimeError(f"{name} is both replaced and (un)defined!") + + args.rewritten_includes = parse_pair(args.rewritten_includes) + + external_xxhash = False + if args.xxhash is not None: + external_xxhash = True + args.rewritten_includes.append(('"(\\.\\./common/)?xxhash.h"', args.xxhash)) + + if args.xxh64_prefix is not None: + if not external_xxhash: + raise RuntimeError("--xxh64-prefix may only be used with --xxhash provided") + + if args.xxh64_state is not None: + if not external_xxhash: + raise RuntimeError("--xxh64-state may only be used with --xxhash provided") + + Freestanding( + args.zstd_deps, + args.mem, + args.source_lib, + args.output_lib, + external_xxhash, + args.xxh64_state, + args.xxh64_prefix, + args.rewritten_includes, + args.defs, + args.replaces, + args.undefs, + args.excludes, + args.seds, + ).go() + +if __name__ == "__main__": + main(sys.argv[0], sys.argv[1:]) diff --git a/dependencies/zstd-1.5.0/contrib/gen_html/.gitignore b/dependencies/zstd-1.5.0/contrib/gen_html/.gitignore new file mode 100644 index 0000000..3446114 --- /dev/null +++ b/dependencies/zstd-1.5.0/contrib/gen_html/.gitignore @@ -0,0 +1,3 @@ +# make artefact +gen_html +zstd_manual.html diff --git a/dependencies/zstd-1.5.0/contrib/gen_html/Makefile b/dependencies/zstd-1.5.0/contrib/gen_html/Makefile new file mode 100644 index 0000000..425f266 --- /dev/null +++ b/dependencies/zstd-1.5.0/contrib/gen_html/Makefile @@ -0,0 +1,51 @@ +# ################################################################ +# Copyright (c) 2016-present, Facebook, Inc. +# All rights reserved. +# +# This source code is licensed under both the BSD-style license (found in the +# LICENSE file in the root directory of this source tree) and the GPLv2 (found +# in the COPYING file in the root directory of this source tree). +# ################################################################ + +CXXFLAGS ?= -O3 +CXXFLAGS += -Wall -Wextra -Wcast-qual -Wcast-align -Wshadow -Wstrict-aliasing=1 -Wswitch-enum -Wno-comment +CXXFLAGS += $(MOREFLAGS) +FLAGS = $(CPPFLAGS) $(CXXFLAGS) $(LDFLAGS) + +ZSTDAPI = ../../lib/zstd.h +ZSTDMANUAL = ../../doc/zstd_manual.html +LIBVER_MAJOR_SCRIPT:=`sed -n '/define ZSTD_VERSION_MAJOR/s/.*[[:blank:]]\([0-9][0-9]*\).*/\1/p' < $(ZSTDAPI)` +LIBVER_MINOR_SCRIPT:=`sed -n '/define ZSTD_VERSION_MINOR/s/.*[[:blank:]]\([0-9][0-9]*\).*/\1/p' < $(ZSTDAPI)` +LIBVER_PATCH_SCRIPT:=`sed -n '/define ZSTD_VERSION_RELEASE/s/.*[[:blank:]]\([0-9][0-9]*\).*/\1/p' < $(ZSTDAPI)` +LIBVER_SCRIPT:= $(LIBVER_MAJOR_SCRIPT).$(LIBVER_MINOR_SCRIPT).$(LIBVER_PATCH_SCRIPT) +LIBVER := $(shell echo $(LIBVER_SCRIPT)) + + +# Define *.exe as extension for Windows systems +ifneq (,$(filter Windows%,$(OS))) +EXT =.exe +else +EXT = +endif + + +.PHONY: default +default: gen_html + +.PHONY: all +all: manual + +gen_html: gen_html.cpp + $(CXX) $(FLAGS) $^ -o $@$(EXT) + +$(ZSTDMANUAL): gen_html $(ZSTDAPI) + echo "Update zstd manual in /doc" + ./gen_html $(LIBVER) $(ZSTDAPI) $(ZSTDMANUAL) + +.PHONY: manual +manual: gen_html $(ZSTDMANUAL) + +.PHONY: clean +clean: + @$(RM) gen_html$(EXT) + @echo Cleaning completed diff --git a/dependencies/zstd-1.5.0/contrib/gen_html/README.md b/dependencies/zstd-1.5.0/contrib/gen_html/README.md new file mode 100644 index 0000000..63a4caa --- /dev/null +++ b/dependencies/zstd-1.5.0/contrib/gen_html/README.md @@ -0,0 +1,31 @@ +gen_html - a program for automatic generation of zstd manual +============================================================ + +#### Introduction + +This simple C++ program generates a single-page HTML manual from `zstd.h`. + +The format of recognized comment blocks is following: +- comments of type `/*!` mean: this is a function declaration; switch comments with declarations +- comments of type `/**` and `/*-` mean: this is a comment; use a `

    ` header for the first line +- comments of type `/*=` and `/**=` mean: use a `

    ` header and show also all functions until first empty line +- comments of type `/*X` where `X` is different from above-mentioned are ignored + +Moreover: +- `ZSTDLIB_API` is removed to improve readability +- `typedef` are detected and included even if uncommented +- comments of type `/**<` and `/*!<` are detected and only function declaration is highlighted (bold) + + +#### Usage + +The program requires 3 parameters: +``` +gen_html [zstd_version] [input_file] [output_html] +``` + +To compile program and generate zstd manual we have used: +``` +make +./gen_html.exe 1.1.1 ../../lib/zstd.h zstd_manual.html +``` diff --git a/dependencies/zstd-1.5.0/contrib/gen_html/gen-zstd-manual.sh b/dependencies/zstd-1.5.0/contrib/gen_html/gen-zstd-manual.sh new file mode 100755 index 0000000..57a8b6e --- /dev/null +++ b/dependencies/zstd-1.5.0/contrib/gen_html/gen-zstd-manual.sh @@ -0,0 +1,9 @@ +#!/bin/sh + +LIBVER_MAJOR_SCRIPT=`sed -n '/define ZSTD_VERSION_MAJOR/s/.*[[:blank:]]\([0-9][0-9]*\).*/\1/p' < ../../lib/zstd.h` +LIBVER_MINOR_SCRIPT=`sed -n '/define ZSTD_VERSION_MINOR/s/.*[[:blank:]]\([0-9][0-9]*\).*/\1/p' < ../../lib/zstd.h` +LIBVER_PATCH_SCRIPT=`sed -n '/define ZSTD_VERSION_RELEASE/s/.*[[:blank:]]\([0-9][0-9]*\).*/\1/p' < ../../lib/zstd.h` +LIBVER_SCRIPT=$LIBVER_MAJOR_SCRIPT.$LIBVER_MINOR_SCRIPT.$LIBVER_PATCH_SCRIPT + +echo ZSTD_VERSION=$LIBVER_SCRIPT +./gen_html $LIBVER_SCRIPT ../../lib/zstd.h ./zstd_manual.html diff --git a/dependencies/zstd-1.5.0/contrib/gen_html/gen_html.cpp b/dependencies/zstd-1.5.0/contrib/gen_html/gen_html.cpp new file mode 100644 index 0000000..90d5b21 --- /dev/null +++ b/dependencies/zstd-1.5.0/contrib/gen_html/gen_html.cpp @@ -0,0 +1,224 @@ +/* + * Copyright (c) 2016-present, Przemyslaw Skibinski, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + */ + +#include +#include +#include +#include +using namespace std; + + +/* trim string at the beginning and at the end */ +void trim(string& s, string characters) +{ + size_t p = s.find_first_not_of(characters); + s.erase(0, p); + + p = s.find_last_not_of(characters); + if (string::npos != p) + s.erase(p+1); +} + + +/* trim C++ style comments */ +void trim_comments(string &s) +{ + size_t spos, epos; + + spos = s.find("/*"); + epos = s.find("*/"); + s = s.substr(spos+3, epos-(spos+3)); +} + + +/* get lines until a given terminator */ +vector get_lines(vector& input, int& linenum, string terminator) +{ + vector out; + string line; + size_t epos; + + while ((size_t)linenum < input.size()) { + line = input[linenum]; + + if (terminator.empty() && line.empty()) { linenum--; break; } + + epos = line.find(terminator); + if (!terminator.empty() && epos!=string::npos) { + out.push_back(line); + break; + } + out.push_back(line); + linenum++; + } + return out; +} + + +/* print line with ZSTDLIB_API removed and C++ comments not bold */ +void print_line(stringstream &sout, string line) +{ + size_t spos; + + if (line.substr(0,12) == "ZSTDLIB_API ") line = line.substr(12); + spos = line.find("/*"); + if (spos!=string::npos) { + sout << line.substr(0, spos); + sout << "" << line.substr(spos) << "" << endl; + } else { + // fprintf(stderr, "lines=%s\n", line.c_str()); + sout << line << endl; + } +} + + +int main(int argc, char *argv[]) { + char exclam; + int linenum, chapter = 1; + vector input, lines, comments, chapters; + string line, version; + size_t spos, l; + stringstream sout; + ifstream istream; + ofstream ostream; + + if (argc < 4) { + cout << "usage: " << argv[0] << " [zstd_version] [input_file] [output_html]" << endl; + return 1; + } + + version = "zstd " + string(argv[1]) + " Manual"; + + istream.open(argv[2], ifstream::in); + if (!istream.is_open()) { + cout << "Error opening file " << argv[2] << endl; + return 1; + } + + ostream.open(argv[3], ifstream::out); + if (!ostream.is_open()) { + cout << "Error opening file " << argv[3] << endl; + return 1; + } + + while (getline(istream, line)) { + input.push_back(line); + } + + for (linenum=0; (size_t)linenum < input.size(); linenum++) { + line = input[linenum]; + + /* typedefs are detected and included even if uncommented */ + if (line.substr(0,7) == "typedef" && line.find("{")!=string::npos) { + lines = get_lines(input, linenum, "}"); + sout << "
    ";
    +            for (l=0; l

    " << endl; + continue; + } + + /* comments of type /**< and /*!< are detected and only function declaration is highlighted (bold) */ + if ((line.find("/**<")!=string::npos || line.find("/*!<")!=string::npos) && line.find("*/")!=string::npos) { + sout << "
    ";
    +            print_line(sout, line);
    +            sout << "

    " << endl; + continue; + } + + spos = line.find("/**="); + if (spos==string::npos) { + spos = line.find("/*!"); + if (spos==string::npos) + spos = line.find("/**"); + if (spos==string::npos) + spos = line.find("/*-"); + if (spos==string::npos) + spos = line.find("/*="); + if (spos==string::npos) + continue; + exclam = line[spos+2]; + } + else exclam = '='; + + comments = get_lines(input, linenum, "*/"); + if (!comments.empty()) comments[0] = line.substr(spos+3); + if (!comments.empty()) comments[comments.size()-1] = comments[comments.size()-1].substr(0, comments[comments.size()-1].find("*/")); + for (l=0; l"; + for (l=0; l

    "; + for (l=0; l
    " << endl << endl; + } else if (exclam == '=') { /* comments of type /*= and /**= mean: use a

    header and show also all functions until first empty line */ + trim(comments[0], " "); + sout << "

    " << comments[0] << "

    ";
    +            for (l=1; l
    ";
    +            lines = get_lines(input, ++linenum, "");
    +            for (l=0; l
    " << endl; + } else { /* comments of type /** and /*- mean: this is a comment; use a

    header for the first line */ + if (comments.empty()) continue; + + trim(comments[0], " "); + sout << "

    " << comments[0] << "

    ";
    +            chapters.push_back(comments[0]);
    +            chapter++;
    +
    +            for (l=1; l 1)
    +                sout << "
    " << endl << endl; + else + sout << "
    " << endl << endl; + } + } + + ostream << "\n\n\n" << version << "\n\n" << endl; + ostream << "

    " << version << "

    \n"; + + ostream << "
    \n

    Contents

    \n
      \n"; + for (size_t i=0; i" << chapters[i].c_str() << "\n"; + ostream << "
    \n
    \n"; + + ostream << sout.str(); + ostream << "" << endl << "" << endl; + + return 0; +} diff --git a/dependencies/zstd-1.5.0/contrib/largeNbDicts/.gitignore b/dependencies/zstd-1.5.0/contrib/largeNbDicts/.gitignore new file mode 100644 index 0000000..e77c4e4 --- /dev/null +++ b/dependencies/zstd-1.5.0/contrib/largeNbDicts/.gitignore @@ -0,0 +1,2 @@ +# build artifacts +largeNbDicts diff --git a/dependencies/zstd-1.5.0/contrib/largeNbDicts/Makefile b/dependencies/zstd-1.5.0/contrib/largeNbDicts/Makefile new file mode 100644 index 0000000..4c055b0 --- /dev/null +++ b/dependencies/zstd-1.5.0/contrib/largeNbDicts/Makefile @@ -0,0 +1,58 @@ +# ################################################################ +# Copyright (c) 2018-present, Yann Collet, Facebook, Inc. +# All rights reserved. +# +# This source code is licensed under both the BSD-style license (found in the +# LICENSE file in the root directory of this source tree) and the GPLv2 (found +# in the COPYING file in the root directory of this source tree). +# ################################################################ + +PROGDIR = ../../programs +LIBDIR = ../../lib + +LIBZSTD = $(LIBDIR)/libzstd.a + +CPPFLAGS+= -I$(LIBDIR) -I$(LIBDIR)/common -I$(LIBDIR)/dictBuilder -I$(PROGDIR) + +CFLAGS ?= -O3 +CFLAGS += -std=gnu99 +DEBUGFLAGS= -Wall -Wextra -Wcast-qual -Wcast-align -Wshadow \ + -Wstrict-aliasing=1 -Wswitch-enum \ + -Wstrict-prototypes -Wundef -Wpointer-arith \ + -Wvla -Wformat=2 -Winit-self -Wfloat-equal -Wwrite-strings \ + -Wredundant-decls +CFLAGS += $(DEBUGFLAGS) $(MOREFLAGS) + + +default: largeNbDicts + +all : largeNbDicts + +largeNbDicts: util.o timefn.o benchfn.o datagen.o xxhash.o largeNbDicts.c $(LIBZSTD) + $(CC) $(CPPFLAGS) $(CFLAGS) $^ $(LDFLAGS) -o $@ + +.PHONY: $(LIBZSTD) +$(LIBZSTD): + $(MAKE) -C $(LIBDIR) libzstd.a CFLAGS="$(CFLAGS)" + +benchfn.o: $(PROGDIR)/benchfn.c + $(CC) $(CPPFLAGS) $(CFLAGS) $^ -c + +timefn.o: $(PROGDIR)/timefn.c + $(CC) $(CPPFLAGS) $(CFLAGS) $^ -c + +datagen.o: $(PROGDIR)/datagen.c + $(CC) $(CPPFLAGS) $(CFLAGS) $^ -c + +util.o: $(PROGDIR)/util.c + $(CC) $(CPPFLAGS) $(CFLAGS) $^ -c + + +xxhash.o : $(LIBDIR)/common/xxhash.c + $(CC) $(CPPFLAGS) $(CFLAGS) $^ -c + + +clean: + $(RM) *.o + $(MAKE) -C $(LIBDIR) clean > /dev/null + $(RM) largeNbDicts diff --git a/dependencies/zstd-1.5.0/contrib/largeNbDicts/README.md b/dependencies/zstd-1.5.0/contrib/largeNbDicts/README.md new file mode 100644 index 0000000..f29bcdf --- /dev/null +++ b/dependencies/zstd-1.5.0/contrib/largeNbDicts/README.md @@ -0,0 +1,25 @@ +largeNbDicts +===================== + +`largeNbDicts` is a benchmark test tool +dedicated to the specific scenario of +dictionary decompression using a very large number of dictionaries. +When dictionaries are constantly changing, they are always "cold", +suffering from increased latency due to cache misses. + +The tool is created in a bid to investigate performance for this scenario, +and experiment mitigation techniques. + +Command line : +``` +largeNbDicts [Options] filename(s) + +Options : +-r : recursively load all files in subdirectories (default: off) +-B# : split input into blocks of size # (default: no split) +-# : use compression level # (default: 3) +-D # : use # as a dictionary (default: create one) +-i# : nb benchmark rounds (default: 6) +--nbDicts=# : set nb of dictionaries to # (default: one per block) +-h : help (this text) +``` diff --git a/dependencies/zstd-1.5.0/contrib/largeNbDicts/largeNbDicts.c b/dependencies/zstd-1.5.0/contrib/largeNbDicts/largeNbDicts.c new file mode 100644 index 0000000..ddbb3e0 --- /dev/null +++ b/dependencies/zstd-1.5.0/contrib/largeNbDicts/largeNbDicts.c @@ -0,0 +1,998 @@ +/* + * Copyright (c) 2018-present, Yann Collet, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + +/* largeNbDicts + * This is a benchmark test tool + * dedicated to the specific case of dictionary decompression + * using a very large nb of dictionaries + * thus suffering latency from lots of cache misses. + * It's created in a bid to investigate performance and find optimizations. */ + + +/*--- Dependencies ---*/ + +#include /* size_t */ +#include /* malloc, free, abort */ +#include /* fprintf */ +#include /* UINT_MAX */ +#include /* assert */ + +#include "util.h" +#include "benchfn.h" +#define ZSTD_STATIC_LINKING_ONLY +#include "zstd.h" +#include "zdict.h" + + +/*--- Constants --- */ + +#define KB *(1<<10) +#define MB *(1<<20) + +#define BLOCKSIZE_DEFAULT 0 /* no slicing into blocks */ +#define DICTSIZE (4 KB) +#define CLEVEL_DEFAULT 3 + +#define BENCH_TIME_DEFAULT_S 6 +#define RUN_TIME_DEFAULT_MS 1000 +#define BENCH_TIME_DEFAULT_MS (BENCH_TIME_DEFAULT_S * RUN_TIME_DEFAULT_MS) + +#define DISPLAY_LEVEL_DEFAULT 3 + +#define BENCH_SIZE_MAX (1200 MB) + + +/*--- Macros ---*/ + +#define CONTROL(c) { if (!(c)) abort(); } +#undef MIN +#define MIN(a,b) ((a) < (b) ? (a) : (b)) + + +/*--- Display Macros ---*/ + +#define DISPLAY(...) fprintf(stdout, __VA_ARGS__) +#define DISPLAYLEVEL(l, ...) { if (g_displayLevel>=l) { DISPLAY(__VA_ARGS__); } } +static int g_displayLevel = DISPLAY_LEVEL_DEFAULT; /* 0 : no display, 1: errors, 2 : + result + interaction + warnings, 3 : + progression, 4 : + information */ + + +/*--- buffer_t ---*/ + +typedef struct { + void* ptr; + size_t size; + size_t capacity; +} buffer_t; + +static const buffer_t kBuffNull = { NULL, 0, 0 }; + +/* @return : kBuffNull if any error */ +static buffer_t createBuffer(size_t capacity) +{ + assert(capacity > 0); + void* const ptr = malloc(capacity); + if (ptr==NULL) return kBuffNull; + + buffer_t buffer; + buffer.ptr = ptr; + buffer.capacity = capacity; + buffer.size = 0; + return buffer; +} + +static void freeBuffer(buffer_t buff) +{ + free(buff.ptr); +} + + +static void fillBuffer_fromHandle(buffer_t* buff, FILE* f) +{ + size_t const readSize = fread(buff->ptr, 1, buff->capacity, f); + buff->size = readSize; +} + + +/* @return : kBuffNull if any error */ +static buffer_t createBuffer_fromFile(const char* fileName) +{ + U64 const fileSize = UTIL_getFileSize(fileName); + size_t const bufferSize = (size_t) fileSize; + + if (fileSize == UTIL_FILESIZE_UNKNOWN) return kBuffNull; + assert((U64)bufferSize == fileSize); /* check overflow */ + + { FILE* const f = fopen(fileName, "rb"); + if (f == NULL) return kBuffNull; + + buffer_t buff = createBuffer(bufferSize); + CONTROL(buff.ptr != NULL); + + fillBuffer_fromHandle(&buff, f); + CONTROL(buff.size == buff.capacity); + + fclose(f); /* do nothing specific if fclose() fails */ + return buff; + } +} + + +/* @return : kBuffNull if any error */ +static buffer_t +createDictionaryBuffer(const char* dictionaryName, + const void* srcBuffer, + const size_t* srcBlockSizes, size_t nbBlocks, + size_t requestedDictSize) +{ + if (dictionaryName) { + DISPLAYLEVEL(3, "loading dictionary %s \n", dictionaryName); + return createBuffer_fromFile(dictionaryName); /* note : result might be kBuffNull */ + + } else { + + DISPLAYLEVEL(3, "creating dictionary, of target size %u bytes \n", + (unsigned)requestedDictSize); + void* const dictBuffer = malloc(requestedDictSize); + CONTROL(dictBuffer != NULL); + + assert(nbBlocks <= UINT_MAX); + size_t const dictSize = ZDICT_trainFromBuffer(dictBuffer, requestedDictSize, + srcBuffer, + srcBlockSizes, (unsigned)nbBlocks); + CONTROL(!ZSTD_isError(dictSize)); + + buffer_t result; + result.ptr = dictBuffer; + result.capacity = requestedDictSize; + result.size = dictSize; + return result; + } +} + +static ZSTD_CDict* createCDictForDedicatedDictSearch(const void* dict, size_t dictSize, int compressionLevel) +{ + ZSTD_CCtx_params* params = ZSTD_createCCtxParams(); + ZSTD_CCtxParams_init(params, compressionLevel); + ZSTD_CCtxParams_setParameter(params, ZSTD_c_enableDedicatedDictSearch, 1); + ZSTD_CCtxParams_setParameter(params, ZSTD_c_compressionLevel, compressionLevel); + + ZSTD_CDict* cdict = ZSTD_createCDict_advanced2(dict, dictSize, ZSTD_dlm_byCopy, ZSTD_dct_auto, params, ZSTD_defaultCMem); + + ZSTD_freeCCtxParams(params); + return cdict; +} + +/*! BMK_loadFiles() : + * Loads `buffer`, with content from files listed within `fileNamesTable`. + * Fills `buffer` entirely. + * @return : 0 on success, !=0 on error */ +static int loadFiles(void* buffer, size_t bufferSize, + size_t* fileSizes, + const char* const * fileNamesTable, unsigned nbFiles) +{ + size_t pos = 0, totalSize = 0; + + for (unsigned n=0; n 0); + void* const srcBuffer = malloc(loadedSize); + assert(srcBuffer != NULL); + + assert(nbFiles > 0); + size_t* const fileSizes = (size_t*)calloc(nbFiles, sizeof(*fileSizes)); + assert(fileSizes != NULL); + + /* Load input buffer */ + int const errorCode = loadFiles(srcBuffer, loadedSize, + fileSizes, + fileNamesTable, nbFiles); + assert(errorCode == 0); + + void** sliceTable = (void**)malloc(nbFiles * sizeof(*sliceTable)); + assert(sliceTable != NULL); + + char* const ptr = (char*)srcBuffer; + size_t pos = 0; + unsigned fileNb = 0; + for ( ; (pos < loadedSize) && (fileNb < nbFiles); fileNb++) { + sliceTable[fileNb] = ptr + pos; + pos += fileSizes[fileNb]; + } + assert(pos == loadedSize); + assert(fileNb == nbFiles); + + + buffer_t buffer; + buffer.ptr = srcBuffer; + buffer.capacity = loadedSize; + buffer.size = loadedSize; + + slice_collection_t slices; + slices.slicePtrs = sliceTable; + slices.capacities = fileSizes; + slices.nbSlices = nbFiles; + + buffer_collection_t bc; + bc.buffer = buffer; + bc.slices = slices; + return bc; +} + + + + +/*--- ddict_collection_t ---*/ + +typedef struct { + ZSTD_DDict** ddicts; + size_t nbDDict; +} ddict_collection_t; + +typedef struct { + ZSTD_CDict** cdicts; + size_t nbCDict; +} cdict_collection_t; + +static const cdict_collection_t kNullCDictCollection = { NULL, 0 }; + +static void freeCDictCollection(cdict_collection_t cdictc) +{ + for (size_t dictNb=0; dictNb < cdictc.nbCDict; dictNb++) { + ZSTD_freeCDict(cdictc.cdicts[dictNb]); + } + free(cdictc.cdicts); +} + +/* returns .buffers=NULL if operation fails */ +static cdict_collection_t createCDictCollection(const void* dictBuffer, size_t dictSize, size_t nbCDict, int cLevel, int dedicatedDictSearch) +{ + ZSTD_CDict** const cdicts = malloc(nbCDict * sizeof(ZSTD_CDict*)); + if (cdicts==NULL) return kNullCDictCollection; + for (size_t dictNb=0; dictNb < nbCDict; dictNb++) { + cdicts[dictNb] = dedicatedDictSearch ? + createCDictForDedicatedDictSearch(dictBuffer, dictSize, cLevel) : + ZSTD_createCDict(dictBuffer, dictSize, cLevel); + CONTROL(cdicts[dictNb] != NULL); + } + cdict_collection_t cdictc; + cdictc.cdicts = cdicts; + cdictc.nbCDict = nbCDict; + return cdictc; +} + +static const ddict_collection_t kNullDDictCollection = { NULL, 0 }; + +static void freeDDictCollection(ddict_collection_t ddictc) +{ + for (size_t dictNb=0; dictNb < ddictc.nbDDict; dictNb++) { + ZSTD_freeDDict(ddictc.ddicts[dictNb]); + } + free(ddictc.ddicts); +} + +/* returns .buffers=NULL if operation fails */ +static ddict_collection_t createDDictCollection(const void* dictBuffer, size_t dictSize, size_t nbDDict) +{ + ZSTD_DDict** const ddicts = malloc(nbDDict * sizeof(ZSTD_DDict*)); + assert(ddicts != NULL); + if (ddicts==NULL) return kNullDDictCollection; + for (size_t dictNb=0; dictNb < nbDDict; dictNb++) { + ddicts[dictNb] = ZSTD_createDDict(dictBuffer, dictSize); + assert(ddicts[dictNb] != NULL); + } + ddict_collection_t ddictc; + ddictc.ddicts = ddicts; + ddictc.nbDDict = nbDDict; + return ddictc; +} + + +/* mess with addresses, so that linear scanning dictionaries != linear address scanning */ +void shuffleCDictionaries(cdict_collection_t dicts) +{ + size_t const nbDicts = dicts.nbCDict; + for (size_t r=0; rcctx, + dst, srcSize, + src, srcSize, + ci->dictionaries.cdicts[ci->dictNb]); + + ci->dictNb = ci->dictNb + 1; + if (ci->dictNb >= ci->nbDicts) ci->dictNb = 0; + + return srcSize; +} + +/* benched function */ +size_t decompress(const void* src, size_t srcSize, void* dst, size_t dstCapacity, void* payload) +{ + decompressInstructions* const di = (decompressInstructions*) payload; + + size_t const result = ZSTD_decompress_usingDDict(di->dctx, + dst, dstCapacity, + src, srcSize, + di->dictionaries.ddicts[di->dictNb]); + + di->dictNb = di->dictNb + 1; + if (di->dictNb >= di->nbDicts) di->dictNb = 0; + + return result; +} + + +static int benchMem(slice_collection_t dstBlocks, + slice_collection_t srcBlocks, + ddict_collection_t ddictionaries, + cdict_collection_t cdictionaries, + unsigned nbRounds, int benchCompression) +{ + assert(dstBlocks.nbSlices == srcBlocks.nbSlices); + + unsigned const ms_per_round = RUN_TIME_DEFAULT_MS; + unsigned const total_time_ms = nbRounds * ms_per_round; + + double bestSpeed = 0.; + + BMK_timedFnState_t* const benchState = + BMK_createTimedFnState(total_time_ms, ms_per_round); + + decompressInstructions di = createDecompressInstructions(ddictionaries); + compressInstructions ci = createCompressInstructions(cdictionaries); + void* payload = benchCompression ? (void*)&ci : (void*)&di; + BMK_benchParams_t const bp = { + .benchFn = benchCompression ? compress : decompress, + .benchPayload = payload, + .initFn = NULL, + .initPayload = NULL, + .errorFn = ZSTD_isError, + .blockCount = dstBlocks.nbSlices, + .srcBuffers = (const void* const*) srcBlocks.slicePtrs, + .srcSizes = srcBlocks.capacities, + .dstBuffers = dstBlocks.slicePtrs, + .dstCapacities = dstBlocks.capacities, + .blockResults = NULL + }; + + for (;;) { + BMK_runOutcome_t const outcome = BMK_benchTimedFn(benchState, bp); + CONTROL(BMK_isSuccessful_runOutcome(outcome)); + + BMK_runTime_t const result = BMK_extract_runTime(outcome); + double const dTime_ns = result.nanoSecPerRun; + double const dTime_sec = (double)dTime_ns / 1000000000; + size_t const srcSize = result.sumOfReturn; + double const speed_MBps = (double)srcSize / dTime_sec / (1 MB); + if (speed_MBps > bestSpeed) bestSpeed = speed_MBps; + if (benchCompression) + DISPLAY("Compression Speed : %.1f MB/s \r", bestSpeed); + else + DISPLAY("Decompression Speed : %.1f MB/s \r", bestSpeed); + + fflush(stdout); + if (BMK_isCompleted_TimedFn(benchState)) break; + } + DISPLAY("\n"); + + freeDecompressInstructions(di); + freeCompressInstructions(ci); + BMK_freeTimedFnState(benchState); + + return 0; /* success */ +} + + +/*! bench() : + * fileName : file to load for benchmarking purpose + * dictionary : optional (can be NULL), file to load as dictionary, + * if none provided : will be calculated on the fly by the program. + * @return : 0 is success, 1+ otherwise */ +int bench(const char** fileNameTable, unsigned nbFiles, + const char* dictionary, + size_t blockSize, int clevel, + unsigned nbDictMax, unsigned nbBlocks, + unsigned nbRounds, int benchCompression, + int dedicatedDictSearch) +{ + int result = 0; + + DISPLAYLEVEL(3, "loading %u files... \n", nbFiles); + buffer_collection_t const srcs = createBufferCollection_fromFiles(fileNameTable, nbFiles); + CONTROL(srcs.buffer.ptr != NULL); + buffer_t srcBuffer = srcs.buffer; + size_t const srcSize = srcBuffer.size; + DISPLAYLEVEL(3, "created src buffer of size %.1f MB \n", + (double)srcSize / (1 MB)); + + slice_collection_t const srcSlices = splitSlices(srcs.slices, blockSize, nbBlocks); + nbBlocks = (unsigned)(srcSlices.nbSlices); + DISPLAYLEVEL(3, "split input into %u blocks ", nbBlocks); + if (blockSize) + DISPLAYLEVEL(3, "of max size %u bytes ", (unsigned)blockSize); + DISPLAYLEVEL(3, "\n"); + size_t const totalSrcSlicesSize = sliceCollection_totalCapacity(srcSlices); + + + size_t* const dstCapacities = malloc(nbBlocks * sizeof(*dstCapacities)); + CONTROL(dstCapacities != NULL); + size_t dstBufferCapacity = 0; + for (size_t bnb=0; bnb='0') && (**stringPtr <='9')) { + unsigned const max = (((unsigned)(-1)) / 10) - 1; + assert(result <= max); /* check overflow */ + result *= 10, result += (unsigned)**stringPtr - '0', (*stringPtr)++ ; + } + if ((**stringPtr=='K') || (**stringPtr=='M')) { + unsigned const maxK = ((unsigned)(-1)) >> 10; + assert(result <= maxK); /* check overflow */ + result <<= 10; + if (**stringPtr=='M') { + assert(result <= maxK); /* check overflow */ + result <<= 10; + } + (*stringPtr)++; /* skip `K` or `M` */ + if (**stringPtr=='i') (*stringPtr)++; + if (**stringPtr=='B') (*stringPtr)++; + } + return result; +} + +/** longCommandWArg() : + * check if *stringPtr is the same as longCommand. + * If yes, @return 1 and advances *stringPtr to the position which immediately follows longCommand. + * @return 0 and doesn't modify *stringPtr otherwise. + */ +static int longCommandWArg(const char** stringPtr, const char* longCommand) +{ + size_t const comSize = strlen(longCommand); + int const result = !strncmp(*stringPtr, longCommand, comSize); + if (result) *stringPtr += comSize; + return result; +} + + +int usage(const char* exeName) +{ + DISPLAY (" \n"); + DISPLAY (" %s [Options] filename(s) \n", exeName); + DISPLAY (" \n"); + DISPLAY ("Options : \n"); + DISPLAY ("-z : benchmark compression (default) \n"); + DISPLAY ("-d : benchmark decompression \n"); + DISPLAY ("-r : recursively load all files in subdirectories (default: off) \n"); + DISPLAY ("-B# : split input into blocks of size # (default: no split) \n"); + DISPLAY ("-# : use compression level # (default: %u) \n", CLEVEL_DEFAULT); + DISPLAY ("-D # : use # as a dictionary (default: create one) \n"); + DISPLAY ("-i# : nb benchmark rounds (default: %u) \n", BENCH_TIME_DEFAULT_S); + DISPLAY ("--nbBlocks=#: use # blocks for bench (default: one per file) \n"); + DISPLAY ("--nbDicts=# : create # dictionaries for bench (default: one per block) \n"); + DISPLAY ("-h : help (this text) \n"); + return 0; +} + +int bad_usage(const char* exeName) +{ + DISPLAY (" bad usage : \n"); + usage(exeName); + return 1; +} + +int main (int argc, const char** argv) +{ + int recursiveMode = 0; + int benchCompression = 1; + int dedicatedDictSearch = 0; + unsigned nbRounds = BENCH_TIME_DEFAULT_S; + const char* const exeName = argv[0]; + + if (argc < 2) return bad_usage(exeName); + + const char** nameTable = (const char**)malloc((size_t)argc * sizeof(const char*)); + assert(nameTable != NULL); + unsigned nameIdx = 0; + + const char* dictionary = NULL; + int cLevel = CLEVEL_DEFAULT; + size_t blockSize = BLOCKSIZE_DEFAULT; + unsigned nbDicts = 0; /* determine nbDicts automatically: 1 dictionary per block */ + unsigned nbBlocks = 0; /* determine nbBlocks automatically, from source and blockSize */ + + for (int argNb = 1; argNb < argc ; argNb++) { + const char* argument = argv[argNb]; + if (!strcmp(argument, "-h")) { free(nameTable); return usage(exeName); } + if (!strcmp(argument, "-d")) { benchCompression = 0; continue; } + if (!strcmp(argument, "-z")) { benchCompression = 1; continue; } + if (!strcmp(argument, "-r")) { recursiveMode = 1; continue; } + if (!strcmp(argument, "-D")) { argNb++; assert(argNb < argc); dictionary = argv[argNb]; continue; } + if (longCommandWArg(&argument, "-i")) { nbRounds = readU32FromChar(&argument); continue; } + if (longCommandWArg(&argument, "--dictionary=")) { dictionary = argument; continue; } + if (longCommandWArg(&argument, "-B")) { blockSize = readU32FromChar(&argument); continue; } + if (longCommandWArg(&argument, "--blockSize=")) { blockSize = readU32FromChar(&argument); continue; } + if (longCommandWArg(&argument, "--nbDicts=")) { nbDicts = readU32FromChar(&argument); continue; } + if (longCommandWArg(&argument, "--nbBlocks=")) { nbBlocks = readU32FromChar(&argument); continue; } + if (longCommandWArg(&argument, "--clevel=")) { cLevel = (int)readU32FromChar(&argument); continue; } + if (longCommandWArg(&argument, "--dedicated-dict-search")) { dedicatedDictSearch = 1; continue; } + if (longCommandWArg(&argument, "-")) { cLevel = (int)readU32FromChar(&argument); continue; } + /* anything that's not a command is a filename */ + nameTable[nameIdx++] = argument; + } + + FileNamesTable* filenameTable; + + if (recursiveMode) { +#ifndef UTIL_HAS_CREATEFILELIST + assert(0); /* missing capability, do not run */ +#endif + filenameTable = UTIL_createExpandedFNT(nameTable, nameIdx, 1 /* follow_links */); + } else { + filenameTable = UTIL_assembleFileNamesTable(nameTable, nameIdx, NULL); + nameTable = NULL; /* UTIL_createFileNamesTable() takes ownership of nameTable */ + } + + int result = bench(filenameTable->fileNames, (unsigned)filenameTable->tableSize, dictionary, blockSize, cLevel, nbDicts, nbBlocks, nbRounds, benchCompression, dedicatedDictSearch); + + UTIL_freeFileNamesTable(filenameTable); + free(nameTable); + + return result; +} diff --git a/dependencies/zstd-1.5.0/contrib/linux-kernel/.gitignore b/dependencies/zstd-1.5.0/contrib/linux-kernel/.gitignore new file mode 100644 index 0000000..d8dfeef --- /dev/null +++ b/dependencies/zstd-1.5.0/contrib/linux-kernel/.gitignore @@ -0,0 +1,4 @@ +!lib/zstd +!lib/zstd/* +*.o +*.a diff --git a/dependencies/zstd-1.5.0/contrib/linux-kernel/Makefile b/dependencies/zstd-1.5.0/contrib/linux-kernel/Makefile new file mode 100644 index 0000000..c391df7 --- /dev/null +++ b/dependencies/zstd-1.5.0/contrib/linux-kernel/Makefile @@ -0,0 +1,95 @@ +# ################################################################ +# Copyright (c) Facebook, Inc. +# All rights reserved. +# +# This source code is licensed under both the BSD-style license (found in the +# LICENSE file in the root directory of this source tree) and the GPLv2 (found +# in the COPYING file in the root directory of this source tree). +# You may select, at your option, one of the above-listed licenses. +# ################################################################ + +.PHONY: libzstd +libzstd: + rm -rf linux + mkdir -p linux + mkdir -p linux/include/linux + mkdir -p linux/lib/zstd + ../freestanding_lib/freestanding.py \ + --source-lib ../../lib \ + --output-lib linux/lib/zstd \ + --xxhash '' \ + --xxh64-state 'struct xxh64_state' \ + --xxh64-prefix 'xxh64' \ + --rewrite-include '=' \ + --rewrite-include '=' \ + --rewrite-include '"\.\./zstd.h"=' \ + --rewrite-include '"(\.\./)?zstd_errors.h"=' \ + --sed 's,/\*\*\*,/* *,g' \ + --sed 's,/\*\*,/*,g' \ + -DZSTD_NO_INTRINSICS \ + -DZSTD_NO_UNUSED_FUNCTIONS \ + -DZSTD_LEGACY_SUPPORT=0 \ + -DZSTD_STATIC_LINKING_ONLY \ + -DFSE_STATIC_LINKING_ONLY \ + -DHUF_STATIC_LINKING_ONLY \ + -DXXH_STATIC_LINKING_ONLY \ + -DMEM_FORCE_MEMORY_ACCESS=0 \ + -D__GNUC__ \ + -DSTATIC_BMI2=0 \ + -DZSTD_ADDRESS_SANITIZER=0 \ + -DZSTD_MEMORY_SANITIZER=0 \ + -DZSTD_COMPRESS_HEAPMODE=1 \ + -UZSTD_NO_INLINE \ + -UNO_PREFETCH \ + -U__cplusplus \ + -UZSTD_DLL_EXPORT \ + -UZSTD_DLL_IMPORT \ + -U__ICCARM__ \ + -UZSTD_MULTITHREAD \ + -U_MSC_VER \ + -U_WIN32 \ + -RZSTDLIB_VISIBILITY= \ + -RZSTDERRORLIB_VISIBILITY= \ + -DZSTD_HAVE_WEAK_SYMBOLS=0 \ + -DZSTD_TRACE=0 \ + -DZSTD_NO_TRACE + mv linux/lib/zstd/zstd.h linux/include/linux/zstd_lib.h + mv linux/lib/zstd/zstd_errors.h linux/include/linux/ + cp linux_zstd.h linux/include/linux/zstd.h + cp zstd_compress_module.c linux/lib/zstd + cp zstd_decompress_module.c linux/lib/zstd + cp decompress_sources.h linux/lib/zstd + cp linux.mk linux/lib/zstd/Makefile + +LINUX ?= $(HOME)/repos/linux + +.PHONY: import +import: libzstd + rm -f $(LINUX)/include/linux/zstd.h + rm -f $(LINUX)/include/linux/zstd_errors.h + rm -rf $(LINUX)/lib/zstd + cp linux/include/linux/zstd.h $(LINUX)/include/linux + cp linux/include/linux/zstd_lib.h $(LINUX)/include/linux + cp linux/include/linux/zstd_errors.h $(LINUX)/include/linux + cp -r linux/lib/zstd $(LINUX)/lib + +import-upstream: + rm -rf $(LINUX)/lib/zstd + mkdir $(LINUX)/lib/zstd + cp ../../lib/zstd.h $(LINUX)/include/linux/zstd_lib.h + cp -r ../../lib/common $(LINUX)/lib/zstd + cp -r ../../lib/compress $(LINUX)/lib/zstd + cp -r ../../lib/decompress $(LINUX)/lib/zstd + mv $(LINUX)/lib/zstd/zstd_errors.h $(LINUX)/include/linux + rm $(LINUX)/lib/zstd/common/threading.* + rm $(LINUX)/lib/zstd/common/pool.* + rm $(LINUX)/lib/zstd/common/xxhash.* + rm $(LINUX)/lib/zstd/compress/zstdmt_* + +.PHONY: test +test: libzstd + $(MAKE) -C test run-test CFLAGS="-O3 $(CFLAGS)" -j + +.PHONY: clean +clean: + $(RM) -rf linux diff --git a/dependencies/zstd-1.5.0/contrib/linux-kernel/README.md b/dependencies/zstd-1.5.0/contrib/linux-kernel/README.md new file mode 100644 index 0000000..bfa070d --- /dev/null +++ b/dependencies/zstd-1.5.0/contrib/linux-kernel/README.md @@ -0,0 +1,14 @@ +# Zstd in the Linux Kernel + +This directory contains the scripts needed to transform upstream zstd into the version imported into the kernel. All the transforms are automated and tested by our continuous integration. + +## Upgrading Zstd in the Linux Kernel + +1. `cd` into this directory. +2. Run `make libzstd` and read the output. Make sure that all the diffs printed and changes made by the script are correct. +3. Run `make test` and ensure that it passes. +4. Import zstd into the Linux Kernel `make import LINUX=/path/to/linux/repo` +5. Inspect the diff for sanity. +6. Check the Linux Kernel history for zstd. If any patches were made to the kernel version of zstd, but not to upstream zstd, then port them upstream if necessary. +7. Test the diff. Benchmark if necessary. Make sure to test multiple architectures: At least x86, i386, and arm. +8. Submit the patch to the LKML. diff --git a/dependencies/zstd-1.5.0/contrib/linux-kernel/btrfs-benchmark.sh b/dependencies/zstd-1.5.0/contrib/linux-kernel/btrfs-benchmark.sh new file mode 100755 index 0000000..5e28da9 --- /dev/null +++ b/dependencies/zstd-1.5.0/contrib/linux-kernel/btrfs-benchmark.sh @@ -0,0 +1,104 @@ +# !/bin/sh +set -e + +# Benchmarks run on a Ubuntu 14.04 VM with 2 cores and 4 GiB of RAM. +# The VM is running on a Macbook Pro with a 3.1 GHz Intel Core i7 processor and +# 16 GB of RAM and an SSD. + +# silesia is a directory that can be downloaded from +# http://mattmahoney.net/dc/silesia.html +# ls -l silesia/ +# total 203M +# -rwxr-xr-x 1 terrelln 9.8M Apr 12 2002 dickens +# -rwxr-xr-x 1 terrelln 49M May 31 2002 mozilla +# -rwxr-xr-x 1 terrelln 9.6M Mar 20 2003 mr +# -rwxr-xr-x 1 terrelln 32M Apr 2 2002 nci +# -rwxr-xr-x 1 terrelln 5.9M Jul 4 2002 ooffice +# -rwxr-xr-x 1 terrelln 9.7M Apr 11 2002 osdb +# -rwxr-xr-x 1 terrelln 6.4M Apr 2 2002 reymont +# -rwxr-xr-x 1 terrelln 21M Mar 25 2002 samba +# -rwxr-xr-x 1 terrelln 7.0M Mar 24 2002 sao +# -rwxr-xr-x 1 terrelln 40M Mar 25 2002 webster +# -rwxr-xr-x 1 terrelln 8.1M Apr 4 2002 x-ray +# -rwxr-xr-x 1 terrelln 5.1M Nov 30 2000 xml + +# $HOME is on a ext4 filesystem +BENCHMARK_DIR="$HOME/silesia/" +N=10 + +# Normalize the environment +sudo umount /mnt/btrfs 2> /dev/null > /dev/null || true +sudo mount -t btrfs $@ /dev/sda3 /mnt/btrfs +sudo rm -rf /mnt/btrfs/* +sync +sudo umount /mnt/btrfs +sudo mount -t btrfs $@ /dev/sda3 /mnt/btrfs + +# Run the benchmark +echo "Compression" +time sh -c "for i in \$(seq $N); do sudo cp -r $BENCHMARK_DIR /mnt/btrfs/\$i; done; sync" + +echo "Approximate compression ratio" +printf "%d / %d\n" \ + $(df /mnt/btrfs --output=used -B 1 | tail -n 1) \ + $(sudo du /mnt/btrfs -b -d 0 | tr '\t' '\n' | head -n 1); + +# Unmount and remount to avoid any caching +sudo umount /mnt/btrfs +sudo mount -t btrfs $@ /dev/sda3 /mnt/btrfs + +echo "Decompression" +time sudo tar -c /mnt/btrfs 2> /dev/null | wc -c > /dev/null + +sudo rm -rf /mnt/btrfs/* +sudo umount /mnt/btrfs + +# Run for each of -o compress-force={none, lzo, zlib, zstd} 5 times and take the +# min time and ratio. +# Ran zstd with compression levels {1, 3, 6, 9, 12, 15}. +# Original size: 2119415342 B (using du /mnt/btrfs) + +# none +# compress: 4.205 s +# decompress: 3.090 s +# ratio: 0.99 + +# lzo +# compress: 5.328 s +# decompress: 4.793 s +# ratio: 1.66 + +# zlib +# compress: 32.588 s +# decompress: 8.791 s +# ratio : 2.58 + +# zstd 1 +# compress: 8.147 s +# decompress: 5.527 s +# ratio : 2.57 + +# zstd 3 +# compress: 12.207 s +# decompress: 5.195 s +# ratio : 2.71 + +# zstd 6 +# compress: 30.253 s +# decompress: 5.324 s +# ratio : 2.87 + +# zstd 9 +# compress: 49.659 s +# decompress: 5.220 s +# ratio : 2.92 + +# zstd 12 +# compress: 99.245 s +# decompress: 5.193 s +# ratio : 2.93 + +# zstd 15 +# compress: 196.997 s +# decompress: 5.992 s +# ratio : 3.01 diff --git a/dependencies/zstd-1.5.0/contrib/linux-kernel/btrfs-extract-benchmark.sh b/dependencies/zstd-1.5.0/contrib/linux-kernel/btrfs-extract-benchmark.sh new file mode 100755 index 0000000..69721d0 --- /dev/null +++ b/dependencies/zstd-1.5.0/contrib/linux-kernel/btrfs-extract-benchmark.sh @@ -0,0 +1,99 @@ +# !/bin/sh +set -e + +# Benchmarks run on a Ubuntu 14.04 VM with 2 cores and 4 GiB of RAM. +# The VM is running on a Macbook Pro with a 3.1 GHz Intel Core i7 processor and +# 16 GB of RAM and an SSD. + +# silesia is a directory that can be downloaded from +# http://mattmahoney.net/dc/silesia.html +# ls -l silesia/ +# total 203M +# -rwxr-xr-x 1 terrelln 9.8M Apr 12 2002 dickens +# -rwxr-xr-x 1 terrelln 49M May 31 2002 mozilla +# -rwxr-xr-x 1 terrelln 9.6M Mar 20 2003 mr +# -rwxr-xr-x 1 terrelln 32M Apr 2 2002 nci +# -rwxr-xr-x 1 terrelln 5.9M Jul 4 2002 ooffice +# -rwxr-xr-x 1 terrelln 9.7M Apr 11 2002 osdb +# -rwxr-xr-x 1 terrelln 6.4M Apr 2 2002 reymont +# -rwxr-xr-x 1 terrelln 21M Mar 25 2002 samba +# -rwxr-xr-x 1 terrelln 7.0M Mar 24 2002 sao +# -rwxr-xr-x 1 terrelln 40M Mar 25 2002 webster +# -rwxr-xr-x 1 terrelln 8.1M Apr 4 2002 x-ray +# -rwxr-xr-x 1 terrelln 5.1M Nov 30 2000 xml + +# $HOME is on a ext4 filesystem +BENCHMARK_FILE="linux-4.11.6.tar" +BENCHMARK_DIR="$HOME/$BENCHMARK_FILE" + +# Normalize the environment +sudo umount /mnt/btrfs 2> /dev/null > /dev/null || true +sudo mount -t btrfs $@ /dev/sda3 /mnt/btrfs +sudo rm -rf /mnt/btrfs/* +sync +sudo umount /mnt/btrfs +sudo mount -t btrfs $@ /dev/sda3 /mnt/btrfs + +# Run the benchmark +echo "Copy" +time sh -c "sudo cp -r $BENCHMARK_DIR /mnt/btrfs/$BENCHMARK_FILE && sync" + +echo "Approximate tarred compression ratio" +printf "%d / %d\n" \ + $(df /mnt/btrfs --output=used -B 1 | tail -n 1) \ + $(sudo du /mnt/btrfs -b -d 0 | tr '\t' '\n' | head -n 1); + +# Unmount and remount to avoid any caching +sudo umount /mnt/btrfs +sudo mount -t btrfs $@ /dev/sda3 /mnt/btrfs + +echo "Extract" +time sh -c "sudo tar -C /mnt/btrfs -xf /mnt/btrfs/$BENCHMARK_FILE && sync" + +# Remove the tarball, leaving only the extracted data +sudo rm /mnt/btrfs/$BENCHMARK_FILE +# Unmount and remount to avoid any caching +sudo umount /mnt/btrfs +sudo mount -t btrfs $@ /dev/sda3 /mnt/btrfs + +echo "Approximate extracted compression ratio" +printf "%d / %d\n" \ + $(df /mnt/btrfs --output=used -B 1 | tail -n 1) \ + $(sudo du /mnt/btrfs -b -d 0 | tr '\t' '\n' | head -n 1); + +echo "Read" +time sudo tar -c /mnt/btrfs 2> /dev/null | wc -c > /dev/null + +sudo rm -rf /mnt/btrfs/* +sudo umount /mnt/btrfs + +# Run for each of -o compress-force={none, lzo, zlib, zstd} 5 times and take the +# min time and ratio. + +# none +# copy: 0.981 s +# extract: 5.501 s +# read: 8.807 s +# tarball ratio: 0.97 +# extracted ratio: 0.78 + +# lzo +# copy: 1.631 s +# extract: 8.458 s +# read: 8.585 s +# tarball ratio: 2.06 +# extracted ratio: 1.38 + +# zlib +# copy: 7.750 s +# extract: 21.544 s +# read: 11.744 s +# tarball ratio : 3.40 +# extracted ratio: 1.86 + +# zstd 1 +# copy: 2.579 s +# extract: 11.479 s +# read: 9.389 s +# tarball ratio : 3.57 +# extracted ratio: 1.85 diff --git a/dependencies/zstd-1.5.0/contrib/linux-kernel/decompress_sources.h b/dependencies/zstd-1.5.0/contrib/linux-kernel/decompress_sources.h new file mode 100644 index 0000000..f35bef0 --- /dev/null +++ b/dependencies/zstd-1.5.0/contrib/linux-kernel/decompress_sources.h @@ -0,0 +1,28 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ +/* + * Copyright (c) Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + +/* + * This file includes every .c file needed for decompression. + * It is used by lib/decompress_unzstd.c to include the decompression + * source into the translation-unit, so it can be used for kernel + * decompression. + */ + +#include "common/debug.c" +#include "common/entropy_common.c" +#include "common/error_private.c" +#include "common/fse_decompress.c" +#include "common/zstd_common.c" +#include "decompress/huf_decompress.c" +#include "decompress/zstd_ddict.c" +#include "decompress/zstd_decompress.c" +#include "decompress/zstd_decompress_block.c" +#include "zstd_decompress_module.c" diff --git a/dependencies/zstd-1.5.0/contrib/linux-kernel/linux.mk b/dependencies/zstd-1.5.0/contrib/linux-kernel/linux.mk new file mode 100644 index 0000000..19485e3 --- /dev/null +++ b/dependencies/zstd-1.5.0/contrib/linux-kernel/linux.mk @@ -0,0 +1,46 @@ +# SPDX-License-Identifier: GPL-2.0-only +# ################################################################ +# Copyright (c) Facebook, Inc. +# All rights reserved. +# +# This source code is licensed under both the BSD-style license (found in the +# LICENSE file in the root directory of this source tree) and the GPLv2 (found +# in the COPYING file in the root directory of this source tree). +# You may select, at your option, one of the above-listed licenses. +# ################################################################ +obj-$(CONFIG_ZSTD_COMPRESS) += zstd_compress.o +obj-$(CONFIG_ZSTD_DECOMPRESS) += zstd_decompress.o + +ccflags-y += -O3 + +zstd_compress-y := \ + zstd_compress_module.o \ + common/debug.o \ + common/entropy_common.o \ + common/error_private.o \ + common/fse_decompress.o \ + common/zstd_common.o \ + compress/fse_compress.o \ + compress/hist.o \ + compress/huf_compress.o \ + compress/zstd_compress.o \ + compress/zstd_compress_literals.o \ + compress/zstd_compress_sequences.o \ + compress/zstd_compress_superblock.o \ + compress/zstd_double_fast.o \ + compress/zstd_fast.o \ + compress/zstd_lazy.o \ + compress/zstd_ldm.o \ + compress/zstd_opt.o \ + +zstd_decompress-y := \ + zstd_decompress_module.o \ + common/debug.o \ + common/entropy_common.o \ + common/error_private.o \ + common/fse_decompress.o \ + common/zstd_common.o \ + decompress/huf_decompress.o \ + decompress/zstd_ddict.o \ + decompress/zstd_decompress.o \ + decompress/zstd_decompress_block.o \ diff --git a/dependencies/zstd-1.5.0/contrib/linux-kernel/linux_zstd.h b/dependencies/zstd-1.5.0/contrib/linux-kernel/linux_zstd.h new file mode 100644 index 0000000..446ecab --- /dev/null +++ b/dependencies/zstd-1.5.0/contrib/linux-kernel/linux_zstd.h @@ -0,0 +1,447 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ +/* + * Copyright (c) Yann Collet, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of https://github.com/facebook/zstd) and + * the GPLv2 (found in the COPYING file in the root directory of + * https://github.com/facebook/zstd). You may select, at your option, one of the + * above-listed licenses. + */ + +#ifndef LINUX_ZSTD_H +#define LINUX_ZSTD_H + +/** + * This is a kernel-style API that wraps the upstream zstd API, which cannot be + * used directly because the symbols aren't exported. It exposes the minimal + * functionality which is currently required by users of zstd in the kernel. + * Expose extra functions from lib/zstd/zstd.h as needed. + */ + +/* ====== Dependency ====== */ +#include +#include +#include + +/* ====== Helper Functions ====== */ +/** + * zstd_compress_bound() - maximum compressed size in worst case scenario + * @src_size: The size of the data to compress. + * + * Return: The maximum compressed size in the worst case scenario. + */ +size_t zstd_compress_bound(size_t src_size); + +/** + * zstd_is_error() - tells if a size_t function result is an error code + * @code: The function result to check for error. + * + * Return: Non-zero iff the code is an error. + */ +unsigned int zstd_is_error(size_t code); + +/** + * enum zstd_error_code - zstd error codes + */ +typedef ZSTD_ErrorCode zstd_error_code; + +/** + * zstd_get_error_code() - translates an error function result to an error code + * @code: The function result for which zstd_is_error(code) is true. + * + * Return: A unique error code for this error. + */ +zstd_error_code zstd_get_error_code(size_t code); + +/** + * zstd_get_error_name() - translates an error function result to a string + * @code: The function result for which zstd_is_error(code) is true. + * + * Return: An error string corresponding to the error code. + */ +const char *zstd_get_error_name(size_t code); + +/** + * zstd_min_clevel() - minimum allowed compression level + * + * Return: The minimum allowed compression level. + */ +int zstd_min_clevel(void); + +/** + * zstd_max_clevel() - maximum allowed compression level + * + * Return: The maximum allowed compression level. + */ +int zstd_max_clevel(void); + +/* ====== Parameter Selection ====== */ + +/** + * enum zstd_strategy - zstd compression search strategy + * + * From faster to stronger. See zstd_lib.h. + */ +typedef ZSTD_strategy zstd_strategy; + +/** + * struct zstd_compression_parameters - zstd compression parameters + * @windowLog: Log of the largest match distance. Larger means more + * compression, and more memory needed during decompression. + * @chainLog: Fully searched segment. Larger means more compression, + * slower, and more memory (useless for fast). + * @hashLog: Dispatch table. Larger means more compression, + * slower, and more memory. + * @searchLog: Number of searches. Larger means more compression and slower. + * @searchLength: Match length searched. Larger means faster decompression, + * sometimes less compression. + * @targetLength: Acceptable match size for optimal parser (only). Larger means + * more compression, and slower. + * @strategy: The zstd compression strategy. + * + * See zstd_lib.h. + */ +typedef ZSTD_compressionParameters zstd_compression_parameters; + +/** + * struct zstd_frame_parameters - zstd frame parameters + * @contentSizeFlag: Controls whether content size will be present in the + * frame header (when known). + * @checksumFlag: Controls whether a 32-bit checksum is generated at the + * end of the frame for error detection. + * @noDictIDFlag: Controls whether dictID will be saved into the frame + * header when using dictionary compression. + * + * The default value is all fields set to 0. See zstd_lib.h. + */ +typedef ZSTD_frameParameters zstd_frame_parameters; + +/** + * struct zstd_parameters - zstd parameters + * @cParams: The compression parameters. + * @fParams: The frame parameters. + */ +typedef ZSTD_parameters zstd_parameters; + +/** + * zstd_get_params() - returns zstd_parameters for selected level + * @level: The compression level + * @estimated_src_size: The estimated source size to compress or 0 + * if unknown. + * + * Return: The selected zstd_parameters. + */ +zstd_parameters zstd_get_params(int level, + unsigned long long estimated_src_size); + +/* ====== Single-pass Compression ====== */ + +typedef ZSTD_CCtx zstd_cctx; + +/** + * zstd_cctx_workspace_bound() - max memory needed to initialize a zstd_cctx + * @parameters: The compression parameters to be used. + * + * If multiple compression parameters might be used, the caller must call + * zstd_cctx_workspace_bound() for each set of parameters and use the maximum + * size. + * + * Return: A lower bound on the size of the workspace that is passed to + * zstd_init_cctx(). + */ +size_t zstd_cctx_workspace_bound(const zstd_compression_parameters *parameters); + +/** + * zstd_init_cctx() - initialize a zstd compression context + * @workspace: The workspace to emplace the context into. It must outlive + * the returned context. + * @workspace_size: The size of workspace. Use zstd_cctx_workspace_bound() to + * determine how large the workspace must be. + * + * Return: A zstd compression context or NULL on error. + */ +zstd_cctx *zstd_init_cctx(void *workspace, size_t workspace_size); + +/** + * zstd_compress_cctx() - compress src into dst with the initialized parameters + * @cctx: The context. Must have been initialized with zstd_init_cctx(). + * @dst: The buffer to compress src into. + * @dst_capacity: The size of the destination buffer. May be any size, but + * ZSTD_compressBound(srcSize) is guaranteed to be large enough. + * @src: The data to compress. + * @src_size: The size of the data to compress. + * @parameters: The compression parameters to be used. + * + * Return: The compressed size or an error, which can be checked using + * zstd_is_error(). + */ +size_t zstd_compress_cctx(zstd_cctx *cctx, void *dst, size_t dst_capacity, + const void *src, size_t src_size, const zstd_parameters *parameters); + +/* ====== Single-pass Decompression ====== */ + +typedef ZSTD_DCtx zstd_dctx; + +/** + * zstd_dctx_workspace_bound() - max memory needed to initialize a zstd_dctx + * + * Return: A lower bound on the size of the workspace that is passed to + * zstd_init_dctx(). + */ +size_t zstd_dctx_workspace_bound(void); + +/** + * zstd_init_dctx() - initialize a zstd decompression context + * @workspace: The workspace to emplace the context into. It must outlive + * the returned context. + * @workspace_size: The size of workspace. Use zstd_dctx_workspace_bound() to + * determine how large the workspace must be. + * + * Return: A zstd decompression context or NULL on error. + */ +zstd_dctx *zstd_init_dctx(void *workspace, size_t workspace_size); + +/** + * zstd_decompress_dctx() - decompress zstd compressed src into dst + * @dctx: The decompression context. + * @dst: The buffer to decompress src into. + * @dst_capacity: The size of the destination buffer. Must be at least as large + * as the decompressed size. If the caller cannot upper bound the + * decompressed size, then it's better to use the streaming API. + * @src: The zstd compressed data to decompress. Multiple concatenated + * frames and skippable frames are allowed. + * @src_size: The exact size of the data to decompress. + * + * Return: The decompressed size or an error, which can be checked using + * zstd_is_error(). + */ +size_t zstd_decompress_dctx(zstd_dctx *dctx, void *dst, size_t dst_capacity, + const void *src, size_t src_size); + +/* ====== Streaming Buffers ====== */ + +/** + * struct zstd_in_buffer - input buffer for streaming + * @src: Start of the input buffer. + * @size: Size of the input buffer. + * @pos: Position where reading stopped. Will be updated. + * Necessarily 0 <= pos <= size. + * + * See zstd_lib.h. + */ +typedef ZSTD_inBuffer zstd_in_buffer; + +/** + * struct zstd_out_buffer - output buffer for streaming + * @dst: Start of the output buffer. + * @size: Size of the output buffer. + * @pos: Position where writing stopped. Will be updated. + * Necessarily 0 <= pos <= size. + * + * See zstd_lib.h. + */ +typedef ZSTD_outBuffer zstd_out_buffer; + +/* ====== Streaming Compression ====== */ + +typedef ZSTD_CStream zstd_cstream; + +/** + * zstd_cstream_workspace_bound() - memory needed to initialize a zstd_cstream + * @cparams: The compression parameters to be used for compression. + * + * Return: A lower bound on the size of the workspace that is passed to + * zstd_init_cstream(). + */ +size_t zstd_cstream_workspace_bound(const zstd_compression_parameters *cparams); + +/** + * zstd_init_cstream() - initialize a zstd streaming compression context + * @parameters The zstd parameters to use for compression. + * @pledged_src_size: If params.fParams.contentSizeFlag == 1 then the caller + * must pass the source size (zero means empty source). + * Otherwise, the caller may optionally pass the source + * size, or zero if unknown. + * @workspace: The workspace to emplace the context into. It must outlive + * the returned context. + * @workspace_size: The size of workspace. + * Use zstd_cstream_workspace_bound(params->cparams) to + * determine how large the workspace must be. + * + * Return: The zstd streaming compression context or NULL on error. + */ +zstd_cstream *zstd_init_cstream(const zstd_parameters *parameters, + unsigned long long pledged_src_size, void *workspace, size_t workspace_size); + +/** + * zstd_reset_cstream() - reset the context using parameters from creation + * @cstream: The zstd streaming compression context to reset. + * @pledged_src_size: Optionally the source size, or zero if unknown. + * + * Resets the context using the parameters from creation. Skips dictionary + * loading, since it can be reused. If `pledged_src_size` is non-zero the frame + * content size is always written into the frame header. + * + * Return: Zero or an error, which can be checked using + * zstd_is_error(). + */ +size_t zstd_reset_cstream(zstd_cstream *cstream, + unsigned long long pledged_src_size); + +/** + * zstd_compress_stream() - streaming compress some of input into output + * @cstream: The zstd streaming compression context. + * @output: Destination buffer. `output->pos` is updated to indicate how much + * compressed data was written. + * @input: Source buffer. `input->pos` is updated to indicate how much data + * was read. Note that it may not consume the entire input, in which + * case `input->pos < input->size`, and it's up to the caller to + * present remaining data again. + * + * The `input` and `output` buffers may be any size. Guaranteed to make some + * forward progress if `input` and `output` are not empty. + * + * Return: A hint for the number of bytes to use as the input for the next + * function call or an error, which can be checked using + * zstd_is_error(). + */ +size_t zstd_compress_stream(zstd_cstream *cstream, zstd_out_buffer *output, + zstd_in_buffer *input); + +/** + * zstd_flush_stream() - flush internal buffers into output + * @cstream: The zstd streaming compression context. + * @output: Destination buffer. `output->pos` is updated to indicate how much + * compressed data was written. + * + * zstd_flush_stream() must be called until it returns 0, meaning all the data + * has been flushed. Since zstd_flush_stream() causes a block to be ended, + * calling it too often will degrade the compression ratio. + * + * Return: The number of bytes still present within internal buffers or an + * error, which can be checked using zstd_is_error(). + */ +size_t zstd_flush_stream(zstd_cstream *cstream, zstd_out_buffer *output); + +/** + * zstd_end_stream() - flush internal buffers into output and end the frame + * @cstream: The zstd streaming compression context. + * @output: Destination buffer. `output->pos` is updated to indicate how much + * compressed data was written. + * + * zstd_end_stream() must be called until it returns 0, meaning all the data has + * been flushed and the frame epilogue has been written. + * + * Return: The number of bytes still present within internal buffers or an + * error, which can be checked using zstd_is_error(). + */ +size_t zstd_end_stream(zstd_cstream *cstream, zstd_out_buffer *output); + +/* ====== Streaming Decompression ====== */ + +typedef ZSTD_DStream zstd_dstream; + +/** + * zstd_dstream_workspace_bound() - memory needed to initialize a zstd_dstream + * @max_window_size: The maximum window size allowed for compressed frames. + * + * Return: A lower bound on the size of the workspace that is passed + * to zstd_init_dstream(). + */ +size_t zstd_dstream_workspace_bound(size_t max_window_size); + +/** + * zstd_init_dstream() - initialize a zstd streaming decompression context + * @max_window_size: The maximum window size allowed for compressed frames. + * @workspace: The workspace to emplace the context into. It must outlive + * the returned context. + * @workspaceSize: The size of workspace. + * Use zstd_dstream_workspace_bound(max_window_size) to + * determine how large the workspace must be. + * + * Return: The zstd streaming decompression context. + */ +zstd_dstream *zstd_init_dstream(size_t max_window_size, void *workspace, + size_t workspace_size); + +/** + * zstd_reset_dstream() - reset the context using parameters from creation + * @dstream: The zstd streaming decompression context to reset. + * + * Resets the context using the parameters from creation. Skips dictionary + * loading, since it can be reused. + * + * Return: Zero or an error, which can be checked using zstd_is_error(). + */ +size_t zstd_reset_dstream(zstd_dstream *dstream); + +/** + * zstd_decompress_stream() - streaming decompress some of input into output + * @dstream: The zstd streaming decompression context. + * @output: Destination buffer. `output.pos` is updated to indicate how much + * decompressed data was written. + * @input: Source buffer. `input.pos` is updated to indicate how much data was + * read. Note that it may not consume the entire input, in which case + * `input.pos < input.size`, and it's up to the caller to present + * remaining data again. + * + * The `input` and `output` buffers may be any size. Guaranteed to make some + * forward progress if `input` and `output` are not empty. + * zstd_decompress_stream() will not consume the last byte of the frame until + * the entire frame is flushed. + * + * Return: Returns 0 iff a frame is completely decoded and fully flushed. + * Otherwise returns a hint for the number of bytes to use as the + * input for the next function call or an error, which can be checked + * using zstd_is_error(). The size hint will never load more than the + * frame. + */ +size_t zstd_decompress_stream(zstd_dstream *dstream, zstd_out_buffer *output, + zstd_in_buffer *input); + +/* ====== Frame Inspection Functions ====== */ + +/** + * zstd_find_frame_compressed_size() - returns the size of a compressed frame + * @src: Source buffer. It should point to the start of a zstd encoded + * frame or a skippable frame. + * @src_size: The size of the source buffer. It must be at least as large as the + * size of the frame. + * + * Return: The compressed size of the frame pointed to by `src` or an error, + * which can be check with zstd_is_error(). + * Suitable to pass to ZSTD_decompress() or similar functions. + */ +size_t zstd_find_frame_compressed_size(const void *src, size_t src_size); + +/** + * struct zstd_frame_params - zstd frame parameters stored in the frame header + * @frameContentSize: The frame content size, or ZSTD_CONTENTSIZE_UNKNOWN if not + * present. + * @windowSize: The window size, or 0 if the frame is a skippable frame. + * @blockSizeMax: The maximum block size. + * @frameType: The frame type (zstd or skippable) + * @headerSize: The size of the frame header. + * @dictID: The dictionary id, or 0 if not present. + * @checksumFlag: Whether a checksum was used. + * + * See zstd_lib.h. + */ +typedef ZSTD_frameHeader zstd_frame_header; + +/** + * zstd_get_frame_header() - extracts parameters from a zstd or skippable frame + * @params: On success the frame parameters are written here. + * @src: The source buffer. It must point to a zstd or skippable frame. + * @src_size: The size of the source buffer. + * + * Return: 0 on success. If more data is required it returns how many bytes + * must be provided to make forward progress. Otherwise it returns + * an error, which can be checked using zstd_is_error(). + */ +size_t zstd_get_frame_header(zstd_frame_header *params, const void *src, + size_t src_size); + +#endif /* LINUX_ZSTD_H */ diff --git a/dependencies/zstd-1.5.0/contrib/linux-kernel/mem.h b/dependencies/zstd-1.5.0/contrib/linux-kernel/mem.h new file mode 100644 index 0000000..4b5db57 --- /dev/null +++ b/dependencies/zstd-1.5.0/contrib/linux-kernel/mem.h @@ -0,0 +1,259 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ +/* + * Copyright (c) Yann Collet, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + +#ifndef MEM_H_MODULE +#define MEM_H_MODULE + +/*-**************************************** +* Dependencies +******************************************/ +#include /* get_unaligned, put_unaligned* */ +#include /* inline */ +#include /* swab32, swab64 */ +#include /* size_t, ptrdiff_t */ +#include "debug.h" /* DEBUG_STATIC_ASSERT */ + +/*-**************************************** +* Compiler specifics +******************************************/ +#define MEM_STATIC static inline + +/*-************************************************************** +* Basic Types +*****************************************************************/ +typedef uint8_t BYTE; +typedef uint16_t U16; +typedef int16_t S16; +typedef uint32_t U32; +typedef int32_t S32; +typedef uint64_t U64; +typedef int64_t S64; + +/*-************************************************************** +* Memory I/O API +*****************************************************************/ +/*=== Static platform detection ===*/ +MEM_STATIC unsigned MEM_32bits(void); +MEM_STATIC unsigned MEM_64bits(void); +MEM_STATIC unsigned MEM_isLittleEndian(void); + +/*=== Native unaligned read/write ===*/ +MEM_STATIC U16 MEM_read16(const void* memPtr); +MEM_STATIC U32 MEM_read32(const void* memPtr); +MEM_STATIC U64 MEM_read64(const void* memPtr); +MEM_STATIC size_t MEM_readST(const void* memPtr); + +MEM_STATIC void MEM_write16(void* memPtr, U16 value); +MEM_STATIC void MEM_write32(void* memPtr, U32 value); +MEM_STATIC void MEM_write64(void* memPtr, U64 value); + +/*=== Little endian unaligned read/write ===*/ +MEM_STATIC U16 MEM_readLE16(const void* memPtr); +MEM_STATIC U32 MEM_readLE24(const void* memPtr); +MEM_STATIC U32 MEM_readLE32(const void* memPtr); +MEM_STATIC U64 MEM_readLE64(const void* memPtr); +MEM_STATIC size_t MEM_readLEST(const void* memPtr); + +MEM_STATIC void MEM_writeLE16(void* memPtr, U16 val); +MEM_STATIC void MEM_writeLE24(void* memPtr, U32 val); +MEM_STATIC void MEM_writeLE32(void* memPtr, U32 val32); +MEM_STATIC void MEM_writeLE64(void* memPtr, U64 val64); +MEM_STATIC void MEM_writeLEST(void* memPtr, size_t val); + +/*=== Big endian unaligned read/write ===*/ +MEM_STATIC U32 MEM_readBE32(const void* memPtr); +MEM_STATIC U64 MEM_readBE64(const void* memPtr); +MEM_STATIC size_t MEM_readBEST(const void* memPtr); + +MEM_STATIC void MEM_writeBE32(void* memPtr, U32 val32); +MEM_STATIC void MEM_writeBE64(void* memPtr, U64 val64); +MEM_STATIC void MEM_writeBEST(void* memPtr, size_t val); + +/*=== Byteswap ===*/ +MEM_STATIC U32 MEM_swap32(U32 in); +MEM_STATIC U64 MEM_swap64(U64 in); +MEM_STATIC size_t MEM_swapST(size_t in); + +/*-************************************************************** +* Memory I/O Implementation +*****************************************************************/ +MEM_STATIC unsigned MEM_32bits(void) +{ + return sizeof(size_t) == 4; +} + +MEM_STATIC unsigned MEM_64bits(void) +{ + return sizeof(size_t) == 8; +} + +#if defined(__LITTLE_ENDIAN) +#define MEM_LITTLE_ENDIAN 1 +#else +#define MEM_LITTLE_ENDIAN 0 +#endif + +MEM_STATIC unsigned MEM_isLittleEndian(void) +{ + return MEM_LITTLE_ENDIAN; +} + +MEM_STATIC U16 MEM_read16(const void *memPtr) +{ + return get_unaligned((const U16 *)memPtr); +} + +MEM_STATIC U32 MEM_read32(const void *memPtr) +{ + return get_unaligned((const U32 *)memPtr); +} + +MEM_STATIC U64 MEM_read64(const void *memPtr) +{ + return get_unaligned((const U64 *)memPtr); +} + +MEM_STATIC size_t MEM_readST(const void *memPtr) +{ + return get_unaligned((const size_t *)memPtr); +} + +MEM_STATIC void MEM_write16(void *memPtr, U16 value) +{ + put_unaligned(value, (U16 *)memPtr); +} + +MEM_STATIC void MEM_write32(void *memPtr, U32 value) +{ + put_unaligned(value, (U32 *)memPtr); +} + +MEM_STATIC void MEM_write64(void *memPtr, U64 value) +{ + put_unaligned(value, (U64 *)memPtr); +} + +/*=== Little endian r/w ===*/ + +MEM_STATIC U16 MEM_readLE16(const void *memPtr) +{ + return get_unaligned_le16(memPtr); +} + +MEM_STATIC void MEM_writeLE16(void *memPtr, U16 val) +{ + put_unaligned_le16(val, memPtr); +} + +MEM_STATIC U32 MEM_readLE24(const void *memPtr) +{ + return MEM_readLE16(memPtr) + (((const BYTE *)memPtr)[2] << 16); +} + +MEM_STATIC void MEM_writeLE24(void *memPtr, U32 val) +{ + MEM_writeLE16(memPtr, (U16)val); + ((BYTE *)memPtr)[2] = (BYTE)(val >> 16); +} + +MEM_STATIC U32 MEM_readLE32(const void *memPtr) +{ + return get_unaligned_le32(memPtr); +} + +MEM_STATIC void MEM_writeLE32(void *memPtr, U32 val32) +{ + put_unaligned_le32(val32, memPtr); +} + +MEM_STATIC U64 MEM_readLE64(const void *memPtr) +{ + return get_unaligned_le64(memPtr); +} + +MEM_STATIC void MEM_writeLE64(void *memPtr, U64 val64) +{ + put_unaligned_le64(val64, memPtr); +} + +MEM_STATIC size_t MEM_readLEST(const void *memPtr) +{ + if (MEM_32bits()) + return (size_t)MEM_readLE32(memPtr); + else + return (size_t)MEM_readLE64(memPtr); +} + +MEM_STATIC void MEM_writeLEST(void *memPtr, size_t val) +{ + if (MEM_32bits()) + MEM_writeLE32(memPtr, (U32)val); + else + MEM_writeLE64(memPtr, (U64)val); +} + +/*=== Big endian r/w ===*/ + +MEM_STATIC U32 MEM_readBE32(const void *memPtr) +{ + return get_unaligned_be32(memPtr); +} + +MEM_STATIC void MEM_writeBE32(void *memPtr, U32 val32) +{ + put_unaligned_be32(val32, memPtr); +} + +MEM_STATIC U64 MEM_readBE64(const void *memPtr) +{ + return get_unaligned_be64(memPtr); +} + +MEM_STATIC void MEM_writeBE64(void *memPtr, U64 val64) +{ + put_unaligned_be64(val64, memPtr); +} + +MEM_STATIC size_t MEM_readBEST(const void *memPtr) +{ + if (MEM_32bits()) + return (size_t)MEM_readBE32(memPtr); + else + return (size_t)MEM_readBE64(memPtr); +} + +MEM_STATIC void MEM_writeBEST(void *memPtr, size_t val) +{ + if (MEM_32bits()) + MEM_writeBE32(memPtr, (U32)val); + else + MEM_writeBE64(memPtr, (U64)val); +} + +MEM_STATIC U32 MEM_swap32(U32 in) +{ + return swab32(in); +} + +MEM_STATIC U64 MEM_swap64(U64 in) +{ + return swab64(in); +} + +MEM_STATIC size_t MEM_swapST(size_t in) +{ + if (MEM_32bits()) + return (size_t)MEM_swap32((U32)in); + else + return (size_t)MEM_swap64((U64)in); +} + +#endif /* MEM_H_MODULE */ diff --git a/dependencies/zstd-1.5.0/contrib/linux-kernel/squashfs-benchmark.sh b/dependencies/zstd-1.5.0/contrib/linux-kernel/squashfs-benchmark.sh new file mode 100755 index 0000000..02dfd73 --- /dev/null +++ b/dependencies/zstd-1.5.0/contrib/linux-kernel/squashfs-benchmark.sh @@ -0,0 +1,39 @@ +# !/bin/sh +set -e + +# Benchmarks run on a Ubuntu 14.04 VM with 2 cores and 4 GiB of RAM. +# The VM is running on a Macbook Pro with a 3.1 GHz Intel Core i7 processor and +# 16 GB of RAM and an SSD. + +# $BENCHMARK_DIR is generated with the following commands, from the Ubuntu image +# ubuntu-16.10-desktop-amd64.iso. +# > mkdir mnt +# > sudo mount -o loop ubuntu-16.10-desktop-amd64.iso mnt +# > cp mnt/casper/filesystem.squashfs . +# > sudo unsquashfs filesystem.squashfs + +# $HOME is on a ext4 filesystem +BENCHMARK_DIR="$HOME/squashfs-root/" +BENCHMARK_FS="$HOME/filesystem.squashfs" + +# Normalize the environment +sudo rm -f $BENCHMARK_FS 2> /dev/null > /dev/null || true +sudo umount /mnt/squashfs 2> /dev/null > /dev/null || true + +# Run the benchmark +echo "Compression" +echo "sudo mksquashfs $BENCHMARK_DIR $BENCHMARK_FS $@" +time sudo mksquashfs $BENCHMARK_DIR $BENCHMARK_FS $@ 2> /dev/null > /dev/null + +echo "Approximate compression ratio" +printf "%d / %d\n" \ + $(sudo du -sx --block-size=1 $BENCHMARK_DIR | cut -f1) \ + $(sudo du -sx --block-size=1 $BENCHMARK_FS | cut -f1); + +# Mount the filesystem +sudo mount -t squashfs $BENCHMARK_FS /mnt/squashfs + +echo "Decompression" +time sudo tar -c /mnt/squashfs 2> /dev/null | wc -c > /dev/null + +sudo umount /mnt/squashfs diff --git a/dependencies/zstd-1.5.0/contrib/linux-kernel/test/Makefile b/dependencies/zstd-1.5.0/contrib/linux-kernel/test/Makefile new file mode 100644 index 0000000..2908839 --- /dev/null +++ b/dependencies/zstd-1.5.0/contrib/linux-kernel/test/Makefile @@ -0,0 +1,44 @@ +# ################################################################ +# Copyright (c) Facebook, Inc. +# All rights reserved. +# +# This source code is licensed under both the BSD-style license (found in the +# LICENSE file in the root directory of this source tree) and the GPLv2 (found +# in the COPYING file in the root directory of this source tree). +# You may select, at your option, one of the above-listed licenses. +# ################################################################ + +LINUX := ../linux +LINUX_ZSTDLIB := $(LINUX)/lib/zstd + +CPPFLAGS += -I$(LINUX)/include -I$(LINUX_ZSTDLIB) -Iinclude -DNDEBUG -Wno-deprecated-declarations +# Don't poison the workspace, it currently doesn't work with static allocation and workspace reuse +CPPFLAGS += -DZSTD_ASAN_DONT_POISON_WORKSPACE + +LINUX_ZSTD_MODULE := $(wildcard $(LINUX_ZSTDLIB)/*.c) +LINUX_ZSTD_COMMON := $(wildcard $(LINUX_ZSTDLIB)/common/*.c) +LINUX_ZSTD_COMPRESS := $(wildcard $(LINUX_ZSTDLIB)/compress/*.c) +LINUX_ZSTD_DECOMPRESS := $(wildcard $(LINUX_ZSTDLIB)/decompress/*.c) +LINUX_ZSTD_FILES := $(LINUX_ZSTD_MODULE) $(LINUX_ZSTD_COMMON) $(LINUX_ZSTD_COMPRESS) $(LINUX_ZSTD_DECOMPRESS) +LINUX_ZSTD_OBJECTS := $(LINUX_ZSTD_FILES:.c=.o) + +liblinuxzstd.a: $(LINUX_ZSTD_OBJECTS) + $(AR) $(ARFLAGS) $@ $^ + +test: test.c liblinuxzstd.a + $(CC) $(LDFLAGS) $(CPPFLAGS) $(CFLAGS) $^ -o $@ + +static_test: static_test.c + $(CC) $(LDFLAGS) $(CPPFLAGS) $(CFLAGS) $^ -o $@ + +run-test: test static_test + ./macro-test.sh + ./test + ./static_test + +.PHONY: +clean: + $(RM) -f $(LINUX_ZSTDLIB)/*.o + $(RM) -f $(LINUX_ZSTDLIB)/**/*.o + $(RM) -f *.o *.a + $(RM) -f test diff --git a/dependencies/zstd-1.5.0/contrib/linux-kernel/test/include/asm/unaligned.h b/dependencies/zstd-1.5.0/contrib/linux-kernel/test/include/asm/unaligned.h new file mode 100644 index 0000000..02c2d74 --- /dev/null +++ b/dependencies/zstd-1.5.0/contrib/linux-kernel/test/include/asm/unaligned.h @@ -0,0 +1,186 @@ +#ifndef ASM_UNALIGNED_H +#define ASM_UNALIGNED_H + +#include +#include + +#ifndef __LITTLE_ENDIAN +# if (__BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__) || defined(__LITTLE_ENDIAN__) +# define __LITTLE_ENDIAN 1 +# endif +#endif + +#ifdef __LITTLE_ENDIAN +# define _IS_LITTLE_ENDIAN 1 +#else +# define _IS_LITTLE_ENDIAN 0 +#endif + +static unsigned _isLittleEndian(void) +{ + const union { uint32_t u; uint8_t c[4]; } one = { 1 }; + assert(_IS_LITTLE_ENDIAN == one.c[0]); + return _IS_LITTLE_ENDIAN; +} + +static uint16_t _swap16(uint16_t in) +{ + return ((in & 0xF) << 8) + ((in & 0xF0) >> 8); +} + +static uint32_t _swap32(uint32_t in) +{ + return __builtin_bswap32(in); +} + +static uint64_t _swap64(uint64_t in) +{ + return __builtin_bswap64(in); +} + +/* Little endian */ +static uint16_t get_unaligned_le16(const void* memPtr) +{ + uint16_t val; + __builtin_memcpy(&val, memPtr, sizeof(val)); + if (!_isLittleEndian()) _swap16(val); + return val; +} + +static uint32_t get_unaligned_le32(const void* memPtr) +{ + uint32_t val; + __builtin_memcpy(&val, memPtr, sizeof(val)); + if (!_isLittleEndian()) _swap32(val); + return val; +} + +static uint64_t get_unaligned_le64(const void* memPtr) +{ + uint64_t val; + __builtin_memcpy(&val, memPtr, sizeof(val)); + if (!_isLittleEndian()) _swap64(val); + return val; +} + +static void put_unaligned_le16(uint16_t value, void* memPtr) +{ + if (!_isLittleEndian()) value = _swap16(value); + __builtin_memcpy(memPtr, &value, sizeof(value)); +} + +static void put_unaligned_le32(uint32_t value, void* memPtr) +{ + if (!_isLittleEndian()) value = _swap32(value); + __builtin_memcpy(memPtr, &value, sizeof(value)); +} + +static void put_unaligned_le64(uint64_t value, void* memPtr) +{ + if (!_isLittleEndian()) value = _swap64(value); + __builtin_memcpy(memPtr, &value, sizeof(value)); +} + +/* big endian */ +static uint32_t get_unaligned_be32(const void* memPtr) +{ + uint32_t val; + __builtin_memcpy(&val, memPtr, sizeof(val)); + if (_isLittleEndian()) _swap32(val); + return val; +} + +static uint64_t get_unaligned_be64(const void* memPtr) +{ + uint64_t val; + __builtin_memcpy(&val, memPtr, sizeof(val)); + if (_isLittleEndian()) _swap64(val); + return val; +} + +static void put_unaligned_be32(uint32_t value, void* memPtr) +{ + if (_isLittleEndian()) value = _swap32(value); + __builtin_memcpy(memPtr, &value, sizeof(value)); +} + +static void put_unaligned_be64(uint64_t value, void* memPtr) +{ + if (_isLittleEndian()) value = _swap64(value); + __builtin_memcpy(memPtr, &value, sizeof(value)); +} + +/* generic */ +extern void __bad_unaligned_access_size(void); + +#define __get_unaligned_le(ptr) ((typeof(*(ptr)))({ \ + __builtin_choose_expr(sizeof(*(ptr)) == 1, *(ptr), \ + __builtin_choose_expr(sizeof(*(ptr)) == 2, get_unaligned_le16((ptr)), \ + __builtin_choose_expr(sizeof(*(ptr)) == 4, get_unaligned_le32((ptr)), \ + __builtin_choose_expr(sizeof(*(ptr)) == 8, get_unaligned_le64((ptr)), \ + __bad_unaligned_access_size())))); \ + })) + +#define __get_unaligned_be(ptr) ((typeof(*(ptr)))({ \ + __builtin_choose_expr(sizeof(*(ptr)) == 1, *(ptr), \ + __builtin_choose_expr(sizeof(*(ptr)) == 2, get_unaligned_be16((ptr)), \ + __builtin_choose_expr(sizeof(*(ptr)) == 4, get_unaligned_be32((ptr)), \ + __builtin_choose_expr(sizeof(*(ptr)) == 8, get_unaligned_be64((ptr)), \ + __bad_unaligned_access_size())))); \ + })) + +#define __put_unaligned_le(val, ptr) \ + ({ \ + void *__gu_p = (ptr); \ + switch (sizeof(*(ptr))) { \ + case 1: \ + *(uint8_t *)__gu_p = (uint8_t)(val); \ + break; \ + case 2: \ + put_unaligned_le16((uint16_t)(val), __gu_p); \ + break; \ + case 4: \ + put_unaligned_le32((uint32_t)(val), __gu_p); \ + break; \ + case 8: \ + put_unaligned_le64((uint64_t)(val), __gu_p); \ + break; \ + default: \ + __bad_unaligned_access_size(); \ + break; \ + } \ + (void)0; \ + }) + +#define __put_unaligned_be(val, ptr) \ + ({ \ + void *__gu_p = (ptr); \ + switch (sizeof(*(ptr))) { \ + case 1: \ + *(uint8_t *)__gu_p = (uint8_t)(val); \ + break; \ + case 2: \ + put_unaligned_be16((uint16_t)(val), __gu_p); \ + break; \ + case 4: \ + put_unaligned_be32((uint32_t)(val), __gu_p); \ + break; \ + case 8: \ + put_unaligned_be64((uint64_t)(val), __gu_p); \ + break; \ + default: \ + __bad_unaligned_access_size(); \ + break; \ + } \ + (void)0; \ + }) + +#if _IS_LITTLE_ENDIAN +# define get_unaligned __get_unaligned_le +# define put_unaligned __put_unaligned_le +#else +# define get_unaligned __get_unaligned_be +# define put_unaligned __put_unaligned_be +#endif + +#endif // ASM_UNALIGNED_H diff --git a/dependencies/zstd-1.5.0/contrib/linux-kernel/test/include/linux/compiler.h b/dependencies/zstd-1.5.0/contrib/linux-kernel/test/include/linux/compiler.h new file mode 100644 index 0000000..ea3422e --- /dev/null +++ b/dependencies/zstd-1.5.0/contrib/linux-kernel/test/include/linux/compiler.h @@ -0,0 +1,21 @@ +/* + * Copyright (c) 2016-2021, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ +#ifndef LINUX_COMPILER_H +#define LINUX_COMPILER_H + +#ifndef inline +#define inline __inline __attribute__((unused)) +#endif + +#ifndef noinline +#define noinline __attribute__((noinline)) +#endif + +#endif diff --git a/dependencies/zstd-1.5.0/contrib/linux-kernel/test/include/linux/errno.h b/dependencies/zstd-1.5.0/contrib/linux-kernel/test/include/linux/errno.h new file mode 100644 index 0000000..b247522 --- /dev/null +++ b/dependencies/zstd-1.5.0/contrib/linux-kernel/test/include/linux/errno.h @@ -0,0 +1,15 @@ +/* + * Copyright (c) 2016-2021, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ +#ifndef LINUX_ERRNO_H +#define LINUX_ERRNO_H + +#define EINVAL 22 + +#endif diff --git a/dependencies/zstd-1.5.0/contrib/linux-kernel/test/include/linux/kernel.h b/dependencies/zstd-1.5.0/contrib/linux-kernel/test/include/linux/kernel.h new file mode 100644 index 0000000..1f702ab --- /dev/null +++ b/dependencies/zstd-1.5.0/contrib/linux-kernel/test/include/linux/kernel.h @@ -0,0 +1,19 @@ +/* + * Copyright (c) 2016-2021, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ +#ifndef LINUX_KERNEL_H +#define LINUX_KERNEL_H + +#define WARN_ON(x) + +#define PTR_ALIGN(p, a) (typeof(p))ALIGN((unsigned long long)(p), (a)) +#define ALIGN(x, a) ALIGN_MASK((x), (a) - 1) +#define ALIGN_MASK(x, mask) (((x) + (mask)) & ~(mask)) + +#endif diff --git a/dependencies/zstd-1.5.0/contrib/linux-kernel/test/include/linux/limits.h b/dependencies/zstd-1.5.0/contrib/linux-kernel/test/include/linux/limits.h new file mode 100644 index 0000000..db9c099 --- /dev/null +++ b/dependencies/zstd-1.5.0/contrib/linux-kernel/test/include/linux/limits.h @@ -0,0 +1,15 @@ +/* + * Copyright (c) 2016-2021, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ +#ifndef LINUX_LIMITS_H +#define LINUX_LIMITS_H + +#include + +#endif diff --git a/dependencies/zstd-1.5.0/contrib/linux-kernel/test/include/linux/math64.h b/dependencies/zstd-1.5.0/contrib/linux-kernel/test/include/linux/math64.h new file mode 100644 index 0000000..8eefa2d --- /dev/null +++ b/dependencies/zstd-1.5.0/contrib/linux-kernel/test/include/linux/math64.h @@ -0,0 +1,15 @@ +/* + * Copyright (c) 2016-2021, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ +#ifndef LINUX_MATH64_H +#define LINUX_MATH64_H + +#define div_u64(dividend, divisor) ((dividend) / (divisor)) + +#endif diff --git a/dependencies/zstd-1.5.0/contrib/linux-kernel/test/include/linux/module.h b/dependencies/zstd-1.5.0/contrib/linux-kernel/test/include/linux/module.h new file mode 100644 index 0000000..be6d20d --- /dev/null +++ b/dependencies/zstd-1.5.0/contrib/linux-kernel/test/include/linux/module.h @@ -0,0 +1,18 @@ +/* + * Copyright (c) 2016-2021, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ +#ifndef LINUX_MODULE_H +#define LINUX_MODULE_H + +#define EXPORT_SYMBOL(symbol) \ + void* __##symbol = symbol +#define MODULE_LICENSE(license) +#define MODULE_DESCRIPTION(description) + +#endif diff --git a/dependencies/zstd-1.5.0/contrib/linux-kernel/test/include/linux/printk.h b/dependencies/zstd-1.5.0/contrib/linux-kernel/test/include/linux/printk.h new file mode 100644 index 0000000..eab08e0 --- /dev/null +++ b/dependencies/zstd-1.5.0/contrib/linux-kernel/test/include/linux/printk.h @@ -0,0 +1,15 @@ +/* + * Copyright (c) 2016-2021, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ +#ifndef LINUX_PRINTK_H +#define LINUX_PRINTK_H + +#define pr_debug(...) + +#endif diff --git a/dependencies/zstd-1.5.0/contrib/linux-kernel/test/include/linux/stddef.h b/dependencies/zstd-1.5.0/contrib/linux-kernel/test/include/linux/stddef.h new file mode 100644 index 0000000..8538eb3 --- /dev/null +++ b/dependencies/zstd-1.5.0/contrib/linux-kernel/test/include/linux/stddef.h @@ -0,0 +1,15 @@ +/* + * Copyright (c) 2016-2021, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ +#ifndef LINUX_STDDEF_H +#define LINUX_STDDEF_H + +#include + +#endif diff --git a/dependencies/zstd-1.5.0/contrib/linux-kernel/test/include/linux/swab.h b/dependencies/zstd-1.5.0/contrib/linux-kernel/test/include/linux/swab.h new file mode 100644 index 0000000..783046b --- /dev/null +++ b/dependencies/zstd-1.5.0/contrib/linux-kernel/test/include/linux/swab.h @@ -0,0 +1,16 @@ +/* + * Copyright (c) 2016-2021, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ +#ifndef LINUX_SWAB_H +#define LINUX_SWAB_H + +#define swab32(x) __builtin_bswap32((x)) +#define swab64(x) __builtin_bswap64((x)) + +#endif diff --git a/dependencies/zstd-1.5.0/contrib/linux-kernel/test/include/linux/types.h b/dependencies/zstd-1.5.0/contrib/linux-kernel/test/include/linux/types.h new file mode 100644 index 0000000..459a457 --- /dev/null +++ b/dependencies/zstd-1.5.0/contrib/linux-kernel/test/include/linux/types.h @@ -0,0 +1,16 @@ +/* + * Copyright (c) 2016-2021, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ +#ifndef LINUX_TYPES_H +#define LINUX_TYPES_H + +#include +#include + +#endif diff --git a/dependencies/zstd-1.5.0/contrib/linux-kernel/test/include/linux/xxhash.h b/dependencies/zstd-1.5.0/contrib/linux-kernel/test/include/linux/xxhash.h new file mode 100644 index 0000000..0a43bb2 --- /dev/null +++ b/dependencies/zstd-1.5.0/contrib/linux-kernel/test/include/linux/xxhash.h @@ -0,0 +1,746 @@ +/* + * xxHash - Extremely Fast Hash algorithm + * Copyright (C) 2012-2016, Yann Collet. + * + * BSD 2-Clause License (http://www.opensource.org/licenses/bsd-license.php) + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * This program is free software; you can redistribute it and/or modify it under + * the terms of the GNU General Public License version 2 as published by the + * Free Software Foundation. This program is dual-licensed; you may select + * either version 2 of the GNU General Public License ("GPL") or BSD license + * ("BSD"). + * + * You can contact the author at: + * - xxHash homepage: https://cyan4973.github.io/xxHash/ + * - xxHash source repository: https://github.com/Cyan4973/xxHash + */ + +/* + * Notice extracted from xxHash homepage: + * + * xxHash is an extremely fast Hash algorithm, running at RAM speed limits. + * It also successfully passes all tests from the SMHasher suite. + * + * Comparison (single thread, Windows Seven 32 bits, using SMHasher on a Core 2 + * Duo @3GHz) + * + * Name Speed Q.Score Author + * xxHash 5.4 GB/s 10 + * CrapWow 3.2 GB/s 2 Andrew + * MumurHash 3a 2.7 GB/s 10 Austin Appleby + * SpookyHash 2.0 GB/s 10 Bob Jenkins + * SBox 1.4 GB/s 9 Bret Mulvey + * Lookup3 1.2 GB/s 9 Bob Jenkins + * SuperFastHash 1.2 GB/s 1 Paul Hsieh + * CityHash64 1.05 GB/s 10 Pike & Alakuijala + * FNV 0.55 GB/s 5 Fowler, Noll, Vo + * CRC32 0.43 GB/s 9 + * MD5-32 0.33 GB/s 10 Ronald L. Rivest + * SHA1-32 0.28 GB/s 10 + * + * Q.Score is a measure of quality of the hash function. + * It depends on successfully passing SMHasher test set. + * 10 is a perfect score. + * + * A 64-bits version, named xxh64 offers much better speed, + * but for 64-bits applications only. + * Name Speed on 64 bits Speed on 32 bits + * xxh64 13.8 GB/s 1.9 GB/s + * xxh32 6.8 GB/s 6.0 GB/s + */ + +#ifndef XXHASH_H +#define XXHASH_H + +#include + +#define XXH_API static inline __attribute__((unused)) +/*-**************************** + * Simple Hash Functions + *****************************/ + +/** + * xxh32() - calculate the 32-bit hash of the input with a given seed. + * + * @input: The data to hash. + * @length: The length of the data to hash. + * @seed: The seed can be used to alter the result predictably. + * + * Speed on Core 2 Duo @ 3 GHz (single thread, SMHasher benchmark) : 5.4 GB/s + * + * Return: The 32-bit hash of the data. + */ +XXH_API uint32_t xxh32(const void *input, size_t length, uint32_t seed); + +/** + * xxh64() - calculate the 64-bit hash of the input with a given seed. + * + * @input: The data to hash. + * @length: The length of the data to hash. + * @seed: The seed can be used to alter the result predictably. + * + * This function runs 2x faster on 64-bit systems, but slower on 32-bit systems. + * + * Return: The 64-bit hash of the data. + */ +XXH_API uint64_t xxh64(const void *input, size_t length, uint64_t seed); + +/** + * xxhash() - calculate wordsize hash of the input with a given seed + * @input: The data to hash. + * @length: The length of the data to hash. + * @seed: The seed can be used to alter the result predictably. + * + * If the hash does not need to be comparable between machines with + * different word sizes, this function will call whichever of xxh32() + * or xxh64() is faster. + * + * Return: wordsize hash of the data. + */ + +static inline unsigned long xxhash(const void *input, size_t length, + uint64_t seed) +{ +#if BITS_PER_LONG == 64 + return xxh64(input, length, seed); +#else + return xxh32(input, length, seed); +#endif +} + +/*-**************************** + * Streaming Hash Functions + *****************************/ + +/* + * These definitions are only meant to allow allocation of XXH state + * statically, on stack, or in a struct for example. + * Do not use members directly. + */ + +/** + * struct xxh32_state - private xxh32 state, do not use members directly + */ +struct xxh32_state { + uint32_t total_len_32; + uint32_t large_len; + uint32_t v1; + uint32_t v2; + uint32_t v3; + uint32_t v4; + uint32_t mem32[4]; + uint32_t memsize; +}; + +/** + * struct xxh32_state - private xxh64 state, do not use members directly + */ +struct xxh64_state { + uint64_t total_len; + uint64_t v1; + uint64_t v2; + uint64_t v3; + uint64_t v4; + uint64_t mem64[4]; + uint32_t memsize; +}; + +/** + * xxh32_reset() - reset the xxh32 state to start a new hashing operation + * + * @state: The xxh32 state to reset. + * @seed: Initialize the hash state with this seed. + * + * Call this function on any xxh32_state to prepare for a new hashing operation. + */ +XXH_API void xxh32_reset(struct xxh32_state *state, uint32_t seed); + +/** + * xxh32_update() - hash the data given and update the xxh32 state + * + * @state: The xxh32 state to update. + * @input: The data to hash. + * @length: The length of the data to hash. + * + * After calling xxh32_reset() call xxh32_update() as many times as necessary. + * + * Return: Zero on success, otherwise an error code. + */ +XXH_API int xxh32_update(struct xxh32_state *state, const void *input, size_t length); + +/** + * xxh32_digest() - produce the current xxh32 hash + * + * @state: Produce the current xxh32 hash of this state. + * + * A hash value can be produced at any time. It is still possible to continue + * inserting input into the hash state after a call to xxh32_digest(), and + * generate new hashes later on, by calling xxh32_digest() again. + * + * Return: The xxh32 hash stored in the state. + */ +XXH_API uint32_t xxh32_digest(const struct xxh32_state *state); + +/** + * xxh64_reset() - reset the xxh64 state to start a new hashing operation + * + * @state: The xxh64 state to reset. + * @seed: Initialize the hash state with this seed. + */ +XXH_API void xxh64_reset(struct xxh64_state *state, uint64_t seed); + +/** + * xxh64_update() - hash the data given and update the xxh64 state + * @state: The xxh64 state to update. + * @input: The data to hash. + * @length: The length of the data to hash. + * + * After calling xxh64_reset() call xxh64_update() as many times as necessary. + * + * Return: Zero on success, otherwise an error code. + */ +XXH_API int xxh64_update(struct xxh64_state *state, const void *input, size_t length); + +/** + * xxh64_digest() - produce the current xxh64 hash + * + * @state: Produce the current xxh64 hash of this state. + * + * A hash value can be produced at any time. It is still possible to continue + * inserting input into the hash state after a call to xxh64_digest(), and + * generate new hashes later on, by calling xxh64_digest() again. + * + * Return: The xxh64 hash stored in the state. + */ +XXH_API uint64_t xxh64_digest(const struct xxh64_state *state); + +/*-************************** + * Utils + ***************************/ + +/** + * xxh32_copy_state() - copy the source state into the destination state + * + * @src: The source xxh32 state. + * @dst: The destination xxh32 state. + */ +XXH_API void xxh32_copy_state(struct xxh32_state *dst, const struct xxh32_state *src); + +/** + * xxh64_copy_state() - copy the source state into the destination state + * + * @src: The source xxh64 state. + * @dst: The destination xxh64 state. + */ +XXH_API void xxh64_copy_state(struct xxh64_state *dst, const struct xxh64_state *src); + +/* + * xxHash - Extremely Fast Hash algorithm + * Copyright (C) 2012-2016, Yann Collet. + * + * BSD 2-Clause License (http://www.opensource.org/licenses/bsd-license.php) + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * This program is free software; you can redistribute it and/or modify it under + * the terms of the GNU General Public License version 2 as published by the + * Free Software Foundation. This program is dual-licensed; you may select + * either version 2 of the GNU General Public License ("GPL") or BSD license + * ("BSD"). + * + * You can contact the author at: + * - xxHash homepage: https://cyan4973.github.io/xxHash/ + * - xxHash source repository: https://github.com/Cyan4973/xxHash + */ + +#include +#include +#include +#include +#include + +/*-************************************* + * Macros + **************************************/ +#define xxh_rotl32(x, r) ((x << r) | (x >> (32 - r))) +#define xxh_rotl64(x, r) ((x << r) | (x >> (64 - r))) + +#ifdef __LITTLE_ENDIAN +# define XXH_CPU_LITTLE_ENDIAN 1 +#else +# define XXH_CPU_LITTLE_ENDIAN 0 +#endif + +/*-************************************* + * Constants + **************************************/ +static const uint32_t PRIME32_1 = 2654435761U; +static const uint32_t PRIME32_2 = 2246822519U; +static const uint32_t PRIME32_3 = 3266489917U; +static const uint32_t PRIME32_4 = 668265263U; +static const uint32_t PRIME32_5 = 374761393U; + +static const uint64_t PRIME64_1 = 11400714785074694791ULL; +static const uint64_t PRIME64_2 = 14029467366897019727ULL; +static const uint64_t PRIME64_3 = 1609587929392839161ULL; +static const uint64_t PRIME64_4 = 9650029242287828579ULL; +static const uint64_t PRIME64_5 = 2870177450012600261ULL; + +/*-************************** + * Utils + ***************************/ +XXH_API void xxh32_copy_state(struct xxh32_state *dst, const struct xxh32_state *src) +{ + __builtin_memcpy(dst, src, sizeof(*dst)); +} + +XXH_API void xxh64_copy_state(struct xxh64_state *dst, const struct xxh64_state *src) +{ + __builtin_memcpy(dst, src, sizeof(*dst)); +} + +/*-*************************** + * Simple Hash Functions + ****************************/ +static uint32_t xxh32_round(uint32_t seed, const uint32_t input) +{ + seed += input * PRIME32_2; + seed = xxh_rotl32(seed, 13); + seed *= PRIME32_1; + return seed; +} + +XXH_API uint32_t xxh32(const void *input, const size_t len, const uint32_t seed) +{ + const uint8_t *p = (const uint8_t *)input; + const uint8_t *b_end = p + len; + uint32_t h32; + + if (len >= 16) { + const uint8_t *const limit = b_end - 16; + uint32_t v1 = seed + PRIME32_1 + PRIME32_2; + uint32_t v2 = seed + PRIME32_2; + uint32_t v3 = seed + 0; + uint32_t v4 = seed - PRIME32_1; + + do { + v1 = xxh32_round(v1, get_unaligned_le32(p)); + p += 4; + v2 = xxh32_round(v2, get_unaligned_le32(p)); + p += 4; + v3 = xxh32_round(v3, get_unaligned_le32(p)); + p += 4; + v4 = xxh32_round(v4, get_unaligned_le32(p)); + p += 4; + } while (p <= limit); + + h32 = xxh_rotl32(v1, 1) + xxh_rotl32(v2, 7) + + xxh_rotl32(v3, 12) + xxh_rotl32(v4, 18); + } else { + h32 = seed + PRIME32_5; + } + + h32 += (uint32_t)len; + + while (p + 4 <= b_end) { + h32 += get_unaligned_le32(p) * PRIME32_3; + h32 = xxh_rotl32(h32, 17) * PRIME32_4; + p += 4; + } + + while (p < b_end) { + h32 += (*p) * PRIME32_5; + h32 = xxh_rotl32(h32, 11) * PRIME32_1; + p++; + } + + h32 ^= h32 >> 15; + h32 *= PRIME32_2; + h32 ^= h32 >> 13; + h32 *= PRIME32_3; + h32 ^= h32 >> 16; + + return h32; +} + +static uint64_t xxh64_round(uint64_t acc, const uint64_t input) +{ + acc += input * PRIME64_2; + acc = xxh_rotl64(acc, 31); + acc *= PRIME64_1; + return acc; +} + +static uint64_t xxh64_merge_round(uint64_t acc, uint64_t val) +{ + val = xxh64_round(0, val); + acc ^= val; + acc = acc * PRIME64_1 + PRIME64_4; + return acc; +} + +XXH_API uint64_t xxh64(const void *input, const size_t len, const uint64_t seed) +{ + const uint8_t *p = (const uint8_t *)input; + const uint8_t *const b_end = p + len; + uint64_t h64; + + if (len >= 32) { + const uint8_t *const limit = b_end - 32; + uint64_t v1 = seed + PRIME64_1 + PRIME64_2; + uint64_t v2 = seed + PRIME64_2; + uint64_t v3 = seed + 0; + uint64_t v4 = seed - PRIME64_1; + + do { + v1 = xxh64_round(v1, get_unaligned_le64(p)); + p += 8; + v2 = xxh64_round(v2, get_unaligned_le64(p)); + p += 8; + v3 = xxh64_round(v3, get_unaligned_le64(p)); + p += 8; + v4 = xxh64_round(v4, get_unaligned_le64(p)); + p += 8; + } while (p <= limit); + + h64 = xxh_rotl64(v1, 1) + xxh_rotl64(v2, 7) + + xxh_rotl64(v3, 12) + xxh_rotl64(v4, 18); + h64 = xxh64_merge_round(h64, v1); + h64 = xxh64_merge_round(h64, v2); + h64 = xxh64_merge_round(h64, v3); + h64 = xxh64_merge_round(h64, v4); + + } else { + h64 = seed + PRIME64_5; + } + + h64 += (uint64_t)len; + + while (p + 8 <= b_end) { + const uint64_t k1 = xxh64_round(0, get_unaligned_le64(p)); + + h64 ^= k1; + h64 = xxh_rotl64(h64, 27) * PRIME64_1 + PRIME64_4; + p += 8; + } + + if (p + 4 <= b_end) { + h64 ^= (uint64_t)(get_unaligned_le32(p)) * PRIME64_1; + h64 = xxh_rotl64(h64, 23) * PRIME64_2 + PRIME64_3; + p += 4; + } + + while (p < b_end) { + h64 ^= (*p) * PRIME64_5; + h64 = xxh_rotl64(h64, 11) * PRIME64_1; + p++; + } + + h64 ^= h64 >> 33; + h64 *= PRIME64_2; + h64 ^= h64 >> 29; + h64 *= PRIME64_3; + h64 ^= h64 >> 32; + + return h64; +} + +/*-************************************************** + * Advanced Hash Functions + ***************************************************/ +XXH_API void xxh32_reset(struct xxh32_state *statePtr, const uint32_t seed) +{ + /* use a local state for memcpy() to avoid strict-aliasing warnings */ + struct xxh32_state state; + + __builtin_memset(&state, 0, sizeof(state)); + state.v1 = seed + PRIME32_1 + PRIME32_2; + state.v2 = seed + PRIME32_2; + state.v3 = seed + 0; + state.v4 = seed - PRIME32_1; + __builtin_memcpy(statePtr, &state, sizeof(state)); +} + +XXH_API void xxh64_reset(struct xxh64_state *statePtr, const uint64_t seed) +{ + /* use a local state for memcpy() to avoid strict-aliasing warnings */ + struct xxh64_state state; + + __builtin_memset(&state, 0, sizeof(state)); + state.v1 = seed + PRIME64_1 + PRIME64_2; + state.v2 = seed + PRIME64_2; + state.v3 = seed + 0; + state.v4 = seed - PRIME64_1; + __builtin_memcpy(statePtr, &state, sizeof(state)); +} + +XXH_API int xxh32_update(struct xxh32_state *state, const void *input, const size_t len) +{ + const uint8_t *p = (const uint8_t *)input; + const uint8_t *const b_end = p + len; + + if (input == NULL) + return -EINVAL; + + state->total_len_32 += (uint32_t)len; + state->large_len |= (len >= 16) | (state->total_len_32 >= 16); + + if (state->memsize + len < 16) { /* fill in tmp buffer */ + __builtin_memcpy((uint8_t *)(state->mem32) + state->memsize, input, len); + state->memsize += (uint32_t)len; + return 0; + } + + if (state->memsize) { /* some data left from previous update */ + const uint32_t *p32 = state->mem32; + + __builtin_memcpy((uint8_t *)(state->mem32) + state->memsize, input, + 16 - state->memsize); + + state->v1 = xxh32_round(state->v1, get_unaligned_le32(p32)); + p32++; + state->v2 = xxh32_round(state->v2, get_unaligned_le32(p32)); + p32++; + state->v3 = xxh32_round(state->v3, get_unaligned_le32(p32)); + p32++; + state->v4 = xxh32_round(state->v4, get_unaligned_le32(p32)); + p32++; + + p += 16-state->memsize; + state->memsize = 0; + } + + if (p <= b_end - 16) { + const uint8_t *const limit = b_end - 16; + uint32_t v1 = state->v1; + uint32_t v2 = state->v2; + uint32_t v3 = state->v3; + uint32_t v4 = state->v4; + + do { + v1 = xxh32_round(v1, get_unaligned_le32(p)); + p += 4; + v2 = xxh32_round(v2, get_unaligned_le32(p)); + p += 4; + v3 = xxh32_round(v3, get_unaligned_le32(p)); + p += 4; + v4 = xxh32_round(v4, get_unaligned_le32(p)); + p += 4; + } while (p <= limit); + + state->v1 = v1; + state->v2 = v2; + state->v3 = v3; + state->v4 = v4; + } + + if (p < b_end) { + __builtin_memcpy(state->mem32, p, (size_t)(b_end-p)); + state->memsize = (uint32_t)(b_end-p); + } + + return 0; +} + +XXH_API uint32_t xxh32_digest(const struct xxh32_state *state) +{ + const uint8_t *p = (const uint8_t *)state->mem32; + const uint8_t *const b_end = (const uint8_t *)(state->mem32) + + state->memsize; + uint32_t h32; + + if (state->large_len) { + h32 = xxh_rotl32(state->v1, 1) + xxh_rotl32(state->v2, 7) + + xxh_rotl32(state->v3, 12) + xxh_rotl32(state->v4, 18); + } else { + h32 = state->v3 /* == seed */ + PRIME32_5; + } + + h32 += state->total_len_32; + + while (p + 4 <= b_end) { + h32 += get_unaligned_le32(p) * PRIME32_3; + h32 = xxh_rotl32(h32, 17) * PRIME32_4; + p += 4; + } + + while (p < b_end) { + h32 += (*p) * PRIME32_5; + h32 = xxh_rotl32(h32, 11) * PRIME32_1; + p++; + } + + h32 ^= h32 >> 15; + h32 *= PRIME32_2; + h32 ^= h32 >> 13; + h32 *= PRIME32_3; + h32 ^= h32 >> 16; + + return h32; +} + +XXH_API int xxh64_update(struct xxh64_state *state, const void *input, const size_t len) +{ + const uint8_t *p = (const uint8_t *)input; + const uint8_t *const b_end = p + len; + + if (input == NULL) + return -EINVAL; + + state->total_len += len; + + if (state->memsize + len < 32) { /* fill in tmp buffer */ + __builtin_memcpy(((uint8_t *)state->mem64) + state->memsize, input, len); + state->memsize += (uint32_t)len; + return 0; + } + + if (state->memsize) { /* tmp buffer is full */ + uint64_t *p64 = state->mem64; + + __builtin_memcpy(((uint8_t *)p64) + state->memsize, input, + 32 - state->memsize); + + state->v1 = xxh64_round(state->v1, get_unaligned_le64(p64)); + p64++; + state->v2 = xxh64_round(state->v2, get_unaligned_le64(p64)); + p64++; + state->v3 = xxh64_round(state->v3, get_unaligned_le64(p64)); + p64++; + state->v4 = xxh64_round(state->v4, get_unaligned_le64(p64)); + + p += 32 - state->memsize; + state->memsize = 0; + } + + if (p + 32 <= b_end) { + const uint8_t *const limit = b_end - 32; + uint64_t v1 = state->v1; + uint64_t v2 = state->v2; + uint64_t v3 = state->v3; + uint64_t v4 = state->v4; + + do { + v1 = xxh64_round(v1, get_unaligned_le64(p)); + p += 8; + v2 = xxh64_round(v2, get_unaligned_le64(p)); + p += 8; + v3 = xxh64_round(v3, get_unaligned_le64(p)); + p += 8; + v4 = xxh64_round(v4, get_unaligned_le64(p)); + p += 8; + } while (p <= limit); + + state->v1 = v1; + state->v2 = v2; + state->v3 = v3; + state->v4 = v4; + } + + if (p < b_end) { + __builtin_memcpy(state->mem64, p, (size_t)(b_end-p)); + state->memsize = (uint32_t)(b_end - p); + } + + return 0; +} + +XXH_API uint64_t xxh64_digest(const struct xxh64_state *state) +{ + const uint8_t *p = (const uint8_t *)state->mem64; + const uint8_t *const b_end = (const uint8_t *)state->mem64 + + state->memsize; + uint64_t h64; + + if (state->total_len >= 32) { + const uint64_t v1 = state->v1; + const uint64_t v2 = state->v2; + const uint64_t v3 = state->v3; + const uint64_t v4 = state->v4; + + h64 = xxh_rotl64(v1, 1) + xxh_rotl64(v2, 7) + + xxh_rotl64(v3, 12) + xxh_rotl64(v4, 18); + h64 = xxh64_merge_round(h64, v1); + h64 = xxh64_merge_round(h64, v2); + h64 = xxh64_merge_round(h64, v3); + h64 = xxh64_merge_round(h64, v4); + } else { + h64 = state->v3 + PRIME64_5; + } + + h64 += (uint64_t)state->total_len; + + while (p + 8 <= b_end) { + const uint64_t k1 = xxh64_round(0, get_unaligned_le64(p)); + + h64 ^= k1; + h64 = xxh_rotl64(h64, 27) * PRIME64_1 + PRIME64_4; + p += 8; + } + + if (p + 4 <= b_end) { + h64 ^= (uint64_t)(get_unaligned_le32(p)) * PRIME64_1; + h64 = xxh_rotl64(h64, 23) * PRIME64_2 + PRIME64_3; + p += 4; + } + + while (p < b_end) { + h64 ^= (*p) * PRIME64_5; + h64 = xxh_rotl64(h64, 11) * PRIME64_1; + p++; + } + + h64 ^= h64 >> 33; + h64 *= PRIME64_2; + h64 ^= h64 >> 29; + h64 *= PRIME64_3; + h64 ^= h64 >> 32; + + return h64; +} + +#endif /* XXHASH_H */ diff --git a/dependencies/zstd-1.5.0/contrib/linux-kernel/test/macro-test.sh b/dependencies/zstd-1.5.0/contrib/linux-kernel/test/macro-test.sh new file mode 100755 index 0000000..c688ac0 --- /dev/null +++ b/dependencies/zstd-1.5.0/contrib/linux-kernel/test/macro-test.sh @@ -0,0 +1,44 @@ +#!/usr/bin/env sh + +set -e + +SCRIPT_DIR=$(cd "$(dirname "$0")" && pwd) +INCLUDE_DIR="$SCRIPT_DIR/../linux/include" +LIB_DIR="$SCRIPT_DIR/../linux/lib" + + +print() { + printf '%b' "${*}" +} + +println() { + printf '%b\n' "${*}" +} + +die() { + println "$@" 1>&2 + exit 1 +} + +test_not_present() { + print "Testing that '$1' is not present... " + grep -r $1 "$INCLUDE_DIR" "$LIB_DIR" && die "Fail!" + println "Okay" +} + +println "This test checks that the macro removal process worked as expected" +println "If this test fails, then freestanding.py wasn't able to remove one of these" +println "macros from the source code completely. You'll either need to rewrite the check" +println "or improve freestanding.py." +println "" + +test_not_present "ZSTD_NO_INTRINSICS" +test_not_present "ZSTD_NO_UNUSED_FUNCTIONS" +test_not_present "ZSTD_LEGACY_SUPPORT" +test_not_present "STATIC_BMI2" +test_not_present "ZSTD_NO_INLINE" +test_not_present "ZSTD_DLL_EXPORT" +test_not_present "ZSTD_DLL_IMPORT" +test_not_present "__ICCARM__" +test_not_present "_MSC_VER" +test_not_present "_WIN32" diff --git a/dependencies/zstd-1.5.0/contrib/linux-kernel/test/static_test.c b/dependencies/zstd-1.5.0/contrib/linux-kernel/test/static_test.c new file mode 100644 index 0000000..50c594c --- /dev/null +++ b/dependencies/zstd-1.5.0/contrib/linux-kernel/test/static_test.c @@ -0,0 +1,50 @@ +/* + * Copyright (c) Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ +#include +#include +#include +#include + +#include "decompress_sources.h" +#include + +#define CONTROL(x) \ + do { \ + if (!(x)) { \ + fprintf(stderr, "%s:%u: %s failed!\n", __FUNCTION__, __LINE__, #x); \ + abort(); \ + } \ + } while (0) + + +static const char kEmptyZstdFrame[] = { + 0x28, 0xb5, 0x2f, 0xfd, 0x24, 0x00, 0x01, 0x00, 0x00, 0x99, 0xe9, 0xd8, 0x51 +}; + +static void test_decompress_unzstd() { + fprintf(stderr, "Testing decompress unzstd... "); + { + size_t const wkspSize = zstd_dctx_workspace_bound(); + void* wksp = malloc(wkspSize); + CONTROL(wksp != NULL); + ZSTD_DCtx* dctx = zstd_init_dctx(wksp, wkspSize); + CONTROL(dctx != NULL); + size_t const dSize = zstd_decompress_dctx(dctx, NULL, 0, kEmptyZstdFrame, sizeof(kEmptyZstdFrame)); + CONTROL(!zstd_is_error(dSize)); + CONTROL(dSize == 0); + free(wksp); + } + fprintf(stderr, "Ok\n"); +} + +int main(void) { + test_decompress_unzstd(); + return 0; +} diff --git a/dependencies/zstd-1.5.0/contrib/linux-kernel/test/test.c b/dependencies/zstd-1.5.0/contrib/linux-kernel/test/test.c new file mode 100644 index 0000000..9064be7 --- /dev/null +++ b/dependencies/zstd-1.5.0/contrib/linux-kernel/test/test.c @@ -0,0 +1,219 @@ +/* + * Copyright (c) Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ +#include +#include +#include +#include + +#include + +#define CONTROL(x) \ + do { \ + if (!(x)) { \ + fprintf(stderr, "%s:%u: %s failed!\n", __FUNCTION__, __LINE__, #x); \ + abort(); \ + } \ + } while (0) + +typedef struct { + char *data; + char *data2; + size_t dataSize; + char *comp; + size_t compSize; +} test_data_t; + +test_data_t create_test_data(void) { + test_data_t data; + data.dataSize = 128 * 1024; + data.data = malloc(data.dataSize); + CONTROL(data.data != NULL); + data.data2 = malloc(data.dataSize); + CONTROL(data.data2 != NULL); + data.compSize = zstd_compress_bound(data.dataSize); + data.comp = malloc(data.compSize); + CONTROL(data.comp != NULL); + memset(data.data, 0, data.dataSize); + return data; +} + +static void free_test_data(test_data_t const *data) { + free(data->data); + free(data->data2); + free(data->comp); +} + +#define MIN(a, b) ((a) < (b) ? (a) : (b)) +#define MAX(a, b) ((a) > (b) ? (a) : (b)) + +static void test_btrfs(test_data_t const *data) { + fprintf(stderr, "testing btrfs use cases... "); + size_t const size = MIN(data->dataSize, 128 * 1024); + for (int level = -1; level < 16; ++level) { + zstd_parameters params = zstd_get_params(level, size); + CONTROL(params.cParams.windowLog <= 17); + size_t const workspaceSize = + MAX(zstd_cstream_workspace_bound(¶ms.cParams), + zstd_dstream_workspace_bound(size)); + void *workspace = malloc(workspaceSize); + CONTROL(workspace != NULL); + + char const *ip = data->data; + char const *iend = ip + size; + char *op = data->comp; + char *oend = op + data->compSize; + { + zstd_cstream *cctx = zstd_init_cstream(¶ms, size, workspace, workspaceSize); + CONTROL(cctx != NULL); + zstd_out_buffer out = {NULL, 0, 0}; + zstd_in_buffer in = {NULL, 0, 0}; + for (;;) { + if (in.pos == in.size) { + in.src = ip; + in.size = MIN(4096, iend - ip); + in.pos = 0; + ip += in.size; + } + + if (out.pos == out.size) { + out.dst = op; + out.size = MIN(4096, oend - op); + out.pos = 0; + op += out.size; + } + + if (ip != iend || in.pos < in.size) { + CONTROL(!zstd_is_error(zstd_compress_stream(cctx, &out, &in))); + } else { + size_t const ret = zstd_end_stream(cctx, &out); + CONTROL(!zstd_is_error(ret)); + if (ret == 0) { + break; + } + } + } + op += out.pos; + } + + ip = data->comp; + iend = op; + op = data->data2; + oend = op + size; + { + zstd_dstream *dctx = zstd_init_dstream(1ULL << params.cParams.windowLog, workspace, workspaceSize); + CONTROL(dctx != NULL); + zstd_out_buffer out = {NULL, 0, 0}; + zstd_in_buffer in = {NULL, 0, 0}; + for (;;) { + if (in.pos == in.size) { + in.src = ip; + in.size = MIN(4096, iend - ip); + in.pos = 0; + ip += in.size; + } + + if (out.pos == out.size) { + out.dst = op; + out.size = MIN(4096, oend - op); + out.pos = 0; + op += out.size; + } + + size_t const ret = zstd_decompress_stream(dctx, &out, &in); + CONTROL(!zstd_is_error(ret)); + if (ret == 0) { + break; + } + } + } + CONTROL(op - data->data2 == data->dataSize); + CONTROL(!memcmp(data->data, data->data2, data->dataSize)); + free(workspace); + } + fprintf(stderr, "Ok\n"); +} + +static void test_decompress_unzstd(test_data_t const *data) { + fprintf(stderr, "Testing decompress unzstd... "); + size_t cSize; + { + zstd_parameters params = zstd_get_params(19, 0); + size_t const wkspSize = zstd_cctx_workspace_bound(¶ms.cParams); + void* wksp = malloc(wkspSize); + CONTROL(wksp != NULL); + zstd_cctx* cctx = zstd_init_cctx(wksp, wkspSize); + CONTROL(cctx != NULL); + cSize = zstd_compress_cctx(cctx, data->comp, data->compSize, data->data, data->dataSize, ¶ms); + CONTROL(!zstd_is_error(cSize)); + free(wksp); + } + { + size_t const wkspSize = zstd_dctx_workspace_bound(); + void* wksp = malloc(wkspSize); + CONTROL(wksp != NULL); + zstd_dctx* dctx = zstd_init_dctx(wksp, wkspSize); + CONTROL(dctx != NULL); + size_t const dSize = zstd_decompress_dctx(dctx, data->data2, data->dataSize, data->comp, cSize); + CONTROL(!zstd_is_error(dSize)); + CONTROL(dSize == data->dataSize); + CONTROL(!memcmp(data->data, data->data2, data->dataSize)); + free(wksp); + } + fprintf(stderr, "Ok\n"); +} + +static void test_f2fs() { + fprintf(stderr, "testing f2fs uses... "); + CONTROL(zstd_min_clevel() < 0); + CONTROL(zstd_max_clevel() == 22); + fprintf(stderr, "Ok\n"); +} + +static char *g_stack = NULL; + +static void __attribute__((noinline)) use(void *x) { + asm volatile("" : "+r"(x)); +} + +static void __attribute__((noinline)) set_stack() { + + char stack[8192]; + g_stack = stack; + memset(g_stack, 0x33, 8192); + use(g_stack); +} + +static void __attribute__((noinline)) check_stack() { + size_t cleanStack = 0; + while (cleanStack < 8192 && g_stack[cleanStack] == 0x33) { + ++cleanStack; + } + size_t const stackSize = 8192 - cleanStack; + fprintf(stderr, "Maximum stack size: %zu\n", stackSize); + CONTROL(stackSize <= 2048 + 512); +} + +static void test_stack_usage(test_data_t const *data) { + set_stack(); + test_f2fs(); + test_btrfs(data); + test_decompress_unzstd(data); + check_stack(); +} + +int main(void) { + test_data_t data = create_test_data(); + test_f2fs(); + test_btrfs(&data); + test_decompress_unzstd(&data); + test_stack_usage(&data); + free_test_data(&data); + return 0; +} diff --git a/dependencies/zstd-1.5.0/contrib/linux-kernel/zstd_compress_module.c b/dependencies/zstd-1.5.0/contrib/linux-kernel/zstd_compress_module.c new file mode 100644 index 0000000..37d08ff --- /dev/null +++ b/dependencies/zstd-1.5.0/contrib/linux-kernel/zstd_compress_module.c @@ -0,0 +1,124 @@ +// SPDX-License-Identifier: GPL-2.0-only +/* + * Copyright (c) Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + +#include +#include +#include +#include + +#include "common/zstd_deps.h" +#include "common/zstd_internal.h" + +int zstd_min_clevel(void) +{ + return ZSTD_minCLevel(); +} +EXPORT_SYMBOL(zstd_min_clevel); + +int zstd_max_clevel(void) +{ + return ZSTD_maxCLevel(); +} +EXPORT_SYMBOL(zstd_max_clevel); + +size_t zstd_compress_bound(size_t src_size) +{ + return ZSTD_compressBound(src_size); +} +EXPORT_SYMBOL(zstd_compress_bound); + +zstd_parameters zstd_get_params(int level, + unsigned long long estimated_src_size) +{ + return ZSTD_getParams(level, estimated_src_size, 0); +} +EXPORT_SYMBOL(zstd_get_params); + +size_t zstd_cctx_workspace_bound(const zstd_compression_parameters *cparams) +{ + return ZSTD_estimateCCtxSize_usingCParams(*cparams); +} +EXPORT_SYMBOL(zstd_cctx_workspace_bound); + +zstd_cctx *zstd_init_cctx(void *workspace, size_t workspace_size) +{ + if (workspace == NULL) + return NULL; + return ZSTD_initStaticCCtx(workspace, workspace_size); +} +EXPORT_SYMBOL(zstd_init_cctx); + +size_t zstd_compress_cctx(zstd_cctx *cctx, void *dst, size_t dst_capacity, + const void *src, size_t src_size, const zstd_parameters *parameters) +{ + return ZSTD_compress_advanced(cctx, dst, dst_capacity, src, src_size, NULL, 0, *parameters); +} +EXPORT_SYMBOL(zstd_compress_cctx); + +size_t zstd_cstream_workspace_bound(const zstd_compression_parameters *cparams) +{ + return ZSTD_estimateCStreamSize_usingCParams(*cparams); +} +EXPORT_SYMBOL(zstd_cstream_workspace_bound); + +zstd_cstream *zstd_init_cstream(const zstd_parameters *parameters, + unsigned long long pledged_src_size, void *workspace, size_t workspace_size) +{ + zstd_cstream *cstream; + size_t ret; + + if (workspace == NULL) + return NULL; + + cstream = ZSTD_initStaticCStream(workspace, workspace_size); + if (cstream == NULL) + return NULL; + + /* 0 means unknown in linux zstd API but means 0 in new zstd API */ + if (pledged_src_size == 0) + pledged_src_size = ZSTD_CONTENTSIZE_UNKNOWN; + + ret = ZSTD_initCStream_advanced(cstream, NULL, 0, *parameters, pledged_src_size); + if (ZSTD_isError(ret)) + return NULL; + + return cstream; +} +EXPORT_SYMBOL(zstd_init_cstream); + +size_t zstd_reset_cstream(zstd_cstream *cstream, + unsigned long long pledged_src_size) +{ + return ZSTD_resetCStream(cstream, pledged_src_size); +} +EXPORT_SYMBOL(zstd_reset_cstream); + +size_t zstd_compress_stream(zstd_cstream *cstream, zstd_out_buffer *output, + zstd_in_buffer *input) +{ + return ZSTD_compressStream(cstream, output, input); +} +EXPORT_SYMBOL(zstd_compress_stream); + +size_t zstd_flush_stream(zstd_cstream *cstream, zstd_out_buffer *output) +{ + return ZSTD_flushStream(cstream, output); +} +EXPORT_SYMBOL(zstd_flush_stream); + +size_t zstd_end_stream(zstd_cstream *cstream, zstd_out_buffer *output) +{ + return ZSTD_endStream(cstream, output); +} +EXPORT_SYMBOL(zstd_end_stream); + +MODULE_LICENSE("Dual BSD/GPL"); +MODULE_DESCRIPTION("Zstd Compressor"); diff --git a/dependencies/zstd-1.5.0/contrib/linux-kernel/zstd_decompress_module.c b/dependencies/zstd-1.5.0/contrib/linux-kernel/zstd_decompress_module.c new file mode 100644 index 0000000..15005cd --- /dev/null +++ b/dependencies/zstd-1.5.0/contrib/linux-kernel/zstd_decompress_module.c @@ -0,0 +1,105 @@ +// SPDX-License-Identifier: GPL-2.0-only +/* + * Copyright (c) Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + +#include +#include +#include +#include + +#include "common/zstd_deps.h" + +/* Common symbols. zstd_compress must depend on zstd_decompress. */ + +unsigned int zstd_is_error(size_t code) +{ + return ZSTD_isError(code); +} +EXPORT_SYMBOL(zstd_is_error); + +zstd_error_code zstd_get_error_code(size_t code) +{ + return ZSTD_getErrorCode(code); +} +EXPORT_SYMBOL(zstd_get_error_code); + +const char *zstd_get_error_name(size_t code) +{ + return ZSTD_getErrorName(code); +} +EXPORT_SYMBOL(zstd_get_error_name); + +/* Decompression symbols. */ + +size_t zstd_dctx_workspace_bound(void) +{ + return ZSTD_estimateDCtxSize(); +} +EXPORT_SYMBOL(zstd_dctx_workspace_bound); + +zstd_dctx *zstd_init_dctx(void *workspace, size_t workspace_size) +{ + if (workspace == NULL) + return NULL; + return ZSTD_initStaticDCtx(workspace, workspace_size); +} +EXPORT_SYMBOL(zstd_init_dctx); + +size_t zstd_decompress_dctx(zstd_dctx *dctx, void *dst, size_t dst_capacity, + const void *src, size_t src_size) +{ + return ZSTD_decompressDCtx(dctx, dst, dst_capacity, src, src_size); +} +EXPORT_SYMBOL(zstd_decompress_dctx); + +size_t zstd_dstream_workspace_bound(size_t max_window_size) +{ + return ZSTD_estimateDStreamSize(max_window_size); +} +EXPORT_SYMBOL(zstd_dstream_workspace_bound); + +zstd_dstream *zstd_init_dstream(size_t max_window_size, void *workspace, + size_t workspace_size) +{ + if (workspace == NULL) + return NULL; + (void)max_window_size; + return ZSTD_initStaticDStream(workspace, workspace_size); +} +EXPORT_SYMBOL(zstd_init_dstream); + +size_t zstd_reset_dstream(zstd_dstream *dstream) +{ + return ZSTD_resetDStream(dstream); +} +EXPORT_SYMBOL(zstd_reset_dstream); + +size_t zstd_decompress_stream(zstd_dstream *dstream, zstd_out_buffer *output, + zstd_in_buffer *input) +{ + return ZSTD_decompressStream(dstream, output, input); +} +EXPORT_SYMBOL(zstd_decompress_stream); + +size_t zstd_find_frame_compressed_size(const void *src, size_t src_size) +{ + return ZSTD_findFrameCompressedSize(src, src_size); +} +EXPORT_SYMBOL(zstd_find_frame_compressed_size); + +size_t zstd_get_frame_header(zstd_frame_header *header, const void *src, + size_t src_size) +{ + return ZSTD_getFrameHeader(header, src, src_size); +} +EXPORT_SYMBOL(zstd_get_frame_header); + +MODULE_LICENSE("Dual BSD/GPL"); +MODULE_DESCRIPTION("Zstd Decompressor"); diff --git a/dependencies/zstd-1.5.0/contrib/linux-kernel/zstd_deps.h b/dependencies/zstd-1.5.0/contrib/linux-kernel/zstd_deps.h new file mode 100644 index 0000000..853b724 --- /dev/null +++ b/dependencies/zstd-1.5.0/contrib/linux-kernel/zstd_deps.h @@ -0,0 +1,125 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ +/* + * Copyright (c) Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + +/* + * This file provides common libc dependencies that zstd requires. + * The purpose is to allow replacing this file with a custom implementation + * to compile zstd without libc support. + */ + +/* Need: + * NULL + * INT_MAX + * UINT_MAX + * ZSTD_memcpy() + * ZSTD_memset() + * ZSTD_memmove() + */ +#ifndef ZSTD_DEPS_COMMON +#define ZSTD_DEPS_COMMON + +#include +#include + +#define ZSTD_memcpy(d,s,n) __builtin_memcpy((d),(s),(n)) +#define ZSTD_memmove(d,s,n) __builtin_memmove((d),(s),(n)) +#define ZSTD_memset(d,s,n) __builtin_memset((d),(s),(n)) + +#endif /* ZSTD_DEPS_COMMON */ + +/* + * Define malloc as always failing. That means the user must + * either use ZSTD_customMem or statically allocate memory. + * Need: + * ZSTD_malloc() + * ZSTD_free() + * ZSTD_calloc() + */ +#ifdef ZSTD_DEPS_NEED_MALLOC +#ifndef ZSTD_DEPS_MALLOC +#define ZSTD_DEPS_MALLOC + +#define ZSTD_malloc(s) ({ (void)(s); NULL; }) +#define ZSTD_free(p) ((void)(p)) +#define ZSTD_calloc(n,s) ({ (void)(n); (void)(s); NULL; }) + +#endif /* ZSTD_DEPS_MALLOC */ +#endif /* ZSTD_DEPS_NEED_MALLOC */ + +/* + * Provides 64-bit math support. + * Need: + * U64 ZSTD_div64(U64 dividend, U32 divisor) + */ +#ifdef ZSTD_DEPS_NEED_MATH64 +#ifndef ZSTD_DEPS_MATH64 +#define ZSTD_DEPS_MATH64 + +#include + +static uint64_t ZSTD_div64(uint64_t dividend, uint32_t divisor) { + return div_u64(dividend, divisor); +} + +#endif /* ZSTD_DEPS_MATH64 */ +#endif /* ZSTD_DEPS_NEED_MATH64 */ + +/* + * This is only requested when DEBUGLEVEL >= 1, meaning + * it is disabled in production. + * Need: + * assert() + */ +#ifdef ZSTD_DEPS_NEED_ASSERT +#ifndef ZSTD_DEPS_ASSERT +#define ZSTD_DEPS_ASSERT + +#include + +#define assert(x) WARN_ON((x)) + +#endif /* ZSTD_DEPS_ASSERT */ +#endif /* ZSTD_DEPS_NEED_ASSERT */ + +/* + * This is only requested when DEBUGLEVEL >= 2, meaning + * it is disabled in production. + * Need: + * ZSTD_DEBUG_PRINT() + */ +#ifdef ZSTD_DEPS_NEED_IO +#ifndef ZSTD_DEPS_IO +#define ZSTD_DEPS_IO + +#include + +#define ZSTD_DEBUG_PRINT(...) pr_debug(__VA_ARGS__) + +#endif /* ZSTD_DEPS_IO */ +#endif /* ZSTD_DEPS_NEED_IO */ + +/* + * Only requested when MSAN is enabled. + * Need: + * intptr_t + */ +#ifdef ZSTD_DEPS_NEED_STDINT +#ifndef ZSTD_DEPS_STDINT +#define ZSTD_DEPS_STDINT + +/* + * The Linux Kernel doesn't provide intptr_t, only uintptr_t, which + * is an unsigned long. + */ +typedef long intptr_t; + +#endif /* ZSTD_DEPS_STDINT */ +#endif /* ZSTD_DEPS_NEED_STDINT */ diff --git a/dependencies/zstd-1.5.0/contrib/match_finders/README.md b/dependencies/zstd-1.5.0/contrib/match_finders/README.md new file mode 100644 index 0000000..0f4a3b1 --- /dev/null +++ b/dependencies/zstd-1.5.0/contrib/match_finders/README.md @@ -0,0 +1,42 @@ +## Edit Distance Match Finder + +``` +/* This match finder leverages techniques used in file comparison algorithms + * to find matches between a dictionary and a source file. + * + * The original motivation for studying this approach was to try and optimize + * Zstandard for the use case of patching: the most common scenario being + * updating an existing software package with the next version. When patching, + * the difference between the old version of the package and the new version + * is generally tiny (most of the new file will be identical to + * the old one). In more technical terms, the edit distance (the minimal number + * of changes required to take one sequence of bytes to another) between the + * files would be small relative to the size of the file. + * + * Various 'diffing' algorithms utilize this notion of edit distance and + * the corrensponding concept of a minimal edit script between two + * sequences to identify the regions within two files where they differ. + * The core algorithm used in this match finder is described in: + * + * "An O(ND) Difference Algorithm and its Variations", Eugene W. Myers, + * Algorithmica Vol. 1, 1986, pp. 251-266, + * . + * + * Additional algorithmic heuristics for speed improvement have also been included. + * These we inspired from implementations of various regular and binary diffing + * algorithms such as GNU diff, bsdiff, and Xdelta. + * + * Note: after some experimentation, this approach proved to not provide enough + * utility to justify the additional CPU used in finding matches. The one area + * where this approach consistenly outperforms Zstandard even on level 19 is + * when compressing small files (<10 KB) using a equally small dictionary that + * is very similar to the source file. For the use case that this was intended, + * (large similar files) this approach by itself took 5-10X longer than zstd-19 and + * generally resulted in 2-3X larger files. The core advantage that zstd-19 has + * over this appraoch for match finding is the overlapping matches. This approach + * cannot find any. + * + * I'm leaving this in the contrib section in case this ever becomes interesting + * to explore again. + * */ +``` diff --git a/dependencies/zstd-1.5.0/contrib/match_finders/zstd_edist.c b/dependencies/zstd-1.5.0/contrib/match_finders/zstd_edist.c new file mode 100644 index 0000000..aab545f --- /dev/null +++ b/dependencies/zstd-1.5.0/contrib/match_finders/zstd_edist.c @@ -0,0 +1,558 @@ +/* + * Copyright (c) 2016-present, Yann Collet, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + +/*-************************************* +* Dependencies +***************************************/ + +/* Currently relies on qsort when combining contiguous matches. This can probabily + * be avoided but would require changes to the algorithm. The qsort is far from + * the bottleneck in this algorithm even for medium sized files so it's probably + * not worth trying to address */ +#include +#include + +#include "zstd_edist.h" +#include "mem.h" + +/*-************************************* +* Constants +***************************************/ + +/* Just a sential for the entires of the diagnomal matrix */ +#define ZSTD_EDIST_DIAG_MAX (S32)(1 << 30) + +/* How large should a snake be to be considered a 'big' snake. + * For an explanation of what a 'snake' is with respect to the + * edit distance matrix, see the linked paper in zstd_edist.h */ +#define ZSTD_EDIST_SNAKE_THRESH 20 + +/* After how many iterations should we start to use the heuristic + * based on 'big' snakes */ +#define ZSTD_EDIST_SNAKE_ITER_THRESH 200 + +/* After how many iterations should be just give up and take + * the best availabe edit script for this round */ +#define ZSTD_EDIST_EXPENSIVE_THRESH 1024 + +/*-************************************* +* Structures +***************************************/ + +typedef struct { + U32 dictIdx; + U32 srcIdx; + U32 matchLength; +} ZSTD_eDist_match; + +typedef struct { + const BYTE* dict; + const BYTE* src; + size_t dictSize; + size_t srcSize; + S32* forwardDiag; /* Entires of the forward diagonal stored here */ + S32* backwardDiag; /* Entires of the backward diagonal stored here. + * Note: this buffer and the 'forwardDiag' buffer + * are contiguous. See the ZSTD_eDist_genSequences */ + ZSTD_eDist_match* matches; /* Accumulate matches of length 1 in this buffer. + * In a subsequence post-processing step, we combine + * contiguous matches. */ + U32 nbMatches; +} ZSTD_eDist_state; + +typedef struct { + S32 dictMid; /* The mid diagonal for the dictionary */ + S32 srcMid; /* The mid diagonal for the source */ + int lowUseHeuristics; /* Should we use heuristics for the low part */ + int highUseHeuristics; /* Should we use heuristics for the high part */ +} ZSTD_eDist_partition; + +/*-************************************* +* Internal +***************************************/ + +static void ZSTD_eDist_diag(ZSTD_eDist_state* state, + ZSTD_eDist_partition* partition, + S32 dictLow, S32 dictHigh, S32 srcLow, + S32 srcHigh, int useHeuristics) +{ + S32* const forwardDiag = state->forwardDiag; + S32* const backwardDiag = state->backwardDiag; + const BYTE* const dict = state->dict; + const BYTE* const src = state->src; + + S32 const diagMin = dictLow - srcHigh; + S32 const diagMax = dictHigh - srcLow; + S32 const forwardMid = dictLow - srcLow; + S32 const backwardMid = dictHigh - srcHigh; + + S32 forwardMin = forwardMid; + S32 forwardMax = forwardMid; + S32 backwardMin = backwardMid; + S32 backwardMax = backwardMid; + int odd = (forwardMid - backwardMid) & 1; + U32 iterations; + + forwardDiag[forwardMid] = dictLow; + backwardDiag[backwardMid] = dictHigh; + + /* Main loop for updating diag entries. Unless useHeuristics is + * set to false, this loop will run until it finds the minimal + * edit script */ + for (iterations = 1;;iterations++) { + S32 diag; + int bigSnake = 0; + + if (forwardMin > diagMin) { + forwardMin--; + forwardDiag[forwardMin - 1] = -1; + } else { + forwardMin++; + } + + if (forwardMax < diagMax) { + forwardMax++; + forwardDiag[forwardMax + 1] = -1; + } else { + forwardMax--; + } + + for (diag = forwardMax; diag >= forwardMin; diag -= 2) { + S32 dictIdx; + S32 srcIdx; + S32 low = forwardDiag[diag - 1]; + S32 high = forwardDiag[diag + 1]; + S32 dictIdx0 = low < high ? high : low + 1; + + for (dictIdx = dictIdx0, srcIdx = dictIdx0 - diag; + dictIdx < dictHigh && srcIdx < srcHigh && dict[dictIdx] == src[srcIdx]; + dictIdx++, srcIdx++) continue; + + if (dictIdx - dictIdx0 > ZSTD_EDIST_SNAKE_THRESH) + bigSnake = 1; + + forwardDiag[diag] = dictIdx; + + if (odd && backwardMin <= diag && diag <= backwardMax && backwardDiag[diag] <= dictIdx) { + partition->dictMid = dictIdx; + partition->srcMid = srcIdx; + partition->lowUseHeuristics = 0; + partition->highUseHeuristics = 0; + return; + } + } + + if (backwardMin > diagMin) { + backwardMin--; + backwardDiag[backwardMin - 1] = ZSTD_EDIST_DIAG_MAX; + } else { + backwardMin++; + } + + if (backwardMax < diagMax) { + backwardMax++; + backwardDiag[backwardMax + 1] = ZSTD_EDIST_DIAG_MAX; + } else { + backwardMax--; + } + + + for (diag = backwardMax; diag >= backwardMin; diag -= 2) { + S32 dictIdx; + S32 srcIdx; + S32 low = backwardDiag[diag - 1]; + S32 high = backwardDiag[diag + 1]; + S32 dictIdx0 = low < high ? low : high - 1; + + for (dictIdx = dictIdx0, srcIdx = dictIdx0 - diag; + dictLow < dictIdx && srcLow < srcIdx && dict[dictIdx - 1] == src[srcIdx - 1]; + dictIdx--, srcIdx--) continue; + + if (dictIdx0 - dictIdx > ZSTD_EDIST_SNAKE_THRESH) + bigSnake = 1; + + backwardDiag[diag] = dictIdx; + + if (!odd && forwardMin <= diag && diag <= forwardMax && dictIdx <= forwardDiag[diag]) { + partition->dictMid = dictIdx; + partition->srcMid = srcIdx; + partition->lowUseHeuristics = 0; + partition->highUseHeuristics = 0; + return; + } + } + + if (!useHeuristics) + continue; + + /* Everything under this point is a heuritic. Using these will + * substantially speed up the match finding. In some cases, taking + * the total match finding time from several minutes to seconds. + * Of course, the caveat is that the edit script found may no longer + * be optimal */ + + /* Big snake heuristic */ + if (iterations > ZSTD_EDIST_SNAKE_ITER_THRESH && bigSnake) { + { + S32 best = 0; + + for (diag = forwardMax; diag >= forwardMin; diag -= 2) { + S32 diagDiag = diag - forwardMid; + S32 dictIdx = forwardDiag[diag]; + S32 srcIdx = dictIdx - diag; + S32 v = (dictIdx - dictLow) * 2 - diagDiag; + + if (v > 12 * (iterations + (diagDiag < 0 ? -diagDiag : diagDiag))) { + if (v > best + && dictLow + ZSTD_EDIST_SNAKE_THRESH <= dictIdx && dictIdx <= dictHigh + && srcLow + ZSTD_EDIST_SNAKE_THRESH <= srcIdx && srcIdx <= srcHigh) { + S32 k; + for (k = 1; dict[dictIdx - k] == src[srcIdx - k]; k++) { + if (k == ZSTD_EDIST_SNAKE_THRESH) { + best = v; + partition->dictMid = dictIdx; + partition->srcMid = srcIdx; + break; + } + } + } + } + } + + if (best > 0) { + partition->lowUseHeuristics = 0; + partition->highUseHeuristics = 1; + return; + } + } + + { + S32 best = 0; + + for (diag = backwardMax; diag >= backwardMin; diag -= 2) { + S32 diagDiag = diag - backwardMid; + S32 dictIdx = backwardDiag[diag]; + S32 srcIdx = dictIdx - diag; + S32 v = (dictHigh - dictIdx) * 2 + diagDiag; + + if (v > 12 * (iterations + (diagDiag < 0 ? -diagDiag : diagDiag))) { + if (v > best + && dictLow < dictIdx && dictIdx <= dictHigh - ZSTD_EDIST_SNAKE_THRESH + && srcLow < srcIdx && srcIdx <= srcHigh - ZSTD_EDIST_SNAKE_THRESH) { + int k; + for (k = 0; dict[dictIdx + k] == src[srcIdx + k]; k++) { + if (k == ZSTD_EDIST_SNAKE_THRESH - 1) { + best = v; + partition->dictMid = dictIdx; + partition->srcMid = srcIdx; + break; + } + } + } + } + } + + if (best > 0) { + partition->lowUseHeuristics = 1; + partition->highUseHeuristics = 0; + return; + } + } + } + + /* More general 'too expensive' heuristic */ + if (iterations >= ZSTD_EDIST_EXPENSIVE_THRESH) { + S32 forwardDictSrcBest; + S32 forwardDictBest = 0; + S32 backwardDictSrcBest; + S32 backwardDictBest = 0; + + forwardDictSrcBest = -1; + for (diag = forwardMax; diag >= forwardMin; diag -= 2) { + S32 dictIdx = MIN(forwardDiag[diag], dictHigh); + S32 srcIdx = dictIdx - diag; + + if (srcHigh < srcIdx) { + dictIdx = srcHigh + diag; + srcIdx = srcHigh; + } + + if (forwardDictSrcBest < dictIdx + srcIdx) { + forwardDictSrcBest = dictIdx + srcIdx; + forwardDictBest = dictIdx; + } + } + + backwardDictSrcBest = ZSTD_EDIST_DIAG_MAX; + for (diag = backwardMax; diag >= backwardMin; diag -= 2) { + S32 dictIdx = MAX(dictLow, backwardDiag[diag]); + S32 srcIdx = dictIdx - diag; + + if (srcIdx < srcLow) { + dictIdx = srcLow + diag; + srcIdx = srcLow; + } + + if (dictIdx + srcIdx < backwardDictSrcBest) { + backwardDictSrcBest = dictIdx + srcIdx; + backwardDictBest = dictIdx; + } + } + + if ((dictHigh + srcHigh) - backwardDictSrcBest < forwardDictSrcBest - (dictLow + srcLow)) { + partition->dictMid = forwardDictBest; + partition->srcMid = forwardDictSrcBest - forwardDictBest; + partition->lowUseHeuristics = 0; + partition->highUseHeuristics = 1; + } else { + partition->dictMid = backwardDictBest; + partition->srcMid = backwardDictSrcBest - backwardDictBest; + partition->lowUseHeuristics = 1; + partition->highUseHeuristics = 0; + } + return; + } + } +} + +static void ZSTD_eDist_insertMatch(ZSTD_eDist_state* state, + S32 const dictIdx, S32 const srcIdx) +{ + state->matches[state->nbMatches].dictIdx = dictIdx; + state->matches[state->nbMatches].srcIdx = srcIdx; + state->matches[state->nbMatches].matchLength = 1; + state->nbMatches++; +} + +static int ZSTD_eDist_compare(ZSTD_eDist_state* state, + S32 dictLow, S32 dictHigh, S32 srcLow, + S32 srcHigh, int useHeuristics) +{ + const BYTE* const dict = state->dict; + const BYTE* const src = state->src; + + /* Found matches while traversing from the low end */ + while (dictLow < dictHigh && srcLow < srcHigh && dict[dictLow] == src[srcLow]) { + ZSTD_eDist_insertMatch(state, dictLow, srcLow); + dictLow++; + srcLow++; + } + + /* Found matches while traversing from the high end */ + while (dictLow < dictHigh && srcLow < srcHigh && dict[dictHigh - 1] == src[srcHigh - 1]) { + ZSTD_eDist_insertMatch(state, dictHigh - 1, srcHigh - 1); + dictHigh--; + srcHigh--; + } + + /* If the low and high end end up touching. If we wanted to make + * note of the differences like most diffing algorithms do, we would + * do so here. In our case, we're only concerned with matches + * Note: if you wanted to find the edit distance of the algorithm, + * you could just accumulate the cost for an insertion/deletion + * below. */ + if (dictLow == dictHigh) { + while (srcLow < srcHigh) { + /* Reaching this point means inserting src[srcLow] into + * the current position of dict */ + srcLow++; + } + } else if (srcLow == srcHigh) { + while (dictLow < dictHigh) { + /* Reaching this point means deleteing dict[dictLow] from + * the current positino of dict */ + dictLow++; + } + } else { + ZSTD_eDist_partition partition; + partition.dictMid = 0; + partition.srcMid = 0; + ZSTD_eDist_diag(state, &partition, dictLow, dictHigh, + srcLow, srcHigh, useHeuristics); + if (ZSTD_eDist_compare(state, dictLow, partition.dictMid, + srcLow, partition.srcMid, partition.lowUseHeuristics)) + return 1; + if (ZSTD_eDist_compare(state, partition.dictMid, dictHigh, + partition.srcMid, srcHigh, partition.highUseHeuristics)) + return 1; + } + + return 0; +} + +static int ZSTD_eDist_matchComp(const void* p, const void* q) +{ + S32 const l = ((ZSTD_eDist_match*)p)->srcIdx; + S32 const r = ((ZSTD_eDist_match*)q)->srcIdx; + return (l - r); +} + +/* The matches from the approach above will all be of the form + * (dictIdx, srcIdx, 1). this method combines contiguous matches + * of length MINMATCH or greater. Matches less than MINMATCH + * are discarded */ +static void ZSTD_eDist_combineMatches(ZSTD_eDist_state* state) +{ + /* Create a new buffer to put the combined matches into + * and memcpy to state->matches after */ + ZSTD_eDist_match* combinedMatches = + ZSTD_malloc(state->nbMatches * sizeof(ZSTD_eDist_match), + ZSTD_defaultCMem); + + U32 nbCombinedMatches = 1; + size_t i; + + /* Make sure that the srcIdx and dictIdx are in sorted order. + * The combination step won't work otherwise */ + qsort(state->matches, state->nbMatches, sizeof(ZSTD_eDist_match), ZSTD_eDist_matchComp); + + memcpy(combinedMatches, state->matches, sizeof(ZSTD_eDist_match)); + for (i = 1; i < state->nbMatches; i++) { + ZSTD_eDist_match const match = state->matches[i]; + ZSTD_eDist_match const combinedMatch = + combinedMatches[nbCombinedMatches - 1]; + if (combinedMatch.srcIdx + combinedMatch.matchLength == match.srcIdx && + combinedMatch.dictIdx + combinedMatch.matchLength == match.dictIdx) { + combinedMatches[nbCombinedMatches - 1].matchLength++; + } else { + /* Discard matches that are less than MINMATCH */ + if (combinedMatches[nbCombinedMatches - 1].matchLength < MINMATCH) { + nbCombinedMatches--; + } + + memcpy(combinedMatches + nbCombinedMatches, + state->matches + i, sizeof(ZSTD_eDist_match)); + nbCombinedMatches++; + } + } + memcpy(state->matches, combinedMatches, nbCombinedMatches * sizeof(ZSTD_eDist_match)); + state->nbMatches = nbCombinedMatches; + ZSTD_free(combinedMatches, ZSTD_defaultCMem); +} + +static size_t ZSTD_eDist_convertMatchesToSequences(ZSTD_Sequence* sequences, + ZSTD_eDist_state* state) +{ + const ZSTD_eDist_match* matches = state->matches; + size_t const nbMatches = state->nbMatches; + size_t const dictSize = state->dictSize; + size_t nbSequences = 0; + size_t i; + for (i = 0; i < nbMatches; i++) { + ZSTD_eDist_match const match = matches[i]; + U32 const litLength = !i ? match.srcIdx : + match.srcIdx - (matches[i - 1].srcIdx + matches[i - 1].matchLength); + U32 const offset = (match.srcIdx + dictSize) - match.dictIdx; + U32 const matchLength = match.matchLength; + sequences[nbSequences].offset = offset; + sequences[nbSequences].litLength = litLength; + sequences[nbSequences].matchLength = matchLength; + nbSequences++; + } + return nbSequences; +} + +/*-************************************* +* Interal utils +***************************************/ + +static size_t ZSTD_eDist_hamingDist(const BYTE* const a, + const BYTE* const b, size_t n) +{ + size_t i; + size_t dist = 0; + for (i = 0; i < n; i++) + dist += a[i] != b[i]; + return dist; +} + +/* This is a pretty naive recursive implementation that should only + * be used for quick tests obviously. Don't try and run this on a + * GB file or something. There are faster implementations. Use those + * if you need to run it for large files. */ +static size_t ZSTD_eDist_levenshteinDist(const BYTE* const s, + size_t const sn, const BYTE* const t, + size_t const tn) +{ + size_t a, b, c; + + if (!sn) + return tn; + if (!tn) + return sn; + + if (s[sn - 1] == t[tn - 1]) + return ZSTD_eDist_levenshteinDist( + s, sn - 1, t, tn - 1); + + a = ZSTD_eDist_levenshteinDist(s, sn - 1, t, tn - 1); + b = ZSTD_eDist_levenshteinDist(s, sn, t, tn - 1); + c = ZSTD_eDist_levenshteinDist(s, sn - 1, t, tn); + + if (a > b) + a = b; + if (a > c) + a = c; + + return a + 1; +} + +static void ZSTD_eDist_validateMatches(ZSTD_eDist_match* matches, + size_t const nbMatches, const BYTE* const dict, + size_t const dictSize, const BYTE* const src, + size_t const srcSize) +{ + size_t i; + for (i = 0; i < nbMatches; i++) { + ZSTD_eDist_match match = matches[i]; + U32 const dictIdx = match.dictIdx; + U32 const srcIdx = match.srcIdx; + U32 const matchLength = match.matchLength; + + assert(dictIdx + matchLength < dictSize); + assert(srcIdx + matchLength < srcSize); + assert(!memcmp(dict + dictIdx, src + srcIdx, matchLength)); + } +} + +/*-************************************* +* API +***************************************/ + +size_t ZSTD_eDist_genSequences(ZSTD_Sequence* sequences, + const void* dict, size_t dictSize, + const void* src, size_t srcSize, + int useHeuristics) +{ + size_t const nbDiags = dictSize + srcSize + 3; + S32* buffer = ZSTD_malloc(nbDiags * 2 * sizeof(S32), ZSTD_defaultCMem); + ZSTD_eDist_state state; + size_t nbSequences = 0; + + state.dict = (const BYTE*)dict; + state.src = (const BYTE*)src; + state.dictSize = dictSize; + state.srcSize = srcSize; + state.forwardDiag = buffer; + state.backwardDiag = buffer + nbDiags; + state.forwardDiag += srcSize + 1; + state.backwardDiag += srcSize + 1; + state.matches = ZSTD_malloc(srcSize * sizeof(ZSTD_eDist_match), ZSTD_defaultCMem); + state.nbMatches = 0; + + ZSTD_eDist_compare(&state, 0, dictSize, 0, srcSize, 1); + ZSTD_eDist_combineMatches(&state); + nbSequences = ZSTD_eDist_convertMatchesToSequences(sequences, &state); + + ZSTD_free(buffer, ZSTD_defaultCMem); + ZSTD_free(state.matches, ZSTD_defaultCMem); + + return nbSequences; +} diff --git a/dependencies/zstd-1.5.0/contrib/match_finders/zstd_edist.h b/dependencies/zstd-1.5.0/contrib/match_finders/zstd_edist.h new file mode 100644 index 0000000..c775a49 --- /dev/null +++ b/dependencies/zstd-1.5.0/contrib/match_finders/zstd_edist.h @@ -0,0 +1,70 @@ +/* + * Copyright (c) 2016-present, Yann Collet, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + +/* This match finder leverages techniques used in file comparison algorithms + * to find matches between a dictionary and a source file. + * + * The original motivation for studying this approach was to try and optimize + * Zstandard for the use case of patching: the most common scenario being + * updating an existing software package with the next version. When patching, + * the difference between the old version of the package and the new version + * is generally tiny (most of the new file will be identical to + * the old one). In more technical terms, the edit distance (the minimal number + * of changes required to take one sequence of bytes to another) between the + * files would be small relative to the size of the file. + * + * Various 'diffing' algorithms utilize this notion of edit distance and + * the corrensponding concept of a minimal edit script between two + * sequences to identify the regions within two files where they differ. + * The core algorithm used in this match finder is described in: + * + * "An O(ND) Difference Algorithm and its Variations", Eugene W. Myers, + * Algorithmica Vol. 1, 1986, pp. 251-266, + * . + * + * Additional algorithmic heuristics for speed improvement have also been included. + * These we inspired from implementations of various regular and binary diffing + * algorithms such as GNU diff, bsdiff, and Xdelta. + * + * Note: after some experimentation, this approach proved to not provide enough + * utility to justify the additional CPU used in finding matches. The one area + * where this approach consistenly outperforms Zstandard even on level 19 is + * when compressing small files (<10 KB) using a equally small dictionary that + * is very similar to the source file. For the use case that this was intended, + * (large similar files) this approach by itself took 5-10X longer than zstd-19 and + * generally resulted in 2-3X larger files. The core advantage that zstd-19 has + * over this appraoch for match finding is the overlapping matches. This approach + * cannot find any. + * + * I'm leaving this in the contrib section in case this ever becomes interesting + * to explore again. + * */ + +#ifndef ZSTD_EDIST_H +#define ZSTD_EDIST_H + +/*-************************************* +* Dependencies +***************************************/ + +#include +#include "zstd_internal.h" /* ZSTD_Sequence */ + +/*! ZSTD_eDist_genSequences() : + * Will populate the provided ZSTD_Sequence buffer with sequences + * based on the optimal or near-optimal (depending on 'useHeuristics') + * edit script between 'dict' and 'src.' + * @return : the number of sequences found */ +size_t ZSTD_eDist_genSequences(ZSTD_Sequence* sequences, + const void* dict, size_t dictSize, + const void* src, size_t srcSize, + int useHeuristics); + +#endif diff --git a/dependencies/zstd-1.5.0/contrib/premake/premake4.lua b/dependencies/zstd-1.5.0/contrib/premake/premake4.lua new file mode 100644 index 0000000..6675e2e --- /dev/null +++ b/dependencies/zstd-1.5.0/contrib/premake/premake4.lua @@ -0,0 +1,6 @@ +-- Include zstd.lua in your GENie or premake4 file, which exposes a project_zstd function +dofile('zstd.lua') + +solution 'example' + configurations { 'Debug', 'Release' } + project_zstd('../../lib/') diff --git a/dependencies/zstd-1.5.0/contrib/premake/zstd.lua b/dependencies/zstd-1.5.0/contrib/premake/zstd.lua new file mode 100644 index 0000000..df1ace3 --- /dev/null +++ b/dependencies/zstd-1.5.0/contrib/premake/zstd.lua @@ -0,0 +1,80 @@ +-- This GENie/premake file copies the behavior of the Makefile in the lib folder. +-- Basic usage: project_zstd(ZSTD_DIR) + +function project_zstd(dir, compression, decompression, deprecated, dictbuilder, legacy) + if compression == nil then compression = true end + if decompression == nil then decompression = true end + if deprecated == nil then deprecated = false end + if dictbuilder == nil then dictbuilder = false end + + if legacy == nil then legacy = 0 end + + if not compression then + dictbuilder = false + deprecated = false + end + + if not decompression then + legacy = 0 + deprecated = false + end + + project 'zstd' + kind 'StaticLib' + language 'C' + + files { + dir .. 'zstd.h', + dir .. 'common/**.c', + dir .. 'common/**.h' + } + + if compression then + files { + dir .. 'compress/**.c', + dir .. 'compress/**.h' + } + end + + if decompression then + files { + dir .. 'decompress/**.c', + dir .. 'decompress/**.h' + } + end + + if dictbuilder then + files { + dir .. 'dictBuilder/**.c', + dir .. 'dictBuilder/**.h' + } + end + + if deprecated then + files { + dir .. 'deprecated/**.c', + dir .. 'deprecated/**.h' + } + end + + if legacy ~= 0 then + if legacy >= 8 then + files { + dir .. 'legacy/zstd_v0' .. (legacy - 7) .. '.*' + } + end + includedirs { + dir .. 'legacy' + } + end + + includedirs { + dir, + dir .. 'common' + } + + defines { + 'XXH_NAMESPACE=ZSTD_', + 'ZSTD_LEGACY_SUPPORT=' .. legacy + } +end diff --git a/dependencies/zstd-1.5.0/contrib/pzstd/.gitignore b/dependencies/zstd-1.5.0/contrib/pzstd/.gitignore new file mode 100644 index 0000000..84e68fb --- /dev/null +++ b/dependencies/zstd-1.5.0/contrib/pzstd/.gitignore @@ -0,0 +1,2 @@ +# compilation result +pzstd diff --git a/dependencies/zstd-1.5.0/contrib/pzstd/BUCK b/dependencies/zstd-1.5.0/contrib/pzstd/BUCK new file mode 100644 index 0000000..d04eeed --- /dev/null +++ b/dependencies/zstd-1.5.0/contrib/pzstd/BUCK @@ -0,0 +1,72 @@ +cxx_library( + name='libpzstd', + visibility=['PUBLIC'], + header_namespace='', + exported_headers=[ + 'ErrorHolder.h', + 'Logging.h', + 'Pzstd.h', + ], + headers=[ + 'SkippableFrame.h', + ], + srcs=[ + 'Pzstd.cpp', + 'SkippableFrame.cpp', + ], + deps=[ + ':options', + '//contrib/pzstd/utils:utils', + '//lib:mem', + '//lib:zstd', + ], +) + +cxx_library( + name='options', + visibility=['PUBLIC'], + header_namespace='', + exported_headers=['Options.h'], + srcs=['Options.cpp'], + deps=[ + '//contrib/pzstd/utils:scope_guard', + '//lib:zstd', + '//programs:util', + ], +) + +cxx_binary( + name='pzstd', + visibility=['PUBLIC'], + srcs=['main.cpp'], + deps=[ + ':libpzstd', + ':options', + ], +) + +# Must run "make googletest" first +cxx_library( + name='gtest', + srcs=glob([ + 'googletest/googletest/src/gtest-all.cc', + 'googletest/googlemock/src/gmock-all.cc', + 'googletest/googlemock/src/gmock_main.cc', + ]), + header_namespace='', + exported_headers=subdir_glob([ + ('googletest/googletest/include', '**/*.h'), + ('googletest/googlemock/include', '**/*.h'), + ]), + headers=subdir_glob([ + ('googletest/googletest', 'src/*.cc'), + ('googletest/googletest', 'src/*.h'), + ('googletest/googlemock', 'src/*.cc'), + ('googletest/googlemock', 'src/*.h'), + ]), + platform_linker_flags=[ + ('android', []), + ('', ['-lpthread']), + ], + visibility=['PUBLIC'], +) diff --git a/dependencies/zstd-1.5.0/contrib/pzstd/ErrorHolder.h b/dependencies/zstd-1.5.0/contrib/pzstd/ErrorHolder.h new file mode 100644 index 0000000..829651c --- /dev/null +++ b/dependencies/zstd-1.5.0/contrib/pzstd/ErrorHolder.h @@ -0,0 +1,54 @@ +/* + * Copyright (c) 2016-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + */ +#pragma once + +#include +#include +#include +#include + +namespace pzstd { + +// Coordinates graceful shutdown of the pzstd pipeline +class ErrorHolder { + std::atomic error_; + std::string message_; + + public: + ErrorHolder() : error_(false) {} + + bool hasError() noexcept { + return error_.load(); + } + + void setError(std::string message) noexcept { + // Given multiple possibly concurrent calls, exactly one will ever succeed. + bool expected = false; + if (error_.compare_exchange_strong(expected, true)) { + message_ = std::move(message); + } + } + + bool check(bool predicate, std::string message) noexcept { + if (!predicate) { + setError(std::move(message)); + } + return !hasError(); + } + + std::string getError() noexcept { + error_.store(false); + return std::move(message_); + } + + ~ErrorHolder() { + assert(!hasError()); + } +}; +} diff --git a/dependencies/zstd-1.5.0/contrib/pzstd/Logging.h b/dependencies/zstd-1.5.0/contrib/pzstd/Logging.h new file mode 100644 index 0000000..beb160b --- /dev/null +++ b/dependencies/zstd-1.5.0/contrib/pzstd/Logging.h @@ -0,0 +1,72 @@ +/* + * Copyright (c) 2016-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + */ +#pragma once + +#include +#include + +namespace pzstd { + +constexpr int kLogError = 1; +constexpr int kLogInfo = 2; +constexpr int kLogDebug = 3; +constexpr int kLogVerbose = 4; + +class Logger { + std::mutex mutex_; + FILE* out_; + const int level_; + + using Clock = std::chrono::system_clock; + Clock::time_point lastUpdate_; + std::chrono::milliseconds refreshRate_; + + public: + explicit Logger(int level, FILE* out = stderr) + : out_(out), level_(level), lastUpdate_(Clock::now()), + refreshRate_(150) {} + + + bool logsAt(int level) { + return level <= level_; + } + + template + void operator()(int level, const char *fmt, Args... args) { + if (level > level_) { + return; + } + std::lock_guard lock(mutex_); + std::fprintf(out_, fmt, args...); + } + + template + void update(int level, const char *fmt, Args... args) { + if (level > level_) { + return; + } + std::lock_guard lock(mutex_); + auto now = Clock::now(); + if (now - lastUpdate_ > refreshRate_) { + lastUpdate_ = now; + std::fprintf(out_, "\r"); + std::fprintf(out_, fmt, args...); + } + } + + void clear(int level) { + if (level > level_) { + return; + } + std::lock_guard lock(mutex_); + std::fprintf(out_, "\r%79s\r", ""); + } +}; + +} diff --git a/dependencies/zstd-1.5.0/contrib/pzstd/Makefile b/dependencies/zstd-1.5.0/contrib/pzstd/Makefile new file mode 100644 index 0000000..25265e7 --- /dev/null +++ b/dependencies/zstd-1.5.0/contrib/pzstd/Makefile @@ -0,0 +1,274 @@ +# ################################################################ +# Copyright (c) 2016-present, Facebook, Inc. +# All rights reserved. +# +# This source code is licensed under both the BSD-style license (found in the +# LICENSE file in the root directory of this source tree) and the GPLv2 (found +# in the COPYING file in the root directory of this source tree). +# ################################################################ + +# Standard variables for installation +DESTDIR ?= +PREFIX ?= /usr/local +BINDIR := $(DESTDIR)$(PREFIX)/bin + +ZSTDDIR = ../../lib +PROGDIR = ../../programs + +# External program to use to run tests, e.g. qemu or valgrind +TESTPROG ?= +# Flags to pass to the tests +TESTFLAGS ?= + +# We use gcc/clang to generate the header dependencies of files +DEPFLAGS = -MMD -MP -MF $*.Td +POSTCOMPILE = mv -f $*.Td $*.d + +# CFLAGS, CXXFLAGS, CPPFLAGS, and LDFLAGS are for the users to override +CFLAGS ?= -O3 -Wall -Wextra +CXXFLAGS ?= -O3 -Wall -Wextra -pedantic +CPPFLAGS ?= +LDFLAGS ?= + +# PZstd uses legacy APIs +CFLAGS += -Wno-deprecated-declarations + +# Include flags +PZSTD_INC = -I$(ZSTDDIR) -I$(ZSTDDIR)/common -I$(PROGDIR) -I. +GTEST_INC = -isystem googletest/googletest/include + +PZSTD_CPPFLAGS = $(PZSTD_INC) +PZSTD_CCXXFLAGS = +PZSTD_CFLAGS = $(PZSTD_CCXXFLAGS) +PZSTD_CXXFLAGS = $(PZSTD_CCXXFLAGS) -std=c++11 +PZSTD_LDFLAGS = +EXTRA_FLAGS = +ALL_CFLAGS = $(EXTRA_FLAGS) $(CPPFLAGS) $(PZSTD_CPPFLAGS) $(CFLAGS) $(PZSTD_CFLAGS) +ALL_CXXFLAGS = $(EXTRA_FLAGS) $(CPPFLAGS) $(PZSTD_CPPFLAGS) $(CXXFLAGS) $(PZSTD_CXXFLAGS) +ALL_LDFLAGS = $(EXTRA_FLAGS) $(CXXFLAGS) $(LDFLAGS) $(PZSTD_LDFLAGS) + + +# gtest libraries need to go before "-lpthread" because they depend on it. +GTEST_LIB = -L googletest/build/googlemock/gtest +LIBS = + +# Compilation commands +LD_COMMAND = $(CXX) $^ $(ALL_LDFLAGS) $(LIBS) -pthread -o $@ +CC_COMMAND = $(CC) $(DEPFLAGS) $(ALL_CFLAGS) -c $< -o $@ +CXX_COMMAND = $(CXX) $(DEPFLAGS) $(ALL_CXXFLAGS) -c $< -o $@ + +# Get a list of all zstd files so we rebuild the static library when we need to +ZSTDCOMMON_FILES := $(wildcard $(ZSTDDIR)/common/*.c) \ + $(wildcard $(ZSTDDIR)/common/*.h) +ZSTDCOMP_FILES := $(wildcard $(ZSTDDIR)/compress/*.c) \ + $(wildcard $(ZSTDDIR)/compress/*.h) +ZSTDDECOMP_FILES := $(wildcard $(ZSTDDIR)/decompress/*.c) \ + $(wildcard $(ZSTDDIR)/decompress/*.h) +ZSTDPROG_FILES := $(wildcard $(PROGDIR)/*.c) \ + $(wildcard $(PROGDIR)/*.h) +ZSTD_FILES := $(wildcard $(ZSTDDIR)/*.h) \ + $(ZSTDDECOMP_FILES) $(ZSTDCOMMON_FILES) $(ZSTDCOMP_FILES) \ + $(ZSTDPROG_FILES) + +# List all the pzstd source files so we can determine their dependencies +PZSTD_SRCS := $(wildcard *.cpp) +PZSTD_TESTS := $(wildcard test/*.cpp) +UTILS_TESTS := $(wildcard utils/test/*.cpp) +ALL_SRCS := $(PZSTD_SRCS) $(PZSTD_TESTS) $(UTILS_TESTS) + + +# Define *.exe as extension for Windows systems +ifneq (,$(filter Windows%,$(OS))) +EXT =.exe +else +EXT = +endif + +# Standard targets +.PHONY: default +default: all + +.PHONY: test-pzstd +test-pzstd: TESTFLAGS=--gtest_filter=-*ExtremelyLarge* +test-pzstd: clean googletest pzstd tests check + +.PHONY: test-pzstd32 +test-pzstd32: clean googletest32 all32 check + +.PHONY: test-pzstd-tsan +test-pzstd-tsan: LDFLAGS=-fuse-ld=gold +test-pzstd-tsan: TESTFLAGS=--gtest_filter=-*ExtremelyLarge* +test-pzstd-tsan: clean googletest tsan check + +.PHONY: test-pzstd-asan +test-pzstd-asan: LDFLAGS=-fuse-ld=gold +test-pzstd-asan: TESTFLAGS=--gtest_filter=-*ExtremelyLarge* +test-pzstd-asan: clean asan check + +.PHONY: check +check: + $(TESTPROG) ./utils/test/BufferTest$(EXT) $(TESTFLAGS) + $(TESTPROG) ./utils/test/RangeTest$(EXT) $(TESTFLAGS) + $(TESTPROG) ./utils/test/ResourcePoolTest$(EXT) $(TESTFLAGS) + $(TESTPROG) ./utils/test/ScopeGuardTest$(EXT) $(TESTFLAGS) + $(TESTPROG) ./utils/test/ThreadPoolTest$(EXT) $(TESTFLAGS) + $(TESTPROG) ./utils/test/WorkQueueTest$(EXT) $(TESTFLAGS) + $(TESTPROG) ./test/OptionsTest$(EXT) $(TESTFLAGS) + $(TESTPROG) ./test/PzstdTest$(EXT) $(TESTFLAGS) + +.PHONY: install +install: PZSTD_CPPFLAGS += -DNDEBUG +install: pzstd$(EXT) + install -d -m 755 $(BINDIR)/ + install -m 755 pzstd$(EXT) $(BINDIR)/pzstd$(EXT) + +.PHONY: uninstall +uninstall: + $(RM) $(BINDIR)/pzstd$(EXT) + +# Targets for many different builds +.PHONY: all +all: PZSTD_CPPFLAGS += -DNDEBUG +all: pzstd$(EXT) + +.PHONY: debug +debug: EXTRA_FLAGS += -g +debug: pzstd$(EXT) tests roundtrip + +.PHONY: tsan +tsan: PZSTD_CCXXFLAGS += -fsanitize=thread -fPIC +tsan: PZSTD_LDFLAGS += -fsanitize=thread +tsan: debug + +.PHONY: asan +asan: EXTRA_FLAGS += -fsanitize=address +asan: debug + +.PHONY: ubsan +ubsan: EXTRA_FLAGS += -fsanitize=undefined +ubsan: debug + +.PHONY: all32 +all32: EXTRA_FLAGS += -m32 +all32: all tests roundtrip + +.PHONY: debug32 +debug32: EXTRA_FLAGS += -m32 +debug32: debug + +.PHONY: asan32 +asan32: EXTRA_FLAGS += -m32 +asan32: asan + +.PHONY: tsan32 +tsan32: EXTRA_FLAGS += -m32 +tsan32: tsan + +.PHONY: ubsan32 +ubsan32: EXTRA_FLAGS += -m32 +ubsan32: ubsan + +# Run long round trip tests +.PHONY: roundtripcheck +roundtripcheck: roundtrip check + $(TESTPROG) ./test/RoundTripTest$(EXT) $(TESTFLAGS) + +# Build the main binary +pzstd$(EXT): main.o $(PROGDIR)/util.o Options.o Pzstd.o SkippableFrame.o $(ZSTDDIR)/libzstd.a + $(LD_COMMAND) + +# Target that depends on all the tests +.PHONY: tests +tests: EXTRA_FLAGS += -Wno-deprecated-declarations +tests: $(patsubst %,%$(EXT),$(basename $(PZSTD_TESTS) $(UTILS_TESTS))) + +# Build the round trip tests +.PHONY: roundtrip +roundtrip: EXTRA_FLAGS += -Wno-deprecated-declarations +roundtrip: test/RoundTripTest$(EXT) + +# Use the static library that zstd builds for simplicity and +# so we get the compiler options correct +$(ZSTDDIR)/libzstd.a: $(ZSTD_FILES) + CFLAGS="$(ALL_CFLAGS)" LDFLAGS="$(ALL_LDFLAGS)" $(MAKE) -C $(ZSTDDIR) libzstd.a + +# Rules to build the tests +test/RoundTripTest$(EXT): test/RoundTripTest.o $(PROGDIR)/datagen.o \ + $(PROGDIR)/util.o Options.o \ + Pzstd.o SkippableFrame.o $(ZSTDDIR)/libzstd.a + $(LD_COMMAND) + +test/%Test$(EXT): PZSTD_LDFLAGS += $(GTEST_LIB) +test/%Test$(EXT): LIBS += -lgtest -lgtest_main +test/%Test$(EXT): test/%Test.o $(PROGDIR)/datagen.o \ + $(PROGDIR)/util.o Options.o Pzstd.o \ + SkippableFrame.o $(ZSTDDIR)/libzstd.a + $(LD_COMMAND) + +utils/test/%Test$(EXT): PZSTD_LDFLAGS += $(GTEST_LIB) +utils/test/%Test$(EXT): LIBS += -lgtest -lgtest_main +utils/test/%Test$(EXT): utils/test/%Test.o + $(LD_COMMAND) + + +GTEST_CMAKEFLAGS = + +# Install googletest +.PHONY: googletest +googletest: PZSTD_CCXXFLAGS += -fPIC +googletest: + @$(RM) -rf googletest + @git clone https://github.com/google/googletest + @mkdir -p googletest/build + @cd googletest/build && cmake $(GTEST_CMAKEFLAGS) -DCMAKE_CXX_FLAGS="$(ALL_CXXFLAGS)" .. && $(MAKE) + +.PHONY: googletest32 +googletest32: PZSTD_CCXXFLAGS += -m32 +googletest32: googletest + +.PHONY: googletest-mingw64 +googletest-mingw64: GTEST_CMAKEFLAGS += -G "MSYS Makefiles" +googletest-mingw64: googletest + +.PHONY: clean +clean: + $(RM) -f *.o pzstd$(EXT) *.Td *.d + $(RM) -f test/*.o test/*Test$(EXT) test/*.Td test/*.d + $(RM) -f utils/test/*.o utils/test/*Test$(EXT) utils/test/*.Td utils/test/*.d + $(RM) -f $(PROGDIR)/*.o $(PROGDIR)/*.Td $(PROGDIR)/*.d + $(MAKE) -C $(ZSTDDIR) clean + @echo Cleaning completed + + +# Cancel implicit rules +%.o: %.c +%.o: %.cpp + +# Object file rules +%.o: %.c + $(CC_COMMAND) + $(POSTCOMPILE) + +$(PROGDIR)/%.o: $(PROGDIR)/%.c + $(CC_COMMAND) + $(POSTCOMPILE) + +%.o: %.cpp + $(CXX_COMMAND) + $(POSTCOMPILE) + +test/%.o: PZSTD_CPPFLAGS += $(GTEST_INC) +test/%.o: test/%.cpp + $(CXX_COMMAND) + $(POSTCOMPILE) + +utils/test/%.o: PZSTD_CPPFLAGS += $(GTEST_INC) +utils/test/%.o: utils/test/%.cpp + $(CXX_COMMAND) + $(POSTCOMPILE) + +# Dependency file stuff +.PRECIOUS: %.d test/%.d utils/test/%.d + +# Include rules that specify header file dependencies +-include $(patsubst %,%.d,$(basename $(ALL_SRCS))) diff --git a/dependencies/zstd-1.5.0/contrib/pzstd/Options.cpp b/dependencies/zstd-1.5.0/contrib/pzstd/Options.cpp new file mode 100644 index 0000000..3729222 --- /dev/null +++ b/dependencies/zstd-1.5.0/contrib/pzstd/Options.cpp @@ -0,0 +1,424 @@ +/* + * Copyright (c) 2016-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + */ +#include "Options.h" +#include "util.h" +#include "utils/ScopeGuard.h" + +#include +#include +#include +#include +#include +#include +#include + + +namespace pzstd { + +namespace { +unsigned defaultNumThreads() { +#ifdef PZSTD_NUM_THREADS + return PZSTD_NUM_THREADS; +#else + return std::thread::hardware_concurrency(); +#endif +} + +unsigned parseUnsigned(const char **arg) { + unsigned result = 0; + while (**arg >= '0' && **arg <= '9') { + result *= 10; + result += **arg - '0'; + ++(*arg); + } + return result; +} + +const char *getArgument(const char *options, const char **argv, int &i, + int argc) { + if (options[1] != 0) { + return options + 1; + } + ++i; + if (i == argc) { + std::fprintf(stderr, "Option -%c requires an argument, but none provided\n", + *options); + return nullptr; + } + return argv[i]; +} + +const std::string kZstdExtension = ".zst"; +constexpr char kStdIn[] = "-"; +constexpr char kStdOut[] = "-"; +constexpr unsigned kDefaultCompressionLevel = 3; +constexpr unsigned kMaxNonUltraCompressionLevel = 19; + +#ifdef _WIN32 +const char nullOutput[] = "nul"; +#else +const char nullOutput[] = "/dev/null"; +#endif + +void notSupported(const char *option) { + std::fprintf(stderr, "Operation not supported: %s\n", option); +} + +void usage() { + std::fprintf(stderr, "Usage:\n"); + std::fprintf(stderr, " pzstd [args] [FILE(s)]\n"); + std::fprintf(stderr, "Parallel ZSTD options:\n"); + std::fprintf(stderr, " -p, --processes # : number of threads to use for (de)compression (default:)\n"); + + std::fprintf(stderr, "ZSTD options:\n"); + std::fprintf(stderr, " -# : # compression level (1-%d, default:%d)\n", kMaxNonUltraCompressionLevel, kDefaultCompressionLevel); + std::fprintf(stderr, " -d, --decompress : decompression\n"); + std::fprintf(stderr, " -o file : result stored into `file` (only if 1 input file)\n"); + std::fprintf(stderr, " -f, --force : overwrite output without prompting, (de)compress links\n"); + std::fprintf(stderr, " --rm : remove source file(s) after successful (de)compression\n"); + std::fprintf(stderr, " -k, --keep : preserve source file(s) (default)\n"); + std::fprintf(stderr, " -h, --help : display help and exit\n"); + std::fprintf(stderr, " -V, --version : display version number and exit\n"); + std::fprintf(stderr, " -v, --verbose : verbose mode; specify multiple times to increase log level (default:2)\n"); + std::fprintf(stderr, " -q, --quiet : suppress warnings; specify twice to suppress errors too\n"); + std::fprintf(stderr, " -c, --stdout : force write to standard output, even if it is the console\n"); +#ifdef UTIL_HAS_CREATEFILELIST + std::fprintf(stderr, " -r : operate recursively on directories\n"); +#endif + std::fprintf(stderr, " --ultra : enable levels beyond %i, up to %i (requires more memory)\n", kMaxNonUltraCompressionLevel, ZSTD_maxCLevel()); + std::fprintf(stderr, " -C, --check : integrity check (default)\n"); + std::fprintf(stderr, " --no-check : no integrity check\n"); + std::fprintf(stderr, " -t, --test : test compressed file integrity\n"); + std::fprintf(stderr, " -- : all arguments after \"--\" are treated as files\n"); +} +} // anonymous namespace + +Options::Options() + : numThreads(defaultNumThreads()), maxWindowLog(23), + compressionLevel(kDefaultCompressionLevel), decompress(false), + overwrite(false), keepSource(true), writeMode(WriteMode::Auto), + checksum(true), verbosity(2) {} + +Options::Status Options::parse(int argc, const char **argv) { + bool test = false; + bool recursive = false; + bool ultra = false; + bool forceStdout = false; + bool followLinks = false; + // Local copy of input files, which are pointers into argv. + std::vector localInputFiles; + for (int i = 1; i < argc; ++i) { + const char *arg = argv[i]; + // Protect against empty arguments + if (arg[0] == 0) { + continue; + } + // Everything after "--" is an input file + if (!std::strcmp(arg, "--")) { + ++i; + std::copy(argv + i, argv + argc, std::back_inserter(localInputFiles)); + break; + } + // Long arguments that don't have a short option + { + bool isLongOption = true; + if (!std::strcmp(arg, "--rm")) { + keepSource = false; + } else if (!std::strcmp(arg, "--ultra")) { + ultra = true; + maxWindowLog = 0; + } else if (!std::strcmp(arg, "--no-check")) { + checksum = false; + } else if (!std::strcmp(arg, "--sparse")) { + writeMode = WriteMode::Sparse; + notSupported("Sparse mode"); + return Status::Failure; + } else if (!std::strcmp(arg, "--no-sparse")) { + writeMode = WriteMode::Regular; + notSupported("Sparse mode"); + return Status::Failure; + } else if (!std::strcmp(arg, "--dictID")) { + notSupported(arg); + return Status::Failure; + } else if (!std::strcmp(arg, "--no-dictID")) { + notSupported(arg); + return Status::Failure; + } else { + isLongOption = false; + } + if (isLongOption) { + continue; + } + } + // Arguments with a short option simply set their short option. + const char *options = nullptr; + if (!std::strcmp(arg, "--processes")) { + options = "p"; + } else if (!std::strcmp(arg, "--version")) { + options = "V"; + } else if (!std::strcmp(arg, "--help")) { + options = "h"; + } else if (!std::strcmp(arg, "--decompress")) { + options = "d"; + } else if (!std::strcmp(arg, "--force")) { + options = "f"; + } else if (!std::strcmp(arg, "--stdout")) { + options = "c"; + } else if (!std::strcmp(arg, "--keep")) { + options = "k"; + } else if (!std::strcmp(arg, "--verbose")) { + options = "v"; + } else if (!std::strcmp(arg, "--quiet")) { + options = "q"; + } else if (!std::strcmp(arg, "--check")) { + options = "C"; + } else if (!std::strcmp(arg, "--test")) { + options = "t"; + } else if (arg[0] == '-' && arg[1] != 0) { + options = arg + 1; + } else { + localInputFiles.emplace_back(arg); + continue; + } + assert(options != nullptr); + + bool finished = false; + while (!finished && *options != 0) { + // Parse the compression level + if (*options >= '0' && *options <= '9') { + compressionLevel = parseUnsigned(&options); + continue; + } + + switch (*options) { + case 'h': + case 'H': + usage(); + return Status::Message; + case 'V': + std::fprintf(stderr, "PZSTD version: %s.\n", ZSTD_VERSION_STRING); + return Status::Message; + case 'p': { + finished = true; + const char *optionArgument = getArgument(options, argv, i, argc); + if (optionArgument == nullptr) { + return Status::Failure; + } + if (*optionArgument < '0' || *optionArgument > '9') { + std::fprintf(stderr, "Option -p expects a number, but %s provided\n", + optionArgument); + return Status::Failure; + } + numThreads = parseUnsigned(&optionArgument); + if (*optionArgument != 0) { + std::fprintf(stderr, + "Option -p expects a number, but %u%s provided\n", + numThreads, optionArgument); + return Status::Failure; + } + break; + } + case 'o': { + finished = true; + const char *optionArgument = getArgument(options, argv, i, argc); + if (optionArgument == nullptr) { + return Status::Failure; + } + outputFile = optionArgument; + break; + } + case 'C': + checksum = true; + break; + case 'k': + keepSource = true; + break; + case 'd': + decompress = true; + break; + case 'f': + overwrite = true; + forceStdout = true; + followLinks = true; + break; + case 't': + test = true; + decompress = true; + break; +#ifdef UTIL_HAS_CREATEFILELIST + case 'r': + recursive = true; + break; +#endif + case 'c': + outputFile = kStdOut; + forceStdout = true; + break; + case 'v': + ++verbosity; + break; + case 'q': + --verbosity; + // Ignore them for now + break; + // Unsupported options from Zstd + case 'D': + case 's': + notSupported("Zstd dictionaries."); + return Status::Failure; + case 'b': + case 'e': + case 'i': + case 'B': + notSupported("Zstd benchmarking options."); + return Status::Failure; + default: + std::fprintf(stderr, "Invalid argument: %s\n", arg); + return Status::Failure; + } + if (!finished) { + ++options; + } + } // while (*options != 0); + } // for (int i = 1; i < argc; ++i); + + // Set options for test mode + if (test) { + outputFile = nullOutput; + keepSource = true; + } + + // Input file defaults to standard input if not provided. + if (localInputFiles.empty()) { + localInputFiles.emplace_back(kStdIn); + } + + // Check validity of input files + if (localInputFiles.size() > 1) { + const auto it = std::find(localInputFiles.begin(), localInputFiles.end(), + std::string{kStdIn}); + if (it != localInputFiles.end()) { + std::fprintf( + stderr, + "Cannot specify standard input when handling multiple files\n"); + return Status::Failure; + } + } + if (localInputFiles.size() > 1 || recursive) { + if (!outputFile.empty() && outputFile != nullOutput) { + std::fprintf( + stderr, + "Cannot specify an output file when handling multiple inputs\n"); + return Status::Failure; + } + } + + g_utilDisplayLevel = verbosity; + // Remove local input files that are symbolic links + if (!followLinks) { + std::remove_if(localInputFiles.begin(), localInputFiles.end(), + [&](const char *path) { + bool isLink = UTIL_isLink(path); + if (isLink && verbosity >= 2) { + std::fprintf( + stderr, + "Warning : %s is symbolic link, ignoring\n", + path); + } + return isLink; + }); + } + + // Translate input files/directories into files to (de)compress + if (recursive) { + FileNamesTable* const files = UTIL_createExpandedFNT(localInputFiles.data(), localInputFiles.size(), followLinks); + if (files == nullptr) { + std::fprintf(stderr, "Error traversing directories\n"); + return Status::Failure; + } + auto guard = + makeScopeGuard([&] { UTIL_freeFileNamesTable(files); }); + if (files->tableSize == 0) { + std::fprintf(stderr, "No files found\n"); + return Status::Failure; + } + inputFiles.resize(files->tableSize); + std::copy(files->fileNames, files->fileNames + files->tableSize, inputFiles.begin()); + } else { + inputFiles.resize(localInputFiles.size()); + std::copy(localInputFiles.begin(), localInputFiles.end(), + inputFiles.begin()); + } + localInputFiles.clear(); + assert(!inputFiles.empty()); + + // If reading from standard input, default to standard output + if (inputFiles[0] == kStdIn && outputFile.empty()) { + assert(inputFiles.size() == 1); + outputFile = "-"; + } + + if (inputFiles[0] == kStdIn && IS_CONSOLE(stdin)) { + assert(inputFiles.size() == 1); + std::fprintf(stderr, "Cannot read input from interactive console\n"); + return Status::Failure; + } + if (outputFile == "-" && IS_CONSOLE(stdout) && !(forceStdout && decompress)) { + std::fprintf(stderr, "Will not write to console stdout unless -c or -f is " + "specified and decompressing\n"); + return Status::Failure; + } + + // Check compression level + { + unsigned maxCLevel = + ultra ? ZSTD_maxCLevel() : kMaxNonUltraCompressionLevel; + if (compressionLevel > maxCLevel || compressionLevel == 0) { + std::fprintf(stderr, "Invalid compression level %u.\n", compressionLevel); + return Status::Failure; + } + } + + // Check that numThreads is set + if (numThreads == 0) { + std::fprintf(stderr, "Invalid arguments: # of threads not specified " + "and unable to determine hardware concurrency.\n"); + return Status::Failure; + } + + // Modify verbosity + // If we are piping input and output, turn off interaction + if (inputFiles[0] == kStdIn && outputFile == kStdOut && verbosity == 2) { + verbosity = 1; + } + // If we are in multi-file mode, turn off interaction + if (inputFiles.size() > 1 && verbosity == 2) { + verbosity = 1; + } + + return Status::Success; +} + +std::string Options::getOutputFile(const std::string &inputFile) const { + if (!outputFile.empty()) { + return outputFile; + } + // Attempt to add/remove zstd extension from the input file + if (decompress) { + int stemSize = inputFile.size() - kZstdExtension.size(); + if (stemSize > 0 && inputFile.substr(stemSize) == kZstdExtension) { + return inputFile.substr(0, stemSize); + } else { + return ""; + } + } else { + return inputFile + kZstdExtension; + } +} +} diff --git a/dependencies/zstd-1.5.0/contrib/pzstd/Options.h b/dependencies/zstd-1.5.0/contrib/pzstd/Options.h new file mode 100644 index 0000000..924543a --- /dev/null +++ b/dependencies/zstd-1.5.0/contrib/pzstd/Options.h @@ -0,0 +1,71 @@ +/* + * Copyright (c) 2016-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + */ +#pragma once + +#define ZSTD_STATIC_LINKING_ONLY +#define ZSTD_DISABLE_DEPRECATE_WARNINGS /* No deprecation warnings, pzstd itself is deprecated + * and uses deprecated functions + */ +#include "zstd.h" +#undef ZSTD_STATIC_LINKING_ONLY + +#include +#include +#include + +namespace pzstd { + +struct Options { + enum class WriteMode { Regular, Auto, Sparse }; + + unsigned numThreads; + unsigned maxWindowLog; + unsigned compressionLevel; + bool decompress; + std::vector inputFiles; + std::string outputFile; + bool overwrite; + bool keepSource; + WriteMode writeMode; + bool checksum; + int verbosity; + + enum class Status { + Success, // Successfully parsed options + Failure, // Failure to parse options + Message // Options specified to print a message (e.g. "-h") + }; + + Options(); + Options(unsigned numThreads, unsigned maxWindowLog, unsigned compressionLevel, + bool decompress, std::vector inputFiles, + std::string outputFile, bool overwrite, bool keepSource, + WriteMode writeMode, bool checksum, int verbosity) + : numThreads(numThreads), maxWindowLog(maxWindowLog), + compressionLevel(compressionLevel), decompress(decompress), + inputFiles(std::move(inputFiles)), outputFile(std::move(outputFile)), + overwrite(overwrite), keepSource(keepSource), writeMode(writeMode), + checksum(checksum), verbosity(verbosity) {} + + Status parse(int argc, const char **argv); + + ZSTD_parameters determineParameters() const { + ZSTD_parameters params = ZSTD_getParams(compressionLevel, 0, 0); + params.fParams.contentSizeFlag = 0; + params.fParams.checksumFlag = checksum; + if (maxWindowLog != 0 && params.cParams.windowLog > maxWindowLog) { + params.cParams.windowLog = maxWindowLog; + params.cParams = ZSTD_adjustCParams(params.cParams, 0, 0); + } + return params; + } + + std::string getOutputFile(const std::string &inputFile) const; +}; +} diff --git a/dependencies/zstd-1.5.0/contrib/pzstd/Pzstd.cpp b/dependencies/zstd-1.5.0/contrib/pzstd/Pzstd.cpp new file mode 100644 index 0000000..2c09bda --- /dev/null +++ b/dependencies/zstd-1.5.0/contrib/pzstd/Pzstd.cpp @@ -0,0 +1,611 @@ +/* + * Copyright (c) 2016-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + */ +#include "platform.h" /* Large Files support, SET_BINARY_MODE */ +#include "Pzstd.h" +#include "SkippableFrame.h" +#include "utils/FileSystem.h" +#include "utils/Range.h" +#include "utils/ScopeGuard.h" +#include "utils/ThreadPool.h" +#include "utils/WorkQueue.h" + +#include +#include +#include +#include +#include +#include + + +namespace pzstd { + +namespace { +#ifdef _WIN32 +const std::string nullOutput = "nul"; +#else +const std::string nullOutput = "/dev/null"; +#endif +} + +using std::size_t; + +static std::uintmax_t fileSizeOrZero(const std::string &file) { + if (file == "-") { + return 0; + } + std::error_code ec; + auto size = file_size(file, ec); + if (ec) { + size = 0; + } + return size; +} + +static std::uint64_t handleOneInput(const Options &options, + const std::string &inputFile, + FILE* inputFd, + const std::string &outputFile, + FILE* outputFd, + SharedState& state) { + auto inputSize = fileSizeOrZero(inputFile); + // WorkQueue outlives ThreadPool so in the case of error we are certain + // we don't accidentally try to call push() on it after it is destroyed + WorkQueue> outs{options.numThreads + 1}; + std::uint64_t bytesRead; + std::uint64_t bytesWritten; + { + // Initialize the (de)compression thread pool with numThreads + ThreadPool executor(options.numThreads); + // Run the reader thread on an extra thread + ThreadPool readExecutor(1); + if (!options.decompress) { + // Add a job that reads the input and starts all the compression jobs + readExecutor.add( + [&state, &outs, &executor, inputFd, inputSize, &options, &bytesRead] { + bytesRead = asyncCompressChunks( + state, + outs, + executor, + inputFd, + inputSize, + options.numThreads, + options.determineParameters()); + }); + // Start writing + bytesWritten = writeFile(state, outs, outputFd, options.decompress); + } else { + // Add a job that reads the input and starts all the decompression jobs + readExecutor.add([&state, &outs, &executor, inputFd, &bytesRead] { + bytesRead = asyncDecompressFrames(state, outs, executor, inputFd); + }); + // Start writing + bytesWritten = writeFile(state, outs, outputFd, options.decompress); + } + } + if (!state.errorHolder.hasError()) { + std::string inputFileName = inputFile == "-" ? "stdin" : inputFile; + std::string outputFileName = outputFile == "-" ? "stdout" : outputFile; + if (!options.decompress) { + double ratio = static_cast(bytesWritten) / + static_cast(bytesRead + !bytesRead); + state.log(kLogInfo, "%-20s :%6.2f%% (%6" PRIu64 " => %6" PRIu64 + " bytes, %s)\n", + inputFileName.c_str(), ratio * 100, bytesRead, bytesWritten, + outputFileName.c_str()); + } else { + state.log(kLogInfo, "%-20s: %" PRIu64 " bytes \n", + inputFileName.c_str(),bytesWritten); + } + } + return bytesWritten; +} + +static FILE *openInputFile(const std::string &inputFile, + ErrorHolder &errorHolder) { + if (inputFile == "-") { + SET_BINARY_MODE(stdin); + return stdin; + } + // Check if input file is a directory + { + std::error_code ec; + if (is_directory(inputFile, ec)) { + errorHolder.setError("Output file is a directory -- ignored"); + return nullptr; + } + } + auto inputFd = std::fopen(inputFile.c_str(), "rb"); + if (!errorHolder.check(inputFd != nullptr, "Failed to open input file")) { + return nullptr; + } + return inputFd; +} + +static FILE *openOutputFile(const Options &options, + const std::string &outputFile, + SharedState& state) { + if (outputFile == "-") { + SET_BINARY_MODE(stdout); + return stdout; + } + // Check if the output file exists and then open it + if (!options.overwrite && outputFile != nullOutput) { + auto outputFd = std::fopen(outputFile.c_str(), "rb"); + if (outputFd != nullptr) { + std::fclose(outputFd); + if (!state.log.logsAt(kLogInfo)) { + state.errorHolder.setError("Output file exists"); + return nullptr; + } + state.log( + kLogInfo, + "pzstd: %s already exists; do you wish to overwrite (y/n) ? ", + outputFile.c_str()); + int c = getchar(); + if (c != 'y' && c != 'Y') { + state.errorHolder.setError("Not overwritten"); + return nullptr; + } + } + } + auto outputFd = std::fopen(outputFile.c_str(), "wb"); + if (!state.errorHolder.check( + outputFd != nullptr, "Failed to open output file")) { + return nullptr; + } + return outputFd; +} + +int pzstdMain(const Options &options) { + int returnCode = 0; + SharedState state(options); + for (const auto& input : options.inputFiles) { + // Setup the shared state + auto printErrorGuard = makeScopeGuard([&] { + if (state.errorHolder.hasError()) { + returnCode = 1; + state.log(kLogError, "pzstd: %s: %s.\n", input.c_str(), + state.errorHolder.getError().c_str()); + } + }); + // Open the input file + auto inputFd = openInputFile(input, state.errorHolder); + if (inputFd == nullptr) { + continue; + } + auto closeInputGuard = makeScopeGuard([&] { std::fclose(inputFd); }); + // Open the output file + auto outputFile = options.getOutputFile(input); + if (!state.errorHolder.check(outputFile != "", + "Input file does not have extension .zst")) { + continue; + } + auto outputFd = openOutputFile(options, outputFile, state); + if (outputFd == nullptr) { + continue; + } + auto closeOutputGuard = makeScopeGuard([&] { std::fclose(outputFd); }); + // (de)compress the file + handleOneInput(options, input, inputFd, outputFile, outputFd, state); + if (state.errorHolder.hasError()) { + continue; + } + // Delete the input file if necessary + if (!options.keepSource) { + // Be sure that we are done and have written everything before we delete + if (!state.errorHolder.check(std::fclose(inputFd) == 0, + "Failed to close input file")) { + continue; + } + closeInputGuard.dismiss(); + if (!state.errorHolder.check(std::fclose(outputFd) == 0, + "Failed to close output file")) { + continue; + } + closeOutputGuard.dismiss(); + if (std::remove(input.c_str()) != 0) { + state.errorHolder.setError("Failed to remove input file"); + continue; + } + } + } + // Returns 1 if any of the files failed to (de)compress. + return returnCode; +} + +/// Construct a `ZSTD_inBuffer` that points to the data in `buffer`. +static ZSTD_inBuffer makeZstdInBuffer(const Buffer& buffer) { + return ZSTD_inBuffer{buffer.data(), buffer.size(), 0}; +} + +/** + * Advance `buffer` and `inBuffer` by the amount of data read, as indicated by + * `inBuffer.pos`. + */ +void advance(Buffer& buffer, ZSTD_inBuffer& inBuffer) { + auto pos = inBuffer.pos; + inBuffer.src = static_cast(inBuffer.src) + pos; + inBuffer.size -= pos; + inBuffer.pos = 0; + return buffer.advance(pos); +} + +/// Construct a `ZSTD_outBuffer` that points to the data in `buffer`. +static ZSTD_outBuffer makeZstdOutBuffer(Buffer& buffer) { + return ZSTD_outBuffer{buffer.data(), buffer.size(), 0}; +} + +/** + * Split `buffer` and advance `outBuffer` by the amount of data written, as + * indicated by `outBuffer.pos`. + */ +Buffer split(Buffer& buffer, ZSTD_outBuffer& outBuffer) { + auto pos = outBuffer.pos; + outBuffer.dst = static_cast(outBuffer.dst) + pos; + outBuffer.size -= pos; + outBuffer.pos = 0; + return buffer.splitAt(pos); +} + +/** + * Stream chunks of input from `in`, compress it, and stream it out to `out`. + * + * @param state The shared state + * @param in Queue that we `pop()` input buffers from + * @param out Queue that we `push()` compressed output buffers to + * @param maxInputSize An upper bound on the size of the input + */ +static void compress( + SharedState& state, + std::shared_ptr in, + std::shared_ptr out, + size_t maxInputSize) { + auto& errorHolder = state.errorHolder; + auto guard = makeScopeGuard([&] { out->finish(); }); + // Initialize the CCtx + auto ctx = state.cStreamPool->get(); + if (!errorHolder.check(ctx != nullptr, "Failed to allocate ZSTD_CStream")) { + return; + } + { + auto err = ZSTD_CCtx_reset(ctx.get(), ZSTD_reset_session_only); + if (!errorHolder.check(!ZSTD_isError(err), ZSTD_getErrorName(err))) { + return; + } + } + + // Allocate space for the result + auto outBuffer = Buffer(ZSTD_compressBound(maxInputSize)); + auto zstdOutBuffer = makeZstdOutBuffer(outBuffer); + { + Buffer inBuffer; + // Read a buffer in from the input queue + while (in->pop(inBuffer) && !errorHolder.hasError()) { + auto zstdInBuffer = makeZstdInBuffer(inBuffer); + // Compress the whole buffer and send it to the output queue + while (!inBuffer.empty() && !errorHolder.hasError()) { + if (!errorHolder.check( + !outBuffer.empty(), "ZSTD_compressBound() was too small")) { + return; + } + // Compress + auto err = + ZSTD_compressStream(ctx.get(), &zstdOutBuffer, &zstdInBuffer); + if (!errorHolder.check(!ZSTD_isError(err), ZSTD_getErrorName(err))) { + return; + } + // Split the compressed data off outBuffer and pass to the output queue + out->push(split(outBuffer, zstdOutBuffer)); + // Forget about the data we already compressed + advance(inBuffer, zstdInBuffer); + } + } + } + // Write the epilog + size_t bytesLeft; + do { + if (!errorHolder.check( + !outBuffer.empty(), "ZSTD_compressBound() was too small")) { + return; + } + bytesLeft = ZSTD_endStream(ctx.get(), &zstdOutBuffer); + if (!errorHolder.check( + !ZSTD_isError(bytesLeft), ZSTD_getErrorName(bytesLeft))) { + return; + } + out->push(split(outBuffer, zstdOutBuffer)); + } while (bytesLeft != 0 && !errorHolder.hasError()); +} + +/** + * Calculates how large each independently compressed frame should be. + * + * @param size The size of the source if known, 0 otherwise + * @param numThreads The number of threads available to run compression jobs on + * @param params The zstd parameters to be used for compression + */ +static size_t calculateStep( + std::uintmax_t size, + size_t numThreads, + const ZSTD_parameters ¶ms) { + (void)size; + (void)numThreads; + return size_t{1} << (params.cParams.windowLog + 2); +} + +namespace { +enum class FileStatus { Continue, Done, Error }; +/// Determines the status of the file descriptor `fd`. +FileStatus fileStatus(FILE* fd) { + if (std::feof(fd)) { + return FileStatus::Done; + } else if (std::ferror(fd)) { + return FileStatus::Error; + } + return FileStatus::Continue; +} +} // anonymous namespace + +/** + * Reads `size` data in chunks of `chunkSize` and puts it into `queue`. + * Will read less if an error or EOF occurs. + * Returns the status of the file after all of the reads have occurred. + */ +static FileStatus +readData(BufferWorkQueue& queue, size_t chunkSize, size_t size, FILE* fd, + std::uint64_t *totalBytesRead) { + Buffer buffer(size); + while (!buffer.empty()) { + auto bytesRead = + std::fread(buffer.data(), 1, std::min(chunkSize, buffer.size()), fd); + *totalBytesRead += bytesRead; + queue.push(buffer.splitAt(bytesRead)); + auto status = fileStatus(fd); + if (status != FileStatus::Continue) { + return status; + } + } + return FileStatus::Continue; +} + +std::uint64_t asyncCompressChunks( + SharedState& state, + WorkQueue>& chunks, + ThreadPool& executor, + FILE* fd, + std::uintmax_t size, + size_t numThreads, + ZSTD_parameters params) { + auto chunksGuard = makeScopeGuard([&] { chunks.finish(); }); + std::uint64_t bytesRead = 0; + + // Break the input up into chunks of size `step` and compress each chunk + // independently. + size_t step = calculateStep(size, numThreads, params); + state.log(kLogDebug, "Chosen frame size: %zu\n", step); + auto status = FileStatus::Continue; + while (status == FileStatus::Continue && !state.errorHolder.hasError()) { + // Make a new input queue that we will put the chunk's input data into. + auto in = std::make_shared(); + auto inGuard = makeScopeGuard([&] { in->finish(); }); + // Make a new output queue that compress will put the compressed data into. + auto out = std::make_shared(); + // Start compression in the thread pool + executor.add([&state, in, out, step] { + return compress( + state, std::move(in), std::move(out), step); + }); + // Pass the output queue to the writer thread. + chunks.push(std::move(out)); + state.log(kLogVerbose, "%s\n", "Starting a new frame"); + // Fill the input queue for the compression job we just started + status = readData(*in, ZSTD_CStreamInSize(), step, fd, &bytesRead); + } + state.errorHolder.check(status != FileStatus::Error, "Error reading input"); + return bytesRead; +} + +/** + * Decompress a frame, whose data is streamed into `in`, and stream the output + * to `out`. + * + * @param state The shared state + * @param in Queue that we `pop()` input buffers from. It contains + * exactly one compressed frame. + * @param out Queue that we `push()` decompressed output buffers to + */ +static void decompress( + SharedState& state, + std::shared_ptr in, + std::shared_ptr out) { + auto& errorHolder = state.errorHolder; + auto guard = makeScopeGuard([&] { out->finish(); }); + // Initialize the DCtx + auto ctx = state.dStreamPool->get(); + if (!errorHolder.check(ctx != nullptr, "Failed to allocate ZSTD_DStream")) { + return; + } + { + auto err = ZSTD_DCtx_reset(ctx.get(), ZSTD_reset_session_only); + if (!errorHolder.check(!ZSTD_isError(err), ZSTD_getErrorName(err))) { + return; + } + } + + const size_t outSize = ZSTD_DStreamOutSize(); + Buffer inBuffer; + size_t returnCode = 0; + // Read a buffer in from the input queue + while (in->pop(inBuffer) && !errorHolder.hasError()) { + auto zstdInBuffer = makeZstdInBuffer(inBuffer); + // Decompress the whole buffer and send it to the output queue + while (!inBuffer.empty() && !errorHolder.hasError()) { + // Allocate a buffer with at least outSize bytes. + Buffer outBuffer(outSize); + auto zstdOutBuffer = makeZstdOutBuffer(outBuffer); + // Decompress + returnCode = + ZSTD_decompressStream(ctx.get(), &zstdOutBuffer, &zstdInBuffer); + if (!errorHolder.check( + !ZSTD_isError(returnCode), ZSTD_getErrorName(returnCode))) { + return; + } + // Pass the buffer with the decompressed data to the output queue + out->push(split(outBuffer, zstdOutBuffer)); + // Advance past the input we already read + advance(inBuffer, zstdInBuffer); + if (returnCode == 0) { + // The frame is over, prepare to (maybe) start a new frame + ZSTD_initDStream(ctx.get()); + } + } + } + if (!errorHolder.check(returnCode <= 1, "Incomplete block")) { + return; + } + // We've given ZSTD_decompressStream all of our data, but there may still + // be data to read. + while (returnCode == 1) { + // Allocate a buffer with at least outSize bytes. + Buffer outBuffer(outSize); + auto zstdOutBuffer = makeZstdOutBuffer(outBuffer); + // Pass in no input. + ZSTD_inBuffer zstdInBuffer{nullptr, 0, 0}; + // Decompress + returnCode = + ZSTD_decompressStream(ctx.get(), &zstdOutBuffer, &zstdInBuffer); + if (!errorHolder.check( + !ZSTD_isError(returnCode), ZSTD_getErrorName(returnCode))) { + return; + } + // Pass the buffer with the decompressed data to the output queue + out->push(split(outBuffer, zstdOutBuffer)); + } +} + +std::uint64_t asyncDecompressFrames( + SharedState& state, + WorkQueue>& frames, + ThreadPool& executor, + FILE* fd) { + auto framesGuard = makeScopeGuard([&] { frames.finish(); }); + std::uint64_t totalBytesRead = 0; + + // Split the source up into its component frames. + // If we find our recognized skippable frame we know the next frames size + // which means that we can decompress each standard frame in independently. + // Otherwise, we will decompress using only one decompression task. + const size_t chunkSize = ZSTD_DStreamInSize(); + auto status = FileStatus::Continue; + while (status == FileStatus::Continue && !state.errorHolder.hasError()) { + // Make a new input queue that we will put the frames's bytes into. + auto in = std::make_shared(); + auto inGuard = makeScopeGuard([&] { in->finish(); }); + // Make a output queue that decompress will put the decompressed data into + auto out = std::make_shared(); + + size_t frameSize; + { + // Calculate the size of the next frame. + // frameSize is 0 if the frame info can't be decoded. + Buffer buffer(SkippableFrame::kSize); + auto bytesRead = std::fread(buffer.data(), 1, buffer.size(), fd); + totalBytesRead += bytesRead; + status = fileStatus(fd); + if (bytesRead == 0 && status != FileStatus::Continue) { + break; + } + buffer.subtract(buffer.size() - bytesRead); + frameSize = SkippableFrame::tryRead(buffer.range()); + in->push(std::move(buffer)); + } + if (frameSize == 0) { + // We hit a non SkippableFrame, so this will be the last job. + // Make sure that we don't use too much memory + in->setMaxSize(64); + out->setMaxSize(64); + } + // Start decompression in the thread pool + executor.add([&state, in, out] { + return decompress(state, std::move(in), std::move(out)); + }); + // Pass the output queue to the writer thread + frames.push(std::move(out)); + if (frameSize == 0) { + // We hit a non SkippableFrame ==> not compressed by pzstd or corrupted + // Pass the rest of the source to this decompression task + state.log(kLogVerbose, "%s\n", + "Input not in pzstd format, falling back to serial decompression"); + while (status == FileStatus::Continue && !state.errorHolder.hasError()) { + status = readData(*in, chunkSize, chunkSize, fd, &totalBytesRead); + } + break; + } + state.log(kLogVerbose, "Decompressing a frame of size %zu", frameSize); + // Fill the input queue for the decompression job we just started + status = readData(*in, chunkSize, frameSize, fd, &totalBytesRead); + } + state.errorHolder.check(status != FileStatus::Error, "Error reading input"); + return totalBytesRead; +} + +/// Write `data` to `fd`, returns true iff success. +static bool writeData(ByteRange data, FILE* fd) { + while (!data.empty()) { + data.advance(std::fwrite(data.begin(), 1, data.size(), fd)); + if (std::ferror(fd)) { + return false; + } + } + return true; +} + +std::uint64_t writeFile( + SharedState& state, + WorkQueue>& outs, + FILE* outputFd, + bool decompress) { + auto& errorHolder = state.errorHolder; + auto lineClearGuard = makeScopeGuard([&state] { + state.log.clear(kLogInfo); + }); + std::uint64_t bytesWritten = 0; + std::shared_ptr out; + // Grab the output queue for each decompression job (in order). + while (outs.pop(out)) { + if (errorHolder.hasError()) { + continue; + } + if (!decompress) { + // If we are compressing and want to write skippable frames we can't + // start writing before compression is done because we need to know the + // compressed size. + // Wait for the compressed size to be available and write skippable frame + SkippableFrame frame(out->size()); + if (!writeData(frame.data(), outputFd)) { + errorHolder.setError("Failed to write output"); + return bytesWritten; + } + bytesWritten += frame.kSize; + } + // For each chunk of the frame: Pop it from the queue and write it + Buffer buffer; + while (out->pop(buffer) && !errorHolder.hasError()) { + if (!writeData(buffer.range(), outputFd)) { + errorHolder.setError("Failed to write output"); + return bytesWritten; + } + bytesWritten += buffer.size(); + state.log.update(kLogInfo, "Written: %u MB ", + static_cast(bytesWritten >> 20)); + } + } + return bytesWritten; +} +} diff --git a/dependencies/zstd-1.5.0/contrib/pzstd/Pzstd.h b/dependencies/zstd-1.5.0/contrib/pzstd/Pzstd.h new file mode 100644 index 0000000..c667c88 --- /dev/null +++ b/dependencies/zstd-1.5.0/contrib/pzstd/Pzstd.h @@ -0,0 +1,153 @@ +/* + * Copyright (c) 2016-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + */ +#pragma once + +#include "ErrorHolder.h" +#include "Logging.h" +#include "Options.h" +#include "utils/Buffer.h" +#include "utils/Range.h" +#include "utils/ResourcePool.h" +#include "utils/ThreadPool.h" +#include "utils/WorkQueue.h" +#define ZSTD_STATIC_LINKING_ONLY +#define ZSTD_DISABLE_DEPRECATE_WARNINGS /* No deprecation warnings, pzstd itself is deprecated + * and uses deprecated functions + */ +#include "zstd.h" +#undef ZSTD_STATIC_LINKING_ONLY + +#include +#include +#include + +namespace pzstd { +/** + * Runs pzstd with `options` and returns the number of bytes written. + * An error occurred if `errorHandler.hasError()`. + * + * @param options The pzstd options to use for (de)compression + * @returns 0 upon success and non-zero on failure. + */ +int pzstdMain(const Options& options); + +class SharedState { + public: + SharedState(const Options& options) : log(options.verbosity) { + if (!options.decompress) { + auto parameters = options.determineParameters(); + cStreamPool.reset(new ResourcePool{ + [this, parameters]() -> ZSTD_CStream* { + this->log(kLogVerbose, "%s\n", "Creating new ZSTD_CStream"); + auto zcs = ZSTD_createCStream(); + if (zcs) { + auto err = ZSTD_initCStream_advanced( + zcs, nullptr, 0, parameters, 0); + if (ZSTD_isError(err)) { + ZSTD_freeCStream(zcs); + return nullptr; + } + } + return zcs; + }, + [](ZSTD_CStream *zcs) { + ZSTD_freeCStream(zcs); + }}); + } else { + dStreamPool.reset(new ResourcePool{ + [this]() -> ZSTD_DStream* { + this->log(kLogVerbose, "%s\n", "Creating new ZSTD_DStream"); + auto zds = ZSTD_createDStream(); + if (zds) { + auto err = ZSTD_initDStream(zds); + if (ZSTD_isError(err)) { + ZSTD_freeDStream(zds); + return nullptr; + } + } + return zds; + }, + [](ZSTD_DStream *zds) { + ZSTD_freeDStream(zds); + }}); + } + } + + ~SharedState() { + // The resource pools have references to this, so destroy them first. + cStreamPool.reset(); + dStreamPool.reset(); + } + + Logger log; + ErrorHolder errorHolder; + std::unique_ptr> cStreamPool; + std::unique_ptr> dStreamPool; +}; + +/** + * Streams input from `fd`, breaks input up into chunks, and compresses each + * chunk independently. Output of each chunk gets streamed to a queue, and + * the output queues get put into `chunks` in order. + * + * @param state The shared state + * @param chunks Each compression jobs output queue gets `pushed()` here + * as soon as it is available + * @param executor The thread pool to run compression jobs in + * @param fd The input file descriptor + * @param size The size of the input file if known, 0 otherwise + * @param numThreads The number of threads in the thread pool + * @param parameters The zstd parameters to use for compression + * @returns The number of bytes read from the file + */ +std::uint64_t asyncCompressChunks( + SharedState& state, + WorkQueue>& chunks, + ThreadPool& executor, + FILE* fd, + std::uintmax_t size, + std::size_t numThreads, + ZSTD_parameters parameters); + +/** + * Streams input from `fd`. If pzstd headers are available it breaks the input + * up into independent frames. It sends each frame to an independent + * decompression job. Output of each frame gets streamed to a queue, and + * the output queues get put into `frames` in order. + * + * @param state The shared state + * @param frames Each decompression jobs output queue gets `pushed()` here + * as soon as it is available + * @param executor The thread pool to run compression jobs in + * @param fd The input file descriptor + * @returns The number of bytes read from the file + */ +std::uint64_t asyncDecompressFrames( + SharedState& state, + WorkQueue>& frames, + ThreadPool& executor, + FILE* fd); + +/** + * Streams input in from each queue in `outs` in order, and writes the data to + * `outputFd`. + * + * @param state The shared state + * @param outs A queue of output queues, one for each + * (de)compression job. + * @param outputFd The file descriptor to write to + * @param decompress Are we decompressing? + * @returns The number of bytes written + */ +std::uint64_t writeFile( + SharedState& state, + WorkQueue>& outs, + FILE* outputFd, + bool decompress); +} diff --git a/dependencies/zstd-1.5.0/contrib/pzstd/README.md b/dependencies/zstd-1.5.0/contrib/pzstd/README.md new file mode 100644 index 0000000..84d9458 --- /dev/null +++ b/dependencies/zstd-1.5.0/contrib/pzstd/README.md @@ -0,0 +1,56 @@ +# Parallel Zstandard (PZstandard) + +Parallel Zstandard is a Pigz-like tool for Zstandard. +It provides Zstandard format compatible compression and decompression that is able to utilize multiple cores. +It breaks the input up into equal sized chunks and compresses each chunk independently into a Zstandard frame. +It then concatenates the frames together to produce the final compressed output. +Pzstandard will write a 12 byte header for each frame that is a skippable frame in the Zstandard format, which tells PZstandard the size of the next compressed frame. +PZstandard supports parallel decompression of files compressed with PZstandard. +When decompressing files compressed with Zstandard, PZstandard does IO in one thread, and decompression in another. + +## Usage + +PZstandard supports the same command line interface as Zstandard, but also provides the `-p` option to specify the number of threads. +Dictionary mode is not currently supported. + +Basic usage + + pzstd input-file -o output-file -p num-threads -# # Compression + pzstd -d input-file -o output-file -p num-threads # Decompression + +PZstandard also supports piping and fifo pipes + + cat input-file | pzstd -p num-threads -# -c > /dev/null + +For more options + + pzstd --help + +PZstandard tries to pick a smart default number of threads if not specified (displayed in `pzstd --help`). +If this number is not suitable, during compilation you can define `PZSTD_NUM_THREADS` to the number of threads you prefer. + +## Benchmarks + +As a reference, PZstandard and Pigz were compared on an Intel Core i7 @ 3.1 GHz, each using 4 threads, with the [Silesia compression corpus](http://sun.aei.polsl.pl/~sdeor/index.php?page=silesia). + +Compression Speed vs Ratio with 4 Threads | Decompression Speed with 4 Threads +------------------------------------------|----------------------------------- +![Compression Speed vs Ratio](images/Cspeed.png "Compression Speed vs Ratio") | ![Decompression Speed](images/Dspeed.png "Decompression Speed") + +The test procedure was to run each of the following commands 2 times for each compression level, and take the minimum time. + + time pzstd -# -p 4 -c silesia.tar > silesia.tar.zst + time pzstd -d -p 4 -c silesia.tar.zst > /dev/null + + time pigz -# -p 4 -k -c silesia.tar > silesia.tar.gz + time pigz -d -p 4 -k -c silesia.tar.gz > /dev/null + +PZstandard was tested using compression levels 1-19, and Pigz was tested using compression levels 1-9. +Pigz cannot do parallel decompression, it simply does each of reading, decompression, and writing on separate threads. + +## Tests + +Tests require that you have [gtest](https://github.com/google/googletest) installed. +Set `GTEST_INC` and `GTEST_LIB` in `Makefile` to specify the location of the gtest headers and libraries. +Alternatively, run `make googletest`, which will clone googletest and build it. +Run `make tests && make check` to run tests. diff --git a/dependencies/zstd-1.5.0/contrib/pzstd/SkippableFrame.cpp b/dependencies/zstd-1.5.0/contrib/pzstd/SkippableFrame.cpp new file mode 100644 index 0000000..769866d --- /dev/null +++ b/dependencies/zstd-1.5.0/contrib/pzstd/SkippableFrame.cpp @@ -0,0 +1,30 @@ +/* + * Copyright (c) 2016-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + */ +#include "SkippableFrame.h" +#include "mem.h" +#include "utils/Range.h" + +#include + +using namespace pzstd; + +SkippableFrame::SkippableFrame(std::uint32_t size) : frameSize_(size) { + MEM_writeLE32(data_.data(), kSkippableFrameMagicNumber); + MEM_writeLE32(data_.data() + 4, kFrameContentsSize); + MEM_writeLE32(data_.data() + 8, frameSize_); +} + +/* static */ std::size_t SkippableFrame::tryRead(ByteRange bytes) { + if (bytes.size() < SkippableFrame::kSize || + MEM_readLE32(bytes.begin()) != kSkippableFrameMagicNumber || + MEM_readLE32(bytes.begin() + 4) != kFrameContentsSize) { + return 0; + } + return MEM_readLE32(bytes.begin() + 8); +} diff --git a/dependencies/zstd-1.5.0/contrib/pzstd/SkippableFrame.h b/dependencies/zstd-1.5.0/contrib/pzstd/SkippableFrame.h new file mode 100644 index 0000000..60deed0 --- /dev/null +++ b/dependencies/zstd-1.5.0/contrib/pzstd/SkippableFrame.h @@ -0,0 +1,64 @@ +/* + * Copyright (c) 2016-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + */ +#pragma once + +#include "utils/Range.h" + +#include +#include +#include +#include + +namespace pzstd { +/** + * We put a skippable frame before each frame. + * It contains a skippable frame magic number, the size of the skippable frame, + * and the size of the next frame. + * Each skippable frame is exactly 12 bytes in little endian format. + * The first 8 bytes are for compatibility with the ZSTD format. + * If we have N threads, the output will look like + * + * [0x184D2A50|4|size1] [frame1 of size size1] + * [0x184D2A50|4|size2] [frame2 of size size2] + * ... + * [0x184D2A50|4|sizeN] [frameN of size sizeN] + * + * Each sizeX is 4 bytes. + * + * These skippable frames should allow us to skip through the compressed file + * and only load at most N pages. + */ +class SkippableFrame { + public: + static constexpr std::size_t kSize = 12; + + private: + std::uint32_t frameSize_; + std::array data_; + static constexpr std::uint32_t kSkippableFrameMagicNumber = 0x184D2A50; + // Could be improved if the size fits in less bytes + static constexpr std::uint32_t kFrameContentsSize = kSize - 8; + + public: + // Write the skippable frame to data_ in LE format. + explicit SkippableFrame(std::uint32_t size); + + // Read the skippable frame from bytes in LE format. + static std::size_t tryRead(ByteRange bytes); + + ByteRange data() const { + return {data_.data(), data_.size()}; + } + + // Size of the next frame. + std::size_t frameSize() const { + return frameSize_; + } +}; +} diff --git a/dependencies/zstd-1.5.0/contrib/pzstd/images/Cspeed.png b/dependencies/zstd-1.5.0/contrib/pzstd/images/Cspeed.png new file mode 100644 index 0000000000000000000000000000000000000000..aca4f663ea2e98b6df7c1344b51af99757549d8a GIT binary patch literal 69804 zcmeFZWn5I<_Xi5dAi{&7f~ce-B8}1@VbG~`BOwivLk%!s)7^r^&|T7?G}0XdC?$== zAbt0M0nhKbFYlZC`M(fh_MCI}Uh&;)eb?IOt-P!l0p2w{3=9kc3GqiyFfg#cU|^gv z#Ki%hcwiW|g8wjWpNKuc$ZjW}1Am-*F0N*afkAo^{SVV9t{Yq;j3M#pzM>=MBJx}e zxnb<#kMYsq<~xziGC>l!61X;Aw{Jee!t}iHIw3oouEjZ*Dc?-_hhyn{wmYkQ0EwCw zp>o}(?ge>j;VD1Ti`3*2;#iTRjb9AzZVesoD5uIon&ZlU-r^<}_LrcET>SqSq;>^kp9W?N|LaQX zw-}fOH+dEx{O{C>aO1$(>LxF<=zk1~-w>{0I(NSOzZU(84ve|NWWE1uH9@#UY*L<| zS^h04v>;Z`5wYRx#P#U?*Wmvx@&Er?O#W(i_piAH;b*EBwQyOE8hewn7AwdJa5_Ch z-3WLk41-nfuZ33^rl&LPHoEUMa`^ot+s{_mmBamWbXDOg85S-zktQbAv)UzoQ$Gx> z>lckJEQ(ZgV13$7(#X|UTNCF$_&J$XQE^XxKhV`6nZLmZ(SNN+}IOW?j(M!qU+H1^Jxm-}@R?EE=bzWJ4=2TYc6sGAk?}5h_L#fDw1Mif1+6}sorn1ES-c9W81LpfKP2A@P;hSP+&K-8P|7G&Z)247j)9U|2Z9?h zZPp>ricN%DoEvEf@ zwd4MRj@8aNz3v@Jy!_tY-ob$?6lXNs(+7oDqY{$MWD}_*wi%z-LP!Ur$2Jhgkdcv* zrCFiFQh~kI&z2MG?uT3MOZrs1s&(V!^oXe4USahA_Y)+=8(7~LX zdp@a-YZpNbC2XS$H5Dv}aBWFbNEs%rT78MRZB;gR3mOvZc5b4?y#~|#csru5L2GW* zNs$5*8&73|wEE{uGNvA@AJuE2IfFh|*>O0ObyNkno8_YVQ@VB@-NeqP%{A${Rg#)4 z72W`8EqqKvE+@3VVIKR=MpRrF|I6WLp*^oGo$4`)59ym};x8HFJ+>@LkTYEJJ*c^r zPfKR%uP}gt2k-+QE-gqlK$|`doK)MfHWr2O>JU0~9oJPeul36EO@3^u{#sNaFDg13 zX#$U8v2CGG`RHBJ81`Xy7qwI%wD*;8+1a>^Jzg}+gn)&4C!1A=&%YnhMQX*m59D7| zy*JIetVp#qup{1+BDdurMpc<#c~4zl-3&9$T;@{ugI;xii}o1aF8vC+u{`w@naysy zT9=i|0gC2?y%pzya%pe1##==$pI;FyKNyI5mo#TmCgDlBAB12s;dq55qRv*CpWhvO z;5-v)RMx|w?=QibBO2ADK!bfYIsswxdPJ`5+>6UZ1L7BDO4ofjAKVO1LZy+@YMn{D zl@nL7p3>8pH!EJUQlZbzE9(%oQ{lA!Yzu)SMqwYadl12Ei%>CF_pjbxvO;dX%kHV| zCowlMxr3CDoBQU?>Nj@pdfx&=7T&f&KL@|eT)&a$&TVUk5>cXg^==o1707hg#=Rmj zn*NJc*H$|p64v`NDPSBfm#;W5!~!m$Sy}rxU77T9{oU_z&K-?^0p?57=UUv40? zvOA-r{gqEyCz})N*-*aW*t4xJe&x+>KK1dv8SX?lc~(ktd_pnfocEUwHxxS*#ti*z z=6(-s2A11a?z_*=6L5#hCeL3kwz1Dme0O-SwthIoh_deiEHrdAe|Z}vi&4T zMNz-1Ia0|gRwa>;G40m;2D{HlD6KcoMaidENNgdqpw9}g+I2~S3=`?j=xB75bC?hpBSBj;yt}VFT zepf8O=7Oe->-U zQBe2_gox&jZsfke&keM6x0aEXkx@2R%N-Qc>AHuF#*94++WA@uv`s>St6ms?aPSTI zx#fNc?MWDSqsiWw7B%ZJ7D%9#3LAV&_x`(|YbUAn{>&keK{Zk&jzqpIm3g}BMkije zy`9}hZfbd9Ca&AleOeZ~AZS>e=`k*v^cNZ{l+iIS3fLobTRj6sGR3mrF?r-urD|Fj zE$T)uj#_JFE%%mlak5w8hII9gRqvKp+j@DnoH)yFh%IXspU zJq5#HfMvJK{aQ9HFXzKLzlM#LClhLO1Xhj@3$5~6rSWQPl4`q2OnM;Rb56Zl+E06EIPS_D8$$9a|F2ba zdft8F>Xq)Bk;xd(zUgh?r8-H_a9mnQ+s6w_BcO}53kvVsvgSD-w>vsJYDOEq@^mv0 zYt0I_pt1h#6-{LE9hJE4Iqg~P6vA0s{iLx;Z7ruq=m?<645W}*)s$0hzQ6n4q_wx(f>dUI(i4nF)wBZ%<71@bgX`a=ay*%aXOXlrm<%xMeo}eJ znGg>31&S3%u?=}xsq*RrOzyt>I;xj~J@ulnHitUgxGagIS`PPSg;sFJ0GtVqPx$yL zQDj%`n2wjT&!2~-M`Kaw>~x2ZvhI#;bMig9&%x}RJ*U?i&gzfDzG0{~SGfYqA*<=J z^-b+2H7@GF4>NJ$a|(6O4QX>zFSRj@37^mEg74&~(HG#kCPj0Y%Jr<-RbZVT|JlGj zYIdI{fp|(f?C#v8^e#)!Br&l-IjdKG)9uGLqS4s_opWF?NxZsmHYnpOBUS|I>+Sp<1c^~ZPuT7!iihmArv=hz zOVZ^)zv%i8&C|)a%aHq~)TDBYaHVF2)+NmazpcH?DrX+Ac)!;?#T+21Grj6e z-w?jC<8GmB(r9JJxvX-;Q_pyYlW13!b#Be>^W!IsM z)SiuWvz(e2cuxqEqCh9b4@i0TWa2wDBzMt&Vc;4YybI^pr$Hu(WQPX%GQ1-o`sXs+ zdX;h6%SzO1PYdm}{+nys3y*7QS>-1o`+8e09s4c)f?2TXf|>WS+STigmaWP{v^cF5wvLIHIP-7!B%w@`0uZ&P z1Y9evC5T!2_$i3{UW;6bKl>biEO*ajh444sS|TmFNS2S;9w9-Z(kAJ8=4+nDMlsf+ zb}cqsIT?et^wbCs`9%sllGGmY)cN`O!AyDqe`dNoEqW5RM+hJ@J-I~cs-SE&UxxMW z^$wvGL4mDNTcn$^@I$yWtBEh8Z3qyat@G6={R=Qq)@@xz0yrGe^$BK~0+9fW@My|j3{wT4)p8IkN= ziIg?b9h2+(UvEKFIMhXI*_q!Q)|?^y2$kK-Iox4|CW)F;+o#%YZ(1W@;d9n^e~4b9 zb&30@FRT{DC~rMtQBn$5K|T`haStVqQKlB9ci=;48%>ry;mwmsJW~l!f@#cky$ul` zVj1;=>hK3uSC>*=qhklB=PKAEpL?<54K_LF3g<(=Jg2nXeBW949Kxswh178%6(wq= zX(0}MtYrvJ->wBxD?Y^Xr)Y1pI)QB>cgK~dE9|g0i_40Rz8@7`gf>195`+q{qEfmW zG+k$0eC1~OsFsgVLYv?580BLD%8w2`xr;{mKo2aUs2d^6g(-v70sUmxnC9@`^lv|r zmr`(Cqcy>f2F*l)=}hW- z2GcMSvF_k?8b698Wm^{wpWEpT$sG*wU0^7#sGC)Z-z{vT&-OMGQIBC+LFbPZR}i54P|${QE9QZv+cfqc0O%nFJ>dF4*QCw zv)8`@Pu~%sd?A?V2TW9$2;_~Byn$49EL`G34^p;~JpI@FpJ@8hp5`S&D_F(cqolJS~QXt9tpLlxVV~V2k*j~7DSAYf8UXYcQ<<>`z;__8| zf*}e;_Tnrr_HxQMOmUfgkAw4>aEk?{yi$m5!9H#PS&@>hm zP3xERx>HDIMTKic%%t?;E9Yd=6lYF0O{msY19F*}Nw{cQNA z9gnTRj--ldH5?$y|2^9w?bg267}>cXrhp6Oy5*ktfw|~veRJYWZ3YinV{WT=BM%7$h|60m_+3mB z5fi4w2vR2RR-QU<=~0{Q_pANXJ*;>eS0`l}H~OE3lt9nm_%f}FM$NH{E8Jz5iR3YG zW}!&oGM@UTD>TNLv+%^pj=M+E{VIEm^Yr|n^!Opz8iw{po2Fgvsf>kqgTVQPl81+y zs>^!^8V}(yycj^!EOXpYS`8GVyp!d{q1wH1O@^x1n2Od4bGMPwvG`aaC&XYTONmQ$>_hPaeg(AT^I-j_ zeLpF%)4B?7DLj1W#h>4mVfHPt-?cl0i?-wT9l0`CjLEp6bIj}^K)=2%^)BQp;G1Fw zGedM3pD#g7IY@fQv>ZU<5{-D49CWud`xS#qkLl)iLK0_-or*TANqPde$OwM673u01baoU^md_TA~d}7qbJtJjo_`r=h?O^*V_7z&_{}Yr%1k24=g6ANgLsHkUL}>&rc6?1EafmdkQ>TIzY_&058i$dI;V z>R&ZDZr3BzMXhK4^xD&exiIbS-VCa}iL+<=y%msCSxKxBl51+ zTWl0M$TPuKUUar88=2S~&{-*#z8^YRG@%zAZAoR+4dv58G|s&`FIiUlVn@g98a=&k z(j3A$?jLR^1y+0HJv1?7JytxJU*M!wAI3jui=Wij#BwZ+}u}cw@k^sfS{*TbwP;(wcX)9R#_0c zOr7%h=}s3#XGM9HlTxSEP-Rh5;hS~9W11e(8Jod^KiJh2;<)lj)-<(Grt)LFAkX(hKCxk_!11)M9*2uhSiY)X7PvH218N*n8 zIa)bPe3^Wy1Ea@2-(AONd$wLCnVhX&Af@ob?zJXz>Jxr^nj52X=5s5DJirK-ueC5D zqe;KR5^K`3F_F>+xzT~f>1kMAWukTuF`Y~~5|syLZ{pNlv@LOjOgG;_!i*r z?mnKp0*EwSZ0y2YZNN+IxiJde_MNv{Q~G_?g^gbuQB83GE-K`tFLvbEO9h?eD4{z zE&@_r$=^z!)9+HYnBSUUAw!qbvNgXT;5@rQY1=24H;dZ&%x}ctZ{_%zY}BK%a%*e> zM~j4K1EJd@va1AT6<<(!1_JxL-Anu{6_MmA@#{kSJwlQFY2C!akSD!cQFxirqNy;` z>Y$RDaA=hxm0|K$%5qhDl5Qm8(Jh2sPDb6NzRp6-&f^*dGo@|XBCQonB)vjntsM;x z@|=RilCn#m1FU&~fX$A8{taw9{O&VPKoYK!HMUfM&yQo$}H` z_?*j)yqLOy_1O;S!iR~9VRyhx-h5`g+eijWuL?@kS({%LxHZ%K%By9grDIAUMm5De zY*tHUEOES4uVc38GizK4Yo70z!%EkRs+9(CFX^0hX(8_XZOX0THkzZ5wh5P*_wynR zU#KX1z)>A;O+^@v?>pETj*nDg`62a6r>#=IP%g0)XZPZFij1!7JD={U4n>tA=tIW% z1jek#5&<8P9xiJ9z4c`{hsa9#_DJkE*9`T!5fhlIP zwf?m&WR_Ho%C};xS{tnAU1)t(-^yHzAn14gN3Ir;-JKn=L{$p@T6%78LD*sEB&mnyL{8`o2 zR0M#sf(x6RZ%GpWAK5p3sM)I85^z~-rn6}9x$3aLIWW5_P3$Yo1G)0_a=Tkf-zkg3 zz``VP{Q8n~RCfrtS5`_2U3^yjFz!?dFw(tcD%02hG8tjT_?(;$x1FB2VKt*zLv$u+ zIeQK`vb?HF9uFiE++g7fCEFz#=w8+ z6L(58zM^8Z3X}t*MMLUuAu)t|1akmo9DPS$bdlvfjYka|xRT&fz~_HsMN?6YCj=iS zMsM%u4`pTLXN}~xUp!!-ati-?4*MHRejqnM4wognyVdD5}Djs>!+auh)|NP6E z(0}R@1B~>=;!8QAXinY$j5g^2!1}){|4%~yA6kN>*w>hti>EDbxq^>7$#dR})>LI8f3D>l&;8DO4?X&t4fJP$YoNAc#Mea3uNRUTvZ zX7rYQgc~KY(|}Q>S8Zu9|KolI+RQ~IJ?JB8Xxp4lc?~AEG)?QCr(qrkUJ||kS`Zk7 zcM*ZQ^R@YyOQ$A@o92OdddrV#JyD)=nid^~C0+-mOO9S%x>L~x(G$!pwJ=k_D5V<) zp#w#65rFLsl2i9jI4j!M-g%VNxHG&=4(1MBYeFZ+Nem#)P@-Qu3h_?HHDK%onw_{^ z7Abmq)8D?%mVvlC{Vpk(d-_518}v=6!A&4H^Z#|df!GAW`mH3*&Trd&^s}_+v>^a3 z&7s~TrhnnceF$IK?xIyrvFgo>S2_Gk60?gx0X6*4UPIsCCslav&3oVAe@*hmllZKR zjwveSWs>L=Uv7uoOHq~QFphVMnT$8Mfp?Hw!1Q)dz-oH?X+NX2+?0<% zX>YmGwlmLW^BIN3a&d2#8~BNf@Ph4~dV)r{=F8caXaN8j{`nD!Z*K9u(2B<_jAC)o z7N6es@=Ep0=#ay=Me9h?7WCFsgA34}?7q3|%ahmP5|`D?R8lM>*+$BDkqG6G%canY zd(RpMA6W4%J;Z=xfzVr7I95X8l#tQE1&M7=yx~Pjg+BOc^2o=N*>Mk!S%aWGaLwGDh&ie_m-}tpO(y2dCljA z=*334#ry$1LoVdGAQ9f>Z3G=iR zmmxO--|T;h^xUq&_w5R%;I_@&Uw10VN+{$h^QA+}`8u#@#uwU21g9@N57~*;9rC9f zH}to>M$MG4XqFVJ-T?i0q{6r!Pc7c6MkST50$f{WZ>u;tRpX zuy^b7BbA?M5+fTf0k??{0GlMq6RYmar+vs9O8~a-&@)egvV%z#_7+^0E%axKeOfPq z-I{Rw-hB+XCur(Xey%0yby_Z8@$EKIBLsw&1@`>I2`^(0%dWW`UhTaYhmv_R;S$}@cq|w5PSmkjfK@V1jU`*0UR@Mc zRxAwFwp%hBwjbL?Gj2UkT)r_y-!%Xx2>RNzfDe4wVgrr@?DJ2A^n}=W`Fl~$cu8L| zr-O*UGTg{hc z(}YgyiQfV9e=sL8jP`}U4>X|8T^A0AwVey&EZQm)3nz}&vTtYNw^)AhkK`l~T5)V> z#fb`a$q!n>!D=k>68=CB9@ji28&uB;yuawaED-ra^ z#1O6}3+VDIHLE4${_=%T!+KQOy3xoT_6CG1))4v|pGd%kA7N6hr!K_QfrmR34Q&#d z7qq{BSeu`|rnkERvFCC(4YhLPLT_?UfuUS3rc9|ku{vrZQ}}Fg$uN|1^qBzc!oX8k z!?#+yGrU|zPYhGFjM1C`5hK|Dl)a8S$bMfcjETRu+2@6db04&Xy~YU}s!M;eJE}1= zc;ONw-p4);blN4Z12nPojQq4bv1R{_Lo+z72-(|&ni{EW;Bf(FK<}lO5gm&@8?8J% zsxjgM4p@Hm+Wxj-tn2ZChHka_gDs>aB&GKYXy{aijbe0%c#J-{qe0H2W&*3;YekRn zq%{G6sKPhC_Uu~|Fg!+M)T_i>L`>_SkNTIG|hfZXReMJ{==Ofav;N%D6$M@u>#MMik&64nP4)6!{2IF@RYI2aT)Cx3Cu z)~8DyjPx$Z3~`y!HJ*T*vXOp8aD;3(taaWx$4 z)RjbRaOPdU#fH9-tPe$vi$y$YA|`?Mo1(573A#fqB=*YcLHAN;T-eA!?E2p+9B%f} z&ehLZo>g-A{P|+grIf*BI=SN4+~m2O(NS&XWQcyI9u8?=CK}btqk<_jfY@6D>lGb~ zVLu%en&8`Qp+@8e7V{gqxWxRk7+8ztn4(SS27I99jW%ns`` z{F#;ILh1+IkUod)psUK-Q9BfO6VI+=qra^y4&3G8#Xxiu(O-YL;siesuUmF?jzg9@ zxNl4)*NdPI*bzf(`VkISMZTi(HQ)@mkXJbQG-IR7gT)+M>9GEp-yG>zY zo%l;4!so5!B>FlJVM~B_(+#0dPUj3h*u{$rxnwF|ALX;%4o z8&3{Q4o;4@Y7+fW^WEvlr2B%SBPl~7Nu{hSgW!uUtgSG3p+T(V$FXn>(21uHyV2=P!4-lkwj1#!v?u`x-L(&F z(ZRPsd#Lx^beF}^hDCIR7YK*Os4en@Ou+(p;6WSsFNS>;UI7{Ji?kG9Gum57@rEM=5~+*>`b zQIg2az-D5ernMwpd(X5b;kWUKv(KGRJ@EBke-XN9u}VuPQ`{;Wt5+`~@<%W*AehAQv%SAj@M!vYs`2F| z<8Eco!Uc-+c!yiidk+Y19Bhz3f6sKvAIx-b4&U??O$ND@Tar9t>1teVVe#FkI1?mB z+1CAxASk_e9EV|GZKH|g>K(7)zgse}K{#$^mQ~)0Q2yuP^4&yc^|JV37M;7FTco@b zN6>K}uy1$Z$!j@ssTWQ%huGpSj|_h^Rj^%|Xv}iOlq< zQT}(_j(N#=Zm}quYV7HPL!pS7;D0FNzd1_G3xoMNpDi^jk=N8+5;z6jW>m}979+W; zf^xKvB1XV?5=|)ZW5hlpIq6Z<)sXjNeO6mSKhn{DK~g!D)a)>nrjYqD_4aSs)Pj)s zvX5Ir*h%#Vyv9OS?mG;;5_ECs_$sWX-1$raUj&+owFp z+3swpKo>H*w--Zw4+~8VA{|C7P~B3jB4jX7mK$soMBO11a$Bu2H!@1mvaToTA9w#L zo7IICL&u;$-4eQtK=)68!zy8e$mR7*vOKlfm8fCNks%M^59nBPgAxHdwL1I1KDhN& zxbCkH#%!)X*8K=su2`3aDh?S5?W%DLBPROyx5ll64!1j&CaDg8#`9cziR$uq>jejK zCf5p!iiTL-e&AgTWd`m*)SL`G_lTcf(xqx1bLa9Vsa|E`9~vu zJaQQ2F1J!J4$O!-qfRYh(KGSgl7La04;m(ih(Ce~^dv&JJ(hpqz4Lt9#|uVYu`4oG z&OIJlp!3eZ++ure+Im+~O3DHhhOI{&!IMB1^|ENzg!`nuCee0w51DZbRebJWGWMqA zMw?w3n;v^(L9RRTOFA{uRgE0!9;QZLvT#)C&d!c`U%FE9^REx0xvjK^8*M?*cL7(i z#(c8D_vswza3maKKn%zDI`0cJnwu1{_t{Ii?h4~~UDu?#KEKEj-BJ{IOBHS~K6Eip zr*hEfZ25U^V{MthO4#GN^p^9G){k80M^>4jSa=~w(CdPx(5+lXM!E&N;tn?Gwg$IA zbMF~Hr6KfrE0Yh0&B1gd8*@EbNl6C6f?Ob;hYLf#eCoVjc;Vz$wI($&r?u}ej&NJx zuPCl&&SK0rw0(!HdEnL;HcXseL+JkVq045UipAlZiH zN{Mw)*L29zLD=L}A2|2i=14{#Kzl8;_muxf-KEL3H7qzAE;i^ZyPkLx`y!-be99Vj zvt>2P%*#xd4Kv%f)?knYGn+8ms}}ns7fvw!=n`-qR4^TMXp)s%j7&{Q+dNK{t4B7Q z-___rw(o61xr^8i%cGIGwCmx(ax?ko7i!>V(5KMKH~TeYptTj>6TF|WC_;yNDY(b? zm!X7Lcpb)^W=j{sL&L*0pwJSF!Q5Knr1Gz?$QD6;9zk|bYWtDFqj(H#5Yl7X-H`da zi-R3!5pPjo&_btdH}s>fnwG`O{l?_=Z=Qxj0*uMm**?~MtM^9IN0fO_gA-pC8imGz zE-9@t(Od*>@}J(L8zvDRgS@jb!MTm2T|vVsNsZ{{{DXs)!!Zi`VoPKh=Jt`BVVk~C z`vAo`m7c*z@i+Kv8C7zu@GEl|vsN7O`A?=;r{(7T$^HGxF6fgb6$Q`Q*0{u|ik=OXRBbYAl-Z^A_4R=|gb=_4huK)@@Hx5|T~Ota z=3td0!u19qoV&rXbfT~Tc-^R1kv#cd{F72so1Q6#kC3uPnSq_XWy+|oIPg-Zah_po z*w7imd%9p|uU+(fxm?gE-&VkhnbFOLieclMQ9;>X2R8=w{Y&w;bwH^tFFLWq-Vc3N z5#4sXFgIsi!pH^%g{qN}@dFg*vLa;AeTvr zX>D3_LTkl2ymCEur4WI*#U0P-v^IqaEmfo?Cep~$s|R#()GMdu(%A+G=$^^K808$$ z)CXN-ot?ViFru=8!ozr`%Wr2tp!3u+mXz8Pxc@?-Mq@%Kv_IvT+pT#H;V}K8@j^&V z&21r^o_Yp}X`8B_A`>0PguhFK>npsM4*y`nMetwsZs8h`mqu3OYn=^(i7o z6YSOynzyeW4PgO_k%>)9MC9ZbL4a&T&UtTJG^r=6*kG3Y)PJ(>|+0EURMu0rg=OaicoCPAhJq^*6yUE+&z@v?r zNF8%I=<0BG%GVR3A+GWe4WU;>eHW!uok_YeTb+!5YdEHv1l8Df_Ed_a{Br=pjJBm$ zfO+5wA=*8;F6sa*&}Ps1E%W82rFY5fnZUYOcr2e#kBB6LuT|I<-1_}408DHf)|!wn zqhz)?Cxb^o-hJ>iq|v01Ju1->v4KDlbAc`W6t&w7!40F`ddiAkbxkLb!7HvCXHSX% z`;mvPnlRrxQ#2Ylu>b{h@V}WqNsSAeVqv#FvAse1|9X$9QjFUCdn?rG=!sxU19++7 z^O-*ZFCM}b;2VyF+DG^OM77uR7o3FB%bf ziHyreA-F!dHQxLqi|s|bi^*C`GoyRmPY5Cb z;UMsdbK36cDK9~RCsW=f%;AK{0B-;otulCi_?F!xGwrEIUv9L!m*GFlS5(n>+Dh7Y zv-K02Mge~C1l=-om*m)ok3IqH3MrP^g2t%uP#7%Mx;~uePChMu#!}`>PKSjkE#>h+ zl9F+k56ApN`Wf-#r5fA^YPd{9k9Be%>Av*l(G65@#%nCYxA5GHM#egE}#$2Hx zyd2^_9pqH(3=7U0>NOujvK2jxL_9S$xLTXPvDb_~xknv<)~yZI$!*a?_%fiMg@@uw z$O}Q-X~loO&i@Ldt>_zOe&>YBzH=cm*EB9el_7P?q#&WNsoh%it(M~_gJ{)yl@K0s?IWx5d57Un=8MNq zcLGkS$+0SB;}_qC6Mlr}!Y~)K%Y_a8|ufgIN`47*%MX@qfhMo z7VvE%`0|+Bu2%ui;mUin+%ro*;Q7|F&lf!>O_yAanDf(ZunZyH(;R2O1-H=*31ldX z1Mm0Mz`z4ZzAw&|^s#aduMBVw*7{X_43`FREOhEDj}$RH0rXcW;LnUO z-LvEn_AO=3G}fUJf*(d%1WodpBXuljv0J{GJ09`1MABgDwTs-QN5*)Z1=qa61$E(% z&i-4fGT-nKAWvAT*tG%dHKBB+|kJ%VGUP?8bAaXM^lq$?6$r#kjy z2(7%PeAb6MzYOt6DHDu<_gyJxf2!|(6GUOPzv$zy7j<8#ecXxe|GVwIkk-}EPZ9X) z!?G~H1XZUjU{h-%H)c7$^&I-uF=E~oCvJ@`JR$6ovu`a`An?Pc0Pr*S6eq>^9vn1B z-2oNyAxqRT=E|?4Wmn~GLVbKEa0lTl*k!R74BSVC_5Ato=iBqEw?!&l4ex#vJ_L&8 z){SewJUbWNu&3eQ^LMj^dtP|M^EeL_GDd>iLt2HZZ94f}IF{}ThK3Rk(c3nRd~>?A z=$EoZ;FR*EY#2|YD)m+s(eXA;O>`HS#Px;eQGX*2B3F3q*|O2OFgZ&;T>^{BDgyPX z(XVS?AbqG;G<2#;PH&@Uo9Oiy%ak^~aN3BOdXRUdVyVf_9RUTL4e$^6wktgje{2k1 zgG;{HS!Qr{sX3f*Fl;|3ODar$_iEpCab2XW(~Rd^E+dm zv<#P@&6ZMD*E9gEwXIlCERRdf9Ov;;!LdE`dxc!WLQe2K!VOsE(dDD{yK&E#ZAx>B z8cSjzJq?3TjLN3TV(pt7K&9o^{zn}^21H+Kovirh@gT?~HeOmR5VA0F5Dn%WK~z#y zZKufGw(X~l{w`gbS)6vM1-731n+nKB*OdyBgqti23Jv{~|9n{1T8 z7=;AjB^{TQd4&Uh6?c7NfCC2>%t-&W{_B?pN4l5%ZuVduxSZd~k#gt_xw9;u-!m(d z`y+I3{hmQMy6*wlNs|KRfoOY=-v{--7uOOSFU%KISJ-q?$P_=7E4QLS_%IgKw?`RB z#nOlOWH7q^UAZVIR}Ot2vVHbPba1Q--LA;4gg)Bo| z?PUfcA|h|q9DgIT6Z(Boa(teqf1wszPPet{ywS}e%-zW_ul{eNKknWk;lGo2>6x#s zmq7~8LQrTpAAV@y@1SP|a8J`P(#QAz&cYo3yKE?^w+%(fv=vvT^)S0B%Ovy5*lZ_6 zCE+ixSS{tz#d08^+!;RuHBn9hKX!J?Y4&4%XgQC1TKv147PSH<;j81 zhcD8JJIw68hfhcpP;KcY=@`lGT`clvNy|FEHI>>}HmSb4+h{i--+Nm5+=D z8pr`LZt^tVLP#2E<@e0^K`*bw88?2>)yjWFrF|Tp5Gev%zQ4pf|69CZ3B|t}l^7p6 z30m)pF3itSrB&I z%-$MG7w8aDewZro2Zw8ju-Ygpi|f_Cxc7{mUqGq7 zHqZUsD&@UczM`gEALTWdmbmjSwDY~d*>Yt3;7sLGar0G?;=XfXymt!jE7bAIq#Hd!{stH# zSunM)i%|7HO7V$6wACqaS@!RheP~wBPDO*S#6oX>-|P%j%x_NBXhSul zz#>&~277V_w3KWsGztklxt`*eml#7O z(BG%5F7e~5wW0SjMcS-jPeZ&3L%#X8jI+N2hf{CTI@bSGB``GxYA(em@2P}JTN{)@ zcxv+;Tnyb)Hj{FNtJgYgMg8d6W^kHgX7yt&nuA31>3PDv=@XjUTYn`rM7ZczK}>9r zaQ=zbvFPGCTc61ITkr(f!S68Jg5rKMzs=%pZgFM9o{UxnW(l}cS9_bACtDJF7>W)e`mZxG(#sa{{B5pW4!Ttx}AT;qJdr(fs+x^p-GBemsG4TO>N^9@Xi5D*j zhbQM=b}zJ;HmvVo^0_NT3-ZlaNv^d&kLCp(MPasjvVY_+y@PH>H`Vw|-W6OqG^eZK969%<)Soky>vO3_azFLD z6yS)4K(ppqf+%`b#Jw_G+TXi6QPWwl;_XiSqjyXkJ>`1*X0`G$sT+GiE7mgFh`08Z zj7abIbaNb^sA107wbeIwWYR{R;zyig<3W~gE|Qn#ww#(L@tTt4W`-R?4G|2Wcu0jM zl3UM0F2!={kD2WO9NtblrW%g6#(cDkuH4Qz>aXy(G`0~_qyHEpI}b81im_|@Im|UV z!fF||11*XQZ!aCLAru&>5f^j{Vj3k(`e}!@iT}~GHqY7(W}-sBp5aJ||C0>H#{+tV zX(;3oXVus_8+w0Hy=`BP1^-9p9rtBYe5g2!OK2`780w$yHZG6}*Y{CjK zs!Q4VMpex^t9%Qme^Hbr!y;`{#2B8d$AcLz0V_KyRXvE_>tQpluae4KT0AL{M1vP z|9&eZZYY?zygj$?FQvi*FTdgO-W*U29kMj4Jy7h9ka_ln}H3$ooc`SkQkD>q*>7uQ|A zqx>Xh{_df*$m(B8ikc9tZu&l*Jml9+o7~}TF8qs@bn>W@Eao!|{8l!}T6WzAF8eV* z9bpo^L*DY>KFSX?1zo+y#&o;4jt^f7Oe;Em`1#PS0x;NybWGTP1DC&)Iamv zHavt^(Lqf$p$X=%j|?Q@JJdoJhXnRf2C(X-l|f3C^st-!lc}cVP3J<|($n6I{8cDu zl|%Q~sqRad{g&DpG;ic$@ELP=zYNFBc*&pf!bvMJY&>k>%j*#Z{Ekv7xUfPi{J7dXdbX)!6XeEe?uQA$t>Pn)yp-yiZhr@LO zhui|zc5`X9yx85cYvmIkC6onTx!I_~;Bf?t>pVdp1zFKhrbTLWu)u<~^H7y0|J6+KlpZ|xhw~mYI`@)3l-&<6Rt>tNA+6xPFJG*c!4>gw#?D0< z5pr!ny5vYn5 zCHjEe2zCsV{xx5C93y>5?HX`|rwLI&SAhIk=WgvJP*$HKhD~of>KOa)N-fTd?hbEO znD!0j2fP&uRtUO`+BV+Y_)K5_ZA-?nvE)7|m4ku_+llcZ=%2$h_`#Bvg}QC$L~)zY z&a(VSmFmNw3)B zi~SV+4Hl#(XCAhGUnJ^@NCF50!2oMa|8_2yUDqDq&*iy;Y|c{S@esE3GZ&>B$fh&l zs1tPjJ~V#%`niT_)niFfi=W>VIA$g!oR$Y_jQP2_7$DXHcjzxDgM`|MZ*>CN*zDr) z3eqE<(XnxHpcL`(qw4m^VxVoVetvOVoBDRwQ>7UEP2yQbBZw4n8K)u1`ZKtKqC=~y4`z46zDG(|k$3aw1_Lc|uWv--0l_9b1wK;cMJy`}XsHLkiLY3E{)PjlVHelES^K9x)pnd*ROJ zE$Nj&Y6%)Tyn=2kML{jvAnqo+KE5##Spg}S0)fP&TlqjwRx6_&BxU0OZ^4c|&j01) zL}^H?lkH;Wy(=m&iIcYx%U9o*btN~Hj?(;w(rE6D6n*=)Q6?=fFHab6d?;o0@wv>) zx;iCkm*RS9NNly&z`U%|WBMZ-=Kp`FEXc@@li^0cOp<*X8cC(A9wMly6}r%c-mY26 zq)*Y)oi(O_SfF4Dsd5@z0$0x9s=RWmZ|)yeW4#N`9HQUU8~p$dYQ50 zhy^7-pF$>1KPR$5IIm$J%Ks2r>!hw_Sk0lq=S5OD>if*wd3ssbb__ty4yf1+rzL@` zjL-YS@B}us14sg(t#|bG=?zN+ik}B`O=erN;+zNCP^N)Ak(FIzUBFxyRl>wbp(LrBHUD? z_$;K7UjG7Szs58b{W==ZIXVx;ZkkVj@z@?2T6lY`ziQs}V$lE@XJHxd+b8hb04u2C z`c!lA6VLOnsi$vr5Bx2KMxjV|1f)c&AFKb|M^P!kCz?4r?pzzubMVvce?`7!Zu~H> zGDF0U8$g^>TI@`0m&&`)mN31*`!Bw}rY!l5k^&2YRDf!pf6=(>*V4Mt{IeA&>rRaH zcV?VP7;auFqlia=W)b4mAyk)w`^-tOL zCL}>klXu0A{$R=8ll?4P=iVF}uo)r+I`7Bb)E16CJ)-D_|aB2O|wAV^K zN!}nLyx@{lb@_jxWumA4B*5T_qo67S>}ih)WcolvXjt-Ac9MeGP6ej9<529;(sr%m zlUO)s&&29nXbk2Y)X4Wcczq0fdtQ_us{G)7j@L90vpQmMhM=Sj8crt2T0RbSYezZW z#wNh|ST3vnGOdsux(reI$&xjh4y+Q5Zdxl0U*8X_QSNo>rK6ySUaN$$zUZKku-?0j$mY<3BwERj^8`#7q2J z17rLi%jscxQ(wIZna1Md6E+ZO%lqU%851}|ph*mNjP+ODTy%)k$uxkt^n}N6{IRNo z<2>8VR3qL}E%0N8ZvqG~8;Hq+$dic2I2VKmRiW10?=AL&-7Afq#&Dm3vU^nU!k?DX~NS z5?9Y11q|r+1@AsyKW9H&@SOHZ-ER@c zki<q{KG(8)~p|bazu6=TRZK)K=!?5TEW&J ze8{^)QWk?1*OVxEZh_|DW&XQ+s5}L_e&7%lS~9;4O8{RN-qWGIn0uU3Wzz&L8iYq~$Tn6K{m(hL3Cts9wp zcI`(T?up?{5ywmJyKjYP`VCHgXq;u^mHD^n1E~bCfWGMu!@q)4b7XQRU7usIdTo8S ze%};IiTk3M*-Fdw468%=Km+!Csz=Sggn48a)ZG~_;eGJKnQ2mO0deB!f)V(xg-{;l z@c;6zCVN<>FbiVzLYXBq{+u4@e8y~p44|NT7Z9MtIx8Iia6~yKXk9nb<=|9*T z%qSu3SU0WQw&Zwt^lz<`lhFp8jC4G*+w|bne_~#`udwAhc2r(@Fz(@6AY1zljV>6I zM_HGzP1aJXg)%4q&y_w1B0?BR0*xc1C@)DL{4m`h?QL(qwD%oji8lJ&((+yx&J2pz z_qxCPCyVoIQ2!9DUOk-tH_<+Xq=E=+cNrcn94y7vNEMiAm|0nzX5)tQ_CL)@=OEt4BW2F2gWQPGhZLujTY)ll9x&z|!&~1rx?R%|ALX!k zAD#N*q)&3T+CTe^bLla7>bj^9il0Bct}WoUU-j*@{EPk3Cau8p4@;s;!S)FCeemI0FjByLk=@n71Fgn9Up{2O8kd+pXjNR+m2fJ~f?zRN z`9)G@ZL6HWw!G|iS$IK5HhzNdN>9EGYBNDj(A3SXE_Ka8^A`aHTroIO#mOmuS4lts zlbs?>^~e}J<@?k_>jyk0&|_>9kh@?8OMj_8=5N(J87^Mfi_7(#NIy53$!o83EkiL8 zPxxjeJ5on05}lVeG+ZQ$2rND;+j@3hS^Cdbx4e{=o_<+JaV@5=(7X`D+JzI~gZ z6i`+0{u>SR@#7!<6Fqe$28!mEDX*^|*yaaJq7s;)2R7{^foZRcVfDLXI{Cq{mxvgt zjWUdePS+ss)U2ihkCAV2)1tyZhg*?0{uE$Z3Po?qx{j-8CCS{Prl#f>66zf)b0`B! zA`lIpUr-Rgc{%A?S|mUb*2F|n2M-%^grp?zGuel_H+NXwa)y1q%uHnA7CDNEj&Wu4 znN5yCH~t$g`?|WbYcPey5o}hpmThgORirU|@MD z&dMVPCexZW52wfENjZ_n98WLcvfr9f431d_?d^wqf^&xMDzkVkGx3?3N!0DB+$>M_(^p)j}3u3mYg268Q#)b>`^19(Z z3rqisFzT95tC7rE>7C?k%Ae;H*t#P$GI`cTU_bTb7S`qHC!QQ1^XByu-_+Y>}3wW&J`zZ-MX*pbhOLJ?n?y;C8#=>Q;e3C`G2R72e z{I?%uOs5$&FzEgbCmCac(YMO)|FGPiL{t-kVYhGJzL}bNl=KzA%1-dxEkMEvoQ%gv zQeig93o7R$-ppEB_C&O%= zL}NIj!BSXRPFy+o&leZQrE{@!*4p+D>J+`-Wkr5kMQp~r`XOiYMiQt6yRiLPh(n~c zA~(&GXfXf~l8e(^`esGV8R~uhM$9r@J>JbeP!mb@`nk|#@FnDYx zul!aG!*3S{_E&>>!*_m()?KD!$DsW^612a|FDy)S8OWS!q~y4xP9u-L}8%Da*_-~A4g-^>I?mGLk#ZN;@a@@j*RsG0CtET*0>YPsM#sS*-cs<^fD zA1ZG`?(wns`hoA5@gjl8uF3JS{Gn|5np%8$b4$FCC=PO7;+4R2jNQOWpWFJ;C3|oR zR7kP>w68C-K_~ZM={HGn6)pz$_BjB{AVrkFetq@g#fu5zHtG#4cg`{LBR6i2glzx( zUDp~?xc=b&`bU!8z21NvXHQ=dTSP<6N^!T+v)x)=*@Ij9>C;XkA@xUJz`m{`bfzf! zd2SObK;ugRPAW--^EfH??<2@KgGXSKKFjjw)91{9Vf}Bx3doa+OUNT+BR3*?8si}^ z=Mfo00=;TTbspwZF(9onkY^G^vac|^t})YWK~abhm-L#*db>>Oz9tdsF7MUS5Su6=-_(L z%5`&!f{{du%b&QG?<)XLl9a?6u)jUFKJRO3nf~qDx1G7SDuCe#hI_s0P(0XVRm>Lp zunNhfKWmb%-$2%+i3XJa>$e|%4&?<6?ClZaBTt1W7YJ+IyMqN-+8eL>% zrh23f{O6n3l@MXAi-9~zIMQrPKhvv^9<`mD;E23i$(P_naIJK`T#%6LjA+0=9ix5n zy8y9kV6iw_yG3vb%KiB9V=xuZQ<$pi6M&?ii*uqlpDunCJoja?b|+vNk$XHhVPiSf z261m*7Z2Lb9C&5}DYo*%@G>p7pxpTAgfy2W;FK97K-4niY(O zow#7wS6MNsW~A3M6Qkf%=8*@p^){1Auz=Z~kNC5mCz%E+Tv9s}Ry2hS->CpBLS09v z!W`NNU~-PZm3`&81;T5-`LDNhI5EeE!2C+$EyKLg~ss%Q|x$noOg~E>WTj*Vm8J zmM2Imf;OiuFq$C?%+6wFVR6`4`r6js9^OInc|QKA#S<7-L7n1%dM?3>3Lp*| zy?1>Dq|68ra5#Jpnp*WTI=akn-Pw=pQ1oi*1C{sW@pn%w@HXs%1xKD_l5r$Npl3oV zz;+tgEzUj*eDCb6e((4|Q16x^n=vxcIs9Z)x<(dVSI-%Y-tAK|Z|kY!M&7@nHe2o1e=%K#&yZuv1C>KXsQr1J$x*Ij#u&27GP zP?4yu^RvSE7~`}IJS?F zb8EW;&0~v(J+XrWj-dl;;!nRKVPJHAc%LtVN_Vd>Irx{3+fzb@fpgy-cQ+0)3`STnh1kEKC z5=tJgpZs zr`!4WERc}R&CfeMx|N~2X%UZxXZeFRC(r=H)s%Q0@K#Rn={yL8UcyoSE=Qqy|4}2~ z&Hq}M-7Dqg(CBaPY-8FvP%DpHcjc9u|Mmx~1RWFA5Z4luw?GKDwzd*+jSnfk3#LvY zL!c{)MLvjtuK0p?X)n9X7oU73C(qkg-d3tka2KTAO6$!l?J-`3XF zPlrRswLvM6IB46;uHc}Ij*3bH(@J9MW1J|z+8RP}?c?M`=#{?^a!qR!tXFs~M2XAl zs#r&u+|4N{k28<>WE-}KU<&-3;d+Wh#mC=EHL3OWYEb2gI`PH?3@-~rmZ}imTuCbg zmt2b#?1u{3={M7gnlo+lCsBol;K7D=ZV$et4_Nztxt%SM>2XFn=C@ltMEdpEN#(#A z=h`*>i_+4RBjgfIdGmQCY08>c$b4@Ae56Ef+PGSD(I?M8vJ*PGm7fwPDI@g|T_^a1-(Y(L}_C$t|8)9MB@ZKdMoIa2Sm zP0ZelM#ZHSCf|OetLA;)h9HCa`$`XPVH

    <^Cy&%i!i4)Eca=wTuqIGA0*ebIMyM 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 cvzWZHB0(f` z`-Ykm@f7YrDQ(C0?)+@>88+s3GSbfz)s9jd(o!1Kev*3TlX&^{7WZX;nVPhNvd7j( zWG+AELIpsw}LeBQDe@IACo)oqp_pKnKJbtoqTt($7DYXO<@xTA^ zj68fX_h+Hm5PIRo-fxIV7|y?c`0J)-A|HbW&vReGe{+zOe2`}F66N1_kRbAwr(yGI zDP&Bz{`WKC`m@w*UP@jcFA_YAPr-{wtj+xK!oS}Pxoe07{EhfX0l_OZ@Dr1)$!8vI zBzUX@3H*)p>eripUR;8$4PN9*wiE}|pHC$s`TsBXKRR+8k!ECx|C-gFbMHO2U0g?_ zOtNnJQ8;v{Yih4AjNGdBRTAGWbYCBd>@2ZCUOw@rvb)l?=nue|r>BmK1F=;MDl{;v6WT@ljBX%$a6=>Ke>;5ON`!_qw0&)-lo^6c^Rp%XH7QWqI?>fIW6x{1WM)~_&v!lzm zHv-e%2Ur>$S!j+*usuS8J(b5U@vLr%HD)ut^Gwlo&I_f=a-E~!qOGQX7R@AdrZn+Z z_ibNCr5uVhznXS(C#j~`eRHMQvWE}foo6_Hwl0X-Vzzp>imN2Zwdf&>uzdrj_VpE$ zpou(#&(H5PnT$JJx=qG2uBDT2}ij4mkMT?j+J|~x)c!TvuZce*t4^}NvTfD zY$5#XaEhqw%Ig*7beXX88reEUgO(zruMHFX7xxpB@~OhAzJfo8mrIT_^W0gClb#+6 zVivL7*;-%eHVp280i5z@kA1HYEm$TY#(BoZPUYU(+^>W_8;s#x?WS=g>H)pJ)BSdj z@e`g9TG@FJZhIYHBPZkKlZ=PhbiiS{da_IUCpRcF$tJt1cQ93-RV{j^dJ0fo6ezat z_#68yeio)LM-YjM_}M)B&Y0poU?l{O`D42q>{ zXTw5dGA*gEr6pUpq!`9}r2K^r3PT*lgKg(MV(zcr#fEy8zFO(BoL_9!EA>iUZc5jt za%5pbhX_+J{v+w>g}DHQ*~-;eGfz6|$wa}33GvzLdB5(o#QLiTx3KoLfGn zsXStx8$z}nI&WpMgPI)3cYW28s$CeV71+H6D`~z0$^ursv_?I~(kYc*6CNTctXFeJ4*Abh`VOvd)4P>a}R7T0sdIlct0 z`}bG!&Wf3|PutbKV3_e#uMY^i=DsuG^nFz#F?=%b&D5BBqSX~D@83|Wc#lYSDo>G6 zeA--^7{ao+t@M~!FZne_a7kN9yWhg(Mfl8jx2Gweaa4}4vNsH?s^}1v_BOsWL880N z(BXgUQiIARyWQ>8^3Yp8>)RG&mEvo)REe*CRA}lue_o!}l(=r(Nb5S8o~l=EQr*{U zQ*9NgXXk(T#HE@Ph3E%VqDvvYO5*6+rlpBCtM2#rL)kvGwDHnx@O88d2zx8jA0m4u zW`^b$uH*HXr&JALk+0IDSfD#=&Lo!Z`S6mL(&x1p$9`M!&H9xt^{6LDm>D}>YQ3(Y zIWPZkGfS+}JoJSEOi{km!WVW06uplO`(g2&`QYHRp?k4Txxu0<-3=EROle;ksVGls z;gynSp69>S30U@|D{SN6e&bNbU~;ygN!i(cYmG7zb2GEW_g-t!6>O>MI_--Itzd-> z);8ND4_qygShb8Y`kiVcgKZv$v^NcCwQSlhO*CAFx=+#{3bUp&NHwU(GU>$Gc;&XVc3Ua?^Oi^1Fe zAazZu+^gl|+7jFiRkQDPKGTM56aq-u+@AHE_0cFQe(O9MWlhRNR>WAY#ob!HiJP6` z^<0-z<0{m#*jXv5F6$Vl)J6xH&ubFJciO~UOdCjNzHaAmi3MKI< zGU818o=YfzVPYmF(t1`c)SLIfAfoRS>K;7%Z@HfW;Bs2j@v0LAL%xm$u@)D8Q;k5fo z>Qut|&DX}>)@X#erW?v|=QE;ph|_bHzxzk)P=?8*x7%`JQuE(o-@a9wmE91Ji1WDi zMi`U9L?*eb>ZgD`FTrju?9k4~!c>DN{Tz38@+Sk?QZ0>*l@fc2?1p4cynW+^)Y4rA z_s%q9^u+G~-k`VF#~fSJu5avi*`nUo2kOjY?6RdOmsNSE)xzE7>&IR^X=^u0;i>5` zDcz}Wr&D0RMlp%GKJKY7aLPQ5JVh33tD?!{!2F3!p4Mx>8<(aUs!*`Z)@hgzknNWac(B3*7rA)LLck?Ukm5?@Bq!ocoM z3FVyBixa0BAkwckA3xF2 zaDMV;(!D!L&&MCj;RBe-&N_&zrVpu2D)uTEU+YNsAXZTkI*wwS3{EX*5$h#W5xypS zZemx3xB}}mQA!b%mKbIgM_a)aPo*D{&SNHgSyT4BS68ls%Q$KGfw}FC<)#vR&_GTs zT?PG^?HMJ{Ul}|%)%V>pOHG_I6c#hFH%LN%YIjQ7<&AqIWW$n9DR5_;ly5CcFWj)` zs(7xOv$Iq@2Z{0X{7X%zLlnIS(@vUaugGL`ZK&LBO=HQEVI3D6RHrOc+A!!mY#&~= zyFDxIViXCzgzkF$!v3U}hSed%$z^3IXoS%dugoR-X~I*yXsirHbZ8`aN6W9=_a?w*Yp-e*%(S{G!J<0UI|qvWN|gzuM< zD*P_jiBDvUwDtJkV%F^oImex*BNe^)PSF{&w#{EVLldKSz}Ip1-Kpp5`sWVIos<`@ zQx(++z%O!YvFM+>HxqW>HW_2{* z3y7EM%@yg0MJ$ogTJ}(mD!(7INn)v3<9;n&8%>qs+qN85{xa6x*>}-hBG)#Wu4XuL zNit#pyZm|7_mz{Qfm*fE_S9RnY)7}JZAN*+?)JcLnf1-}Y;+q%m{7kke`V>U%*dD7 znO9XT?JlWkjEcf!?7JCxVVODa3Z3EQ%$A1GGbp^92cGAzp-JZ%Q@TV~T3=4ChYMDb z*%)cs4c_$9!z+uXVNkW}0IFv-vT2s?Evzr&HHCSJxSNNh;+!|sm1O91_Iuir&*;ij z^E8U33_VJT-(IaYpD>uZ$Jv<2xi8sBtkn@jGMcrYS$kxS6&ubc}Q~OIuY_7xqX5#R^7lU7JCT@A?TLM6wiSy;I z_17_V-|04~j@!6!tvVb%IJ@Ya`GGN$(oaVhb2(mW_%3xa&B>y(8%&PtR7dBV#(Ki7<9d{4RTXS48_N{nTyA>C+cYf9q z{*_L*yXQkxWc)irS=_I1`;+5mb>iqY;#Rqr7`M~-RXFPd6-V1qlDKbMy!Oe;D@G+z zUy%{0i&SE-nLM8~qdLi#Oe4}!$-4e!Y_Uc18WJUqk$xtm&mq5|)o#2}ik7(KMYSTg z%Gzvh%#(HwwYW|HOl&a1K)S%cWM5TLQT&z|^#C+W73vX<_Gq4>lk|eg=2_EeOny3g zbe}SNeR)oH-l{f8<1Mve=CbT}+PwR6nRbeVHuw4$Ma{wVA=T^!it7S>3D}2ZN_`YM znty#I9j5F#hl4eAkBNNKA)OtxkhzMw*sJJd|o!!WDqJt)|^ zEgUr@wV8rH6Rt@gQLn#-$4eVW_)Y4wE4UcllzqTz*fg=4{yuI*Cs<6CpCW2fTZWxx z!&1in*hER>WS-9J7C}vp9kviDSQ-4k^CuGzu2uDJ+&kisFwgya+W7BY#2NZLeN65otnZw*;mK)XI|=EYNGAzwz+j9jAimwLV%mVf-m-}X_~wz zeS_M3c%m{Fg=|$YR;SKjQ)Pc-2M2>}E&5>J<6~<>walwmOoKYQz>B_Fwh9Es5Sn0SE+WPuIfk--^+n-&na~4(>qZa zP3trqF%28Xo4eiRlPO=LpL*O_#2L}P&SWjvSzX>84Ym?Tqb}IHtrO{IuS&|yPX**R zJ2jbmF3I`$ENrnTyy5r1n1N;pucvZkiaMH4pU(2g+`Y@BdJ>)VW36Sy$D#UaF!Ggj zYCNN7LY@;5yK$Od4AUT9wsBwjA&nDUI>jJjAIEx3nRSpc?^Mq_Ug>jWvmUQYyNx>{ zYSGv6Hm2{UKQ-kh9N4}iz$lG<7iN8ESjpa}SA#OSdOpA=`A{?OI3}ZRz7x+&qCsg` zLDbKy`?^Bsd>dZIFq55vbbI{5M)H>f{QWmu{IdTwqZQSYf=;TJs;Pw6nT4$1dPcVv zP<>kNi62zB;G~Dwq%6vr^i*FBx=T-knV6%0P5&UNHjKmbzRmqtN&>l3F+W7v+Y@64 zh9axCjE$f{b1!O2VruZamhAF%op|4pco;g8VW3O2^E`9C`F-(RgQiceq$+g4P^kxv zJU<)H>x!aIds;O}M~)wr^xWMXz|n{KC@s&o)2mP2Ib`nNN^KyEl~H+^b_dOYGgfzh z-f?;?Oeb@z;o|N_SG8W`5pks(m34;I)5X1~n>Yqn>1!@jH;#G!?zG$ZveWN6i^;r8 zlt9@cD}3Pui-37JGRmRoGxl;$o&}smlV(}NA5zo;SzV_tkJ0x2&fwvf#g4Z+KIN3} zzdh2jN3twO^X1)q=TNI47K6N7`fi8Rfr&WuorE&aUiG!+}lfOx*@%$G*^q z9PPI;__1_9RNOvn^KGFyWeR;-ZXwn?6QicGoME$kzs{dsuSbXHOkpKd*vVvfKJ{1r zQpzKL2cyN*oX({%=cI}fT^saWkG+#o^RFD2p*5&=kmM=Z_`a6=cR5KW>-dZsLP~pq zk1S`pU$;BV5Uo5^ojIa=#>BMr=Jw-^P8attTx*)EM~hrC@K0EGO+zT1=mvLx zQF%T@&rxu6Bqj|?czf+?>#ygQ{-$V)e2o1u?sEZWrGh4LnbmcsJ&X3-US8ji){zzt zdvd1z((_fEV_f;K7bM5U-#ksyK=%-3 zSV{cC13S_5a$m&^d%KLMK|;$-otKA|$OV4inXA*R-Bw5rQcV}Jy3#SiFZ^OB&R)fC zbGoD)ea!xT;*MiGnba<;Vcm;^Ga3o{nd*AG^^A*X_vvL%MiJQnA2*cH&^{~A1ytH$ z=H{%HlU8!Byj*pG0dyE(`lK4R!@@Ab_4>%it@AesPQe9Iz(+t)E5@xcG=Gv6SIU^-E+`nXu zXn)K}cMb44CF-Ukms?e{t>Cm}zis5&BDz`{a6!O6ZewaP!ApXBi6Ze0GmGm__6V6? zWr+-4JNIj*0HhP}sqSRS6dDF$tg6@hCG9=1o+q2(^m2* zw_85LxV|krs!gwx*`dWfEnK!lA8W21<20#QOL6CSjA^n;Jv9D}VUu>|)15KCtR8Fk z9Y3U;V#a(m=RdveIlili``vz%(MG&z`*ylXODvCA?`tpp}W7`YE zc>ey~{_hF5rgt`H9og%vs(ermg_S;?zs6Es`b?Q>&njihvAaVjy8fl=l|nv#zSn!l7SndXY|ZyJBIp{tBR) z29Z9`&cMrKo+JugPqcVRCTQ-LmwkGs>Ex4Si#GsXA_bu0RU89E$YP5o(< zibwZunUAw?E~R0Xh6}XME_K<{o936k% zd4WUYo)W!t#734Zl}amGDyZ~k`>i^Cj;OD~&+(=6oAEqP`PxmSlvVOE%Fxt3=-FCH zcwhfk>R_9R-PG8NpnYU>{)$-DYZ_tO6^%9nub)WRl8<9K&ylSC{%*uf9{yg!qZW0L z-uqj!wwJKtl}nk@z|!C37~JQ?V{rKXh_cZi4Zyn(V!Z{2HEB8eM}oM?Awk6YK{ly@ ze2tQLXgNljV~eESb`2jQid@oqPJ(sK{!6|-X)8xOWug7$2r0um_MsY#0W}$I7bTce z8D4js0ioj*?VS4{gB0K626UU%U3`j@1=7aBMG;jB055`?NHq~!+M2? z(_DO0=Gg5EJ#PM;wbu#4^C(B8NI9dYlH+W@Rm=6o7Yc8${%F2Bbf_HY;Uqq;29Js4 zNXyoDGQ}9YhEOg-_aZ__FpFs7!pzU2Cg2$jAB{B^0W+?ZEE|!fnX4~o)IiOpI@-IK zY_uqu{Z?o%IIi)AED~>}#(9`iiEq7+;MVPI|BxeXxv|j1JH6b6E2g;QzDNtU2w@Z7WMuPFQW_F7xGCZ6@W(|cV^{<_|S9Rhugnz~_~ z$fK{+)?s5JRd;u18x`PEbABNoNc)vB@!g&bjcmp!hrt?R*Wdo^md$Ukg%Wwx`j8cy z{y5DfX!&}12G={%k>B)+yWmS0dvA^RzHCr`URhQ()H!+Yt(ux$(yHmU(4@0xq=O2H z_wCmLX=sQdoJ*63(@C=qi@{^JHdkkZFA8BM)tZ``3V2Z1+bI*0sfsZ`4%3!$or`WU z9wpTAh`rz1cxyh4mDK?~NLLYQQ47$>gCkTnPM*++gQezk8$f3myRLBde%>f zlAcHY{)OW={;Wri7ZTBeRuo~C4bG3M$i(Pw1Zpg<^xEitd~$dibe7<(o5U`bb2(8S zKY=vY>xbKDe5L#o3dE#4>>)afkAfD{XUnCM%I52slB8b!Fcp|&VvXJ!zp`_!$1M+k zVQTZG7}G_|^@iX-gK^i1SZ9#ZYz3yVoKi*Lu@Q(BNw0D=vfrd*#01lK%U?c;Rg)Er zYx>Gc@H7(09mFqu^s83;U9ImlQ1X=4Gz;Ui&g64RXbLd|abR;LIdYW2$J3I!C_{W=suhazb3EK$;$?h zxwZ3$pY6L@yK;+4)JQ!;?J_3j2Y%}%$u{T@?VyN^KgdOucg~d0inUz|!w#7PLD#2{ zh;W{1pW(xcsBQN0x1B}})zR2RVmE9M(XwyX=S=fZrSO;EB2AgU-ue><4Iad-HDhj& z{M9kACgp>DRPxs;bf^~h2GH)7SAf=|q}U$0KQrQe@hDWPm(Pua2p)F}lDW`iRORix zn;(P3eKGxx!@fV?%q9dCbCi_Ic} z4pUkp4+p&jtbVpDUK^pc=*o#fR;zh?+I{0jw_d!oGwmmv?)SBzR+^}$Di-BdZ8Xx3 zQ!xv-D~fL~z3-wKK|sU5$GYa=8j;u#_IsMeS4n!*uuf}-=y_!oM+UMLmvQ>XkY7rV zyOJ%8G({>EaxCu64>ftRL|swMQE{{4NVv90e*w^|wE4O+Fivx~7RBSF-e5Vxp=`Y5)dS&@IAfr2>mTVn2 zVI=sa_8IEu$DPO~L6!_8o!wZMXrq0PbS@gHip-9`EIQjMM120dj+ewq@4KXPjK-rN zga%H10L@Dwdq$|=DQS74t$zQJlct#(*>-1IZ}ZI)uA_^zZe?F(-3GE~rBi0`?&7!9TM|K=m z09o0Xj!UC(23KBwuL?3}Xtc<>v6IwZB(gD)-8@=z;8%yZ$LQCn9AgitkPdT$H@dP@ zptk2kD}Vy&+v6NaFufWFAMK1?fW)3s+<;dM;$11}veOIeXOoWM^yvU1c@QOL@8@1a^0_MZkQ}#W^ zkv&`MizrWL6sa7cI|g2yp$6bV&+^lOJj16&rawM_3usWMe>v;GKjw(8VVr0Ou*M^A ztW?~!iFaXB!(mFr&WocxkRmKxSEl^iWkCPM9gc5|Xd1`)hey&AM9n+Ski4U_?_|QJ zz>^U?)wMZWZ9|W;55?nS!7QeiFj*m@37s=vPC zL77t?zxa%F_DxRb8jaHRANro#m`a5U)BTmbvCg9m(N}E~MNX9h?hDom#?HTBxKcOT z9D~Qsj$6NH^wl@MsG1^w*3)(@AnP^ZctAC6Ao6HSQOL1l6tp~{E(6IU4?g|8`J4We zn094l_us({A@@EI!an;kO;Llelt4y-Mnv2vS%D;3ZY_csYjmyW25YTDe>cvU_EOt)u;-RxUq?oV=Z{3m91*2BF?V_P zV_>LAz|8jJFt{HmgNWxM=suFm1Xas~j4z+8zv~H)k?6*F(zY%=Tc*V~$OiOLDfAw9 zH`DxOsu-@>z55)?@rfs6XI0pCyfs;_Jxei0IEp7xebD2>LH1IQjn7fM=7tq}AWUNL zy@b^MIc$j91b8CsTJk*goqqXs%N*prE_(XWy_+{`%ky*4)%~bKoie+TnwJlt(m2kR zSoZvm4G=-M*Qq$EhSNmT3f7ocT?gn^+Zlj%7R?YHoEr%t(7Z{3SR@LXBx zB3Vg9BOdUaeDaHnd)~9VSG`|UJS%!w9ts(vN#C~Gvo(K{7b%D6|iV~@B-{s~-P zSbA%&YvkyeZLUmH(hAJW1>Q~ialbW`Ha;`@MO{GG+N@Z%e&x@~EY;K?SDqO+50UEx z6FZ13hpx|&j(xUIc@0}z0AdwE;yxcE-t&Ud>cPVB7eUt*OZ<-{X`?(ChA5v^@X}z- zKF9FppVBA5{d3~pFAfd5H@W)mKiu~{&>Y3faY4zCf{vom;nS9J)2p7&Y~3?$LYCe4 z9*usrb<{)>C~htk%aq0Qvg4r7#+bzt!(r}pFORuj(O1phs6e38J|_(HEhVylwL@UanFf{H9%qVF{DJjm$Eg=rnjhY}cHHq>;EBs0UR~6-`(#cRF23~rmPWEH zosbO}KO6?!S9>6ea5x={jtpaP@RU4izQ%6e1L0m|*T45Q!&zRer>~#c=hX3B%3fKn z)Oz%t30eDOVxq*(CmJPt?%`x**U1C90h*MI#rdU+5p`Ah3VX@_>(K^)6L*Rpd}DN7 z{3bNLy*eO-^H<+)rfbMF?hhuS`PyRf=W1fod<8Z&;)?o#a>rcvwO>zpUTY3umR)Cm z7G=hOzW~brfw({uQtCTlHSyA;sb=4@1gA)bo)lAU^4#@++prChxe>*M(&yE+wMk}} zW4a9Ie}B$#4dglBVR{Lcc)oIyR9U=O|AIUL;9;90G5&zv#~54*7NpQnldAPmrY;+? ztj$|xdnlFqjue|3_Z(=9$m*l9B-rk=CC% z9y6e*kgD?4EKr*uY?rAgxx$3Z{Y@rcq-O)CJ#)0=e}v@=w0(!eOJ`5xA3VokOkq_1Igq4 z8x?DU-?swr6SDgWid^1QmQ>y;LTqD2!q7#syS3O-9xV`K*LWdC8i2`5K{Qx36aYYo zx~xo@Me4hlwKlyx`UlMrd0!$o(jywEbam7P|6%1)tK3XN-av1OjZKkxNB++ui}EoT z&7ZIY5eF0EIaz%zWD}bWC@P8-R({HI2mz{X5cGaQIS6;Ue@5!XrJ@wix!MCW4-}!O zJn)_oFmJyUc=HiBi*x`SQhZg~Pw-_QI6`cRE2J$uv!W(0n|^2O%C7=5pl+F6veiHp z&SAEHTI#K`oExMFy((z@boBLO(QhHP|J3Jv6*j|tYw-?XK2V_g4;*Hj^nKXH@BQxI zi5XJtS%egO_i>L<0Vkk5^h_T)AOGH4&1@le;BTQv2$6fkCFr9LWl|GbjU`UQ-);*N zv~m(`A4&PFPsju=?m#C`|0Z2Nim$WU)3eTpx9}w8-V+|nunm!{b!2Mxf`bladJFey zVyd8}7#b#87wzMJz77`aMG|OWglzizzyuh?QN8cLk?w(=6(ON%Y4MFvWI^%mf~hng zLca&)h?AUSQT|2tX8}kQQyA&7u0a!}4bhj#0)Z@q$!35i7c>6-lzBgQNuL2!jDmVr z&+EGQXWNAE>@>`b+dCs~dStBu9ij#F)IQbSO%>u@=dl=*D-XWDuXJ5yxg2+pV0?|j z5Qq+opeI(;^*465JMUw-33T)zGZD&VQz# z9#0BxF7Xq49oa>2-^VDnAs&NoR7=mfa^54z5Ae`^g#KcF^!0K|&J|#S-UE8aCY-S; z{qAQh(&3{tE$cKXWYKT@j0yz;XD3DpC z6Kct^9yhp^)%f>>oXw!PG$PNhuP+Na&gga7RI4P*c4lhwGVvMRQDcj<6sy*c-McGw zh=eJL6P*Umm{!8(XW1iQKDoX7$<0@)6OrRdo{M>u+)XC@+08wMcvDxGx709BxBaIQ$;i`&xPgz_VXg_7D<5B_el?UiXu)m({%AM`spz$(VB}KPvX{pmP=BMl)6F6ThQuf__(#-X)iRSvE}JrA!}C0Wlv36`-0TO zjDBd)1px&Mg(t^il&4|I8bb^|&(it7QGF1?Rn|D{sPDj*xiz#EJf)gd_Q}8l{H%g* zQPsi)5IyeUE9|r7RPpU}3rv@Tz}a`RNvs#2vP!jzvq$rm2C3;sF7@2wG&YI~Ik;uw z(Lf<@D<|vK68-Y!0}=QNFKv#Enz)A_4z6_S+LV>&)oJ_$b`8~a9P=psZoypPAJ~x1djw~wn$!vIe6VXd%1Eej$tlmlWel?%su6aU+t&{*ik-P zwJ9&;*~&|bRBl)xy+A|`75v3IbAMtYmDRrY{fyoxoksPLyl7UTLif5?fj$U;=s7+3 zbn37I5vwb^2JZWp0srM7k(oRA7%lf?F17)n+3-X9(6Qd}bP^X|%kr4RI;nFn_yaR} zEZf(aJUkp2T^X6DHX@{RzcR1L!q%K$G;_pm5JHhFaF68-$`?Em>Rl&1FK5QlZ)OE( zQBw35$>*;dbhWtdjbtB?MyzYCRWugXER0hEdxh&f1%!#dqk-sjVcThX@4A~Coe#x1 z<)_>Td(04Sk_6av@JlhPN9EVlfxTasBAf{F9v@Mk!&&~!99uN$%^wG<3THpPQJ`zC zA}GhYY_!~S$?oi(4>d0*@4?=N^GFJztllM#eh}g@7N$FwY$m2&pik1 zT2bZ7PYa|M>diL}U{cA4&bhPLO1FH_hZ2!Vt|{N2I=lDE)|8JSV*qN~o^h-$`1eMT zY)IG|#g^L0vTz4bwemxnwI|nOnG2{?ck8b6u6v|@$TBh(Xs2Ify+BpK)|0OY@BRNb#H8&2hVZd-I}o)Fo?oguv>15zItrrz66sNkWA04Oa2qDZKS!;~q| zBkv*q^@0bS&xx0Vu&PSZLk-Whz5)dA^YRj)Ivp3=Wt9jKL^LuBtJA$*2+O1k=KrIZ zJd+j{SA2F!-{&mYrXp$}Mzc3?)W~Qrd5bT%tK!D5AUX}OA-9X_fDH>sIcg53ar4E| zZvpKJQ1OtO6uSCPnuZjf#`O>lcy^IR)WyDP2C>N`rDWP{S(V_93j_-N6Hm|*Zz29d z9u@9Gg4wfvKTh-RO@ue3Aw1LsHWxXgAqH0QUFzjY4)Q0d$}Rs##J6(kd&7E{CgU zY5nk6DTwhnHO0O@~+Lv_9y3e|HCd<)t zY395Igjm}wwrQ#Qy&AN}v@Jr;gsqnpNB~XB@|W1wwRfGXz|^;3GOyvY3bu?^r#7o| zbxU~6g$Z;JYNSOtG#D*lG5QwmJVGa8KOQpOSJuYjG)N3xN1U1b8eres9Up;M!fnb% za7rqS9sV;PkgTACqR->>ngxRQf|n=kV?Yskf+h%Ec?6z^M)x3WcgbfIFxP^n-O%Kp zqkRlUTmJ*XUyB0uBxurnGE*h_IcBQ+2T$daO4qEY);R41b7hLXmFy+KNCpc3v!;x_ zl0eO24XwuS#h+tz$NlnP*-u#cp$wfdd4jd)LI*0#=ko1 zE3=Euf1;UD1T3_ii^{}y!b?}Cb+E9g4%i!}{|!eg{sWF?-c9g<%4 z&)jv%R|e}iYt0^G|8je0wYr4i%7g9-=fxl=x1IGdv)+9ur;K+*`n8a2n%@FDpK|$E z$7g97_eIBR0D^;5_kG6kf>N|9b%%dPT1fYFEFt0Us3Y0LT zJmm5?KufOt2p?t>*u<9hL}ea;J!}@FTOpMR2M0U+Mte-+ij>6GKW#}SO#0?@PQi}T z_DSH7PDd0N)*o?9$k-^@Jifdo2xyWsbyhqM&7vSDh^`ok3X+hapstC0=TKTKNyM77 zkyuF1My&{{_|rtnK%Ks)RID>ktih`ii*HV}{e^kjenB;*`)kydX;9&V`Yv6FQBS-) zxXi(k?k5%{whkj<>iU%c#T`cUOt2xoWx^T5-nE<-=l3J7pggQR72m2w`eyp!F{z@w z$i1;E`TA$)}~m#i)8OLEGI%*Z>|jtMBnQ z`Z#}dPca6#!%zQryhm;VQzS2%rOOp~M(bE9w|~%i-w+gsATO+c>*IqoLF4C>?lU7Q z6S5@}D*NSV{B!p`>wrYfP1~dRzxkN?p?aiA_-&n{R^{g0Wh^z6j_1j`_4G)x@ZOtJ zH@G0ffn@13U;o-JIy0mx+D=4t-U&GipnMh^eRje}9oHa3U!rgKWKRbpX`?O=M9!We`NN4jnD+nfp%o{X_ zu7@Gmt3{Aj{-QD<6^_h&c$0RMw!Orni%0qRC;`h!?Si0(jxH2^<|{7EW?aQY!c!JL z+}HH@CD5p~K~AM;taBrH%bQ#X;|i`PJ=RrVc7(eFc(7?T(fsLTv4f(8^{2@8UgnMp z8|XC0xpiK%h#`AktA`o(AfETzweL|dleg3&tLK(&G{4!)CQyxx%ST@6BGZr;u<#EY2t!0!L4sL+swwW6>_(RI403$!K099;!LjbodS|3DNkFZu@E_xEZ~Rf2F77_WV^Uii%)B&@m5`HyTt(m{GB(%Jct z*Fk^oAEJ(|E`|eQnL*ba_8R(la*~7-eot%%1MYsj`27FnYUCzWraXhXmg~^gquP3^Zz^Zu#No{>e;%8 zMdWx%{wrSejF0PxoFlwnEM@<4Kn<8E5(QIvu0vafkmhAxsOm#s0lvn9gON+OIO{OW z_3jZRL3Deg^WH3a)!g^CiGF=16sDNT{ZF9O6x7EoN$SuX!}EB<900I9q4oeWL++y}~RNPU9N3r4-5wU(pCdFpGL5maBfAt!&LXLCokP#kAW2|3TyH&7CB|-rz5VJwVrLe`zjLc zQ3mYu%Cl)i_}M=89oA@?bBr)1f1)iln#3{Y#aY0+=l%=tIxX8G1}O#NLY@2)n}Hb; zGqOdnhZf55lzjpO8rMmI0|G-7GTREUPy^5t#LgCjsl^5`N-?tk{M)K=n=rWA=!;&` z_OI3MsA`2v!hCq&JUHj9%E7~T#!KSW!GB5O98f!M(|%gTceRKv=_i$t@=|mZ+NY$( zx-^oFnZ#f;`o3{U1Rw5?=uukSUi+`8(MA>%vTa&#*H&~>?PYDb&a3tXal~?QIfM7s zRDmMrR$z+HqMP>iqx^Lr{GAbuOx)oV6{%MTqiQ@ypJvt2mLS0S!UeNpWOg49pYDXV zLD;$^;$_+=I0oZGd+;_?6b#O>-OmKN>KRRq5Y5~+uwuJQ$s}8fw zUk~c$AmDNA^bv%BO*0+;d|QTluGX5%f8lujb*mP1_+(dV=LX1EC4UL)=-my?HfBvk zS%*UilF6iVWd!5Uye)f4mE6g@;-e6~@H?RwY=bf{T|4jaxtKaNZN1#6#s5|>YG9ZB zGAdViWc1Ws6{rjMY2UoeKho<^ci4)x__V4%Bn38mlATzlb?G>UDiOvEWt_5sZjD@i z_j*yyfs$PGzL)EgY=Cbui;R02#1WEdjRnUS@HTy0X736Np{>bum4$W*$8iZUh~adM z2=)fpNx{c%L4&0rWUCSx4)quNL$C1_H)4X!L)>3t8{=m-J90gYr+XJ^tea1kO>z9q zYlI~IP1y;(7*WP^qU z4!ha3L6kA*Y)Qyb4S^~JP&qG69WmZBfJ(3#BdcaoFl^lCZeV>5t!qJYxVjegpD!lz zK7@$y$cE3&xsOyLi%@#1==fL2665I*Q6%2@f8#z ztA>zM%GvYCnFwZ&-+=P;6Z*H)n56kG(B)1zw-8F~`8Sa0AX$ZT2CmJ5Nn{KUJ>RaV zId-FNz@gVlxy^|n?Mieb={yc8WT!hm+-uv=Kf%2~AX`Zy_mYYyM9_$g!DEn|NB~78 z2CEUmel?;9Jn`Vd$~GI0>V79u03|}ufp3-&8gn8;1%q0AfYt3gb}BO@b{p_yc2Kfc8#@)49LBJY3w z2DDzi)z`m1KGlulv+t#v$dk(3dyD5VLOEa^+NF-6245KpvU-N4*?kYBk0a^YlwAaA~jA* zDj{7Zx$$Vy_cYJzN#BjWD1WiuyY>?jRk_NhAS+yDx@QHX?NhHPZG4G*Vs1L$Fw+~2MA zXDGZ+B2O2G({qp$UouZiC4BjDCIYv|Dm_HL7wP16t3BL5a2nFSd3^or-l}OhhKw}O z@ZXME6IiE-yb}*T{(ZW$8`TF2$;1r;IK|clkeMV`R+;_{jDM%t`Y=r|5NesJP$G39 zdrr5?@gi7wR0o$=y_e#yar`AtPk($$<(NIgNTr|j4R$3oL$hHB{=K}YD<(g2jssQz zo?B`;jUow#0TvMsC(L4l2e4__W%;=1BGT`0;b;wdsXTy%==37 zn8Dl!K%4$bs?z{+R+E(>ctyx^)_~dO$&ICf?Ih=P4iI=K?4*&21Jj`?kb=RwTwEGi z4;P^Up%YS4e!%f(=St`g8^9RWnkY;J7;w&*cVKHAKs}#n&I3|154hnnYw=r84qXmZ zpHN19bTP7-elpHWocFHm3JVp065%GiR#BbEiNZjO_Uam>%ap zJ6iO&=P=6IJjLps?&rA6!2*LEYjpVJ)$f2R2RHESVZ8a534u76=WI6ZjV}4?O_vUgAuiK9K(l>+N-GMUdMQ~xhJ)8^{ zh{`2G1Hq%r^^1^fe@cb~@*9;4kN6Ug}H7gH1yR(;4|xzYr8>E*R_Zd*c6;Xk9p zp)+_6Yy$hce&=*yPqZJH6>*&5M}5lJ89NtI_zi^mUd+ffARo^}t9!99Ram6NrQ}UT zy!UB8h6keaUcRz=VqiEWuV`YB`mzq?|>AiiQiss$>p42?G{GR84fDL`9D-x)#_BS<8mMlH>CNw^f=jUw-YCMuJd(Z0zjg)}O4!x^5&zGjFurxC|A@!{fbJNdy2< z=(Xp%LGoAu!+5!b2S}|m26r)XW#fqf7uysi)bwMV(j>){Wd+fRm`haNFTqpBdtqYE z>M4bcHOV z1laBg;{8#7%439rJs=Z_9pLwnByl2J1W!u9(&d)G3`1Um{IC3P&yK=S?IzQ?X#i}^ z;=68|CZL?!J4#m0VDWZ&M|$?ma^5G8k$=AQ68lVTdqB6y+*ni3){nBYBe0IWsLmp- zZjfI*c<^-%l*0tz!lE#CCi9`D|(z8Zz zY5p`zjX7QtT)t7wm9BgEpN>fc6fkjs6vk~WdJ$dKN4DAsXO#X~*KB{O#(&#Tdcf5l zltzg=w+vcs36ONRrIN3mrXlDysF6y&o}Xq;tcq+GD%# z)+`mvbyMTU$G^93eLhD(Sl+!zk`U;1uscy_B)|u$)D#XeLhf11=fJf<;l%nn4R8!wUu_f(u3KU)hbKFlvB4q)Exsy{p!w5>f zT`;oo5jk)YT9)j~kBue|5X%vOWNE}92|P>>*otR2u&c8J1I^bL<%LKBvCV08`q}ev z3fp_22zq^~#7>mSSvZYfxbWwd!E#IA&@DCxwEnyDf=R@11{TCZu=Ysu=%{m5)VWtr zq(o2UH}Mp}>8-DIhW@c(r(B|L{~XlM0>E+K>}gVOPk_bBar>7^^V=v6CIVS=JC9}|{<{;KKA&)YlK{Xp1fU7MOOdi%K8 zcp&OnQP$62oj*a}op{-B?|f;v8sN(bEx$;9+lZKmCJ-3vDFv2_TB6}ZE0~B@p7`*$FS8FGC`Mb{%2MWD1@ zn^>>!GYA?6z|-q4pm^;GTDz@o?4-zidmy0FiVvx|?&gmgg$Ymf^X@T@`hQCC zY09L&g5DZ;+kbFZ(!f}!=W!-^3dv2ALCWOEk%wlOTOR4KJl-{kqfdiUN-}c?PS)6m zpLx*2*~?MVqkA}6?yf<(>>M0hp%JcUe~f_?z`D?PpS+-ZbfrquYIgOx#WKu_rOJwm zdz6-EVIs!P)+ofDZG`|JZk3qO$G<&^$Pw+`z|)LrIgzx{(?|}Z)rVV2(Jpv-o8Xed+|A-ud2j7=*E)8kdN{fN;p;9{WY)dB- z>l{O4&oAtS8nCX_=S`vH-?ha%*}(VK8325iL{n-&r%a8CO@zx&;41?560NX3D zhuwc>_nW6$tQTaf8yDukw;d8AKrZcyG~3UKZ^~X9jdg?FdM9PuRa?szZBgv0V<$pZ zJQs6&QnCliK?nST6cNY+6FuGaaL?WZIZ-(D0n5TyD2EoJFyHVjm3kEnR>S-8$89A}HT#%g7VGegi!?Bu39;FruOTkcTYY?QQS)?TCxG zrT`M*$sHJsXlMhNRG!Z+)fA~Dhz(fjs=n#9m~T%QPNcy>^8e+69`^sfTt7N=K{%JC z_*Axnej)XpOxBeF#PtGhQ44gOtZri{C2yA2(@P;LCeHZrP{X z5G7Rux?>MWr0~Z}pzbUL7_0^P8b4j7_pqkjur@`GQ1P0y>1Kz*AJ0I0C7?eTECS7H zD-?oK49#E&rig3E$D}pKs}`)8DPm!h^=>v1lh8>}D$S_X^#KggyQ?bVHGquFVA@=R zNm>_zY=CVDp@KUo!JVR8=w|^Z3vtUB3@xm7=v*S2 zYZ(yv+ko{i0G$E@D(*I@?0Y4Fb>rc~nh98L0U)ga*^JtR^rZ$0N}BgE06)0ji?5tG zfV9|epbdR2c`9mlB$4Ge>BD@x&=8E6ceRJX0pbk=MmRzZkjp5NJQOuF1;yo2N04r7 z;o=otPx6aUVNw&L?1Sh=&~tYIQZ*0HEpY2RcCT07x~6dRc#=2TiE3(a!Z|cippYzb zB+fi#fsSd_rbAI$Rh5w5^URX;Skpy_h7!mQgtIpf`sVfuSGDaBH-pm)VvQ1uHNhPG z1Hne5Wwb8K_7|BaiI72P=f@U762Iw&q$>UDD)=r!p^X ze^pI48iE&)mOiIysz;=x0Prqg{wXzXad|b_Ep*aT)s0-CS*Kd+3Pk7t4FWhBSNL+N zQMR^R?E+avHAVFkQ6vr2HjSXjy03Ul$+aJc<+R#$9f((PU8LXM^Cnq0nRj%4+%N$8 zk2L^>AzEqbsgcKV&TusrA`J_w*<7+zHp!IRx#x1>V)>B{-Ig}3+t*}*-IDd<3B#T| zz{Ntc=>#Ll8lHW`no}p@MRlACl{$;%_|87V>$=7PO z2nF!bUd{0BIavYZ+5SBlvjQ(;29mYW4eXN+bWnKA7rTbrFD9k_>T}xQ;I309{!KUC zXMllKV&MA+t%flRtq3cLv-6AS zW(qFt;Tn165r=+n=pOdFWUN({d#^L(6gJ$K7SaHDgM&vx25 zpK_dRdZTfAP&XCfqo1L>Bd~Sht}K{Iyb)QO;AC<+lr#rpwIajbd_sNb+HfKjd-&su zXj=D&gq%2s(5aW{=J+aC;0)@#1S|2zJ4Iv;4GO2dklB!Ml~8eQVL{Os0BTE%-<|p^ z#e$X)vWbrEfR<&y0T^Pi+9`GW;ptCsp0)Wmlf3w6WD4XAb1>vnyJM-Wt*?yxcbaRg z+xGayBPM@ku{&Grb9<-o5dT9MV*Hw1Ci9dWk>cLt9I@l=QuDyQ#?hg~xkO#FJUsF& z_wIS*zRi=4Sy}I@TPsDxrfima2JKj0(4cUkIotoeZJv||p(6xp(lZQKr&ZoBJ2{s5 z6H*tfRpe@R_U=jYFB-m*KF#@v<-~-3ym{w9=gI#3!Dh)fAE_wMf0q*;xyms^!pJEG zGrkHes?@Iw`Pu4Y=}w<$L6#=R%Evy_^+Q{mq&jBC&o&M}$=l98p-pQpSaJVKzU`TW zkNY&tDs|#h>X7{l?mSA9m?N$J=)+5Kz~w!Vs(vbYfE25~yl5SaKwpPt zV7QunmjPslI`sw7QzNjeoI%!;hwi81qgo%V?QOUpND6QHbjJOZeDf?ep*P3f1pa#6 zg3jL}F-DiPuaZP6j=Fuo0`pb5EyzDOzW8fyMZ{rYQjEI}t!gl-FDX}q09|+;_dOfG zj=%|T2dNZR=PF55Bf;;9O$hS${xg1TY_@D~tvcqR-C~Kg9<$l;YUNQqHL=T{_Gmwt z-bRq2Vit&rOG@L2*LB>h0v}wB`uZ8C>0b3OYq@{$_s2ij9E_S7lfemJ5_|f pQ%ftJInO=Pm*Hvg*8yQhk811c_TYJD@K0(mmS(m)>89>y{sO6Bn*jg- literal 0 HcmV?d00001 diff --git a/dependencies/zstd-1.5.0/contrib/pzstd/main.cpp b/dependencies/zstd-1.5.0/contrib/pzstd/main.cpp new file mode 100644 index 0000000..b93f043 --- /dev/null +++ b/dependencies/zstd-1.5.0/contrib/pzstd/main.cpp @@ -0,0 +1,27 @@ +/* + * Copyright (c) 2016-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + */ +#include "ErrorHolder.h" +#include "Options.h" +#include "Pzstd.h" + +using namespace pzstd; + +int main(int argc, const char** argv) { + Options options; + switch (options.parse(argc, argv)) { + case Options::Status::Failure: + return 1; + case Options::Status::Message: + return 0; + default: + break; + } + + return pzstdMain(options); +} diff --git a/dependencies/zstd-1.5.0/contrib/pzstd/test/BUCK b/dependencies/zstd-1.5.0/contrib/pzstd/test/BUCK new file mode 100644 index 0000000..6d3fdd3 --- /dev/null +++ b/dependencies/zstd-1.5.0/contrib/pzstd/test/BUCK @@ -0,0 +1,37 @@ +cxx_test( + name='options_test', + srcs=['OptionsTest.cpp'], + deps=['//contrib/pzstd:options'], +) + +cxx_test( + name='pzstd_test', + srcs=['PzstdTest.cpp'], + deps=[ + ':round_trip', + '//contrib/pzstd:libpzstd', + '//contrib/pzstd/utils:scope_guard', + '//programs:datagen', + ], +) + +cxx_binary( + name='round_trip_test', + srcs=['RoundTripTest.cpp'], + deps=[ + ':round_trip', + '//contrib/pzstd/utils:scope_guard', + '//programs:datagen', + ] +) + +cxx_library( + name='round_trip', + header_namespace='test', + exported_headers=['RoundTrip.h'], + deps=[ + '//contrib/pzstd:libpzstd', + '//contrib/pzstd:options', + '//contrib/pzstd/utils:scope_guard', + ] +) diff --git a/dependencies/zstd-1.5.0/contrib/pzstd/test/OptionsTest.cpp b/dependencies/zstd-1.5.0/contrib/pzstd/test/OptionsTest.cpp new file mode 100644 index 0000000..e601148 --- /dev/null +++ b/dependencies/zstd-1.5.0/contrib/pzstd/test/OptionsTest.cpp @@ -0,0 +1,536 @@ +/* + * Copyright (c) 2016-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + */ +#include "Options.h" + +#include +#include + +using namespace pzstd; + +namespace pzstd { +bool operator==(const Options &lhs, const Options &rhs) { + return lhs.numThreads == rhs.numThreads && + lhs.maxWindowLog == rhs.maxWindowLog && + lhs.compressionLevel == rhs.compressionLevel && + lhs.decompress == rhs.decompress && lhs.inputFiles == rhs.inputFiles && + lhs.outputFile == rhs.outputFile && lhs.overwrite == rhs.overwrite && + lhs.keepSource == rhs.keepSource && lhs.writeMode == rhs.writeMode && + lhs.checksum == rhs.checksum && lhs.verbosity == rhs.verbosity; +} + +std::ostream &operator<<(std::ostream &out, const Options &opt) { + out << "{"; + { + out << "\n\t" + << "numThreads: " << opt.numThreads; + out << ",\n\t" + << "maxWindowLog: " << opt.maxWindowLog; + out << ",\n\t" + << "compressionLevel: " << opt.compressionLevel; + out << ",\n\t" + << "decompress: " << opt.decompress; + out << ",\n\t" + << "inputFiles: {"; + { + bool first = true; + for (const auto &file : opt.inputFiles) { + if (!first) { + out << ","; + } + first = false; + out << "\n\t\t" << file; + } + } + out << "\n\t}"; + out << ",\n\t" + << "outputFile: " << opt.outputFile; + out << ",\n\t" + << "overwrite: " << opt.overwrite; + out << ",\n\t" + << "keepSource: " << opt.keepSource; + out << ",\n\t" + << "writeMode: " << static_cast(opt.writeMode); + out << ",\n\t" + << "checksum: " << opt.checksum; + out << ",\n\t" + << "verbosity: " << opt.verbosity; + } + out << "\n}"; + return out; +} +} + +namespace { +#ifdef _WIN32 +const char nullOutput[] = "nul"; +#else +const char nullOutput[] = "/dev/null"; +#endif + +constexpr auto autoMode = Options::WriteMode::Auto; +} // anonymous namespace + +#define EXPECT_SUCCESS(...) EXPECT_EQ(Options::Status::Success, __VA_ARGS__) +#define EXPECT_FAILURE(...) EXPECT_EQ(Options::Status::Failure, __VA_ARGS__) +#define EXPECT_MESSAGE(...) EXPECT_EQ(Options::Status::Message, __VA_ARGS__) + +template +std::array makeArray(Args... args) { + return {{nullptr, args...}}; +} + +TEST(Options, ValidInputs) { + { + Options options; + auto args = makeArray("--processes", "5", "-o", "x", "y", "-f"); + EXPECT_SUCCESS(options.parse(args.size(), args.data())); + Options expected = {5, 23, 3, false, {"y"}, "x", + true, true, autoMode, true, 2}; + EXPECT_EQ(expected, options); + } + { + Options options; + auto args = makeArray("-p", "1", "input", "-19"); + EXPECT_SUCCESS(options.parse(args.size(), args.data())); + Options expected = {1, 23, 19, false, {"input"}, "", + false, true, autoMode, true, 2}; + EXPECT_EQ(expected, options); + } + { + Options options; + auto args = + makeArray("--ultra", "-22", "-p", "1", "-o", "x", "-d", "x.zst", "-f"); + EXPECT_SUCCESS(options.parse(args.size(), args.data())); + Options expected = {1, 0, 22, true, {"x.zst"}, "x", + true, true, autoMode, true, 2}; + EXPECT_EQ(expected, options); + } + { + Options options; + auto args = makeArray("--processes", "100", "hello.zst", "--decompress", + "--force"); + EXPECT_SUCCESS(options.parse(args.size(), args.data())); + Options expected = {100, 23, 3, true, {"hello.zst"}, "", true, + true, autoMode, true, 2}; + EXPECT_EQ(expected, options); + } + { + Options options; + auto args = makeArray("x", "-dp", "1", "-c"); + EXPECT_SUCCESS(options.parse(args.size(), args.data())); + Options expected = {1, 23, 3, true, {"x"}, "-", + false, true, autoMode, true, 2}; + EXPECT_EQ(expected, options); + } + { + Options options; + auto args = makeArray("x", "-dp", "1", "--stdout"); + EXPECT_SUCCESS(options.parse(args.size(), args.data())); + Options expected = {1, 23, 3, true, {"x"}, "-", + false, true, autoMode, true, 2}; + EXPECT_EQ(expected, options); + } + { + Options options; + auto args = makeArray("-p", "1", "x", "-5", "-fo", "-", "--ultra", "-d"); + EXPECT_SUCCESS(options.parse(args.size(), args.data())); + Options expected = {1, 0, 5, true, {"x"}, "-", + true, true, autoMode, true, 2}; + EXPECT_EQ(expected, options); + } + { + Options options; + auto args = makeArray("silesia.tar", "-o", "silesia.tar.pzstd", "-p", "2"); + EXPECT_SUCCESS(options.parse(args.size(), args.data())); + Options expected = {2, + 23, + 3, + false, + {"silesia.tar"}, + "silesia.tar.pzstd", + false, + true, + autoMode, + true, + 2}; + EXPECT_EQ(expected, options); + } + { + Options options; + auto args = makeArray("x", "-p", "1"); + EXPECT_SUCCESS(options.parse(args.size(), args.data())); + } + { + Options options; + auto args = makeArray("x", "-p", "1"); + EXPECT_SUCCESS(options.parse(args.size(), args.data())); + } +} + +TEST(Options, GetOutputFile) { + { + Options options; + auto args = makeArray("x"); + EXPECT_SUCCESS(options.parse(args.size(), args.data())); + EXPECT_EQ("x.zst", options.getOutputFile(options.inputFiles[0])); + } + { + Options options; + auto args = makeArray("x", "y", "-o", nullOutput); + EXPECT_SUCCESS(options.parse(args.size(), args.data())); + EXPECT_EQ(nullOutput, options.getOutputFile(options.inputFiles[0])); + } + { + Options options; + auto args = makeArray("x.zst", "-do", nullOutput); + EXPECT_SUCCESS(options.parse(args.size(), args.data())); + EXPECT_EQ(nullOutput, options.getOutputFile(options.inputFiles[0])); + } + { + Options options; + auto args = makeArray("x.zst", "-d"); + EXPECT_SUCCESS(options.parse(args.size(), args.data())); + EXPECT_EQ("x", options.getOutputFile(options.inputFiles[0])); + } + { + Options options; + auto args = makeArray("xzst", "-d"); + EXPECT_SUCCESS(options.parse(args.size(), args.data())); + EXPECT_EQ("", options.getOutputFile(options.inputFiles[0])); + } + { + Options options; + auto args = makeArray("xzst", "-doxx"); + EXPECT_SUCCESS(options.parse(args.size(), args.data())); + EXPECT_EQ("xx", options.getOutputFile(options.inputFiles[0])); + } +} + +TEST(Options, MultipleFiles) { + { + Options options; + auto args = makeArray("x", "y", "z"); + EXPECT_SUCCESS(options.parse(args.size(), args.data())); + Options expected; + expected.inputFiles = {"x", "y", "z"}; + expected.verbosity = 1; + EXPECT_EQ(expected, options); + } + { + Options options; + auto args = makeArray("x", "y", "z", "-o", nullOutput); + EXPECT_SUCCESS(options.parse(args.size(), args.data())); + Options expected; + expected.inputFiles = {"x", "y", "z"}; + expected.outputFile = nullOutput; + expected.verbosity = 1; + EXPECT_EQ(expected, options); + } + { + Options options; + auto args = makeArray("x", "y", "-o-"); + EXPECT_FAILURE(options.parse(args.size(), args.data())); + } + { + Options options; + auto args = makeArray("x", "y", "-o", "file"); + EXPECT_FAILURE(options.parse(args.size(), args.data())); + } + { + Options options; + auto args = makeArray("-qqvd12qp4", "-f", "x", "--", "--rm", "-c"); + EXPECT_SUCCESS(options.parse(args.size(), args.data())); + Options expected = {4, 23, 12, true, {"x", "--rm", "-c"}, + "", true, true, autoMode, true, + 0}; + EXPECT_EQ(expected, options); + } +} + +TEST(Options, NumThreads) { + { + Options options; + auto args = makeArray("x", "-dfo", "-"); + EXPECT_SUCCESS(options.parse(args.size(), args.data())); + } + { + Options options; + auto args = makeArray("x", "-p", "0", "-fo", "-"); + EXPECT_FAILURE(options.parse(args.size(), args.data())); + } + { + Options options; + auto args = makeArray("-f", "-p", "-o", "-"); + EXPECT_FAILURE(options.parse(args.size(), args.data())); + } +} + +TEST(Options, BadCompressionLevel) { + { + Options options; + auto args = makeArray("x", "-20"); + EXPECT_FAILURE(options.parse(args.size(), args.data())); + } + { + Options options; + auto args = makeArray("x", "--ultra", "-23"); + EXPECT_FAILURE(options.parse(args.size(), args.data())); + } + { + Options options; + auto args = makeArray("x", "--1"); // negative 1? + EXPECT_FAILURE(options.parse(args.size(), args.data())); + } +} + +TEST(Options, InvalidOption) { + { + Options options; + auto args = makeArray("x", "-x"); + EXPECT_FAILURE(options.parse(args.size(), args.data())); + } +} + +TEST(Options, BadOutputFile) { + { + Options options; + auto args = makeArray("notzst", "-d", "-p", "1"); + EXPECT_SUCCESS(options.parse(args.size(), args.data())); + EXPECT_EQ("", options.getOutputFile(options.inputFiles.front())); + } +} + +TEST(Options, BadOptionsWithArguments) { + { + Options options; + auto args = makeArray("x", "-pf"); + EXPECT_FAILURE(options.parse(args.size(), args.data())); + } + { + Options options; + auto args = makeArray("x", "-p", "10f"); + EXPECT_FAILURE(options.parse(args.size(), args.data())); + } + { + Options options; + auto args = makeArray("x", "-p"); + EXPECT_FAILURE(options.parse(args.size(), args.data())); + } + { + Options options; + auto args = makeArray("x", "-o"); + EXPECT_FAILURE(options.parse(args.size(), args.data())); + } + { + Options options; + auto args = makeArray("x", "-o"); + EXPECT_FAILURE(options.parse(args.size(), args.data())); + } +} + +TEST(Options, KeepSource) { + { + Options options; + auto args = makeArray("x", "--rm", "-k"); + EXPECT_SUCCESS(options.parse(args.size(), args.data())); + EXPECT_EQ(true, options.keepSource); + } + { + Options options; + auto args = makeArray("x", "--rm", "--keep"); + EXPECT_SUCCESS(options.parse(args.size(), args.data())); + EXPECT_EQ(true, options.keepSource); + } + { + Options options; + auto args = makeArray("x"); + EXPECT_SUCCESS(options.parse(args.size(), args.data())); + EXPECT_EQ(true, options.keepSource); + } + { + Options options; + auto args = makeArray("x", "--rm"); + EXPECT_SUCCESS(options.parse(args.size(), args.data())); + EXPECT_EQ(false, options.keepSource); + } +} + +TEST(Options, Verbosity) { + { + Options options; + auto args = makeArray("x"); + EXPECT_SUCCESS(options.parse(args.size(), args.data())); + EXPECT_EQ(2, options.verbosity); + } + { + Options options; + auto args = makeArray("--quiet", "-qq", "x"); + EXPECT_SUCCESS(options.parse(args.size(), args.data())); + EXPECT_EQ(-1, options.verbosity); + } + { + Options options; + auto args = makeArray("x", "y"); + EXPECT_SUCCESS(options.parse(args.size(), args.data())); + EXPECT_EQ(1, options.verbosity); + } + { + Options options; + auto args = makeArray("--", "x", "y"); + EXPECT_SUCCESS(options.parse(args.size(), args.data())); + EXPECT_EQ(1, options.verbosity); + } + { + Options options; + auto args = makeArray("-qv", "x", "y"); + EXPECT_SUCCESS(options.parse(args.size(), args.data())); + EXPECT_EQ(1, options.verbosity); + } + { + Options options; + auto args = makeArray("-v", "x", "y"); + EXPECT_SUCCESS(options.parse(args.size(), args.data())); + EXPECT_EQ(3, options.verbosity); + } + { + Options options; + auto args = makeArray("-v", "x"); + EXPECT_SUCCESS(options.parse(args.size(), args.data())); + EXPECT_EQ(3, options.verbosity); + } +} + +TEST(Options, TestMode) { + { + Options options; + auto args = makeArray("x", "-t"); + EXPECT_SUCCESS(options.parse(args.size(), args.data())); + EXPECT_EQ(true, options.keepSource); + EXPECT_EQ(true, options.decompress); + EXPECT_EQ(nullOutput, options.outputFile); + } + { + Options options; + auto args = makeArray("x", "--test", "--rm", "-ohello"); + EXPECT_SUCCESS(options.parse(args.size(), args.data())); + EXPECT_EQ(true, options.keepSource); + EXPECT_EQ(true, options.decompress); + EXPECT_EQ(nullOutput, options.outputFile); + } +} + +TEST(Options, Checksum) { + { + Options options; + auto args = makeArray("x.zst", "--no-check", "-Cd"); + EXPECT_SUCCESS(options.parse(args.size(), args.data())); + EXPECT_EQ(true, options.checksum); + } + { + Options options; + auto args = makeArray("x"); + EXPECT_SUCCESS(options.parse(args.size(), args.data())); + EXPECT_EQ(true, options.checksum); + } + { + Options options; + auto args = makeArray("x", "--no-check", "--check"); + EXPECT_SUCCESS(options.parse(args.size(), args.data())); + EXPECT_EQ(true, options.checksum); + } + { + Options options; + auto args = makeArray("x", "--no-check"); + EXPECT_SUCCESS(options.parse(args.size(), args.data())); + EXPECT_EQ(false, options.checksum); + } +} + +TEST(Options, InputFiles) { + { + Options options; + auto args = makeArray("-cd"); + options.parse(args.size(), args.data()); + EXPECT_EQ(1, options.inputFiles.size()); + EXPECT_EQ("-", options.inputFiles[0]); + EXPECT_EQ("-", options.outputFile); + } + { + Options options; + auto args = makeArray(); + options.parse(args.size(), args.data()); + EXPECT_EQ(1, options.inputFiles.size()); + EXPECT_EQ("-", options.inputFiles[0]); + EXPECT_EQ("-", options.outputFile); + } + { + Options options; + auto args = makeArray("-d"); + options.parse(args.size(), args.data()); + EXPECT_EQ(1, options.inputFiles.size()); + EXPECT_EQ("-", options.inputFiles[0]); + EXPECT_EQ("-", options.outputFile); + } + { + Options options; + auto args = makeArray("x", "-"); + EXPECT_FAILURE(options.parse(args.size(), args.data())); + } +} + +TEST(Options, InvalidOptions) { + { + Options options; + auto args = makeArray("-ibasdf"); + EXPECT_FAILURE(options.parse(args.size(), args.data())); + } + { + Options options; + auto args = makeArray("- "); + EXPECT_FAILURE(options.parse(args.size(), args.data())); + } + { + Options options; + auto args = makeArray("-n15"); + EXPECT_FAILURE(options.parse(args.size(), args.data())); + } + { + Options options; + auto args = makeArray("-0", "x"); + EXPECT_FAILURE(options.parse(args.size(), args.data())); + } +} + +TEST(Options, Extras) { + { + Options options; + auto args = makeArray("-h"); + EXPECT_MESSAGE(options.parse(args.size(), args.data())); + } + { + Options options; + auto args = makeArray("-H"); + EXPECT_MESSAGE(options.parse(args.size(), args.data())); + } + { + Options options; + auto args = makeArray("-V"); + EXPECT_MESSAGE(options.parse(args.size(), args.data())); + } + { + Options options; + auto args = makeArray("--help"); + EXPECT_MESSAGE(options.parse(args.size(), args.data())); + } + { + Options options; + auto args = makeArray("--version"); + EXPECT_MESSAGE(options.parse(args.size(), args.data())); + } +} diff --git a/dependencies/zstd-1.5.0/contrib/pzstd/test/PzstdTest.cpp b/dependencies/zstd-1.5.0/contrib/pzstd/test/PzstdTest.cpp new file mode 100644 index 0000000..5c7d663 --- /dev/null +++ b/dependencies/zstd-1.5.0/contrib/pzstd/test/PzstdTest.cpp @@ -0,0 +1,149 @@ +/* + * Copyright (c) 2016-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + */ +#include "Pzstd.h" +extern "C" { +#include "datagen.h" +} +#include "test/RoundTrip.h" +#include "utils/ScopeGuard.h" + +#include +#include +#include +#include +#include + +using namespace std; +using namespace pzstd; + +TEST(Pzstd, SmallSizes) { + unsigned seed = std::random_device{}(); + std::fprintf(stderr, "Pzstd.SmallSizes seed: %u\n", seed); + std::mt19937 gen(seed); + + for (unsigned len = 1; len < 256; ++len) { + if (len % 16 == 0) { + std::fprintf(stderr, "%u / 16\n", len / 16); + } + std::string inputFile = std::tmpnam(nullptr); + auto guard = makeScopeGuard([&] { std::remove(inputFile.c_str()); }); + { + static uint8_t buf[256]; + RDG_genBuffer(buf, len, 0.5, 0.0, gen()); + auto fd = std::fopen(inputFile.c_str(), "wb"); + auto written = std::fwrite(buf, 1, len, fd); + std::fclose(fd); + ASSERT_EQ(written, len); + } + for (unsigned numThreads = 1; numThreads <= 2; ++numThreads) { + for (unsigned level = 1; level <= 4; level *= 4) { + auto errorGuard = makeScopeGuard([&] { + std::fprintf(stderr, "# threads: %u\n", numThreads); + std::fprintf(stderr, "compression level: %u\n", level); + }); + Options options; + options.overwrite = true; + options.inputFiles = {inputFile}; + options.numThreads = numThreads; + options.compressionLevel = level; + options.verbosity = 1; + ASSERT_TRUE(roundTrip(options)); + errorGuard.dismiss(); + } + } + } +} + +TEST(Pzstd, LargeSizes) { + unsigned seed = std::random_device{}(); + std::fprintf(stderr, "Pzstd.LargeSizes seed: %u\n", seed); + std::mt19937 gen(seed); + + for (unsigned len = 1 << 20; len <= (1 << 24); len *= 2) { + std::string inputFile = std::tmpnam(nullptr); + auto guard = makeScopeGuard([&] { std::remove(inputFile.c_str()); }); + { + std::unique_ptr buf(new uint8_t[len]); + RDG_genBuffer(buf.get(), len, 0.5, 0.0, gen()); + auto fd = std::fopen(inputFile.c_str(), "wb"); + auto written = std::fwrite(buf.get(), 1, len, fd); + std::fclose(fd); + ASSERT_EQ(written, len); + } + for (unsigned numThreads = 1; numThreads <= 16; numThreads *= 4) { + for (unsigned level = 1; level <= 4; level *= 4) { + auto errorGuard = makeScopeGuard([&] { + std::fprintf(stderr, "# threads: %u\n", numThreads); + std::fprintf(stderr, "compression level: %u\n", level); + }); + Options options; + options.overwrite = true; + options.inputFiles = {inputFile}; + options.numThreads = std::min(numThreads, options.numThreads); + options.compressionLevel = level; + options.verbosity = 1; + ASSERT_TRUE(roundTrip(options)); + errorGuard.dismiss(); + } + } + } +} + +TEST(Pzstd, DISABLED_ExtremelyLargeSize) { + unsigned seed = std::random_device{}(); + std::fprintf(stderr, "Pzstd.ExtremelyLargeSize seed: %u\n", seed); + std::mt19937 gen(seed); + + std::string inputFile = std::tmpnam(nullptr); + auto guard = makeScopeGuard([&] { std::remove(inputFile.c_str()); }); + + { + // Write 4GB + 64 MB + constexpr size_t kLength = 1 << 26; + std::unique_ptr buf(new uint8_t[kLength]); + auto fd = std::fopen(inputFile.c_str(), "wb"); + auto closeGuard = makeScopeGuard([&] { std::fclose(fd); }); + for (size_t i = 0; i < (1 << 6) + 1; ++i) { + RDG_genBuffer(buf.get(), kLength, 0.5, 0.0, gen()); + auto written = std::fwrite(buf.get(), 1, kLength, fd); + if (written != kLength) { + std::fprintf(stderr, "Failed to write file, skipping test\n"); + return; + } + } + } + + Options options; + options.overwrite = true; + options.inputFiles = {inputFile}; + options.compressionLevel = 1; + if (options.numThreads == 0) { + options.numThreads = 1; + } + ASSERT_TRUE(roundTrip(options)); +} + +TEST(Pzstd, ExtremelyCompressible) { + std::string inputFile = std::tmpnam(nullptr); + auto guard = makeScopeGuard([&] { std::remove(inputFile.c_str()); }); + { + std::unique_ptr buf(new uint8_t[10000]); + std::memset(buf.get(), 'a', 10000); + auto fd = std::fopen(inputFile.c_str(), "wb"); + auto written = std::fwrite(buf.get(), 1, 10000, fd); + std::fclose(fd); + ASSERT_EQ(written, 10000); + } + Options options; + options.overwrite = true; + options.inputFiles = {inputFile}; + options.numThreads = 1; + options.compressionLevel = 1; + ASSERT_TRUE(roundTrip(options)); +} diff --git a/dependencies/zstd-1.5.0/contrib/pzstd/test/RoundTrip.h b/dependencies/zstd-1.5.0/contrib/pzstd/test/RoundTrip.h new file mode 100644 index 0000000..c6364ec --- /dev/null +++ b/dependencies/zstd-1.5.0/contrib/pzstd/test/RoundTrip.h @@ -0,0 +1,86 @@ +/* + * Copyright (c) 2016-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + */ +#pragma once + +#include "Options.h" +#include "Pzstd.h" +#include "utils/ScopeGuard.h" + +#include +#include +#include +#include + +namespace pzstd { + +inline bool check(std::string source, std::string decompressed) { + std::unique_ptr sBuf(new std::uint8_t[1024]); + std::unique_ptr dBuf(new std::uint8_t[1024]); + + auto sFd = std::fopen(source.c_str(), "rb"); + auto dFd = std::fopen(decompressed.c_str(), "rb"); + auto guard = makeScopeGuard([&] { + std::fclose(sFd); + std::fclose(dFd); + }); + + size_t sRead, dRead; + + do { + sRead = std::fread(sBuf.get(), 1, 1024, sFd); + dRead = std::fread(dBuf.get(), 1, 1024, dFd); + if (std::ferror(sFd) || std::ferror(dFd)) { + return false; + } + if (sRead != dRead) { + return false; + } + + for (size_t i = 0; i < sRead; ++i) { + if (sBuf.get()[i] != dBuf.get()[i]) { + return false; + } + } + } while (sRead == 1024); + if (!std::feof(sFd) || !std::feof(dFd)) { + return false; + } + return true; +} + +inline bool roundTrip(Options& options) { + if (options.inputFiles.size() != 1) { + return false; + } + std::string source = options.inputFiles.front(); + std::string compressedFile = std::tmpnam(nullptr); + std::string decompressedFile = std::tmpnam(nullptr); + auto guard = makeScopeGuard([&] { + std::remove(compressedFile.c_str()); + std::remove(decompressedFile.c_str()); + }); + + { + options.outputFile = compressedFile; + options.decompress = false; + if (pzstdMain(options) != 0) { + return false; + } + } + { + options.decompress = true; + options.inputFiles.front() = compressedFile; + options.outputFile = decompressedFile; + if (pzstdMain(options) != 0) { + return false; + } + } + return check(source, decompressedFile); +} +} diff --git a/dependencies/zstd-1.5.0/contrib/pzstd/test/RoundTripTest.cpp b/dependencies/zstd-1.5.0/contrib/pzstd/test/RoundTripTest.cpp new file mode 100644 index 0000000..36af067 --- /dev/null +++ b/dependencies/zstd-1.5.0/contrib/pzstd/test/RoundTripTest.cpp @@ -0,0 +1,86 @@ +/* + * Copyright (c) 2016-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + */ +extern "C" { +#include "datagen.h" +} +#include "Options.h" +#include "test/RoundTrip.h" +#include "utils/ScopeGuard.h" + +#include +#include +#include +#include +#include + +using namespace std; +using namespace pzstd; + +namespace { +string +writeData(size_t size, double matchProba, double litProba, unsigned seed) { + std::unique_ptr buf(new uint8_t[size]); + RDG_genBuffer(buf.get(), size, matchProba, litProba, seed); + string file = tmpnam(nullptr); + auto fd = std::fopen(file.c_str(), "wb"); + auto guard = makeScopeGuard([&] { std::fclose(fd); }); + auto bytesWritten = std::fwrite(buf.get(), 1, size, fd); + if (bytesWritten != size) { + std::abort(); + } + return file; +} + +template +string generateInputFile(Generator& gen) { + // Use inputs ranging from 1 Byte to 2^16 Bytes + std::uniform_int_distribution size{1, 1 << 16}; + std::uniform_real_distribution<> prob{0, 1}; + return writeData(size(gen), prob(gen), prob(gen), gen()); +} + +template +Options generateOptions(Generator& gen, const string& inputFile) { + Options options; + options.inputFiles = {inputFile}; + options.overwrite = true; + + std::uniform_int_distribution numThreads{1, 32}; + std::uniform_int_distribution compressionLevel{1, 10}; + + options.numThreads = numThreads(gen); + options.compressionLevel = compressionLevel(gen); + + return options; +} +} + +int main() { + std::mt19937 gen(std::random_device{}()); + + auto newlineGuard = makeScopeGuard([] { std::fprintf(stderr, "\n"); }); + for (unsigned i = 0; i < 10000; ++i) { + if (i % 100 == 0) { + std::fprintf(stderr, "Progress: %u%%\r", i / 100); + } + auto inputFile = generateInputFile(gen); + auto inputGuard = makeScopeGuard([&] { std::remove(inputFile.c_str()); }); + for (unsigned i = 0; i < 10; ++i) { + auto options = generateOptions(gen, inputFile); + if (!roundTrip(options)) { + std::fprintf(stderr, "numThreads: %u\n", options.numThreads); + std::fprintf(stderr, "level: %u\n", options.compressionLevel); + std::fprintf(stderr, "decompress? %u\n", (unsigned)options.decompress); + std::fprintf(stderr, "file: %s\n", inputFile.c_str()); + return 1; + } + } + } + return 0; +} diff --git a/dependencies/zstd-1.5.0/contrib/pzstd/utils/BUCK b/dependencies/zstd-1.5.0/contrib/pzstd/utils/BUCK new file mode 100644 index 0000000..e757f41 --- /dev/null +++ b/dependencies/zstd-1.5.0/contrib/pzstd/utils/BUCK @@ -0,0 +1,75 @@ +cxx_library( + name='buffer', + visibility=['PUBLIC'], + header_namespace='utils', + exported_headers=['Buffer.h'], + deps=[':range'], +) + +cxx_library( + name='file_system', + visibility=['PUBLIC'], + header_namespace='utils', + exported_headers=['FileSystem.h'], + deps=[':range'], +) + +cxx_library( + name='likely', + visibility=['PUBLIC'], + header_namespace='utils', + exported_headers=['Likely.h'], +) + +cxx_library( + name='range', + visibility=['PUBLIC'], + header_namespace='utils', + exported_headers=['Range.h'], + deps=[':likely'], +) + +cxx_library( + name='resource_pool', + visibility=['PUBLIC'], + header_namespace='utils', + exported_headers=['ResourcePool.h'], +) + +cxx_library( + name='scope_guard', + visibility=['PUBLIC'], + header_namespace='utils', + exported_headers=['ScopeGuard.h'], +) + +cxx_library( + name='thread_pool', + visibility=['PUBLIC'], + header_namespace='utils', + exported_headers=['ThreadPool.h'], + deps=[':work_queue'], +) + +cxx_library( + name='work_queue', + visibility=['PUBLIC'], + header_namespace='utils', + exported_headers=['WorkQueue.h'], + deps=[':buffer'], +) + +cxx_library( + name='utils', + visibility=['PUBLIC'], + deps=[ + ':buffer', + ':file_system', + ':likely', + ':range', + ':resource_pool', + ':scope_guard', + ':thread_pool', + ':work_queue', + ], +) diff --git a/dependencies/zstd-1.5.0/contrib/pzstd/utils/Buffer.h b/dependencies/zstd-1.5.0/contrib/pzstd/utils/Buffer.h new file mode 100644 index 0000000..f69c3b4 --- /dev/null +++ b/dependencies/zstd-1.5.0/contrib/pzstd/utils/Buffer.h @@ -0,0 +1,99 @@ +/* + * Copyright (c) 2016-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + */ +#pragma once + +#include "utils/Range.h" + +#include +#include +#include + +namespace pzstd { + +/** + * A `Buffer` has a pointer to a shared buffer, and a range of the buffer that + * it owns. + * The idea is that you can allocate one buffer, and write chunks into it + * and break off those chunks. + * The underlying buffer is reference counted, and will be destroyed when all + * `Buffer`s that reference it are destroyed. + */ +class Buffer { + std::shared_ptr buffer_; + MutableByteRange range_; + + static void delete_buffer(unsigned char* buffer) { + delete[] buffer; + } + + public: + /// Construct an empty buffer that owns no data. + explicit Buffer() {} + + /// Construct a `Buffer` that owns a new underlying buffer of size `size`. + explicit Buffer(std::size_t size) + : buffer_(new unsigned char[size], delete_buffer), + range_(buffer_.get(), buffer_.get() + size) {} + + explicit Buffer(std::shared_ptr buffer, MutableByteRange data) + : buffer_(buffer), range_(data) {} + + Buffer(Buffer&&) = default; + Buffer& operator=(Buffer&&) & = default; + + /** + * Splits the data into two pieces: [begin, begin + n), [begin + n, end). + * Their data both points into the same underlying buffer. + * Modifies the original `Buffer` to point to only [begin + n, end). + * + * @param n The offset to split at. + * @returns A buffer that owns the data [begin, begin + n). + */ + Buffer splitAt(std::size_t n) { + auto firstPiece = range_.subpiece(0, n); + range_.advance(n); + return Buffer(buffer_, firstPiece); + } + + /// Modifies the buffer to point to the range [begin + n, end). + void advance(std::size_t n) { + range_.advance(n); + } + + /// Modifies the buffer to point to the range [begin, end - n). + void subtract(std::size_t n) { + range_.subtract(n); + } + + /// Returns a read only `Range` pointing to the `Buffer`s data. + ByteRange range() const { + return range_; + } + /// Returns a mutable `Range` pointing to the `Buffer`s data. + MutableByteRange range() { + return range_; + } + + const unsigned char* data() const { + return range_.data(); + } + + unsigned char* data() { + return range_.data(); + } + + std::size_t size() const { + return range_.size(); + } + + bool empty() const { + return range_.empty(); + } +}; +} diff --git a/dependencies/zstd-1.5.0/contrib/pzstd/utils/FileSystem.h b/dependencies/zstd-1.5.0/contrib/pzstd/utils/FileSystem.h new file mode 100644 index 0000000..3cfbe86 --- /dev/null +++ b/dependencies/zstd-1.5.0/contrib/pzstd/utils/FileSystem.h @@ -0,0 +1,94 @@ +/* + * Copyright (c) 2016-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + */ +#pragma once + +#include "utils/Range.h" + +#include +#include +#include +#include + +// A small subset of `std::filesystem`. +// `std::filesystem` should be a drop in replacement. +// See http://en.cppreference.com/w/cpp/filesystem for documentation. + +namespace pzstd { + +// using file_status = ... causes gcc to emit a false positive warning +#if defined(_MSC_VER) +typedef struct ::_stat64 file_status; +#else +typedef struct ::stat file_status; +#endif + +/// http://en.cppreference.com/w/cpp/filesystem/status +inline file_status status(StringPiece path, std::error_code& ec) noexcept { + file_status status; +#if defined(_MSC_VER) + const auto error = ::_stat64(path.data(), &status); +#else + const auto error = ::stat(path.data(), &status); +#endif + if (error) { + ec.assign(errno, std::generic_category()); + } else { + ec.clear(); + } + return status; +} + +/// http://en.cppreference.com/w/cpp/filesystem/is_regular_file +inline bool is_regular_file(file_status status) noexcept { +#if defined(S_ISREG) + return S_ISREG(status.st_mode); +#elif !defined(S_ISREG) && defined(S_IFMT) && defined(S_IFREG) + return (status.st_mode & S_IFMT) == S_IFREG; +#else + static_assert(false, "No POSIX stat() support."); +#endif +} + +/// http://en.cppreference.com/w/cpp/filesystem/is_regular_file +inline bool is_regular_file(StringPiece path, std::error_code& ec) noexcept { + return is_regular_file(status(path, ec)); +} + +/// http://en.cppreference.com/w/cpp/filesystem/is_directory +inline bool is_directory(file_status status) noexcept { +#if defined(S_ISDIR) + return S_ISDIR(status.st_mode); +#elif !defined(S_ISDIR) && defined(S_IFMT) && defined(S_IFDIR) + return (status.st_mode & S_IFMT) == S_IFDIR; +#else + static_assert(false, "NO POSIX stat() support."); +#endif +} + +/// http://en.cppreference.com/w/cpp/filesystem/is_directory +inline bool is_directory(StringPiece path, std::error_code& ec) noexcept { + return is_directory(status(path, ec)); +} + +/// http://en.cppreference.com/w/cpp/filesystem/file_size +inline std::uintmax_t file_size( + StringPiece path, + std::error_code& ec) noexcept { + auto stat = status(path, ec); + if (ec) { + return -1; + } + if (!is_regular_file(stat)) { + ec.assign(ENOTSUP, std::generic_category()); + return -1; + } + ec.clear(); + return stat.st_size; +} +} diff --git a/dependencies/zstd-1.5.0/contrib/pzstd/utils/Likely.h b/dependencies/zstd-1.5.0/contrib/pzstd/utils/Likely.h new file mode 100644 index 0000000..7cea8da --- /dev/null +++ b/dependencies/zstd-1.5.0/contrib/pzstd/utils/Likely.h @@ -0,0 +1,28 @@ +/* + * Copyright (c) 2016-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + */ + +/** + * Compiler hints to indicate the fast path of an "if" branch: whether + * the if condition is likely to be true or false. + * + * @author Tudor Bosman (tudorb@fb.com) + */ + +#pragma once + +#undef LIKELY +#undef UNLIKELY + +#if defined(__GNUC__) && __GNUC__ >= 4 +#define LIKELY(x) (__builtin_expect((x), 1)) +#define UNLIKELY(x) (__builtin_expect((x), 0)) +#else +#define LIKELY(x) (x) +#define UNLIKELY(x) (x) +#endif diff --git a/dependencies/zstd-1.5.0/contrib/pzstd/utils/Range.h b/dependencies/zstd-1.5.0/contrib/pzstd/utils/Range.h new file mode 100644 index 0000000..fedb5d7 --- /dev/null +++ b/dependencies/zstd-1.5.0/contrib/pzstd/utils/Range.h @@ -0,0 +1,131 @@ +/* + * Copyright (c) 2016-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + */ + +/** + * A subset of `folly/Range.h`. + * All code copied verbatim modulo formatting + */ +#pragma once + +#include "utils/Likely.h" + +#include +#include +#include +#include +#include + +namespace pzstd { + +namespace detail { +/* + *Use IsCharPointer::type to enable const char* or char*. + *Use IsCharPointer::const_type to enable only const char*. +*/ +template +struct IsCharPointer {}; + +template <> +struct IsCharPointer { + typedef int type; +}; + +template <> +struct IsCharPointer { + typedef int const_type; + typedef int type; +}; + +} // namespace detail + +template +class Range { + Iter b_; + Iter e_; + + public: + using size_type = std::size_t; + using iterator = Iter; + using const_iterator = Iter; + using value_type = typename std::remove_reference< + typename std::iterator_traits::reference>::type; + using reference = typename std::iterator_traits::reference; + + constexpr Range() : b_(), e_() {} + constexpr Range(Iter begin, Iter end) : b_(begin), e_(end) {} + + constexpr Range(Iter begin, size_type size) : b_(begin), e_(begin + size) {} + + template ::type = 0> + /* implicit */ Range(Iter str) : b_(str), e_(str + std::strlen(str)) {} + + template ::const_type = 0> + /* implicit */ Range(const std::string& str) + : b_(str.data()), e_(b_ + str.size()) {} + + // Allow implicit conversion from Range to Range if From is + // implicitly convertible to To. + template < + class OtherIter, + typename std::enable_if< + (!std::is_same::value && + std::is_convertible::value), + int>::type = 0> + constexpr /* implicit */ Range(const Range& other) + : b_(other.begin()), e_(other.end()) {} + + Range(const Range&) = default; + Range(Range&&) = default; + + Range& operator=(const Range&) & = default; + Range& operator=(Range&&) & = default; + + constexpr size_type size() const { + return e_ - b_; + } + bool empty() const { + return b_ == e_; + } + Iter data() const { + return b_; + } + Iter begin() const { + return b_; + } + Iter end() const { + return e_; + } + + void advance(size_type n) { + if (UNLIKELY(n > size())) { + throw std::out_of_range("index out of range"); + } + b_ += n; + } + + void subtract(size_type n) { + if (UNLIKELY(n > size())) { + throw std::out_of_range("index out of range"); + } + e_ -= n; + } + + Range subpiece(size_type first, size_type length = std::string::npos) const { + if (UNLIKELY(first > size())) { + throw std::out_of_range("index out of range"); + } + + return Range(b_ + first, std::min(length, size() - first)); + } +}; + +using ByteRange = Range; +using MutableByteRange = Range; +using StringPiece = Range; +} diff --git a/dependencies/zstd-1.5.0/contrib/pzstd/utils/ResourcePool.h b/dependencies/zstd-1.5.0/contrib/pzstd/utils/ResourcePool.h new file mode 100644 index 0000000..8dfcdd7 --- /dev/null +++ b/dependencies/zstd-1.5.0/contrib/pzstd/utils/ResourcePool.h @@ -0,0 +1,96 @@ +/* + * Copyright (c) 2016-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + */ +#pragma once + +#include +#include +#include +#include +#include + +namespace pzstd { + +/** + * An unbounded pool of resources. + * A `ResourcePool` requires a factory function that takes allocates `T*` and + * a free function that frees a `T*`. + * Calling `ResourcePool::get()` will give you a new `ResourcePool::UniquePtr` + * to a `T`, and when it goes out of scope the resource will be returned to the + * pool. + * The `ResourcePool` *must* survive longer than any resources it hands out. + * Remember that `ResourcePool` hands out mutable `T`s, so make sure to clean + * up the resource before or after every use. + */ +template +class ResourcePool { + public: + class Deleter; + using Factory = std::function; + using Free = std::function; + using UniquePtr = std::unique_ptr; + + private: + std::mutex mutex_; + Factory factory_; + Free free_; + std::vector resources_; + unsigned inUse_; + + public: + /** + * Creates a `ResourcePool`. + * + * @param factory The function to use to create new resources. + * @param free The function to use to free resources created by `factory`. + */ + ResourcePool(Factory factory, Free free) + : factory_(std::move(factory)), free_(std::move(free)), inUse_(0) {} + + /** + * @returns A unique pointer to a resource. The resource is null iff + * there are no available resources and `factory()` returns null. + */ + UniquePtr get() { + std::lock_guard lock(mutex_); + if (!resources_.empty()) { + UniquePtr resource{resources_.back(), Deleter{*this}}; + resources_.pop_back(); + ++inUse_; + return resource; + } + UniquePtr resource{factory_(), Deleter{*this}}; + ++inUse_; + return resource; + } + + ~ResourcePool() noexcept { + assert(inUse_ == 0); + for (const auto resource : resources_) { + free_(resource); + } + } + + class Deleter { + ResourcePool *pool_; + public: + explicit Deleter(ResourcePool &pool) : pool_(&pool) {} + + void operator() (T *resource) { + std::lock_guard lock(pool_->mutex_); + // Make sure we don't put null resources into the pool + if (resource) { + pool_->resources_.push_back(resource); + } + assert(pool_->inUse_ > 0); + --pool_->inUse_; + } + }; +}; + +} diff --git a/dependencies/zstd-1.5.0/contrib/pzstd/utils/ScopeGuard.h b/dependencies/zstd-1.5.0/contrib/pzstd/utils/ScopeGuard.h new file mode 100644 index 0000000..31768f4 --- /dev/null +++ b/dependencies/zstd-1.5.0/contrib/pzstd/utils/ScopeGuard.h @@ -0,0 +1,50 @@ +/* + * Copyright (c) 2016-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + */ +#pragma once + +#include + +namespace pzstd { + +/** + * Dismissable scope guard. + * `Function` must be callable and take no parameters. + * Unless `dissmiss()` is called, the callable is executed upon destruction of + * `ScopeGuard`. + * + * Example: + * + * auto guard = makeScopeGuard([&] { cleanup(); }); + */ +template +class ScopeGuard { + Function function; + bool dismissed; + + public: + explicit ScopeGuard(Function&& function) + : function(std::move(function)), dismissed(false) {} + + void dismiss() { + dismissed = true; + } + + ~ScopeGuard() noexcept { + if (!dismissed) { + function(); + } + } +}; + +/// Creates a scope guard from `function`. +template +ScopeGuard makeScopeGuard(Function&& function) { + return ScopeGuard(std::forward(function)); +} +} diff --git a/dependencies/zstd-1.5.0/contrib/pzstd/utils/ThreadPool.h b/dependencies/zstd-1.5.0/contrib/pzstd/utils/ThreadPool.h new file mode 100644 index 0000000..8ece8e0 --- /dev/null +++ b/dependencies/zstd-1.5.0/contrib/pzstd/utils/ThreadPool.h @@ -0,0 +1,58 @@ +/* + * Copyright (c) 2016-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + */ +#pragma once + +#include "utils/WorkQueue.h" + +#include +#include +#include +#include + +namespace pzstd { +/// A simple thread pool that pulls tasks off its queue in FIFO order. +class ThreadPool { + std::vector threads_; + + WorkQueue> tasks_; + + public: + /// Constructs a thread pool with `numThreads` threads. + explicit ThreadPool(std::size_t numThreads) { + threads_.reserve(numThreads); + for (std::size_t i = 0; i < numThreads; ++i) { + threads_.emplace_back([this] { + std::function task; + while (tasks_.pop(task)) { + task(); + } + }); + } + } + + /// Finishes all tasks currently in the queue. + ~ThreadPool() { + tasks_.finish(); + for (auto& thread : threads_) { + thread.join(); + } + } + + /** + * Adds `task` to the queue of tasks to execute. Since `task` is a + * `std::function<>`, it cannot be a move only type. So any lambda passed must + * not capture move only types (like `std::unique_ptr`). + * + * @param task The task to execute. + */ + void add(std::function task) { + tasks_.push(std::move(task)); + } +}; +} diff --git a/dependencies/zstd-1.5.0/contrib/pzstd/utils/WorkQueue.h b/dependencies/zstd-1.5.0/contrib/pzstd/utils/WorkQueue.h new file mode 100644 index 0000000..1d14d92 --- /dev/null +++ b/dependencies/zstd-1.5.0/contrib/pzstd/utils/WorkQueue.h @@ -0,0 +1,181 @@ +/* + * Copyright (c) 2016-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + */ +#pragma once + +#include "utils/Buffer.h" + +#include +#include +#include +#include +#include +#include +#include +#include + +namespace pzstd { + +/// Unbounded thread-safe work queue. +template +class WorkQueue { + // Protects all member variable access + std::mutex mutex_; + std::condition_variable readerCv_; + std::condition_variable writerCv_; + std::condition_variable finishCv_; + + std::queue queue_; + bool done_; + std::size_t maxSize_; + + // Must have lock to call this function + bool full() const { + if (maxSize_ == 0) { + return false; + } + return queue_.size() >= maxSize_; + } + + public: + /** + * Constructs an empty work queue with an optional max size. + * If `maxSize == 0` the queue size is unbounded. + * + * @param maxSize The maximum allowed size of the work queue. + */ + WorkQueue(std::size_t maxSize = 0) : done_(false), maxSize_(maxSize) {} + + /** + * Push an item onto the work queue. Notify a single thread that work is + * available. If `finish()` has been called, do nothing and return false. + * If `push()` returns false, then `item` has not been moved from. + * + * @param item Item to push onto the queue. + * @returns True upon success, false if `finish()` has been called. An + * item was pushed iff `push()` returns true. + */ + bool push(T&& item) { + { + std::unique_lock lock(mutex_); + while (full() && !done_) { + writerCv_.wait(lock); + } + if (done_) { + return false; + } + queue_.push(std::move(item)); + } + readerCv_.notify_one(); + return true; + } + + /** + * Attempts to pop an item off the work queue. It will block until data is + * available or `finish()` has been called. + * + * @param[out] item If `pop` returns `true`, it contains the popped item. + * If `pop` returns `false`, it is unmodified. + * @returns True upon success. False if the queue is empty and + * `finish()` has been called. + */ + bool pop(T& item) { + { + std::unique_lock lock(mutex_); + while (queue_.empty() && !done_) { + readerCv_.wait(lock); + } + if (queue_.empty()) { + assert(done_); + return false; + } + item = std::move(queue_.front()); + queue_.pop(); + } + writerCv_.notify_one(); + return true; + } + + /** + * Sets the maximum queue size. If `maxSize == 0` then it is unbounded. + * + * @param maxSize The new maximum queue size. + */ + void setMaxSize(std::size_t maxSize) { + { + std::lock_guard lock(mutex_); + maxSize_ = maxSize; + } + writerCv_.notify_all(); + } + + /** + * Promise that `push()` won't be called again, so once the queue is empty + * there will never any more work. + */ + void finish() { + { + std::lock_guard lock(mutex_); + assert(!done_); + done_ = true; + } + readerCv_.notify_all(); + writerCv_.notify_all(); + finishCv_.notify_all(); + } + + /// Blocks until `finish()` has been called (but the queue may not be empty). + void waitUntilFinished() { + std::unique_lock lock(mutex_); + while (!done_) { + finishCv_.wait(lock); + } + } +}; + +/// Work queue for `Buffer`s that knows the total number of bytes in the queue. +class BufferWorkQueue { + WorkQueue queue_; + std::atomic size_; + + public: + BufferWorkQueue(std::size_t maxSize = 0) : queue_(maxSize), size_(0) {} + + void push(Buffer buffer) { + size_.fetch_add(buffer.size()); + queue_.push(std::move(buffer)); + } + + bool pop(Buffer& buffer) { + bool result = queue_.pop(buffer); + if (result) { + size_.fetch_sub(buffer.size()); + } + return result; + } + + void setMaxSize(std::size_t maxSize) { + queue_.setMaxSize(maxSize); + } + + void finish() { + queue_.finish(); + } + + /** + * Blocks until `finish()` has been called. + * + * @returns The total number of bytes of all the `Buffer`s currently in the + * queue. + */ + std::size_t size() { + queue_.waitUntilFinished(); + return size_.load(); + } +}; +} diff --git a/dependencies/zstd-1.5.0/contrib/pzstd/utils/test/BUCK b/dependencies/zstd-1.5.0/contrib/pzstd/utils/test/BUCK new file mode 100644 index 0000000..a5113ca --- /dev/null +++ b/dependencies/zstd-1.5.0/contrib/pzstd/utils/test/BUCK @@ -0,0 +1,35 @@ +cxx_test( + name='buffer_test', + srcs=['BufferTest.cpp'], + deps=['//contrib/pzstd/utils:buffer'], +) + +cxx_test( + name='range_test', + srcs=['RangeTest.cpp'], + deps=['//contrib/pzstd/utils:range'], +) + +cxx_test( + name='resource_pool_test', + srcs=['ResourcePoolTest.cpp'], + deps=['//contrib/pzstd/utils:resource_pool'], +) + +cxx_test( + name='scope_guard_test', + srcs=['ScopeGuardTest.cpp'], + deps=['//contrib/pzstd/utils:scope_guard'], +) + +cxx_test( + name='thread_pool_test', + srcs=['ThreadPoolTest.cpp'], + deps=['//contrib/pzstd/utils:thread_pool'], +) + +cxx_test( + name='work_queue_test', + srcs=['RangeTest.cpp'], + deps=['//contrib/pzstd/utils:work_queue'], +) diff --git a/dependencies/zstd-1.5.0/contrib/pzstd/utils/test/BufferTest.cpp b/dependencies/zstd-1.5.0/contrib/pzstd/utils/test/BufferTest.cpp new file mode 100644 index 0000000..fbba74e --- /dev/null +++ b/dependencies/zstd-1.5.0/contrib/pzstd/utils/test/BufferTest.cpp @@ -0,0 +1,89 @@ +/* + * Copyright (c) 2016-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + */ +#include "utils/Buffer.h" +#include "utils/Range.h" + +#include +#include + +using namespace pzstd; + +namespace { +void deleter(const unsigned char* buf) { + delete[] buf; +} +} + +TEST(Buffer, Constructors) { + Buffer empty; + EXPECT_TRUE(empty.empty()); + EXPECT_EQ(0, empty.size()); + + Buffer sized(5); + EXPECT_FALSE(sized.empty()); + EXPECT_EQ(5, sized.size()); + + Buffer moved(std::move(sized)); + EXPECT_FALSE(sized.empty()); + EXPECT_EQ(5, sized.size()); + + Buffer assigned; + assigned = std::move(moved); + EXPECT_FALSE(sized.empty()); + EXPECT_EQ(5, sized.size()); +} + +TEST(Buffer, BufferManagement) { + std::shared_ptr buf(new unsigned char[10], deleter); + { + Buffer acquired(buf, MutableByteRange(buf.get(), buf.get() + 10)); + EXPECT_EQ(2, buf.use_count()); + Buffer moved(std::move(acquired)); + EXPECT_EQ(2, buf.use_count()); + Buffer assigned; + assigned = std::move(moved); + EXPECT_EQ(2, buf.use_count()); + + Buffer split = assigned.splitAt(5); + EXPECT_EQ(3, buf.use_count()); + + split.advance(1); + assigned.subtract(1); + EXPECT_EQ(3, buf.use_count()); + } + EXPECT_EQ(1, buf.use_count()); +} + +TEST(Buffer, Modifiers) { + Buffer buf(10); + { + unsigned char i = 0; + for (auto& byte : buf.range()) { + byte = i++; + } + } + + auto prefix = buf.splitAt(2); + + ASSERT_EQ(2, prefix.size()); + EXPECT_EQ(0, *prefix.data()); + + ASSERT_EQ(8, buf.size()); + EXPECT_EQ(2, *buf.data()); + + buf.advance(2); + EXPECT_EQ(4, *buf.data()); + + EXPECT_EQ(9, *(buf.range().end() - 1)); + + buf.subtract(2); + EXPECT_EQ(7, *(buf.range().end() - 1)); + + EXPECT_EQ(4, buf.size()); +} diff --git a/dependencies/zstd-1.5.0/contrib/pzstd/utils/test/RangeTest.cpp b/dependencies/zstd-1.5.0/contrib/pzstd/utils/test/RangeTest.cpp new file mode 100644 index 0000000..755b50f --- /dev/null +++ b/dependencies/zstd-1.5.0/contrib/pzstd/utils/test/RangeTest.cpp @@ -0,0 +1,82 @@ +/* + * Copyright (c) 2016-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + */ +#include "utils/Range.h" + +#include +#include + +using namespace pzstd; + +// Range is directly copied from folly. +// Just some sanity tests to make sure everything seems to work. + +TEST(Range, Constructors) { + StringPiece empty; + EXPECT_TRUE(empty.empty()); + EXPECT_EQ(0, empty.size()); + + std::string str = "hello"; + { + Range piece(str.begin(), str.end()); + EXPECT_EQ(5, piece.size()); + EXPECT_EQ('h', *piece.data()); + EXPECT_EQ('o', *(piece.end() - 1)); + } + + { + StringPiece piece(str.data(), str.size()); + EXPECT_EQ(5, piece.size()); + EXPECT_EQ('h', *piece.data()); + EXPECT_EQ('o', *(piece.end() - 1)); + } + + { + StringPiece piece(str); + EXPECT_EQ(5, piece.size()); + EXPECT_EQ('h', *piece.data()); + EXPECT_EQ('o', *(piece.end() - 1)); + } + + { + StringPiece piece(str.c_str()); + EXPECT_EQ(5, piece.size()); + EXPECT_EQ('h', *piece.data()); + EXPECT_EQ('o', *(piece.end() - 1)); + } +} + +TEST(Range, Modifiers) { + StringPiece range("hello world"); + ASSERT_EQ(11, range.size()); + + { + auto hello = range.subpiece(0, 5); + EXPECT_EQ(5, hello.size()); + EXPECT_EQ('h', *hello.data()); + EXPECT_EQ('o', *(hello.end() - 1)); + } + { + auto hello = range; + hello.subtract(6); + EXPECT_EQ(5, hello.size()); + EXPECT_EQ('h', *hello.data()); + EXPECT_EQ('o', *(hello.end() - 1)); + } + { + auto world = range; + world.advance(6); + EXPECT_EQ(5, world.size()); + EXPECT_EQ('w', *world.data()); + EXPECT_EQ('d', *(world.end() - 1)); + } + + std::string expected = "hello world"; + EXPECT_EQ(expected, std::string(range.begin(), range.end())); + EXPECT_EQ(expected, std::string(range.data(), range.size())); +} diff --git a/dependencies/zstd-1.5.0/contrib/pzstd/utils/test/ResourcePoolTest.cpp b/dependencies/zstd-1.5.0/contrib/pzstd/utils/test/ResourcePoolTest.cpp new file mode 100644 index 0000000..6fe1451 --- /dev/null +++ b/dependencies/zstd-1.5.0/contrib/pzstd/utils/test/ResourcePoolTest.cpp @@ -0,0 +1,72 @@ +/* + * Copyright (c) 2016-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + */ +#include "utils/ResourcePool.h" + +#include +#include +#include + +using namespace pzstd; + +TEST(ResourcePool, FullTest) { + unsigned numCreated = 0; + unsigned numDeleted = 0; + { + ResourcePool pool( + [&numCreated] { ++numCreated; return new int{5}; }, + [&numDeleted](int *x) { ++numDeleted; delete x; }); + + { + auto i = pool.get(); + EXPECT_EQ(5, *i); + *i = 6; + } + { + auto i = pool.get(); + EXPECT_EQ(6, *i); + auto j = pool.get(); + EXPECT_EQ(5, *j); + *j = 7; + } + { + auto i = pool.get(); + EXPECT_EQ(6, *i); + auto j = pool.get(); + EXPECT_EQ(7, *j); + } + } + EXPECT_EQ(2, numCreated); + EXPECT_EQ(numCreated, numDeleted); +} + +TEST(ResourcePool, ThreadSafe) { + std::atomic numCreated{0}; + std::atomic numDeleted{0}; + { + ResourcePool pool( + [&numCreated] { ++numCreated; return new int{0}; }, + [&numDeleted](int *x) { ++numDeleted; delete x; }); + auto push = [&pool] { + for (int i = 0; i < 100; ++i) { + auto x = pool.get(); + ++*x; + } + }; + std::thread t1{push}; + std::thread t2{push}; + t1.join(); + t2.join(); + + auto x = pool.get(); + auto y = pool.get(); + EXPECT_EQ(200, *x + *y); + } + EXPECT_GE(2, numCreated); + EXPECT_EQ(numCreated, numDeleted); +} diff --git a/dependencies/zstd-1.5.0/contrib/pzstd/utils/test/ScopeGuardTest.cpp b/dependencies/zstd-1.5.0/contrib/pzstd/utils/test/ScopeGuardTest.cpp new file mode 100644 index 0000000..7bc624d --- /dev/null +++ b/dependencies/zstd-1.5.0/contrib/pzstd/utils/test/ScopeGuardTest.cpp @@ -0,0 +1,28 @@ +/* + * Copyright (c) 2016-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + */ +#include "utils/ScopeGuard.h" + +#include + +using namespace pzstd; + +TEST(ScopeGuard, Dismiss) { + { + auto guard = makeScopeGuard([&] { EXPECT_TRUE(false); }); + guard.dismiss(); + } +} + +TEST(ScopeGuard, Executes) { + bool executed = false; + { + auto guard = makeScopeGuard([&] { executed = true; }); + } + EXPECT_TRUE(executed); +} diff --git a/dependencies/zstd-1.5.0/contrib/pzstd/utils/test/ThreadPoolTest.cpp b/dependencies/zstd-1.5.0/contrib/pzstd/utils/test/ThreadPoolTest.cpp new file mode 100644 index 0000000..703fd4c --- /dev/null +++ b/dependencies/zstd-1.5.0/contrib/pzstd/utils/test/ThreadPoolTest.cpp @@ -0,0 +1,71 @@ +/* + * Copyright (c) 2016-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + */ +#include "utils/ThreadPool.h" + +#include +#include +#include +#include +#include + +using namespace pzstd; + +TEST(ThreadPool, Ordering) { + std::vector results; + + { + ThreadPool executor(1); + for (int i = 0; i < 10; ++i) { + executor.add([ &results, i ] { results.push_back(i); }); + } + } + + for (int i = 0; i < 10; ++i) { + EXPECT_EQ(i, results[i]); + } +} + +TEST(ThreadPool, AllJobsFinished) { + std::atomic numFinished{0}; + std::atomic start{false}; + { + std::cerr << "Creating executor" << std::endl; + ThreadPool executor(5); + for (int i = 0; i < 10; ++i) { + executor.add([ &numFinished, &start ] { + while (!start.load()) { + std::this_thread::yield(); + } + ++numFinished; + }); + } + std::cerr << "Starting" << std::endl; + start.store(true); + std::cerr << "Finishing" << std::endl; + } + EXPECT_EQ(10, numFinished.load()); +} + +TEST(ThreadPool, AddJobWhileJoining) { + std::atomic done{false}; + { + ThreadPool executor(1); + executor.add([&executor, &done] { + while (!done.load()) { + std::this_thread::yield(); + } + // Sleep for a second to be sure that we are joining + std::this_thread::sleep_for(std::chrono::seconds(1)); + executor.add([] { + EXPECT_TRUE(false); + }); + }); + done.store(true); + } +} diff --git a/dependencies/zstd-1.5.0/contrib/pzstd/utils/test/WorkQueueTest.cpp b/dependencies/zstd-1.5.0/contrib/pzstd/utils/test/WorkQueueTest.cpp new file mode 100644 index 0000000..14cf773 --- /dev/null +++ b/dependencies/zstd-1.5.0/contrib/pzstd/utils/test/WorkQueueTest.cpp @@ -0,0 +1,282 @@ +/* + * Copyright (c) 2016-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + */ +#include "utils/Buffer.h" +#include "utils/WorkQueue.h" + +#include +#include +#include +#include +#include +#include + +using namespace pzstd; + +namespace { +struct Popper { + WorkQueue* queue; + int* results; + std::mutex* mutex; + + void operator()() { + int result; + while (queue->pop(result)) { + std::lock_guard lock(*mutex); + results[result] = result; + } + } +}; +} + +TEST(WorkQueue, SingleThreaded) { + WorkQueue queue; + int result; + + queue.push(5); + EXPECT_TRUE(queue.pop(result)); + EXPECT_EQ(5, result); + + queue.push(1); + queue.push(2); + EXPECT_TRUE(queue.pop(result)); + EXPECT_EQ(1, result); + EXPECT_TRUE(queue.pop(result)); + EXPECT_EQ(2, result); + + queue.push(1); + queue.push(2); + queue.finish(); + EXPECT_TRUE(queue.pop(result)); + EXPECT_EQ(1, result); + EXPECT_TRUE(queue.pop(result)); + EXPECT_EQ(2, result); + EXPECT_FALSE(queue.pop(result)); + + queue.waitUntilFinished(); +} + +TEST(WorkQueue, SPSC) { + WorkQueue queue; + const int max = 100; + + for (int i = 0; i < 10; ++i) { + queue.push(int{i}); + } + + std::thread thread([ &queue, max ] { + int result; + for (int i = 0;; ++i) { + if (!queue.pop(result)) { + EXPECT_EQ(i, max); + break; + } + EXPECT_EQ(i, result); + } + }); + + std::this_thread::yield(); + for (int i = 10; i < max; ++i) { + queue.push(int{i}); + } + queue.finish(); + + thread.join(); +} + +TEST(WorkQueue, SPMC) { + WorkQueue queue; + std::vector results(50, -1); + std::mutex mutex; + std::vector threads; + for (int i = 0; i < 5; ++i) { + threads.emplace_back(Popper{&queue, results.data(), &mutex}); + } + + for (int i = 0; i < 50; ++i) { + queue.push(int{i}); + } + queue.finish(); + + for (auto& thread : threads) { + thread.join(); + } + + for (int i = 0; i < 50; ++i) { + EXPECT_EQ(i, results[i]); + } +} + +TEST(WorkQueue, MPMC) { + WorkQueue queue; + std::vector results(100, -1); + std::mutex mutex; + std::vector popperThreads; + for (int i = 0; i < 4; ++i) { + popperThreads.emplace_back(Popper{&queue, results.data(), &mutex}); + } + + std::vector pusherThreads; + for (int i = 0; i < 2; ++i) { + auto min = i * 50; + auto max = (i + 1) * 50; + pusherThreads.emplace_back( + [ &queue, min, max ] { + for (int i = min; i < max; ++i) { + queue.push(int{i}); + } + }); + } + + for (auto& thread : pusherThreads) { + thread.join(); + } + queue.finish(); + + for (auto& thread : popperThreads) { + thread.join(); + } + + for (int i = 0; i < 100; ++i) { + EXPECT_EQ(i, results[i]); + } +} + +TEST(WorkQueue, BoundedSizeWorks) { + WorkQueue queue(1); + int result; + queue.push(5); + queue.pop(result); + queue.push(5); + queue.pop(result); + queue.push(5); + queue.finish(); + queue.pop(result); + EXPECT_EQ(5, result); +} + +TEST(WorkQueue, BoundedSizePushAfterFinish) { + WorkQueue queue(1); + int result; + queue.push(5); + std::thread pusher([&queue] { + queue.push(6); + }); + // Dirtily try and make sure that pusher has run. + std::this_thread::sleep_for(std::chrono::seconds(1)); + queue.finish(); + EXPECT_TRUE(queue.pop(result)); + EXPECT_EQ(5, result); + EXPECT_FALSE(queue.pop(result)); + + pusher.join(); +} + +TEST(WorkQueue, SetMaxSize) { + WorkQueue queue(2); + int result; + queue.push(5); + queue.push(6); + queue.setMaxSize(1); + std::thread pusher([&queue] { + queue.push(7); + }); + // Dirtily try and make sure that pusher has run. + std::this_thread::sleep_for(std::chrono::seconds(1)); + queue.finish(); + EXPECT_TRUE(queue.pop(result)); + EXPECT_EQ(5, result); + EXPECT_TRUE(queue.pop(result)); + EXPECT_EQ(6, result); + EXPECT_FALSE(queue.pop(result)); + + pusher.join(); +} + +TEST(WorkQueue, BoundedSizeMPMC) { + WorkQueue queue(10); + std::vector results(200, -1); + std::mutex mutex; + std::cerr << "Creating popperThreads" << std::endl; + std::vector popperThreads; + for (int i = 0; i < 4; ++i) { + popperThreads.emplace_back(Popper{&queue, results.data(), &mutex}); + } + + std::cerr << "Creating pusherThreads" << std::endl; + std::vector pusherThreads; + for (int i = 0; i < 2; ++i) { + auto min = i * 100; + auto max = (i + 1) * 100; + pusherThreads.emplace_back( + [ &queue, min, max ] { + for (int i = min; i < max; ++i) { + queue.push(int{i}); + } + }); + } + + std::cerr << "Joining pusherThreads" << std::endl; + for (auto& thread : pusherThreads) { + thread.join(); + } + std::cerr << "Finishing queue" << std::endl; + queue.finish(); + + std::cerr << "Joining popperThreads" << std::endl; + for (auto& thread : popperThreads) { + thread.join(); + } + + std::cerr << "Inspecting results" << std::endl; + for (int i = 0; i < 200; ++i) { + EXPECT_EQ(i, results[i]); + } +} + +TEST(WorkQueue, FailedPush) { + WorkQueue> queue; + std::unique_ptr x(new int{5}); + EXPECT_TRUE(queue.push(std::move(x))); + EXPECT_EQ(nullptr, x); + queue.finish(); + x.reset(new int{6}); + EXPECT_FALSE(queue.push(std::move(x))); + EXPECT_NE(nullptr, x); + EXPECT_EQ(6, *x); +} + +TEST(BufferWorkQueue, SizeCalculatedCorrectly) { + { + BufferWorkQueue queue; + queue.finish(); + EXPECT_EQ(0, queue.size()); + } + { + BufferWorkQueue queue; + queue.push(Buffer(10)); + queue.finish(); + EXPECT_EQ(10, queue.size()); + } + { + BufferWorkQueue queue; + queue.push(Buffer(10)); + queue.push(Buffer(5)); + queue.finish(); + EXPECT_EQ(15, queue.size()); + } + { + BufferWorkQueue queue; + queue.push(Buffer(10)); + queue.push(Buffer(5)); + queue.finish(); + Buffer buffer; + queue.pop(buffer); + EXPECT_EQ(5, queue.size()); + } +} diff --git a/dependencies/zstd-1.5.0/contrib/recovery/Makefile b/dependencies/zstd-1.5.0/contrib/recovery/Makefile new file mode 100644 index 0000000..9a9f4f2 --- /dev/null +++ b/dependencies/zstd-1.5.0/contrib/recovery/Makefile @@ -0,0 +1,35 @@ +# ################################################################ +# Copyright (c) 2019-present, Facebook, Inc. +# All rights reserved. +# +# This source code is licensed under both the BSD-style license (found in the +# LICENSE file in the root directory of this source tree) and the GPLv2 (found +# in the COPYING file in the root directory of this source tree). +# ################################################################ + +.PHONY: all +all: recover_directory + +ZSTDLIBDIR ?= ../../lib +PROGRAMDIR ?= ../../programs + +CFLAGS ?= -O3 +CFLAGS += -I$(ZSTDLIBDIR) -I$(PROGRAMDIR) +CFLAGS += -Wall -Wextra -Wcast-qual -Wcast-align -Wshadow \ + -Wstrict-aliasing=1 -Wswitch-enum \ + -Wstrict-prototypes -Wundef \ + -Wvla -Wformat=2 -Winit-self -Wfloat-equal -Wwrite-strings \ + -Wredundant-decls -Wmissing-prototypes +CFLAGS += $(DEBUGFLAGS) $(MOREFLAGS) +FLAGS = $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) + +.PHONY: $(ZSTDLIBDIR)/libzstd.a +$(ZSTDLIBDIR)/libzstd.a: + $(MAKE) -C $(ZSTDLIBDIR) libzstd.a + +recover_directory: recover_directory.c $(ZSTDLIBDIR)/libzstd.a $(PROGRAMDIR)/util.c + $(CC) $(FLAGS) $^ -o $@$(EXT) + +.PHONY: clean +clean: + rm -f recover_directory diff --git a/dependencies/zstd-1.5.0/contrib/recovery/recover_directory.c b/dependencies/zstd-1.5.0/contrib/recovery/recover_directory.c new file mode 100644 index 0000000..13f83fd --- /dev/null +++ b/dependencies/zstd-1.5.0/contrib/recovery/recover_directory.c @@ -0,0 +1,152 @@ +/* + * Copyright (c) 2016-2021, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + +#include +#include +#include + +#define ZSTD_STATIC_LINKING_ONLY +#include "util.h" +#include "zstd.h" + +#define CHECK(cond, ...) \ + do { \ + if (!(cond)) { \ + fprintf(stderr, "%s:%d CHECK(%s) failed: ", __FILE__, __LINE__, #cond); \ + fprintf(stderr, "" __VA_ARGS__); \ + fprintf(stderr, "\n"); \ + exit(1); \ + } \ + } while (0) + +static void usage(char const *program) { + fprintf(stderr, "USAGE: %s FILE.zst PREFIX\n", program); + fprintf(stderr, "FILE.zst: A zstd compressed file with multiple frames\n"); + fprintf(stderr, "PREFIX: The output prefix. Uncompressed files will be " + "created named ${PREFIX}0 ${PREFIX}1...\n\n"); + fprintf(stderr, "This program takes concatenated zstd frames and " + "decompresses them into individual files.\n"); + fprintf(stderr, "E.g. files created with a command like: zstd -r directory " + "-o file.zst\n"); +} + +typedef struct { + char *data; + size_t size; + size_t frames; + size_t maxFrameSize; +} ZstdFrames; + +static ZstdFrames readFile(char const *fileName) { + U64 const fileSize = UTIL_getFileSize(fileName); + CHECK(fileSize != UTIL_FILESIZE_UNKNOWN, "Unknown file size!"); + + char *const data = (char *)malloc(fileSize); + CHECK(data != NULL, "Allocation failed"); + + FILE *file = fopen(fileName, "rb"); + CHECK(file != NULL, "fopen failed"); + + size_t const readSize = fread(data, 1, fileSize, file); + CHECK(readSize == fileSize, "fread failed"); + + fclose(file); + ZstdFrames frames; + frames.data = (char *)data; + frames.size = fileSize; + frames.frames = 0; + + size_t index; + size_t maxFrameSize = 0; + for (index = 0; index < fileSize;) { + size_t const frameSize = + ZSTD_findFrameCompressedSize(data + index, fileSize - index); + CHECK(!ZSTD_isError(frameSize), "Bad zstd frame: %s", + ZSTD_getErrorName(frameSize)); + if (frameSize > maxFrameSize) + maxFrameSize = frameSize; + frames.frames += 1; + index += frameSize; + } + CHECK(index == fileSize, "Zstd file corrupt!"); + frames.maxFrameSize = maxFrameSize; + + return frames; +} + +static int computePadding(size_t numFrames) { + return snprintf(NULL, 0, "%u", (unsigned)numFrames); +} + +int main(int argc, char **argv) { + if (argc != 3) { + usage(argv[0]); + exit(1); + } + char const *const zstdFile = argv[1]; + char const *const prefix = argv[2]; + + ZstdFrames frames = readFile(zstdFile); + + if (frames.frames <= 1) { + fprintf( + stderr, + "%s only has %u zstd frame. Simply use `zstd -d` to decompress it.\n", + zstdFile, (unsigned)frames.frames); + exit(1); + } + + int const padding = computePadding(frames.frames - 1); + + size_t const outFileNameSize = strlen(prefix) + padding + 1; + char* outFileName = malloc(outFileNameSize); + CHECK(outFileName != NULL, "Allocation failure"); + + size_t const bufferSize = 128 * 1024; + void *buffer = malloc(bufferSize); + CHECK(buffer != NULL, "Allocation failure"); + + ZSTD_DCtx* dctx = ZSTD_createDCtx(); + CHECK(dctx != NULL, "Allocation failure"); + + fprintf(stderr, "Recovering %u files...\n", (unsigned)frames.frames); + + size_t index; + size_t frame = 0; + for (index = 0; index < frames.size; ++frame) { + size_t const frameSize = + ZSTD_findFrameCompressedSize(frames.data + index, frames.size - index); + + int const ret = snprintf(outFileName, outFileNameSize, "%s%0*u", prefix, padding, (unsigned)frame); + CHECK(ret >= 0 && (size_t)ret <= outFileNameSize, "snprintf failed!"); + + FILE* outFile = fopen(outFileName, "wb"); + CHECK(outFile != NULL, "fopen failed"); + + ZSTD_DCtx_reset(dctx, ZSTD_reset_session_only); + ZSTD_inBuffer in = {frames.data + index, frameSize, 0}; + while (in.pos < in.size) { + ZSTD_outBuffer out = {buffer, bufferSize, 0}; + CHECK(!ZSTD_isError(ZSTD_decompressStream(dctx, &out, &in)), "decompression failed"); + size_t const writeSize = fwrite(out.dst, 1, out.pos, outFile); + CHECK(writeSize == out.pos, "fwrite failed"); + } + fclose(outFile); + fprintf(stderr, "Recovered %s\n", outFileName); + index += frameSize; + } + fprintf(stderr, "Complete\n"); + + free(outFileName); + ZSTD_freeDCtx(dctx); + free(buffer); + free(frames.data); + return 0; +} diff --git a/dependencies/zstd-1.5.0/contrib/seekable_format/examples/.gitignore b/dependencies/zstd-1.5.0/contrib/seekable_format/examples/.gitignore new file mode 100644 index 0000000..0b83f5e --- /dev/null +++ b/dependencies/zstd-1.5.0/contrib/seekable_format/examples/.gitignore @@ -0,0 +1,5 @@ +seekable_compression +seekable_decompression +seekable_decompression_mem +parallel_processing +parallel_compression diff --git a/dependencies/zstd-1.5.0/contrib/seekable_format/examples/Makefile b/dependencies/zstd-1.5.0/contrib/seekable_format/examples/Makefile new file mode 100644 index 0000000..9df6b75 --- /dev/null +++ b/dependencies/zstd-1.5.0/contrib/seekable_format/examples/Makefile @@ -0,0 +1,53 @@ +# ################################################################ +# Copyright (c) 2017-present, Facebook, Inc. +# All rights reserved. +# +# This source code is licensed under both the BSD-style license (found in the +# LICENSE file in the root directory of this source tree) and the GPLv2 (found +# in the COPYING file in the root directory of this source tree). +# ################################################################ + +# This Makefile presumes libzstd is built, using `make` in / or /lib/ + +ZSTDLIB_PATH = ../../../lib +ZSTDLIB_NAME = libzstd.a +ZSTDLIB = $(ZSTDLIB_PATH)/$(ZSTDLIB_NAME) + +CPPFLAGS += -DXXH_NAMESPACE=ZSTD_ -I../ -I../../../lib -I../../../lib/common + +CFLAGS ?= -O3 +CFLAGS += -g + +SEEKABLE_OBJS = ../zstdseek_compress.c ../zstdseek_decompress.c $(ZSTDLIB) + +.PHONY: default all clean test + +default: all + +all: seekable_compression seekable_decompression seekable_decompression_mem \ + parallel_processing + +$(ZSTDLIB): + make -C $(ZSTDLIB_PATH) $(ZSTDLIB_NAME) + +seekable_compression : seekable_compression.c $(SEEKABLE_OBJS) + $(CC) $(CPPFLAGS) $(CFLAGS) $^ $(LDFLAGS) -o $@ + +seekable_decompression : seekable_decompression.c $(SEEKABLE_OBJS) + $(CC) $(CPPFLAGS) $(CFLAGS) $^ $(LDFLAGS) -o $@ + +seekable_decompression_mem : seekable_decompression_mem.c $(SEEKABLE_OBJS) + $(CC) $(CPPFLAGS) $(CFLAGS) $^ $(LDFLAGS) -o $@ + +parallel_processing : parallel_processing.c $(SEEKABLE_OBJS) + $(CC) $(CPPFLAGS) $(CFLAGS) $^ $(LDFLAGS) -o $@ -pthread + +parallel_compression : parallel_compression.c $(SEEKABLE_OBJS) + $(CC) $(CPPFLAGS) $(CFLAGS) $^ $(LDFLAGS) -o $@ -pthread + +clean: + @rm -f core *.o tmp* result* *.zst \ + seekable_compression seekable_decompression \ + seekable_decompression_mem \ + parallel_processing parallel_compression + @echo Cleaning completed diff --git a/dependencies/zstd-1.5.0/contrib/seekable_format/examples/parallel_compression.c b/dependencies/zstd-1.5.0/contrib/seekable_format/examples/parallel_compression.c new file mode 100644 index 0000000..4118b0a --- /dev/null +++ b/dependencies/zstd-1.5.0/contrib/seekable_format/examples/parallel_compression.c @@ -0,0 +1,214 @@ +/* + * Copyright (c) 2017-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + */ + +#include // malloc, free, exit, atoi +#include // fprintf, perror, feof, fopen, etc. +#include // strlen, memset, strcat +#define ZSTD_STATIC_LINKING_ONLY +#include // presumes zstd library is installed +#include +#if defined(WIN32) || defined(_WIN32) +# include +# define SLEEP(x) Sleep(x) +#else +# include +# define SLEEP(x) usleep(x * 1000) +#endif + +#include "xxhash.h" + +#include "pool.h" // use zstd thread pool for demo + +#include "zstd_seekable.h" + +static void* malloc_orDie(size_t size) +{ + void* const buff = malloc(size); + if (buff) return buff; + /* error */ + perror("malloc:"); + exit(1); +} + +static FILE* fopen_orDie(const char *filename, const char *instruction) +{ + FILE* const inFile = fopen(filename, instruction); + if (inFile) return inFile; + /* error */ + perror(filename); + exit(3); +} + +static size_t fread_orDie(void* buffer, size_t sizeToRead, FILE* file) +{ + size_t const readSize = fread(buffer, 1, sizeToRead, file); + if (readSize == sizeToRead) return readSize; /* good */ + if (feof(file)) return readSize; /* good, reached end of file */ + /* error */ + perror("fread"); + exit(4); +} + +static size_t fwrite_orDie(const void* buffer, size_t sizeToWrite, FILE* file) +{ + size_t const writtenSize = fwrite(buffer, 1, sizeToWrite, file); + if (writtenSize == sizeToWrite) return sizeToWrite; /* good */ + /* error */ + perror("fwrite"); + exit(5); +} + +static size_t fclose_orDie(FILE* file) +{ + if (!fclose(file)) return 0; + /* error */ + perror("fclose"); + exit(6); +} + +static void fseek_orDie(FILE* file, long int offset, int origin) +{ + if (!fseek(file, offset, origin)) { + if (!fflush(file)) return; + } + /* error */ + perror("fseek"); + exit(7); +} + +static long int ftell_orDie(FILE* file) +{ + long int off = ftell(file); + if (off != -1) return off; + /* error */ + perror("ftell"); + exit(8); +} + +struct job { + const void* src; + size_t srcSize; + void* dst; + size_t dstSize; + + unsigned checksum; + + int compressionLevel; + int done; +}; + +static void compressFrame(void* opaque) +{ + struct job* job = opaque; + + job->checksum = XXH64(job->src, job->srcSize, 0); + + size_t ret = ZSTD_compress(job->dst, job->dstSize, job->src, job->srcSize, job->compressionLevel); + if (ZSTD_isError(ret)) { + fprintf(stderr, "ZSTD_compress() error : %s \n", ZSTD_getErrorName(ret)); + exit(20); + } + + job->dstSize = ret; + job->done = 1; +} + +static void compressFile_orDie(const char* fname, const char* outName, int cLevel, unsigned frameSize, int nbThreads) +{ + POOL_ctx* pool = POOL_create(nbThreads, nbThreads); + if (pool == NULL) { fprintf(stderr, "POOL_create() error \n"); exit(9); } + + FILE* const fin = fopen_orDie(fname, "rb"); + FILE* const fout = fopen_orDie(outName, "wb"); + + if (ZSTD_compressBound(frameSize) > 0xFFFFFFFFU) { fprintf(stderr, "Frame size too large \n"); exit(10); } + unsigned dstSize = ZSTD_compressBound(frameSize); + + + fseek_orDie(fin, 0, SEEK_END); + long int length = ftell_orDie(fin); + fseek_orDie(fin, 0, SEEK_SET); + + size_t numFrames = (length + frameSize - 1) / frameSize; + + struct job* jobs = malloc_orDie(sizeof(struct job) * numFrames); + + size_t i; + for(i = 0; i < numFrames; i++) { + void* in = malloc_orDie(frameSize); + void* out = malloc_orDie(dstSize); + + size_t inSize = fread_orDie(in, frameSize, fin); + + jobs[i].src = in; + jobs[i].srcSize = inSize; + jobs[i].dst = out; + jobs[i].dstSize = dstSize; + jobs[i].compressionLevel = cLevel; + jobs[i].done = 0; + POOL_add(pool, compressFrame, &jobs[i]); + } + + ZSTD_frameLog* fl = ZSTD_seekable_createFrameLog(1); + if (fl == NULL) { fprintf(stderr, "ZSTD_seekable_createFrameLog() failed \n"); exit(11); } + for (i = 0; i < numFrames; i++) { + while (!jobs[i].done) SLEEP(5); /* wake up every 5 milliseconds to check */ + fwrite_orDie(jobs[i].dst, jobs[i].dstSize, fout); + free((void*)jobs[i].src); + free(jobs[i].dst); + + size_t ret = ZSTD_seekable_logFrame(fl, jobs[i].dstSize, jobs[i].srcSize, jobs[i].checksum); + if (ZSTD_isError(ret)) { fprintf(stderr, "ZSTD_seekable_logFrame() error : %s \n", ZSTD_getErrorName(ret)); } + } + + { unsigned char seekTableBuff[1024]; + ZSTD_outBuffer out = {seekTableBuff, 1024, 0}; + while (ZSTD_seekable_writeSeekTable(fl, &out) != 0) { + fwrite_orDie(seekTableBuff, out.pos, fout); + out.pos = 0; + } + fwrite_orDie(seekTableBuff, out.pos, fout); + } + + ZSTD_seekable_freeFrameLog(fl); + free(jobs); + fclose_orDie(fout); + fclose_orDie(fin); +} + +static const char* createOutFilename_orDie(const char* filename) +{ + size_t const inL = strlen(filename); + size_t const outL = inL + 5; + void* outSpace = malloc_orDie(outL); + memset(outSpace, 0, outL); + strcat(outSpace, filename); + strcat(outSpace, ".zst"); + return (const char*)outSpace; +} + +int main(int argc, const char** argv) { + const char* const exeName = argv[0]; + if (argc!=4) { + printf("wrong arguments\n"); + printf("usage:\n"); + printf("%s FILE FRAME_SIZE NB_THREADS\n", exeName); + return 1; + } + + { const char* const inFileName = argv[1]; + unsigned const frameSize = (unsigned)atoi(argv[2]); + int const nbThreads = atoi(argv[3]); + + const char* const outFileName = createOutFilename_orDie(inFileName); + compressFile_orDie(inFileName, outFileName, 5, frameSize, nbThreads); + } + + return 0; +} diff --git a/dependencies/zstd-1.5.0/contrib/seekable_format/examples/parallel_processing.c b/dependencies/zstd-1.5.0/contrib/seekable_format/examples/parallel_processing.c new file mode 100644 index 0000000..36226b4 --- /dev/null +++ b/dependencies/zstd-1.5.0/contrib/seekable_format/examples/parallel_processing.c @@ -0,0 +1,194 @@ +/* + * Copyright (c) 2017-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + */ + +/* + * A simple demo that sums up all the bytes in the file in parallel using + * seekable decompression and the zstd thread pool + */ + +#include // malloc, exit +#include // fprintf, perror, feof +#include // strerror +#include // errno +#define ZSTD_STATIC_LINKING_ONLY +#include // presumes zstd library is installed +#include +#if defined(WIN32) || defined(_WIN32) +# include +# define SLEEP(x) Sleep(x) +#else +# include +# define SLEEP(x) usleep(x * 1000) +#endif + +#include "pool.h" // use zstd thread pool for demo + +#include "zstd_seekable.h" + +#define MIN(a, b) ((a) < (b) ? (a) : (b)) + +static void* malloc_orDie(size_t size) +{ + void* const buff = malloc(size); + if (buff) return buff; + /* error */ + perror("malloc"); + exit(1); +} + +static void* realloc_orDie(void* ptr, size_t size) +{ + ptr = realloc(ptr, size); + if (ptr) return ptr; + /* error */ + perror("realloc"); + exit(1); +} + +static FILE* fopen_orDie(const char *filename, const char *instruction) +{ + FILE* const inFile = fopen(filename, instruction); + if (inFile) return inFile; + /* error */ + perror(filename); + exit(3); +} + +static size_t fread_orDie(void* buffer, size_t sizeToRead, FILE* file) +{ + size_t const readSize = fread(buffer, 1, sizeToRead, file); + if (readSize == sizeToRead) return readSize; /* good */ + if (feof(file)) return readSize; /* good, reached end of file */ + /* error */ + perror("fread"); + exit(4); +} + +static size_t fwrite_orDie(const void* buffer, size_t sizeToWrite, FILE* file) +{ + size_t const writtenSize = fwrite(buffer, 1, sizeToWrite, file); + if (writtenSize == sizeToWrite) return sizeToWrite; /* good */ + /* error */ + perror("fwrite"); + exit(5); +} + +static size_t fclose_orDie(FILE* file) +{ + if (!fclose(file)) return 0; + /* error */ + perror("fclose"); + exit(6); +} + +static void fseek_orDie(FILE* file, long int offset, int origin) { + if (!fseek(file, offset, origin)) { + if (!fflush(file)) return; + } + /* error */ + perror("fseek"); + exit(7); +} + +struct sum_job { + const char* fname; + unsigned long long sum; + unsigned frameNb; + int done; +}; + +static void sumFrame(void* opaque) +{ + struct sum_job* job = (struct sum_job*)opaque; + job->done = 0; + + FILE* const fin = fopen_orDie(job->fname, "rb"); + + ZSTD_seekable* const seekable = ZSTD_seekable_create(); + if (seekable==NULL) { fprintf(stderr, "ZSTD_seekable_create() error \n"); exit(10); } + + size_t const initResult = ZSTD_seekable_initFile(seekable, fin); + if (ZSTD_isError(initResult)) { fprintf(stderr, "ZSTD_seekable_init() error : %s \n", ZSTD_getErrorName(initResult)); exit(11); } + + size_t const frameSize = ZSTD_seekable_getFrameDecompressedSize(seekable, job->frameNb); + unsigned char* data = malloc_orDie(frameSize); + + size_t result = ZSTD_seekable_decompressFrame(seekable, data, frameSize, job->frameNb); + if (ZSTD_isError(result)) { fprintf(stderr, "ZSTD_seekable_decompressFrame() error : %s \n", ZSTD_getErrorName(result)); exit(12); } + + unsigned long long sum = 0; + size_t i; + for (i = 0; i < frameSize; i++) { + sum += data[i]; + } + job->sum = sum; + job->done = 1; + + fclose(fin); + ZSTD_seekable_free(seekable); + free(data); +} + +static void sumFile_orDie(const char* fname, int nbThreads) +{ + POOL_ctx* pool = POOL_create(nbThreads, nbThreads); + if (pool == NULL) { fprintf(stderr, "POOL_create() error \n"); exit(9); } + + FILE* const fin = fopen_orDie(fname, "rb"); + + ZSTD_seekable* const seekable = ZSTD_seekable_create(); + if (seekable==NULL) { fprintf(stderr, "ZSTD_seekable_create() error \n"); exit(10); } + + size_t const initResult = ZSTD_seekable_initFile(seekable, fin); + if (ZSTD_isError(initResult)) { fprintf(stderr, "ZSTD_seekable_init() error : %s \n", ZSTD_getErrorName(initResult)); exit(11); } + + unsigned const numFrames = ZSTD_seekable_getNumFrames(seekable); + struct sum_job* jobs = (struct sum_job*)malloc(numFrames * sizeof(struct sum_job)); + + unsigned fnb; + for (fnb = 0; fnb < numFrames; fnb++) { + jobs[fnb] = (struct sum_job){ fname, 0, fnb, 0 }; + POOL_add(pool, sumFrame, &jobs[fnb]); + } + + unsigned long long total = 0; + + for (fnb = 0; fnb < numFrames; fnb++) { + while (!jobs[fnb].done) SLEEP(5); /* wake up every 5 milliseconds to check */ + total += jobs[fnb].sum; + } + + printf("Sum: %llu\n", total); + + POOL_free(pool); + ZSTD_seekable_free(seekable); + fclose(fin); + free(jobs); +} + + +int main(int argc, const char** argv) +{ + const char* const exeName = argv[0]; + + if (argc!=3) { + fprintf(stderr, "wrong arguments\n"); + fprintf(stderr, "usage:\n"); + fprintf(stderr, "%s FILE NB_THREADS\n", exeName); + return 1; + } + + { + const char* const inFilename = argv[1]; + int const nbThreads = atoi(argv[2]); + sumFile_orDie(inFilename, nbThreads); + } + + return 0; +} diff --git a/dependencies/zstd-1.5.0/contrib/seekable_format/examples/seekable_compression.c b/dependencies/zstd-1.5.0/contrib/seekable_format/examples/seekable_compression.c new file mode 100644 index 0000000..9a331a8 --- /dev/null +++ b/dependencies/zstd-1.5.0/contrib/seekable_format/examples/seekable_compression.c @@ -0,0 +1,133 @@ +/* + * Copyright (c) 2017-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + */ + +#include // malloc, free, exit, atoi +#include // fprintf, perror, feof, fopen, etc. +#include // strlen, memset, strcat +#define ZSTD_STATIC_LINKING_ONLY +#include // presumes zstd library is installed + +#include "zstd_seekable.h" + +static void* malloc_orDie(size_t size) +{ + void* const buff = malloc(size); + if (buff) return buff; + /* error */ + perror("malloc:"); + exit(1); +} + +static FILE* fopen_orDie(const char *filename, const char *instruction) +{ + FILE* const inFile = fopen(filename, instruction); + if (inFile) return inFile; + /* error */ + perror(filename); + exit(3); +} + +static size_t fread_orDie(void* buffer, size_t sizeToRead, FILE* file) +{ + size_t const readSize = fread(buffer, 1, sizeToRead, file); + if (readSize == sizeToRead) return readSize; /* good */ + if (feof(file)) return readSize; /* good, reached end of file */ + /* error */ + perror("fread"); + exit(4); +} + +static size_t fwrite_orDie(const void* buffer, size_t sizeToWrite, FILE* file) +{ + size_t const writtenSize = fwrite(buffer, 1, sizeToWrite, file); + if (writtenSize == sizeToWrite) return sizeToWrite; /* good */ + /* error */ + perror("fwrite"); + exit(5); +} + +static size_t fclose_orDie(FILE* file) +{ + if (!fclose(file)) return 0; + /* error */ + perror("fclose"); + exit(6); +} + +static void compressFile_orDie(const char* fname, const char* outName, int cLevel, unsigned frameSize) +{ + FILE* const fin = fopen_orDie(fname, "rb"); + FILE* const fout = fopen_orDie(outName, "wb"); + size_t const buffInSize = ZSTD_CStreamInSize(); /* can always read one full block */ + void* const buffIn = malloc_orDie(buffInSize); + size_t const buffOutSize = ZSTD_CStreamOutSize(); /* can always flush a full block */ + void* const buffOut = malloc_orDie(buffOutSize); + + ZSTD_seekable_CStream* const cstream = ZSTD_seekable_createCStream(); + if (cstream==NULL) { fprintf(stderr, "ZSTD_seekable_createCStream() error \n"); exit(10); } + size_t const initResult = ZSTD_seekable_initCStream(cstream, cLevel, 1, frameSize); + if (ZSTD_isError(initResult)) { fprintf(stderr, "ZSTD_seekable_initCStream() error : %s \n", ZSTD_getErrorName(initResult)); exit(11); } + + size_t read, toRead = buffInSize; + while( (read = fread_orDie(buffIn, toRead, fin)) ) { + ZSTD_inBuffer input = { buffIn, read, 0 }; + while (input.pos < input.size) { + ZSTD_outBuffer output = { buffOut, buffOutSize, 0 }; + toRead = ZSTD_seekable_compressStream(cstream, &output , &input); /* toRead is guaranteed to be <= ZSTD_CStreamInSize() */ + if (ZSTD_isError(toRead)) { fprintf(stderr, "ZSTD_seekable_compressStream() error : %s \n", ZSTD_getErrorName(toRead)); exit(12); } + if (toRead > buffInSize) toRead = buffInSize; /* Safely handle case when `buffInSize` is manually changed to a value < ZSTD_CStreamInSize()*/ + fwrite_orDie(buffOut, output.pos, fout); + } + } + + while (1) { + ZSTD_outBuffer output = { buffOut, buffOutSize, 0 }; + size_t const remainingToFlush = ZSTD_seekable_endStream(cstream, &output); /* close stream */ + if (ZSTD_isError(remainingToFlush)) { fprintf(stderr, "ZSTD_seekable_endStream() error : %s \n", ZSTD_getErrorName(remainingToFlush)); exit(13); } + fwrite_orDie(buffOut, output.pos, fout); + if (!remainingToFlush) break; + } + + ZSTD_seekable_freeCStream(cstream); + fclose_orDie(fout); + fclose_orDie(fin); + free(buffIn); + free(buffOut); +} + +static char* createOutFilename_orDie(const char* filename) +{ + size_t const inL = strlen(filename); + size_t const outL = inL + 5; + void* outSpace = malloc_orDie(outL); + memset(outSpace, 0, outL); + strcat(outSpace, filename); + strcat(outSpace, ".zst"); + return (char*)outSpace; +} + +int main(int argc, const char** argv) { + const char* const exeName = argv[0]; + if (argc!=3) { + printf("wrong arguments\n"); + printf("usage:\n"); + printf("%s FILE FRAME_SIZE\n", exeName); + return 1; + } + + { const char* const inFileName = argv[1]; + unsigned const frameSize = (unsigned)atoi(argv[2]); + + char* const outFileName = createOutFilename_orDie(inFileName); + compressFile_orDie(inFileName, outFileName, 5, frameSize); + free(outFileName); + } + + return 0; +} diff --git a/dependencies/zstd-1.5.0/contrib/seekable_format/examples/seekable_decompression.c b/dependencies/zstd-1.5.0/contrib/seekable_format/examples/seekable_decompression.c new file mode 100644 index 0000000..e9e2013 --- /dev/null +++ b/dependencies/zstd-1.5.0/contrib/seekable_format/examples/seekable_decompression.c @@ -0,0 +1,141 @@ +/* + * Copyright (c) 2017-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + */ + + +#include // malloc, exit +#include // fprintf, perror, feof +#include // strerror +#include // errno +#define ZSTD_STATIC_LINKING_ONLY +#include // presumes zstd library is installed +#include + +#include "zstd_seekable.h" + +#define MIN(a, b) ((a) < (b) ? (a) : (b)) + +static void* malloc_orDie(size_t size) +{ + void* const buff = malloc(size); + if (buff) return buff; + /* error */ + perror("malloc"); + exit(1); +} + +static void* realloc_orDie(void* ptr, size_t size) +{ + ptr = realloc(ptr, size); + if (ptr) return ptr; + /* error */ + perror("realloc"); + exit(1); +} + +static FILE* fopen_orDie(const char *filename, const char *instruction) +{ + FILE* const inFile = fopen(filename, instruction); + if (inFile) return inFile; + /* error */ + perror(filename); + exit(3); +} + +static size_t fread_orDie(void* buffer, size_t sizeToRead, FILE* file) +{ + size_t const readSize = fread(buffer, 1, sizeToRead, file); + if (readSize == sizeToRead) return readSize; /* good */ + if (feof(file)) return readSize; /* good, reached end of file */ + /* error */ + perror("fread"); + exit(4); +} + +static size_t fwrite_orDie(const void* buffer, size_t sizeToWrite, FILE* file) +{ + size_t const writtenSize = fwrite(buffer, 1, sizeToWrite, file); + if (writtenSize == sizeToWrite) return sizeToWrite; /* good */ + /* error */ + perror("fwrite"); + exit(5); +} + +static size_t fclose_orDie(FILE* file) +{ + if (!fclose(file)) return 0; + /* error */ + perror("fclose"); + exit(6); +} + +static void fseek_orDie(FILE* file, long int offset, int origin) { + if (!fseek(file, offset, origin)) { + if (!fflush(file)) return; + } + /* error */ + perror("fseek"); + exit(7); +} + + +static void decompressFile_orDie(const char* fname, off_t startOffset, off_t endOffset) +{ + FILE* const fin = fopen_orDie(fname, "rb"); + FILE* const fout = stdout; + size_t const buffOutSize = ZSTD_DStreamOutSize(); /* Guarantee to successfully flush at least one complete compressed block in all circumstances. */ + void* const buffOut = malloc_orDie(buffOutSize); + + ZSTD_seekable* const seekable = ZSTD_seekable_create(); + if (seekable==NULL) { fprintf(stderr, "ZSTD_seekable_create() error \n"); exit(10); } + + size_t const initResult = ZSTD_seekable_initFile(seekable, fin); + if (ZSTD_isError(initResult)) { fprintf(stderr, "ZSTD_seekable_init() error : %s \n", ZSTD_getErrorName(initResult)); exit(11); } + + while (startOffset < endOffset) { + size_t const result = ZSTD_seekable_decompress(seekable, buffOut, MIN(endOffset - startOffset, buffOutSize), startOffset); + if (!result) { + break; + } + + if (ZSTD_isError(result)) { + fprintf(stderr, "ZSTD_seekable_decompress() error : %s \n", + ZSTD_getErrorName(result)); + exit(12); + } + fwrite_orDie(buffOut, result, fout); + startOffset += result; + } + + ZSTD_seekable_free(seekable); + fclose_orDie(fin); + fclose_orDie(fout); + free(buffOut); +} + + +int main(int argc, const char** argv) +{ + const char* const exeName = argv[0]; + + if (argc!=4) { + fprintf(stderr, "wrong arguments\n"); + fprintf(stderr, "usage:\n"); + fprintf(stderr, "%s FILE START END\n", exeName); + return 1; + } + + { + const char* const inFilename = argv[1]; + off_t const startOffset = atoll(argv[2]); + off_t const endOffset = atoll(argv[3]); + decompressFile_orDie(inFilename, startOffset, endOffset); + } + + return 0; +} diff --git a/dependencies/zstd-1.5.0/contrib/seekable_format/examples/seekable_decompression_mem.c b/dependencies/zstd-1.5.0/contrib/seekable_format/examples/seekable_decompression_mem.c new file mode 100644 index 0000000..e7b1c65 --- /dev/null +++ b/dependencies/zstd-1.5.0/contrib/seekable_format/examples/seekable_decompression_mem.c @@ -0,0 +1,147 @@ +/* + * Copyright (c) 2017-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + */ + + +#include // malloc, exit +#include // fprintf, perror, feof +#include // strerror +#include // errno +#define ZSTD_STATIC_LINKING_ONLY +#include // presumes zstd library is installed +#include + +#include "zstd_seekable.h" + +#define MIN(a, b) ((a) < (b) ? (a) : (b)) + +#define MAX_FILE_SIZE (8 * 1024 * 1024) + +static void* malloc_orDie(size_t size) +{ + void* const buff = malloc(size); + if (buff) return buff; + /* error */ + perror("malloc"); + exit(1); +} + +static void* realloc_orDie(void* ptr, size_t size) +{ + ptr = realloc(ptr, size); + if (ptr) return ptr; + /* error */ + perror("realloc"); + exit(1); +} + +static FILE* fopen_orDie(const char *filename, const char *instruction) +{ + FILE* const inFile = fopen(filename, instruction); + if (inFile) return inFile; + /* error */ + perror(filename); + exit(3); +} + +static size_t fread_orDie(void* buffer, size_t sizeToRead, FILE* file) +{ + size_t const readSize = fread(buffer, 1, sizeToRead, file); + if (readSize == sizeToRead) return readSize; /* good */ + if (feof(file)) return readSize; /* good, reached end of file */ + /* error */ + perror("fread"); + exit(4); +} + +static size_t fwrite_orDie(const void* buffer, size_t sizeToWrite, FILE* file) +{ + size_t const writtenSize = fwrite(buffer, 1, sizeToWrite, file); + if (writtenSize == sizeToWrite) return sizeToWrite; /* good */ + /* error */ + perror("fwrite"); + exit(5); +} + +static size_t fclose_orDie(FILE* file) +{ + if (!fclose(file)) return 0; + /* error */ + perror("fclose"); + exit(6); +} + +static void fseek_orDie(FILE* file, long int offset, int origin) { + if (!fseek(file, offset, origin)) { + if (!fflush(file)) return; + } + /* error */ + perror("fseek"); + exit(7); +} + + +static void decompressFile_orDie(const char* fname, off_t startOffset, off_t endOffset) +{ + FILE* const fin = fopen_orDie(fname, "rb"); + FILE* const fout = stdout; + // Just for demo purposes, assume file is <= MAX_FILE_SIZE + void* const buffIn = malloc_orDie(MAX_FILE_SIZE); + size_t const inSize = fread_orDie(buffIn, MAX_FILE_SIZE, fin); + size_t const buffOutSize = ZSTD_DStreamOutSize(); /* Guarantee to successfully flush at least one complete compressed block in all circumstances. */ + void* const buffOut = malloc_orDie(buffOutSize); + + ZSTD_seekable* const seekable = ZSTD_seekable_create(); + if (seekable==NULL) { fprintf(stderr, "ZSTD_seekable_create() error \n"); exit(10); } + + size_t const initResult = ZSTD_seekable_initBuff(seekable, buffIn, inSize); + if (ZSTD_isError(initResult)) { fprintf(stderr, "ZSTD_seekable_init() error : %s \n", ZSTD_getErrorName(initResult)); exit(11); } + + while (startOffset < endOffset) { + size_t const result = ZSTD_seekable_decompress(seekable, buffOut, MIN(endOffset - startOffset, buffOutSize), startOffset); + if (!result) { + break; + } + + if (ZSTD_isError(result)) { + fprintf(stderr, "ZSTD_seekable_decompress() error : %s \n", + ZSTD_getErrorName(result)); + exit(12); + } + fwrite_orDie(buffOut, result, fout); + startOffset += result; + } + + ZSTD_seekable_free(seekable); + fclose_orDie(fin); + fclose_orDie(fout); + free(buffIn); + free(buffOut); +} + + +int main(int argc, const char** argv) +{ + const char* const exeName = argv[0]; + + if (argc!=4) { + fprintf(stderr, "wrong arguments\n"); + fprintf(stderr, "usage:\n"); + fprintf(stderr, "%s FILE START END\n", exeName); + return 1; + } + + { + const char* const inFilename = argv[1]; + off_t const startOffset = atoll(argv[2]); + off_t const endOffset = atoll(argv[3]); + decompressFile_orDie(inFilename, startOffset, endOffset); + } + + return 0; +} diff --git a/dependencies/zstd-1.5.0/contrib/seekable_format/tests/.gitignore b/dependencies/zstd-1.5.0/contrib/seekable_format/tests/.gitignore new file mode 100644 index 0000000..f831eaf --- /dev/null +++ b/dependencies/zstd-1.5.0/contrib/seekable_format/tests/.gitignore @@ -0,0 +1 @@ +seekable_tests diff --git a/dependencies/zstd-1.5.0/contrib/seekable_format/tests/Makefile b/dependencies/zstd-1.5.0/contrib/seekable_format/tests/Makefile new file mode 100644 index 0000000..d51deb3 --- /dev/null +++ b/dependencies/zstd-1.5.0/contrib/seekable_format/tests/Makefile @@ -0,0 +1,38 @@ +# ################################################################ +# Copyright (c) 2017-present, Facebook, Inc. +# All rights reserved. +# +# This source code is licensed under both the BSD-style license (found in the +# LICENSE file in the root directory of this source tree) and the GPLv2 (found +# in the COPYING file in the root directory of this source tree). +# ################################################################ + +# This Makefile presumes libzstd is built, using `make` in / or /lib/ + +ZSTDLIB_PATH = ../../../lib +ZSTDLIB_NAME = libzstd.a +ZSTDLIB = $(ZSTDLIB_PATH)/$(ZSTDLIB_NAME) + +CPPFLAGS += -DXXH_NAMESPACE=ZSTD_ -I../ -I$(ZSTDLIB_PATH) -I$(ZSTDLIB_PATH)/common + +CFLAGS ?= -O3 +CFLAGS += -g -Wall -Wextra -Wcast-qual -Wcast-align -Wconversion \ + -Wformat=2 -Wstrict-aliasing=1 + +SEEKABLE_OBJS = ../zstdseek_compress.c ../zstdseek_decompress.c $(ZSTDLIB) + +.PHONY: default clean test +default: test + +test: seekable_tests + ./seekable_tests + +$(ZSTDLIB): + $(MAKE) -C $(ZSTDLIB_PATH) $(ZSTDLIB_NAME) + +seekable_tests : $(SEEKABLE_OBJS) + +clean: + @$(RM) core *.o tmp* result* *.zst \ + seekable_tests + @echo Cleaning completed diff --git a/dependencies/zstd-1.5.0/contrib/seekable_format/tests/seekable_tests.c b/dependencies/zstd-1.5.0/contrib/seekable_format/tests/seekable_tests.c new file mode 100644 index 0000000..a482638 --- /dev/null +++ b/dependencies/zstd-1.5.0/contrib/seekable_format/tests/seekable_tests.c @@ -0,0 +1,196 @@ +#include +#include +#include // malloc +#include +#include + +#include "zstd_seekable.h" + +/* Basic unit tests for zstd seekable format */ +int main(int argc, const char** argv) +{ + unsigned testNb = 1; + (void)argc; (void)argv; + printf("Beginning zstd seekable format tests...\n"); + + printf("Test %u - simple round trip: ", testNb++); + { size_t const inSize = 4000; + void* const inBuffer = malloc(inSize); + assert(inBuffer != NULL); + + size_t const seekCapacity = 5000; + void* const seekBuffer = malloc(seekCapacity); + assert(seekBuffer != NULL); + size_t seekSize; + + size_t const outCapacity = inSize; + void* const outBuffer = malloc(outCapacity); + assert(outBuffer != NULL); + + ZSTD_seekable_CStream* const zscs = ZSTD_seekable_createCStream(); + assert(zscs != NULL); + + { size_t const initStatus = ZSTD_seekable_initCStream(zscs, 9, 0 /* checksumFlag */, (unsigned)inSize /* maxFrameSize */); + assert(!ZSTD_isError(initStatus)); + } + + { ZSTD_outBuffer outb = { .dst=seekBuffer, .pos=0, .size=seekCapacity }; + ZSTD_inBuffer inb = { .src=inBuffer, .pos=0, .size=inSize }; + + size_t const cStatus = ZSTD_seekable_compressStream(zscs, &outb, &inb); + assert(!ZSTD_isError(cStatus)); + assert(inb.pos == inb.size); + + size_t const endStatus = ZSTD_seekable_endStream(zscs, &outb); + assert(!ZSTD_isError(endStatus)); + seekSize = outb.pos; + } + + ZSTD_seekable* const stream = ZSTD_seekable_create(); + assert(stream != NULL); + { size_t const initStatus = ZSTD_seekable_initBuff(stream, seekBuffer, seekSize); + assert(!ZSTD_isError(initStatus)); } + + { size_t const decStatus = ZSTD_seekable_decompress(stream, outBuffer, outCapacity, 0); + assert(decStatus == inSize); } + + /* unit test ZSTD_seekTable functions */ + ZSTD_seekTable* const zst = ZSTD_seekTable_create_fromSeekable(stream); + assert(zst != NULL); + + unsigned const nbFrames = ZSTD_seekTable_getNumFrames(zst); + assert(nbFrames > 0); + + unsigned long long const frame0Offset = ZSTD_seekTable_getFrameCompressedOffset(zst, 0); + assert(frame0Offset == 0); + + unsigned long long const content0Offset = ZSTD_seekTable_getFrameDecompressedOffset(zst, 0); + assert(content0Offset == 0); + + size_t const cSize = ZSTD_seekTable_getFrameCompressedSize(zst, 0); + assert(!ZSTD_isError(cSize)); + assert(cSize <= seekCapacity); + + size_t const origSize = ZSTD_seekTable_getFrameDecompressedSize(zst, 0); + assert(origSize == inSize); + + unsigned const fo1idx = ZSTD_seekTable_offsetToFrameIndex(zst, 1); + assert(fo1idx == 0); + + free(inBuffer); + free(seekBuffer); + free(outBuffer); + ZSTD_seekable_freeCStream(zscs); + ZSTD_seekTable_free(zst); + ZSTD_seekable_free(stream); + } + printf("Success!\n"); + + + printf("Test %u - check that seekable decompress does not hang: ", testNb++); + { /* Github issue #2335 */ + const size_t compressed_size = 17; + const uint8_t compressed_data[17] = { + '^', + '*', + 'M', + '\x18', + '\t', + '\x00', + '\x00', + '\x00', + '\x00', + '\x00', + '\x00', + '\x00', + (uint8_t)('\x03'), + (uint8_t)('\xb1'), + (uint8_t)('\xea'), + (uint8_t)('\x92'), + (uint8_t)('\x8f'), + }; + const size_t uncompressed_size = 32; + uint8_t uncompressed_data[32]; + + ZSTD_seekable* const stream = ZSTD_seekable_create(); + assert(stream != NULL); + { size_t const status = ZSTD_seekable_initBuff(stream, compressed_data, compressed_size); + if (ZSTD_isError(status)) { + ZSTD_seekable_free(stream); + goto _test_error; + } } + + /* Should return an error, but not hang */ + { const size_t offset = 2; + size_t const status = ZSTD_seekable_decompress(stream, uncompressed_data, uncompressed_size, offset); + if (!ZSTD_isError(status)) { + ZSTD_seekable_free(stream); + goto _test_error; + } } + + ZSTD_seekable_free(stream); + } + printf("Success!\n"); + + printf("Test %u - check #2 that seekable decompress does not hang: ", testNb++); + { /* Github issue #FIXME */ + const size_t compressed_size = 27; + const uint8_t compressed_data[27] = { + (uint8_t)'\x28', + (uint8_t)'\xb5', + (uint8_t)'\x2f', + (uint8_t)'\xfd', + (uint8_t)'\x00', + (uint8_t)'\x32', + (uint8_t)'\x91', + (uint8_t)'\x00', + (uint8_t)'\x00', + (uint8_t)'\x00', + (uint8_t)'\x5e', + (uint8_t)'\x2a', + (uint8_t)'\x4d', + (uint8_t)'\x18', + (uint8_t)'\x09', + (uint8_t)'\x00', + (uint8_t)'\x00', + (uint8_t)'\x00', + (uint8_t)'\x00', + (uint8_t)'\x00', + (uint8_t)'\x00', + (uint8_t)'\x00', + (uint8_t)'\x00', + (uint8_t)'\xb1', + (uint8_t)'\xea', + (uint8_t)'\x92', + (uint8_t)'\x8f', + }; + const size_t uncompressed_size = 400; + uint8_t uncompressed_data[400]; + + ZSTD_seekable* stream = ZSTD_seekable_create(); + size_t status = ZSTD_seekable_initBuff(stream, compressed_data, compressed_size); + if (ZSTD_isError(status)) { + ZSTD_seekable_free(stream); + goto _test_error; + } + + const size_t offset = 2; + /* Should return an error, but not hang */ + status = ZSTD_seekable_decompress(stream, uncompressed_data, uncompressed_size, offset); + if (!ZSTD_isError(status)) { + ZSTD_seekable_free(stream); + goto _test_error; + } + + ZSTD_seekable_free(stream); + } + printf("Success!\n"); + + /* TODO: Add more tests */ + printf("Finished tests\n"); + return 0; + +_test_error: + printf("test failed! Exiting..\n"); + return 1; +} diff --git a/dependencies/zstd-1.5.0/contrib/seekable_format/zstd_seekable.h b/dependencies/zstd-1.5.0/contrib/seekable_format/zstd_seekable.h new file mode 100644 index 0000000..d2807cf --- /dev/null +++ b/dependencies/zstd-1.5.0/contrib/seekable_format/zstd_seekable.h @@ -0,0 +1,217 @@ +#ifndef SEEKABLE_H +#define SEEKABLE_H + +#if defined (__cplusplus) +extern "C" { +#endif + +#include +#include "zstd.h" /* ZSTDLIB_API */ + + +#define ZSTD_seekTableFooterSize 9 + +#define ZSTD_SEEKABLE_MAGICNUMBER 0x8F92EAB1 + +#define ZSTD_SEEKABLE_MAXFRAMES 0x8000000U + +/* Limit the maximum size to avoid any potential issues storing the compressed size */ +#define ZSTD_SEEKABLE_MAX_FRAME_DECOMPRESSED_SIZE 0x80000000U + +/*-**************************************************************************** +* Seekable Format +* +* The seekable format splits the compressed data into a series of "frames", +* each compressed individually so that decompression of a section in the +* middle of an archive only requires zstd to decompress at most a frame's +* worth of extra data, instead of the entire archive. +******************************************************************************/ + +typedef struct ZSTD_seekable_CStream_s ZSTD_seekable_CStream; +typedef struct ZSTD_seekable_s ZSTD_seekable; +typedef struct ZSTD_seekTable_s ZSTD_seekTable; + +/*-**************************************************************************** +* Seekable compression - HowTo +* A ZSTD_seekable_CStream object is required to tracking streaming operation. +* Use ZSTD_seekable_createCStream() and ZSTD_seekable_freeCStream() to create/ +* release resources. +* +* Streaming objects are reusable to avoid allocation and deallocation, +* to start a new compression operation call ZSTD_seekable_initCStream() on the +* compressor. +* +* Data streamed to the seekable compressor will automatically be split into +* frames of size `maxFrameSize` (provided in ZSTD_seekable_initCStream()), +* or if none is provided, will be cut off whenever ZSTD_seekable_endFrame() is +* called or when the default maximum frame size (2GB) is reached. +* +* Use ZSTD_seekable_initCStream() to initialize a ZSTD_seekable_CStream object +* for a new compression operation. +* `maxFrameSize` indicates the size at which to automatically start a new +* seekable frame. `maxFrameSize == 0` implies the default maximum size. +* `checksumFlag` indicates whether or not the seek table should include frame +* checksums on the uncompressed data for verification. +* @return : a size hint for input to provide for compression, or an error code +* checkable with ZSTD_isError() +* +* Use ZSTD_seekable_compressStream() repetitively to consume input stream. +* The function will automatically update both `pos` fields. +* Note that it may not consume the entire input, in which case `pos < size`, +* and it's up to the caller to present again remaining data. +* @return : a size hint, preferred nb of bytes to use as input for next +* function call or an error code, which can be tested using +* ZSTD_isError(). +* Note 1 : it's just a hint, to help latency a little, any other +* value will work fine. +* +* At any time, call ZSTD_seekable_endFrame() to end the current frame and +* start a new one. +* +* ZSTD_seekable_endStream() will end the current frame, and then write the seek +* table so that decompressors can efficiently find compressed frames. +* ZSTD_seekable_endStream() may return a number > 0 if it was unable to flush +* all the necessary data to `output`. In this case, it should be called again +* until all remaining data is flushed out and 0 is returned. +******************************************************************************/ + +/*===== Seekable compressor management =====*/ +ZSTDLIB_API ZSTD_seekable_CStream* ZSTD_seekable_createCStream(void); +ZSTDLIB_API size_t ZSTD_seekable_freeCStream(ZSTD_seekable_CStream* zcs); + +/*===== Seekable compression functions =====*/ +ZSTDLIB_API size_t ZSTD_seekable_initCStream(ZSTD_seekable_CStream* zcs, int compressionLevel, int checksumFlag, unsigned maxFrameSize); +ZSTDLIB_API size_t ZSTD_seekable_compressStream(ZSTD_seekable_CStream* zcs, ZSTD_outBuffer* output, ZSTD_inBuffer* input); +ZSTDLIB_API size_t ZSTD_seekable_endFrame(ZSTD_seekable_CStream* zcs, ZSTD_outBuffer* output); +ZSTDLIB_API size_t ZSTD_seekable_endStream(ZSTD_seekable_CStream* zcs, ZSTD_outBuffer* output); + +/*= Raw seek table API + * These functions allow for the seek table to be constructed directly. + * This table can then be appended to a file of concatenated frames. + * This allows the frames to be compressed independently, even in parallel, + * and compiled together afterward into a seekable archive. + * + * Use ZSTD_seekable_createFrameLog() to allocate and initialize a tracking + * structure. + * + * Call ZSTD_seekable_logFrame() once for each frame in the archive. + * checksum is optional, and will not be used if checksumFlag was 0 when the + * frame log was created. If present, it should be the least significant 32 + * bits of the XXH64 hash of the uncompressed data. + * + * Call ZSTD_seekable_writeSeekTable to serialize the data into a seek table. + * If the entire table was written, the return value will be 0. Otherwise, + * it will be equal to the number of bytes left to write. */ +typedef struct ZSTD_frameLog_s ZSTD_frameLog; +ZSTDLIB_API ZSTD_frameLog* ZSTD_seekable_createFrameLog(int checksumFlag); +ZSTDLIB_API size_t ZSTD_seekable_freeFrameLog(ZSTD_frameLog* fl); +ZSTDLIB_API size_t ZSTD_seekable_logFrame(ZSTD_frameLog* fl, unsigned compressedSize, unsigned decompressedSize, unsigned checksum); +ZSTDLIB_API size_t ZSTD_seekable_writeSeekTable(ZSTD_frameLog* fl, ZSTD_outBuffer* output); + + +/*-**************************************************************************** +* Seekable decompression - HowTo +* A ZSTD_seekable object is required to tracking the seekTable. +* +* Call ZSTD_seekable_init* to initialize a ZSTD_seekable object with the +* the seek table provided in the input. +* There are three modes for ZSTD_seekable_init: +* - ZSTD_seekable_initBuff() : An in-memory API. The data contained in +* `src` should be the entire seekable file, including the seek table. +* `src` should be kept alive and unmodified until the ZSTD_seekable object +* is freed or reset. +* - ZSTD_seekable_initFile() : A simplified file API using stdio. fread and +* fseek will be used to access the required data for building the seek +* table and doing decompression operations. `src` should not be closed +* or modified until the ZSTD_seekable object is freed or reset. +* - ZSTD_seekable_initAdvanced() : A general API allowing the client to +* provide its own read and seek callbacks. +* + ZSTD_seekable_read() : read exactly `n` bytes into `buffer`. +* Premature EOF should be treated as an error. +* + ZSTD_seekable_seek() : seek the read head to `offset` from `origin`, +* where origin is either SEEK_SET (beginning of +* file), or SEEK_END (end of file). +* Both functions should return a non-negative value in case of success, and a +* negative value in case of failure. If implementing using this API and +* stdio, be careful with files larger than 4GB and fseek. All of these +* functions return an error code checkable with ZSTD_isError(). +* +* Call ZSTD_seekable_decompress to decompress `dstSize` bytes at decompressed +* offset `offset`. ZSTD_seekable_decompress may have to decompress the entire +* prefix of the frame before the desired data if it has not already processed +* this section. If ZSTD_seekable_decompress is called multiple times for a +* consecutive range of data, it will efficiently retain the decompressor object +* and avoid redecompressing frame prefixes. The return value is the number of +* bytes decompressed, or an error code checkable with ZSTD_isError(). +* +* The seek table access functions can be used to obtain the data contained +* in the seek table. If frameIndex is larger than the value returned by +* ZSTD_seekable_getNumFrames(), they will return error codes checkable with +* ZSTD_isError(). Note that since the offset access functions return +* unsigned long long instead of size_t, in this case they will instead return +* the value ZSTD_SEEKABLE_FRAMEINDEX_TOOLARGE. +******************************************************************************/ + +/*===== Seekable decompressor management =====*/ +ZSTDLIB_API ZSTD_seekable* ZSTD_seekable_create(void); +ZSTDLIB_API size_t ZSTD_seekable_free(ZSTD_seekable* zs); + +/*===== Seekable decompression functions =====*/ +ZSTDLIB_API size_t ZSTD_seekable_initBuff(ZSTD_seekable* zs, const void* src, size_t srcSize); +ZSTDLIB_API size_t ZSTD_seekable_initFile(ZSTD_seekable* zs, FILE* src); +ZSTDLIB_API size_t ZSTD_seekable_decompress(ZSTD_seekable* zs, void* dst, size_t dstSize, unsigned long long offset); +ZSTDLIB_API size_t ZSTD_seekable_decompressFrame(ZSTD_seekable* zs, void* dst, size_t dstSize, unsigned frameIndex); + +#define ZSTD_SEEKABLE_FRAMEINDEX_TOOLARGE (0ULL-2) +/*===== Seekable seek table access functions =====*/ +ZSTDLIB_API unsigned ZSTD_seekable_getNumFrames(const ZSTD_seekable* zs); +ZSTDLIB_API unsigned long long ZSTD_seekable_getFrameCompressedOffset(const ZSTD_seekable* zs, unsigned frameIndex); +ZSTDLIB_API unsigned long long ZSTD_seekable_getFrameDecompressedOffset(const ZSTD_seekable* zs, unsigned frameIndex); +ZSTDLIB_API size_t ZSTD_seekable_getFrameCompressedSize(const ZSTD_seekable* zs, unsigned frameIndex); +ZSTDLIB_API size_t ZSTD_seekable_getFrameDecompressedSize(const ZSTD_seekable* zs, unsigned frameIndex); +ZSTDLIB_API unsigned ZSTD_seekable_offsetToFrameIndex(const ZSTD_seekable* zs, unsigned long long offset); + + +/*-**************************************************************************** +* Direct exploitation of the seekTable +* +* Memory constrained use cases that manage multiple archives +* benefit from retaining multiple archive seek tables +* without retaining a ZSTD_seekable instance for each. +* +* Below API allow the above-mentioned use cases +* to initialize a ZSTD_seekable, extract its (smaller) ZSTD_seekTable, +* then throw the ZSTD_seekable away to save memory. +* +* Standard ZSTD operations can then be used +* to decompress frames based on seek table offsets. +******************************************************************************/ + +/*===== Independent seek table management =====*/ +ZSTDLIB_API ZSTD_seekTable* ZSTD_seekTable_create_fromSeekable(const ZSTD_seekable* zs); +ZSTDLIB_API size_t ZSTD_seekTable_free(ZSTD_seekTable* st); + +/*===== Direct seek table access functions =====*/ +ZSTDLIB_API unsigned ZSTD_seekTable_getNumFrames(const ZSTD_seekTable* st); +ZSTDLIB_API unsigned long long ZSTD_seekTable_getFrameCompressedOffset(const ZSTD_seekTable* st, unsigned frameIndex); +ZSTDLIB_API unsigned long long ZSTD_seekTable_getFrameDecompressedOffset(const ZSTD_seekTable* st, unsigned frameIndex); +ZSTDLIB_API size_t ZSTD_seekTable_getFrameCompressedSize(const ZSTD_seekTable* st, unsigned frameIndex); +ZSTDLIB_API size_t ZSTD_seekTable_getFrameDecompressedSize(const ZSTD_seekTable* st, unsigned frameIndex); +ZSTDLIB_API unsigned ZSTD_seekTable_offsetToFrameIndex(const ZSTD_seekTable* st, unsigned long long offset); + + +/*===== Seekable advanced I/O API =====*/ +typedef int(ZSTD_seekable_read)(void* opaque, void* buffer, size_t n); +typedef int(ZSTD_seekable_seek)(void* opaque, long long offset, int origin); +typedef struct { + void* opaque; + ZSTD_seekable_read* read; + ZSTD_seekable_seek* seek; +} ZSTD_seekable_customFile; +ZSTDLIB_API size_t ZSTD_seekable_initAdvanced(ZSTD_seekable* zs, ZSTD_seekable_customFile src); + +#if defined (__cplusplus) +} +#endif + +#endif diff --git a/dependencies/zstd-1.5.0/contrib/seekable_format/zstd_seekable_compression_format.md b/dependencies/zstd-1.5.0/contrib/seekable_format/zstd_seekable_compression_format.md new file mode 100644 index 0000000..55aebfd --- /dev/null +++ b/dependencies/zstd-1.5.0/contrib/seekable_format/zstd_seekable_compression_format.md @@ -0,0 +1,116 @@ +# Zstandard Seekable Format + +### Notices + +Copyright (c) 2017-present Facebook, Inc. + +Permission is granted to copy and distribute this document +for any purpose and without charge, +including translations into other languages +and incorporation into compilations, +provided that the copyright notice and this notice are preserved, +and that any substantive changes or deletions from the original +are clearly marked. +Distribution of this document is unlimited. + +### Version +0.1.0 (11/04/17) + +## Introduction +This document defines a format for compressed data to be stored so that subranges of the data can be efficiently decompressed without requiring the entire document to be decompressed. +This is done by splitting up the input data into frames, +each of which are compressed independently, +and so can be decompressed independently. +Decompression then takes advantage of a provided 'seek table', which allows the decompressor to immediately jump to the desired data. This is done in a way that is compatible with the original Zstandard format by placing the seek table in a Zstandard skippable frame. + +### Overall conventions +In this document: +- square brackets i.e. `[` and `]` are used to indicate optional fields or parameters. +- the naming convention for identifiers is `Mixed_Case_With_Underscores` +- All numeric fields are little-endian unless specified otherwise + +## Format + +The format consists of a number of frames (Zstandard compressed frames and skippable frames), followed by a final skippable frame at the end containing the seek table. + +### Seek Table Format +The structure of the seek table frame is as follows: + +|`Skippable_Magic_Number`|`Frame_Size`|`[Seek_Table_Entries]`|`Seek_Table_Footer`| +|------------------------|------------|----------------------|-------------------| +| 4 bytes | 4 bytes | 8-12 bytes each | 9 bytes | + +__`Skippable_Magic_Number`__ + +Value : 0x184D2A5E. +This is for compatibility with [Zstandard skippable frames]. +Since it is legal for other Zstandard skippable frames to use the same +magic number, it is not recommended for a decoder to recognize frames +solely on this. + +__`Frame_Size`__ + +The total size of the skippable frame, not including the `Skippable_Magic_Number` or `Frame_Size`. +This is for compatibility with [Zstandard skippable frames]. + +[Zstandard skippable frames]: https://github.com/facebook/zstd/blob/release/doc/zstd_compression_format.md#skippable-frames + +#### `Seek_Table_Footer` +The seek table footer format is as follows: + +|`Number_Of_Frames`|`Seek_Table_Descriptor`|`Seekable_Magic_Number`| +|------------------|-----------------------|-----------------------| +| 4 bytes | 1 byte | 4 bytes | + +__`Seekable_Magic_Number`__ + +Value : 0x8F92EAB1. +This value must be the last bytes present in the compressed file so that decoders +can efficiently find it and determine if there is an actual seek table present. + +__`Number_Of_Frames`__ + +The number of stored frames in the data. + +__`Seek_Table_Descriptor`__ + +A bitfield describing the format of the seek table. + +| Bit number | Field name | +| ---------- | ---------- | +| 7 | `Checksum_Flag` | +| 6-2 | `Reserved_Bits` | +| 1-0 | `Unused_Bits` | + +While only `Checksum_Flag` currently exists, there are 7 other bits in this field that can be used for future changes to the format, +for example the addition of inline dictionaries. + +__`Checksum_Flag`__ + +If the checksum flag is set, each of the seek table entries contains a 4 byte checksum of the uncompressed data contained in its frame. + +`Reserved_Bits` are not currently used but may be used in the future for breaking changes, so a compliant decoder should ensure they are set to 0. `Unused_Bits` may be used in the future for non-breaking changes, so a compliant decoder should not interpret these bits. + +#### __`Seek_Table_Entries`__ + +`Seek_Table_Entries` consists of `Number_Of_Frames` (one for each frame in the data, not including the seek table frame) entries of the following form, in sequence: + +|`Compressed_Size`|`Decompressed_Size`|`[Checksum]`| +|-----------------|-------------------|------------| +| 4 bytes | 4 bytes | 4 bytes | + +__`Compressed_Size`__ + +The compressed size of the frame. +The cumulative sum of the `Compressed_Size` fields of frames `0` to `i` gives the offset in the compressed file of frame `i+1`. + +__`Decompressed_Size`__ + +The size of the decompressed data contained in the frame. For skippable or otherwise empty frames, this value is 0. + +__`Checksum`__ + +Only present if `Checksum_Flag` is set in the `Seek_Table_Descriptor`. Value : the least significant 32 bits of the XXH64 digest of the uncompressed data, stored in little-endian format. + +## Version Changes +- 0.1.0: initial version diff --git a/dependencies/zstd-1.5.0/contrib/seekable_format/zstdseek_compress.c b/dependencies/zstd-1.5.0/contrib/seekable_format/zstdseek_compress.c new file mode 100644 index 0000000..242bd2a --- /dev/null +++ b/dependencies/zstd-1.5.0/contrib/seekable_format/zstdseek_compress.c @@ -0,0 +1,363 @@ +/* + * Copyright (c) 2017-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + */ + +#include /* malloc, free */ +#include /* UINT_MAX */ +#include + +#define XXH_STATIC_LINKING_ONLY +#include "xxhash.h" + +#define ZSTD_STATIC_LINKING_ONLY +#include "zstd.h" +#include "zstd_errors.h" +#include "mem.h" + +#include "zstd_seekable.h" + +#define CHECK_Z(f) { size_t const ret = (f); if (ret != 0) return ret; } + +#undef ERROR +#define ERROR(name) ((size_t)-ZSTD_error_##name) + +#undef MIN +#undef MAX +#define MIN(a, b) ((a) < (b) ? (a) : (b)) +#define MAX(a, b) ((a) > (b) ? (a) : (b)) + +typedef struct { + U32 cSize; + U32 dSize; + U32 checksum; +} framelogEntry_t; + +struct ZSTD_frameLog_s { + framelogEntry_t* entries; + U32 size; + U32 capacity; + + int checksumFlag; + + /* for use when streaming out the seek table */ + U32 seekTablePos; + U32 seekTableIndex; +} framelog_t; + +struct ZSTD_seekable_CStream_s { + ZSTD_CStream* cstream; + ZSTD_frameLog framelog; + + U32 frameCSize; + U32 frameDSize; + + XXH64_state_t xxhState; + + U32 maxFrameSize; + + int writingSeekTable; +}; + +static size_t ZSTD_seekable_frameLog_allocVec(ZSTD_frameLog* fl) +{ + /* allocate some initial space */ + size_t const FRAMELOG_STARTING_CAPACITY = 16; + fl->entries = (framelogEntry_t*)malloc( + sizeof(framelogEntry_t) * FRAMELOG_STARTING_CAPACITY); + if (fl->entries == NULL) return ERROR(memory_allocation); + fl->capacity = (U32)FRAMELOG_STARTING_CAPACITY; + return 0; +} + +static size_t ZSTD_seekable_frameLog_freeVec(ZSTD_frameLog* fl) +{ + if (fl != NULL) free(fl->entries); + return 0; +} + +ZSTD_frameLog* ZSTD_seekable_createFrameLog(int checksumFlag) +{ + ZSTD_frameLog* const fl = (ZSTD_frameLog*)malloc(sizeof(ZSTD_frameLog)); + if (fl == NULL) return NULL; + + if (ZSTD_isError(ZSTD_seekable_frameLog_allocVec(fl))) { + free(fl); + return NULL; + } + + fl->checksumFlag = checksumFlag; + fl->seekTablePos = 0; + fl->seekTableIndex = 0; + fl->size = 0; + + return fl; +} + +size_t ZSTD_seekable_freeFrameLog(ZSTD_frameLog* fl) +{ + ZSTD_seekable_frameLog_freeVec(fl); + free(fl); + return 0; +} + +ZSTD_seekable_CStream* ZSTD_seekable_createCStream(void) +{ + ZSTD_seekable_CStream* const zcs = (ZSTD_seekable_CStream*)malloc(sizeof(ZSTD_seekable_CStream)); + if (zcs == NULL) return NULL; + + memset(zcs, 0, sizeof(*zcs)); + + zcs->cstream = ZSTD_createCStream(); + if (zcs->cstream == NULL) goto failed1; + + if (ZSTD_isError(ZSTD_seekable_frameLog_allocVec(&zcs->framelog))) goto failed2; + + return zcs; + +failed2: + ZSTD_freeCStream(zcs->cstream); +failed1: + free(zcs); + return NULL; +} + +size_t ZSTD_seekable_freeCStream(ZSTD_seekable_CStream* zcs) +{ + if (zcs == NULL) return 0; /* support free on null */ + ZSTD_freeCStream(zcs->cstream); + ZSTD_seekable_frameLog_freeVec(&zcs->framelog); + free(zcs); + return 0; +} + +size_t ZSTD_seekable_initCStream(ZSTD_seekable_CStream* zcs, + int compressionLevel, + int checksumFlag, + unsigned maxFrameSize) +{ + zcs->framelog.size = 0; + zcs->frameCSize = 0; + zcs->frameDSize = 0; + + /* make sure maxFrameSize has a reasonable value */ + if (maxFrameSize > ZSTD_SEEKABLE_MAX_FRAME_DECOMPRESSED_SIZE) { + return ERROR(frameParameter_unsupported); + } + + zcs->maxFrameSize = maxFrameSize ? + maxFrameSize : ZSTD_SEEKABLE_MAX_FRAME_DECOMPRESSED_SIZE; + + zcs->framelog.checksumFlag = checksumFlag; + if (zcs->framelog.checksumFlag) { + XXH64_reset(&zcs->xxhState, 0); + } + + zcs->framelog.seekTablePos = 0; + zcs->framelog.seekTableIndex = 0; + zcs->writingSeekTable = 0; + + return ZSTD_initCStream(zcs->cstream, compressionLevel); +} + +size_t ZSTD_seekable_logFrame(ZSTD_frameLog* fl, + unsigned compressedSize, + unsigned decompressedSize, + unsigned checksum) +{ + if (fl->size == ZSTD_SEEKABLE_MAXFRAMES) + return ERROR(frameIndex_tooLarge); + + /* grow the buffer if required */ + if (fl->size == fl->capacity) { + /* exponential size increase for constant amortized runtime */ + size_t const newCapacity = fl->capacity * 2; + framelogEntry_t* const newEntries = (framelogEntry_t*)realloc(fl->entries, + sizeof(framelogEntry_t) * newCapacity); + + if (newEntries == NULL) return ERROR(memory_allocation); + + fl->entries = newEntries; + assert(newCapacity <= UINT_MAX); + fl->capacity = (U32)newCapacity; + } + + fl->entries[fl->size] = (framelogEntry_t){ + compressedSize, decompressedSize, checksum + }; + fl->size++; + + return 0; +} + +size_t ZSTD_seekable_endFrame(ZSTD_seekable_CStream* zcs, ZSTD_outBuffer* output) +{ + size_t const prevOutPos = output->pos; + /* end the frame */ + size_t ret = ZSTD_endStream(zcs->cstream, output); + + zcs->frameCSize += (U32)(output->pos - prevOutPos); + + /* need to flush before doing the rest */ + if (ret) return ret; + + /* frame done */ + + /* store the frame data for later */ + ret = ZSTD_seekable_logFrame( + &zcs->framelog, zcs->frameCSize, zcs->frameDSize, + zcs->framelog.checksumFlag + ? XXH64_digest(&zcs->xxhState) & 0xFFFFFFFFU + : 0); + if (ret) return ret; + + /* reset for the next frame */ + zcs->frameCSize = 0; + zcs->frameDSize = 0; + + ZSTD_CCtx_reset(zcs->cstream, ZSTD_reset_session_only); + if (zcs->framelog.checksumFlag) XXH64_reset(&zcs->xxhState, 0); + + return 0; +} + +size_t ZSTD_seekable_compressStream(ZSTD_seekable_CStream* zcs, ZSTD_outBuffer* output, ZSTD_inBuffer* input) +{ + const BYTE* const inBase = (const BYTE*) input->src + input->pos; + size_t inLen = input->size - input->pos; + + inLen = MIN(inLen, (size_t)(zcs->maxFrameSize - zcs->frameDSize)); + + /* if we haven't finished flushing the last frame, don't start writing a new one */ + if (inLen > 0) { + ZSTD_inBuffer inTmp = { inBase, inLen, 0 }; + size_t const prevOutPos = output->pos; + + size_t const ret = ZSTD_compressStream(zcs->cstream, output, &inTmp); + + if (zcs->framelog.checksumFlag) { + XXH64_update(&zcs->xxhState, inBase, inTmp.pos); + } + + zcs->frameCSize += (U32)(output->pos - prevOutPos); + zcs->frameDSize += (U32)inTmp.pos; + + input->pos += inTmp.pos; + + if (ZSTD_isError(ret)) return ret; + } + + if (zcs->maxFrameSize == zcs->frameDSize) { + /* log the frame and start over */ + size_t const ret = ZSTD_seekable_endFrame(zcs, output); + if (ZSTD_isError(ret)) return ret; + + /* get the client ready for the next frame */ + return (size_t)zcs->maxFrameSize; + } + + return (size_t)(zcs->maxFrameSize - zcs->frameDSize); +} + +static inline size_t ZSTD_seekable_seekTableSize(const ZSTD_frameLog* fl) +{ + size_t const sizePerFrame = 8 + (fl->checksumFlag?4:0); + size_t const seekTableLen = ZSTD_SKIPPABLEHEADERSIZE + + sizePerFrame * fl->size + + ZSTD_seekTableFooterSize; + + return seekTableLen; +} + +static inline size_t ZSTD_stwrite32(ZSTD_frameLog* fl, + ZSTD_outBuffer* output, U32 const value, + U32 const offset) +{ + if (fl->seekTablePos < offset + 4) { + BYTE tmp[4]; /* so that we can work with buffers too small to write a whole word to */ + size_t const lenWrite = + MIN(output->size - output->pos, offset + 4 - fl->seekTablePos); + MEM_writeLE32(tmp, value); + memcpy((BYTE*)output->dst + output->pos, + tmp + (fl->seekTablePos - offset), lenWrite); + output->pos += lenWrite; + fl->seekTablePos += (U32)lenWrite; + + if (lenWrite < 4) return ZSTD_seekable_seekTableSize(fl) - fl->seekTablePos; + } + return 0; +} + +size_t ZSTD_seekable_writeSeekTable(ZSTD_frameLog* fl, ZSTD_outBuffer* output) +{ + /* seekTableIndex: the current index in the table and + * seekTableSize: the amount of the table written so far + * + * This function is written this way so that if it has to return early + * because of a small buffer, it can keep going where it left off. + */ + + size_t const sizePerFrame = 8 + (fl->checksumFlag?4:0); + size_t const seekTableLen = ZSTD_seekable_seekTableSize(fl); + + CHECK_Z(ZSTD_stwrite32(fl, output, ZSTD_MAGIC_SKIPPABLE_START | 0xE, 0)); + assert(seekTableLen <= (size_t)UINT_MAX); + CHECK_Z(ZSTD_stwrite32(fl, output, (U32)seekTableLen - ZSTD_SKIPPABLEHEADERSIZE, 4)); + + while (fl->seekTableIndex < fl->size) { + unsigned long long const start = ZSTD_SKIPPABLEHEADERSIZE + sizePerFrame * fl->seekTableIndex; + assert(start + 8 <= UINT_MAX); + CHECK_Z(ZSTD_stwrite32(fl, output, + fl->entries[fl->seekTableIndex].cSize, + (U32)start + 0)); + + CHECK_Z(ZSTD_stwrite32(fl, output, + fl->entries[fl->seekTableIndex].dSize, + (U32)start + 4)); + + if (fl->checksumFlag) { + CHECK_Z(ZSTD_stwrite32( + fl, output, fl->entries[fl->seekTableIndex].checksum, + (U32)start + 8)); + } + + fl->seekTableIndex++; + } + + assert(seekTableLen <= UINT_MAX); + CHECK_Z(ZSTD_stwrite32(fl, output, fl->size, + (U32)seekTableLen - ZSTD_seekTableFooterSize)); + + if (output->size - output->pos < 1) return seekTableLen - fl->seekTablePos; + if (fl->seekTablePos < seekTableLen - 4) { + BYTE const sfd = (BYTE)((fl->checksumFlag) << 7); + + ((BYTE*)output->dst)[output->pos] = sfd; + output->pos++; + fl->seekTablePos++; + } + + CHECK_Z(ZSTD_stwrite32(fl, output, ZSTD_SEEKABLE_MAGICNUMBER, + (U32)seekTableLen - 4)); + + if (fl->seekTablePos != seekTableLen) return ERROR(GENERIC); + return 0; +} + +size_t ZSTD_seekable_endStream(ZSTD_seekable_CStream* zcs, ZSTD_outBuffer* output) +{ + if (!zcs->writingSeekTable && zcs->frameDSize) { + const size_t endFrame = ZSTD_seekable_endFrame(zcs, output); + if (ZSTD_isError(endFrame)) return endFrame; + /* return an accurate size hint */ + if (endFrame) return endFrame + ZSTD_seekable_seekTableSize(&zcs->framelog); + } + + zcs->writingSeekTable = 1; + + return ZSTD_seekable_writeSeekTable(&zcs->framelog, output); +} diff --git a/dependencies/zstd-1.5.0/contrib/seekable_format/zstdseek_decompress.c b/dependencies/zstd-1.5.0/contrib/seekable_format/zstdseek_decompress.c new file mode 100644 index 0000000..5eed024 --- /dev/null +++ b/dependencies/zstd-1.5.0/contrib/seekable_format/zstdseek_decompress.c @@ -0,0 +1,544 @@ +/* + * Copyright (c) 2017-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + +/* ********************************************************* +* Turn on Large Files support (>4GB) for 32-bit Linux/Unix +***********************************************************/ +#if !defined(__64BIT__) || defined(__MINGW32__) /* No point defining Large file for 64 bit but MinGW-w64 requires it */ +# if !defined(_FILE_OFFSET_BITS) +# define _FILE_OFFSET_BITS 64 /* turn off_t into a 64-bit type for ftello, fseeko */ +# endif +# if !defined(_LARGEFILE_SOURCE) /* obsolete macro, replaced with _FILE_OFFSET_BITS */ +# define _LARGEFILE_SOURCE 1 /* Large File Support extension (LFS) - fseeko, ftello */ +# endif +# if defined(_AIX) || defined(__hpux) +# define _LARGE_FILES /* Large file support on 32-bits AIX and HP-UX */ +# endif +#endif + +/* ************************************************************ +* Avoid fseek()'s 2GiB barrier with MSVC, macOS, *BSD, MinGW +***************************************************************/ +#if defined(_MSC_VER) && _MSC_VER >= 1400 +# define LONG_SEEK _fseeki64 +#elif !defined(__64BIT__) && (PLATFORM_POSIX_VERSION >= 200112L) /* No point defining Large file for 64 bit */ +# define LONG_SEEK fseeko +#elif defined(__MINGW32__) && !defined(__STRICT_ANSI__) && !defined(__NO_MINGW_LFS) && defined(__MSVCRT__) +# define LONG_SEEK fseeko64 +#elif defined(_WIN32) && !defined(__DJGPP__) +# include + static int LONG_SEEK(FILE* file, __int64 offset, int origin) { + LARGE_INTEGER off; + DWORD method; + off.QuadPart = offset; + if (origin == SEEK_END) + method = FILE_END; + else if (origin == SEEK_CUR) + method = FILE_CURRENT; + else + method = FILE_BEGIN; + + if (SetFilePointerEx((HANDLE) _get_osfhandle(_fileno(file)), off, NULL, method)) + return 0; + else + return -1; + } +#else +# define LONG_SEEK fseek +#endif + +#include /* malloc, free */ +#include /* FILE* */ +#include /* UNIT_MAX */ +#include + +#define XXH_STATIC_LINKING_ONLY +#include "xxhash.h" + +#define ZSTD_STATIC_LINKING_ONLY +#include "zstd.h" +#include "zstd_errors.h" +#include "mem.h" +#include "zstd_seekable.h" + +#undef ERROR +#define ERROR(name) ((size_t)-ZSTD_error_##name) + +#define CHECK_IO(f) { int const errcod = (f); if (errcod < 0) return ERROR(seekableIO); } + +#undef MIN +#undef MAX +#define MIN(a, b) ((a) < (b) ? (a) : (b)) +#define MAX(a, b) ((a) > (b) ? (a) : (b)) + +#define ZSTD_SEEKABLE_NO_OUTPUT_PROGRESS_MAX 16 + +/* Special-case callbacks for FILE* and in-memory modes, so that we can treat + * them the same way as the advanced API */ +static int ZSTD_seekable_read_FILE(void* opaque, void* buffer, size_t n) +{ + size_t const result = fread(buffer, 1, n, (FILE*)opaque); + if (result != n) { + return -1; + } + return 0; +} + +static int ZSTD_seekable_seek_FILE(void* opaque, long long offset, int origin) +{ + int const ret = LONG_SEEK((FILE*)opaque, offset, origin); + if (ret) return ret; + return fflush((FILE*)opaque); +} + +typedef struct { + const void *ptr; + size_t size; + size_t pos; +} buffWrapper_t; + +static int ZSTD_seekable_read_buff(void* opaque, void* buffer, size_t n) +{ + buffWrapper_t* const buff = (buffWrapper_t*)opaque; + assert(buff != NULL); + if (buff->pos + n > buff->size) return -1; + memcpy(buffer, (const BYTE*)buff->ptr + buff->pos, n); + buff->pos += n; + return 0; +} + +static int ZSTD_seekable_seek_buff(void* opaque, long long offset, int origin) +{ + buffWrapper_t* const buff = (buffWrapper_t*) opaque; + unsigned long long newOffset; + assert(buff != NULL); + switch (origin) { + case SEEK_SET: + assert(offset >= 0); + newOffset = (unsigned long long)offset; + break; + case SEEK_CUR: + newOffset = (unsigned long long)((long long)buff->pos + offset); + break; + case SEEK_END: + newOffset = (unsigned long long)((long long)buff->size + offset); + break; + default: + assert(0); /* not possible */ + } + if (newOffset > buff->size) { + return -1; + } + buff->pos = newOffset; + return 0; +} + +typedef struct { + U64 cOffset; + U64 dOffset; + U32 checksum; +} seekEntry_t; + +struct ZSTD_seekTable_s { + seekEntry_t* entries; + size_t tableLen; + + int checksumFlag; +}; + +#define SEEKABLE_BUFF_SIZE ZSTD_BLOCKSIZE_MAX + +struct ZSTD_seekable_s { + ZSTD_DStream* dstream; + ZSTD_seekTable seekTable; + ZSTD_seekable_customFile src; + + U64 decompressedOffset; + U32 curFrame; + + BYTE inBuff[SEEKABLE_BUFF_SIZE]; /* need to do our own input buffering */ + BYTE outBuff[SEEKABLE_BUFF_SIZE]; /* so we can efficiently decompress the + starts of chunks before we get to the + desired section */ + ZSTD_inBuffer in; /* maintain continuity across ZSTD_seekable_decompress operations */ + buffWrapper_t buffWrapper; /* for `src.opaque` in in-memory mode */ + + XXH64_state_t xxhState; +}; + +ZSTD_seekable* ZSTD_seekable_create(void) +{ + ZSTD_seekable* const zs = (ZSTD_seekable*)malloc(sizeof(ZSTD_seekable)); + if (zs == NULL) return NULL; + + /* also initializes stage to zsds_init */ + memset(zs, 0, sizeof(*zs)); + + zs->dstream = ZSTD_createDStream(); + if (zs->dstream == NULL) { + free(zs); + return NULL; + } + + return zs; +} + +size_t ZSTD_seekable_free(ZSTD_seekable* zs) +{ + if (zs == NULL) return 0; /* support free on null */ + ZSTD_freeDStream(zs->dstream); + free(zs->seekTable.entries); + free(zs); + return 0; +} + +ZSTD_seekTable* ZSTD_seekTable_create_fromSeekable(const ZSTD_seekable* zs) +{ + ZSTD_seekTable* const st = (ZSTD_seekTable*)malloc(sizeof(ZSTD_seekTable)); + if (st==NULL) return NULL; + + st->checksumFlag = zs->seekTable.checksumFlag; + st->tableLen = zs->seekTable.tableLen; + + /* Allocate an extra entry at the end to match logic of initial allocation */ + size_t const entriesSize = sizeof(seekEntry_t) * (zs->seekTable.tableLen + 1); + seekEntry_t* const entries = (seekEntry_t*)malloc(entriesSize); + if (entries==NULL) { + free(st); + return NULL; + } + + memcpy(entries, zs->seekTable.entries, entriesSize); + st->entries = entries; + return st; +} + +size_t ZSTD_seekTable_free(ZSTD_seekTable* st) +{ + if (st == NULL) return 0; /* support free on null */ + free(st->entries); + free(st); + return 0; +} + +/** ZSTD_seekable_offsetToFrameIndex() : + * Performs a binary search to find the last frame with a decompressed offset + * <= pos + * @return : the frame's index */ +unsigned ZSTD_seekable_offsetToFrameIndex(const ZSTD_seekable* zs, unsigned long long pos) +{ + return ZSTD_seekTable_offsetToFrameIndex(&zs->seekTable, pos); +} + +unsigned ZSTD_seekTable_offsetToFrameIndex(const ZSTD_seekTable* st, unsigned long long pos) +{ + U32 lo = 0; + U32 hi = (U32)st->tableLen; + assert(st->tableLen <= UINT_MAX); + + if (pos >= st->entries[st->tableLen].dOffset) { + return (unsigned)st->tableLen; + } + + while (lo + 1 < hi) { + U32 const mid = lo + ((hi - lo) >> 1); + if (st->entries[mid].dOffset <= pos) { + lo = mid; + } else { + hi = mid; + } + } + return lo; +} + +unsigned ZSTD_seekable_getNumFrames(const ZSTD_seekable* zs) +{ + return ZSTD_seekTable_getNumFrames(&zs->seekTable); +} + +unsigned ZSTD_seekTable_getNumFrames(const ZSTD_seekTable* st) +{ + assert(st->tableLen <= UINT_MAX); + return (unsigned)st->tableLen; +} + +unsigned long long ZSTD_seekable_getFrameCompressedOffset(const ZSTD_seekable* zs, unsigned frameIndex) +{ + return ZSTD_seekTable_getFrameCompressedOffset(&zs->seekTable, frameIndex); +} + +unsigned long long ZSTD_seekTable_getFrameCompressedOffset(const ZSTD_seekTable* st, unsigned frameIndex) +{ + if (frameIndex >= st->tableLen) return ZSTD_SEEKABLE_FRAMEINDEX_TOOLARGE; + return st->entries[frameIndex].cOffset; +} + +unsigned long long ZSTD_seekable_getFrameDecompressedOffset(const ZSTD_seekable* zs, unsigned frameIndex) +{ + return ZSTD_seekTable_getFrameDecompressedOffset(&zs->seekTable, frameIndex); +} + +unsigned long long ZSTD_seekTable_getFrameDecompressedOffset(const ZSTD_seekTable* st, unsigned frameIndex) +{ + if (frameIndex >= st->tableLen) return ZSTD_SEEKABLE_FRAMEINDEX_TOOLARGE; + return st->entries[frameIndex].dOffset; +} + +size_t ZSTD_seekable_getFrameCompressedSize(const ZSTD_seekable* zs, unsigned frameIndex) +{ + return ZSTD_seekTable_getFrameCompressedSize(&zs->seekTable, frameIndex); +} + +size_t ZSTD_seekTable_getFrameCompressedSize(const ZSTD_seekTable* st, unsigned frameIndex) +{ + if (frameIndex >= st->tableLen) return ERROR(frameIndex_tooLarge); + return st->entries[frameIndex + 1].cOffset - + st->entries[frameIndex].cOffset; +} + +size_t ZSTD_seekable_getFrameDecompressedSize(const ZSTD_seekable* zs, unsigned frameIndex) +{ + return ZSTD_seekTable_getFrameDecompressedSize(&zs->seekTable, frameIndex); +} + +size_t ZSTD_seekTable_getFrameDecompressedSize(const ZSTD_seekTable* st, unsigned frameIndex) +{ + if (frameIndex > st->tableLen) return ERROR(frameIndex_tooLarge); + return st->entries[frameIndex + 1].dOffset - + st->entries[frameIndex].dOffset; +} + +static size_t ZSTD_seekable_loadSeekTable(ZSTD_seekable* zs) +{ + int checksumFlag; + ZSTD_seekable_customFile src = zs->src; + /* read the footer, fixed size */ + CHECK_IO(src.seek(src.opaque, -(int)ZSTD_seekTableFooterSize, SEEK_END)); + CHECK_IO(src.read(src.opaque, zs->inBuff, ZSTD_seekTableFooterSize)); + + if (MEM_readLE32(zs->inBuff + 5) != ZSTD_SEEKABLE_MAGICNUMBER) { + return ERROR(prefix_unknown); + } + + { BYTE const sfd = zs->inBuff[4]; + checksumFlag = sfd >> 7; + + /* check reserved bits */ + if ((sfd >> 2) & 0x1f) { + return ERROR(corruption_detected); + } } + + { U32 const numFrames = MEM_readLE32(zs->inBuff); + U32 const sizePerEntry = 8 + (checksumFlag?4:0); + U32 const tableSize = sizePerEntry * numFrames; + U32 const frameSize = tableSize + ZSTD_seekTableFooterSize + ZSTD_SKIPPABLEHEADERSIZE; + + U32 remaining = frameSize - ZSTD_seekTableFooterSize; /* don't need to re-read footer */ + { U32 const toRead = MIN(remaining, SEEKABLE_BUFF_SIZE); + CHECK_IO(src.seek(src.opaque, -(S64)frameSize, SEEK_END)); + CHECK_IO(src.read(src.opaque, zs->inBuff, toRead)); + remaining -= toRead; + } + + if (MEM_readLE32(zs->inBuff) != (ZSTD_MAGIC_SKIPPABLE_START | 0xE)) { + return ERROR(prefix_unknown); + } + if (MEM_readLE32(zs->inBuff+4) + ZSTD_SKIPPABLEHEADERSIZE != frameSize) { + return ERROR(prefix_unknown); + } + + { /* Allocate an extra entry at the end so that we can do size + * computations on the last element without special case */ + seekEntry_t* const entries = (seekEntry_t*)malloc(sizeof(seekEntry_t) * (numFrames + 1)); + + U32 idx = 0; + U32 pos = 8; + + U64 cOffset = 0; + U64 dOffset = 0; + + if (entries == NULL) return ERROR(memory_allocation); + + /* compute cumulative positions */ + for (; idx < numFrames; idx++) { + if (pos + sizePerEntry > SEEKABLE_BUFF_SIZE) { + U32 const offset = SEEKABLE_BUFF_SIZE - pos; + U32 const toRead = MIN(remaining, SEEKABLE_BUFF_SIZE - offset); + memmove(zs->inBuff, zs->inBuff + pos, offset); /* move any data we haven't read yet */ + CHECK_IO(src.read(src.opaque, zs->inBuff+offset, toRead)); + remaining -= toRead; + pos = 0; + } + entries[idx].cOffset = cOffset; + entries[idx].dOffset = dOffset; + + cOffset += MEM_readLE32(zs->inBuff + pos); + pos += 4; + dOffset += MEM_readLE32(zs->inBuff + pos); + pos += 4; + if (checksumFlag) { + entries[idx].checksum = MEM_readLE32(zs->inBuff + pos); + pos += 4; + } + } + entries[numFrames].cOffset = cOffset; + entries[numFrames].dOffset = dOffset; + + zs->seekTable.entries = entries; + zs->seekTable.tableLen = numFrames; + zs->seekTable.checksumFlag = checksumFlag; + return 0; + } + } +} + +size_t ZSTD_seekable_initBuff(ZSTD_seekable* zs, const void* src, size_t srcSize) +{ + zs->buffWrapper = (buffWrapper_t){src, srcSize, 0}; + { ZSTD_seekable_customFile srcFile = {&zs->buffWrapper, + &ZSTD_seekable_read_buff, + &ZSTD_seekable_seek_buff}; + return ZSTD_seekable_initAdvanced(zs, srcFile); } +} + +size_t ZSTD_seekable_initFile(ZSTD_seekable* zs, FILE* src) +{ + ZSTD_seekable_customFile srcFile = {src, &ZSTD_seekable_read_FILE, + &ZSTD_seekable_seek_FILE}; + return ZSTD_seekable_initAdvanced(zs, srcFile); +} + +size_t ZSTD_seekable_initAdvanced(ZSTD_seekable* zs, ZSTD_seekable_customFile src) +{ + zs->src = src; + + { const size_t seekTableInit = ZSTD_seekable_loadSeekTable(zs); + if (ZSTD_isError(seekTableInit)) return seekTableInit; } + + zs->decompressedOffset = (U64)-1; + zs->curFrame = (U32)-1; + + { const size_t dstreamInit = ZSTD_initDStream(zs->dstream); + if (ZSTD_isError(dstreamInit)) return dstreamInit; } + return 0; +} + +size_t ZSTD_seekable_decompress(ZSTD_seekable* zs, void* dst, size_t len, unsigned long long offset) +{ + unsigned long long const eos = zs->seekTable.entries[zs->seekTable.tableLen].dOffset; + if (offset + len > eos) { + len = eos - offset; + } + + U32 targetFrame = ZSTD_seekable_offsetToFrameIndex(zs, offset); + U32 noOutputProgressCount = 0; + size_t srcBytesRead = 0; + do { + /* check if we can continue from a previous decompress job */ + if (targetFrame != zs->curFrame || offset != zs->decompressedOffset) { + zs->decompressedOffset = zs->seekTable.entries[targetFrame].dOffset; + zs->curFrame = targetFrame; + + assert(zs->seekTable.entries[targetFrame].cOffset < LLONG_MAX); + CHECK_IO(zs->src.seek(zs->src.opaque, + (long long)zs->seekTable.entries[targetFrame].cOffset, + SEEK_SET)); + zs->in = (ZSTD_inBuffer){zs->inBuff, 0, 0}; + XXH64_reset(&zs->xxhState, 0); + ZSTD_DCtx_reset(zs->dstream, ZSTD_reset_session_only); + if (zs->buffWrapper.size && srcBytesRead > zs->buffWrapper.size) { + return ERROR(seekableIO); + } + } + + while (zs->decompressedOffset < offset + len) { + size_t toRead; + ZSTD_outBuffer outTmp; + size_t prevOutPos; + size_t prevInPos; + size_t forwardProgress; + if (zs->decompressedOffset < offset) { + /* dummy decompressions until we get to the target offset */ + outTmp = (ZSTD_outBuffer){zs->outBuff, MIN(SEEKABLE_BUFF_SIZE, offset - zs->decompressedOffset), 0}; + } else { + outTmp = (ZSTD_outBuffer){dst, len, zs->decompressedOffset - offset}; + } + + prevOutPos = outTmp.pos; + prevInPos = zs->in.pos; + toRead = ZSTD_decompressStream(zs->dstream, &outTmp, &zs->in); + if (ZSTD_isError(toRead)) { + return toRead; + } + + if (zs->seekTable.checksumFlag) { + XXH64_update(&zs->xxhState, (BYTE*)outTmp.dst + prevOutPos, + outTmp.pos - prevOutPos); + } + forwardProgress = outTmp.pos - prevOutPos; + if (forwardProgress == 0) { + if (noOutputProgressCount++ > ZSTD_SEEKABLE_NO_OUTPUT_PROGRESS_MAX) { + return ERROR(seekableIO); + } + } else { + noOutputProgressCount = 0; + } + zs->decompressedOffset += forwardProgress; + srcBytesRead += zs->in.pos - prevInPos; + + if (toRead == 0) { + /* frame complete */ + + /* verify checksum */ + if (zs->seekTable.checksumFlag && + (XXH64_digest(&zs->xxhState) & 0xFFFFFFFFU) != + zs->seekTable.entries[targetFrame].checksum) { + return ERROR(corruption_detected); + } + + if (zs->decompressedOffset < offset + len) { + /* go back to the start and force a reset of the stream */ + targetFrame = ZSTD_seekable_offsetToFrameIndex(zs, zs->decompressedOffset); + /* in this case it will fail later with corruption_detected, since last block does not have checksum */ + assert(targetFrame != zs->seekTable.tableLen); + } + break; + } + + /* read in more data if we're done with this buffer */ + if (zs->in.pos == zs->in.size) { + toRead = MIN(toRead, SEEKABLE_BUFF_SIZE); + CHECK_IO(zs->src.read(zs->src.opaque, zs->inBuff, toRead)); + zs->in.size = toRead; + zs->in.pos = 0; + } + } /* while (zs->decompressedOffset < offset + len) */ + } while (zs->decompressedOffset != offset + len); + + return len; +} + +size_t ZSTD_seekable_decompressFrame(ZSTD_seekable* zs, void* dst, size_t dstSize, unsigned frameIndex) +{ + if (frameIndex >= zs->seekTable.tableLen) { + return ERROR(frameIndex_tooLarge); + } + + { size_t const decompressedSize = + zs->seekTable.entries[frameIndex + 1].dOffset - + zs->seekTable.entries[frameIndex].dOffset; + if (dstSize < decompressedSize) { + return ERROR(dstSize_tooSmall); + } + return ZSTD_seekable_decompress( + zs, dst, decompressedSize, + zs->seekTable.entries[frameIndex].dOffset); + } +} diff --git a/dependencies/zstd-1.5.0/contrib/snap/snapcraft.yaml b/dependencies/zstd-1.5.0/contrib/snap/snapcraft.yaml new file mode 100644 index 0000000..0a77946 --- /dev/null +++ b/dependencies/zstd-1.5.0/contrib/snap/snapcraft.yaml @@ -0,0 +1,28 @@ +name: zstd +version: git +summary: Zstandard - Fast real-time compression algorithm +description: | + Zstandard, or zstd as short version, is a fast lossless compression + algorithm, targeting real-time compression scenarios at zlib-level and better + compression ratios. It's backed by a very fast entropy stage, provided by + Huff0 and FSE library + +grade: devel # must be 'stable' to release into candidate/stable channels +confinement: devmode # use 'strict' once you have the right plugs and slots + +apps: + zstd: + command: usr/local/bin/zstd + plugs: [home, removable-media] + zstdgrep: + command: usr/local/bin/zstdgrep + plugs: [home, removable-media] + zstdless: + command: usr/local/bin/zstdless + plugs: [home, removable-media] + +parts: + zstd: + source: . + plugin: make + build-packages: [g++] diff --git a/dependencies/zstd-1.5.0/doc/README.md b/dependencies/zstd-1.5.0/doc/README.md new file mode 100644 index 0000000..bb7a3e4 --- /dev/null +++ b/dependencies/zstd-1.5.0/doc/README.md @@ -0,0 +1,25 @@ +Zstandard Documentation +======================= + +This directory contains material defining the Zstandard format, +as well as detailed instructions to use `zstd` library. + +__`zstd_manual.html`__ : Documentation of `zstd.h` API, in html format. +Click on this link: [http://zstd.net/zstd_manual.html](http://zstd.net/zstd_manual.html) +to display documentation of latest release in readable format within a browser. + +__`zstd_compression_format.md`__ : This document defines the Zstandard compression format. +Compliant decoders must adhere to this document, +and compliant encoders must generate data that follows it. + +Should you look for resources to develop your own port of Zstandard algorithm, +you may find the following resources useful : + +__`educational_decoder`__ : This directory contains an implementation of a Zstandard decoder, +compliant with the Zstandard compression format. +It can be used, for example, to better understand the format, +or as the basis for a separate implementation of Zstandard decoder. + +[__`decode_corpus`__](https://github.com/facebook/zstd/tree/dev/tests#decodecorpus---tool-to-generate-zstandard-frames-for-decoder-testing) : +This tool, stored in `/tests` directory, is able to generate random valid frames, +which is useful if you wish to test your decoder and verify it fully supports the specification. diff --git a/dependencies/zstd-1.5.0/doc/educational_decoder/.gitignore b/dependencies/zstd-1.5.0/doc/educational_decoder/.gitignore new file mode 100644 index 0000000..b801306 --- /dev/null +++ b/dependencies/zstd-1.5.0/doc/educational_decoder/.gitignore @@ -0,0 +1,2 @@ +# Build artifacts +harness diff --git a/dependencies/zstd-1.5.0/doc/educational_decoder/Makefile b/dependencies/zstd-1.5.0/doc/educational_decoder/Makefile new file mode 100644 index 0000000..a9c601e --- /dev/null +++ b/dependencies/zstd-1.5.0/doc/educational_decoder/Makefile @@ -0,0 +1,62 @@ +# ################################################################ +# Copyright (c) Yann Collet, Facebook, Inc. +# All rights reserved. +# +# This source code is licensed under both the BSD-style license (found in the +# LICENSE file in the root directory of this source tree) and the GPLv2 (found +# in the COPYING file in the root directory of this source tree). +# You may select, at your option, one of the above-listed licenses. +# ################################################################ + +ZSTD ?= zstd # note: requires zstd installation on local system + +UNAME?= $(shell uname) +ifeq ($(UNAME), SunOS) +DIFF ?= gdiff +else +DIFF ?= diff +endif + +HARNESS_FILES=*.c + +MULTITHREAD_LDFLAGS = -pthread +DEBUGFLAGS= -g -DZSTD_DEBUG=1 +CPPFLAGS += -I$(ZSTDDIR) -I$(ZSTDDIR)/common -I$(ZSTDDIR)/compress \ + -I$(ZSTDDIR)/dictBuilder -I$(ZSTDDIR)/deprecated -I$(PRGDIR) +CFLAGS ?= -O2 +CFLAGS += -Wall -Wextra -Wcast-qual -Wcast-align -Wshadow \ + -Wstrict-aliasing=1 -Wswitch-enum \ + -Wredundant-decls -Wstrict-prototypes -Wundef \ + -Wvla -Wformat=2 -Winit-self -Wfloat-equal -Wwrite-strings \ + -std=c99 +CFLAGS += $(DEBUGFLAGS) +CFLAGS += $(MOREFLAGS) +FLAGS = $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) $(MULTITHREAD_LDFLAGS) + +harness: $(HARNESS_FILES) + $(CC) $(FLAGS) $^ -o $@ + +clean: + @$(RM) harness *.o + @$(RM) -rf harness.dSYM # MacOS specific + +test: harness + # + # Testing single-file decompression with educational decoder + # + @$(ZSTD) -f README.md -o tmp.zst + @./harness tmp.zst tmp + @$(DIFF) -s tmp README.md + @$(RM) tmp* + # + # Testing dictionary decompression with education decoder + # + # note : files are presented multiple for training, to reach minimum threshold + @$(ZSTD) --train harness.c zstd_decompress.c zstd_decompress.h README.md \ + harness.c zstd_decompress.c zstd_decompress.h README.md \ + harness.c zstd_decompress.c zstd_decompress.h README.md \ + -o dictionary + @$(ZSTD) -f README.md -D dictionary -o tmp.zst + @./harness tmp.zst tmp dictionary + @$(DIFF) -s tmp README.md + @$(RM) tmp* dictionary diff --git a/dependencies/zstd-1.5.0/doc/educational_decoder/README.md b/dependencies/zstd-1.5.0/doc/educational_decoder/README.md new file mode 100644 index 0000000..c89451c --- /dev/null +++ b/dependencies/zstd-1.5.0/doc/educational_decoder/README.md @@ -0,0 +1,36 @@ +Educational Decoder +=================== + +`zstd_decompress.c` is a self-contained implementation in C99 of a decoder, +according to the [Zstandard format specification]. +While it does not implement as many features as the reference decoder, +such as the streaming API or content checksums, it is written to be easy to +follow and understand, to help understand how the Zstandard format works. +It's laid out to match the [format specification], +so it can be used to understand how complex segments could be implemented. +It also contains implementations of Huffman and FSE table decoding. + +[Zstandard format specification]: https://github.com/facebook/zstd/blob/dev/doc/zstd_compression_format.md +[format specification]: https://github.com/facebook/zstd/blob/dev/doc/zstd_compression_format.md + +While the library's primary objective is code clarity, +it also happens to compile into a small object file. +The object file can be made even smaller by removing error messages, +using the macro directive `ZDEC_NO_MESSAGE` at compilation time. +This can be reduced even further by foregoing dictionary support, +by defining `ZDEC_NO_DICTIONARY`. + +`harness.c` provides a simple test harness around the decoder: + + harness [dictionary] + +As an additional resource to be used with this decoder, +see the `decodecorpus` tool in the [tests] directory. +It generates valid Zstandard frames that can be used to verify +a Zstandard decoder implementation. +Note that to use the tool to verify this decoder implementation, +the --content-size flag should be set, +as this decoder does not handle streaming decoding, +and so it must know the decompressed size in advance. + +[tests]: https://github.com/facebook/zstd/blob/dev/tests/ diff --git a/dependencies/zstd-1.5.0/doc/educational_decoder/harness.c b/dependencies/zstd-1.5.0/doc/educational_decoder/harness.c new file mode 100644 index 0000000..935f60d --- /dev/null +++ b/dependencies/zstd-1.5.0/doc/educational_decoder/harness.c @@ -0,0 +1,119 @@ +/* + * Copyright (c) Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + +#include +#include + +#include "zstd_decompress.h" + +typedef unsigned char u8; + +// If the data doesn't have decompressed size with it, fallback on assuming the +// compression ratio is at most 16 +#define MAX_COMPRESSION_RATIO (16) + +// Protect against allocating too much memory for output +#define MAX_OUTPUT_SIZE ((size_t)1024 * 1024 * 1024) + +// Error message then exit +#define ERR_OUT(...) { fprintf(stderr, __VA_ARGS__); exit(1); } + + +typedef struct { + u8* address; + size_t size; +} buffer_s; + +static void freeBuffer(buffer_s b) { free(b.address); } + +static buffer_s read_file(const char *path) +{ + FILE* const f = fopen(path, "rb"); + if (!f) ERR_OUT("failed to open file %s \n", path); + + fseek(f, 0L, SEEK_END); + size_t const size = (size_t)ftell(f); + rewind(f); + + void* const ptr = malloc(size); + if (!ptr) ERR_OUT("failed to allocate memory to hold %s \n", path); + + size_t const read = fread(ptr, 1, size, f); + if (read != size) ERR_OUT("error while reading file %s \n", path); + + fclose(f); + buffer_s const b = { ptr, size }; + return b; +} + +static void write_file(const char* path, const u8* ptr, size_t size) +{ + FILE* const f = fopen(path, "wb"); + if (!f) ERR_OUT("failed to open file %s \n", path); + + size_t written = 0; + while (written < size) { + written += fwrite(ptr+written, 1, size, f); + if (ferror(f)) ERR_OUT("error while writing file %s\n", path); + } + + fclose(f); +} + +int main(int argc, char **argv) +{ + if (argc < 3) + ERR_OUT("usage: %s [dictionary] \n", argv[0]); + + buffer_s const input = read_file(argv[1]); + + buffer_s dict = { NULL, 0 }; + if (argc >= 4) { + dict = read_file(argv[3]); + } + + size_t out_capacity = ZSTD_get_decompressed_size(input.address, input.size); + if (out_capacity == (size_t)-1) { + out_capacity = MAX_COMPRESSION_RATIO * input.size; + fprintf(stderr, "WARNING: Compressed data does not contain " + "decompressed size, going to assume the compression " + "ratio is at most %d (decompressed size of at most " + "%u) \n", + MAX_COMPRESSION_RATIO, (unsigned)out_capacity); + } + if (out_capacity > MAX_OUTPUT_SIZE) + ERR_OUT("Required output size too large for this implementation \n"); + + u8* const output = malloc(out_capacity); + if (!output) ERR_OUT("failed to allocate memory \n"); + + dictionary_t* const parsed_dict = create_dictionary(); + if (dict.size) { +#if defined (ZDEC_NO_DICTIONARY) + printf("dict.size = %zu \n", dict.size); + ERR_OUT("no dictionary support \n"); +#else + parse_dictionary(parsed_dict, dict.address, dict.size); +#endif + } + size_t const decompressed_size = + ZSTD_decompress_with_dict(output, out_capacity, + input.address, input.size, + parsed_dict); + + free_dictionary(parsed_dict); + + write_file(argv[2], output, decompressed_size); + + freeBuffer(input); + freeBuffer(dict); + free(output); + return 0; +} diff --git a/dependencies/zstd-1.5.0/doc/educational_decoder/zstd_decompress.c b/dependencies/zstd-1.5.0/doc/educational_decoder/zstd_decompress.c new file mode 100644 index 0000000..62e6f0d --- /dev/null +++ b/dependencies/zstd-1.5.0/doc/educational_decoder/zstd_decompress.c @@ -0,0 +1,2320 @@ +/* + * Copyright (c) Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + +/// Zstandard educational decoder implementation +/// See https://github.com/facebook/zstd/blob/dev/doc/zstd_compression_format.md + +#include // uint8_t, etc. +#include // malloc, free, exit +#include // fprintf +#include // memset, memcpy +#include "zstd_decompress.h" + + +/******* IMPORTANT CONSTANTS *********************************************/ + +// Zstandard frame +// "Magic_Number +// 4 Bytes, little-endian format. Value : 0xFD2FB528" +#define ZSTD_MAGIC_NUMBER 0xFD2FB528U + +// The size of `Block_Content` is limited by `Block_Maximum_Size`, +#define ZSTD_BLOCK_SIZE_MAX ((size_t)128 * 1024) + +// literal blocks can't be larger than their block +#define MAX_LITERALS_SIZE ZSTD_BLOCK_SIZE_MAX + + +/******* UTILITY MACROS AND TYPES *********************************************/ +#define MAX(a, b) ((a) > (b) ? (a) : (b)) +#define MIN(a, b) ((a) < (b) ? (a) : (b)) + +#if defined(ZDEC_NO_MESSAGE) +#define MESSAGE(...) +#else +#define MESSAGE(...) fprintf(stderr, "" __VA_ARGS__) +#endif + +/// This decoder calls exit(1) when it encounters an error, however a production +/// library should propagate error codes +#define ERROR(s) \ + do { \ + MESSAGE("Error: %s\n", s); \ + exit(1); \ + } while (0) +#define INP_SIZE() \ + ERROR("Input buffer smaller than it should be or input is " \ + "corrupted") +#define OUT_SIZE() ERROR("Output buffer too small for output") +#define CORRUPTION() ERROR("Corruption detected while decompressing") +#define BAD_ALLOC() ERROR("Memory allocation error") +#define IMPOSSIBLE() ERROR("An impossibility has occurred") + +typedef uint8_t u8; +typedef uint16_t u16; +typedef uint32_t u32; +typedef uint64_t u64; + +typedef int8_t i8; +typedef int16_t i16; +typedef int32_t i32; +typedef int64_t i64; +/******* END UTILITY MACROS AND TYPES *****************************************/ + +/******* IMPLEMENTATION PRIMITIVE PROTOTYPES **********************************/ +/// The implementations for these functions can be found at the bottom of this +/// file. They implement low-level functionality needed for the higher level +/// decompression functions. + +/*** IO STREAM OPERATIONS *************/ + +/// ostream_t/istream_t are used to wrap the pointers/length data passed into +/// ZSTD_decompress, so that all IO operations are safely bounds checked +/// They are written/read forward, and reads are treated as little-endian +/// They should be used opaquely to ensure safety +typedef struct { + u8 *ptr; + size_t len; +} ostream_t; + +typedef struct { + const u8 *ptr; + size_t len; + + // Input often reads a few bits at a time, so maintain an internal offset + int bit_offset; +} istream_t; + +/// The following two functions are the only ones that allow the istream to be +/// non-byte aligned + +/// Reads `num` bits from a bitstream, and updates the internal offset +static inline u64 IO_read_bits(istream_t *const in, const int num_bits); +/// Backs-up the stream by `num` bits so they can be read again +static inline void IO_rewind_bits(istream_t *const in, const int num_bits); +/// If the remaining bits in a byte will be unused, advance to the end of the +/// byte +static inline void IO_align_stream(istream_t *const in); + +/// Write the given byte into the output stream +static inline void IO_write_byte(ostream_t *const out, u8 symb); + +/// Returns the number of bytes left to be read in this stream. The stream must +/// be byte aligned. +static inline size_t IO_istream_len(const istream_t *const in); + +/// Advances the stream by `len` bytes, and returns a pointer to the chunk that +/// was skipped. The stream must be byte aligned. +static inline const u8 *IO_get_read_ptr(istream_t *const in, size_t len); +/// Advances the stream by `len` bytes, and returns a pointer to the chunk that +/// was skipped so it can be written to. +static inline u8 *IO_get_write_ptr(ostream_t *const out, size_t len); + +/// Advance the inner state by `len` bytes. The stream must be byte aligned. +static inline void IO_advance_input(istream_t *const in, size_t len); + +/// Returns an `ostream_t` constructed from the given pointer and length. +static inline ostream_t IO_make_ostream(u8 *out, size_t len); +/// Returns an `istream_t` constructed from the given pointer and length. +static inline istream_t IO_make_istream(const u8 *in, size_t len); + +/// Returns an `istream_t` with the same base as `in`, and length `len`. +/// Then, advance `in` to account for the consumed bytes. +/// `in` must be byte aligned. +static inline istream_t IO_make_sub_istream(istream_t *const in, size_t len); +/*** END IO STREAM OPERATIONS *********/ + +/*** BITSTREAM OPERATIONS *************/ +/// Read `num` bits (up to 64) from `src + offset`, where `offset` is in bits, +/// and return them interpreted as a little-endian unsigned integer. +static inline u64 read_bits_LE(const u8 *src, const int num_bits, + const size_t offset); + +/// Read bits from the end of a HUF or FSE bitstream. `offset` is in bits, so +/// it updates `offset` to `offset - bits`, and then reads `bits` bits from +/// `src + offset`. If the offset becomes negative, the extra bits at the +/// bottom are filled in with `0` bits instead of reading from before `src`. +static inline u64 STREAM_read_bits(const u8 *src, const int bits, + i64 *const offset); +/*** END BITSTREAM OPERATIONS *********/ + +/*** BIT COUNTING OPERATIONS **********/ +/// Returns the index of the highest set bit in `num`, or `-1` if `num == 0` +static inline int highest_set_bit(const u64 num); +/*** END BIT COUNTING OPERATIONS ******/ + +/*** HUFFMAN PRIMITIVES ***************/ +// Table decode method uses exponential memory, so we need to limit depth +#define HUF_MAX_BITS (16) + +// Limit the maximum number of symbols to 256 so we can store a symbol in a byte +#define HUF_MAX_SYMBS (256) + +/// Structure containing all tables necessary for efficient Huffman decoding +typedef struct { + u8 *symbols; + u8 *num_bits; + int max_bits; +} HUF_dtable; + +/// Decode a single symbol and read in enough bits to refresh the state +static inline u8 HUF_decode_symbol(const HUF_dtable *const dtable, + u16 *const state, const u8 *const src, + i64 *const offset); +/// Read in a full state's worth of bits to initialize it +static inline void HUF_init_state(const HUF_dtable *const dtable, + u16 *const state, const u8 *const src, + i64 *const offset); + +/// Decompresses a single Huffman stream, returns the number of bytes decoded. +/// `src_len` must be the exact length of the Huffman-coded block. +static size_t HUF_decompress_1stream(const HUF_dtable *const dtable, + ostream_t *const out, istream_t *const in); +/// Same as previous but decodes 4 streams, formatted as in the Zstandard +/// specification. +/// `src_len` must be the exact length of the Huffman-coded block. +static size_t HUF_decompress_4stream(const HUF_dtable *const dtable, + ostream_t *const out, istream_t *const in); + +/// Initialize a Huffman decoding table using the table of bit counts provided +static void HUF_init_dtable(HUF_dtable *const table, const u8 *const bits, + const int num_symbs); +/// Initialize a Huffman decoding table using the table of weights provided +/// Weights follow the definition provided in the Zstandard specification +static void HUF_init_dtable_usingweights(HUF_dtable *const table, + const u8 *const weights, + const int num_symbs); + +/// Free the malloc'ed parts of a decoding table +static void HUF_free_dtable(HUF_dtable *const dtable); +/*** END HUFFMAN PRIMITIVES ***********/ + +/*** FSE PRIMITIVES *******************/ +/// For more description of FSE see +/// https://github.com/Cyan4973/FiniteStateEntropy/ + +// FSE table decoding uses exponential memory, so limit the maximum accuracy +#define FSE_MAX_ACCURACY_LOG (15) +// Limit the maximum number of symbols so they can be stored in a single byte +#define FSE_MAX_SYMBS (256) + +/// The tables needed to decode FSE encoded streams +typedef struct { + u8 *symbols; + u8 *num_bits; + u16 *new_state_base; + int accuracy_log; +} FSE_dtable; + +/// Return the symbol for the current state +static inline u8 FSE_peek_symbol(const FSE_dtable *const dtable, + const u16 state); +/// Read the number of bits necessary to update state, update, and shift offset +/// back to reflect the bits read +static inline void FSE_update_state(const FSE_dtable *const dtable, + u16 *const state, const u8 *const src, + i64 *const offset); + +/// Combine peek and update: decode a symbol and update the state +static inline u8 FSE_decode_symbol(const FSE_dtable *const dtable, + u16 *const state, const u8 *const src, + i64 *const offset); + +/// Read bits from the stream to initialize the state and shift offset back +static inline void FSE_init_state(const FSE_dtable *const dtable, + u16 *const state, const u8 *const src, + i64 *const offset); + +/// Decompress two interleaved bitstreams (e.g. compressed Huffman weights) +/// using an FSE decoding table. `src_len` must be the exact length of the +/// block. +static size_t FSE_decompress_interleaved2(const FSE_dtable *const dtable, + ostream_t *const out, + istream_t *const in); + +/// Initialize a decoding table using normalized frequencies. +static void FSE_init_dtable(FSE_dtable *const dtable, + const i16 *const norm_freqs, const int num_symbs, + const int accuracy_log); + +/// Decode an FSE header as defined in the Zstandard format specification and +/// use the decoded frequencies to initialize a decoding table. +static void FSE_decode_header(FSE_dtable *const dtable, istream_t *const in, + const int max_accuracy_log); + +/// Initialize an FSE table that will always return the same symbol and consume +/// 0 bits per symbol, to be used for RLE mode in sequence commands +static void FSE_init_dtable_rle(FSE_dtable *const dtable, const u8 symb); + +/// Free the malloc'ed parts of a decoding table +static void FSE_free_dtable(FSE_dtable *const dtable); +/*** END FSE PRIMITIVES ***************/ + +/******* END IMPLEMENTATION PRIMITIVE PROTOTYPES ******************************/ + +/******* ZSTD HELPER STRUCTS AND PROTOTYPES ***********************************/ + +/// A small structure that can be reused in various places that need to access +/// frame header information +typedef struct { + // The size of window that we need to be able to contiguously store for + // references + size_t window_size; + // The total output size of this compressed frame + size_t frame_content_size; + + // The dictionary id if this frame uses one + u32 dictionary_id; + + // Whether or not the content of this frame has a checksum + int content_checksum_flag; + // Whether or not the output for this frame is in a single segment + int single_segment_flag; +} frame_header_t; + +/// The context needed to decode blocks in a frame +typedef struct { + frame_header_t header; + + // The total amount of data available for backreferences, to determine if an + // offset too large to be correct + size_t current_total_output; + + const u8 *dict_content; + size_t dict_content_len; + + // Entropy encoding tables so they can be repeated by future blocks instead + // of retransmitting + HUF_dtable literals_dtable; + FSE_dtable ll_dtable; + FSE_dtable ml_dtable; + FSE_dtable of_dtable; + + // The last 3 offsets for the special "repeat offsets". + u64 previous_offsets[3]; +} frame_context_t; + +/// The decoded contents of a dictionary so that it doesn't have to be repeated +/// for each frame that uses it +struct dictionary_s { + // Entropy tables + HUF_dtable literals_dtable; + FSE_dtable ll_dtable; + FSE_dtable ml_dtable; + FSE_dtable of_dtable; + + // Raw content for backreferences + u8 *content; + size_t content_size; + + // Offset history to prepopulate the frame's history + u64 previous_offsets[3]; + + u32 dictionary_id; +}; + +/// A tuple containing the parts necessary to decode and execute a ZSTD sequence +/// command +typedef struct { + u32 literal_length; + u32 match_length; + u32 offset; +} sequence_command_t; + +/// The decoder works top-down, starting at the high level like Zstd frames, and +/// working down to lower more technical levels such as blocks, literals, and +/// sequences. The high-level functions roughly follow the outline of the +/// format specification: +/// https://github.com/facebook/zstd/blob/dev/doc/zstd_compression_format.md + +/// Before the implementation of each high-level function declared here, the +/// prototypes for their helper functions are defined and explained + +/// Decode a single Zstd frame, or error if the input is not a valid frame. +/// Accepts a dict argument, which may be NULL indicating no dictionary. +/// See +/// https://github.com/facebook/zstd/blob/dev/doc/zstd_compression_format.md#frame-concatenation +static void decode_frame(ostream_t *const out, istream_t *const in, + const dictionary_t *const dict); + +// Decode data in a compressed block +static void decompress_block(frame_context_t *const ctx, ostream_t *const out, + istream_t *const in); + +// Decode the literals section of a block +static size_t decode_literals(frame_context_t *const ctx, istream_t *const in, + u8 **const literals); + +// Decode the sequences part of a block +static size_t decode_sequences(frame_context_t *const ctx, istream_t *const in, + sequence_command_t **const sequences); + +// Execute the decoded sequences on the literals block +static void execute_sequences(frame_context_t *const ctx, ostream_t *const out, + const u8 *const literals, + const size_t literals_len, + const sequence_command_t *const sequences, + const size_t num_sequences); + +// Copies literals and returns the total literal length that was copied +static u32 copy_literals(const size_t seq, istream_t *litstream, + ostream_t *const out); + +// Given an offset code from a sequence command (either an actual offset value +// or an index for previous offset), computes the correct offset and updates +// the offset history +static size_t compute_offset(sequence_command_t seq, u64 *const offset_hist); + +// Given an offset, match length, and total output, as well as the frame +// context for the dictionary, determines if the dictionary is used and +// executes the copy operation +static void execute_match_copy(frame_context_t *const ctx, size_t offset, + size_t match_length, size_t total_output, + ostream_t *const out); + +/******* END ZSTD HELPER STRUCTS AND PROTOTYPES *******************************/ + +size_t ZSTD_decompress(void *const dst, const size_t dst_len, + const void *const src, const size_t src_len) { + dictionary_t* const uninit_dict = create_dictionary(); + size_t const decomp_size = ZSTD_decompress_with_dict(dst, dst_len, src, + src_len, uninit_dict); + free_dictionary(uninit_dict); + return decomp_size; +} + +size_t ZSTD_decompress_with_dict(void *const dst, const size_t dst_len, + const void *const src, const size_t src_len, + dictionary_t* parsed_dict) { + + istream_t in = IO_make_istream(src, src_len); + ostream_t out = IO_make_ostream(dst, dst_len); + + // "A content compressed by Zstandard is transformed into a Zstandard frame. + // Multiple frames can be appended into a single file or stream. A frame is + // totally independent, has a defined beginning and end, and a set of + // parameters which tells the decoder how to decompress it." + + /* this decoder assumes decompression of a single frame */ + decode_frame(&out, &in, parsed_dict); + + return (size_t)(out.ptr - (u8 *)dst); +} + +/******* FRAME DECODING ******************************************************/ + +static void decode_data_frame(ostream_t *const out, istream_t *const in, + const dictionary_t *const dict); +static void init_frame_context(frame_context_t *const context, + istream_t *const in, + const dictionary_t *const dict); +static void free_frame_context(frame_context_t *const context); +static void parse_frame_header(frame_header_t *const header, + istream_t *const in); +static void frame_context_apply_dict(frame_context_t *const ctx, + const dictionary_t *const dict); + +static void decompress_data(frame_context_t *const ctx, ostream_t *const out, + istream_t *const in); + +static void decode_frame(ostream_t *const out, istream_t *const in, + const dictionary_t *const dict) { + const u32 magic_number = (u32)IO_read_bits(in, 32); + if (magic_number == ZSTD_MAGIC_NUMBER) { + // ZSTD frame + decode_data_frame(out, in, dict); + + return; + } + + // not a real frame or a skippable frame + ERROR("Tried to decode non-ZSTD frame"); +} + +/// Decode a frame that contains compressed data. Not all frames do as there +/// are skippable frames. +/// See +/// https://github.com/facebook/zstd/blob/dev/doc/zstd_compression_format.md#general-structure-of-zstandard-frame-format +static void decode_data_frame(ostream_t *const out, istream_t *const in, + const dictionary_t *const dict) { + frame_context_t ctx; + + // Initialize the context that needs to be carried from block to block + init_frame_context(&ctx, in, dict); + + if (ctx.header.frame_content_size != 0 && + ctx.header.frame_content_size > out->len) { + OUT_SIZE(); + } + + decompress_data(&ctx, out, in); + + free_frame_context(&ctx); +} + +/// Takes the information provided in the header and dictionary, and initializes +/// the context for this frame +static void init_frame_context(frame_context_t *const context, + istream_t *const in, + const dictionary_t *const dict) { + // Most fields in context are correct when initialized to 0 + memset(context, 0, sizeof(frame_context_t)); + + // Parse data from the frame header + parse_frame_header(&context->header, in); + + // Set up the offset history for the repeat offset commands + context->previous_offsets[0] = 1; + context->previous_offsets[1] = 4; + context->previous_offsets[2] = 8; + + // Apply details from the dict if it exists + frame_context_apply_dict(context, dict); +} + +static void free_frame_context(frame_context_t *const context) { + HUF_free_dtable(&context->literals_dtable); + + FSE_free_dtable(&context->ll_dtable); + FSE_free_dtable(&context->ml_dtable); + FSE_free_dtable(&context->of_dtable); + + memset(context, 0, sizeof(frame_context_t)); +} + +static void parse_frame_header(frame_header_t *const header, + istream_t *const in) { + // "The first header's byte is called the Frame_Header_Descriptor. It tells + // which other fields are present. Decoding this byte is enough to tell the + // size of Frame_Header. + // + // Bit number Field name + // 7-6 Frame_Content_Size_flag + // 5 Single_Segment_flag + // 4 Unused_bit + // 3 Reserved_bit + // 2 Content_Checksum_flag + // 1-0 Dictionary_ID_flag" + const u8 descriptor = (u8)IO_read_bits(in, 8); + + // decode frame header descriptor into flags + const u8 frame_content_size_flag = descriptor >> 6; + const u8 single_segment_flag = (descriptor >> 5) & 1; + const u8 reserved_bit = (descriptor >> 3) & 1; + const u8 content_checksum_flag = (descriptor >> 2) & 1; + const u8 dictionary_id_flag = descriptor & 3; + + if (reserved_bit != 0) { + CORRUPTION(); + } + + header->single_segment_flag = single_segment_flag; + header->content_checksum_flag = content_checksum_flag; + + // decode window size + if (!single_segment_flag) { + // "Provides guarantees on maximum back-reference distance that will be + // used within compressed data. This information is important for + // decoders to allocate enough memory. + // + // Bit numbers 7-3 2-0 + // Field name Exponent Mantissa" + u8 window_descriptor = (u8)IO_read_bits(in, 8); + u8 exponent = window_descriptor >> 3; + u8 mantissa = window_descriptor & 7; + + // Use the algorithm from the specification to compute window size + // https://github.com/facebook/zstd/blob/dev/doc/zstd_compression_format.md#window_descriptor + size_t window_base = (size_t)1 << (10 + exponent); + size_t window_add = (window_base / 8) * mantissa; + header->window_size = window_base + window_add; + } + + // decode dictionary id if it exists + if (dictionary_id_flag) { + // "This is a variable size field, which contains the ID of the + // dictionary required to properly decode the frame. Note that this + // field is optional. When it's not present, it's up to the caller to + // make sure it uses the correct dictionary. Format is little-endian." + const int bytes_array[] = {0, 1, 2, 4}; + const int bytes = bytes_array[dictionary_id_flag]; + + header->dictionary_id = (u32)IO_read_bits(in, bytes * 8); + } else { + header->dictionary_id = 0; + } + + // decode frame content size if it exists + if (single_segment_flag || frame_content_size_flag) { + // "This is the original (uncompressed) size. This information is + // optional. The Field_Size is provided according to value of + // Frame_Content_Size_flag. The Field_Size can be equal to 0 (not + // present), 1, 2, 4 or 8 bytes. Format is little-endian." + // + // if frame_content_size_flag == 0 but single_segment_flag is set, we + // still have a 1 byte field + const int bytes_array[] = {1, 2, 4, 8}; + const int bytes = bytes_array[frame_content_size_flag]; + + header->frame_content_size = IO_read_bits(in, bytes * 8); + if (bytes == 2) { + // "When Field_Size is 2, the offset of 256 is added." + header->frame_content_size += 256; + } + } else { + header->frame_content_size = 0; + } + + if (single_segment_flag) { + // "The Window_Descriptor byte is optional. It is absent when + // Single_Segment_flag is set. In this case, the maximum back-reference + // distance is the content size itself, which can be any value from 1 to + // 2^64-1 bytes (16 EB)." + header->window_size = header->frame_content_size; + } +} + +/// Decompress the data from a frame block by block +static void decompress_data(frame_context_t *const ctx, ostream_t *const out, + istream_t *const in) { + // "A frame encapsulates one or multiple blocks. Each block can be + // compressed or not, and has a guaranteed maximum content size, which + // depends on frame parameters. Unlike frames, each block depends on + // previous blocks for proper decoding. However, each block can be + // decompressed without waiting for its successor, allowing streaming + // operations." + int last_block = 0; + do { + // "Last_Block + // + // The lowest bit signals if this block is the last one. Frame ends + // right after this block. + // + // Block_Type and Block_Size + // + // The next 2 bits represent the Block_Type, while the remaining 21 bits + // represent the Block_Size. Format is little-endian." + last_block = (int)IO_read_bits(in, 1); + const int block_type = (int)IO_read_bits(in, 2); + const size_t block_len = IO_read_bits(in, 21); + + switch (block_type) { + case 0: { + // "Raw_Block - this is an uncompressed block. Block_Size is the + // number of bytes to read and copy." + const u8 *const read_ptr = IO_get_read_ptr(in, block_len); + u8 *const write_ptr = IO_get_write_ptr(out, block_len); + + // Copy the raw data into the output + memcpy(write_ptr, read_ptr, block_len); + + ctx->current_total_output += block_len; + break; + } + case 1: { + // "RLE_Block - this is a single byte, repeated N times. In which + // case, Block_Size is the size to regenerate, while the + // "compressed" block is just 1 byte (the byte to repeat)." + const u8 *const read_ptr = IO_get_read_ptr(in, 1); + u8 *const write_ptr = IO_get_write_ptr(out, block_len); + + // Copy `block_len` copies of `read_ptr[0]` to the output + memset(write_ptr, read_ptr[0], block_len); + + ctx->current_total_output += block_len; + break; + } + case 2: { + // "Compressed_Block - this is a Zstandard compressed block, + // detailed in another section of this specification. Block_Size is + // the compressed size. + + // Create a sub-stream for the block + istream_t block_stream = IO_make_sub_istream(in, block_len); + decompress_block(ctx, out, &block_stream); + break; + } + case 3: + // "Reserved - this is not a block. This value cannot be used with + // current version of this specification." + CORRUPTION(); + break; + default: + IMPOSSIBLE(); + } + } while (!last_block); + + if (ctx->header.content_checksum_flag) { + // This program does not support checking the checksum, so skip over it + // if it's present + IO_advance_input(in, 4); + } +} +/******* END FRAME DECODING ***************************************************/ + +/******* BLOCK DECOMPRESSION **************************************************/ +static void decompress_block(frame_context_t *const ctx, ostream_t *const out, + istream_t *const in) { + // "A compressed block consists of 2 sections : + // + // Literals_Section + // Sequences_Section" + + + // Part 1: decode the literals block + u8 *literals = NULL; + const size_t literals_size = decode_literals(ctx, in, &literals); + + // Part 2: decode the sequences block + sequence_command_t *sequences = NULL; + const size_t num_sequences = + decode_sequences(ctx, in, &sequences); + + // Part 3: combine literals and sequence commands to generate output + execute_sequences(ctx, out, literals, literals_size, sequences, + num_sequences); + free(literals); + free(sequences); +} +/******* END BLOCK DECOMPRESSION **********************************************/ + +/******* LITERALS DECODING ****************************************************/ +static size_t decode_literals_simple(istream_t *const in, u8 **const literals, + const int block_type, + const int size_format); +static size_t decode_literals_compressed(frame_context_t *const ctx, + istream_t *const in, + u8 **const literals, + const int block_type, + const int size_format); +static void decode_huf_table(HUF_dtable *const dtable, istream_t *const in); +static void fse_decode_hufweights(ostream_t *weights, istream_t *const in, + int *const num_symbs); + +static size_t decode_literals(frame_context_t *const ctx, istream_t *const in, + u8 **const literals) { + // "Literals can be stored uncompressed or compressed using Huffman prefix + // codes. When compressed, an optional tree description can be present, + // followed by 1 or 4 streams." + // + // "Literals_Section_Header + // + // Header is in charge of describing how literals are packed. It's a + // byte-aligned variable-size bitfield, ranging from 1 to 5 bytes, using + // little-endian convention." + // + // "Literals_Block_Type + // + // This field uses 2 lowest bits of first byte, describing 4 different block + // types" + // + // size_format takes between 1 and 2 bits + int block_type = (int)IO_read_bits(in, 2); + int size_format = (int)IO_read_bits(in, 2); + + if (block_type <= 1) { + // Raw or RLE literals block + return decode_literals_simple(in, literals, block_type, + size_format); + } else { + // Huffman compressed literals + return decode_literals_compressed(ctx, in, literals, block_type, + size_format); + } +} + +/// Decodes literals blocks in raw or RLE form +static size_t decode_literals_simple(istream_t *const in, u8 **const literals, + const int block_type, + const int size_format) { + size_t size; + switch (size_format) { + // These cases are in the form ?0 + // In this case, the ? bit is actually part of the size field + case 0: + case 2: + // "Size_Format uses 1 bit. Regenerated_Size uses 5 bits (0-31)." + IO_rewind_bits(in, 1); + size = IO_read_bits(in, 5); + break; + case 1: + // "Size_Format uses 2 bits. Regenerated_Size uses 12 bits (0-4095)." + size = IO_read_bits(in, 12); + break; + case 3: + // "Size_Format uses 2 bits. Regenerated_Size uses 20 bits (0-1048575)." + size = IO_read_bits(in, 20); + break; + default: + // Size format is in range 0-3 + IMPOSSIBLE(); + } + + if (size > MAX_LITERALS_SIZE) { + CORRUPTION(); + } + + *literals = malloc(size); + if (!*literals) { + BAD_ALLOC(); + } + + switch (block_type) { + case 0: { + // "Raw_Literals_Block - Literals are stored uncompressed." + const u8 *const read_ptr = IO_get_read_ptr(in, size); + memcpy(*literals, read_ptr, size); + break; + } + case 1: { + // "RLE_Literals_Block - Literals consist of a single byte value repeated N times." + const u8 *const read_ptr = IO_get_read_ptr(in, 1); + memset(*literals, read_ptr[0], size); + break; + } + default: + IMPOSSIBLE(); + } + + return size; +} + +/// Decodes Huffman compressed literals +static size_t decode_literals_compressed(frame_context_t *const ctx, + istream_t *const in, + u8 **const literals, + const int block_type, + const int size_format) { + size_t regenerated_size, compressed_size; + // Only size_format=0 has 1 stream, so default to 4 + int num_streams = 4; + switch (size_format) { + case 0: + // "A single stream. Both Compressed_Size and Regenerated_Size use 10 + // bits (0-1023)." + num_streams = 1; + // Fall through as it has the same size format + /* fallthrough */ + case 1: + // "4 streams. Both Compressed_Size and Regenerated_Size use 10 bits + // (0-1023)." + regenerated_size = IO_read_bits(in, 10); + compressed_size = IO_read_bits(in, 10); + break; + case 2: + // "4 streams. Both Compressed_Size and Regenerated_Size use 14 bits + // (0-16383)." + regenerated_size = IO_read_bits(in, 14); + compressed_size = IO_read_bits(in, 14); + break; + case 3: + // "4 streams. Both Compressed_Size and Regenerated_Size use 18 bits + // (0-262143)." + regenerated_size = IO_read_bits(in, 18); + compressed_size = IO_read_bits(in, 18); + break; + default: + // Impossible + IMPOSSIBLE(); + } + if (regenerated_size > MAX_LITERALS_SIZE) { + CORRUPTION(); + } + + *literals = malloc(regenerated_size); + if (!*literals) { + BAD_ALLOC(); + } + + ostream_t lit_stream = IO_make_ostream(*literals, regenerated_size); + istream_t huf_stream = IO_make_sub_istream(in, compressed_size); + + if (block_type == 2) { + // Decode the provided Huffman table + // "This section is only present when Literals_Block_Type type is + // Compressed_Literals_Block (2)." + + HUF_free_dtable(&ctx->literals_dtable); + decode_huf_table(&ctx->literals_dtable, &huf_stream); + } else { + // If the previous Huffman table is being repeated, ensure it exists + if (!ctx->literals_dtable.symbols) { + CORRUPTION(); + } + } + + size_t symbols_decoded; + if (num_streams == 1) { + symbols_decoded = HUF_decompress_1stream(&ctx->literals_dtable, &lit_stream, &huf_stream); + } else { + symbols_decoded = HUF_decompress_4stream(&ctx->literals_dtable, &lit_stream, &huf_stream); + } + + if (symbols_decoded != regenerated_size) { + CORRUPTION(); + } + + return regenerated_size; +} + +// Decode the Huffman table description +static void decode_huf_table(HUF_dtable *const dtable, istream_t *const in) { + // "All literal values from zero (included) to last present one (excluded) + // are represented by Weight with values from 0 to Max_Number_of_Bits." + + // "This is a single byte value (0-255), which describes how to decode the list of weights." + const u8 header = IO_read_bits(in, 8); + + u8 weights[HUF_MAX_SYMBS]; + memset(weights, 0, sizeof(weights)); + + int num_symbs; + + if (header >= 128) { + // "This is a direct representation, where each Weight is written + // directly as a 4 bits field (0-15). The full representation occupies + // ((Number_of_Symbols+1)/2) bytes, meaning it uses a last full byte + // even if Number_of_Symbols is odd. Number_of_Symbols = headerByte - + // 127" + num_symbs = header - 127; + const size_t bytes = (num_symbs + 1) / 2; + + const u8 *const weight_src = IO_get_read_ptr(in, bytes); + + for (int i = 0; i < num_symbs; i++) { + // "They are encoded forward, 2 + // weights to a byte with the first weight taking the top four bits + // and the second taking the bottom four (e.g. the following + // operations could be used to read the weights: Weight[0] = + // (Byte[0] >> 4), Weight[1] = (Byte[0] & 0xf), etc.)." + if (i % 2 == 0) { + weights[i] = weight_src[i / 2] >> 4; + } else { + weights[i] = weight_src[i / 2] & 0xf; + } + } + } else { + // The weights are FSE encoded, decode them before we can construct the + // table + istream_t fse_stream = IO_make_sub_istream(in, header); + ostream_t weight_stream = IO_make_ostream(weights, HUF_MAX_SYMBS); + fse_decode_hufweights(&weight_stream, &fse_stream, &num_symbs); + } + + // Construct the table using the decoded weights + HUF_init_dtable_usingweights(dtable, weights, num_symbs); +} + +static void fse_decode_hufweights(ostream_t *weights, istream_t *const in, + int *const num_symbs) { + const int MAX_ACCURACY_LOG = 7; + + FSE_dtable dtable; + + // "An FSE bitstream starts by a header, describing probabilities + // distribution. It will create a Decoding Table. For a list of Huffman + // weights, maximum accuracy is 7 bits." + FSE_decode_header(&dtable, in, MAX_ACCURACY_LOG); + + // Decode the weights + *num_symbs = FSE_decompress_interleaved2(&dtable, weights, in); + + FSE_free_dtable(&dtable); +} +/******* END LITERALS DECODING ************************************************/ + +/******* SEQUENCE DECODING ****************************************************/ +/// The combination of FSE states needed to decode sequences +typedef struct { + FSE_dtable ll_table; + FSE_dtable of_table; + FSE_dtable ml_table; + + u16 ll_state; + u16 of_state; + u16 ml_state; +} sequence_states_t; + +/// Different modes to signal to decode_seq_tables what to do +typedef enum { + seq_literal_length = 0, + seq_offset = 1, + seq_match_length = 2, +} seq_part_t; + +typedef enum { + seq_predefined = 0, + seq_rle = 1, + seq_fse = 2, + seq_repeat = 3, +} seq_mode_t; + +/// The predefined FSE distribution tables for `seq_predefined` mode +static const i16 SEQ_LITERAL_LENGTH_DEFAULT_DIST[36] = { + 4, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 3, 2, 1, 1, 1, 1, 1, -1, -1, -1, -1}; +static const i16 SEQ_OFFSET_DEFAULT_DIST[29] = { + 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, -1, -1, -1, -1, -1}; +static const i16 SEQ_MATCH_LENGTH_DEFAULT_DIST[53] = { + 1, 4, 3, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -1, -1, -1, -1, -1, -1, -1}; + +/// The sequence decoding baseline and number of additional bits to read/add +/// https://github.com/facebook/zstd/blob/dev/doc/zstd_compression_format.md#the-codes-for-literals-lengths-match-lengths-and-offsets +static const u32 SEQ_LITERAL_LENGTH_BASELINES[36] = { + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, + 12, 13, 14, 15, 16, 18, 20, 22, 24, 28, 32, 40, + 48, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16384, 32768, 65536}; +static const u8 SEQ_LITERAL_LENGTH_EXTRA_BITS[36] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, + 1, 1, 2, 2, 3, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; + +static const u32 SEQ_MATCH_LENGTH_BASELINES[53] = { + 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 37, 39, 41, 43, 47, 51, 59, 67, 83, + 99, 131, 259, 515, 1027, 2051, 4099, 8195, 16387, 32771, 65539}; +static const u8 SEQ_MATCH_LENGTH_EXTRA_BITS[53] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, + 2, 2, 3, 3, 4, 4, 5, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; + +/// Offset decoding is simpler so we just need a maximum code value +static const u8 SEQ_MAX_CODES[3] = {35, (u8)-1, 52}; + +static void decompress_sequences(frame_context_t *const ctx, + istream_t *const in, + sequence_command_t *const sequences, + const size_t num_sequences); +static sequence_command_t decode_sequence(sequence_states_t *const state, + const u8 *const src, + i64 *const offset); +static void decode_seq_table(FSE_dtable *const table, istream_t *const in, + const seq_part_t type, const seq_mode_t mode); + +static size_t decode_sequences(frame_context_t *const ctx, istream_t *in, + sequence_command_t **const sequences) { + // "A compressed block is a succession of sequences . A sequence is a + // literal copy command, followed by a match copy command. A literal copy + // command specifies a length. It is the number of bytes to be copied (or + // extracted) from the literal section. A match copy command specifies an + // offset and a length. The offset gives the position to copy from, which + // can be within a previous block." + + size_t num_sequences; + + // "Number_of_Sequences + // + // This is a variable size field using between 1 and 3 bytes. Let's call its + // first byte byte0." + u8 header = IO_read_bits(in, 8); + if (header == 0) { + // "There are no sequences. The sequence section stops there. + // Regenerated content is defined entirely by literals section." + *sequences = NULL; + return 0; + } else if (header < 128) { + // "Number_of_Sequences = byte0 . Uses 1 byte." + num_sequences = header; + } else if (header < 255) { + // "Number_of_Sequences = ((byte0-128) << 8) + byte1 . Uses 2 bytes." + num_sequences = ((header - 128) << 8) + IO_read_bits(in, 8); + } else { + // "Number_of_Sequences = byte1 + (byte2<<8) + 0x7F00 . Uses 3 bytes." + num_sequences = IO_read_bits(in, 16) + 0x7F00; + } + + *sequences = malloc(num_sequences * sizeof(sequence_command_t)); + if (!*sequences) { + BAD_ALLOC(); + } + + decompress_sequences(ctx, in, *sequences, num_sequences); + return num_sequences; +} + +/// Decompress the FSE encoded sequence commands +static void decompress_sequences(frame_context_t *const ctx, istream_t *in, + sequence_command_t *const sequences, + const size_t num_sequences) { + // "The Sequences_Section regroup all symbols required to decode commands. + // There are 3 symbol types : literals lengths, offsets and match lengths. + // They are encoded together, interleaved, in a single bitstream." + + // "Symbol compression modes + // + // This is a single byte, defining the compression mode of each symbol + // type." + // + // Bit number : Field name + // 7-6 : Literals_Lengths_Mode + // 5-4 : Offsets_Mode + // 3-2 : Match_Lengths_Mode + // 1-0 : Reserved + u8 compression_modes = IO_read_bits(in, 8); + + if ((compression_modes & 3) != 0) { + // Reserved bits set + CORRUPTION(); + } + + // "Following the header, up to 3 distribution tables can be described. When + // present, they are in this order : + // + // Literals lengths + // Offsets + // Match Lengths" + // Update the tables we have stored in the context + decode_seq_table(&ctx->ll_dtable, in, seq_literal_length, + (compression_modes >> 6) & 3); + + decode_seq_table(&ctx->of_dtable, in, seq_offset, + (compression_modes >> 4) & 3); + + decode_seq_table(&ctx->ml_dtable, in, seq_match_length, + (compression_modes >> 2) & 3); + + + sequence_states_t states; + + // Initialize the decoding tables + { + states.ll_table = ctx->ll_dtable; + states.of_table = ctx->of_dtable; + states.ml_table = ctx->ml_dtable; + } + + const size_t len = IO_istream_len(in); + const u8 *const src = IO_get_read_ptr(in, len); + + // "After writing the last bit containing information, the compressor writes + // a single 1-bit and then fills the byte with 0-7 0 bits of padding." + const int padding = 8 - highest_set_bit(src[len - 1]); + // The offset starts at the end because FSE streams are read backwards + i64 bit_offset = (i64)(len * 8 - (size_t)padding); + + // "The bitstream starts with initial state values, each using the required + // number of bits in their respective accuracy, decoded previously from + // their normalized distribution. + // + // It starts by Literals_Length_State, followed by Offset_State, and finally + // Match_Length_State." + FSE_init_state(&states.ll_table, &states.ll_state, src, &bit_offset); + FSE_init_state(&states.of_table, &states.of_state, src, &bit_offset); + FSE_init_state(&states.ml_table, &states.ml_state, src, &bit_offset); + + for (size_t i = 0; i < num_sequences; i++) { + // Decode sequences one by one + sequences[i] = decode_sequence(&states, src, &bit_offset); + } + + if (bit_offset != 0) { + CORRUPTION(); + } +} + +// Decode a single sequence and update the state +static sequence_command_t decode_sequence(sequence_states_t *const states, + const u8 *const src, + i64 *const offset) { + // "Each symbol is a code in its own context, which specifies Baseline and + // Number_of_Bits to add. Codes are FSE compressed, and interleaved with raw + // additional bits in the same bitstream." + + // Decode symbols, but don't update states + const u8 of_code = FSE_peek_symbol(&states->of_table, states->of_state); + const u8 ll_code = FSE_peek_symbol(&states->ll_table, states->ll_state); + const u8 ml_code = FSE_peek_symbol(&states->ml_table, states->ml_state); + + // Offset doesn't need a max value as it's not decoded using a table + if (ll_code > SEQ_MAX_CODES[seq_literal_length] || + ml_code > SEQ_MAX_CODES[seq_match_length]) { + CORRUPTION(); + } + + // Read the interleaved bits + sequence_command_t seq; + // "Decoding starts by reading the Number_of_Bits required to decode Offset. + // It then does the same for Match_Length, and then for Literals_Length." + seq.offset = ((u32)1 << of_code) + STREAM_read_bits(src, of_code, offset); + + seq.match_length = + SEQ_MATCH_LENGTH_BASELINES[ml_code] + + STREAM_read_bits(src, SEQ_MATCH_LENGTH_EXTRA_BITS[ml_code], offset); + + seq.literal_length = + SEQ_LITERAL_LENGTH_BASELINES[ll_code] + + STREAM_read_bits(src, SEQ_LITERAL_LENGTH_EXTRA_BITS[ll_code], offset); + + // "If it is not the last sequence in the block, the next operation is to + // update states. Using the rules pre-calculated in the decoding tables, + // Literals_Length_State is updated, followed by Match_Length_State, and + // then Offset_State." + // If the stream is complete don't read bits to update state + if (*offset != 0) { + FSE_update_state(&states->ll_table, &states->ll_state, src, offset); + FSE_update_state(&states->ml_table, &states->ml_state, src, offset); + FSE_update_state(&states->of_table, &states->of_state, src, offset); + } + + return seq; +} + +/// Given a sequence part and table mode, decode the FSE distribution +/// Errors if the mode is `seq_repeat` without a pre-existing table in `table` +static void decode_seq_table(FSE_dtable *const table, istream_t *const in, + const seq_part_t type, const seq_mode_t mode) { + // Constant arrays indexed by seq_part_t + const i16 *const default_distributions[] = {SEQ_LITERAL_LENGTH_DEFAULT_DIST, + SEQ_OFFSET_DEFAULT_DIST, + SEQ_MATCH_LENGTH_DEFAULT_DIST}; + const size_t default_distribution_lengths[] = {36, 29, 53}; + const size_t default_distribution_accuracies[] = {6, 5, 6}; + + const size_t max_accuracies[] = {9, 8, 9}; + + if (mode != seq_repeat) { + // Free old one before overwriting + FSE_free_dtable(table); + } + + switch (mode) { + case seq_predefined: { + // "Predefined_Mode : uses a predefined distribution table." + const i16 *distribution = default_distributions[type]; + const size_t symbs = default_distribution_lengths[type]; + const size_t accuracy_log = default_distribution_accuracies[type]; + + FSE_init_dtable(table, distribution, symbs, accuracy_log); + break; + } + case seq_rle: { + // "RLE_Mode : it's a single code, repeated Number_of_Sequences times." + const u8 symb = IO_get_read_ptr(in, 1)[0]; + FSE_init_dtable_rle(table, symb); + break; + } + case seq_fse: { + // "FSE_Compressed_Mode : standard FSE compression. A distribution table + // will be present " + FSE_decode_header(table, in, max_accuracies[type]); + break; + } + case seq_repeat: + // "Repeat_Mode : re-use distribution table from previous compressed + // block." + // Nothing to do here, table will be unchanged + if (!table->symbols) { + // This mode is invalid if we don't already have a table + CORRUPTION(); + } + break; + default: + // Impossible, as mode is from 0-3 + IMPOSSIBLE(); + break; + } + +} +/******* END SEQUENCE DECODING ************************************************/ + +/******* SEQUENCE EXECUTION ***************************************************/ +static void execute_sequences(frame_context_t *const ctx, ostream_t *const out, + const u8 *const literals, + const size_t literals_len, + const sequence_command_t *const sequences, + const size_t num_sequences) { + istream_t litstream = IO_make_istream(literals, literals_len); + + u64 *const offset_hist = ctx->previous_offsets; + size_t total_output = ctx->current_total_output; + + for (size_t i = 0; i < num_sequences; i++) { + const sequence_command_t seq = sequences[i]; + { + const u32 literals_size = copy_literals(seq.literal_length, &litstream, out); + total_output += literals_size; + } + + size_t const offset = compute_offset(seq, offset_hist); + + size_t const match_length = seq.match_length; + + execute_match_copy(ctx, offset, match_length, total_output, out); + + total_output += match_length; + } + + // Copy any leftover literals + { + size_t len = IO_istream_len(&litstream); + copy_literals(len, &litstream, out); + total_output += len; + } + + ctx->current_total_output = total_output; +} + +static u32 copy_literals(const size_t literal_length, istream_t *litstream, + ostream_t *const out) { + // If the sequence asks for more literals than are left, the + // sequence must be corrupted + if (literal_length > IO_istream_len(litstream)) { + CORRUPTION(); + } + + u8 *const write_ptr = IO_get_write_ptr(out, literal_length); + const u8 *const read_ptr = + IO_get_read_ptr(litstream, literal_length); + // Copy literals to output + memcpy(write_ptr, read_ptr, literal_length); + + return literal_length; +} + +static size_t compute_offset(sequence_command_t seq, u64 *const offset_hist) { + size_t offset; + // Offsets are special, we need to handle the repeat offsets + if (seq.offset <= 3) { + // "The first 3 values define a repeated offset and we will call + // them Repeated_Offset1, Repeated_Offset2, and Repeated_Offset3. + // They are sorted in recency order, with Repeated_Offset1 meaning + // 'most recent one'". + + // Use 0 indexing for the array + u32 idx = seq.offset - 1; + if (seq.literal_length == 0) { + // "There is an exception though, when current sequence's + // literals length is 0. In this case, repeated offsets are + // shifted by one, so Repeated_Offset1 becomes Repeated_Offset2, + // Repeated_Offset2 becomes Repeated_Offset3, and + // Repeated_Offset3 becomes Repeated_Offset1 - 1_byte." + idx++; + } + + if (idx == 0) { + offset = offset_hist[0]; + } else { + // If idx == 3 then literal length was 0 and the offset was 3, + // as per the exception listed above + offset = idx < 3 ? offset_hist[idx] : offset_hist[0] - 1; + + // If idx == 1 we don't need to modify offset_hist[2], since + // we're using the second-most recent code + if (idx > 1) { + offset_hist[2] = offset_hist[1]; + } + offset_hist[1] = offset_hist[0]; + offset_hist[0] = offset; + } + } else { + // When it's not a repeat offset: + // "if (Offset_Value > 3) offset = Offset_Value - 3;" + offset = seq.offset - 3; + + // Shift back history + offset_hist[2] = offset_hist[1]; + offset_hist[1] = offset_hist[0]; + offset_hist[0] = offset; + } + return offset; +} + +static void execute_match_copy(frame_context_t *const ctx, size_t offset, + size_t match_length, size_t total_output, + ostream_t *const out) { + u8 *write_ptr = IO_get_write_ptr(out, match_length); + if (total_output <= ctx->header.window_size) { + // In this case offset might go back into the dictionary + if (offset > total_output + ctx->dict_content_len) { + // The offset goes beyond even the dictionary + CORRUPTION(); + } + + if (offset > total_output) { + // "The rest of the dictionary is its content. The content act + // as a "past" in front of data to compress or decompress, so it + // can be referenced in sequence commands." + const size_t dict_copy = + MIN(offset - total_output, match_length); + const size_t dict_offset = + ctx->dict_content_len - (offset - total_output); + + memcpy(write_ptr, ctx->dict_content + dict_offset, dict_copy); + write_ptr += dict_copy; + match_length -= dict_copy; + } + } else if (offset > ctx->header.window_size) { + CORRUPTION(); + } + + // We must copy byte by byte because the match length might be larger + // than the offset + // ex: if the output so far was "abc", a command with offset=3 and + // match_length=6 would produce "abcabcabc" as the new output + for (size_t j = 0; j < match_length; j++) { + *write_ptr = *(write_ptr - offset); + write_ptr++; + } +} +/******* END SEQUENCE EXECUTION ***********************************************/ + +/******* OUTPUT SIZE COUNTING *************************************************/ +/// Get the decompressed size of an input stream so memory can be allocated in +/// advance. +/// This implementation assumes `src` points to a single ZSTD-compressed frame +size_t ZSTD_get_decompressed_size(const void *src, const size_t src_len) { + istream_t in = IO_make_istream(src, src_len); + + // get decompressed size from ZSTD frame header + { + const u32 magic_number = (u32)IO_read_bits(&in, 32); + + if (magic_number == ZSTD_MAGIC_NUMBER) { + // ZSTD frame + frame_header_t header; + parse_frame_header(&header, &in); + + if (header.frame_content_size == 0 && !header.single_segment_flag) { + // Content size not provided, we can't tell + return (size_t)-1; + } + + return header.frame_content_size; + } else { + // not a real frame or skippable frame + ERROR("ZSTD frame magic number did not match"); + } + } +} +/******* END OUTPUT SIZE COUNTING *********************************************/ + +/******* DICTIONARY PARSING ***************************************************/ +dictionary_t* create_dictionary() { + dictionary_t* const dict = calloc(1, sizeof(dictionary_t)); + if (!dict) { + BAD_ALLOC(); + } + return dict; +} + +/// Free an allocated dictionary +void free_dictionary(dictionary_t *const dict) { + HUF_free_dtable(&dict->literals_dtable); + FSE_free_dtable(&dict->ll_dtable); + FSE_free_dtable(&dict->of_dtable); + FSE_free_dtable(&dict->ml_dtable); + + free(dict->content); + + memset(dict, 0, sizeof(dictionary_t)); + + free(dict); +} + + +#if !defined(ZDEC_NO_DICTIONARY) +#define DICT_SIZE_ERROR() ERROR("Dictionary size cannot be less than 8 bytes") +#define NULL_SRC() ERROR("Tried to create dictionary with pointer to null src"); + +static void init_dictionary_content(dictionary_t *const dict, + istream_t *const in); + +void parse_dictionary(dictionary_t *const dict, const void *src, + size_t src_len) { + const u8 *byte_src = (const u8 *)src; + memset(dict, 0, sizeof(dictionary_t)); + if (src == NULL) { /* cannot initialize dictionary with null src */ + NULL_SRC(); + } + if (src_len < 8) { + DICT_SIZE_ERROR(); + } + + istream_t in = IO_make_istream(byte_src, src_len); + + const u32 magic_number = IO_read_bits(&in, 32); + if (magic_number != 0xEC30A437) { + // raw content dict + IO_rewind_bits(&in, 32); + init_dictionary_content(dict, &in); + return; + } + + dict->dictionary_id = IO_read_bits(&in, 32); + + // "Entropy_Tables : following the same format as the tables in compressed + // blocks. They are stored in following order : Huffman tables for literals, + // FSE table for offsets, FSE table for match lengths, and FSE table for + // literals lengths. It's finally followed by 3 offset values, populating + // recent offsets (instead of using {1,4,8}), stored in order, 4-bytes + // little-endian each, for a total of 12 bytes. Each recent offset must have + // a value < dictionary size." + decode_huf_table(&dict->literals_dtable, &in); + decode_seq_table(&dict->of_dtable, &in, seq_offset, seq_fse); + decode_seq_table(&dict->ml_dtable, &in, seq_match_length, seq_fse); + decode_seq_table(&dict->ll_dtable, &in, seq_literal_length, seq_fse); + + // Read in the previous offset history + dict->previous_offsets[0] = IO_read_bits(&in, 32); + dict->previous_offsets[1] = IO_read_bits(&in, 32); + dict->previous_offsets[2] = IO_read_bits(&in, 32); + + // Ensure the provided offsets aren't too large + // "Each recent offset must have a value < dictionary size." + for (int i = 0; i < 3; i++) { + if (dict->previous_offsets[i] > src_len) { + ERROR("Dictionary corrupted"); + } + } + + // "Content : The rest of the dictionary is its content. The content act as + // a "past" in front of data to compress or decompress, so it can be + // referenced in sequence commands." + init_dictionary_content(dict, &in); +} + +static void init_dictionary_content(dictionary_t *const dict, + istream_t *const in) { + // Copy in the content + dict->content_size = IO_istream_len(in); + dict->content = malloc(dict->content_size); + if (!dict->content) { + BAD_ALLOC(); + } + + const u8 *const content = IO_get_read_ptr(in, dict->content_size); + + memcpy(dict->content, content, dict->content_size); +} + +static void HUF_copy_dtable(HUF_dtable *const dst, + const HUF_dtable *const src) { + if (src->max_bits == 0) { + memset(dst, 0, sizeof(HUF_dtable)); + return; + } + + const size_t size = (size_t)1 << src->max_bits; + dst->max_bits = src->max_bits; + + dst->symbols = malloc(size); + dst->num_bits = malloc(size); + if (!dst->symbols || !dst->num_bits) { + BAD_ALLOC(); + } + + memcpy(dst->symbols, src->symbols, size); + memcpy(dst->num_bits, src->num_bits, size); +} + +static void FSE_copy_dtable(FSE_dtable *const dst, const FSE_dtable *const src) { + if (src->accuracy_log == 0) { + memset(dst, 0, sizeof(FSE_dtable)); + return; + } + + size_t size = (size_t)1 << src->accuracy_log; + dst->accuracy_log = src->accuracy_log; + + dst->symbols = malloc(size); + dst->num_bits = malloc(size); + dst->new_state_base = malloc(size * sizeof(u16)); + if (!dst->symbols || !dst->num_bits || !dst->new_state_base) { + BAD_ALLOC(); + } + + memcpy(dst->symbols, src->symbols, size); + memcpy(dst->num_bits, src->num_bits, size); + memcpy(dst->new_state_base, src->new_state_base, size * sizeof(u16)); +} + +/// A dictionary acts as initializing values for the frame context before +/// decompression, so we implement it by applying it's predetermined +/// tables and content to the context before beginning decompression +static void frame_context_apply_dict(frame_context_t *const ctx, + const dictionary_t *const dict) { + // If the content pointer is NULL then it must be an empty dict + if (!dict || !dict->content) + return; + + // If the requested dictionary_id is non-zero, the correct dictionary must + // be present + if (ctx->header.dictionary_id != 0 && + ctx->header.dictionary_id != dict->dictionary_id) { + ERROR("Wrong dictionary provided"); + } + + // Copy the dict content to the context for references during sequence + // execution + ctx->dict_content = dict->content; + ctx->dict_content_len = dict->content_size; + + // If it's a formatted dict copy the precomputed tables in so they can + // be used in the table repeat modes + if (dict->dictionary_id != 0) { + // Deep copy the entropy tables so they can be freed independently of + // the dictionary struct + HUF_copy_dtable(&ctx->literals_dtable, &dict->literals_dtable); + FSE_copy_dtable(&ctx->ll_dtable, &dict->ll_dtable); + FSE_copy_dtable(&ctx->of_dtable, &dict->of_dtable); + FSE_copy_dtable(&ctx->ml_dtable, &dict->ml_dtable); + + // Copy the repeated offsets + memcpy(ctx->previous_offsets, dict->previous_offsets, + sizeof(ctx->previous_offsets)); + } +} + +#else // ZDEC_NO_DICTIONARY is defined + +static void frame_context_apply_dict(frame_context_t *const ctx, + const dictionary_t *const dict) { + (void)ctx; + if (dict && dict->content) ERROR("dictionary not supported"); +} + +#endif +/******* END DICTIONARY PARSING ***********************************************/ + +/******* IO STREAM OPERATIONS *************************************************/ + +/// Reads `num` bits from a bitstream, and updates the internal offset +static inline u64 IO_read_bits(istream_t *const in, const int num_bits) { + if (num_bits > 64 || num_bits <= 0) { + ERROR("Attempt to read an invalid number of bits"); + } + + const size_t bytes = (num_bits + in->bit_offset + 7) / 8; + const size_t full_bytes = (num_bits + in->bit_offset) / 8; + if (bytes > in->len) { + INP_SIZE(); + } + + const u64 result = read_bits_LE(in->ptr, num_bits, in->bit_offset); + + in->bit_offset = (num_bits + in->bit_offset) % 8; + in->ptr += full_bytes; + in->len -= full_bytes; + + return result; +} + +/// If a non-zero number of bits have been read from the current byte, advance +/// the offset to the next byte +static inline void IO_rewind_bits(istream_t *const in, int num_bits) { + if (num_bits < 0) { + ERROR("Attempting to rewind stream by a negative number of bits"); + } + + // move the offset back by `num_bits` bits + const int new_offset = in->bit_offset - num_bits; + // determine the number of whole bytes we have to rewind, rounding up to an + // integer number (e.g. if `new_offset == -5`, `bytes == 1`) + const i64 bytes = -(new_offset - 7) / 8; + + in->ptr -= bytes; + in->len += bytes; + // make sure the resulting `bit_offset` is positive, as mod in C does not + // convert numbers from negative to positive (e.g. -22 % 8 == -6) + in->bit_offset = ((new_offset % 8) + 8) % 8; +} + +/// If the remaining bits in a byte will be unused, advance to the end of the +/// byte +static inline void IO_align_stream(istream_t *const in) { + if (in->bit_offset != 0) { + if (in->len == 0) { + INP_SIZE(); + } + in->ptr++; + in->len--; + in->bit_offset = 0; + } +} + +/// Write the given byte into the output stream +static inline void IO_write_byte(ostream_t *const out, u8 symb) { + if (out->len == 0) { + OUT_SIZE(); + } + + out->ptr[0] = symb; + out->ptr++; + out->len--; +} + +/// Returns the number of bytes left to be read in this stream. The stream must +/// be byte aligned. +static inline size_t IO_istream_len(const istream_t *const in) { + return in->len; +} + +/// Returns a pointer where `len` bytes can be read, and advances the internal +/// state. The stream must be byte aligned. +static inline const u8 *IO_get_read_ptr(istream_t *const in, size_t len) { + if (len > in->len) { + INP_SIZE(); + } + if (in->bit_offset != 0) { + ERROR("Attempting to operate on a non-byte aligned stream"); + } + const u8 *const ptr = in->ptr; + in->ptr += len; + in->len -= len; + + return ptr; +} +/// Returns a pointer to write `len` bytes to, and advances the internal state +static inline u8 *IO_get_write_ptr(ostream_t *const out, size_t len) { + if (len > out->len) { + OUT_SIZE(); + } + u8 *const ptr = out->ptr; + out->ptr += len; + out->len -= len; + + return ptr; +} + +/// Advance the inner state by `len` bytes +static inline void IO_advance_input(istream_t *const in, size_t len) { + if (len > in->len) { + INP_SIZE(); + } + if (in->bit_offset != 0) { + ERROR("Attempting to operate on a non-byte aligned stream"); + } + + in->ptr += len; + in->len -= len; +} + +/// Returns an `ostream_t` constructed from the given pointer and length +static inline ostream_t IO_make_ostream(u8 *out, size_t len) { + return (ostream_t) { out, len }; +} + +/// Returns an `istream_t` constructed from the given pointer and length +static inline istream_t IO_make_istream(const u8 *in, size_t len) { + return (istream_t) { in, len, 0 }; +} + +/// Returns an `istream_t` with the same base as `in`, and length `len` +/// Then, advance `in` to account for the consumed bytes +/// `in` must be byte aligned +static inline istream_t IO_make_sub_istream(istream_t *const in, size_t len) { + // Consume `len` bytes of the parent stream + const u8 *const ptr = IO_get_read_ptr(in, len); + + // Make a substream using the pointer to those `len` bytes + return IO_make_istream(ptr, len); +} +/******* END IO STREAM OPERATIONS *********************************************/ + +/******* BITSTREAM OPERATIONS *************************************************/ +/// Read `num` bits (up to 64) from `src + offset`, where `offset` is in bits +static inline u64 read_bits_LE(const u8 *src, const int num_bits, + const size_t offset) { + if (num_bits > 64) { + ERROR("Attempt to read an invalid number of bits"); + } + + // Skip over bytes that aren't in range + src += offset / 8; + size_t bit_offset = offset % 8; + u64 res = 0; + + int shift = 0; + int left = num_bits; + while (left > 0) { + u64 mask = left >= 8 ? 0xff : (((u64)1 << left) - 1); + // Read the next byte, shift it to account for the offset, and then mask + // out the top part if we don't need all the bits + res += (((u64)*src++ >> bit_offset) & mask) << shift; + shift += 8 - bit_offset; + left -= 8 - bit_offset; + bit_offset = 0; + } + + return res; +} + +/// Read bits from the end of a HUF or FSE bitstream. `offset` is in bits, so +/// it updates `offset` to `offset - bits`, and then reads `bits` bits from +/// `src + offset`. If the offset becomes negative, the extra bits at the +/// bottom are filled in with `0` bits instead of reading from before `src`. +static inline u64 STREAM_read_bits(const u8 *const src, const int bits, + i64 *const offset) { + *offset = *offset - bits; + size_t actual_off = *offset; + size_t actual_bits = bits; + // Don't actually read bits from before the start of src, so if `*offset < + // 0` fix actual_off and actual_bits to reflect the quantity to read + if (*offset < 0) { + actual_bits += *offset; + actual_off = 0; + } + u64 res = read_bits_LE(src, actual_bits, actual_off); + + if (*offset < 0) { + // Fill in the bottom "overflowed" bits with 0's + res = -*offset >= 64 ? 0 : (res << -*offset); + } + return res; +} +/******* END BITSTREAM OPERATIONS *********************************************/ + +/******* BIT COUNTING OPERATIONS **********************************************/ +/// Returns `x`, where `2^x` is the largest power of 2 less than or equal to +/// `num`, or `-1` if `num == 0`. +static inline int highest_set_bit(const u64 num) { + for (int i = 63; i >= 0; i--) { + if (((u64)1 << i) <= num) { + return i; + } + } + return -1; +} +/******* END BIT COUNTING OPERATIONS ******************************************/ + +/******* HUFFMAN PRIMITIVES ***************************************************/ +static inline u8 HUF_decode_symbol(const HUF_dtable *const dtable, + u16 *const state, const u8 *const src, + i64 *const offset) { + // Look up the symbol and number of bits to read + const u8 symb = dtable->symbols[*state]; + const u8 bits = dtable->num_bits[*state]; + const u16 rest = STREAM_read_bits(src, bits, offset); + // Shift `bits` bits out of the state, keeping the low order bits that + // weren't necessary to determine this symbol. Then add in the new bits + // read from the stream. + *state = ((*state << bits) + rest) & (((u16)1 << dtable->max_bits) - 1); + + return symb; +} + +static inline void HUF_init_state(const HUF_dtable *const dtable, + u16 *const state, const u8 *const src, + i64 *const offset) { + // Read in a full `dtable->max_bits` bits to initialize the state + const u8 bits = dtable->max_bits; + *state = STREAM_read_bits(src, bits, offset); +} + +static size_t HUF_decompress_1stream(const HUF_dtable *const dtable, + ostream_t *const out, + istream_t *const in) { + const size_t len = IO_istream_len(in); + if (len == 0) { + INP_SIZE(); + } + const u8 *const src = IO_get_read_ptr(in, len); + + // "Each bitstream must be read backward, that is starting from the end down + // to the beginning. Therefore it's necessary to know the size of each + // bitstream. + // + // It's also necessary to know exactly which bit is the latest. This is + // detected by a final bit flag : the highest bit of latest byte is a + // final-bit-flag. Consequently, a last byte of 0 is not possible. And the + // final-bit-flag itself is not part of the useful bitstream. Hence, the + // last byte contains between 0 and 7 useful bits." + const int padding = 8 - highest_set_bit(src[len - 1]); + + // Offset starts at the end because HUF streams are read backwards + i64 bit_offset = len * 8 - padding; + u16 state; + + HUF_init_state(dtable, &state, src, &bit_offset); + + size_t symbols_written = 0; + while (bit_offset > -dtable->max_bits) { + // Iterate over the stream, decoding one symbol at a time + IO_write_byte(out, HUF_decode_symbol(dtable, &state, src, &bit_offset)); + symbols_written++; + } + // "The process continues up to reading the required number of symbols per + // stream. If a bitstream is not entirely and exactly consumed, hence + // reaching exactly its beginning position with all bits consumed, the + // decoding process is considered faulty." + + // When all symbols have been decoded, the final state value shouldn't have + // any data from the stream, so it should have "read" dtable->max_bits from + // before the start of `src` + // Therefore `offset`, the edge to start reading new bits at, should be + // dtable->max_bits before the start of the stream + if (bit_offset != -dtable->max_bits) { + CORRUPTION(); + } + + return symbols_written; +} + +static size_t HUF_decompress_4stream(const HUF_dtable *const dtable, + ostream_t *const out, istream_t *const in) { + // "Compressed size is provided explicitly : in the 4-streams variant, + // bitstreams are preceded by 3 unsigned little-endian 16-bits values. Each + // value represents the compressed size of one stream, in order. The last + // stream size is deducted from total compressed size and from previously + // decoded stream sizes" + const size_t csize1 = IO_read_bits(in, 16); + const size_t csize2 = IO_read_bits(in, 16); + const size_t csize3 = IO_read_bits(in, 16); + + istream_t in1 = IO_make_sub_istream(in, csize1); + istream_t in2 = IO_make_sub_istream(in, csize2); + istream_t in3 = IO_make_sub_istream(in, csize3); + istream_t in4 = IO_make_sub_istream(in, IO_istream_len(in)); + + size_t total_output = 0; + // Decode each stream independently for simplicity + // If we wanted to we could decode all 4 at the same time for speed, + // utilizing more execution units + total_output += HUF_decompress_1stream(dtable, out, &in1); + total_output += HUF_decompress_1stream(dtable, out, &in2); + total_output += HUF_decompress_1stream(dtable, out, &in3); + total_output += HUF_decompress_1stream(dtable, out, &in4); + + return total_output; +} + +/// Initializes a Huffman table using canonical Huffman codes +/// For more explanation on canonical Huffman codes see +/// http://www.cs.uofs.edu/~mccloske/courses/cmps340/huff_canonical_dec2015.html +/// Codes within a level are allocated in symbol order (i.e. smaller symbols get +/// earlier codes) +static void HUF_init_dtable(HUF_dtable *const table, const u8 *const bits, + const int num_symbs) { + memset(table, 0, sizeof(HUF_dtable)); + if (num_symbs > HUF_MAX_SYMBS) { + ERROR("Too many symbols for Huffman"); + } + + u8 max_bits = 0; + u16 rank_count[HUF_MAX_BITS + 1]; + memset(rank_count, 0, sizeof(rank_count)); + + // Count the number of symbols for each number of bits, and determine the + // depth of the tree + for (int i = 0; i < num_symbs; i++) { + if (bits[i] > HUF_MAX_BITS) { + ERROR("Huffman table depth too large"); + } + max_bits = MAX(max_bits, bits[i]); + rank_count[bits[i]]++; + } + + const size_t table_size = 1 << max_bits; + table->max_bits = max_bits; + table->symbols = malloc(table_size); + table->num_bits = malloc(table_size); + + if (!table->symbols || !table->num_bits) { + free(table->symbols); + free(table->num_bits); + BAD_ALLOC(); + } + + // "Symbols are sorted by Weight. Within same Weight, symbols keep natural + // order. Symbols with a Weight of zero are removed. Then, starting from + // lowest weight, prefix codes are distributed in order." + + u32 rank_idx[HUF_MAX_BITS + 1]; + // Initialize the starting codes for each rank (number of bits) + rank_idx[max_bits] = 0; + for (int i = max_bits; i >= 1; i--) { + rank_idx[i - 1] = rank_idx[i] + rank_count[i] * (1 << (max_bits - i)); + // The entire range takes the same number of bits so we can memset it + memset(&table->num_bits[rank_idx[i]], i, rank_idx[i - 1] - rank_idx[i]); + } + + if (rank_idx[0] != table_size) { + CORRUPTION(); + } + + // Allocate codes and fill in the table + for (int i = 0; i < num_symbs; i++) { + if (bits[i] != 0) { + // Allocate a code for this symbol and set its range in the table + const u16 code = rank_idx[bits[i]]; + // Since the code doesn't care about the bottom `max_bits - bits[i]` + // bits of state, it gets a range that spans all possible values of + // the lower bits + const u16 len = 1 << (max_bits - bits[i]); + memset(&table->symbols[code], i, len); + rank_idx[bits[i]] += len; + } + } +} + +static void HUF_init_dtable_usingweights(HUF_dtable *const table, + const u8 *const weights, + const int num_symbs) { + // +1 because the last weight is not transmitted in the header + if (num_symbs + 1 > HUF_MAX_SYMBS) { + ERROR("Too many symbols for Huffman"); + } + + u8 bits[HUF_MAX_SYMBS]; + + u64 weight_sum = 0; + for (int i = 0; i < num_symbs; i++) { + // Weights are in the same range as bit count + if (weights[i] > HUF_MAX_BITS) { + CORRUPTION(); + } + weight_sum += weights[i] > 0 ? (u64)1 << (weights[i] - 1) : 0; + } + + // Find the first power of 2 larger than the sum + const int max_bits = highest_set_bit(weight_sum) + 1; + const u64 left_over = ((u64)1 << max_bits) - weight_sum; + // If the left over isn't a power of 2, the weights are invalid + if (left_over & (left_over - 1)) { + CORRUPTION(); + } + + // left_over is used to find the last weight as it's not transmitted + // by inverting 2^(weight - 1) we can determine the value of last_weight + const int last_weight = highest_set_bit(left_over) + 1; + + for (int i = 0; i < num_symbs; i++) { + // "Number_of_Bits = Number_of_Bits ? Max_Number_of_Bits + 1 - Weight : 0" + bits[i] = weights[i] > 0 ? (max_bits + 1 - weights[i]) : 0; + } + bits[num_symbs] = + max_bits + 1 - last_weight; // Last weight is always non-zero + + HUF_init_dtable(table, bits, num_symbs + 1); +} + +static void HUF_free_dtable(HUF_dtable *const dtable) { + free(dtable->symbols); + free(dtable->num_bits); + memset(dtable, 0, sizeof(HUF_dtable)); +} +/******* END HUFFMAN PRIMITIVES ***********************************************/ + +/******* FSE PRIMITIVES *******************************************************/ +/// For more description of FSE see +/// https://github.com/Cyan4973/FiniteStateEntropy/ + +/// Allow a symbol to be decoded without updating state +static inline u8 FSE_peek_symbol(const FSE_dtable *const dtable, + const u16 state) { + return dtable->symbols[state]; +} + +/// Consumes bits from the input and uses the current state to determine the +/// next state +static inline void FSE_update_state(const FSE_dtable *const dtable, + u16 *const state, const u8 *const src, + i64 *const offset) { + const u8 bits = dtable->num_bits[*state]; + const u16 rest = STREAM_read_bits(src, bits, offset); + *state = dtable->new_state_base[*state] + rest; +} + +/// Decodes a single FSE symbol and updates the offset +static inline u8 FSE_decode_symbol(const FSE_dtable *const dtable, + u16 *const state, const u8 *const src, + i64 *const offset) { + const u8 symb = FSE_peek_symbol(dtable, *state); + FSE_update_state(dtable, state, src, offset); + return symb; +} + +static inline void FSE_init_state(const FSE_dtable *const dtable, + u16 *const state, const u8 *const src, + i64 *const offset) { + // Read in a full `accuracy_log` bits to initialize the state + const u8 bits = dtable->accuracy_log; + *state = STREAM_read_bits(src, bits, offset); +} + +static size_t FSE_decompress_interleaved2(const FSE_dtable *const dtable, + ostream_t *const out, + istream_t *const in) { + const size_t len = IO_istream_len(in); + if (len == 0) { + INP_SIZE(); + } + const u8 *const src = IO_get_read_ptr(in, len); + + // "Each bitstream must be read backward, that is starting from the end down + // to the beginning. Therefore it's necessary to know the size of each + // bitstream. + // + // It's also necessary to know exactly which bit is the latest. This is + // detected by a final bit flag : the highest bit of latest byte is a + // final-bit-flag. Consequently, a last byte of 0 is not possible. And the + // final-bit-flag itself is not part of the useful bitstream. Hence, the + // last byte contains between 0 and 7 useful bits." + const int padding = 8 - highest_set_bit(src[len - 1]); + i64 offset = len * 8 - padding; + + u16 state1, state2; + // "The first state (State1) encodes the even indexed symbols, and the + // second (State2) encodes the odd indexes. State1 is initialized first, and + // then State2, and they take turns decoding a single symbol and updating + // their state." + FSE_init_state(dtable, &state1, src, &offset); + FSE_init_state(dtable, &state2, src, &offset); + + // Decode until we overflow the stream + // Since we decode in reverse order, overflowing the stream is offset going + // negative + size_t symbols_written = 0; + while (1) { + // "The number of symbols to decode is determined by tracking bitStream + // overflow condition: If updating state after decoding a symbol would + // require more bits than remain in the stream, it is assumed the extra + // bits are 0. Then, the symbols for each of the final states are + // decoded and the process is complete." + IO_write_byte(out, FSE_decode_symbol(dtable, &state1, src, &offset)); + symbols_written++; + if (offset < 0) { + // There's still a symbol to decode in state2 + IO_write_byte(out, FSE_peek_symbol(dtable, state2)); + symbols_written++; + break; + } + + IO_write_byte(out, FSE_decode_symbol(dtable, &state2, src, &offset)); + symbols_written++; + if (offset < 0) { + // There's still a symbol to decode in state1 + IO_write_byte(out, FSE_peek_symbol(dtable, state1)); + symbols_written++; + break; + } + } + + return symbols_written; +} + +static void FSE_init_dtable(FSE_dtable *const dtable, + const i16 *const norm_freqs, const int num_symbs, + const int accuracy_log) { + if (accuracy_log > FSE_MAX_ACCURACY_LOG) { + ERROR("FSE accuracy too large"); + } + if (num_symbs > FSE_MAX_SYMBS) { + ERROR("Too many symbols for FSE"); + } + + dtable->accuracy_log = accuracy_log; + + const size_t size = (size_t)1 << accuracy_log; + dtable->symbols = malloc(size * sizeof(u8)); + dtable->num_bits = malloc(size * sizeof(u8)); + dtable->new_state_base = malloc(size * sizeof(u16)); + + if (!dtable->symbols || !dtable->num_bits || !dtable->new_state_base) { + BAD_ALLOC(); + } + + // Used to determine how many bits need to be read for each state, + // and where the destination range should start + // Needs to be u16 because max value is 2 * max number of symbols, + // which can be larger than a byte can store + u16 state_desc[FSE_MAX_SYMBS]; + + // "Symbols are scanned in their natural order for "less than 1" + // probabilities. Symbols with this probability are being attributed a + // single cell, starting from the end of the table. These symbols define a + // full state reset, reading Accuracy_Log bits." + int high_threshold = size; + for (int s = 0; s < num_symbs; s++) { + // Scan for low probability symbols to put at the top + if (norm_freqs[s] == -1) { + dtable->symbols[--high_threshold] = s; + state_desc[s] = 1; + } + } + + // "All remaining symbols are sorted in their natural order. Starting from + // symbol 0 and table position 0, each symbol gets attributed as many cells + // as its probability. Cell allocation is spreaded, not linear." + // Place the rest in the table + const u16 step = (size >> 1) + (size >> 3) + 3; + const u16 mask = size - 1; + u16 pos = 0; + for (int s = 0; s < num_symbs; s++) { + if (norm_freqs[s] <= 0) { + continue; + } + + state_desc[s] = norm_freqs[s]; + + for (int i = 0; i < norm_freqs[s]; i++) { + // Give `norm_freqs[s]` states to symbol s + dtable->symbols[pos] = s; + // "A position is skipped if already occupied, typically by a "less + // than 1" probability symbol." + do { + pos = (pos + step) & mask; + } while (pos >= + high_threshold); + // Note: no other collision checking is necessary as `step` is + // coprime to `size`, so the cycle will visit each position exactly + // once + } + } + if (pos != 0) { + CORRUPTION(); + } + + // Now we can fill baseline and num bits + for (size_t i = 0; i < size; i++) { + u8 symbol = dtable->symbols[i]; + u16 next_state_desc = state_desc[symbol]++; + // Fills in the table appropriately, next_state_desc increases by symbol + // over time, decreasing number of bits + dtable->num_bits[i] = (u8)(accuracy_log - highest_set_bit(next_state_desc)); + // Baseline increases until the bit threshold is passed, at which point + // it resets to 0 + dtable->new_state_base[i] = + ((u16)next_state_desc << dtable->num_bits[i]) - size; + } +} + +/// Decode an FSE header as defined in the Zstandard format specification and +/// use the decoded frequencies to initialize a decoding table. +static void FSE_decode_header(FSE_dtable *const dtable, istream_t *const in, + const int max_accuracy_log) { + // "An FSE distribution table describes the probabilities of all symbols + // from 0 to the last present one (included) on a normalized scale of 1 << + // Accuracy_Log . + // + // It's a bitstream which is read forward, in little-endian fashion. It's + // not necessary to know its exact size, since it will be discovered and + // reported by the decoding process. + if (max_accuracy_log > FSE_MAX_ACCURACY_LOG) { + ERROR("FSE accuracy too large"); + } + + // The bitstream starts by reporting on which scale it operates. + // Accuracy_Log = low4bits + 5. Note that maximum Accuracy_Log for literal + // and match lengths is 9, and for offsets is 8. Higher values are + // considered errors." + const int accuracy_log = 5 + IO_read_bits(in, 4); + if (accuracy_log > max_accuracy_log) { + ERROR("FSE accuracy too large"); + } + + // "Then follows each symbol value, from 0 to last present one. The number + // of bits used by each field is variable. It depends on : + // + // Remaining probabilities + 1 : example : Presuming an Accuracy_Log of 8, + // and presuming 100 probabilities points have already been distributed, the + // decoder may read any value from 0 to 255 - 100 + 1 == 156 (inclusive). + // Therefore, it must read log2sup(156) == 8 bits. + // + // Value decoded : small values use 1 less bit : example : Presuming values + // from 0 to 156 (inclusive) are possible, 255-156 = 99 values are remaining + // in an 8-bits field. They are used this way : first 99 values (hence from + // 0 to 98) use only 7 bits, values from 99 to 156 use 8 bits. " + + i32 remaining = 1 << accuracy_log; + i16 frequencies[FSE_MAX_SYMBS]; + + int symb = 0; + while (remaining > 0 && symb < FSE_MAX_SYMBS) { + // Log of the number of possible values we could read + int bits = highest_set_bit(remaining + 1) + 1; + + u16 val = IO_read_bits(in, bits); + + // Try to mask out the lower bits to see if it qualifies for the "small + // value" threshold + const u16 lower_mask = ((u16)1 << (bits - 1)) - 1; + const u16 threshold = ((u16)1 << bits) - 1 - (remaining + 1); + + if ((val & lower_mask) < threshold) { + IO_rewind_bits(in, 1); + val = val & lower_mask; + } else if (val > lower_mask) { + val = val - threshold; + } + + // "Probability is obtained from Value decoded by following formula : + // Proba = value - 1" + const i16 proba = (i16)val - 1; + + // "It means value 0 becomes negative probability -1. -1 is a special + // probability, which means "less than 1". Its effect on distribution + // table is described in next paragraph. For the purpose of calculating + // cumulated distribution, it counts as one." + remaining -= proba < 0 ? -proba : proba; + + frequencies[symb] = proba; + symb++; + + // "When a symbol has a probability of zero, it is followed by a 2-bits + // repeat flag. This repeat flag tells how many probabilities of zeroes + // follow the current one. It provides a number ranging from 0 to 3. If + // it is a 3, another 2-bits repeat flag follows, and so on." + if (proba == 0) { + // Read the next two bits to see how many more 0s + int repeat = IO_read_bits(in, 2); + + while (1) { + for (int i = 0; i < repeat && symb < FSE_MAX_SYMBS; i++) { + frequencies[symb++] = 0; + } + if (repeat == 3) { + repeat = IO_read_bits(in, 2); + } else { + break; + } + } + } + } + IO_align_stream(in); + + // "When last symbol reaches cumulated total of 1 << Accuracy_Log, decoding + // is complete. If the last symbol makes cumulated total go above 1 << + // Accuracy_Log, distribution is considered corrupted." + if (remaining != 0 || symb >= FSE_MAX_SYMBS) { + CORRUPTION(); + } + + // Initialize the decoding table using the determined weights + FSE_init_dtable(dtable, frequencies, symb, accuracy_log); +} + +static void FSE_init_dtable_rle(FSE_dtable *const dtable, const u8 symb) { + dtable->symbols = malloc(sizeof(u8)); + dtable->num_bits = malloc(sizeof(u8)); + dtable->new_state_base = malloc(sizeof(u16)); + + if (!dtable->symbols || !dtable->num_bits || !dtable->new_state_base) { + BAD_ALLOC(); + } + + // This setup will always have a state of 0, always return symbol `symb`, + // and never consume any bits + dtable->symbols[0] = symb; + dtable->num_bits[0] = 0; + dtable->new_state_base[0] = 0; + dtable->accuracy_log = 0; +} + +static void FSE_free_dtable(FSE_dtable *const dtable) { + free(dtable->symbols); + free(dtable->num_bits); + free(dtable->new_state_base); + memset(dtable, 0, sizeof(FSE_dtable)); +} +/******* END FSE PRIMITIVES ***************************************************/ diff --git a/dependencies/zstd-1.5.0/doc/educational_decoder/zstd_decompress.h b/dependencies/zstd-1.5.0/doc/educational_decoder/zstd_decompress.h new file mode 100644 index 0000000..d89c835 --- /dev/null +++ b/dependencies/zstd-1.5.0/doc/educational_decoder/zstd_decompress.h @@ -0,0 +1,61 @@ +/* + * Copyright (c) Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + +#include /* size_t */ + +/******* EXPOSED TYPES ********************************************************/ +/* +* Contains the parsed contents of a dictionary +* This includes Huffman and FSE tables used for decoding and data on offsets +*/ +typedef struct dictionary_s dictionary_t; +/******* END EXPOSED TYPES ****************************************************/ + +/******* DECOMPRESSION FUNCTIONS **********************************************/ +/// Zstandard decompression functions. +/// `dst` must point to a space at least as large as the reconstructed output. +size_t ZSTD_decompress(void *const dst, const size_t dst_len, + const void *const src, const size_t src_len); + +/// If `dict != NULL` and `dict_len >= 8`, does the same thing as +/// `ZSTD_decompress` but uses the provided dict +size_t ZSTD_decompress_with_dict(void *const dst, const size_t dst_len, + const void *const src, const size_t src_len, + dictionary_t* parsed_dict); + +/// Get the decompressed size of an input stream so memory can be allocated in +/// advance +/// Returns -1 if the size can't be determined +/// Assumes decompression of a single frame +size_t ZSTD_get_decompressed_size(const void *const src, const size_t src_len); +/******* END DECOMPRESSION FUNCTIONS ******************************************/ + +/******* DICTIONARY MANAGEMENT ***********************************************/ +/* + * Return a valid dictionary_t pointer for use with dictionary initialization + * or decompression + */ +dictionary_t* create_dictionary(void); + +/* + * Parse a provided dictionary blob for use in decompression + * `src` -- must point to memory space representing the dictionary + * `src_len` -- must provide the dictionary size + * `dict` -- will contain the parsed contents of the dictionary and + * can be used for decompression + */ +void parse_dictionary(dictionary_t *const dict, const void *src, + size_t src_len); + +/* + * Free internal Huffman tables, FSE tables, and dictionary content + */ +void free_dictionary(dictionary_t *const dict); +/******* END DICTIONARY MANAGEMENT *******************************************/ diff --git a/dependencies/zstd-1.5.0/doc/images/CSpeed2.png b/dependencies/zstd-1.5.0/doc/images/CSpeed2.png new file mode 100644 index 0000000000000000000000000000000000000000..42affa46ea4789c4d722fc47e3aa71d23058faf2 GIT binary patch literal 73335 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�q`%Hd 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�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 kkNMaC_Sd5~#zZ%vFoveu=-i&l647a4m#-~a#s literal 0 HcmV?d00001 diff --git a/dependencies/zstd-1.5.0/doc/images/DSpeed3.png b/dependencies/zstd-1.5.0/doc/images/DSpeed3.png new file mode 100644 index 0000000000000000000000000000000000000000..4818b11180a74514e1f7af61e0a9dcd91e6b4b07 GIT binary patch literal 27123 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 literal 0 HcmV?d00001 diff --git a/dependencies/zstd-1.5.0/doc/images/dict-cr.png b/dependencies/zstd-1.5.0/doc/images/dict-cr.png new file mode 100644 index 0000000000000000000000000000000000000000..6da34da46bde23942c10e100a3354681399c3e66 GIT binary patch literal 90412 zcmeFZ`CF6c7B*TpyU=b6)Y_IZTdA^J6+{d(iEan#Mu>=t%oda&Q3FJT1d>Q;>i`&$ zY8XPIqJ%j`LJ21Of>V$VlcB-S#_w!S}rfgY8FhtHo%Vu{pXWLro*D? z#pkI%N5Vh(#OAB_KN}##H>OMWeRAaB{u5anmZ;J74U2aP0M&!O6=}^lV>zYue0PP{ zajW}VuEX~2{r6PN540_l4?Zc{_h>^}Zrdl{uN?c*JM~lFtG~7V`sHtJQ25C4PZxqsun#%%pjEncfkf5`=!hC{yO6xTmh_2D+}FLD^$hv{^P zJci5u-_56y_6yb};^l_ezrX9OnSKNO?Ecu5k9QMaybn6l*xGtU@$u$GmU4@MqE9p0 zKdz#&HP>*poyQyJd{`9HEXZrfd3Vsa?75HM+Qu{2n9U=zp%JFN{C|28(`$+g;#e>t zU@S-VoIhpD!x;60c^1}Q(<=dQ(cAv%%ed$MG>eNL=SOO=9C1M{SusxMLeY=o=|%`2 zeviX9>RJB*8J{~>lpAtRV)W`dMJ0%QD0LuS@SLBGRKilV9Ej7)btk$J>l8SiBMK*u z#|qtOlWL2BOEC2Pzg}I>+&J~Q5;i!O=ihaQ4B*$I~`qQ18 z^x+Onio=L$l|KQeCB`|`tktjn#;XY3`r5oFQ9a-oLycB`gn^8bYslWsl4X)4+z*D2 zn|=?Bjk-Z`o$ABi2oYwP23!w8=*`a*TjD!%Gx>%W^U-uAlr$cN*>0bu8^&G)$~Mwd zw@Z}k6HC@5v;HZEVAE&Jz&v!eY#uY}yvHJV@vLmU(s@cZ;H*!FZS@+$+}L?<_?M4J zn*0DQ<(09DkIu5?J@%Rktp0|#^8M@9*8UatM{qWoze>-AK}06g2^2cY#skThUNF}aS4W-s`=;+2`2y9+`sVG$CsC2 z@BJzJ`BLad2mA89!<{~Sjhfs1w)54sa%-3|=#zN8z_r!5c~EQ2=;uhXALERxvrwXT za{ewBqe~WFBU7FrbVXP^8dq5ny}BQE-w5qoZK0=AFAyY5@Oe6AsjsdV67})!;@=hNE|%Mf5ILN;oc2yV>7y|rdwEO<(+IXOjj7I<5^?c)CRr|l(`m!W=Y!XN2kA*j2d*r3EfJ(p6><5 z$SVh*^R>Jc@PC!rt64_eTn}9@rqk3=jE2w4nWgLU@7c${d=ISP^^oOOwtcmImQfEG za54O$d5thRDgO`|{Vtky^qQucSgoV4%TmzHR z@%&MA1T{C$Qn#9khR6&`2{quYA^c4II?2#AKY>wWCiUTGiMj(AW2kESuA2O-7zvU# z6ZtvsRC-#hQDSg6%I3TI`jrhbE@pu zmyH_wxaownb>&#}jPMF3(I~lKJRxgxN2kdcAPv@0Kl1v=IKzWncSFAM&HSqg%wN;J zN{LK22$DHpAW&q?(o1>@{|crPuTs(Z`qGQj7V+BgKX5`4W({{`W+L9$!Tx$Q%lU#) zUq&>B(<$n=O5%6fFfHjJUkAq|y^2o|!wL2a^j-{suR@PP+Hx(h)<($@!|(m3C2h1f znCn`NBzjK!Cd0X2BH!@bgQ$5G-yz^4F)KuMarr35==?SSrJ5RiZ|*6IKAN5}R+%T8 z=$zS{iI&j$X|U-FUaQv(awR_-A=W;}WE)?B6yXz?4bsA?Y~wsec6ShKQ1WS$W|&&_ zTb5Dx2j(A3{_%Q+Bb}jr0M^G&SU(0)Mr65im9F2|cMkk(CR%G>Zk**CRaYj##y23E zx+eauA()tkp6`$6QPzU#PiLGf=lME`>>bP$isE#VU+8(f&RRi-Tca z>rI#LD2M5-jrv@pM8`BzwO0{Bqh>i6U8q_t&dkK5&q!XZ!sbRnihvwl-#K~^nfgpi z{w(IJiK`gf;?W(>+S6|w>7Djjt95iu9o;xw8AM+jSK1pMy9a7r);8)08WAj_ z%y>p-a=E*MB^{95L`t}6v; z<^~~s!~y1c3)*PrGvl%D2)c$7V*H#@xL0Y;G$n;+&bKMIDl{{{q8n7FC5=SZd-M}o zst*4759y$7^u0?_8=qhMU#ynB=Q{ZR|MUNQ=hHd+99{Q;4rwR&v|H9?%qcpr$;2zrMrUA7n|eq&hS10t{}6V7-{<=Y$UCZvaDisj zo9=)RRzw^1>ARujlMI%zG6?HMG{{L%adf{#XEx8h{=mPRIA|x03Z@iuNJ(iDAB@zst4% zFI(?qS+7l-F^u=Pim2AQk1T|VFf%}syYj5RJMyi-^>!9BSghiGq(HNlY}RM#?Rm!g zcYbi*i++23mOJ>7-Ry%+k2(KWDw}--da=HN-T!|oj8BN48@@kyb_e>DLr!Nw*ZIDT z@h$DQ{w7^>{Ht`MO!k6hU9`*e`H7~GgW|F2x%hMR|Iw;cn*FMZZr{TbLBN;EB!_&bv#Vlr&i$4ypG2iy`>CdYV>Gb-t0nFhY2CBFJ9q>5|A_d|~m$qphEw z@se$=@q9MFZMAQcYVl*WBZQf${U`XU$vqg%=JLD+wg{(kbTaLsC}G$yDG{13K(M!s zrhTNJ0T|OpTIsDX`sNz+diUeu;GESB#h>293oiVlFMETGT1WqTKeD!5&GU|VUb|Fa zphcL~Zl2Ly^;^GMbhJ3;Vw^?IX837_d}ZXLNt_4Fb&kvOfkHis%$VfQEeO~P+afYo zH@Mu`*Mzrh=q=8k7KFnbpAura|E}9qrlpX34kiw@84S#TM8(*(?<|GWW=Y*KIY(Un zM0l~jvqYqKNuN*uCvoy`_N!{m)%ch4#l0Lpp9`TIsqKLS95Cq2*T0_Ueg?zie)Vi6 zjN29epVN6h(Ych_M4xD2p)uK>8G`21yV^u%+wBn#Ztkt~1N2swudy|M7op3SI{EFF z0gZH=XV7dgF94QA7VH78gI}M`tvbK`4|quiT%4fn11=Whf?3!5k$>-GH}5JPbm-*# z4Yn@!=+OqkutZVnrOpGrI6Lc5Vx9o4xhBj?OStUW5a0(^+H*L7zmIsv{4gD)4=iiB z9C__Pv0n;z2Qjc9sLTZVvd2FszAj2)ypTO<{h3u?1SzC|KbmmB`!+pOrXuASZf!f| zQe}0^Mbt2&=!9Hg39NxX1H|@ zlDZh-;#%vt99ak->MYH-z*rxC^M~C*^-Zh1)@w0a0kW`q9PlI#Ao?FHJKHavk!yFi zYqZ6IVPr~s_S0*W z|Iakj=f+H~1j1PSYB1D0WSuC3hU-mNmyi7LTAJD`+zq&q!YR#P$%9cnPqx2#8xt=+L} zZ*rbmV16yNY^uo^YNKsH1iG9k#tjf$tnoB<9K=wMk$v!%X_{#*fO+P-`a-mE8&1_q zq(hs*=}2~Yo~V9qC&suP$1`oJYi!^ zxqMsb_;kn4oG_x{vHDq*Cn%f5YHRwiyGfzBuHuJ16W{Hf&%EEH>JLcF?p%|qNECx@ zlKbpfj`(3AmN2!o-|Pjw86kCJ@u>hAptpcfy_<~;8c>SipC{;P1mJrd#Wiro$sI3c73L5f5? z`u11`t-Zs~69Ksq3;+~=2mWE zV3CiQd89D#_(q{Ey7TRcr{8b)9X@=vFBs)x&HH&~_uAL;%ls^;wpiD4|A)4z^{K_~{-- z_080hJ+7f{<+aUm(7UZRa39SfpTI7Mz?Ay@Y>r_E-W4THPwCu*Q~WP4ePaKezVY_v zsXq~00ce{!iHl+@Ab=pkS=5}HqH&kDk-cO~LG?j#)~CVguRt$Om?6q2KXV?;9EvTh z=Epn=VziLj4QyAOpEj3qatGP^=wLNr{O?<@X1-ofbyweuZnnBc#5p7fh$>=~KX6^6 zylv)QB+3-mgJsLlHD-tNY<~IKYRi?s?A$MeP^;at$v2j9wBk)qZT+Wu%A&>j#hePo{<1_n!YQqdN@fTZY|BH8$5@4bCusTTjR^>`ybr3DR#N?ZQ6U_PE)+5 zSr`NQEnLgbklt^y-wLMN`5wb24?4LxoR^cFn6})xp-7i!aoM9W&LzTW$&0r;Kka_! z*W+}T1g70!_x5v2X5oFM8AMO>t3C_V5+(WqZbLHG`^QBdLik{zqQ`rsF@3c#})QR%ayCiA3% zMrNJ5I%2K|;tF}#t7agnplX<)$Sg?JVy!UoKVD~kORh%NFZlgY$%z1-*#aFIK64q*PCB~FBCHNIEx+DE zLhTD(Zh~~jhx?ad``ho^dFYdS=k`&@NFSMtiHATjXnm>B@jI;yW3;Au4OWtlKbnV+R%pZ~-|4Nq}PV`+Zro=Z>)`Aj#w|Owx_P{g+dkBT!)OoBYEx zh6e70M9iFvTg#fHjrIGXXH7wJU6F$` z$sB=0+a{2xff+S#8%?g>F03p9qtd(7z@bu7D1EZYSG0QW0`a{+otZM{>U577ME+77 zCaz(|esKm>(~u0#61tLjWr&9@_&L-adjvbInU#!2LYmMbWr*ARYnEM&GB$wGJ zPvJip$v28!RG$)C#wUQuOD6&I!PW7FsNRNN1W`~pT(_BnMLyn6wS`CuhUM=$CBwcN z6kRQ1fjK3W+YYmKAmG_G!6A$q`>9_TV+Syz`drF!7t$YP_`v!i_!~Ne5nsmy_V(Z4 zTA6Tz`2OAFo+fT@^S!1h4`}6SD|yQmG|E#E$NOa$(nj8rx#BXrw5(S^KyCG#M{QH& zc@7!c`VW+|*>c^}TVorjltCO}3J9S|)&^!I|J3SoE2k-lIrL7yBrb@$HVOj;rjYYU zObFuzJ$dn%``k8J;n@PGi*rk6K!o(HY`z>8cU(#N;n{v=&*=s|k!HLsTYd3rIeu;u z^WCQYbM(jp*mF&VbD>910SQcuLnl^)a@v;ZbDbT<6&P_1C6n2qVyUXED}u;KMB1Vu z<=$!uUyEo>R7IAxR9z8K5>+5CS&8v2D$5F;pbf-Gs46cBO}o;R77J>%ynq=EL`Zq_ z*`{{d{BkQFs9DkbhG#7a2l*KR-C26QP(qFbX=g{wu1SVxgUY>uvOn&8KQE~)*fd(2 zE;W&X;hjId`KNVvaAEbchj9q>FQbXp>-gLt=bryunH)h4yv&@ulGep`TT2L4NRnX2 zK0DeJW#frf7kAo;TLJMD8vxqp#?w{m!y*fliPissxhw8Y&<3Xv7_H$3;>^K!6_Nz& zF{s2Zho#WhMZR1*5)+@rIa}}Mn?RSWY;asV%F3Q{OqCj@@>E~0&1EyQM&Ykb-ULsi{?q$49Qd#dDz|FZMn^~-52*nQUu*&^ z<3*)@5J%nThmU`sd?7JC(E||obLi8|*I}_%dzq1pt#%1KK;%JhesUKUur?tU09DlyE`Q*eDIa1}2& ztPcIUqZA0K?X^v%O;d5SgOHnSpNG0H>TbnY1$f05>J@ja-`6qfs=}ZQA3Oh}4JCx| z1ii8$PP`f{t4U+$_tuPk-jAza3<*V~FC2%~e|yx*oh*-RCAXJQ*=PAhZh?*}bKrvI zdO;%s%{e6qoEF{%%nEQk7;i(YM$ub}JyuxFi22h(W?-Wt>j)HR!#RFSS_PIxV;3yr zWOF}RfzCWB3Yji&G(W}M&>O+bu^bor$*9h!^~`4=1Pvy3If_*Xmdsq^h2_x}is5i_ zHLt9MR%*V>;$omnV~U@|a*|={HWw}*y5;=z9v&d)D*EPhwM|uCRA^%MuMA`_wX#J}Kc_>I$|kaR zi86se;Z63FOEAfQfg{z9=+4vsq<+@)in5Oz?&|J(OP7qh6}NYB^uQF(?sEE#-qE-P z!4q$fmdC}4NNXMUIC!bw)>Qxg+6yUQbp*Kcc(o&9lzuV#6H{-*Ll~aA`DfPlB z`KK7#a5a*q?wx)EqejGk2dC59ro@Q{*Ij2+#{F* ztz7&Vy^~Q{rI~3?+W7`#Z76q=%ziOMOCQ*M$~vh2RETKWCtbU=T89SQpL~!`3=2PS zA@my_@UFAs*8?92^|7#rNxLnQmd+_6N6f$jz21MhxcSW5Ryh}XvZGmcct5d;wMXeI zY3Zc<@I&)yJ%xj>>un=IQTi<^6%!AH z+cy7RWE1LMCNFr${t_AN%1ACa z)P{T_oU=G;wCHy0jUaM&$TE>Qkeb?P9_L;dE+MMf5W|IxuQfrC#V;BZ}BS8-EZ zb}n9^8qh&gJQ-n-bD@q@r^LNo_dTL+;hUV&wd~WodLCSZ%pZwc{wy4~_VdJ~)V#5o zE+0s!npXwPmIeV^ltpI4Ykl9vY6>}FtVBn*#B|6ecnS>yGuCA)P`yRKLep0E(g*V-Nu=E(NDs z@MZELEM8@MGFS$G)gmEQU_&)fJV8e|7ZW&tADsy0z(QjSouJBhfoJguWHIrzsOICE zCB4k~3?M~vvMVu00f-=V`%yfSLwAz9ogN}Zg!8Th$oM84e6#|mx`Lh?Xn;6F zQMqm#w1o%5AC^_QpcglOW_ARuNh2T<7Z|!3F{Ky_>R) zwGXPEDNjPFDV`A6CyCIcxOuV|!QepR0Hu(6+Pmg>sP@0eJ&izFZLg`x^-bM& zS%G5LGGF+Mpbl^HQ-c7%D=4&{*AdXdj=}}Ur;7*?1JCX9DI~Fj9@$&m3`u3mcx7$B;7?AFo+1uI9weUnDDry86jM*>lc zU~-dYfNbx+{5pz9;*F`^RpdCYMpj;OOLEuW5XqBvN&d`XtOwd+_nQ1`ItiVEFV<&I z%#9Z7=WO~j^fYn{IwL_dcQA!P3rk1L*1zZ_Srz*Bgjpc>ggR#EQ|9(y2=68+bZQP} zNnvwVPk!fJ!yL)r0`fQGXgTGGvW7T{w9~F8`^_H|0FNmXWP0f4j({0dXQvY z)NVVPeHQp;ThPD`VKiA4hLb5?ouv9{Z%C&@z{;~gSKryk&mTO90{~hhc($Q55j8*K z%R)-B-c85+8UMOcove5F%Vve^HC^GlEP1Yq3WALKmuG`k<_z+Z%E7lCf%~lNnDw+B zKvI00Hg=M)@4)%J>X5-RQ|E2_$42gsPsE(Cu06s$tv5AU&supuD^hfg-?oD=CN_sK z1b9KgelR0-paws_sp`tNBc9raGX0}&HS@u#mKH49L#%AK8V8eA0Gl9H zV=KXK!U70hhK5v>`1!>3#-cm-MSUIalRrFvBv#6Z^u7{zNSt+}!Tyzh{KZ3i@tfQs zQ*r(WvIaPdW@}mQ;(6}eawT!HH2s?(r}l%WUR(dXfDAxrEN6Tp7C5XbKdn!0fPCRf z?w&MA5f*zL!Y)4a=&%!SZg91WU+bQPs@<>b=RaQ^DSkexb%lMARB#PnY;a6_(VM>* zVG%`4i)8sI+z%`P5$@eQQpT`~=$p0@kO*y#YymG5GoURIDJ9D}83KYSQsjTTw`#1c zBv0_9ee$a$<2cLz2ckZRk}*66a9&e}@7V6{I&N_y=xA(+lpWAp*HC?mr~7)qmxDub zdT;dhZ;P_2$o(Tis$u_ds$yIKL1tY>?wbXmpSnNct0d?gBaJL5+`$dx=*Kn_Tb9Tm zX!6_*aagq4#+NKPzo;Ko)kHj^apNGuLgfr$PdYRV^*_o%L2y>UevmzJkqCq{|40)?AgVGZf44ydh@9=pnLa{_Igj4;&fj74Xjg7#vc zrf)?ld|WogGVgD9t@Q>!O2UNcUl7l1@j!m*?}HFYQ(mwOL@BtGmTOU2iQ22Z55ipC zMKy@!2aO3-8-;-FPsB$ugX0?P;Cn^#8z}>?mvTpoGurBFd_Nt5Nd!xG9Xi-{b&lVo zGoZSZ#ose~L1n6~YFQ%<*H_2`l?fCtImHe@ZG;p5dYyhCe8*^3+lDJ$J5<1N;{);T z@?`{L)@kteW(Zo$dnj@<{ECGY`oostE8kU(;*Fkt=}w`0V7%CN6YPmZ+Aew zm9X+85TvlpzZ5ja2@#GypEoq9<2;FJC*dmyV5XY7b^eEl%y?+&YzV3$jOZvi7#sgO z5g^I{Itcqr=OsSY7J%50!0N$eWK1vpr#XsKJ^_*(#0m;$0y)<1q@>R|Z=Nej+g+2~ z+eEnFACxVE)+8|eOS#ort<#qiUbBT(9R&X;GV@Q_%~q&gXT!TIUCLIw#?seyrxz5qtou$C893l!7;s*o|M4(3Ts{`u(WKVWMGni8-9dmdZS*|!3o{=(Bct~=F z#>IlcjBed?`YViw+|N)X{8O!YonII8a>4Lz4dR|I#SZptL*^IrE6XVrWp;E7cVA-0 z`rOhsx52Pt9v*^+uT~S+l%Ea@+NB$c4<%gdo7l&jVHfTfuXb_eugJb9VOG*U8iUzN z?~s299}DVtlJ+lJ$lih*d4~+!O9F8kfp#AW zEN>Jr#$dffLIF;vhDk}Tv)e#^RwaajQO$5653Yb*S_&MnhhfZC-b!|rcx;wwacRiH zVf*~l?$DINLrH$4-#rb5B><#nq|N?2-?yck+ZR%Ya}z`<)`8M2QH`Mti@e_y!AS0H zw(x67Sgx_IcMWVgOlUsrix1ovhY%J7p#zn@aalpKxfB>x`Hw(kk0$|fr?op{H-s~$ z?2oj?%3GYv4eBMO@+kqBI8?fj@&$>3 zM9!F4Cjq6*STn0C8$4w3hFLPckg!S{s&kot1YtSQ&ie!)@Sj6sv{CRY%Ffvs4@FlE zxyf_5FjQ1C8lX3k@8u&_AZc_k7VkOO9K`f^Mn~#-uR3%WlBAqOGN2?5(zxbp{F?5h zv8VrR7>*O^gUaStlFU||1c-m2d^hnRAt%V@15wiE(}5WpL^=&VWLFmq!nacoDuUbA zH+Xt-a}{^u+8zQmcEWRW=_}Wp32~4x6Zv#j9M8l0sjoL%r5~m$?<(S{Hn+ldx^hcb zDFU&+;f6^12Y0#_IjWD z=$oMI5^kg+Ipgv50f>eg+XrwiTgqb&fmiC3$2WrUsOf=l9BMd=eU+i9V+4d@lXuAq z8Y1e;20Tp!a@*kX5KJQM%(A%@v6V^0Y2f$99~(~M)H|!3Tkw)Evf|T&OFW0p5j%DNbIuMLlwUPRa8Bp3PEUPB zY{8$qfJFw0Qt+j|O-_l~HN_DS$D@TE0?#Wze41t^(A4)pPVWh|^auhMX1-p=C7LpU zzQ)u%-#z{b%YpTnRfPcNr)xN6tiMEiyc?;DhX&OQ(f;`4@F3ddrCi2ox@k74za}j3{oU(69AL@F@+tYrmI%Vp`gH2iC@}#}bIWr&~2%eX3QJ!{X`2bSF zi=z^Ue1wajQ*{PB1iNWGQvh1OI&-|z+v}a^e(f(M4h!1^tFABtJ}S&|p^4n?GYiFJ z_?q3qMHTUCTt;EL#Ege_L&a#{R0a#V4U034OF+I!KY*DW1 zsM!9sl6089^towZZuX05v1+?w`0?kEd3@AgasRbC5utU(g23E6-pr1s;3iyhEZHwB zap=1Wr}uw3J6KHEL{vo9yNi2!^Le06)C?+jZodyAaGs0Hddl75=c=}IR}UkTsExC& z5EFjRo2dtCf-imTO0qZ#oE?^JytX|<`CncKGP@?^#710`lkX5Z*);$AI&9yG!Bqz} z>WU7!>@N<>U>*Td@3O|%qL;rJ_zPQ|xi>yEWGh;Hf31wB98Pp2yo|WWBm>gL3CsaM z3Oa0830jo$6WJA^M<$`EqQT)2cRg2x--L0bqwKQHDlOM{G70o;V6KU5L6{ffrSoI< z%#MFy}@up?e~ z7xd!oz5``#*V{|*ArPB;qyBIF`83Z4O5lqnNbJ$6ADawFa+vkrlQ@IC$2D_Gi$$J` ze-|cUzjeuA7khtO_buvu`>udl><|~1em_mg*%;*-N~fIGOW)O?<)(Q%)cY8bE?0k1 zbvSguE)Fq_UJ&e?mG>{&KClZbL>v+g^r%x!ZT_<3`0ehc$px-@L317{r5OwKiC<9E z4B9yXx@x``_AEDN#4Fgm(g}Mvtjdg&kE|~mEwj5l8><{Mh_Cl+{_TXg)2}L`c$C;B zopyOS;S_*2iDNkb(DqtaT?$leH(bM~Zu-@fpNK6*p!W(QsMoY- z)wB84yDq|YJToD~f9-d|>A0t~-v;{fRBvu&gVL zzv-H*I+BIQx@NEk4()Z26@j21=$)S_#6^Hpjz{R%O<2C?)hR2!2Kl!y5wLd^2xH7E zkAY@~ADd5&&mL8jPJ|!yyeW%Y48qKrncvAf_B1!?kJGM=2O8=&Ew@4`(qQIM%v=ou zJFMG;b4tLX27*c?y_%i~$q_>45o}Y2_ErEhsLmQSpK?%STW29VOBZ-HqMqDKGbt&U zTfH06Evt+($UVTSW&)w0A-~0(Px9V9u@7}irv85ZdJVw5p{`}Swe-KdEblXOHUW#C ztr#ZmKyg}%=G50qsZ-wuw4ojZ^iUo*IDBZL2U!^=H;02+4_HpunZhRw`Kbf-p-zI%>^=9QU$RF_#&{ejz%??k<=v_o<8T?Y z(UxH22Ve`XFaL5OE|4t_+W~XqmM$#SZHK?>!v+MaRBq6rNZv@ypCp_IAQ5u=mG-~9 zvSfG2_0>gJrY}^_yb?O!{f-jMnUAfnX-&Em7-orY(v(F218pNJe9KI;+A(tz@j7+z zY1jM~zZP|Y-2^{?$`)`6k6E|aiB)dgnZo9K4tn`$$)u_C+f=kwcHw7B0*+!+9DEQQ z*rNOd?5n&F>Td6K6$aJ|cS6UyPY?Jm#@dS`B!L21W3pgBbX9XbFr|mnw=Jsm+I2={ zd_(nNtY+dMqyXv0VVn9jB7h3@11LWT4KYdDMCR+~-$hDo?e#|=lTvEbJ5RA8FtOAH zKge=oq)@}RQp1A?GS8}c6NUENobcCnzuS|z!k}vK!P)ZTL_qt^lysn-n(Z1CBm8@; znUwh#u^L?iYe1MZAIwK2lxaw)V2`uLe~yk%AT?&z-?Rr+84mx<9&r-Cp!o=P11Kh%KGt?wMP1cE01<{RlXEGxfCL? zdukn}PZw1BXt`<;=WInAb04X@j0dQ;X)p*1WYo8~GI!C*aCr8j1x^>~T}5h2=KGPk zoZdVKME0w57aVz>@9Iq=vK6?Qju;a_R;XD4vpH8h55GEcDd-E@BZdzo`9V@_Js^ux zspeE>{-!Y%W2e6>oqht$Z@+F6QjeBW_UfOwW-zZ$M9jxGyZ;177AE*d1|{NUp3h+E zwi7bH1;;v^ftyl)4@t!!*^e<@krsiruf}jCWlpl2E|_%N*#;69MLgN+#nO@$PaEI+ zw|;X0i^Q^J!5B*0z)|kKAw$X&Y}55BM&@#jJM}6Gm#RB%) z>K^mLkz#5w*+boQ00UM6uAsLf#SHGu@{hF*ZF@(@e@wNUir5g5xfIG?(T`8AgX35`u}K7H}s(dTkqgmsh; zB8(Tu97N6yD5@K>RyQ07%lo-faB=4;M+$ynsD2SV;ESvw5d)xt?odq~Zn7g8loELj zj4?sYX6?R7)+F-w9qZTjn0ie&e4{HI?BaT{IikAIi>9WEprX=ZZ>S?}ll3)b*#dr` zu$dh5y2!cFq!fN@o^$Uot27QU?|HN$Z8@4~EWKsR-KV|IrQ}o8pDkBL1gyh~j*S0R zmV7j%0^wL4|LBr?i!#hpR72wa1ar^MyE`%)us7Y-HS^}T&hEE>*}c(qIaH|VI__5U zaTnL)@G3t@ZIj!>=EHbOQ?jGr5!Ru?Rd|ZtF(EYxoF^YJ!ETbD17vm3B}=yD>Lac0 zW^&HGJ9%VZ2a7n?8(E!mpsq%J%{m46R^st=}u|$$~LL%cNROobvy=F+ty}o z@oN|DH|ZJT$t8OB55j`5UG1ez-{e9L*EgA6^G(G$Q#%>Z0!wMM$0A)Jd_h~K>NoFG z(VIdRYA$7~A_v_& zy#DZ1py6osr`U>d7lm*9)C-G(AGW`K7?V)gEAI9F#qw5UWO1-1p3D|ESGfYxUD(7H z!Q=rYi?=$j5iHe2oB#&~E|#BvLRt&i4H@tDFM?ZJ;d7|b^C^nuftgGKbq{&6r(A>I z7!U2%vElO>I%e{cWr5dikOdIx;y79F=3aHmYQRTW8xfAVbT}#?*cI}ij@nEbH)V12 z#Y4wqu2m%+xdy(tJoD)rcVVEsr+mVb%B}_LYf5Bzz`KR=%v73BIg}-T7(xUTAsID~ zuZUhq9>7dd#XfCaTroW)+B_53dy?MLC;l|3On@i5O3?Obttsptwy$PQ9DU^(O@zyC zj^#z67&ZQ*Q4ayyvzI{7?qk%gB9`2z%4tHv55$rkqDy)@7K!u>ceuY@7Yvk@3^*n&wwOH{xAEC74-043J`ZqBd z)>crlEy~kk{D;bK#tr(U(6bg#^V8q|b_-d`Ia z<|u@C_TYNBPQEZ=-($HN-skyex6s=+k=R-$gcA*6cvi+TPJ?uZoH{|W`7^j7BgGbi zUfobx?Zy5iX<+wLjYAwX(!fi0ofFE^W#z5l0*e9|P*cYXB)2q3u> z8-lzOY~9rDUn>5d^;VOS$|f;0;!+Ct$07G{U6Ts47!&=P&^G;X{lfH}pyyl|-!x=S zHd8xeaepNfw{Qx;2`6ejH4E8P3<`gXJ8%&Vws zs&?ghISef;{|yHk8iPl)ttWuBC3PM)JHVG35*ms?D2++CGV`h*hWFqNHwmlFg<7S4 z7;9UJPI(d`+Vc#S0_W}I3U^9il5jqzB3_m#OQCAS`V>8z!mQJqp5+Xn5uLN=?ha;4 zsIA$JP^!$6-}xNu1%5`C&}0=7lY~OtkjFoCp$Z5S;59LQxiuaUVA}jyYsppYIwvB2 zDo5E&q*BTQJhSF%+EI$Dic6-V<6m{v^ELf%`|E6|*L{7Y%RS3B8S4I0C*=|MrjB}T ze|Wv$Q){O<-I0WB$D|ca&qd30T|$k)aZ~&i$@vLa?aB&#EpU8o!uG!YFaJa#eIbY< zJB(SGZ*m*Y&NSvvX=sNijD<`mzPL{%aY)T_;~BT}Je!b`jp?@({->OI-}h9?C=;Kn z3YDfO8X5M}?c)Zz-pH?fsk0TR1)mC8|MVk92X3(g>k+?#v1wb&c7VV@<4kukZ3kiF zF8xs2@kGjw3-lQE)#2U$v4EbMy>$yAYN5PY=T z-?uyFH}BBjRQ9Kf>?{a*tV(V`T20lZ!o$m``~K}K^`#hw5U=7PAhJBuqaWl8#vevV z-nUH;i}uY9&Mw2(YQX3eSuxotIQJt4U9jV)KZNT$Z+c#GrM<8bo--CySf?L{;q817 za+3(#{AJ>+0l-b}g`dco_xi>0d9=@;YT%~$r3}9H7AOVaSWbYr${NCeLa49l$3Ep! z$#yb1mu4b7?>j~gPltqoV={=<-c#-t={a7W-rPz?fT@ubtN@y36rQMtx?&45JjEHl(%+l& zweYBjBGqF>$_7t)I9dB<))DVwonAkY%>rsuVslQlPxYurE8yYAWm@@)^5MlZO4+Qo znzgOnol+?zBbQ8~$jD}pLmKCFCe0V=la6ircYK=0)L5LqZ#NQSMfX_f{VudZ5xzV7 z+)>t2a3Q|fFC77OX>i(|Xkv7ufh|EiB7wJg>fcuyGxRr-55wQo#W$c$MOu47GpvxK zj;kl$^fVU4PZ+BVE$}Fn^kOIE8U%k@P@$Q$CvihMP4r^%TKOV7Z?U%|N)et(i)tUw z*S$5->~IUNd8D`UA2-(P?W3=`)_?u`vA_Qp!2I=;9V-VX+@M(x!Bp=;Er^qV8G9q1-JW<00tApZ%(3aN~w_<@(zhG<$AuK1_5C-$zEin~fwQkU0 z0y|^UBt6#sb+=D@v{&2w*VFw0nx)VCw%J8zTA8{9O@P2Ngr!nSQ^s1K#TTzaedDaK zAqwGKv1ce1g?E2=2-j|~t^KCrfLp|{ukvUE8k!(&A-0c~^^;!=JD}t(Zb^kc2+8-g zj*CNQjqF?UfhN;rd#sWN?Ir39Mqu&K`2?wLv<;-i_I>y4n0Ke=s~yA8B6vgm2LeBVku4yR1V=NP1pY@vFRpo=Nit@JpXjp z9O_dZ|L-o}#ITCEA#_R?d*Jda9-j|tkKLnww^MSzeqOXx=Z1jx+U9Gz1cit8c2RsP z{g?k`13=X{tLvD&yO|_r$zqc3M+1I14R+?~1|nutA?t!D$Uz~0%qs)#_HE%1{q`Vy=q)7h-=CkJz7X-axb+%93B$)>`Fmr@gUQ>Fh4NnJfqg-GpS8t;tv2YKr{V zujZaOQFJ)HOL2B^K3M>T!Nt=(7R0ip$V4fC#C$nhAoq`^mJRG6IRoQ;4}jA(jrn8n zr`=2WUV!FofnJZU0c5V!lLFcK%3)U|7?q%CSR*mo5}2`NMZkBaIyTXMb*!NyXFlcP zkKNrzp5m&B0r844leYJ(@aXK4nO=fP;&|hWH}l_|-x`FEk_LEPgD+ffZX6{fG}JY_ zwkboAha{DJe1~ka;v`kwLn3W;%EszWVp0f_*O4vP?1bf&vP(A>Sp<#Zh6~S06JCsm zb0Us5wDgTdpRhR9(1Nc6pBQ;-@AGT}v9e3_;L4OI5?u^$)Qfkvuu-(|;-PUfjrvE!SSeZ#^K`!9Pab z-EN^D4|gv@6~JkzhEi8k`zMB2o%Hz#){2ZyVQ@PI3hd?NAc!CcVx2bM5THM7Y6^iR zWKafzB^WNl>LNWGoe=tY&#CL9<*K7oJ5SLWV64eJk1ban8Ujy>J+JeL8~zeK2@PpL z!-sq_(krvMk;%n%aoS&LY||5PKaUSpwQRsWse)V{-bAu~O4cvU<>*Ck4h-zCgZ=rc zromLL%^uBA-XS*+Pcih%U=V~`5+E#wAD*O1m!QfVMqFVnGv@NQ?P*tXS!J|MM0AF{ z7JZq64W(!J+%lNvYVxxb0l!oe44W>qUu_>Du$&#*@livNJ&B6SxJAHW$WBqnWtu~j zFKR2L<)GNaJ-nV=e^K&FOC&d`35WkhF*i_90dt0G4vB2BIm(}78Qjt$(mY$9OQG1b z6b$aiI!Wzj9S4K0u#j(~=~nYQb%1NpW#!1r^Y40yfCMecndmA`5!_M_*8oDn40f+p zZhq-WZq6S$$_4M6;rUhbz-EouGfDyI7TONB-UBA4dV#VXb2^9qiu=l~{CueC85{Rs zK&x+u6Ul604kCkV>V{>zuG>}0&hEq^+sa7Y-xW5YdS-&q(8VHnRm)NlykI&0{lp73 z2Px4cI!UhoKTN%8SX0;9KK}MtrPhHeM^VOBD`|@|6c7R#+M_~Sgw#?65r{%12r`Bt zWFS>kM23`78AH-SB_czlfJ_Myfgl2j80I0&2_!%u10nN&d*1hdUB8PDe1H$@+WT40 zx}SSkn-f4Bv_%5`NU%VCUiIwzj?vf9mElM7v%Z$~=w)-HgGnnZKwRfAMUA?Jdl{Z>Qv_@y6?$X zoy-M`BG)W^FGw=%QE&Q-g?LmI(4v~pN~gSi)Hyw;;3ZRToIm~96%fhBn*5mm&mJ=W z4t4ERhPyq+QGy$Y1w82hX$HGCEK@mggub;w7oeQ-5SQUO&z6&>9lsF6B=>ymuDQX* zoD87P^xgIOz2Ry?$fsbYQ&2^1EE_DZNlQQuD{>Q^;1C*idu^v0T~j$$GX15p+4|}1 zdvHTdRe+u~jXkZjaa8nCMJZlQz4gx67q&Wd~*}+7E<{n--siU=hIa)O!X(a7}!8h43?@#ShofD)0u(pr| z|D!ACv}w(1C<8fS2>Q2lUrsT$Zv-f#?@s)98g(ub&{tj`@ z$af#zqzpQZmXaM;9FML?1(Ub7&-*XR7noCgb)%TWrK`fvwK-WQC+InU^|Jq6F9~}8lY>vXR zYf@6wF&ZnP>)eU0t}kW3bNAQ7QPOe-+&hNd26kKUR6GOtopASAy`T#136Mtr8xd{2 zcV2uVr%Lk!r3BSIq-hp2rNXt zeR(msW`rVG<(;IltvEjyCWQ%0#Xg?{R;1oy03}2wFRT~-7tC1UO2$fHhb-&eb)(Be z%gp8Fr|1|F;06#{%lsq&c9{H?``nCr0Zj#(*oDMV`M}$dtA!@O!SfTk?xPHLKEtA@ zqiazJxgxveSyij@dzc1e?WV#u53D+gZ;^(po6btF znJBWbYZqY8R{fFjebmY9EzH+-GM--Ph!9|AqmC%j z0p~v7MfqdCZtkG|@YRDu&-XAJ12vxq_V=6nHDm-`(3LX>Q4vUa>Ok2!pZ^oOM1|E) z{SzOwiTqu=7$(rKx#N=$D^kjgGp(c1UfJ3T0<;}#f+~k_c zJY0wh)euVE<1 z$r>Pqj*(J+Lk#fQ!#QPF(L2w)fvAk5bx&MFhTsQygtL7 zp{_da=UOlpMS;#i)UWfKVGGaB;#U0LD_`?DLuUQy9q+vM!`(%-H)DvG1`l%tbA6LF zC{Ay>?-`e{sOwVoNZG*|CRe`>1&jOs_n_}rD|@h zf}}+LUzU*?fU-L!X_Z?% zs>s#?j<0YsB^!vz8IRFipNH>)rC;_~99nkrp>S(phicX5#jCDI*S$Noe?daPaC8y? zY<@q;*@yc8oS<;Ax-~CcU;?pz^*pGjJk%dlz)L#$5bC&Pcwn$|?aGr3E?< zK#qSy;787&Ow*3~HITS}lezY-j%K)<`wI!1al;!8i^%m$OitnZ!`YFB0Br? zzR~{DtX0QKAlsOLL2h5687)2aZ$8XvzU{Xs$Mse+uW9uDk#!EP%;;1#*(r zB!7Kp6_Mr>#B||W4Jd!vkE%o7Yqt5xiIcXe{@veJggDc53b6W^(YJ7<{}O46;(pW{ z;YBL<3&1}eR);+EI&b!rDe|968?kr2?3umrmu!y5A!|U(c>CMaLrcTnl8GdwR|smT zv!%R)T)u~+G0%#~PU+0E7d;-C#=Vp!#7O(9>SK^^&FU$KP%~C10!e9TXjR{2G#lL2 zQZAEjL@-jM5e=R(Wku(pE~BSh@Zw^qC{yrnsy9#~P*|HdH?SE5(>`B1x^SOP`qhmjsKdY!b=$!nCqRGo1 ztLr;H);>;kw-=qvNs?~|K3Z=-+90e_Dr4r}>6lq<3>I`QMy+SEnBN?9+7SH`D+CqR zr+jC(sFD7+RAP3S!mXmx^mxx13$DHWj_AGqC3vrYall6aCJcOzFgh|~1_==Y#qx9g zx$`13zo?6~qh3}D?||7~C$WXk%tvIt$9cT_zYrHouQLmoo`8K@`AW<@T%8LMz6~3O z<4`pKX;U@kCkApivA=WGqpF7Ez$UT{!`5wa!(E9m^A;(&8)>mw{DX7yxeiKoUAAo zJe0=C0~MN#+!Z|>x%-&L`JO-BpgL&J-*(N-3%E^qxumS^OhRSibdo4Y*!did5e;d(-M$J1qR z3Tzeh-nasIriaq~R3#PpyK$;x zQ;9Oh=r+1jeo9#;idebx|q`}(RTb}%K>?oE2TFjn)?wOu(?$7wXS zYQG=PPbJR*97$N&qv7H_<@t&_sc7A!YsA`N;?s;it{W!mQ_zqZB$jQa`VvHF{kLju z{o>m;vQup)KuQUp*oZ3vHjZIg!z1lKm9B;>m38V!1fd)|RIEM^SUSuWAFWn1{YvYZ z`6qqhU{vLdzp;31Yl^njGyM(BTBR#AauNiG`_>o_RJgjR6;GQ%soOxyoUMi?Zox+?WESLLc2D0=cu^3&}${o2S@R`Z>( zSt50xJSpo(NP^7$k|Le77r5sgKC%@zYf`vk0B;h6(xyWjS08 zkbU$_qqiEq+a*yFql1#<%j4F6sW%MG6mO}#AR}x&a>VfH{~DFNEBcTHs2sm zRD2t~@bH}B}KT**&{&nwd1WP@)zkW4&Y;fi4gN>fPHOLTnYmy80?dwBG;fiS))oCTlvhhk- zqB;l2>{_3xrv!h3{0H^c=r8@Qgx`KH1HT5W$Gq_GQB3UGZjrw&t+&l8ksUej2C&^F zR$&P`&UXm*>SqEAndGugk;?xDW-`r_w8odu#=7OUau1Tz;{Hv0P*j2BQlLxAxqmU= z9?#;BSqZ>}$3p7Z+xO|c;K#0XAd^=C5azp5YrZTQs_L-tJ%iT9N!iknMoym<26DXr z@{~WE$5gM5E(&Ok{+RYfu+!MNzrz ze13KnjeG1o?FD;y#O)j%{FKFBItgW<1oy{qfJ*t9y^R+y+wz}#BFk{QS03I6bW0D1 zN=(F$y}E#4KZS7FIDgBj2lhrYz6~2-_$HCUsa_U z24uK`ctxq$e;;-!vd&fYq(u}}XG$JK7}tXz_O^4h+jSwSzvb(p4Tgz$tDqbO##GGT z%LPRF-3LBe%I@?dr7MxPi2qg;pFaKOf7=8(W z-l1cXyX%FQ?4vTHk~l9*x4vjbi5}X<1~=Nh5}TA|cph9@nL0IPzgacpwD9yYoG^SC z*-N5xXQDr4p(=_b)Lw~o>*OJtRggyK6@>`(NA-z#XtSF6db zZtq4)O1fQ2hQ|U}lG!%Epsj*cRr!V4m2bVC8AiadH>u=r2d_%8171l{Ibzozl|`xS zrV5w0;}Tjb_A9Tt4$;%gP_tI~sY1diTRnn;Wexq*kNcY%hy~mku%tLeKsBV*sTK5jQ1znjnw#Xw3FfGje*xMc)(&JUj?oGO zLdue&GCS;1*^zOghv2GNr!h^SCfqa%Fx*}7Z>_PGRWNhmnp`dav!vm9;W_HbArY$ zR#a3z7|+Lo0Y)=55s0hT0&G>lcYmGxM$E4G_N?A8(N4Ac{-4Fb%~Q{MVxp}aO6LCu z`|IXW*`JU9eB5CueEXC62Z!(F{ZH+MpU8lD_bGC8Z$A!t;-7y?2V+=HR^iF|qGB92 zIq`_%^|s}5?HEhAnBFJE>r{RSD9P#sWDAPg{yy3u@8S~XpiTiA+8%l=_RR$fSaJfd zdYOgaAw5Dj&yZ)Vlv;eKlB9fXor_pP5V(d*+?B%dUfEG-${{}dB=<`T*bo;ZO-pN> zZ$}Dw)pY($1-b)OVHK*Co>xuBk0uIaHl7;3PEjUX%XID43UK;C)BW)SW)I!6swG>A z%24IHYD+Qr!Y-(ha3zq^%~9Q$5#})nWwTSWoUPY`>AMS4B%Jlx5X$w&g^!)QNTf%y zjt#}SWyOr@T66#6%#1$-%jzXcU}?7)sMN&SYTUo3ZFQM`*nxYqNtqkPKy#0ttvJ3pTt?S+mfs4NW_Hb4 z3duO!$_1q!qci362^;Sk{%K&Y4mTKC*}Vh75_Za$?6K+#8U@=~^C>+B zhh2hcq|R3B@@8N9^)lW=kGd_6if``Ev>8=`g%_iDGA&go7W_VzkCZSL%?g$1y~%RD ze1EDY-G_)3^@qLqNGK_(6uw+(i?P(JFuDxwNrI4ZmF8vF(v}k0kyKlp3X!d(d;cLe zH?GlP>Rnus4rZU&yb1fMzh|xwz5KRsUepZ>e;IDcKs`B|Kbk#yzoM(!!$y*CX0w2@ z#D_NIRtjm!m81IkuKD?@{e%B(W+Z)5vU;sRvS0mo`b z71ND5M1PJWz)FbW8IOL(p4`}X~Be~I*Ii;n|z zJl7(bX4atRv9$fHFN_z-f2AlrZacij>1?P5o8f-L(yCB_v=V!(q~F+gM|6CFV$J9` zV-BrpBrGCYJXSxdfz8AVBI3aLtI~1G$bDlD)W#mLeka z(E$a^W9s$4TCvT*C0IJGK?~dt%QI{h5>=}PO_w!nnF-^nK8&HfBpT*9RaVS6eTt{a@y4)&C|gV4fa<||%va%gPF^%KcqeaCG^ zU4p~#nfecomYGERVpQ4lH~NJ0F1CRIjf~K+GFLduTit&_;w4;{7ekGsE2WhC{D6>i786y$4!nu^V+e97nuG7V{qH`=n(N> zQBg>FJoZV9afbq%aV@R$V!Y@`!Je7ZW?3&;fY%2>)HD;#SH+=Dtl!czpoa%c+_UG&MJzz3BiZ=`OU4V}!O=qxH}-UX4RgsO1^Be zk8z6{x#kR25-B9A`FO~bC4P2Z`CKcW3% z1KXW0PU{PH9vVu#O%!eot^S4bBBUpA=(IotbW@vnB4kE?eP`Q$RNi;|82?Dt4I~APNEl=4$V5nR5n$3?_v7s^6XxY}O=9#%)P?HiB^k*H*o( z4@}pDT~Piqc3!!=KgLg}U!Msax5L6PA&02gjsKX~+o`%iFP^1?`|XQjekdAmxw$2Z zNT}*c@wITr(0Eq1ni`nlJ#fn>@gPKTkXBa0CNi{b?M#zpg5i0qzcYcFPgM-3 zM0+kg1HpoX!A7whd{J8%H!!W!qS)o#y%&X#_Slo`j#^uirY& zT+J6gB|5MSL86;1O3IgM*($0KdvK#UWp8q#0Yl+iRuV-^kZOiYA9}|mbz{ERkpv?x z_$hmztrHRr6VXXrFAuS|2~qiDsd=z;&LOpB^*}+`LGBTqG}CYw-`6G-n_e_`H-uh8 z)%x%UHJ&zwF`YXoJ}(?$K@W+mCv=8eUNn~BgdG1gD?*#U7#AayYcs()$UL1e?*-~f zdf@(1{nB6(3>>0AZx*1HuC&i`j7iBNbMF`%($&n`161Dl8{*|)>i1FerfV|8k=N}y zdz?`FiGD=aHNelKy-)ss6N^WToM4Da2Cphzr5x0qp@O79VOzz>tYkjXq;QRXE7xF z#$ja3Tmv%Bf+!XaY&Z&6&|GW%kdyLq7FsAT!|kqEG)Z6VE`z%vv4TwmA}%nf+&09m zR;7LrYboiTBBh_vDL_Rl5k1y;eTzNX#B#i52Dyk2b(W6q7MflI#TtgI6zi{N$MZUp z;I-O*q-3I>$rPqdI>|OlEoM_4TsoBR&izda7olnq<;N4I#islJW3ubQgW#oo_SEMsPFVuaqx%$hf**ol1F`*L(}8EJA2(cdy}De`qu88qZL-DkAKT#%60m2MgWf)ksHI^3MvDxduFkLdGJY#!1|Pe#qMfZRNA2|4xbUb)w7*w#SBjEa@|(%Hu>bs7jcE=4^4p- zj;dJP!^1!4dsDt3*;plMQc@cUfnzNURWbaXtrcvj!)d|E0~}&CeQ`23LElYgleGQ{ zMFX^~S&+wIw&Sx72rh; z_2q_8fJ#TmVK2W;fjr8s~IY2HN8hRaEl3c zIFv>=4A*LBDiq0rOS4(EW5zaT4~id}t{?NM%bcp(x?a^z$BVAG-S%vltMce&xx(H> zZOk@IB8*Jtw>stD<(S?&ztaQPPyI;UCe4ygvMh11i;Wf7BP6Y@E|aik@>(XL=HvB2 zZMkfht=lxO6Ctpp?r&aQ}wup?_ev zl8Jb<^a!nxDUUS1c)L!vDSO$y8U9Y>oo>3?&0Y?5?z4oBTs z1k3Z1TjfprsK+D_2S*4otP?d8fTru!CKsdfJ@BEM{)X{p7al!^7}n>nuL6s$4SSb_ z3nv#ydne87Kpq|n0wfQFh*3!rP^zy-5r_It@ zFqh$mK6)(o_URTCBvV>-U+G!fnN^EJbckk(C^&=pM@MzWtBtOuo z<7RqxAc~VsifB{H;XfJP=}3?YKUqBDrNlnvNS=knax*f$ z^Z;Z4jtrkfp4AWe#|D>nzJA_Rru@3Lw57y|gA$IooS2c9X4A8Nuluw)| zjU#NX!{5C~c}(L%auiw$vviivY3Bkbtua6Imin_>d&KVQVF&$rrz=6?WW46q^-PEO z?Z0nX9X%6to0!mGhP*MD!k+|(HT4cxFD7;F%tKvMH%Bklv|ct&>*%)VSQ<)X{9AEo zed)%j_U{$@Ti(?@FWqywrqQ{JnH{)9K?r4rk`g{S+5Vx=R9C3=4m$W0bZEr9G-DyifDU}D={*4 zGxCzPB70E$fyrWV(DO~Zl9lV)%$$@ulHN9#7>P1$f;&t1RT7mSZ_JJGW_N}kl#X*) zz?x1H^j1!H;`ov<(P_Jz&h9f@IU92vE#%~mz)Zz}Mp;;OsS#aLlRFHe1yml>W&PJyvKO;)b(Mc%j@YUNlmEwQ3m(!l0#@ zy3 zs1i3Hr3glv8(Qg#@(m5EUDpojrt&80~h?nj$p!q7^0{^sRtJP zvpQ1`qbF=H@zeNyt32pbGZ252TMovoJ@pdLT*KwdK<{1(pviDP&~4X;T?-)ChH!qM zhwBR|Z}qrO?l{HQ%%{bvM-vbF?!>l72r&^s?A?qX*hjb09YS3g70zzxpQvu8?UUV zk7U=$u7g)knXcO1EhKFlIa%9pXfgG=1pZY71R8i!!r$6-v5Jnf0!NSafnd7iVt0OK zv$c`8eNj+Z%arOhQNPy)A%%D$Ug9oPY^2y*;05?0*@vYn`C@v%$w=RPxahNYQ+Mp@ znS=C%Nm|GC@RL4wm7#G(lRk;oCD*O)1wo`el(m;c5nMKsnof<^^1Lck%qrS9@^sB86a|O}Z7d#>qFV(Jw_R}Vl-`@-v6mz2I5camh#bil%F$a!~vv0E(qc|^V}(F$rwhLL$@ z0VnW++N;aSok`Xf1F)Q~ft<7cn}Tq|MxTd^;6n*sq~e>9)C*Yu)~iF#qbew|aUHS# z1CdM-ZS2dUq=>qf-#!{zJ<_4;Tz$377$q4rV2+I_AU|niX{_2OdZpS2(nyJ)E+p@&G5|Hm%81Lifu^?RXV_r8Gx<-(#rSq z7mlgE#%(9YxRx*t0+{TyeC^4O6s!#uw>9~tV&K*SA)MGDzoytPczprAX?=vWF}vU6 z?+u6|&)O6r+*ifO`d^MO6`mOXMZO2mqPP@OEwzAM|yv<%iVhdY(Hdk&c3z!=(SkL1&XVZzL+H zXzUz0jj%b^M}>1)C)!gjP+Q|BD=AenRo(pI<>KF_ag(VI7%xie%vxrw#b~{Xas&f~fVhMVFxY;sg=&5=I*=NIITY)==undD z=QXvH2XnV_RKNdY8~4yy8%jE(UmcRIm}TvODIyuK?av;}as|1BFuq16rz06iy~Fp( zY}wvv!oPI# zFE}G*w^F~A^apAWFk0vGBOOadT__A($^l_>g$moDx_jfIlTD6E*~qIB&xVCm|Gc#A zh#?8umX^SxByQY$!$Rzb1O4W@_e0f@C&Xy6i<9c=1EPrJu zf3f?zuckB>9^H$Z#OXH_*)IsFG}s;M#l4uZ9?J3C9ju&r_d0E-oHV*>akhf51!&0m zPzO-a@xiV(ZmIpT2S;g+CisJ$*Fr_|9&TGa|9V;JM1Zi}O1()t3r};qNVPPgc|2lL z!L_ll7RxzHReBO%C!edpedy{jxoVu@3U?QNR61Rwc#HG_y)vP_Xf38|{m?%XYYk78 zeL4vB8-6jFLE|p*y2O?j?_HQu$tyYY%qy|tGMgQy&R?eR#sg!qW8;^*v|n>CfH>Y6 zh&9UbwTt-C#7wo#m`7@^dr4JS(?+OT`z^P0e6p3OtSHm96*RxV&6%wKPgHPAoj=%+ z>+vepAAPs>AgMzXaU*j*!|T5QXI@yW--OyKphRZ^Wvf{-zy;0iT`H6DGv}|Q@?CfE z)O1&n>7a?Q-2=s$gy_O&)NzS9DIDw5Lf|MkqL=plS^t>{DcuGzabd4#Li()1tB+4g zOaC&Wyh!;yW3iCN7XOtJ8V1QEw4oNu#JusZsP0Ljb`97Tf5I&orUUdqcE$Z=G`$@2S4ixK0AOoX&Hdwlhvi%*8{y zd}nNr83u6v6n0w*h7iutP>PNd!YyMs(LR!6!Dxmy)A{+f*KC@_8CJ*qHLmfZF{J__ ztYtn7fnBflc+&;6=8=JkD77CIC}$<*8-7EOE?3dsOG5my_?{`uTwjL-X_hjfeg_eM zh^g3Z@zpZqJ$vg6q{Du*>I>cje^vJ^#9yEWA@v*Pr;U*Ji7P>?6#-7{(Q-jHo?(MbxQT8F@YEJ zxT_m{7GsBNXJu|Jwi`z~5Ux9=`JADJYMdrmPq2urfftvt!<7=-?gUb0~>2x!2da25oWi%pSzX+f0C|6mGIWllNU4gxb1%+3TrN3t!U#JvP%s7|R_< zDVeJd8-3(tJr-zjx(T9Qvd!M(D&Fv}KsKt+nueTtcfWuBJ}-De49Y!g1`0Sh$U*$? zgZV&Gpo~<&hAb3&U6W><7;Q2z;tZCXY7)E}W<#+jpR4e_O%MTR=f!)`KfsI$ajh5p zTy0{bl^*Y8E1$h;=Q^p@@+b8(9^=Ct@ch&)mU%rf?hss9eBXaIi@S2IR0YoI!?^;q z(WWyd={>!f$pOAeq8Y8Qr?|#1yH+R?E|I*nkpF`>mTy*-jk3qWLl;Ti;FHH-WC#H@ z6NCu?RJ?plVkH1=ve{lfSAsOB_j!}kc@^TisGckqA9Tb-`gDqKp$#4=)dL$%c1J%jsU^79g`vWwa$Z&91*Hb%S;a z8a^uEP1+{(%q_^Lc5$mgz!VJ(pGtR`Y%fIfAp`AU9rCx>y*0&oNMnA+t{ysLWG5Y} zS@4ZA)@B2*pR_nCTPGue$P?ioHjD z?C@cO^S1zHvkS#pYD@c>CsVDLn9T-AK9Dd$l}6NK3~&c~?T^U4Jn6?NZda4lVU zB;9)b4M>`)t@1yH6#q_de14vrhq&$YoIDzmCzApF4M5sxkyy#3t2T#k^?qBO^HOQO2X4#eS>EWuL(VC5V4bey6#PrwW#+kS%7Ou2N=p3(h zq9Ep0_F{+;!zUn)l7PB6%+`=HR&*sTfJ*`AJoL}n?B-hoB0A3|)RDaG@rL(Yx2Gl) z;x|RW+-()$n?e@enA@S)Y`eQgaQUs&u#GdvraQuu0j`K~g8ACSs$iw4A2Ay*P&?Nl z!urYtHB< zsA4=YwRb6bwH3?911jNuy9eDd<30ys*6o1J`jBtc2Qpgh1)gwc&=$C{D&GV9Y}UM; zq&M-KqNjY^3);48%-msDQaz0)hX;LTmsBP=qT5Bnzo|o3imUN6?Gk#ESINmb92uY> zHlTM#0F#$}y^4{N9|dawu7eTrcX`c{87^MqWI8Q)E7QSo5`Zn~4^OUD$LDkj6a5GP zUOW-pB6k6~)M>bkq(0S@2XvdnFAmV$+UN-;?Zm0~cyE+v0$mjnAXKlg7BH2`+s0HA zM(cHT3VrTi2vnDYI1_UOSdH?z7Xw(#27fKza1;K4BzL6@Q3g3=)Nc|MBVEr-9u2?O zKhL^?gwgB7}e~WvhRR^#$FlOsqRcc%?FVi{L3(oBh zgf~@V)&3u@veBOb>yOk`7BGM6-3|yZ-I<7jxsxAtB!R!!U z^8()X9@u?y$lc7rD+9srsJqoY;cuuI=L7ns3(Cu+hLE`4sqA22-#vuFRbv)VTmeJl zS-7v)bqf=5c=fKV*~mItGu&tkKb;3l^&Ja;IPXD2tc6(z;M{w;Zn{CkF+C+kz^VcL z#){)=3Y7!x1>;2!MCI%VXUdioV)p{1Wp;U)0vel_SLrc}vod-4kUy}chd!ygB)Yt7 z*OoR^3tkvlwJY!O(o9aZSY@`p>U57~U4m4h_-e{nD_EP!rBqm<3jzmDr)e_MldPgO zm|Lp(AzwmR9}UE}fU0`p%6LsE0Z(Q{#JX9pj>)oxCM%%dlm#D9L zjj_(*z3Op|DT1NpNCq?9c@_*zNPFDOt5E54t#^5U8=X$Y{a#H2O{PZ7N5*rqV@Aec zc=hhy!H~vszNov*i)iISZ(Cd&39(>(M7jb~zS=F^S73suTfK83eQ|7;udQgR?K&9y zdU2IZ!*#9aqKN|<~6qYUYwHIXVkyw)RB*jltAbo?M4EE9OwQ(iq@llGNrnExqTO>DK#Pnjf-(sMx z={1x6bx44XnUM@PB4 z&<`YJ<>@wd+XD%mc=wwl_5^#1rmZ+IR z7~}}xqdCS00@FHj2b1_EG+9lNeQ@;~7XA=?MoRl-vtgyoOw)j5YNxbHd)I49!=vST zy#BZ#)x%Y9YGovO%`3Sc43dCJ>ePX^$}bH&D&f@@!vwJj_^vwOSTN|V4U0T${bmM& zrJ0dnAH#F-(+08RRiU+#$|h*fH*57{EWKPas{@=Yx+xYxtpw~Na8W_EQYpnzsS4q& zfnk`{EvHcRN`s7rB!U_e8LbK0v{fVHu~gAWs|HjQ^R6}g`Fa0>e*yrUBPeutyU5q? zQ>k_#>|gb4GX!aQhdqc#@V7$?yE*X4AC%6!&QhbpLpp-&zJK)j{Zj@8is5Y#Qh6d& zSLthmPC3ikW(>5+EaY>D86%eHe*ZwNVcAslPWEJdx&IXMsmp&z^4Xa%i40WOKGw}K zEX6D#!sh$i3%m$ICQ%S`1*%b=281b{rNnSyM+JQzRz6GJ6bxz?2y=@Y)a&7-5Pada zue8mxX_{4uK`%j?9w=D!42(MJ`@XqXa$|(-!SqaRCJ;)7bLBJx4xz;V-ODKCBkK@R z{sFQwL^Qe&y%uegb1Wz5-YLGUm)92DQOc4TL`s%HZs^c{ZzE9v_4*buS6T?~)T*bD zL^a$XG-&0evs!^d7wyC9&tbVLac}kPjb)h*K|N9l@GmTtNw%Pz9a(Rhr+GrQaw)UQ z+>*b0e%>8MFeCnAGkeJzof3$V^vG89$;;kc_D>mN%$FZiEet;xMUnJ5gJjYR)XPZ| z7)D$&W?Y#uuHQ%(($cdwk8cSU<}*9zoZk7c2>*xabbYwxm%~mQJ8X|J^MV!VgPZJ+ zdwJrUAVwgy4#hbMa2}55hp&&?2Kfcn#}_?CoCua~I_E4N2JwTWUb)AIL`Ej&8JW;@ zy8uiHnyXaCvK{bKh3z^O@B1JZ1_ZcXPWm#n_vLY8>KH)(f+0b6jclD}lDGued;y z#SfTlh76|I&-e!|?p)sz-aYlkpJ|?DD6WXb$;GVzs*OJ3yT&lL>Gjb*&84AM8(s|< z_oBkltKU{2dy8pll6o)Ax^q20?}4?cake#RW22Vf;iLQ`YYUF00AM9ZaqF~l-kBc| zb+`GT>3$gX0Px4f6SUa|wjG*O(~VxE$&?Yd(r3Ky4-nad4UNG zABUsZZv{)>A!)5BD`Km2_GjfC<-m2kiE%IWq44Sr2)+s(PPjm)LRnkEz9j!CZq2YX zVs*)_ZIzU3b7(g07$t)qHTl?jRK4V@+*c6dD|~*OMwD7#g8$R&H2}tGrIcTlV;%*^ zPS?vI$0s?rpkT^yUr%NVJ?p7lO$qXMnAfI_8mV6xB76KI6S=f|lE;Kq{#X!k%|WkJRRqyLYqFAr<-O8cJHg<2J= zR8eGUYn9HRAO&PiGJUJ2ElX?}L6J?EAuLKjmh4HDDk4IvRDl3V6(u4|w1BKhL^e^9 z7y|@Z5=bB+1PECmd-xvb{l0&`e}OC4lfyaZx$ob0Q*PwfrAC2jau-Iug&LUU9KdcV z|IpPYsnIF<5=N=FIy^QrntWz%yBi|@=}5<%Gg=#$+MCOrcL+T}-gUs|z~i0g(fRWW zhvImisPxSGR}kcHZM0`|cvoKCc|X%4^k8`K+FVK?_(7^=*dU{7sG=fAI}e{NXZyNScVrbifG?b|Z5h z^~m|V1kFqNMNHFiN)xMB7!v`y0Jv->CTum5w&eFo}9W zzB`{^kR5G*%he^cBt2H`L{85&qaQBsZ}u#Kv{pTTmf5t*&fQ5m-qE|A)?0rv5Vz>$ z@9ZM*a?Ca5&jyN8XD|SGIJN}>=x8H>WfJ0uqrx}cA;&;QOPVv`6nS7RCA=hLcngWu zG1IXC&|G>$C-gGhw59j)g&mjKzCG8td#pcvPxPt50{I@E#u_2C3(vN$h|I!4(2Em# z5Ac&BRx3#efdQg4?kDu;ZrzHzt}L~UB72Tx>nUps(PX>8(nS&&^#dxl0O()URY)whT%$*D|I2qKYB&k7N~97Zh#W=4U@pf-h&O>tt0a`ML4?ATZs| zwm{$_ERPZ=u-_bgoAs!F&<%F6ks`i^Gc0swn}7B>NM3&}^U(f3O3UF0e7*BQeB3AI zTRE%m)BAfPvjlFal^R(3Y|qRClgvTYUC0OexL&$B)4Kj@Eefi@{SnUsURDXZ&5=sa zWt>}-e}jbM2j?An&38j@#J#c)qDkb=hsP}P1Tny|?Z8UUX4t}}-zd-{EJRc8J^VwP zu)%etDCHN)$+(Gu3qH=YlIN;}cz>7MOa(`!ES`QtIktUo)Sz3Ua)O%?X)zCQi_#5+SSp^2@=~rFqfDE`9rkBt9dT*DR|WrGM~%^3a5DB7LME@ zv7{bBEym26UYw|k-r*rQm`g33Jb5e9W2*vOT%bs@_WdFE2sbf{}USd!GoM$x{=!$(>RA8{T;*Nym+J*n#603%ozK}08Hny@kCZw4QLA97<{@B#l65&{N|Q?UFX-m-49e> z9l4JvUR;=r8~?yvJ=o9R_uTPam2|m+F^VhXI}D!`fwI<9cOG%1WtWdnO&uf`<~oC| z0A&R~H7K2c_$Ckk;1FzW0`!j~0TINLBnZF@MCy3XHJ8HLu~udq)WVZ@sU=ce*NR#H zVSB7?mUc1Ty)ZiOs9hO1jQpm_&`r(Yd8=)E@0ELZxEufDm-}G)4tIYK@HRLSG6jt2 z&X_`}rALCia#0RPb`6NUueNTriEw+)%5IK!N0b0X+6bVcaS9!&q->>rVlTNbE8wl# z6ofTm((>uYjJkoP*&O0o@$KY(-!ZF}>K$EFS&os(?Bynx57lkG+v=;X|B+aJq9!bs zTyFk_FLvxbN%FI+wT0C{!jC>LNlr`ybTV7Zuc!W5cmsCS59fgH)%e_-I%)5G>-aMj zN7CztoY-!^`~a{gy`%@v(greAGrMQKX?!5s$;Eeh$yJzYdvBcKD6oI7k+>FOoKnv> zPkw0~+ES!DM^r>vhwtw~YVtp@AyDAI^kt{P1Ij;}2JX<^*-N3c49O$)eVx$uQMqt7 zLf7PeOD5euaBQcK{2G5pQh9{Q02pZCgm_0{`B{I;9JfmQde-lI zJ6u{!qHI<_Uzg3>ihx}{n`rXv+uB=bY+-4}cw2!tw^$y$&)M#lE!Q>naukZZ?gKeP06;BBI`4$wFRAtcQtm%?l~*h~09Jn&@&9CX0(IEYUL z>q_Eyxx!peTiTx47RLGikC{r#TDf>i(ldfPY{T7Cb)B-eY~kisA^NEkD9d4WUUJYp zo!*u$$s>0?%&2C1KPO%$jl?U6{~o9_7yu-rxI75pq=rqEAuE4>kvuKTv{>nvG5BN< zNKdf~AEX$^6V>c$4Mk2M>x1_0#Mq+6yH z!^8kU8B~hWTAK*O1ZT}$Cp-;LQfHDVqfPD&ruSa^E+qlI5##CMVz0w5yZ+7vrYg@~ zT8a~b^cU8zAn5~lxOg~2ySAY2Z?}dB@mK365qVge ztH7FKeEVV~G1FT2W0;@riYq#^Uf*gx!?h2hz5vd#?jlpEIw6}_OQA9ep0%<#HVlc# zQ(#B~NDy$BU@nBb_ywuqc;5)015lClQV1rQq+fanP39V6-DJ1h{0t*D-Ur;SzmZ3C z?3tPoP9M5g0xZokqCr#5%0e6a6`xYl*F$!eO#*yE{pcG59^j~T-c=S7|PdWsGdx2;-8N<_5p`T z`dQzx{H)cH@M9=NRB&uNC)KrhIgH}oOj;MQ=j=9wmgOXCjm`@x79iBdCOwJ-K!7yl z(-?DO1x1Q+(2wYL0P$KX+ESb3KXQ!(_puEufw|GVPD#H#v1i#leIo;daxFG0eBm=} zCAw#%T6Yn5i~;P6+VaN-RxS(o&|!A9++Wze$Y-rx!JsZgP6h!pBMrNxE35^k*{IxM z$KV_ma2B=2G}%;rZZZe^D3t|XzMsC)HzDZCbs;f_dUIiDY#_0ZPH$KD0+P5ol|DN` zun5THUl_Ly>xj&VtVUt$4DTIn#aqOx&X_OMy(0NRaxZ&pP&7*u0XuMV9T zc*9}fXO?Ljx`T7^C-L&(+OVZyA=J_wwTQ}o7cpYDmGudS1n^V(%|^?GZCf1}2;s?z zGZ%?^IWJ{w+3^5BaX%i62}xBK+KxgCCG`EH!~$`G)rb}W9b!WXxPHdZy$ zUV{1=W*jg)s6eH4`{&kWE!$D@y8zgp+CzIT3-$1gd${XBL2h5s^OD0+5*$#*tQ<7U zMR=s9ma|mYwgIRFGPRq#6+#w)roTFS5=`DtLRIafGn=`6@J5?p-%$Fw-u~qcmmOEi zPwoHr+03)DVqWwE#av?;;bF54H83kt+ENQ|E!gY%Zh_YxbL%j=sp<@OyQ)Hx&M^N_ zpeR4rF@Yc`hO4F;Bv%T1^rf=j(nCGo#q@c)7Qg9Fnfr=5-X7B}BY6y3RtwDzKg&nV zb!#vFS035wR0@&6ifD`xb-FF-H^tGM#IMD%ICYK6wv8<5phnKOmh7O(Og4 zjZOa`7w)gD$FpG!aKt91zwT23aON2WjDeu{`v0h@kp zS1D{t{m>?IKDu;=?o*uVGCa!2uM3jBshUZYJ>70lUx|S121<~nT{|*FTD#hT-eK6Z z1LHBwbXefnVNEnc*5%dg70_kZfS#FSD8bV{CnsX!F-Eep-H{Ia;Z{un7u`o!e&7%n z>{kh`gloPcbo#t=sR_SJVkZ==So}h`Bh7Zj6o)0M6nV7YL3~9+KTZgCsh^ z1{Y)%- zPVgFoFH9K~Gb}Z4Mg#GVcBe{TK_|gcL2 zP8^SSy|l<&H$Q#Q|B~r^wp3>CkNFs?gb6zc$`On3kezKQT&kVu4W;Y>TYR8D$2*!h z!Ig}GdAhej-G5Wf@zvvEv$|Y0+!DX09CThx2A0bOiphbxGMVA zb+_AF_g2TSVYg!d z6=(u2c7wc0O|5c21xgRVHn@4a0jl{npi@pKV7{hx0qF4;UpK#cymEMUq6X%pHMgG# z$pM?hkqogPa{b$=Q0mHUoUCxHf}p?E9EFMl+Lsdh-XZo6&QqiQO`u~zGZUihxxxTG z@uPTfo>lJU*-inp{NGb4)#sX-ejDd341(K+1`ri;WFCy5uR^O|9UNqfAilzg9Zdy~ z9l{c`iy?P(!*h!ieg`@S*fi(9-uyijfN&jWW$$wAVbgKVj)O(@am(8QWy~W43Uq>@ zD#R~1o}ZtlX;R>g@YR^Qlg0tP0YfmM5}YOIF)m-T_E}a7;N$rG7R~U1dgiJCwVKQ% zLaj_HQ!YoJh2kFAGkq~OZz=#*Dusr+Q~4#C1e*rhpIg`Rw$J#=YlD3j;fdJkzY){A zZ-gvgJ=BzwS;b6yW*RpCkliQ$Ug9$PRqR*8lw#gV$<;zLZrZK9GdG+5z8)S%)Xi2} zYHJl71H1|-4yfR@k(}uO%YL9rnz>Eg7?~Oo5TD1pjPJBweQZB(F>O-NcGhecoE5CD z)75nfOc^&IXZ@$0ii!{CNA@mMm`i?}IvyBMqI;(;w6m_b!7AtSezvJe_2`bCL(r?h zUTzd{vd>|NIHj+K>2FzLrxS4x+#NC9(K{$p_w)I)_UFI1K>%)~drF^7MxJ#hppoj! z8D6c1SsGkbgV_|S%zjm)?3!diRu6F3T&Z*xaoVjDwR;|QHZfe$$^4xPNlEBljIHWy znr}v8uI0aB|FHb&-dGOMExvgFYv%EXA@<}Gh7o94J}c71)n`YuUSBBm@Vgm8?SQoh zX-lmqQ54!=>pZm0WD@{nN#y_XX}Xi1OQQjAWksTN@oEos9}xW$zNM_n7o1IPbC_6s09lWl&} z?@kM&SG0{aB&-5W!f|M5-zWKQ1EuMSbr*0(AM2}7W(`__%@p^Vee{-GdA38EWt=M}DB`Cm3^Gze&$TE6`1`oM)m zzZ%J-RHrh3mGlne^6-sFNcp&b=+ge2o|k+d!b4IC^cGV!!hU2W^BGIq0BWhC!qM}% z0GCO)ef*haHr5^ilSRN!NrLdJ3#j4iZ7?Ceh6t#z_Y;jkn{YcUs4d{)z^aAvmcCjS zLXRotTG{-to!xNdWuX*lEkss>n+j=d0fnet4%2F)-SyKWPZe|1F&+aF?ThuE3);eC z&pH4Z)F%60E<^jMr)Zi_>6s8r%;nTmjKJZ0`2GU>4f_{OUZ}9EmeWy?tE^i#EyP72 z_xmLCZkSs@Z2|t&aq?WwQ1*jtj8aYuQY*3ts2uxM@8#lzufjjbbgCCDt8p`qq_TA~ z4!x17Z(?6u5)%!-7OuvQ)T7I9L?CzgDR0N+a2MqTZr8IjteZE*^dCQ0>*bOk0sa5! zCR`5DDD;dYwEM5w+lfpKD3H)TilMwvkwk*F@L;i~d0u09cgMo+`QkPQ*Ch%IudWtd z#9^p18h~&@4wk26w|)X!(%E=|%^D&)3^ z1MyTQgoSd9u#tr1=ubE@n=W*Jg;;#wrC8+&gWSWC81}(l4&gq{x%JgRS-rA+0FXsU z_aD5p^?+^2Z-tD|V`S+C9>6@i`K60VV`hM0YFJ-j^4cIy4M~>;uOS_j5LfnMxoGOs zbV3<-|1|tE=It={6Cl~-p`B|eTQvUKmCBzu2q}S?qgi0MdE9NL8uifq65$?ak#UZ( ziC|^>*1|N&U%z`z<7DXj1|oBx0u7jx<#6rFH?pv4fOEJe*(F~)+kaOIc=~x4$=I2j z>7jPLf!8DGmxbEO&P;u#nqr|$ImO{;oqHc~T3>hBxW=|)(I~jFca}}tqe=_h1+F<~ z55xC0qJmZndDlax&&qtJ9jJQXD9(p&Jc-K5-be^gZ2%Fc8{oV{9IhSqV+!NC#d~`} z0sm0=k=*cLK)IZqs#f18iicA@RP#~elsYz(7kpM*^*#dsaHt%sgXk1Ym7j?5lHEJ0 z2Q+*y-!0zF@@sIoxzWb5EYpbQLE^~bvBeHDGQ}J^fn9kqX#tG0aw_&WF67_L4Xf#m zod-?^a&W+BGO#7Vyd#0R?N0huqk4a^8^$pR|8s2fSg6OE76u~tY96~X%T=NKp=TSZIBofr??k?OjF?8 z`>CQ98bAl{E%ysH)KG%Lm8($8c>%*w8N;#`ATP)J^T-a%4e|%~w@ZEYA~3QS_EGy- zvFuCA;Z$_cb87fftoVLEk~*i;>h$lGw>yz&*v9&ser*tU5U8TzWSJ1sYYmu*oNTdy zJUin_My;9)^?go3Z*P`P%9U$fJJ9MHBnN6i{>>vPPS)IYY#+CIQK=QlR zSlBo@-%_u4;XdKo24TX3U=r75F6%S%dnG|9hcFFAZ?MzNghIoLOr+;!r%rnS+{KDR zFpbDj_f?HOPW8B|;>E~rvoU8Oc+GMfm1$ZB(lab9tANI`Dp(X?rz+FSSYCVH>he5E zY-?g`=R?d3WS}`iwxTi8-%dAZ_Hu(eYxu^6kwnw{>>P$>yYjB6#LcUKvhpz#H#2M2 z??2Dwlh@xY|MiYdP|cBD$}1KZv@<=0Du972BSTQ(*gzVoHk;B{g^Gj&Q8~`X8O<4@ zG%zT98XORo7GP;W6SncZUokjS+1tvTL;<(rt6zBzhOq*JciM&1J3<7@*EEI3>qv4w z$dP@EAf5ILU}m3v5JF!_u|L52oC+b={P-J?4;s#mh`+&gBIW?ub2CHntc1_VyO(e2 z^%PL|-kYL3)x9T}l!EQaf<4z|v1>1_%VDk)bAVAS#*UYP z@{NPx#NJRUJXpz_z|Moj3+MT0{W*t1jfkD2(wA+b^=0uC{Y=t%!j(-uqhv`W;hOP8V@`i`R(It`~TdVKc6#g zxQjRam}I*prh5FW8n_l=7cpHKmn7aWMj)T{E_9gEW0+<|UqpOxki}+3J$>JnJ4Ab) z9^KjZ-qQ$iW>^ogMY2mq`S4RYiC`5D-bEySXq66lcO{{W zg-GtuqYP1oZMTIhYhxW)7O;@54j#sYdi$MtjS=+jAh>hXDMnW&>6=-v*!RH;`&-kE zZ1$Fs2eoON?6bB4CYT&orz5%Qfq8it^m|eEdHbsW%gVuFx>AJ~@}dy8?~>%HwurN* zyJIyCph8LlG6RKuV-2fgIZDp?(qO0vcwlt;9d1n&HjrvOr}486uIh$4&4M(jNj$+v zn`VREJ;q0PezqYyDBEjoJbrfZu-OVx^8p?u+`qH0?%E;3l0hAH#>k1Cat{vd+BmI4 zl$C&7Gf2`o|6MMgN1mw!p5?zb-Kaelwt6|t_o9o#at)NaU^r0fy1X|`e=y9*AL_5! z?^CGb@T|+ep5;?k`}DY`s5A#+x>WNCeDHnJd|MG^84(JWHJU+4sXNQX8HpC1m#upv zj0eg@dW#+5i+J%9IM0uZesn2R=-uTIx1;T~1W{#sFXdE{nywlQvNRtbWIW1ir8Zfr zCDT*_FSMaG$JLdEd&WiszL~t1P2hIy!zk!v02n3Xg)V)31U%uU+5@a4AHKp? z-)|pwaQNdd=4KDOnn5%`Mrq0NCfV*S4(7>&%j1T6RgZ%>!MUc0pdcKFh6onM*cauk zz&RsoewMfVe>{ZHsNAZ=8j{!c2A__bdp~VI4}7*f6x%&=J58IV*ok_QBT$=VI=#H6n7HE#rW4qVH$UIes`hmh3FecefU_Z1As$@#`IWsBwE|nF8xLspfjVaed~%J1u`r*82fvdIhATraTS_b+7@5A`qP5gecC(uW%o0*t&H zvnkPK!SKttuXa`kIB25uYXUz@oRzWiE^p1eFdT1GbV&He4BGguck+vJFTN*LF>6ac*xU3F{L#o|zu0V}k)H9EHxYGO* zT^k9pRziCI7L=Eb)>OmGds-fx97!}^CJ$&4wqseNHKr*I^gx&gWA{AYPU#$-?{MBP zo4gKV1B#mZP7731+tjK)Lp*EFDO3-n+N*|YQm3_0Z!U*h1QUTXy<)fpMZ_J%WTmvr z!8`?7J4nF0s45R};18g>m{ii!^*knd)C_amP*di?vF}Cr$=qC+`w^qFOSow4Mc=~Z z5%C@dVSu{5>>Db|sUAJ;X;1@#sZV^i9rgf18%IZ*RE_IvEIR<7QvmWse>`cP|5*P%`)K_D31UF#Qojvb^Voh z_uGd1#LsQB!@k;33z9rx^WP?qnhGcgL=e1SV7P$oJZsic^2y;FW6G9pO~6*_SwXUD zBjy2IiALXBWWr*e8ZJirY2*>eC4g`(g;T~Y`5h^GSqZO^GaG-q|IaMHUuS)5e_Yx! zlVfh&CIDCMV`|2(EBG4mkJD#c7T?XIOBq=kwQSHgK?$+1^P?p0}KASL@lGWQqzv7+1rb zOO6LRp7jX`vL&3sTWGQTA&<_c_JKed?6;!!k&fY1O7c9yt~##Hv@ku+ab=Hi1Ic<# zd|m~FF}IN(CaWiyfm)1fY>uL8*;kN0_G6tz^7$m09T!$P&iDn!o~tpSfzp->;=&~X zTJPx8mo`doMIEo%1R}$2S^I9Wo{b%*!VN&=%103r&DK%g+%Img`S81ZAR^(o%lNg& zq&>`+iK*SXPiQ5{i{w%u-bmPY*Ml;e%5VWfzx+IdbG4d=r*-c~0m2niu(F38?$C{| z$Ia8Q1KiSYM1})?R9W$cW@F2_l?v(KH{O6bP=n0l{UEw|LuN?k7p}xlcfK#HO-gs% zn4gQM;8zSFE&|-U;zg~YI)n+1Wvy%?(KHl060(4vcl9VMq4V#vx32Tn@9@O)ye&1o z8X%PLWS6=ZwcC`#9SEXomPg5R>u*aDV&1#2-^oAP?jf61L<42Bef7G_g?8cgb&5WP zS{LCa{fj7L*f}4`wZ+LG@9=jw=3$=k^F*1o?7pWfR5yR_?KlXq2~CJ z__DQz9CGecVXNjYB_20G72?FNMKLlzt1%)}IYsUuW;Y{R0;b(_6`dK~KvWIjJ1{l9 zS{}v{DBj@p&5_)$YD+f~t(}Ha_SuPsd->%<_2F|=^x|D`d$Z;^V35gQ=uaT8Bzhi{ zRkynIWS@lE+un03TS)8Hto|?jxw;tJvfa`E;Bk$&71Tf%=0Mi+m6HO>%Izv>ICjpj z5<2a2_5lUZop~UXAQrYToC8r5w$U_o5kLkLOi~(RQJ03Irkgcdrh=~1zFYWHuvBeK z*|-ZnYbyd2jfMs*VKDw)BA9hfhrI(7*+*a=9f4kf6DMqrE7q@9QpVh91%Q7-3)%ou zJ+?^)q`x-#+Kr(F81>1rH#@SfT}x+G9S0eJ3>tOFWm!Ju;uxsQ*S_rlgbDKLS+Y~y zkc}2?rAB*%@1WdBKhlvD4nPC0d$1%9pE$Ojf-55y$HRCGW_Mv(i|UN6eLN8DbK$Mt zV}opA2T5RnCm4aPw00Ck@qv^L>V$U2UXmJ{)?5OR!7k0iB&BqF^6|fZ?O)AYtGNvW z?AUp%fjhde6Ml-jx(&EeNI)P2&3}@bER>8t4@5_Qdg=brEt@7Bzt~)OV^{xAx1a+f z`)W?@JY~P}H`1-cF8i(=wA)em-GlP0k8R%m`g7g2FFsGXfBKs(H;-P+I9r+5IO;$Y z=m7_tpqQlqnk){QZvc+GI z&Umsh^=}sAQuqsNmA2ub2syGeH`PTI(Sp)yix{R|DfhSTw_>rZAe5MBYoqa$iDjW5FY8+%sGvqu=i zvx88#$n9>C`K82RDrWBnKF`optNYK|S~5LQ;xMs+fh8fa)oyP^JD(|!0|oOAs)L8= z&i8@jKOOL=t39jstlaYj9Fqj}V6cN-`R|{46<&Ivh*gy5U2~7kF4VlfSQ$w*_2`_e znGvo{ie<=63HtRSID120BgFP@Vf;e-xr_!I9BRB9fAq0OxT{wTJE&+y7&nSICHeUx zqE7c0OPbdWn`zAZxL&Djgb>B-dX~al84d0den;qTu5d9ord(%M9K4?VI5s%pt3|u7 z4oBKWgMT;w=NVl8g}>x5zY^b;6aKl#8d{%#Jr_6WK+QWqcS($kvGU7XP!Q(_|sHK6(x~5Rz%y&tr31R=6YQTLN?TH^lz#?aO$&z z-rrxYU&~oMHWBd0#wU|+TzAmNQe02R8>NO$x{$#==)A0TBUZGM^YiO1^;<^o_c9iVoAIB(2$~7EijZFr_WTN86#A&mr8~q9cL(z}bPc>2^S>xLJ)?Rac1k2Vsf_ zyiJ}!ro(KsfZW%pD7O`SGlpEBz1G+Z(j#v_`umq7XTvv*%C3*7c#ohmcTUyF5yqVH z?UUYxk==ft*MR}n`Vm!HXr2UYMPV(o0KnFq00> z|AM*fbao*hDlo3T8U51wAD&sihP#Cg?V2d!ax2fFeMMmGHis|;YBZ905aLpc@Wf?< z;+@rRW+NH_k zY6PU;6S^byV)@qgx#K+cVZUs^9`YZ~QGcwWH~o~-4mxSLnT}Z0+K(nE8(Zt@4?T~p zn%Ko*oD@`buwhM_u|v57T#61W@H{rHAzRd~0AqKG8 zDhg9l8bxKO+Fqx9WZu481zXi`^PB|}HTo0? zkDli4F%du|_S5d&ok*jzRlQhQ5ptqQ68AXH<0scQag`xq8O)esyF6!yqY&4JS7sZf zwegqK-92|}JC<54%Xnw&dxXri*|=G%qZ3z7$h!Vv`@B{%b_#ik-N9=jxGcPHl_pb# zB#J+1t`2FQ`6%i1Z|9CiZWpK+>i(|i^8E!8*p&N3T+Y*UXIjQucV>NbwlfrAR|*pX z$s!2uqwP-=dtyCvot*pPzt^OQTa%CC1f`RkT%H_4G$oP0VDikF&QMWEW5@b$h_J!t zF;H~d&E7DgLM_UFPu$9P>y(Uc(;`nXSS&*L!?7&2ym~FAZ$hC!jR z=|LqK7`k=;j_;4XNnUAoDEnD0H2XSx-g@r$zJv0+%rTF?Fi}Z%T0G zM>NV(jfpVnmWle<8ZVm5#6wJ%;sPqW3qe9&o`QYK0Os!)se|Tum1YwZ~QOp zr2jcRIJ@u;dUQN1jkoBP4N6#ab|YR4V>pqkV}MkjMBmOo$6ZpcE-nLBXr7u4=D~aR zQ;Uk)-Xp&3Sm<~n!Q}Y|__%kJmr){ZC;86;m&kEFLpt-_CXh2cd@u2L2u>`U;uEZc zOhMP`W*ia6b^1=zPWu7^W0o=7X6HbD&yW{D3qn0)sO%BV$t{VE{bT87ob3art zk&^6UM{W0YrkiIY0cnMY%dyymi%pUd>?VNJ#C&bXQrEZII1sU&P_f*Lo@MMBQ$2B@ zlbxpYn%^jQf=!|a7wu`ani3i;Tw-2r6Iad){7k6#jA`Tk z=PT3Lk1e1#f6pO&-sa)h$+XMF|HUr6uWWaEPTT{Fl{pWZW`-m3wHD&bTUBVRnqg|x2w?-V97C6a-`x1j@Kp9&r3KiM`(GxMZgp!5Jf3o<*Y`PcpiO(Tz|$Y{c~fo$*E`93)NLY& zU>v32-_NgyFBZ!G#OQ1b3YP8MqWs#>S*Js7Xd*C~R7SYw&aIrKW@An%(+6;wMipN4SPW;jLfBer0z7sP_ zp$b+HK3y};CTRS}E%KL-!ue)jd`|E&qqG!x)R3e|A>ibXY}dSPs7`{%wv(>08k|ot zkWux2|4JT}?&5dbl^Qc;T|Jj}EJj)HTPRD57nJD7mQd7R?H8197O{@gb3r6gx>~j9 z`mci6^XzTNmRi3+JPod{R%jMjMMuJb)S4eJkH;j2IE&qC!49^y8HXF0K8wGXL^%b*rCZZ^97{O^?qFJ;CH_0q_lOL2yQ1( z8GJI(w@Y@nKQnwqxT;P_AGx52I~=!`5zfs_-rDbeDR{B4W_GZ5qUBGDe)7XwTlw5)B5U8`)7&7TTjug+ zb+w9dg;^=USuCU`Qwwp_9@)5&)H=EY-!+CG$%@d;eDwXkTjTDOEYzU22YTsx7c5pbZ(;J7oabMk{=8`CA~i-SP30TS`7E^A2N#+1%Rmsu&dm=hrg zQt_fwF&WCCi;s{0%zZ!T;$q%=?$f^F9X&2rsWF$M$)_0dUx4hTZ%U3AK?1_5r|{7t z>uMt{-yGZ$JJ|YMLQ64-e-w3)E6HboabU8ki1w7V-)5T^)=Fu|@w0!WD4Pda5aU}| z3k{GOx>kV=N!A7J_3jV%N#4gAQ`wXn|8gi|Q04bT?wxJ+t!lnQZ`YRNbYX1s-SDFn z8@qj59}K)dyOUcvP*29BiBlT)(DHthK2}^ogob&9d#t!bltt?(&%l_?S*I^a^?Od4 z#?#p5BOeMHcsQ|XZn0}s^r^{o4bkrKT%2ih zQ`J9-enTb9Y>kYh{KBP{`-EKD4HSnjcY~&P(Otn0y2@7)~wWA5GV{26| zgO15uaSNOn=>tTSgw{XxuS90wjn;~ao=HosTZgZ1?O!Y~us+&tTAlKqazi`7iiVm; z-Wdp{j_(S}CJ}GzeG>!0xXWG;cD~K6kE^cFokJD(7Ut))_y_OcI$RnX2J*I%){ylJ zfcCQ=)qJNYKS%y}%q7>Qv{b_nWl_Gv5MpG`iuY5k`X5MC6P5Adp>N4x9)wUD7~~GQ zlm=>+r2M5%Rlc7jnln_24&Zq4fXCtL{y2`_D@1z43W1;s^H7%BrX^=R9s7{jcG7-`nexWYR1n2DqQ78@Km2b##A4AuP1OF1b-Ej9L-V z!3pJ;ezH}i9tsb;cv`(0H!B}WNOOk5o%Fy4S(B6ZK75YNla;j*GIBh%kn`aJGG&E)-a4FGtV`{+J(@|ik?l$E*zv%4_K>m%$N63$u6D> zL9+#uG3B=Ut=mjc|A(UI^wDqD8Gk^7SSBFT%-M6v5s{>Li4Y>t+j@}v}srsMx1ikEvgc&+oN!}6gO*#Xx3f@ z0{8pUW&<8ruSetf8Eb59Pun}i17=nw$Lpa zJ5nUVb??VjyY@Hhw2M1OOLf*!lP2dPAt!D*N@*1@^kw=g0nma^eQwyVC@wI*$#-v3 z(A^0a!v)K%j*{iNjuOP0qB)EDPwKBqSaue?Oek>go_ICSiPC5pnH* z5(MJmGcv@#?4pf_NoDauf61KDjdPROBn>RdFw%6-x^)}n>wjOXVP~ks4h(7v+C* znFS|>+f;hjLxy{b_G=RQy%oXG0&1-vfPRv^D`}(tMMO0iSxBAh_lHmxjK8by=wgCAkR-d z%%^}xD+hh^7?M$|q^3h3)&JYSe?5BqX?puX^9T)`YosU*6w~FEzs#Qmckz`?16|sT z!-+o6Tq~XDZBp0!OCRXjYHs#1W#;;{Y`vl;fS3W_Eq<>KxO12wDfZ*+(F|Yt`^|jo z-NWrPJwKgOVNJn=;ic<;ku-LiN&Vo)CRhCnxq`V^A0EH@o?8vJ$YDC@lnQ)>ZxWe= zd^lKB!6#W>*i{i$ZHTM0h58Qb-p&oMkw>C1*UkgE(s4Et87f7kp$fR|6;Q0|*VLq& zd%+!tp9UDE;(6INim!|oMhPf$c(-&A<_h9i;dUo13ni;wEbwY11KkL#8bvW5(xZje`w@U*=62~_0vO$qqfA>s_Hv?`ZNc)(DR zL@1^MBVTG0)V3i_;k@kfGyU4QY|-wRNQmRjA6Zxv0+`h5<`w3oA)KvD(i+0A5v?HX z_9-HRZVhD!tVc?9=ZxM3z45^bzfZq?JJLDi8y39iYIp?=XRWnaBQM!{VKnDk#97CT zXPh{H5pURu69mFr?Ybu$H$yJj#4irF0v0H;?)gf!x+JX>a}$@O1;HhIl?uc zu^8nCspSlYQbUDU#^Vjl2&MqL3~Wu5r~rb~G4!i)ccxVV1E#{nPd{?oFjt69qLb`i zA-!9p&S7W;)PmFT=$ekxM=3>+eEI+MS$+!3ALzrm7Z-0aknNFSto6_)IIneU8FPJn zJeTpOV~gKDVRTj+v|a5Zpl*V6aJ=0*_c+9b(K*0S@LAJc;j(vg2Sp?tTm7zeF8Og! zN}qjvzlgEhl?^-k2E5Yzp;w&U)-Kk>%FC2{Z$-pbMSHHzXd7F)o3F=Tz?{!Mg~EOY zTVgayJ&0R+|42T^D4aX~?SbcrG5ytZjSP5Pw=Ng}>YP9Yr<4N@(*lzplvTJ4Yw(NB zjxdc($!>6&tH^F^3zO}9p z>sjy>)Q5`&dV)yrq>SsL8dhY5$_q7)+}7@N3~Z!JSLj{y%(5C;o2Xie!LH&yE+n2*#);1%|n=oO3xK%q@(i*<$kH)JR0huBXipuutxy1fE`g`PtI zsEl+tWEtE=L~ut!@v_3^3>E*K4SnrF4cglxpSE~o>A*>Ln~~jBCg;?bhr5crf-e%Y zXW>l_p|SBsj-1T*o{C8FzUsg_S^M_D>%Zk!lJeAb*jCRh{b-=rl}`?H^J5vB3L_i_ zOUt8#pqGt%NzpRn_vFFVi6g=q3J5YW_GrxT4{6l)nhH`OgSEU{~Mx<%`8D z`h}6n((xh$MxS7+VdRDp)o19dv64!hRBa=FscD0PqQRg!pVRc2)_!6bA4Gj1*)IK0 zRQ|=( zUPkrNz<^hB2VP{DtK)C(l_WcPhKb`otjU*GP7V2{u>T?5#u=R&k&BvZiFfJi|Ae2? z`4k|;1z_!c8^}M6jOnKk;yPF}29bw`K*Y9JC@Lm?9(EZ1$u1>Mw};OQ<#r5B zpBDs00+9R{J1>-@HL9;^KYCEgqa!s#lhkOzXmlCMgR&|X!V?1?O12S%VMx1fm zy#l;w#hbyaOkEXown&7u%1(NI8uZ?6b!juuZn)mS4lp*UczMGi$Ug>?R5n53c7c{o z7YO_3YGFg&c8G7w8=G5OPk0MSn(2f7f0yy2-TsXcY$N@o}1 zl^a9@7*EVXmS7nPFdW+d#B1;K{mfGOl-o1dOs#z;>z}nXCaC4_<$zD8ZcO5=-0b3a|b)Y0%7)YoJD2)e{Gwu)34a(PD9r%w;oBz9y zG#RNDp2fa6S^=LTpI?Dl^$S@&KmtwumPxp^mHU_*0s>0Svy>~>pRl{p2a2h-?;eeH z0*$V?Le+tqUw+1nYUpZ#B~V|0uk_kywrQt*`hD1ZWTPa7b~wOeA3m-fHTQeT;f0f~ z|B`KoUki#(dn5WP=-WnA@h|qeTGY$Bwn#>Rs}F{e%t&`evSFbcJfhUh_5Q0fXzIS()rCF_fGpMH%;m`U#H39KYk>k&@jGc|XEuq3f!ajT6ZM4chtk`#a!POND|09wY?qbN_@advI&$)zdaV}P$&iT-%y(eQ$P!ZI3|b<7ia z;b~H9z#v>gU0ZEy8k>O79lKF4fS363cj!S!KThWb-ecb<-!mQz)uaCpRc{{G+;TYxlwh>PSXdb4zy$J4SflbJ~CnVrcB%amcQCx9Ks>cx9j`yGK5ipMmsG}GC?82r3Z8Ad=j8C8A(KGP%05a< z)q}inUh8oTm=BoQCO?Tie5uP6%vi9_upxJvV#Y_F=o#ZmtH3}9Sr@$(TnV63>~LbIBA2ImoX0JWM&3H13n9{xNckv8Pv7j| zXEt67A3hQrvVeLu;iw3!CJ+DhV4|Sz39 z8G2N6RR_K1sM^f@3Zwg(+m3sEYP({nYkF#gh8KJ_4jIVD^$e4amzMN)S`te2a9a&8 zeV=QL_>KAQDoTEEZa7g?wRpF=h&3y3vmPs?kb)`z4DZqcZMu&g7M1Poa%9-TgcB=EG4CrY+vIz9oNvrFepz>La(|sIVMO{%_y_0T zV?}mCC?^{Tg41tiH43M`(mCo{>ZxhXKMO-rWYxdpgsIrM#V~W!itdOtbdsu_q6j1h zsf+zyL^ArRdcs`3N)J&!AUctC0@!ou6i(wy!1gy~C=!=#lyCG1y>=h6#I>66f^wl@ zS{w0~wnw(aKFucYrhLvw+i9Ft>(oQ|)#ESRrSr|FrT0nip6p|}v?rs&cBj^D@T#jC z?7x)cHoK=kJu=NFEhk(#unkFd0)1so>P_wkVv`&7M+Kd&tEd#JW{GYX`3<3~#+|Jl ztgM%F3h+>rEKadEWHp;E(+=XAnf+)Xwp+x%#vTGI+qe*NbACf%@-odkK`q3rEgVgEx@eADtG-KA&qti2twsp2 z9^dHR(?(Gx*lK9ml;uhaWP@xVOh!9Oq(M%(3af^?>4x>>8vEuC988IZPc$2w-IO_g ze}7l>VAajWi8#(0n3}w}n?SH2)Qk;Hk~yLvIIEwRLzA>?IoR@dO+kX$J9hF1=9>9g zt+=`XCic~77pDYT_4`!alMpO+JmY;)hD72)oj+7bRE|WzacZ6BcRf}}y3FdKjHz*Y ztWCwKy(@7S4IUIN%0gdRtZi%0gTK;9$2E!l?n~&{WSv71cDM{i=1M8AlZOoJ6#3Gq zz)=J9V^;B{6LL~<(LT}Uqm%QRjy?UC5THdS%{Y)@3JDGul)YD!w!uE=p42N|C#qm7 z239RG&<)dqO{IF;E&~ET{f)YsszA_IK}OO-$0=aiZaSO=`JSr;6GN|5w*SdWn=>ck zwl5p7G%rh}BiQv8OS_@heIbdVNasREWkh4^7SLb3Q%xIZwXv|tOoxn>EOkLi8+4A9 zk(n}W@p|^gszk4Y6uZVTKw9XR>J`WX_(@2;0b+}KN~d;o)9vjsR~On?Yb!K3wV>V} z2gb)FS?dNsUiL9I!2yj?o|!}ad}SKR7FX7g4$ zHa#ix6n~8*KXDp&(@%l7##Pbnah^1WaYL{u^=s^m0EyM8bR0(lw$BJFmy{4S>P4z{ zh?=3Cr`70cx(>AK$UEm%n_fRrE`}v2huZW8aoQ}3On@Xz!+xWzRts_6l0UGtgF=vuw9Rj>n?4nN z%sruBCxrMMKOnq;du+l!hR z1HPqW)N+n`gNCYd#Yq=IJ@OwYT9&n<8#Gr?=xoI*9H!j89(sotjX=CFr}3z&Ih^JX z+>`fc9T$$*Ho;V>L#z;SKlOva_ay%~u@#-B=+w%lAy5Ade#}Pw6%O_T*()>|v>0bD zB|$${19Fd0e3{}9WAE<1XVHCA=9hTBsxeq%@iv)f#hHS(YFmg3=EE{daX z!hGD^@mOyCi|Cbod9+KhZp~fDCU9e}cF>!k=+OE4!@4Y;$T2A6S8B4X>5Vq04fdR- zG^Ng3(Ws_t9#nZ}rEWohEYOh56^q_l=KGVWI(wXUqJ*kU#quQCZPbVAeyUo_{^U1U zYM-)en%Ji%v?*aq$$}RQC5y08R7$BLLCBdx=^RXIw}9ipR%gjT?;^ZfK9Wnz~uSnYxW2qRw1* zdU^nohuWnFoQ`@=9rEeyV|&S4+Nja^kd~j{+buLzEAQgIW-F&~I^YtSMVy5*HGAjS zx?YM-&BzlQL~0GGA`gMKW1xVDD_h1n2(D~t zS*Rw%5-+s^vP|yo>0eIRIUoIBQRg8HkNcLl-d&;GPWL5AeBlNSEwij49i&(-{*SIh zsG>uME)0ZN4xK!N8@sHz+Xidb(X=WUPFty^u2h&iVUz-!Pv+|_VQ78gmGt8I6QT|o zRrW`S?fYwM1_G@zQQi`}=m>FTTdsIHUrUF-r^GKvG>0-3>fu#agJicnd|kw^!02!} zY}{^cnPvCHlSW8f{iUR=VZ&C>OFXwie*4^nx4yJcoJq5C&Px-mJ{!CkG7gkYoo#m{ zrZ+Wliw5^#FKGP9+cKf{Mz2ov9g6u*I9U?}ZmE|p*CJ$DXe)H8kpqLcIH~D292{Ak zvSUU}hh)^AHni`(nmAt@gOOEYR#g_MKR(Lbv2|;ihd5GkCt?t9>0rAfHRcq<-q z8ZL|F`x)`kvx++*>TPQ!Z)%EKigTM_o#`Oqjxsv%g@LDSKi`~?OkxM-Z}mlVw6u2$zAI) z-NSaPhKjR4kTDC&ws~48{_k=ncy8MWu>)i&Cm90s$)#Vh4}*rF^1Uxp_Ll8N^7_Pk z*4q$w_n8m0ro9@tw0j1%%Ub%)jg{kHQhmuElDqh)aKD1q!z^e$Xe$41JpdSI3FPc6 zF5tE_wp~(LHm+ok?xBsgj<^WrZ;W=9qtBVqhL<8g1oUoiOIiJ8v8Su~LLxqMc=9{O zdD^?}LkDWl0lq^5LZp0Bm+4^*S{1jaaBqn8iH|i#k;^sZNv(X^SzLD}CgDYNM}Uv2 zYcVE!^m_Vi1>axZ9#_?$E)SsFPIqtGI{@d_9OG z;leoH^g$U&XL^r}0JP`h=Fn{BHNClvilgRwxhKmQzlBJ=1Ee2Z>ylq|I3F@05Q7Q9 zrqx-(i$d_JzxT)SjE2Y-O`2>FFsDGMWO+X^CNyxiT_1~ zL@9?#NJG=-29FQ`$C001KT1aq%|@9IWe}XLl5@Bq5!}CYI(N4F_}lU122=(>;`Mnp z2H~JjP+#X@BT(i>*bqP*Uw_Xu-nQltWpD@iYQ4NQi`9JE7XD&(r6W#$nh+5uzMgr zBAFdm>j4H&P9JJ;*-=C)O$ z9|o*^=yb4w@)%`#V^&I5008gCo_40K{d1xMmNzrcF$DE>S9EU20`1dhuLlphmpP!# z;u-RhfdFY++N36`E%wfdb>5*c&ZSQC&__5&D; z?4eU{u*>OlxOUb%C*%@3=1EIe@T%&S(`0D0Jb%s`jz49ozm^f7hUk8LFZkawcXHc+ zs*}87v@jJ<80=GA=b6$So*;vlJt2sp9hD)RipNE$1ae(`6$JNc{EusW4(I4Qh#C4Y zjs+WXzOc;P8jy>+qEDC?`+6PR5iy(ImLfZut~HN&E*<pqO^A%9ja9`q5RjLF$-Lvas|H-`Prr5qi5SWY4$fV`+SQDelNn$)?!{* zm-b~J5gQyyHH#t7++yRGD^H1qCoNN-j-!i~6!W%C`0 z+|!vnVod8$tH1J#9o6UXlOGRiJ3uVQh*Y>j!JY*9=-`znEu4{f)2z9hi)UQt=4(Bm zjNh9SX{`lL`%RZ~2T|HzE{#0To4zU<&Z_WJbY59yMHC4WvHVf_7f}CIW{!WF4SB8) zff9@_pgjlu6{C_fu{PP2Fy=qM=C%H7Sg4-H&8RxLzV67AzRH69lroM!-S>xDGM76rqC!x1GEyB-bdN%&8uFR zyk{|ysA4Wch&uIGY(5CLl5Ooe!5s}~tEDR+P*;q+*g6dxM+xJaE(}E{5r=sbrExro zyYzz(;<0YL7n-7sp)NO-zgOx>ivv-TcXlQ*3?eM_zh2^bdqj{U>8nltSqQ)q0$mt< z)(<{3ul&mGx1%meqL1L2~q(L6a{Q)8U3WWmS zV_-&rV#6Ait6j*g3n{xqV3CFSqX*5an^FJ+dOgWjY8@>p?-$s7rGlS}eyJF&y&Q;2 za+8Jk)V^UWC60%FpqsF?3RmGp$o~3Z`GUdzPXAl{OaSmQo;$Bf-fqR*=LWmG!JZP< z{>bRDSHyg)ik^S4eGM-ugDBF^3#At!lWQP#p~2VVZK`Nn4Mn&98$T`ODi;b|tQ908 zk%#I?n`E>e5dSK?VlY_C2}nZeb)!fjkig)+gL56VmmvqiilcUQ?9R%{^!gv1+Qs9n z078%@A?E_Jb}}roM^btvq_zw=g8)u%nwfJD;Ii&(dcDp+Tzf6<56IdMcn1?;M>_I1 z$7;00Csd2=VQgGrg%c!vX(95bvz9Q?%omvFMata_X?}o>0M#4LG45XcLZ3T|-bWuK ztlhU}B#L+)3kJm&JAaw}#2p~WDYg9dNm4G!`{7CDsd!~r^}^X0R8?nNJ<~5-A9`3n zh5C`KU%yyEH#!Z|L>CtL9F4C(L~#I&u9fieSG8=IOR;7^*y1mqy;HrVyB17y_wO|a zLwG+-C%4v}%7MEXEzd`=T;gRrivo}ShtN6^z-o=7vmxn`^M*wR`)`DvHTLwXGwa&Y zEuX(UUOEtMj*)-kKhE@9S*qm^($XHcO-cR6NG*(!QV;xSpgqdoCbRZT!P=30Ya0ir zmc|*t&jdDmc27u_w?bx*mfl4s3UduFYUFeG;a_LXy55_+&YX;W?5)^b)&a|zUfn&R!BLPKuW6RSJloDVI`Jc$tH6g=f;GcD z@xk1zEteuRBWd%y%m;GY&-07?5e1wUcw%X-4zgA=bKOr_%my6*`@Y6j z21LAqc^nmsJ&uX;*`Hr8`-~D|k4njJoSV=ySU!o}2|gO!HigdmNiL{3?wrmGp51dY zgZ87F1203Az3Rv9C*D?9L!LdZECDPmz4#990xL3VV79RH18TLp8gNn$f-p7b&sYtc z>{U;9s0@}V}%VK9pzVX!+^dD<2ylHUmGJRu!>d-YbiuMbgM zS$!3Q(Xn@lrwZB^N40%@2fKm3owlFSQs;?8bbHf@$zze#P2JYpM|2!ChH&$0_WB65NLpCDPE z^CAX%gW!y{j(!CL*fDIaSQeNrn8y`2gecCh)YN}7aYeD@@+uA zrf==^lh3USEY?nXsV^0BIRF^YYRI zQv_;fWw6;mzut11gI(*|;USLE6f7o=$FCSD=Uq7};5rNiU#$_T9R z1aPneo#(5>=}IzSF#RU;!9!K=i|9ZL_S@UcOQlI?jVN>T)uX}EwIi{fm!*C=Fq7ci zf+jSOx}(LLLl*o8iJC@a^<3Pt%-J`?iAaU{_R<-I3ns$9%)M;v6ttUdj_AkT{F02d z{N6p{lawltA-lQxdO8t1Hax(sz?6&Id})5&FP_WxSerrjdvZpmdUFC4(nwf7Eb{Ra z>oG?#LRUC39ky3oT`P*?HVKlu6RCY=;*#agV33)|53j6gM{Z>BykUv0*(fh)x-7C> zF)V?Cz5iAC<85|3a3epX?gY>ah>>%{IZ^Y|R)F~BX<%(ky6-DCt<<_OmK?=|_jZ|v zbXtapezG1XN|TpX-b9gJYUH754o;e+6ZMfRrdj>GU?&#^UqUPC6<4%}KwxLlE-%@U zd-|trd{hca*_MTfMe>oC?rtG(Uk~D&(xFdnJf9=_q#aF9=Bf(a#o;!Mq1+?)^cr>T zU2DIVrK7zAFj~PWxFtjO$)YzBemVWOy1BI1>)-yf{l*6zZW>qVp@$usZnqVrahC3) zf@cr93MM5H<}b2+r7JLVE7fxseaA#qmn;GdR|MF^o`}a@h4_7r@k;3{Y6(`gJ-j5U zpn2ZP3sO9)MRU6sgsrqB+Br&%PPE6XX*AfEsZm!dq}#l7CC%uHbMXAK4+Cj8>0U5hI(X3X;UXCQX|~)iV7p-xFX6C( zAElhlzN;$yG#yHB0vy4G*J%~hCkO6@{5AsJiEA9HSLM{tMu$j(_)f{`KP~l=oXOYM zLy6{o_viUP={tDUCUZX2f0-DQ zP(?RUlp$eAReXv2c5iw=Yq66)NapxrF{~Xr46?07NBKGbuIA^7BFwYu6E4zTwX)+b z%!J^DOMhz?mjI4(A>WgY4YZdywM_cO$zF<5kFH9d>Mb|4gvjM!VaTeQHN3Gk+DmX3 zj71b=ZHK;;JS@Yw7|B?ZS%6S(A-f&C%z-&&2JS4`x$|8Oe=DiSB7PU_92NWrzIar- zpQuYY=+rWbVoq&C>!8R)Q&r$#wn`m0oCEmmM*~%b5hTlWP$&Vm&@gs2Ol&S@GsIXb zSKG-MIBQKvo>axkgieGt*h?HMDVnNX7GBi6VYfGHnkBns8G(#Jd>~>lvJQismdiH? z8s%3t2S#2)-m6=C&((zRO2VL&mdMxeoycR=GS@`yiV^ktw%_+A8aRAI>LR0l>v8fQ z$C|{*&SrFpJu%`{?#=DI)X!*Gq>Q;xPV6lC6?VIvEfIat6o){@2^HgR;sSNjbZWxl z1N~)O^m`tJs(MjJ8Y~-yniycjh3IE6at#aDOh`Nm70vmQM|{Mi#sNV8DL%j=@Vj*_ z$z#We3;s)DRz^ZXMqG_BZE-QEu1j{HYv7P&?1= zxVLGk-s&y`Uv(J1RWp@C5PmNy5l`fE6fLU2e79LJz=Pi+GB3v=rV4<7Bf^~5zV>TY zlaj9wYszTVX&1JcwDNW4 zR9(2iE4N$=`xFQ}nk5%kc^Zv_0Vr=KcXgN$O!OQ+6M8*&f>3C8u$-C>qKCoKUf*mHP=xCE-$=YxShE5qkz-ATKxLMpwP^U0-7YA z&|u9Cz}#&GjJj>VpZcUT`A{jh>zJ_>{w~4(7^$jb7*2I-emAo?(7IL<$zC3hnEwV( zG^u;xwEyTj*NYX%kbBd9j7gX+L*FJEl>L`iTfvbdk0>ZyjNG&k=(3~dQtBOH!t?;P2pCp ziuYx!P6p16?C>%Z{#8F#>=cZJuJ=F+nj4#0%9H#C&R>6ax?F=+KSb(J3Dr~WoK}hm z)&qvq9i99TkUDQbbRby?#uQdT%33)h(5;#@$^S963n<5*3SA3us{uc2CX{NmJXteV zZ1mE`PV}Rv>6&`&>72YUmAEFh?}e=n>kT|RgZyvjA>jXcthxblobv9hb^5(v*+h)c zigvrLcFG4L-Ru)V=Hx5uUJTY!+^4N3#~!VHhLhBDgno;6M+0TC+Tipma!*xE2BQ2G zuU8V8RlC>GVhwX`aW5sLiUfzYu=H@v6K&$P0Xb(w*!X9)36nd%-C@*q0`ehhQTVxaoG^;nsybY)DLpK=_?K4lMzTAkOgJI?Whs6mc4oaZZbh8RvnS?TW zK;$$*;}i>|%?*-cM}6{qnSYs^#-MU4_RbC73n{Dbp_5-KdHF=wvB~1b4*J#6wC-WY zp=%j(!Vy5e^1U3`TXl1xti|k@G`~;?jEUC?I*jy<81u(SwzFwvN)qmr`@vj&ORhn9 z$&_^MdpbngEw;o>+%=nC0FTUzdHvh*8K2g=BLt}Pk{MjFnFoH##RawK1mp^Zy;>V7Oo2t}*OQg`rWGoLzUmmU0seK07d zlDyp86w=N^z%s&b`p&_3GVHoh1I}RND4G%LTrl{p`|S#?ztd zA{LFGO2qv8+`jHV-U;Sz4l|iU%Nl7MEJE5PS7ea0V*559~ zVa9j*mPC+X8AlDA>$LRkoXCi7?(*v+3reJDd*ugPF)6X}A2f7wTXR^mSsU&Nl)~+b zWBo3dkNh8uo>4lgnP>!S|J92JHxF23ZS4!F*jG0lntK7a_Ty?5xowc0otkzQR7HM+N8iG6B`1tcYK^tFSBcFs3!fWuN$-}<>L7L7 zo8P+nx})An>$2Nelr*HDdUz-=)7ux}bre6b-a$(Hb0|=ApWV2wabE`&;jSA}|7iP< zfRgA!a3CDYW6>GPvF}r3x*2wc;<-5n?m}5IB`2g~{CndApN{T-pJ@S)8C#VApB~a7 zsAd%9(_6K0vyD5sG!0!vqWxt_&%Ku=w%g(D7%qHy+ou>#eO=)Xkaz>bOpgp>KqQ_XOSP|=ei z)CbPqx_e1v{}ZJ6%3I7DXH(Vcma+P62t+_i?)@AM)tG&95=TI0LSi-?WvL z;2z5=B+*?KVIO@={8~(xKu1Q+=pv=M58yU=Uw%%&1N)=EUA@F$pXRZd_&&wwJJ*GZ zrHJuKLHuAN;-8Jbv>6K(?6Xq}KD9)CHkB$`vqZ*@W(5}vMd<2|njb6O98hyEF`N8Q zICz{mo>jbFQCAr1jVfr}C~q5{3C}KFaY`e2{%_Zh?{qDv?S1yn^arY=>Ag`?c)ZP1 zmTgd&k~_*8X&h*$1-H{Fp~2tx>ka(=K;eAW%rjVYzgcnhlBhk2_qSSpa-g$`AlQW% zdJt~(Pw&j4{Fk;Na`Ljaf8WE(c-`s~?ZtumA_X1Y<<6*1?$&s&xb%m z>q;W%V<{#<20wc0SIlmE_iAi0Yr80kctE^m;WnGMzX_{+az8O@~G3JIAkAnQFJX<8rV?MUL{>i?;bqS z=YU`Rn&C=lABdzl8%rfGM(&7foRXpBk1T+XZ`ZS}x$xaoIenE^_uBI+mHcji&^LOW zEQzAbjX{qDW5z(0b2a<}a~GCZ7*ah;gU zWy9^&F0{?cE`j}Odp#KKF876$c@V!*s;+9F4v8skW^SQ7@~Y;F=bs-0ZM?`(+9!-) z^NsFPZuyRr?XOb@-N>ObRNd~Y|1fJk2*0!)Nohb^78^lJ>u%C=yb9KCDO&X~iNFYL z>^8j~VcP5H&=>z3U@sb;|Kh*#rQykdGt9O^;*iMR#0st+kYYoCrfC@Ae5m{1{_3Ze zD}ShZibr;bW$h<^OW{NxvX3r!aA26^dzG5>QxMK&-PVOkO#9dh0;|p0%(N7g zyoh6LUj5C?xXPO0&XNMSyp0tf9zJW_-Dt)NzH!+FQV8}?>!sWD-0k5c)~>-XfOwvG z5F#2&d}2=?`NA_g$N+i#5wKzTJ10oqC?NC-h;?mLrspo|#U+1qwAIm)WN4sPBgM@LsXRQ<2|72>{ggcLpgyxZj>@UkITRsL^Lc+!tZy?Gq zn1)#e$%?Vcv6<_$>C6~+x1-Zb*&&K3^ge4PxLP824ctDHSk_$Mp5|*{2)t4f-dswH zNABolIDnkCdUguH zXDmTcZ{v1hLLU3>t9vYHbcUP7aG2dhd6%UZTf5BGwijSgZ-=xHT=d9mSlX-o_b=s) zzD_>7eRO_UJpV=EsB!$;Z<`QK`(t|Bo4&MhleLYuC;uJ2n-ew)_U@1B^{p{_oW{KI z)x3VPZwhtHzTOYLr_#VQ_oZs(Nj@^B*GhOpZ@}TCLCGLDPGN+dH3CjBu9P{&CJQL0 z3k5JKzvY$)0ozx78v(zpLTJ_1)iUggmG_W}dx@B2n%gmb&OKGmk;$5YzEVX=Mo-g|F!A-}UcMD_ z#9Y*0gxgxNAHOyISUu}$n)1VBp;I+P6!&8GiMhM^k^?%$^C~6d-{S&UWdjg9VZGps z%;A^81Q*X^Zm~VkL|Ih5lZ)*<@>=? zu3zjpRk2SJO_>{Me4;zcB3JbTM}v_N9{l*Dj6`Y)bq_1xm`dKDEr{hLdg97&7Y zD(jshSNjW|t3WN>`l_8XVvKJ7zxbEGs{6&n_S*fY|53ZI#~PS{VRL^JQ*os!E_O>{t$ z{ov@5lSOHldrsEzmf{Ei6g?emS9I+&edJN@wbM(>tj1PV$v|O)*_g_H=d~_WQEZck zHwT>G)s_k@8j4FV7R)b4c}53IPC)z*LOtqLOL7daH6l=ypAHbrFZN#EBa1Xy^6$-j zSr<0R-LtT_UcnRHt#3Jmu~+8!qT3Cl)^FBM!|{-UtcX8L7A$A@w!-R9KsMeA)s&}R zJ%&6cZ6COrC;#fHugoqYVYV?1JootVQ(ZA#!-Tf6sogXNIot#p{NjWr&MmDXN&)=5 zIu@x1C*K2ANVD5DjkMXVpgag@<{``r$6n_b(o_o{v=6-*)rvU3S>Q07BXicBdjIm4 zd3e54u`dnWwm)w^`TVAP1D6*UYh*C^5TUir->3X3uUgAnok-nPvgzv7z{R|I$pu5_-%-5LFiZv%V1Ru60=fM-hM!Z(3$7d`=n&Gv^O&_;kjS4xS9t0vTX zl<#9h6j67Yyfjr$&6g;RMd|V(g}J)=^7+V116|qP6&-WuX&f*~m)9vfM1{tGAaPo~ zj09gz%7<9{L82Cyv@um@Bo&k;{BK$fy#}Vcv{@b=GTq{B*g2L8iMN56&$SYqC>wfmL!njIk%4$t2$b-6m7iyW3@D7liW)~#c=qbv#JRMo$N z7n{V57_?i8P7-uwY@X>iIF}Z@)fe*Zp?a2M5KWlQbHXaX-uv&{?<`Ilw~ci^IZYMd zx;zI5q_Grd)hAg7mij5N<{8tepoz@g#>7-xkihL^;PpylCp?&b@UP3QVBjjv1+h|mu9ROHZxOy zYLR*T@i24X>OPFYAMo<__#r+s@T26UVw5x?PRDlRMpDJXhlX)C+H;^H?b9aWt9A^5 zZIyboZW?CsVr%No3NS$*_4srrJJ{9~25l)OayvGi-r#jo^i6xuY}W}F|G+d` z;8MBncN3Dl81)iEj%F|8vcR)Wux8CuaqYgYfGxk2&;_3!sI-w4xqjoHp7f$)#mSa@ zK$%2_3@5`eWsL2?m{dZmIoV$R;{v)ds~;_d3n~1I!NsMZn`= z-MA@e-M9&uFD*N!-dy$@b!_@O397`us!c5*NH9jT56^sK@Gg7wbxvERosA3Ra|q~R z45pr?2XeskzPg7PJ1EGTjZgT;ydWR(KgOohVYBmYKo>u~@I#~GpBuvu928tj+4;(A zf;UTF1tu`RH&cZ~d2gq_wo8{CSG~Bm6`J-c((CzuOPxP4Uk3vA^U9gkWZrMcXxGYF zzuA!_EhnCo5F7hc2Gh+C+KavDd;6$pK&sz;JZ8}{p3p@$D2|ki6JqX{eLqX-Ltu{p9 zl*iddG@=?q)A=rNe7E@v7Xb^X-=Vg^5YXb$#@Tc9y|gl8Tq0+rD=%C8BiTVYY*FcP zb=4BsfCmxD=V_?bi>)-7YW+e2=5?rzEjXWkvf-mBuZ$$z;u%JIb35lfvi#!FU}kPb zOL8r01!SrJ{W?j!w~{p&-*E^^9%)4aVByqudQ)#Hjf`|6U@(6jJZ3qiMmqx2tznHwO+Sq1`Xe*{FTz3po=P9E5vVp_m&opf*$L7HL0 zH3k{LH&L%=ZZwT=jhxS8MAsU+BgH=%0IomJ@R0|;)ps4Hb}v(}h3x13`A>RTWcgO+ z&9*Cg)?bq>u$Gp35H8)4$kPnpLx^A8Z1D2^PWo={4B=W zs^Yh7$p-< z&JW(ov^LRp)Q8%KMtX1UzvSdWpXdF?t$IV{P2(wp-Tb}5Hj|-=!)_T&5(>n|k1S2> zMgjgQ(*|P`l-N|KItzuAwvCBxm!k`uo>IZw=!ruAX7EjozFhK+hW-?GnQ|y^aJBD- zm7oDdd$bH)GaNz)Jco?H;E;dQE-r|LZ!v|zg3|jpJp^W)80&b|9d@e^h08UgH_5)6 z8gIbJu-4d|r5|!5Ui?0B%!T=V@DCnFX6}hQ(eTCL7HHmdwbX#y6!*_7rg644r;aOQ zKTTcMo*_$L44x8y%kK#CrPkiXl9B%7VsOA1%MGeP&^-9A#?}z4e-25;Mjt;^d6Sor z_DI+|P62!XkV7o*MgFt(`|-cDJthmD-*^2A;G=M1je8>hwlDSmO}I5+pbX$X>t*zt zsJoHBpDO;ZLCynDPGq;FJwY1kw4I1|-^obluUZLg>oK*c53z&t|JKnZppMQp8_Y`7J*Dc8G)CO?VBx|1%cSAMvAW!V z!e$15uFFpU9D4cW9vKH<4{N=JCPwpTjy8!B)@4I#pSOT`ffzR(*2De22w<~uqAq*j>$FdccSG}yJ$C``j4{!MFhd}2c52_* zk=A9Xki^7rM&@P_UM2(YtR@)^!M;RBL(z2DddzDQ0xP<%53% zYQ!1{ya>w`PFtEM2?1E6&F{4rr(sUAKrgGnVASoXDCN&l@oviFBC*@!daa?fv|X*( zlo|Ks7f`U&jOVZ)(B1lv{@T`F3{O^%MkHD3`mx1d#J85KdVy z#{v_>Yxz|{Wz&fdD`F@rM>rq$iP#Mn{-J$N&@{JxZ?H-%-@+DLu`5wT&Bi7N4DAJ0 z1em+QwLsHx#5XJa?eT&#W5w>5a5t5OFMR>jpub-Jb$~w7ZsDZ(R7xN%<_UC2q1*i{ z{m-6Z{=gqz*jj4;#(BZy@YBP6pF17S-n8NFe{O9!ygxGY(@!_*Z~1xGACLBw?eM&V z_ck={bMDl!kqixQ&_9)!2%lC3>$R@!zksN1;RYhggOd3pRnHhlGe?aadn_`Ap5;Dx zR+We5ufPD|e`oq=fd)qW)jd;k>L;$xHT$GSvp*g0eVY=>6E<;kNuT||KDxJaC|y%! zlEixI7gAl5<50hseml&N-yQl*`s9|@+jiawh_kWpH=nePO@Dsd|8cEr*wJRJ>FJ%v z6Ge75_uNF;e1vyF!M(Ed8tug(F>gw@D;&Y@BCUNpcAXz#V4HlfZQ|OXz6mV#6?K%w zu6MR{9J?J>hE-{@(qqQF^3tU%UC)(!i-@G2=U=%=ohvXTQ7(zI_Qtv6o@H_A=R;*% zp52^#7}dk^PxOz!dfB->ZES1*MGUWN#)sm7u$FRPjCllT@O@@+fr++?gXj$AwPo6O z`2`g*;ib%L(^@SGN39x$=Lq?k_r7=~4quLL^x-vbrMRq`6`53X_eJVhT3&ATkr3O< zu|s40Hn)z$XLetN|G^xn=9~Y;yVhwMP|}FK{2{jwZP@vYK3SbG7*dwY1rin?m@!qcyxdAl+D@kQdsggu)guEbt5X-<8< z=?8Y>)(JvpyQA|EyvEF`E=1fF69WnM^JZ(qP~wrFDheEksJNo^u%qfh7s}ErZiCZH z^XwLyPARMK;xoG-v6tgUq6Vw$O~ex0%9qjeK4wl$BhF36VYPvC(Fj7bua&J6Pcm3- zR7niXNSF5;=HCBu?&}}$CjFVpv_G#z!wyx~=WrqDuitGZ#1R}SwL)N;fTDVW|A?g?`y#VfmlR> zmov9+8MzoyHSy&fx)4Dd$+`4?uI*LA#P)AA^N&KLB~xVI2qHU9JBQb;2-u4+3u+5nSUSJ z(Jfi@BRT77MVn8Cev#p`@0qiR^hJZymL)AO%V zGhf*mI3{;R&-Zm-zkt0A+3Dan=J$OyrZHU9lYx+2jYcVUzMQyrvSpJ(eNene1jD6! z?Kyp<{Qdg~OkQEpoY_-{x>6thE9dZ2@H!q)cTR1g>+x2bss<0^2I`Y*vTKdQzES*j zj=y8&e8rGkO8WJ4%tKeKyJwisPVcC5u4(F`Thjg{wrq`^E^%ZH{?$Zi@WH!y5O;IV zT-MKXIkwL@cE&?<+?ruBcF=!y0PvrO=i%~}AdepEd9Qb04ZmIUsvJP|0#x4>dPPoA_=z6w|Ed>P$@w4z@CCKf5;l2Mdoo zbisgt4`v-`jG#5S+c@5QoUiQ}de`|UL42ccuLpt>oww|P2dj7J9RHUCRwIAejy>zJ z$Rz5Wp!9@VliH-eXIW$T|Fi0C<#uNyhMfEQ3QsQOWmva_%Kh94{w;pKUZa-2n1uJ1 zPfmN(4HdSGJPC0=P)RJ6R62RL)HJNBT#rTQzP6l`s7&?Ubc2-^7_n4=HzDG(tE!7_ zePGh;bDd87KBK}S2SmP8^4ONJ1Bipoy=~48cM20n@AVyWXU^R~AFTe}g^yBSC|v!p z?a96`>b6*&4$f~ew#*masl4kROmL3ro*fJ1ttM8%&$0u@=y0#g@}4kd*XsM~?&}fx z*aQ7r60em1MdbYEU4|X=f;r1;G(4jV`(%C|?Q2Ht@$$dlGEBo1OBVmrD>%TfJk7=* zkGDPQteMoqm!TqlZ0F^TKJE2^#EWv@?`f=Qxs@Wwk-LnUt+|&$ zKbr@!8_S~IX}kqukmdfIE5A#Q7VU>RzF_9g8q1Qh{pv-tKSNZvB6em->LlGMjnQ~L ztdeKgxsaLiBiuT9tWG)qba&_Ep$JqO-@8XucX^b8U z?egSK^-YEtU109kGC2}~9TNANjrseA6r6)3BXqg+dUE#YLc;|%i`Od>J-J$cdg$ps zLf|(hK9`jjLc-EXFOw0=OBLbykj4E~`k&kAnTkj6z&N)KWme?7{HW-OO_|x;w#l4b zs`jM0b>veIsK>{z$=YS(9}?c8m^!V@ye{Exbq)SEj7H$l$501TF1yx+_T0`vd}Ys_ zIxN2Y_Z4_GCA4u+7SY5=5>J|17B^V%XA($lJIQ^>^*<;x9bbCYK;5J; zUOw|hL$c-h>SgTr_wrVb$Vz{&H<6CBRb)2e+vr;XmbRE$lNgTD-$`B#DDRTK~r z+EUGF8DgXiK|QO|5sK^}1Q7Z@`#0U{05THzkDIz4y zbB2;IhX4uFefiyc*Shx)SPK>lUXs1{GkibKcfUN=6Ij>f8;ie~B*`N_9vHyTXFo-+ zf8#fQ-OFSSy#~uIbKV3_UN#kiErs=r?LXR+QiP7^C~G{%{&X%D zR1{)W2je*iZip_YZFFc=h^zd2!%dVeODoH81dH4xMG0<0ZvD!8>vF%}GHrkNdt^sI za)V}X86t`wBP;g724f?ok9LQlZMiL?jGpq^L6KV0IS8YLNY6jamG0@w3bbd+I=jO= zd)ZD%hpej1AjzE^zv$AtQ*ICy(OO|yM|qk5G2IavN#pl7y{Ut0u=>)w#$Z2HbJ0nt zBrI5);Rq`DIJi5_JyP+vP1&A1jo$m%EZ1RPs5LN$){@&o;ni9|>vS0=55L@h?6->{ z&_^{*H#L;pCT8O(>Lk?ZrgL1253mf`FxeIV70gd5>sFb%WjT%_Xj*8k>av5A6!lGN zUTB1MoPUpn$iVTf5QW4$a9}3wTjQj1mfP&v#BpABdE(rQ%uOO#`FFZ{Djj9}mX<|Y zKi)SQf>T?LA8xNwaU8?S=gmFc1v~F&*KMaPUqlGbF+6|9+XJe4la=kJes#F-wm4Yi zje%uvR>)*!)SpiH8$y0=a)9QTr91Xr+Rd>Aw8njOZeqR-ANQSsJ4B5WDWBw#c(Rvu zMt;XERMHHTe3<}ym>YNEWRA0@M*UQrGFs{|j*X!0L zo7k1%GwU7si7vHqucf}&h(zqtbah{HYHYpIK{XKQZOpc;>iSP7Rn^R2c}0#*P*F@f zj`s!hcK{iLc1azv;*FMPr{|F%_QSyId(G~fOb;p5^!lH(r!^r<6_b)d!(lpsENJ@Z z=Y#*F(W^#zM^I{Oj2{gk@D-`@8_m3oJOSV@#8ZKi-W@55cHk`+tAi$QtUizTRlTY- zMm0MYnFf+-1C|^?Z~bV}!A_9){3v~WzL49>k4jt?xZisa&gys>9bH-_wTum!1{ts} zYYcza(p`*546o4C2HQdee$+fwX!`Kyj(?Y@VVrO#NFXT~FUQeu&AI!=Fpx$8%GO-7 zq$2JfpF4F+2abFbZOYy?8MM@V>g_$>uBSi4-=6ZrTMUhvvyljvm3|VJn!no$6D-IRDnsCVlVsj7}!Kxf_^8 zi`Raym?$Z~$FtPRnoI5b%!e9JC7z@z`#EOrf@Mix2}sIy7r=r#qx5ZeFiwOw3?bC1 z?mC%~G8K9N@91*3+EZ15d)QOBx2CK&ENUOJ3%%*)v+}X;FK;1)1VzO_XbN@!gx{p< z5eFnsDcjt}TLxuai);s_CvpbB!~gD*MJaPY-KeXYKM;%|) zAM*c(q^J;OC5392Q#x*0wG3MNmWC6E<%X8?%3Jv6N{xBM4mg1ptoZ2+&Brdj}tl% zSf8hHS(<(`L@=RVYg^aCKbzV&F+?mmD{VyX7wVRqU!_Dpyv*{bDcLb^!e7VRlTd^k zl0URmop(i?A9fL_cW?`-yd~f|FLk&PhFP#s`YdDqf-NZfn;#!VT+}>Bzk{@jQZ;o1 zp20_I`h%7Zs&)P#T9wn=6Rs{HoQ%0ODafB0Q_T8+#X(}|9R(JArlts4R@3w*3d!n!_A#7sX8Lp;>=a^*%FjrT z700tWuWCi17r1SeaCcn@;GtFuohsqdE=40E14uqhnIEP$p#|#^L`2b6Z6NBx6Pvv& zF((<3@_*Q5e+_w{3j7j67`1fP!5mP*xKmleT6Pq8@wZ?ilp%DiKhQ|FVF?~KPYgDa z17b*5%4YTyqAh`ZZE3+j13TP)E0iM}7yDo4hV65y%Y!*IvmclNEF1GDfo+xmOC8$J4@p4fE*-J=@Lzz~gcE5#e%91bJ7EL;pxraZ= z;?eW>mqG0+OKneh(o)Ndm`%%^THv_&&(pi?`^@2rwc+=mRpOx-bXLptQgpR!9BbJ zqmWB1*BacnfN0T4_`7L=7~^s=sLbGNzd%wG>Awr)pp*P*wi*7U*Bf_rsSk zTT5B-3x_1{n!1WO#N!|>fO(lDVVt_2{|rK|YgpUEzn4q5L`eE6>a-WeLa51~x6>&8 zF>XohfHcO}tp`7oLw0Ta?FkQ%4{Tl*}0b0G;H-2 z1=*%${7YHcLf?XbQmyQ|{0qinK!`fcLiL1;A+=zoIj6vd$HT?4URTf8}N0&Y<`NcU#X*O3$CU)<~PDj7^;Pd-stL72ZGxzBprUlW!c(ly}#8+2~b8^9M?=2;bQ6wNKu`U@9!VknQ^ZaiW6EK2YH&|AJhR#-PF_^5H?!AS#}cZkK~~5K(vCaekNDNP`qrA3 zsv3f%r&>yap$*@3-}zXWaBQq0;{Mwt|DGciu%LZ-dn!fNp_e*J1J2Y|nQmOM3x8qC zPc|v{4C(sPFW*^E?7}S=uG?O(GX~S9y$sO9b0jh4tw~$Ar!}lbb(w2Hm;2E}s~V5Z zeNd1Tjx1=+3ZHw-AzskFzp_SdpH$A2+cg5Kdtf4iOO-E}B`%uH?nyQ~(breEr7b+I zEk?p>)|$aqWeLr;Z>JpR_i;&`_`!_7iV<-o6M17BiYG6&y5faI_0L8QAd{`|xQ*?< z{KxGQ!eMIvp~HJXKcejfZB?V%vOdM5*3b5#9n$WS3N~lLE7NDAH>J`0&4deght4su zTgyf85yVL!Ccu9=&i-R}tF0jyk>Fk*Kh#J8e6t&!fWIrhKKE(4#x?dJ@gl?aQ_6wz z3M=kQqc>&5FA^)U%Kv1FS-#)TF@3x~A9J;*2Oq|wUpFF~%HGg91@>7uujP09Yz9f;U+hVZ8RAG?2fRuGqP7klTo8W+^c zBY2DB{Dmg0zU^X)QzF9fqz>qnmT_U}AAyf3t)0&W5y)=d*(&6Y6(cove`^ z2Os%6Lp^C$mrxyWg-!@^I!2N`23~r_?Qq!ZVV_a$i`p$MckJ&VS`5F5P-vxG%BtIV zgIM|4N}s`62hM#3BA9`0rl}ze(gjL45U=opewIt^wD;`ijDdWAghz{0)_S~zjgG4l z)8=|s>&vpJ&CukTITqmYj8d!v zL}fvFnEco$Nsfh>THhrRE{ZdftYa5$BesBpbatV=t|kG8QUZrt@aZFqX;9=r&Vuw9 z7+2&j|2CzlnNk*2du(DWb><6pKDHdDvdv79Vqw6{* z%4L&E_iFk3`M6N)b-xZ*j*ylNJ4;Ls?WzeV4WdmpF+1IzdFXv_huZv0{UF%cw$IK! zI(z8#eW^Q-ZX{_e&8S%}H+FTZ8gS%j%M%qGwg(aSTECEvr7d>c%0a@a+G}`Hw-yOP z?%2mh3JK%MS9Pc)@q#!ujaVU7{Bxmpap1I{HPzY%GjPNy&KONN1w}Fs4O#e@Pb<_g$oE4cyA!zGc zuOdlpK7*1xW^W^K3zY|7hJxee5eh-THDhSbAO1r%l=lo!Y3Q-tExMvP zxs_d>aDBI2c)vm3ym`i2|0~6@{@f$%M!kW@hlSD%+9mkC7jkFq#;@$ua1X;@6MJY#-^UwB8~~xL?(Vd0_me9=WvrshnsVk*q1$- zuzK6VFuBdCAOGS13Ec1+!n^qtf;DJ&l5cn|76ajr4__)`RgsB&zsVKvT66a-3kWcz z)0fil1X(jgC}=A;t8(;?eZM#W!<1@bv*UV7l3G1OwNv)to>Ru3R=v5B)1#a+FT1j~ z#EfTOPk@ksgRxIo&5JgPUmoB1YjzJf;m7Jp!9Zt}^woe;Cr;d|Kistw2ydBP@_0M> zfIZhbWwly$^LY2?5hIH)K2UZJJpR6$|O^vlSk$ir*}KAr}*?R`4uZYKpA;DgYB*&Vh3!oI_Xmzhj{sb?YY2| zzK{jGYge6)ykNWIk8_oN1w5&LvbGqDh7kUmoW*)vFa^a%-R9&y9I6`_WaeIBNF8?38tGhHy zBTZ+lmL5$kG#W?8txe`xABj2W)n&ceZN1;Ds(w!<|7~mZJw3_MKml35^U2Di49BTE z+luI|uywlZJ!d|1c()ekp6PpS-C_*pj#0;cXw(Pb z)L4PwV7xGc@gCQ3C=k^VVp{nnP@l?Pa%wuXzpo(B(t0GK3q|bx#0NvG@NXwImFAO` z2OWK}`xj-YI>Ktmbh~nK<9tVa2S1HQx_W1o6HUXP6A3;Q;I2q8;Z8B?w1ABt{xC}v zF34pqNMF*b*ldtr;AV&UnwYT&Y`)iX=wHUH@xz(I-N08QXNAJ+W>VtMxxe8IE<9 zvbMWN{eIgx|AX$l? zVu?W8m*zUX8gf#*rY`GU*+3^kN*#OrFvI@7h?57?|MQ{$Ympbr-AnjCT9#Ro3;zlC zgs!;H^98uCO1j&n=;u4&J~ApgrU_`?l27^~>)w~HbohU$`e>H-W@W0{jDA3t5{Nv5 z+@cwbon8oOf5Xx&Tm+t6^OaGdIK{?V9do(f6FdgA`?Kn#Zwh?(lRe5NuudLrr!_g^ zeHB3>6WQIz@zYd)vBZ;M)5oNlfLf8ybXH08B?%x0I7zhlU6Z@7_ef($H!D%|SBP=< zEBv_hm?iy6!)KW+!|k2=VadR(RwwaKV!sn zJN9_iy2k}9S%Swjuj?g?Tpg6RIN7!82q@O+SYx|5PCDfkqCNiV+*j}ydtJhh*_l&1 z;!n;zt9x?vw1<;o#0>GZ9U_-GqpP%|9@6~@f))Fh-CPjIl@a+h<-ZL*XacUV!8s~< z;YM&4+;V+5qn0czzr?8F4L>-ZwwE5#6e4LmqkM8E0?eyWNUn;iTQ=I#;eBo<8%zv* zy)7=vsRj3@5-R8~6)YXQaKi3McJo2vtBCP0m&!A#P^U5r{tY?cQSfwrI6&JnSo+vp zmK4M$x)Fxj@9UEK`wxb!;?V z@R*#yp6oM#uQjaf-i=i)Ztiy7{_uo-oc^JH5;LMvSR6Gf=c4OHsV%YA@*)C0ztnKiBd^>7mHc4>L@;gt&_g~e8N`iosTf|;Ji zOXYd(q`Wd6x%~k%XB9WJ_tWXys~CYU$`>_|BoyMTjx36 zhob7bz^_m>l*A?*t8R3}+I!i~3E3z(KVE&mdSo_gHbn!d+!y;2!7q-tp8n0lVFK5X zSpVvt_0hHVR}feb!7eTCp+Q%?$A%3eOg>hyX3J4}tO~qY@eFeBi@}Uf=Vj1OPg)z4ip3rj)|Mt=~IfWB`Oa3Ghy4z= zyaGgO;uB?4dvd|{1!GXY9@WoEKQOks5KXL_{2j{BBx9Q^Le%bwrAkc>iZxIYU7CS) zFXYl>Y~(TM>d#grL5}(=!In#qU+oKq`bl!jtw}Thh;a=;Ei^62few877%rl=U9cuK znZ85)Q3S6dhQ2s!mx{NEBk-Uq8tWA#iV!_$cA;a^@< zX_N`A%Ed+@&*ylG4-XwO*y_KqGCzBDrJEbqn;s6P@v>NNaiV8R9u|{86-Zj2OaJRR z>w{Mkn}b58DKi@tc_fsAf7r%q>NzCwRDac=oYMf%!u`9<75A4dmlH3-fALmnV;Qn{LLo$*8zMQ%SpMA-jf$+2lgmDS3_`2 z5)k@5g&B$^_)<$U{EpD(xJ%I(9)OoqflwqsP|NpaXyj@m;-eXG&DdM=sDtc2cSDV#} z!|?--v9wY;BRsLxU5#tz2|5^8bC7VIS}*M`5xdgDO}*I2{Zxh{?c`zwZidToqEwmR z1ONv}%7Yun9#kz6)?{iw^{qSXW^P;qD!DQIM&K9m*o0p*qvR|4U+&@2dC-j}4ku%1 zszIcWA-mx}wAKs;_(e6(rjrFwcsBDvIKl|km0`K@?ot*2G9kO3?%)pJ=XiPRMLA18 z>03`v5R1MIR7DjRH`$ zT%W9s6T?EEa87P}f$q@j^7v z{uO-SRjfge@@%27QU(5DArL@Nv*0(Q*dg^|QGvxw&U#_z;6k$`WTHdDZg(pN zA-nS8B&q%h4*aIW){VWsdHUSE2b#5Ui7S8Qy+EFq4ldi1w4;S%Vs+9UsYmsMf>+F+ zZ~JWT$#dT#>RQirOb&dHZ|p>&0nY9OJg!>)<{o`eWnw+k{4kE>o(vMx7J%P2)s?-0 z^2UFIDH9ZoGJR`(y`^6(FBNg#m4FH+-y;JzP4YZeGiy<+YXBlR8j8S2+Pf3=#AQ+b z$M$re^)NfLc7hS#aJe26S6d~ragOi5X6Oe&1^C-QQ zpYa{GM_i2LhN$`=n@l|HmogiBusjj>5g9dETwdo)Di&`fUu3Pn$(r(GQF7znn<&pm z0o0PBWm%@4GAQ(jl)g?>IkM=4iRvddZ_|EemA{z1nz37)gG1DsI;6N}kzbd7g`@=# zr6O1LV=;3B#|d6PiU)Mf+ot9BeJuk8IbQIjpU*H+djHDFCY4-tApXRZ>{d>tZ+=fr zl{=>@&aq&LLe|L$&^uM8M$pNok6CvPBlGkHjI_|G1NL*p=?P*3td>BG(Z=LgOHYAZ zln2xATxK|N&!P$SDE{{1#j(6t$Yz(W0oDZ>+dPMsdQm&Ld=5z0>MS4k(M4YZcaIA)Rd|*cwoQ>blwa zx0BA<)CdP{@&qVq)~aYpc3TY?Gq#c)LB=(e-;JU2Z=T1feWSWA37opNYJn1x@Q`f< zyvu(tcmK(PBq)|CWC~zfiWP1^$+%u8Pvh{2{9m;mrbNYRzvK%wa(d!7H0Pz2C434> z{(WF~trxROnvw3zPv%bbSwPQlcDv|~up3XbS|~)Ki_u1GFjtkFo?hED@o+*$IBx8Y z?=_EFN|nsGHar?X@%Z-I=WkGvXFHx$1JIH5T$H|qV01EWvbejo&BtbM8PbTA*WRxm zFXojw^Zn0YXf5lDvur+`N0%C8<(1!O7n7Y}1#u-U0Vpk@xi{NyHxlDuZtFCi4jg7@ z;nCY8UMp#Gv|_8_oRtSViS5F@j4kEF`4}f<3_i3SeQz*b*7dk{nIDrLeF1G`8gzjb z%l5rs&m+?!o6AiteWm_irmRDl5uEfOn*FfsXdVXI@XwIr(tG|FJeUyHaBuF%P%zFM z-_VN{JT~!yYuD_YVAhc=lz$oUhQ(rpv}Hm)IDJ^Cba0_X+x*zt^uE zC{}X==;*d{W1HD$h1yif@hF6$C!92Xbn})Oado)%W7hzD^jZ-wv@ipFEwcS zF@WT)>f!Q%>d@5pSI!>$5T97>cv+JyCl8;qLlnmQCQOF3sNQ5+o(w0{=ysINcgU@NzZ#HpZPsa*FKxbi;r|Un= zY+WD8lBrhh%<&iM-p^5m*Q}wEu8H3|nc4oF+2OzcujE}B&#=vu>Q%30=~(1R&5ff~ zaUgM3t7tf=F1{3Irv@VGa1-#nRw(-`rC->(q_p*%Fz7%9l0=Zca@BOcmt_YtoA|_} zG5i1}@XJk#tG_{JEazNVNXuaFRQajOA8w8!V+#qsxs8v9%2gv+;3RPZ8Q3Dzc&3QX z19^SEX|Cj~{$y{=YM5$GjXuD3$#P!(eo-LQTP1!6sw132V1%t92(M9EvALk>q1>c; zoMZwhigC#ej?&vuM|$uQ*^+oUJyza}ifT^QxIXbLTM}`ZSH3u1(Trmzm_7vvL=ymu zIGhwnEN&IQL<1`y3JIYtttB6z_^_yg0Bwvvp;>PKCS_grNB!00qG+QX-li{<)BC3} z1|casij+9HNDL8*9mnZzvV!;N5 z=mKB&I9a_wRDKT{p;tA_Q;w#KFH^3K4jlC2IN6@S&=`KumKd!%LeVraowwTywgyDG zTVES~5%>ekb@Ob0OOqt8@rfgY)A+t2m+i6G|Hhf5P1aH&r8}S^2bASX3(4H*1)oZx zXb9?uIhET_M}xYaM@K>fG%W@_VUg<~sX9ZqOwo4)+VYlN^vx;$bLaGPn8A+f#2mOe zedRSeL|?ll>%hvtDMTXR>-Vop`rH#Fef@5i0bl|I-t5(G6re|+@;&p-_Cq!OgEks0 znGy)XYOn9e^TpTB4P4k4HHkCn;aUj#-G7~w9h{Go?0=1rT5E_eJ~Wi0CHKQOd#C(T zgCbNDT5_=qMyqJ($;v|MW#x4naWmQUeXKxAng`=Jjr?#r-9^Frb=ijky}99&+tDcz z%l%KUTJEETO#AH@OFdqr}$uLP>a^>L2J#d*C@2PBDvkBbvrBoAvJ4kYYlU60Zx2;Y2rwh1-MtEU1A?&2a@vE%!mdn z>uWEl-qyK%*R{PjJ7Yt3ALOg!)Hmfj`ktTEcm1=k zKv5xM8Ybc{7dSO@Zd|a3u1zl0`<7k#1a%OYO;TM|@MD$$Nb?3~`U4v@Lo)$1kGrbzHVC6thS9g0uNzbYHNvou6lD!+W zb3oWmo+PC5V0IeG{9-czd-1x!XFI;`I+{Sx@}>W_4LfG%HHe(Q} zy&$cu!w&|O9sv2yc{wX7%^seSG@hy}i>{rqFXR`-@@1Me5yi2nB>)x}{;SVo!P}%x zkA^?9!<_+Iw^UAYack@(~e$^V(k~~q}dk{1Rm0fKJiZhChBs44f3mkZEHcq1UY5$XP zaZ!8`uh2sI)|nUA+unV`4`6MXSEL6{^xca1*nYXgoa1tm3M7pD44bkvbHt!&Q}BwJ zDIl!P9*3*5z4jFV=v}c{Pg~ONu!r;B`)u!V3@?ubzkS=!E9yi+&t{T${7Dhe+T z1G8u{-yL=jH;WhBBE&bujdt?$ZCS1IA zIT{hQVwRo`6Xp1w8NJMN+Xk16PDvH?apJH-wWVFTeu2d=+{kSwcRjHTf0X6;;3{ly z1ny&!pEgGf%>Mc?J4DvyE6xmQL5>MPaC+Md^#Z#5Vpb@vG&{j2Vl1={jgGPsA9_pJ zgZqS1%4y0nPh3+z|1~T>zmpV~iT6_QIXgil2ha%LzJd0=n?S)bPg3Qa;Mp%&Ab$dpY zk_}?5gE8Jq9asHD=d6JAm~W`PMOjbzhQYLrg+vg5;|E{&aQ0Syi5DV`%wHbq^fRth zb(bIu%yWZcr2ZMviFhE_?Y;G77=Y8C3bh>rQup27a7x-@y}zo*z{enJ_Cay6(ew$+pfhb)jc3Fw35>$JQCkTvx2}Z&)Yw#D4Xm7oW!^<1BKt*3i*pXME zt5@@FzWs3(^NH3f`&+blexpjnjyekL;eK@Soaw zp|yc;h*@zLkdj|KY97uOTiJRVj=57q@Y#-BzJv7TJy)70sZEM@Dx4n{OceJO7ElTA z8_MaOkHbUJX(-i17=~Yb&KltNoW_UPde!t)2}*K})AsUga~hbeAehp^wb{(E+WL}n z7#K<)ldOItpP z@0-;feq>_GdOKlg7lZW)>!ondP<&4MnS3O5(!?v6u*|tS!^1aEXsIM=F>j3*Iz7J+ z6)tr#C}Tl49<+1#OWCIkqV~tWE&wy!*)4{@D{0d6`vEzjKnRW51lkwLhwel6dbrR^ z?;dQ##D^Z+#NoY{hMC<1--ShZsIzyMBa9uR_eVX1m}0#0;d>(lO@Lm5XZDwvLqq-N`@d z`UhwN7G=M&65uK5m4?d7Or}SsD=!1{IP}@*ub-!fU(99H`k*!3mw7N(OPe7>3 zV^e=Hj2od=OIT`p z$d3sMAv839*XjzeN$MFQFtCmb?D23i&7zd&jYL!du#6K^^;;3{+qIf?<=p~yhHcQq z=imA-az@nP6Q0$VuAF|Pwwt+=?PhL|Ns2?a6WjxGu5rqBW+bXPDD<0}=aV z;(?j_NK{3z#!7jpds8%(h0zj3c_v4D@;vX%4|;PEdE^QhY<*+iJE5<2l{N2>Dl*bxVk$jhj1bEpo+ z3{&svX-;YO!stIv%tj}!FEoScv93KiUA?1M$0m&8QNnh`6f+6FG2y*l=u&$l0oV+~ zqYanFJgAw`EH-9S)d=8rs}noe;KEEeoU#VMI`AEy$U6~0REqdp0Ey@PKeQQu6uMMw ze2a*EFtH2JxMQ-aheKUwUN;WXPrq0%STAKU?wY%8_CD}8Tkn~t$Ga-t_Z_d8WGz<| z9W$!d*;{1lZ5Zx^HOBTD9O>RTHLsF#80@CG2t&JOBWt9 zsMlNpebjweFRipHBTLx1=t1WE4l}j@z))2*yOzCwfs-D3u|vystwCl!;QmYOgO^(Zh1x~l0PQ~6d}?8s?eHz;d4Vrp1b zPySqQfo&~z<1aJehlHIQc9Q0!VCb2KI4)&mq7S$YGBYvV-LzK#9Ifsfjqr^#Q;STR zm@?{E15l1uR+{YAeeSJ60BpH_FWf_u(+Hra<117X7M{rM@nppU7U}uofn}d8A+zaY z<=neW3u()ngEo7)mL!GR?g%?+X!F8ef-^s-nOBCs3i;hGQky(`r;e2Ydo{I>9|kie z6&n!CDtgbOIkcb_YW(6$FzrTyzK1o6ZsI0xs*M3~Q#)w*4^){=n(Oo0|Hdo{c5p8A zuL(bH^uRZJRuG3Btc@=+;J=_hNqFo^RsY=XvAvAk{(j*$r6+H+g4U!_`PGrvhJeL5 z!DG;7VgMvHVfbnljmyM=3=l21J$PW82l zsU8lxwVb{a$cPSK2hfizvfz2LU-~0ubB@^=M6QE=Cn#C2nX6;~HL$=3tR`mnkiMU( zwsr{y&@%HfV!qlA>pBAiKP@^vGCi2Ga1KFuG67J)1omUcm*N!A`Y&~-0U)(;pzG$_ z3E-Igol^5^y3M~n8@R!6Mw~kbFf*R(f2Wun27TorWfReJge?3^+_8EjeJMRMN~oE* z)^1soLmHm4a{0BVnPKIzF=1S3qPbCtP%y7AnNPr!Q1K1Wzi{q<|7dLCK<-X?Yho7t zdr+?qAdTJJr_Uh)^}q4x=<8z!;vN8LEpKl<=K;5zNbQG;Nr-0yQYCf{N;l?;>)O;e z-Z-2Q4Mf&MYf3rXpScWq7+{g!acNWLW}Cg%cKG3*^jC~odE_rYY66^48VTzoaNtb7 zbN}xH6Q#ST$A!zk2Xt6bU75P6L8WnqnJJoys`+BU;VJxgkFO`MHDt5{FKypS$gZUL zmYOrNpMFYf%b+qN! zJXME<1KVz_%s1f~@P8S*&sOak&v(N_u(YM&!KxO^Rn|r}S4#CL3n3Ji25EyL^A{h6 zN3@b&936S3-63bjMvo`z+A&dnca#A3F_>ZwrlPyA8RH1IC-R;AoS6{<`6O@h^V=?; z*{$tRuVd(Cs7SzMWXEedR$eE;N@30}fZ{)xveZ+s^8Ix1`moZYGI(SO?^tl!t|BOM zsUOklZ+Iys{W~$7Ygq=ctZ!}imf^~Ne`#xf+?_#J#?!+|51H3VJq^jJSXqK@>}plj zuE~=BY!()#SbzCi4A6j)ckk_7gcW(StVZxAEY|660Zi+fb=!$KOr)`_1KM){(*tJ( z2xIM_^`B0;j3$(vAOhfFfTLCxthcI^y5E$4eqzrzrt*wpILsb3-1 zbxv(%ze;?vz%pI`J)Qpyh|(0hxpSZ%ociW5_?10GlV%ovdCWfVQP6G{On*3j)Id<}kN71hVg`x0ZP21#YIV;# zE#sOOJ15Fc-_uMa%;eD?T7L+0K4q8t zo`&(es=MDdU$8P{0%PpAMy{BGpHoYv6q^rIDY0?wn#q5gy?gYbz}`A#(RF>~H`B?s z2hBvhYU z1&I=VPKdBH)4X1zU(J^r!&mgg)tOLx;UjK4`=7|~oyJmF0MuWh{C3Qc@U`-rr4LCS z6`r#pRHo?g_txpL{LZQ7)%%oS?L4b0DOG}uk}so?O+a6VKZ&ATL$H{1Tz#+qnF}5y z?G2xz6Zk1E^(Wu-CjX`y?}tSRG4ep$NWIk~?R%05;J4A6j`gq8+Y4Gx<5tMCykXvV z8muk6iwCv->h;>~tzYdu;K~=-m~AZvvsE&CrKajw35gOX&{ubaI`p7lul@6$i4mB- zvjB!p&jP5keAfB_Vspq;MUGRZM05Ls9_A#3i#_87Yr@Ex5(6tx>rO&6OG)jGJr0;A z%`tl?JI~S37qgV6e#C-*mivj7HW2zoL-NE%;MfSSZlhDjyN2v(ta>m}-2jYKY~$8n zk1<+jy4TmmeMd;dnQVk*o`;iT%W5+Wlimy9J1$)T#aZEKVFJUetPH4mn!hVHYkzr> zo0IK~|KoBkDu5d8LncbUZ+Ra7a%`$C54*}{^-TR5vu2|)q|qNYdb)2+Cfgd0YG<{S zJJ9l_;9b_YYJf<49sCzHqM^&a>MeY3?%*kdkFs>f-Yh+-^Xb~re{0sHCdO<jBYy&aZ@mvbkA?nVcy_KO_cHkyYQ(%u*a~11*JVX$>(e(cz-p30 z?WuZsytz|dREOujjfRfknkoq+Ywe%6TDxnXnYQk#bg`wU=Z=Be*^`thKQ*neMTsB%vixe1q*5DxsrS8(Suu(K-< z-I)LCKmGfR0Ho%*b^Sq;N|EExSP!5Mp6z-v{4Go94p!P#>DG`p#^1>LP?6G7A(?+< zRaG*-I9qA$6>Q~2hgJcNw~I-qZhnc4Fv?2M+KN$LToovc+qBFZ4w^PaVJ-D{8h=lI`Wv~ z!`b~7YsE*VRuG7l3++J#LG@}TR@)#@9SI~Vf1A%Un5w`!_F`o}J=u2tJh+VKMsWQq z=6Lhv3$!kgf8Wx(CtODut+VJXCQ#5K^KT+hvURe_c1fF~)Yo#BZsrusX7oGbi08ij zqR|(vSYVg6#FXBW@Ab6XM8lk<7sK-h8K_dJFW$Zs&?EFd7X1Hh0%7TLx*l$!u>Rb- zgVCzk*i@=_c@|jE?A!$s5V&>32Os3rBsy28cyn*-U1n|>BoUY={nq%x!+%ekC_nw8 z?=ql-)_Pdd)CcaYE(3Dwz0vF_o>v8oxhZpe{8(Yp&=69-uDljZ0rqv zbA46YTthCUcR9Xv$#T*bKZ_3LB=83+^#oglx1ZP(6qUFZV(WL3|H%6|Fti%Z6zU-O z5%efidtb{JeQF{mCr^YQOK1`KU;yt4p&r121Nb3;3jqCpTP%@IpH$8l0g~ldn$B(a zUeAKW?G~A>^}{`$TR=lH5RA_@^9l}Gc*w`Ch7{qldoGO$z6+ZNh9D1(mmm6HO`UCA zlJ^?Nw>9(hsdTH)%#y4#Q@3dvF`r8GoVE0rCfl5X4{1U{L8<6WMX}Peim9=r1QlVe zgef4Bky?pa2%?}ZvP$%*8mLh;HbCK#ZoLxQ z-dt)*?D)D=l1nsc5*ulRp-9`YYL-+z+ZyxC54`bkHyeN(B>{&P z?!DqK@ly^v5r7#zrCsuy+grc z(Hu+hNB2U*SjD@WU1}59jCYBq)l z9~^JS#88RfChRT&)-eeSpu{^+0r)3bg1Fstcr+BIul!RO*TVD71AZ*;#afI6lmay=|nzfU}+SL2l2!CI9{5Q-Ts$X9_0!=0rXV3sl_&_VzYjvqp-BgvVZJAB_{?Zt$Jx$>6Rk>9XQC#?X|8=n8z%ch zNaMoNkm|UuLj`{31^Gig&)GVd1Mru}e6hXdmYe;hs$uWE-q8@U{IhC zzPx(^83p<%pN^`t*4oz9EP6FbquSA%_w4tLB|d2?QF^nBW03^m?xJ(WI((6;bm*x%=6Z6VN}yo0&Tt>X57U zi}E~iohvfQwxg*d$CCOPo^6*zP1-eEQb%7QY8IzVsaOaeADlqnx}W7na!tw=L$WHA zTBciX*eehDC0nM3x`2>b2?hiEzG}GI&wlI!xBj5M#LnLju%an19_)QR?M%Okd5&+4 zz5~J0BnO5VmWtKE-WP&@tix#nL28>T{-RlWB`zI8Gc&a=K3PkS40ahRE(zKZ8gF?- z&gdqH9P6)wZusAxsf~|jLWsb4<;@Gp5jLAa=It6p_hMqk)Ph!*9fRe-BteW2d)n>> zk}IrN5ZBF2;}4FQYJ2X2ls|uGc9^2dic#)QDm!xL6`Lio2$OAu*?Bvi7R$a?I~;QO zp?^zgxIgu~vAJlYNz$LNXCM+zti5lnu4pIJK=l_!pKK2mIJ#4@Sv}u!8^Da+_o`QR zBPYHhstLY}3R1t*9`F^0`V1v6=!?jOZv2jo!6QU&y1YbcheK7EcVVmIm7i9-AW z-`2lTZ_@Y`G*EEDHCB9_h%7phT?S^?3$4Wtu~Vwp4Hv^a0ee*9qYYd>KB+Q8w4+_* zhXZIVJweT4_w}sB9=T2#?sCn3)pp+ha0cStv2d#Ur7q%jk?I{IOZH5`RM_!1l_ zx#P^0nHRC+&}C3HpJPV`j!)028KFf1P{3b!T3}*y8Z(3-s?Cju^P3t#GAV8^AxH``@kURF76JLO;ki0R@CFdlR`Nge3H~gY$QtP zB1%`9CgP^9nYHlQ`geV_37Ty#G`VjQ&LFhPo@h7>nFJtKiHy zmH1}VRp#Ha7gY?h_uE;bR$BLLD|A_@aij?l!RH(YD>;}NOw2s={3*GLDY$hfXszY` z!cTZhQ=i`uIqkJvTk7OZ?<#vC=za>OnX}sO6xG4F*IyY#bd6ViVA-k~2uMm-Pj(Gv z3;n_uKR-Xa#5X}91zkqp=Z_RQ#!}Fk(QVGPAdy+wDiLP5=MvXmf&rz#mm@KC1Z}i+ zlN(i%zCWE*F}jK8@`*>3^|p*lh21_0B6ih7fbZ*sA;@GJdQhg4avFQCX`|(%cyMD# z98als!I>k{v}|Qag&$=Z@X_VSCvq*`bCrFBqidQF5w;Q!F#+_aFWAZb$_%?&hcg`8 zGB|Sl6^uG1+@v@NK{~l%N>m{=%^+IW>9}5vN=zC4p+&?Z8(%Wz(-EX6H&C4;T@Q(x zo%~yaBdpL|vm0Nb0-nipyrVY*KE{c@2REB5EKzm`)*^z!tc+UnWFPOMG2J=r6BA2jclT+M6j zxr42dL<}0Hu#Kbp^{c<~K^O)q4a}AfW4;zB{6S|7LCiwK9zgBZxCq~Rw$!a+f~sd57JYCRBpt)=+dRSl>k4TK*rWt zzv?k!{IBR^I&`T$r{Z54-=Al2S5Em_ChoNQT=+|lhqv}VTr1wa^tLeJMgMT%XYhBx OBjjlKmo;CU%=;hEEK0rr literal 0 HcmV?d00001 diff --git a/dependencies/zstd-1.5.0/doc/images/dict-cs.png b/dependencies/zstd-1.5.0/doc/images/dict-cs.png new file mode 100644 index 0000000000000000000000000000000000000000..a0d8d250565c82f1634b434b93c80d034650e080 GIT binary patch literal 91518 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 acdSTXZ#N^(p8E=Tojc?9d&w!kJO2-1)RnUU literal 0 HcmV?d00001 diff --git a/dependencies/zstd-1.5.0/doc/images/zstd_cdict_v1_3_5.png b/dependencies/zstd-1.5.0/doc/images/zstd_cdict_v1_3_5.png new file mode 100644 index 0000000000000000000000000000000000000000..cce67c83abbf8a8ff62f16eda279fc3088efc8f3 GIT binary patch literal 93969 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 HB{Ts5ea1Wy literal 0 HcmV?d00001 diff --git a/dependencies/zstd-1.5.0/doc/images/zstd_logo86.png b/dependencies/zstd-1.5.0/doc/images/zstd_logo86.png new file mode 100644 index 0000000000000000000000000000000000000000..216f228061c460c4e4725785486ebcff38804fbc GIT binary patch literal 5963 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 literal 0 HcmV?d00001 diff --git a/dependencies/zstd-1.5.0/doc/zstd_compression_format.md b/dependencies/zstd-1.5.0/doc/zstd_compression_format.md new file mode 100644 index 0000000..5c7deb9 --- /dev/null +++ b/dependencies/zstd-1.5.0/doc/zstd_compression_format.md @@ -0,0 +1,1692 @@ +Zstandard Compression Format +============================ + +### Notices + +Copyright (c) 2016-2021 Yann Collet, Facebook, Inc. + +Permission is granted to copy and distribute this document +for any purpose and without charge, +including translations into other languages +and incorporation into compilations, +provided that the copyright notice and this notice are preserved, +and that any substantive changes or deletions from the original +are clearly marked. +Distribution of this document is unlimited. + +### Version + +0.3.7 (2020-12-09) + + +Introduction +------------ + +The purpose of this document is to define a lossless compressed data format, +that is independent of CPU type, operating system, +file system and character set, suitable for +file compression, pipe and streaming compression, +using the [Zstandard algorithm](http://www.zstandard.org). +The text of the specification assumes a basic background in programming +at the level of bits and other primitive data representations. + +The data can be produced or consumed, +even for an arbitrarily long sequentially presented input data stream, +using only an a priori bounded amount of intermediate storage, +and hence can be used in data communications. +The format uses the Zstandard compression method, +and optional [xxHash-64 checksum method](http://www.xxhash.org), +for detection of data corruption. + +The data format defined by this specification +does not attempt to allow random access to compressed data. + +Unless otherwise indicated below, +a compliant compressor must produce data sets +that conform to the specifications presented here. +It doesn’t need to support all options though. + +A compliant decompressor must be able to decompress +at least one working set of parameters +that conforms to the specifications presented here. +It may also ignore informative fields, such as checksum. +Whenever it does not support a parameter defined in the compressed stream, +it must produce a non-ambiguous error code and associated error message +explaining which parameter is unsupported. + +This specification is intended for use by implementers of software +to compress data into Zstandard format and/or decompress data from Zstandard format. +The Zstandard format is supported by an open source reference implementation, +written in portable C, and available at : https://github.com/facebook/zstd . + + +### Overall conventions +In this document: +- square brackets i.e. `[` and `]` are used to indicate optional fields or parameters. +- the naming convention for identifiers is `Mixed_Case_With_Underscores` + +### Definitions +Content compressed by Zstandard is transformed into a Zstandard __frame__. +Multiple frames can be appended into a single file or stream. +A frame is completely independent, has a defined beginning and end, +and a set of parameters which tells the decoder how to decompress it. + +A frame encapsulates one or multiple __blocks__. +Each block contains arbitrary content, which is described by its header, +and has a guaranteed maximum content size, which depends on frame parameters. +Unlike frames, each block depends on previous blocks for proper decoding. +However, each block can be decompressed without waiting for its successor, +allowing streaming operations. + +Overview +--------- +- [Frames](#frames) + - [Zstandard frames](#zstandard-frames) + - [Blocks](#blocks) + - [Literals Section](#literals-section) + - [Sequences Section](#sequences-section) + - [Sequence Execution](#sequence-execution) + - [Skippable frames](#skippable-frames) +- [Entropy Encoding](#entropy-encoding) + - [FSE](#fse) + - [Huffman Coding](#huffman-coding) +- [Dictionary Format](#dictionary-format) + +Frames +------ +Zstandard compressed data is made of one or more __frames__. +Each frame is independent and can be decompressed independently of other frames. +The decompressed content of multiple concatenated frames is the concatenation of +each frame decompressed content. + +There are two frame formats defined by Zstandard: + Zstandard frames and Skippable frames. +Zstandard frames contain compressed data, while +skippable frames contain custom user metadata. + +## Zstandard frames +The structure of a single Zstandard frame is following: + +| `Magic_Number` | `Frame_Header` |`Data_Block`| [More data blocks] | [`Content_Checksum`] | +|:--------------:|:--------------:|:----------:| ------------------ |:--------------------:| +| 4 bytes | 2-14 bytes | n bytes | | 0-4 bytes | + +__`Magic_Number`__ + +4 Bytes, __little-endian__ format. +Value : 0xFD2FB528 +Note: This value was selected to be less probable to find at the beginning of some random file. +It avoids trivial patterns (0x00, 0xFF, repeated bytes, increasing bytes, etc.), +contains byte values outside of ASCII range, +and doesn't map into UTF8 space. +It reduces the chances that a text file represent this value by accident. + +__`Frame_Header`__ + +2 to 14 Bytes, detailed in [`Frame_Header`](#frame_header). + +__`Data_Block`__ + +Detailed in [`Blocks`](#blocks). +That’s where compressed data is stored. + +__`Content_Checksum`__ + +An optional 32-bit checksum, only present if `Content_Checksum_flag` is set. +The content checksum is the result +of [xxh64() hash function](http://www.xxhash.org) +digesting the original (decoded) data as input, and a seed of zero. +The low 4 bytes of the checksum are stored in __little-endian__ format. + +### `Frame_Header` + +The `Frame_Header` has a variable size, with a minimum of 2 bytes, +and up to 14 bytes depending on optional parameters. +The structure of `Frame_Header` is following: + +| `Frame_Header_Descriptor` | [`Window_Descriptor`] | [`Dictionary_ID`] | [`Frame_Content_Size`] | +| ------------------------- | --------------------- | ----------------- | ---------------------- | +| 1 byte | 0-1 byte | 0-4 bytes | 0-8 bytes | + +#### `Frame_Header_Descriptor` + +The first header's byte is called the `Frame_Header_Descriptor`. +It describes which other fields are present. +Decoding this byte is enough to tell the size of `Frame_Header`. + +| Bit number | Field name | +| ---------- | ---------- | +| 7-6 | `Frame_Content_Size_flag` | +| 5 | `Single_Segment_flag` | +| 4 | `Unused_bit` | +| 3 | `Reserved_bit` | +| 2 | `Content_Checksum_flag` | +| 1-0 | `Dictionary_ID_flag` | + +In this table, bit 7 is the highest bit, while bit 0 is the lowest one. + +__`Frame_Content_Size_flag`__ + +This is a 2-bits flag (`= Frame_Header_Descriptor >> 6`), +specifying if `Frame_Content_Size` (the decompressed data size) +is provided within the header. +`Flag_Value` provides `FCS_Field_Size`, +which is the number of bytes used by `Frame_Content_Size` +according to the following table: + +| `Flag_Value` | 0 | 1 | 2 | 3 | +| -------------- | ------ | --- | --- | --- | +|`FCS_Field_Size`| 0 or 1 | 2 | 4 | 8 | + +When `Flag_Value` is `0`, `FCS_Field_Size` depends on `Single_Segment_flag` : +if `Single_Segment_flag` is set, `FCS_Field_Size` is 1. +Otherwise, `FCS_Field_Size` is 0 : `Frame_Content_Size` is not provided. + +__`Single_Segment_flag`__ + +If this flag is set, +data must be regenerated within a single continuous memory segment. + +In this case, `Window_Descriptor` byte is skipped, +but `Frame_Content_Size` is necessarily present. +As a consequence, the decoder must allocate a memory segment +of size equal or larger than `Frame_Content_Size`. + +In order to preserve the decoder from unreasonable memory requirements, +a decoder is allowed to reject a compressed frame +which requests a memory size beyond decoder's authorized range. + +For broader compatibility, decoders are recommended to support +memory sizes of at least 8 MB. +This is only a recommendation, +each decoder is free to support higher or lower limits, +depending on local limitations. + +__`Unused_bit`__ + +A decoder compliant with this specification version shall not interpret this bit. +It might be used in any future version, +to signal a property which is transparent to properly decode the frame. +An encoder compliant with this specification version must set this bit to zero. + +__`Reserved_bit`__ + +This bit is reserved for some future feature. +Its value _must be zero_. +A decoder compliant with this specification version must ensure it is not set. +This bit may be used in a future revision, +to signal a feature that must be interpreted to decode the frame correctly. + +__`Content_Checksum_flag`__ + +If this flag is set, a 32-bits `Content_Checksum` will be present at frame's end. +See `Content_Checksum` paragraph. + +__`Dictionary_ID_flag`__ + +This is a 2-bits flag (`= FHD & 3`), +telling if a dictionary ID is provided within the header. +It also specifies the size of this field as `DID_Field_Size`. + +|`Flag_Value` | 0 | 1 | 2 | 3 | +| -------------- | --- | --- | --- | --- | +|`DID_Field_Size`| 0 | 1 | 2 | 4 | + +#### `Window_Descriptor` + +Provides guarantees on minimum memory buffer required to decompress a frame. +This information is important for decoders to allocate enough memory. + +The `Window_Descriptor` byte is optional. +When `Single_Segment_flag` is set, `Window_Descriptor` is not present. +In this case, `Window_Size` is `Frame_Content_Size`, +which can be any value from 0 to 2^64-1 bytes (16 ExaBytes). + +| Bit numbers | 7-3 | 2-0 | +| ----------- | ---------- | ---------- | +| Field name | `Exponent` | `Mantissa` | + +The minimum memory buffer size is called `Window_Size`. +It is described by the following formulas : +``` +windowLog = 10 + Exponent; +windowBase = 1 << windowLog; +windowAdd = (windowBase / 8) * Mantissa; +Window_Size = windowBase + windowAdd; +``` +The minimum `Window_Size` is 1 KB. +The maximum `Window_Size` is `(1<<41) + 7*(1<<38)` bytes, which is 3.75 TB. + +In general, larger `Window_Size` tend to improve compression ratio, +but at the cost of memory usage. + +To properly decode compressed data, +a decoder will need to allocate a buffer of at least `Window_Size` bytes. + +In order to preserve decoder from unreasonable memory requirements, +a decoder is allowed to reject a compressed frame +which requests a memory size beyond decoder's authorized range. + +For improved interoperability, +it's recommended for decoders to support `Window_Size` of up to 8 MB, +and it's recommended for encoders to not generate frame requiring `Window_Size` larger than 8 MB. +It's merely a recommendation though, +decoders are free to support larger or lower limits, +depending on local limitations. + +#### `Dictionary_ID` + +This is a variable size field, which contains +the ID of the dictionary required to properly decode the frame. +`Dictionary_ID` field is optional. When it's not present, +it's up to the decoder to know which dictionary to use. + +`Dictionary_ID` field size is provided by `DID_Field_Size`. +`DID_Field_Size` is directly derived from value of `Dictionary_ID_flag`. +1 byte can represent an ID 0-255. +2 bytes can represent an ID 0-65535. +4 bytes can represent an ID 0-4294967295. +Format is __little-endian__. + +It's allowed to represent a small ID (for example `13`) +with a large 4-bytes dictionary ID, even if it is less efficient. + +A value of `0` has same meaning as no `Dictionary_ID`, +in which case the frame may or may not need a dictionary to be decoded, +and the ID of such a dictionary is not specified. +The decoder must know this information by other means. + +#### `Frame_Content_Size` + +This is the original (uncompressed) size. This information is optional. +`Frame_Content_Size` uses a variable number of bytes, provided by `FCS_Field_Size`. +`FCS_Field_Size` is provided by the value of `Frame_Content_Size_flag`. +`FCS_Field_Size` can be equal to 0 (not present), 1, 2, 4 or 8 bytes. + +| `FCS_Field_Size` | Range | +| ---------------- | ---------- | +| 0 | unknown | +| 1 | 0 - 255 | +| 2 | 256 - 65791| +| 4 | 0 - 2^32-1 | +| 8 | 0 - 2^64-1 | + +`Frame_Content_Size` format is __little-endian__. +When `FCS_Field_Size` is 1, 4 or 8 bytes, the value is read directly. +When `FCS_Field_Size` is 2, _the offset of 256 is added_. +It's allowed to represent a small size (for example `18`) using any compatible variant. + + +Blocks +------- + +After `Magic_Number` and `Frame_Header`, there are some number of blocks. +Each frame must have at least one block, +but there is no upper limit on the number of blocks per frame. + +The structure of a block is as follows: + +| `Block_Header` | `Block_Content` | +|:--------------:|:---------------:| +| 3 bytes | n bytes | + +__`Block_Header`__ + +`Block_Header` uses 3 bytes, written using __little-endian__ convention. +It contains 3 fields : + +| `Last_Block` | `Block_Type` | `Block_Size` | +|:------------:|:------------:|:------------:| +| bit 0 | bits 1-2 | bits 3-23 | + +__`Last_Block`__ + +The lowest bit signals if this block is the last one. +The frame will end after this last block. +It may be followed by an optional `Content_Checksum` +(see [Zstandard Frames](#zstandard-frames)). + +__`Block_Type`__ + +The next 2 bits represent the `Block_Type`. +`Block_Type` influences the meaning of `Block_Size`. +There are 4 block types : + +| Value | 0 | 1 | 2 | 3 | +| ------------ | ----------- | ----------- | ------------------ | --------- | +| `Block_Type` | `Raw_Block` | `RLE_Block` | `Compressed_Block` | `Reserved`| + +- `Raw_Block` - this is an uncompressed block. + `Block_Content` contains `Block_Size` bytes. + +- `RLE_Block` - this is a single byte, repeated `Block_Size` times. + `Block_Content` consists of a single byte. + On the decompression side, this byte must be repeated `Block_Size` times. + +- `Compressed_Block` - this is a [Zstandard compressed block](#compressed-blocks), + explained later on. + `Block_Size` is the length of `Block_Content`, the compressed data. + The decompressed size is not known, + but its maximum possible value is guaranteed (see below) + +- `Reserved` - this is not a block. + This value cannot be used with current version of this specification. + If such a value is present, it is considered corrupted data. + +__`Block_Size`__ + +The upper 21 bits of `Block_Header` represent the `Block_Size`. + +When `Block_Type` is `Compressed_Block` or `Raw_Block`, +`Block_Size` is the size of `Block_Content` (hence excluding `Block_Header`). + +When `Block_Type` is `RLE_Block`, since `Block_Content`’s size is always 1, +`Block_Size` represents the number of times this byte must be repeated. + +`Block_Size` is limited by `Block_Maximum_Size` (see below). + +__`Block_Content`__ and __`Block_Maximum_Size`__ + +The size of `Block_Content` is limited by `Block_Maximum_Size`, +which is the smallest of: +- `Window_Size` +- 128 KB + +`Block_Maximum_Size` is constant for a given frame. +This maximum is applicable to both the decompressed size +and the compressed size of any block in the frame. + +The reasoning for this limit is that a decoder can read this information +at the beginning of a frame and use it to allocate buffers. +The guarantees on the size of blocks ensure that +the buffers will be large enough for any following block of the valid frame. + + +Compressed Blocks +----------------- +To decompress a compressed block, the compressed size must be provided +from `Block_Size` field within `Block_Header`. + +A compressed block consists of 2 sections : +- [Literals Section](#literals-section) +- [Sequences Section](#sequences-section) + +The results of the two sections are then combined to produce the decompressed +data in [Sequence Execution](#sequence-execution) + +#### Prerequisites +To decode a compressed block, the following elements are necessary : +- Previous decoded data, up to a distance of `Window_Size`, + or beginning of the Frame, whichever is smaller. +- List of "recent offsets" from previous `Compressed_Block`. +- The previous Huffman tree, required by `Treeless_Literals_Block` type +- Previous FSE decoding tables, required by `Repeat_Mode` + for each symbol type (literals lengths, match lengths, offsets) + +Note that decoding tables aren't always from the previous `Compressed_Block`. + +- Every decoding table can come from a dictionary. +- The Huffman tree comes from the previous `Compressed_Literals_Block`. + +Literals Section +---------------- +All literals are regrouped in the first part of the block. +They can be decoded first, and then copied during [Sequence Execution], +or they can be decoded on the flow during [Sequence Execution]. + +Literals can be stored uncompressed or compressed using Huffman prefix codes. +When compressed, an optional tree description can be present, +followed by 1 or 4 streams. + +| `Literals_Section_Header` | [`Huffman_Tree_Description`] | [jumpTable] | Stream1 | [Stream2] | [Stream3] | [Stream4] | +| ------------------------- | ---------------------------- | ----------- | ------- | --------- | --------- | --------- | + + +### `Literals_Section_Header` + +Header is in charge of describing how literals are packed. +It's a byte-aligned variable-size bitfield, ranging from 1 to 5 bytes, +using __little-endian__ convention. + +| `Literals_Block_Type` | `Size_Format` | `Regenerated_Size` | [`Compressed_Size`] | +| --------------------- | ------------- | ------------------ | ------------------- | +| 2 bits | 1 - 2 bits | 5 - 20 bits | 0 - 18 bits | + +In this representation, bits on the left are the lowest bits. + +__`Literals_Block_Type`__ + +This field uses 2 lowest bits of first byte, describing 4 different block types : + +| `Literals_Block_Type` | Value | +| --------------------------- | ----- | +| `Raw_Literals_Block` | 0 | +| `RLE_Literals_Block` | 1 | +| `Compressed_Literals_Block` | 2 | +| `Treeless_Literals_Block` | 3 | + +- `Raw_Literals_Block` - Literals are stored uncompressed. +- `RLE_Literals_Block` - Literals consist of a single byte value + repeated `Regenerated_Size` times. +- `Compressed_Literals_Block` - This is a standard Huffman-compressed block, + starting with a Huffman tree description. + See details below. +- `Treeless_Literals_Block` - This is a Huffman-compressed block, + using Huffman tree _from previous Huffman-compressed literals block_. + `Huffman_Tree_Description` will be skipped. + Note: If this mode is triggered without any previous Huffman-table in the frame + (or [dictionary](#dictionary-format)), this should be treated as data corruption. + +__`Size_Format`__ + +`Size_Format` is divided into 2 families : + +- For `Raw_Literals_Block` and `RLE_Literals_Block`, + it's only necessary to decode `Regenerated_Size`. + There is no `Compressed_Size` field. +- For `Compressed_Block` and `Treeless_Literals_Block`, + it's required to decode both `Compressed_Size` + and `Regenerated_Size` (the decompressed size). + It's also necessary to decode the number of streams (1 or 4). + +For values spanning several bytes, convention is __little-endian__. + +__`Size_Format` for `Raw_Literals_Block` and `RLE_Literals_Block`__ : + +`Size_Format` uses 1 _or_ 2 bits. +Its value is : `Size_Format = (Literals_Section_Header[0]>>2) & 3` + +- `Size_Format` == 00 or 10 : `Size_Format` uses 1 bit. + `Regenerated_Size` uses 5 bits (0-31). + `Literals_Section_Header` uses 1 byte. + `Regenerated_Size = Literals_Section_Header[0]>>3` +- `Size_Format` == 01 : `Size_Format` uses 2 bits. + `Regenerated_Size` uses 12 bits (0-4095). + `Literals_Section_Header` uses 2 bytes. + `Regenerated_Size = (Literals_Section_Header[0]>>4) + (Literals_Section_Header[1]<<4)` +- `Size_Format` == 11 : `Size_Format` uses 2 bits. + `Regenerated_Size` uses 20 bits (0-1048575). + `Literals_Section_Header` uses 3 bytes. + `Regenerated_Size = (Literals_Section_Header[0]>>4) + (Literals_Section_Header[1]<<4) + (Literals_Section_Header[2]<<12)` + +Only Stream1 is present for these cases. +Note : it's allowed to represent a short value (for example `13`) +using a long format, even if it's less efficient. + +__`Size_Format` for `Compressed_Literals_Block` and `Treeless_Literals_Block`__ : + +`Size_Format` always uses 2 bits. + +- `Size_Format` == 00 : _A single stream_. + Both `Regenerated_Size` and `Compressed_Size` use 10 bits (0-1023). + `Literals_Section_Header` uses 3 bytes. +- `Size_Format` == 01 : 4 streams. + Both `Regenerated_Size` and `Compressed_Size` use 10 bits (0-1023). + `Literals_Section_Header` uses 3 bytes. +- `Size_Format` == 10 : 4 streams. + Both `Regenerated_Size` and `Compressed_Size` use 14 bits (0-16383). + `Literals_Section_Header` uses 4 bytes. +- `Size_Format` == 11 : 4 streams. + Both `Regenerated_Size` and `Compressed_Size` use 18 bits (0-262143). + `Literals_Section_Header` uses 5 bytes. + +Both `Compressed_Size` and `Regenerated_Size` fields follow __little-endian__ convention. +Note: `Compressed_Size` __includes__ the size of the Huffman Tree description +_when_ it is present. + +#### Raw Literals Block +The data in Stream1 is `Regenerated_Size` bytes long, +it contains the raw literals data to be used during [Sequence Execution]. + +#### RLE Literals Block +Stream1 consists of a single byte which should be repeated `Regenerated_Size` times +to generate the decoded literals. + +#### Compressed Literals Block and Treeless Literals Block +Both of these modes contain Huffman encoded data. + +For `Treeless_Literals_Block`, +the Huffman table comes from previously compressed literals block, +or from a dictionary. + + +### `Huffman_Tree_Description` +This section is only present when `Literals_Block_Type` type is `Compressed_Literals_Block` (`2`). +The format of the Huffman tree description can be found at [Huffman Tree description](#huffman-tree-description). +The size of `Huffman_Tree_Description` is determined during decoding process, +it must be used to determine where streams begin. +`Total_Streams_Size = Compressed_Size - Huffman_Tree_Description_Size`. + + +### Jump Table +The Jump Table is only present when there are 4 Huffman-coded streams. + +Reminder : Huffman compressed data consists of either 1 or 4 Huffman-coded streams. + +If only one stream is present, it is a single bitstream occupying the entire +remaining portion of the literals block, encoded as described within +[Huffman-Coded Streams](#huffman-coded-streams). + +If there are four streams, `Literals_Section_Header` only provided +enough information to know the decompressed and compressed sizes +of all four streams _combined_. +The decompressed size of _each_ stream is equal to `(Regenerated_Size+3)/4`, +except for the last stream which may be up to 3 bytes smaller, +to reach a total decompressed size as specified in `Regenerated_Size`. + +The compressed size of each stream is provided explicitly in the Jump Table. +Jump Table is 6 bytes long, and consist of three 2-byte __little-endian__ fields, +describing the compressed sizes of the first three streams. +`Stream4_Size` is computed from total `Total_Streams_Size` minus sizes of other streams. + +`Stream4_Size = Total_Streams_Size - 6 - Stream1_Size - Stream2_Size - Stream3_Size`. + +Note: if `Stream1_Size + Stream2_Size + Stream3_Size > Total_Streams_Size`, +data is considered corrupted. + +Each of these 4 bitstreams is then decoded independently as a Huffman-Coded stream, +as described at [Huffman-Coded Streams](#huffman-coded-streams) + + +Sequences Section +----------------- +A compressed block is a succession of _sequences_ . +A sequence is a literal copy command, followed by a match copy command. +A literal copy command specifies a length. +It is the number of bytes to be copied (or extracted) from the Literals Section. +A match copy command specifies an offset and a length. + +When all _sequences_ are decoded, +if there are literals left in the _literals section_, +these bytes are added at the end of the block. + +This is described in more detail in [Sequence Execution](#sequence-execution). + +The `Sequences_Section` regroup all symbols required to decode commands. +There are 3 symbol types : literals lengths, offsets and match lengths. +They are encoded together, interleaved, in a single _bitstream_. + +The `Sequences_Section` starts by a header, +followed by optional probability tables for each symbol type, +followed by the bitstream. + +| `Sequences_Section_Header` | [`Literals_Length_Table`] | [`Offset_Table`] | [`Match_Length_Table`] | bitStream | +| -------------------------- | ------------------------- | ---------------- | ---------------------- | --------- | + +To decode the `Sequences_Section`, it's required to know its size. +Its size is deduced from the size of `Literals_Section`: +`Sequences_Section_Size = Block_Size - Literals_Section_Size`. + + +#### `Sequences_Section_Header` + +Consists of 2 items: +- `Number_of_Sequences` +- Symbol compression modes + +__`Number_of_Sequences`__ + +This is a variable size field using between 1 and 3 bytes. +Let's call its first byte `byte0`. +- `if (byte0 == 0)` : there are no sequences. + The sequence section stops there. + Decompressed content is defined entirely as Literals Section content. + The FSE tables used in `Repeat_Mode` aren't updated. +- `if (byte0 < 128)` : `Number_of_Sequences = byte0` . Uses 1 byte. +- `if (byte0 < 255)` : `Number_of_Sequences = ((byte0-128) << 8) + byte1` . Uses 2 bytes. +- `if (byte0 == 255)`: `Number_of_Sequences = byte1 + (byte2<<8) + 0x7F00` . Uses 3 bytes. + +__Symbol compression modes__ + +This is a single byte, defining the compression mode of each symbol type. + +|Bit number| 7-6 | 5-4 | 3-2 | 1-0 | +| -------- | ----------------------- | -------------- | -------------------- | ---------- | +|Field name| `Literals_Lengths_Mode` | `Offsets_Mode` | `Match_Lengths_Mode` | `Reserved` | + +The last field, `Reserved`, must be all-zeroes. + +`Literals_Lengths_Mode`, `Offsets_Mode` and `Match_Lengths_Mode` define the `Compression_Mode` of +literals lengths, offsets, and match lengths symbols respectively. + +They follow the same enumeration : + +| Value | 0 | 1 | 2 | 3 | +| ------------------ | ----------------- | ---------- | --------------------- | ------------- | +| `Compression_Mode` | `Predefined_Mode` | `RLE_Mode` | `FSE_Compressed_Mode` | `Repeat_Mode` | + +- `Predefined_Mode` : A predefined FSE distribution table is used, defined in + [default distributions](#default-distributions). + No distribution table will be present. +- `RLE_Mode` : The table description consists of a single byte, which contains the symbol's value. + This symbol will be used for all sequences. +- `FSE_Compressed_Mode` : standard FSE compression. + A distribution table will be present. + The format of this distribution table is described in [FSE Table Description](#fse-table-description). + Note that the maximum allowed accuracy log for literals length and match length tables is 9, + and the maximum accuracy log for the offsets table is 8. + `FSE_Compressed_Mode` must not be used when only one symbol is present, + `RLE_Mode` should be used instead (although any other mode will work). +- `Repeat_Mode` : The table used in the previous `Compressed_Block` with `Number_of_Sequences > 0` will be used again, + or if this is the first block, table in the dictionary will be used. + Note that this includes `RLE_mode`, so if `Repeat_Mode` follows `RLE_Mode`, the same symbol will be repeated. + It also includes `Predefined_Mode`, in which case `Repeat_Mode` will have same outcome as `Predefined_Mode`. + No distribution table will be present. + If this mode is used without any previous sequence table in the frame + (nor [dictionary](#dictionary-format)) to repeat, this should be treated as corruption. + +#### The codes for literals lengths, match lengths, and offsets. + +Each symbol is a _code_ in its own context, +which specifies `Baseline` and `Number_of_Bits` to add. +_Codes_ are FSE compressed, +and interleaved with raw additional bits in the same bitstream. + +##### Literals length codes + +Literals length codes are values ranging from `0` to `35` included. +They define lengths from 0 to 131071 bytes. +The literals length is equal to the decoded `Baseline` plus +the result of reading `Number_of_Bits` bits from the bitstream, +as a __little-endian__ value. + +| `Literals_Length_Code` | 0-15 | +| ---------------------- | ---------------------- | +| length | `Literals_Length_Code` | +| `Number_of_Bits` | 0 | + +| `Literals_Length_Code` | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | +| ---------------------- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | +| `Baseline` | 16 | 18 | 20 | 22 | 24 | 28 | 32 | 40 | +| `Number_of_Bits` | 1 | 1 | 1 | 1 | 2 | 2 | 3 | 3 | + +| `Literals_Length_Code` | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | +| ---------------------- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | +| `Baseline` | 48 | 64 | 128 | 256 | 512 | 1024 | 2048 | 4096 | +| `Number_of_Bits` | 4 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | + +| `Literals_Length_Code` | 32 | 33 | 34 | 35 | +| ---------------------- | ---- | ---- | ---- | ---- | +| `Baseline` | 8192 |16384 |32768 |65536 | +| `Number_of_Bits` | 13 | 14 | 15 | 16 | + + +##### Match length codes + +Match length codes are values ranging from `0` to `52` included. +They define lengths from 3 to 131074 bytes. +The match length is equal to the decoded `Baseline` plus +the result of reading `Number_of_Bits` bits from the bitstream, +as a __little-endian__ value. + +| `Match_Length_Code` | 0-31 | +| ------------------- | ----------------------- | +| value | `Match_Length_Code` + 3 | +| `Number_of_Bits` | 0 | + +| `Match_Length_Code` | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | +| ------------------- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | +| `Baseline` | 35 | 37 | 39 | 41 | 43 | 47 | 51 | 59 | +| `Number_of_Bits` | 1 | 1 | 1 | 1 | 2 | 2 | 3 | 3 | + +| `Match_Length_Code` | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | +| ------------------- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | +| `Baseline` | 67 | 83 | 99 | 131 | 259 | 515 | 1027 | 2051 | +| `Number_of_Bits` | 4 | 4 | 5 | 7 | 8 | 9 | 10 | 11 | + +| `Match_Length_Code` | 48 | 49 | 50 | 51 | 52 | +| ------------------- | ---- | ---- | ---- | ---- | ---- | +| `Baseline` | 4099 | 8195 |16387 |32771 |65539 | +| `Number_of_Bits` | 12 | 13 | 14 | 15 | 16 | + +##### Offset codes + +Offset codes are values ranging from `0` to `N`. + +A decoder is free to limit its maximum `N` supported. +Recommendation is to support at least up to `22`. +For information, at the time of this writing. +the reference decoder supports a maximum `N` value of `31`. + +An offset code is also the number of additional bits to read in __little-endian__ fashion, +and can be translated into an `Offset_Value` using the following formulas : + +``` +Offset_Value = (1 << offsetCode) + readNBits(offsetCode); +if (Offset_Value > 3) offset = Offset_Value - 3; +``` +It means that maximum `Offset_Value` is `(2^(N+1))-1` +supporting back-reference distances up to `(2^(N+1))-4`, +but is limited by [maximum back-reference distance](#window_descriptor). + +`Offset_Value` from 1 to 3 are special : they define "repeat codes". +This is described in more detail in [Repeat Offsets](#repeat-offsets). + +#### Decoding Sequences +FSE bitstreams are read in reverse direction than written. In zstd, +the compressor writes bits forward into a block and the decompressor +must read the bitstream _backwards_. + +To find the start of the bitstream it is therefore necessary to +know the offset of the last byte of the block which can be found +by counting `Block_Size` bytes after the block header. + +After writing the last bit containing information, the compressor +writes a single `1`-bit and then fills the byte with 0-7 `0` bits of +padding. The last byte of the compressed bitstream cannot be `0` for +that reason. + +When decompressing, the last byte containing the padding is the first +byte to read. The decompressor needs to skip 0-7 initial `0`-bits and +the first `1`-bit it occurs. Afterwards, the useful part of the bitstream +begins. + +FSE decoding requires a 'state' to be carried from symbol to symbol. +For more explanation on FSE decoding, see the [FSE section](#fse). + +For sequence decoding, a separate state keeps track of each +literal lengths, offsets, and match lengths symbols. +Some FSE primitives are also used. +For more details on the operation of these primitives, see the [FSE section](#fse). + +##### Starting states +The bitstream starts with initial FSE state values, +each using the required number of bits in their respective _accuracy_, +decoded previously from their normalized distribution. + +It starts by `Literals_Length_State`, +followed by `Offset_State`, +and finally `Match_Length_State`. + +Reminder : always keep in mind that all values are read _backward_, +so the 'start' of the bitstream is at the highest position in memory, +immediately before the last `1`-bit for padding. + +After decoding the starting states, a single sequence is decoded +`Number_Of_Sequences` times. +These sequences are decoded in order from first to last. +Since the compressor writes the bitstream in the forward direction, +this means the compressor must encode the sequences starting with the last +one and ending with the first. + +##### Decoding a sequence +For each of the symbol types, the FSE state can be used to determine the appropriate code. +The code then defines the `Baseline` and `Number_of_Bits` to read for each type. +See the [description of the codes] for how to determine these values. + +[description of the codes]: #the-codes-for-literals-lengths-match-lengths-and-offsets + +Decoding starts by reading the `Number_of_Bits` required to decode `Offset`. +It then does the same for `Match_Length`, and then for `Literals_Length`. +This sequence is then used for [sequence execution](#sequence-execution). + +If it is not the last sequence in the block, +the next operation is to update states. +Using the rules pre-calculated in the decoding tables, +`Literals_Length_State` is updated, +followed by `Match_Length_State`, +and then `Offset_State`. +See the [FSE section](#fse) for details on how to update states from the bitstream. + +This operation will be repeated `Number_of_Sequences` times. +At the end, the bitstream shall be entirely consumed, +otherwise the bitstream is considered corrupted. + +#### Default Distributions +If `Predefined_Mode` is selected for a symbol type, +its FSE decoding table is generated from a predefined distribution table defined here. +For details on how to convert this distribution into a decoding table, see the [FSE section]. + +[FSE section]: #from-normalized-distribution-to-decoding-tables + +##### Literals Length +The decoding table uses an accuracy log of 6 bits (64 states). +``` +short literalsLength_defaultDistribution[36] = + { 4, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 2, 1, 1, 1, 1, 1, + -1,-1,-1,-1 }; +``` + +##### Match Length +The decoding table uses an accuracy log of 6 bits (64 states). +``` +short matchLengths_defaultDistribution[53] = + { 1, 4, 3, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,-1,-1, + -1,-1,-1,-1,-1 }; +``` + +##### Offset Codes +The decoding table uses an accuracy log of 5 bits (32 states), +and supports a maximum `N` value of 28, allowing offset values up to 536,870,908 . + +If any sequence in the compressed block requires a larger offset than this, +it's not possible to use the default distribution to represent it. +``` +short offsetCodes_defaultDistribution[29] = + { 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1,-1,-1,-1,-1,-1 }; +``` + + +Sequence Execution +------------------ +Once literals and sequences have been decoded, +they are combined to produce the decoded content of a block. + +Each sequence consists of a tuple of (`literals_length`, `offset_value`, `match_length`), +decoded as described in the [Sequences Section](#sequences-section). +To execute a sequence, first copy `literals_length` bytes +from the decoded literals to the output. + +Then `match_length` bytes are copied from previous decoded data. +The offset to copy from is determined by `offset_value`: +if `offset_value > 3`, then the offset is `offset_value - 3`. +If `offset_value` is from 1-3, the offset is a special repeat offset value. +See the [repeat offset](#repeat-offsets) section for how the offset is determined +in this case. + +The offset is defined as from the current position, so an offset of 6 +and a match length of 3 means that 3 bytes should be copied from 6 bytes back. +Note that all offsets leading to previously decoded data +must be smaller than `Window_Size` defined in `Frame_Header_Descriptor`. + +#### Repeat offsets +As seen in [Sequence Execution](#sequence-execution), +the first 3 values define a repeated offset and we will call them +`Repeated_Offset1`, `Repeated_Offset2`, and `Repeated_Offset3`. +They are sorted in recency order, with `Repeated_Offset1` meaning "most recent one". + +If `offset_value == 1`, then the offset used is `Repeated_Offset1`, etc. + +There is an exception though, when current sequence's `literals_length = 0`. +In this case, repeated offsets are shifted by one, +so an `offset_value` of 1 means `Repeated_Offset2`, +an `offset_value` of 2 means `Repeated_Offset3`, +and an `offset_value` of 3 means `Repeated_Offset1 - 1_byte`. + +For the first block, the starting offset history is populated with following values : +`Repeated_Offset1`=1, `Repeated_Offset2`=4, `Repeated_Offset3`=8, +unless a dictionary is used, in which case they come from the dictionary. + +Then each block gets its starting offset history from the ending values of the most recent `Compressed_Block`. +Note that blocks which are not `Compressed_Block` are skipped, they do not contribute to offset history. + +[Offset Codes]: #offset-codes + +###### Offset updates rules + +During the execution of the sequences of a `Compressed_Block`, the +`Repeated_Offsets`' values are kept up to date, so that they always represent +the three most-recently used offsets. In order to achieve that, they are +updated after executing each sequence in the following way: + +When the sequence's `offset_value` does not refer to one of the +`Repeated_Offsets`--when it has value greater than 3, or when it has value 3 +and the sequence's `literals_length` is zero--the `Repeated_Offsets`' values +are shifted back one, and `Repeated_Offset1` takes on the value of the +just-used offset. + +Otherwise, when the sequence's `offset_value` refers to one of the +`Repeated_Offsets`--when it has value 1 or 2, or when it has value 3 and the +sequence's `literals_length` is non-zero--the `Repeated_Offsets` are re-ordered +so that `Repeated_Offset1` takes on the value of the used Repeated_Offset, and +the existing values are pushed back from the first `Repeated_Offset` through to +the `Repeated_Offset` selected by the `offset_value`. This effectively performs +a single-stepped wrapping rotation of the values of these offsets, so that +their order again reflects the recency of their use. + +The following table shows the values of the `Repeated_Offsets` as a series of +sequences are applied to them: + +| `offset_value` | `literals_length` | `Repeated_Offset1` | `Repeated_Offset2` | `Repeated_Offset3` | Comment | +|:--------------:|:-----------------:|:------------------:|:------------------:|:------------------:|:-----------------------:| +| | | 1 | 4 | 8 | starting values | +| 1114 | 11 | 1111 | 1 | 4 | non-repeat | +| 1 | 22 | 1111 | 1 | 4 | repeat 1; no change | +| 2225 | 22 | 2222 | 1111 | 1 | non-repeat | +| 1114 | 111 | 1111 | 2222 | 1111 | non-repeat | +| 3336 | 33 | 3333 | 1111 | 2222 | non-repeat | +| 2 | 22 | 1111 | 3333 | 2222 | repeat 2; swap 1 & 2 | +| 3 | 33 | 2222 | 1111 | 3333 | repeat 3; rotate 3 to 1 | +| 3 | 0 | 2221 | 2222 | 1111 | insert resolved offset | +| 1 | 0 | 2222 | 2221 | 3333 | repeat 2 | + + +Skippable Frames +---------------- + +| `Magic_Number` | `Frame_Size` | `User_Data` | +|:--------------:|:------------:|:-----------:| +| 4 bytes | 4 bytes | n bytes | + +Skippable frames allow the insertion of user-defined metadata +into a flow of concatenated frames. + +Skippable frames defined in this specification are compatible with [LZ4] ones. + +[LZ4]:http://www.lz4.org + +From a compliant decoder perspective, skippable frames need just be skipped, +and their content ignored, resuming decoding after the skippable frame. + +It can be noted that a skippable frame +can be used to watermark a stream of concatenated frames +embedding any kind of tracking information (even just an UUID). +Users wary of such possibility should scan the stream of concatenated frames +in an attempt to detect such frame for analysis or removal. + +__`Magic_Number`__ + +4 Bytes, __little-endian__ format. +Value : 0x184D2A5?, which means any value from 0x184D2A50 to 0x184D2A5F. +All 16 values are valid to identify a skippable frame. +This specification doesn't detail any specific tagging for skippable frames. + +__`Frame_Size`__ + +This is the size, in bytes, of the following `User_Data` +(without including the magic number nor the size field itself). +This field is represented using 4 Bytes, __little-endian__ format, unsigned 32-bits. +This means `User_Data` can’t be bigger than (2^32-1) bytes. + +__`User_Data`__ + +The `User_Data` can be anything. Data will just be skipped by the decoder. + + + +Entropy Encoding +---------------- +Two types of entropy encoding are used by the Zstandard format: +FSE, and Huffman coding. +Huffman is used to compress literals, +while FSE is used for all other symbols +(`Literals_Length_Code`, `Match_Length_Code`, offset codes) +and to compress Huffman headers. + + +FSE +--- +FSE, short for Finite State Entropy, is an entropy codec based on [ANS]. +FSE encoding/decoding involves a state that is carried over between symbols, +so decoding must be done in the opposite direction as encoding. +Therefore, all FSE bitstreams are read from end to beginning. +Note that the order of the bits in the stream is not reversed, +we just read the elements in the reverse order they are written. + +For additional details on FSE, see [Finite State Entropy]. + +[Finite State Entropy]:https://github.com/Cyan4973/FiniteStateEntropy/ + +FSE decoding involves a decoding table which has a power of 2 size, and contain three elements: +`Symbol`, `Num_Bits`, and `Baseline`. +The `log2` of the table size is its `Accuracy_Log`. +An FSE state value represents an index in this table. + +To obtain the initial state value, consume `Accuracy_Log` bits from the stream as a __little-endian__ value. +The next symbol in the stream is the `Symbol` indicated in the table for that state. +To obtain the next state value, +the decoder should consume `Num_Bits` bits from the stream as a __little-endian__ value and add it to `Baseline`. + +[ANS]: https://en.wikipedia.org/wiki/Asymmetric_Numeral_Systems + +### FSE Table Description +To decode FSE streams, it is necessary to construct the decoding table. +The Zstandard format encodes FSE table descriptions as follows: + +An FSE distribution table describes the probabilities of all symbols +from `0` to the last present one (included) +on a normalized scale of `1 << Accuracy_Log` . +Note that there must be two or more symbols with nonzero probability. + +It's a bitstream which is read forward, in __little-endian__ fashion. +It's not necessary to know bitstream exact size, +it will be discovered and reported by the decoding process. + +The bitstream starts by reporting on which scale it operates. +Let's `low4Bits` designate the lowest 4 bits of the first byte : +`Accuracy_Log = low4bits + 5`. + +Then follows each symbol value, from `0` to last present one. +The number of bits used by each field is variable. +It depends on : + +- Remaining probabilities + 1 : + __example__ : + Presuming an `Accuracy_Log` of 8, + and presuming 100 probabilities points have already been distributed, + the decoder may read any value from `0` to `256 - 100 + 1 == 157` (inclusive). + Therefore, it must read `log2sup(157) == 8` bits. + +- Value decoded : small values use 1 less bit : + __example__ : + Presuming values from 0 to 157 (inclusive) are possible, + 255-157 = 98 values are remaining in an 8-bits field. + They are used this way : + first 98 values (hence from 0 to 97) use only 7 bits, + values from 98 to 157 use 8 bits. + This is achieved through this scheme : + + | Value read | Value decoded | Number of bits used | + | ---------- | ------------- | ------------------- | + | 0 - 97 | 0 - 97 | 7 | + | 98 - 127 | 98 - 127 | 8 | + | 128 - 225 | 0 - 97 | 7 | + | 226 - 255 | 128 - 157 | 8 | + +Symbols probabilities are read one by one, in order. + +Probability is obtained from Value decoded by following formula : +`Proba = value - 1` + +It means value `0` becomes negative probability `-1`. +`-1` is a special probability, which means "less than 1". +Its effect on distribution table is described in the [next section]. +For the purpose of calculating total allocated probability points, it counts as one. + +[next section]:#from-normalized-distribution-to-decoding-tables + +When a symbol has a __probability__ of `zero`, +it is followed by a 2-bits repeat flag. +This repeat flag tells how many probabilities of zeroes follow the current one. +It provides a number ranging from 0 to 3. +If it is a 3, another 2-bits repeat flag follows, and so on. + +When last symbol reaches cumulated total of `1 << Accuracy_Log`, +decoding is complete. +If the last symbol makes cumulated total go above `1 << Accuracy_Log`, +distribution is considered corrupted. + +Then the decoder can tell how many bytes were used in this process, +and how many symbols are present. +The bitstream consumes a round number of bytes. +Any remaining bit within the last byte is just unused. + +#### From normalized distribution to decoding tables + +The distribution of normalized probabilities is enough +to create a unique decoding table. + +It follows the following build rule : + +The table has a size of `Table_Size = 1 << Accuracy_Log`. +Each cell describes the symbol decoded, +and instructions to get the next state (`Number_of_Bits` and `Baseline`). + +Symbols are scanned in their natural order for "less than 1" probabilities. +Symbols with this probability are being attributed a single cell, +starting from the end of the table and retreating. +These symbols define a full state reset, reading `Accuracy_Log` bits. + +Then, all remaining symbols, sorted in natural order, are allocated cells. +Starting from symbol `0` (if it exists), and table position `0`, +each symbol gets allocated as many cells as its probability. +Cell allocation is spreaded, not linear : +each successor position follows this rule : + +``` +position += (tableSize>>1) + (tableSize>>3) + 3; +position &= tableSize-1; +``` + +A position is skipped if already occupied by a "less than 1" probability symbol. +`position` does not reset between symbols, it simply iterates through +each position in the table, switching to the next symbol when enough +states have been allocated to the current one. + +The process guarantees that the table is entirely filled. +Each cell corresponds to a state value, which contains the symbol being decoded. + +To add the `Number_of_Bits` and `Baseline` required to retrieve next state, +it's first necessary to sort all occurrences of each symbol in state order. +Lower states will need 1 more bit than higher ones. +The process is repeated for each symbol. + +__Example__ : +Presuming a symbol has a probability of 5, +it receives 5 cells, corresponding to 5 state values. +These state values are then sorted in natural order. + +Next power of 2 after 5 is 8. +Space of probabilities must be divided into 8 equal parts. +Presuming the `Accuracy_Log` is 7, it defines a space of 128 states. +Divided by 8, each share is 16 large. + +In order to reach 8 shares, 8-5=3 lowest states will count "double", +doubling their shares (32 in width), hence requiring one more bit. + +Baseline is assigned starting from the higher states using fewer bits, +increasing at each state, then resuming at the first state, +each state takes its allocated width from Baseline. + +| state value | 1 | 39 | 77 | 84 | 122 | +| state order | 0 | 1 | 2 | 3 | 4 | +| ---------------- | ----- | ----- | ------ | ---- | ------ | +| width | 32 | 32 | 32 | 16 | 16 | +| `Number_of_Bits` | 5 | 5 | 5 | 4 | 4 | +| range number | 2 | 4 | 6 | 0 | 1 | +| `Baseline` | 32 | 64 | 96 | 0 | 16 | +| range | 32-63 | 64-95 | 96-127 | 0-15 | 16-31 | + +During decoding, the next state value is determined from current state value, +by reading the required `Number_of_Bits`, and adding the specified `Baseline`. + +See [Appendix A] for the results of this process applied to the default distributions. + +[Appendix A]: #appendix-a---decoding-tables-for-predefined-codes + + +Huffman Coding +-------------- +Zstandard Huffman-coded streams are read backwards, +similar to the FSE bitstreams. +Therefore, to find the start of the bitstream, it is therefore to +know the offset of the last byte of the Huffman-coded stream. + +After writing the last bit containing information, the compressor +writes a single `1`-bit and then fills the byte with 0-7 `0` bits of +padding. The last byte of the compressed bitstream cannot be `0` for +that reason. + +When decompressing, the last byte containing the padding is the first +byte to read. The decompressor needs to skip 0-7 initial `0`-bits and +the first `1`-bit it occurs. Afterwards, the useful part of the bitstream +begins. + +The bitstream contains Huffman-coded symbols in __little-endian__ order, +with the codes defined by the method below. + +### Huffman Tree Description + +Prefix coding represents symbols from an a priori known alphabet +by bit sequences (codewords), one codeword for each symbol, +in a manner such that different symbols may be represented +by bit sequences of different lengths, +but a parser can always parse an encoded string +unambiguously symbol-by-symbol. + +Given an alphabet with known symbol frequencies, +the Huffman algorithm allows the construction of an optimal prefix code +using the fewest bits of any possible prefix codes for that alphabet. + +Prefix code must not exceed a maximum code length. +More bits improve accuracy but cost more header size, +and require more memory or more complex decoding operations. +This specification limits maximum code length to 11 bits. + +#### Representation + +All literal values from zero (included) to last present one (excluded) +are represented by `Weight` with values from `0` to `Max_Number_of_Bits`. +Transformation from `Weight` to `Number_of_Bits` follows this formula : +``` +Number_of_Bits = Weight ? (Max_Number_of_Bits + 1 - Weight) : 0 +``` +The last symbol's `Weight` is deduced from previously decoded ones, +by completing to the nearest power of 2. +This power of 2 gives `Max_Number_of_Bits`, the depth of the current tree. +`Max_Number_of_Bits` must be <= 11, +otherwise the representation is considered corrupted. + +__Example__ : +Let's presume the following Huffman tree must be described : + +| literal value | 0 | 1 | 2 | 3 | 4 | 5 | +| ---------------- | --- | --- | --- | --- | --- | --- | +| `Number_of_Bits` | 1 | 2 | 3 | 0 | 4 | 4 | + +The tree depth is 4, since its longest elements uses 4 bits +(longest elements are the one with smallest frequency). +Value `5` will not be listed, as it can be determined from values for 0-4, +nor will values above `5` as they are all 0. +Values from `0` to `4` will be listed using `Weight` instead of `Number_of_Bits`. +Weight formula is : +``` +Weight = Number_of_Bits ? (Max_Number_of_Bits + 1 - Number_of_Bits) : 0 +``` +It gives the following series of weights : + +| literal value | 0 | 1 | 2 | 3 | 4 | +| ------------- | --- | --- | --- | --- | --- | +| `Weight` | 4 | 3 | 2 | 0 | 1 | + +The decoder will do the inverse operation : +having collected weights of literal symbols from `0` to `4`, +it knows the last literal, `5`, is present with a non-zero `Weight`. +The `Weight` of `5` can be determined by advancing to the next power of 2. +The sum of `2^(Weight-1)` (excluding 0's) is : +`8 + 4 + 2 + 0 + 1 = 15`. +Nearest larger power of 2 value is 16. +Therefore, `Max_Number_of_Bits = 4` and `Weight[5] = 16-15 = 1`. + +#### Huffman Tree header + +This is a single byte value (0-255), +which describes how the series of weights is encoded. + +- if `headerByte` < 128 : + the series of weights is compressed using FSE (see below). + The length of the FSE-compressed series is equal to `headerByte` (0-127). + +- if `headerByte` >= 128 : + + the series of weights uses a direct representation, + where each `Weight` is encoded directly as a 4 bits field (0-15). + + They are encoded forward, 2 weights to a byte, + first weight taking the top four bits and second one taking the bottom four. + * e.g. the following operations could be used to read the weights: + `Weight[0] = (Byte[0] >> 4), Weight[1] = (Byte[0] & 0xf)`, etc. + + The full representation occupies `Ceiling(Number_of_Weights/2)` bytes, + meaning it uses only full bytes even if `Number_of_Weights` is odd. + + `Number_of_Weights = headerByte - 127`. + * Note that maximum `Number_of_Weights` is 255-127 = 128, + therefore, only up to 128 `Weight` can be encoded using direct representation. + * Since the last non-zero `Weight` is _not_ encoded, + this scheme is compatible with alphabet sizes of up to 129 symbols, + hence including literal symbol 128. + * If any literal symbol > 128 has a non-zero `Weight`, + direct representation is not possible. + In such case, it's necessary to use FSE compression. + + +#### Finite State Entropy (FSE) compression of Huffman weights + +In this case, the series of Huffman weights is compressed using FSE compression. +It's a single bitstream with 2 interleaved states, +sharing a single distribution table. + +To decode an FSE bitstream, it is necessary to know its compressed size. +Compressed size is provided by `headerByte`. +It's also necessary to know its _maximum possible_ decompressed size, +which is `255`, since literal values span from `0` to `255`, +and last symbol's `Weight` is not represented. + +An FSE bitstream starts by a header, describing probabilities distribution. +It will create a Decoding Table. +For a list of Huffman weights, the maximum accuracy log is 6 bits. +For more description see the [FSE header description](#fse-table-description) + +The Huffman header compression uses 2 states, +which share the same FSE distribution table. +The first state (`State1`) encodes the even indexed symbols, +and the second (`State2`) encodes the odd indexed symbols. +`State1` is initialized first, and then `State2`, and they take turns +decoding a single symbol and updating their state. +For more details on these FSE operations, see the [FSE section](#fse). + +The number of symbols to decode is determined +by tracking bitStream overflow condition: +If updating state after decoding a symbol would require more bits than +remain in the stream, it is assumed that extra bits are 0. Then, +symbols for each of the final states are decoded and the process is complete. + +#### Conversion from weights to Huffman prefix codes + +All present symbols shall now have a `Weight` value. +It is possible to transform weights into `Number_of_Bits`, using this formula: +``` +Number_of_Bits = (Weight>0) ? Max_Number_of_Bits + 1 - Weight : 0 +``` +Symbols are sorted by `Weight`. +Within same `Weight`, symbols keep natural sequential order. +Symbols with a `Weight` of zero are removed. +Then, starting from lowest `Weight`, prefix codes are distributed in sequential order. + +__Example__ : +Let's presume the following list of weights has been decoded : + +| Literal | 0 | 1 | 2 | 3 | 4 | 5 | +| -------- | --- | --- | --- | --- | --- | --- | +| `Weight` | 4 | 3 | 2 | 0 | 1 | 1 | + +Sorted by weight and then natural sequential order, +it gives the following distribution : + +| Literal | 3 | 4 | 5 | 2 | 1 | 0 | +| ---------------- | --- | --- | --- | --- | --- | ---- | +| `Weight` | 0 | 1 | 1 | 2 | 3 | 4 | +| `Number_of_Bits` | 0 | 4 | 4 | 3 | 2 | 1 | +| prefix codes | N/A | 0000| 0001| 001 | 01 | 1 | + +### Huffman-coded Streams + +Given a Huffman decoding table, +it's possible to decode a Huffman-coded stream. + +Each bitstream must be read _backward_, +that is starting from the end down to the beginning. +Therefore it's necessary to know the size of each bitstream. + +It's also necessary to know exactly which _bit_ is the last one. +This is detected by a final bit flag : +the highest bit of latest byte is a final-bit-flag. +Consequently, a last byte of `0` is not possible. +And the final-bit-flag itself is not part of the useful bitstream. +Hence, the last byte contains between 0 and 7 useful bits. + +Starting from the end, +it's possible to read the bitstream in a __little-endian__ fashion, +keeping track of already used bits. Since the bitstream is encoded in reverse +order, starting from the end read symbols in forward order. + +For example, if the literal sequence "0145" was encoded using above prefix code, +it would be encoded (in reverse order) as: + +|Symbol | 5 | 4 | 1 | 0 | Padding | +|--------|------|------|----|---|---------| +|Encoding|`0000`|`0001`|`01`|`1`| `00001` | + +Resulting in following 2-bytes bitstream : +``` +00010000 00001101 +``` + +Here is an alternative representation with the symbol codes separated by underscore: +``` +0001_0000 00001_1_01 +``` + +Reading highest `Max_Number_of_Bits` bits, +it's possible to compare extracted value to decoding table, +determining the symbol to decode and number of bits to discard. + +The process continues up to reading the required number of symbols per stream. +If a bitstream is not entirely and exactly consumed, +hence reaching exactly its beginning position with _all_ bits consumed, +the decoding process is considered faulty. + + +Dictionary Format +----------------- + +Zstandard is compatible with "raw content" dictionaries, +free of any format restriction, except that they must be at least 8 bytes. +These dictionaries function as if they were just the `Content` part +of a formatted dictionary. + +But dictionaries created by `zstd --train` follow a format, described here. + +__Pre-requisites__ : a dictionary has a size, + defined either by a buffer limit, or a file size. + +| `Magic_Number` | `Dictionary_ID` | `Entropy_Tables` | `Content` | +| -------------- | --------------- | ---------------- | --------- | + +__`Magic_Number`__ : 4 bytes ID, value 0xEC30A437, __little-endian__ format + +__`Dictionary_ID`__ : 4 bytes, stored in __little-endian__ format. + `Dictionary_ID` can be any value, except 0 (which means no `Dictionary_ID`). + It's used by decoders to check if they use the correct dictionary. + +_Reserved ranges :_ +If the dictionary is going to be distributed in a public environment, +the following ranges of `Dictionary_ID` are reserved for some future registrar +and shall not be used : + + - low range : <= 32767 + - high range : >= (2^31) + +Outside of these ranges, any value of `Dictionary_ID` +which is both `>= 32768` and `< (1<<31)` can be used freely, +even in public environment. + + +__`Entropy_Tables`__ : follow the same format as tables in [compressed blocks]. + See the relevant [FSE](#fse-table-description) + and [Huffman](#huffman-tree-description) sections for how to decode these tables. + They are stored in following order : + Huffman tables for literals, FSE table for offsets, + FSE table for match lengths, and FSE table for literals lengths. + These tables populate the Repeat Stats literals mode and + Repeat distribution mode for sequence decoding. + It's finally followed by 3 offset values, populating recent offsets (instead of using `{1,4,8}`), + stored in order, 4-bytes __little-endian__ each, for a total of 12 bytes. + Each recent offset must have a value <= dictionary content size, and cannot equal 0. + +__`Content`__ : The rest of the dictionary is its content. + The content act as a "past" in front of data to compress or decompress, + so it can be referenced in sequence commands. + As long as the amount of data decoded from this frame is less than or + equal to `Window_Size`, sequence commands may specify offsets longer + than the total length of decoded output so far to reference back to the + dictionary, even parts of the dictionary with offsets larger than `Window_Size`. + After the total output has surpassed `Window_Size` however, + this is no longer allowed and the dictionary is no longer accessible. + +[compressed blocks]: #the-format-of-compressed_block + +If a dictionary is provided by an external source, +it should be loaded with great care, its content considered untrusted. + + + +Appendix A - Decoding tables for predefined codes +------------------------------------------------- + +This appendix contains FSE decoding tables +for the predefined literal length, match length, and offset codes. +The tables have been constructed using the algorithm as given above in chapter +"from normalized distribution to decoding tables". +The tables here can be used as examples +to crosscheck that an implementation build its decoding tables correctly. + +#### Literal Length Code: + +| State | Symbol | Number_Of_Bits | Base | +| ----- | ------ | -------------- | ---- | +| 0 | 0 | 4 | 0 | +| 1 | 0 | 4 | 16 | +| 2 | 1 | 5 | 32 | +| 3 | 3 | 5 | 0 | +| 4 | 4 | 5 | 0 | +| 5 | 6 | 5 | 0 | +| 6 | 7 | 5 | 0 | +| 7 | 9 | 5 | 0 | +| 8 | 10 | 5 | 0 | +| 9 | 12 | 5 | 0 | +| 10 | 14 | 6 | 0 | +| 11 | 16 | 5 | 0 | +| 12 | 18 | 5 | 0 | +| 13 | 19 | 5 | 0 | +| 14 | 21 | 5 | 0 | +| 15 | 22 | 5 | 0 | +| 16 | 24 | 5 | 0 | +| 17 | 25 | 5 | 32 | +| 18 | 26 | 5 | 0 | +| 19 | 27 | 6 | 0 | +| 20 | 29 | 6 | 0 | +| 21 | 31 | 6 | 0 | +| 22 | 0 | 4 | 32 | +| 23 | 1 | 4 | 0 | +| 24 | 2 | 5 | 0 | +| 25 | 4 | 5 | 32 | +| 26 | 5 | 5 | 0 | +| 27 | 7 | 5 | 32 | +| 28 | 8 | 5 | 0 | +| 29 | 10 | 5 | 32 | +| 30 | 11 | 5 | 0 | +| 31 | 13 | 6 | 0 | +| 32 | 16 | 5 | 32 | +| 33 | 17 | 5 | 0 | +| 34 | 19 | 5 | 32 | +| 35 | 20 | 5 | 0 | +| 36 | 22 | 5 | 32 | +| 37 | 23 | 5 | 0 | +| 38 | 25 | 4 | 0 | +| 39 | 25 | 4 | 16 | +| 40 | 26 | 5 | 32 | +| 41 | 28 | 6 | 0 | +| 42 | 30 | 6 | 0 | +| 43 | 0 | 4 | 48 | +| 44 | 1 | 4 | 16 | +| 45 | 2 | 5 | 32 | +| 46 | 3 | 5 | 32 | +| 47 | 5 | 5 | 32 | +| 48 | 6 | 5 | 32 | +| 49 | 8 | 5 | 32 | +| 50 | 9 | 5 | 32 | +| 51 | 11 | 5 | 32 | +| 52 | 12 | 5 | 32 | +| 53 | 15 | 6 | 0 | +| 54 | 17 | 5 | 32 | +| 55 | 18 | 5 | 32 | +| 56 | 20 | 5 | 32 | +| 57 | 21 | 5 | 32 | +| 58 | 23 | 5 | 32 | +| 59 | 24 | 5 | 32 | +| 60 | 35 | 6 | 0 | +| 61 | 34 | 6 | 0 | +| 62 | 33 | 6 | 0 | +| 63 | 32 | 6 | 0 | + +#### Match Length Code: + +| State | Symbol | Number_Of_Bits | Base | +| ----- | ------ | -------------- | ---- | +| 0 | 0 | 6 | 0 | +| 1 | 1 | 4 | 0 | +| 2 | 2 | 5 | 32 | +| 3 | 3 | 5 | 0 | +| 4 | 5 | 5 | 0 | +| 5 | 6 | 5 | 0 | +| 6 | 8 | 5 | 0 | +| 7 | 10 | 6 | 0 | +| 8 | 13 | 6 | 0 | +| 9 | 16 | 6 | 0 | +| 10 | 19 | 6 | 0 | +| 11 | 22 | 6 | 0 | +| 12 | 25 | 6 | 0 | +| 13 | 28 | 6 | 0 | +| 14 | 31 | 6 | 0 | +| 15 | 33 | 6 | 0 | +| 16 | 35 | 6 | 0 | +| 17 | 37 | 6 | 0 | +| 18 | 39 | 6 | 0 | +| 19 | 41 | 6 | 0 | +| 20 | 43 | 6 | 0 | +| 21 | 45 | 6 | 0 | +| 22 | 1 | 4 | 16 | +| 23 | 2 | 4 | 0 | +| 24 | 3 | 5 | 32 | +| 25 | 4 | 5 | 0 | +| 26 | 6 | 5 | 32 | +| 27 | 7 | 5 | 0 | +| 28 | 9 | 6 | 0 | +| 29 | 12 | 6 | 0 | +| 30 | 15 | 6 | 0 | +| 31 | 18 | 6 | 0 | +| 32 | 21 | 6 | 0 | +| 33 | 24 | 6 | 0 | +| 34 | 27 | 6 | 0 | +| 35 | 30 | 6 | 0 | +| 36 | 32 | 6 | 0 | +| 37 | 34 | 6 | 0 | +| 38 | 36 | 6 | 0 | +| 39 | 38 | 6 | 0 | +| 40 | 40 | 6 | 0 | +| 41 | 42 | 6 | 0 | +| 42 | 44 | 6 | 0 | +| 43 | 1 | 4 | 32 | +| 44 | 1 | 4 | 48 | +| 45 | 2 | 4 | 16 | +| 46 | 4 | 5 | 32 | +| 47 | 5 | 5 | 32 | +| 48 | 7 | 5 | 32 | +| 49 | 8 | 5 | 32 | +| 50 | 11 | 6 | 0 | +| 51 | 14 | 6 | 0 | +| 52 | 17 | 6 | 0 | +| 53 | 20 | 6 | 0 | +| 54 | 23 | 6 | 0 | +| 55 | 26 | 6 | 0 | +| 56 | 29 | 6 | 0 | +| 57 | 52 | 6 | 0 | +| 58 | 51 | 6 | 0 | +| 59 | 50 | 6 | 0 | +| 60 | 49 | 6 | 0 | +| 61 | 48 | 6 | 0 | +| 62 | 47 | 6 | 0 | +| 63 | 46 | 6 | 0 | + +#### Offset Code: + +| State | Symbol | Number_Of_Bits | Base | +| ----- | ------ | -------------- | ---- | +| 0 | 0 | 5 | 0 | +| 1 | 6 | 4 | 0 | +| 2 | 9 | 5 | 0 | +| 3 | 15 | 5 | 0 | +| 4 | 21 | 5 | 0 | +| 5 | 3 | 5 | 0 | +| 6 | 7 | 4 | 0 | +| 7 | 12 | 5 | 0 | +| 8 | 18 | 5 | 0 | +| 9 | 23 | 5 | 0 | +| 10 | 5 | 5 | 0 | +| 11 | 8 | 4 | 0 | +| 12 | 14 | 5 | 0 | +| 13 | 20 | 5 | 0 | +| 14 | 2 | 5 | 0 | +| 15 | 7 | 4 | 16 | +| 16 | 11 | 5 | 0 | +| 17 | 17 | 5 | 0 | +| 18 | 22 | 5 | 0 | +| 19 | 4 | 5 | 0 | +| 20 | 8 | 4 | 16 | +| 21 | 13 | 5 | 0 | +| 22 | 19 | 5 | 0 | +| 23 | 1 | 5 | 0 | +| 24 | 6 | 4 | 16 | +| 25 | 10 | 5 | 0 | +| 26 | 16 | 5 | 0 | +| 27 | 28 | 5 | 0 | +| 28 | 27 | 5 | 0 | +| 29 | 26 | 5 | 0 | +| 30 | 25 | 5 | 0 | +| 31 | 24 | 5 | 0 | + + + +Appendix B - Resources for implementers +------------------------------------------------- + +An open source reference implementation is available on : +https://github.com/facebook/zstd + +The project contains a frame generator, called [decodeCorpus], +which can be used by any 3rd-party implementation +to verify that a tested decoder is compliant with the specification. + +[decodeCorpus]: https://github.com/facebook/zstd/tree/v1.3.4/tests#decodecorpus---tool-to-generate-zstandard-frames-for-decoder-testing + +`decodeCorpus` generates random valid frames. +A compliant decoder should be able to decode them all, +or at least provide a meaningful error code explaining for which reason it cannot +(memory limit restrictions for example). + + +Version changes +--------------- +- 0.3.7 : clarifications for Repeat_Offsets +- 0.3.6 : clarifications for Dictionary_ID +- 0.3.5 : clarifications for Block_Maximum_Size +- 0.3.4 : clarifications for FSE decoding table +- 0.3.3 : clarifications for field Block_Size +- 0.3.2 : remove additional block size restriction on compressed blocks +- 0.3.1 : minor clarification regarding offset history update rules +- 0.3.0 : minor edits to match RFC8478 +- 0.2.9 : clarifications for huffman weights direct representation, by Ulrich Kunitz +- 0.2.8 : clarifications for IETF RFC discuss +- 0.2.7 : clarifications from IETF RFC review, by Vijay Gurbani and Nick Terrell +- 0.2.6 : fixed an error in huffman example, by Ulrich Kunitz +- 0.2.5 : minor typos and clarifications +- 0.2.4 : section restructuring, by Sean Purcell +- 0.2.3 : clarified several details, by Sean Purcell +- 0.2.2 : added predefined codes, by Johannes Rudolph +- 0.2.1 : clarify field names, by Przemyslaw Skibinski +- 0.2.0 : numerous format adjustments for zstd v0.8+ +- 0.1.2 : limit Huffman tree depth to 11 bits +- 0.1.1 : reserved dictID ranges +- 0.1.0 : initial release diff --git a/dependencies/zstd-1.5.0/doc/zstd_manual.html b/dependencies/zstd-1.5.0/doc/zstd_manual.html new file mode 100644 index 0000000..010f10a --- /dev/null +++ b/dependencies/zstd-1.5.0/doc/zstd_manual.html @@ -0,0 +1,1870 @@ + + + +zstd 1.5.0 Manual + + +

    zstd 1.5.0 Manual

    +
    +

    Contents

    +
      +
    1. Introduction
    2. +
    3. Version
    4. +
    5. Simple API
    6. +
    7. Explicit context
    8. +
    9. Advanced compression API (Requires v1.4.0+)
    10. +
    11. Advanced decompression API (Requires v1.4.0+)
    12. +
    13. Streaming
    14. +
    15. Streaming compression - HowTo
    16. +
    17. Streaming decompression - HowTo
    18. +
    19. Simple dictionary API
    20. +
    21. Bulk processing dictionary API
    22. +
    23. Dictionary helper functions
    24. +
    25. Advanced dictionary and prefix API (Requires v1.4.0+)
    26. +
    27. experimental API (static linking only)
    28. +
    29. Frame size functions
    30. +
    31. Memory management
    32. +
    33. Advanced compression functions
    34. +
    35. Advanced decompression functions
    36. +
    37. Advanced streaming functions
    38. +
    39. Buffer-less and synchronous inner streaming functions
    40. +
    41. Buffer-less streaming compression (synchronous mode)
    42. +
    43. Buffer-less streaming decompression (synchronous mode)
    44. +
    45. Block level API
    46. +
    +
    +

    Introduction

    +  zstd, short for Zstandard, is a fast lossless compression algorithm, targeting
    +  real-time compression scenarios at zlib-level and better compression ratios.
    +  The zstd compression library provides in-memory compression and decompression
    +  functions.
    +
    +  The library supports regular compression levels from 1 up to ZSTD_maxCLevel(),
    +  which is currently 22. Levels >= 20, labeled `--ultra`, should be used with
    +  caution, as they require more memory. The library also offers negative
    +  compression levels, which extend the range of speed vs. ratio preferences.
    +  The lower the level, the faster the speed (at the cost of compression).
    +
    +  Compression can be done in:
    +    - a single step (described as Simple API)
    +    - a single step, reusing a context (described as Explicit context)
    +    - unbounded multiple steps (described as Streaming compression)
    +
    +  The compression ratio achievable on small data can be highly improved using
    +  a dictionary. Dictionary compression can be performed in:
    +    - a single step (described as Simple dictionary API)
    +    - a single step, reusing a dictionary (described as Bulk-processing
    +      dictionary API)
    +
    +  Advanced experimental functions can be accessed using
    +  `#define ZSTD_STATIC_LINKING_ONLY` before including zstd.h.
    +
    +  Advanced experimental APIs should never be used with a dynamically-linked
    +  library. They are not "stable"; their definitions or signatures may change in
    +  the future. Only static linking is allowed.
    +
    + +

    Version

    
    +
    +
    unsigned ZSTD_versionNumber(void);
    +

    Return runtime library version, the value is (MAJOR*100*100 + MINOR*100 + RELEASE). +


    + +
    const char* ZSTD_versionString(void);
    +

    Return runtime library version, like "1.4.5". Requires v1.3.0+. +


    + +

    Simple API

    
    +
    +
    size_t ZSTD_compress( void* dst, size_t dstCapacity,
    +                const void* src, size_t srcSize,
    +                      int compressionLevel);
    +

    Compresses `src` content as a single zstd compressed frame into already allocated `dst`. + Hint : compression runs faster if `dstCapacity` >= `ZSTD_compressBound(srcSize)`. + @return : compressed size written into `dst` (<= `dstCapacity), + or an error code if it fails (which can be tested using ZSTD_isError()). +


    + +
    size_t ZSTD_decompress( void* dst, size_t dstCapacity,
    +                  const void* src, size_t compressedSize);
    +

    `compressedSize` : must be the _exact_ size of some number of compressed and/or skippable frames. + `dstCapacity` is an upper bound of originalSize to regenerate. + If user cannot imply a maximum upper bound, it's better to use streaming mode to decompress data. + @return : the number of bytes decompressed into `dst` (<= `dstCapacity`), + or an errorCode if it fails (which can be tested using ZSTD_isError()). +


    + +
    #define ZSTD_CONTENTSIZE_UNKNOWN (0ULL - 1)
    +#define ZSTD_CONTENTSIZE_ERROR   (0ULL - 2)
    +unsigned long long ZSTD_getFrameContentSize(const void *src, size_t srcSize);
    +

    `src` should point to the start of a ZSTD encoded frame. + `srcSize` must be at least as large as the frame header. + hint : any size >= `ZSTD_frameHeaderSize_max` is large enough. + @return : - decompressed size of `src` frame content, if known + - ZSTD_CONTENTSIZE_UNKNOWN if the size cannot be determined + - ZSTD_CONTENTSIZE_ERROR if an error occurred (e.g. invalid magic number, srcSize too small) + note 1 : a 0 return value means the frame is valid but "empty". + note 2 : decompressed size is an optional field, it may not be present, typically in streaming mode. + When `return==ZSTD_CONTENTSIZE_UNKNOWN`, data to decompress could be any size. + In which case, it's necessary to use streaming mode to decompress data. + Optionally, application can rely on some implicit limit, + as ZSTD_decompress() only needs an upper bound of decompressed size. + (For example, data could be necessarily cut into blocks <= 16 KB). + note 3 : decompressed size is always present when compression is completed using single-pass functions, + such as ZSTD_compress(), ZSTD_compressCCtx() ZSTD_compress_usingDict() or ZSTD_compress_usingCDict(). + note 4 : decompressed size can be very large (64-bits value), + potentially larger than what local system can handle as a single memory segment. + In which case, it's necessary to use streaming mode to decompress data. + note 5 : If source is untrusted, decompressed size could be wrong or intentionally modified. + Always ensure return value fits within application's authorized limits. + Each application can set its own limits. + note 6 : This function replaces ZSTD_getDecompressedSize() +


    + +
    unsigned long long ZSTD_getDecompressedSize(const void* src, size_t srcSize);
    +

    NOTE: This function is now obsolete, in favor of ZSTD_getFrameContentSize(). + Both functions work the same way, but ZSTD_getDecompressedSize() blends + "empty", "unknown" and "error" results to the same return value (0), + while ZSTD_getFrameContentSize() gives them separate return values. + @return : decompressed size of `src` frame content _if known and not empty_, 0 otherwise. +


    + +
    size_t ZSTD_findFrameCompressedSize(const void* src, size_t srcSize);
    +

    `src` should point to the start of a ZSTD frame or skippable frame. + `srcSize` must be >= first frame size + @return : the compressed size of the first frame starting at `src`, + suitable to pass as `srcSize` to `ZSTD_decompress` or similar, + or an error code if input is invalid +


    + +

    Helper functions

    #define ZSTD_COMPRESSBOUND(srcSize)   ((srcSize) + ((srcSize)>>8) + (((srcSize) < (128<<10)) ? (((128<<10) - (srcSize)) >> 11) /* margin, from 64 to 0 */ : 0))  /* this formula ensures that bound(A) + bound(B) <= bound(A+B) as long as A and B >= 128 KB */
    +size_t      ZSTD_compressBound(size_t srcSize); /*!< maximum compressed size in worst case single-pass scenario */
    +unsigned    ZSTD_isError(size_t code);          /*!< tells if a `size_t` function result is an error code */
    +const char* ZSTD_getErrorName(size_t code);     /*!< provides readable string from an error code */
    +int         ZSTD_minCLevel(void);               /*!< minimum negative compression level allowed, requires v1.4.0+ */
    +int         ZSTD_maxCLevel(void);               /*!< maximum compression level available */
    +int         ZSTD_defaultCLevel(void);           /*!< default compression level, specified by ZSTD_CLEVEL_DEFAULT, requires v1.5.0+ */
    +

    +

    Explicit context

    
    +
    +

    Compression context

      When compressing many times,
    +  it is recommended to allocate a context just once,
    +  and re-use it for each successive compression operation.
    +  This will make workload friendlier for system's memory.
    +  Note : re-using context is just a speed / resource optimization.
    +         It doesn't change the compression ratio, which remains identical.
    +  Note 2 : In multi-threaded environments,
    +         use one different context per thread for parallel execution.
    + 
    +
    typedef struct ZSTD_CCtx_s ZSTD_CCtx;
    +ZSTD_CCtx* ZSTD_createCCtx(void);
    +size_t     ZSTD_freeCCtx(ZSTD_CCtx* cctx);  /* accept NULL pointer */
    +

    +
    size_t ZSTD_compressCCtx(ZSTD_CCtx* cctx,
    +                         void* dst, size_t dstCapacity,
    +                   const void* src, size_t srcSize,
    +                         int compressionLevel);
    +

    Same as ZSTD_compress(), using an explicit ZSTD_CCtx. + Important : in order to behave similarly to `ZSTD_compress()`, + this function compresses at requested compression level, + __ignoring any other parameter__ . + If any advanced parameter was set using the advanced API, + they will all be reset. Only `compressionLevel` remains. + +


    + +

    Decompression context

      When decompressing many times,
    +  it is recommended to allocate a context only once,
    +  and re-use it for each successive compression operation.
    +  This will make workload friendlier for system's memory.
    +  Use one context per thread for parallel execution. 
    +
    typedef struct ZSTD_DCtx_s ZSTD_DCtx;
    +ZSTD_DCtx* ZSTD_createDCtx(void);
    +size_t     ZSTD_freeDCtx(ZSTD_DCtx* dctx);  /* accept NULL pointer */
    +

    +
    size_t ZSTD_decompressDCtx(ZSTD_DCtx* dctx,
    +                           void* dst, size_t dstCapacity,
    +                     const void* src, size_t srcSize);
    +

    Same as ZSTD_decompress(), + requires an allocated ZSTD_DCtx. + Compatible with sticky parameters. + +


    + +

    Advanced compression API (Requires v1.4.0+)

    
    +
    +
    typedef enum { ZSTD_fast=1,
    +               ZSTD_dfast=2,
    +               ZSTD_greedy=3,
    +               ZSTD_lazy=4,
    +               ZSTD_lazy2=5,
    +               ZSTD_btlazy2=6,
    +               ZSTD_btopt=7,
    +               ZSTD_btultra=8,
    +               ZSTD_btultra2=9
    +               /* note : new strategies _might_ be added in the future.
    +                         Only the order (from fast to strong) is guaranteed */
    +} ZSTD_strategy;
    +

    +
    typedef enum {
    +
    +    /* compression parameters
    +     * Note: When compressing with a ZSTD_CDict these parameters are superseded
    +     * by the parameters used to construct the ZSTD_CDict.
    +     * See ZSTD_CCtx_refCDict() for more info (superseded-by-cdict). */
    +    ZSTD_c_compressionLevel=100, /* Set compression parameters according to pre-defined cLevel table.
    +                              * Note that exact compression parameters are dynamically determined,
    +                              * depending on both compression level and srcSize (when known).
    +                              * Default level is ZSTD_CLEVEL_DEFAULT==3.
    +                              * Special: value 0 means default, which is controlled by ZSTD_CLEVEL_DEFAULT.
    +                              * Note 1 : it's possible to pass a negative compression level.
    +                              * Note 2 : setting a level does not automatically set all other compression parameters
    +                              *   to default. Setting this will however eventually dynamically impact the compression
    +                              *   parameters which have not been manually set. The manually set
    +                              *   ones will 'stick'. */
    +    /* Advanced compression parameters :
    +     * It's possible to pin down compression parameters to some specific values.
    +     * In which case, these values are no longer dynamically selected by the compressor */
    +    ZSTD_c_windowLog=101,    /* Maximum allowed back-reference distance, expressed as power of 2.
    +                              * This will set a memory budget for streaming decompression,
    +                              * with larger values requiring more memory
    +                              * and typically compressing more.
    +                              * Must be clamped between ZSTD_WINDOWLOG_MIN and ZSTD_WINDOWLOG_MAX.
    +                              * Special: value 0 means "use default windowLog".
    +                              * Note: Using a windowLog greater than ZSTD_WINDOWLOG_LIMIT_DEFAULT
    +                              *       requires explicitly allowing such size at streaming decompression stage. */
    +    ZSTD_c_hashLog=102,      /* Size of the initial probe table, as a power of 2.
    +                              * Resulting memory usage is (1 << (hashLog+2)).
    +                              * Must be clamped between ZSTD_HASHLOG_MIN and ZSTD_HASHLOG_MAX.
    +                              * Larger tables improve compression ratio of strategies <= dFast,
    +                              * and improve speed of strategies > dFast.
    +                              * Special: value 0 means "use default hashLog". */
    +    ZSTD_c_chainLog=103,     /* Size of the multi-probe search table, as a power of 2.
    +                              * Resulting memory usage is (1 << (chainLog+2)).
    +                              * Must be clamped between ZSTD_CHAINLOG_MIN and ZSTD_CHAINLOG_MAX.
    +                              * Larger tables result in better and slower compression.
    +                              * This parameter is useless for "fast" strategy.
    +                              * It's still useful when using "dfast" strategy,
    +                              * in which case it defines a secondary probe table.
    +                              * Special: value 0 means "use default chainLog". */
    +    ZSTD_c_searchLog=104,    /* Number of search attempts, as a power of 2.
    +                              * More attempts result in better and slower compression.
    +                              * This parameter is useless for "fast" and "dFast" strategies.
    +                              * Special: value 0 means "use default searchLog". */
    +    ZSTD_c_minMatch=105,     /* Minimum size of searched matches.
    +                              * Note that Zstandard can still find matches of smaller size,
    +                              * it just tweaks its search algorithm to look for this size and larger.
    +                              * Larger values increase compression and decompression speed, but decrease ratio.
    +                              * Must be clamped between ZSTD_MINMATCH_MIN and ZSTD_MINMATCH_MAX.
    +                              * Note that currently, for all strategies < btopt, effective minimum is 4.
    +                              *                    , for all strategies > fast, effective maximum is 6.
    +                              * Special: value 0 means "use default minMatchLength". */
    +    ZSTD_c_targetLength=106, /* Impact of this field depends on strategy.
    +                              * For strategies btopt, btultra & btultra2:
    +                              *     Length of Match considered "good enough" to stop search.
    +                              *     Larger values make compression stronger, and slower.
    +                              * For strategy fast:
    +                              *     Distance between match sampling.
    +                              *     Larger values make compression faster, and weaker.
    +                              * Special: value 0 means "use default targetLength". */
    +    ZSTD_c_strategy=107,     /* See ZSTD_strategy enum definition.
    +                              * The higher the value of selected strategy, the more complex it is,
    +                              * resulting in stronger and slower compression.
    +                              * Special: value 0 means "use default strategy". */
    +    /* LDM mode parameters */
    +    ZSTD_c_enableLongDistanceMatching=160, /* Enable long distance matching.
    +                                     * This parameter is designed to improve compression ratio
    +                                     * for large inputs, by finding large matches at long distance.
    +                                     * It increases memory usage and window size.
    +                                     * Note: enabling this parameter increases default ZSTD_c_windowLog to 128 MB
    +                                     * except when expressly set to a different value.
    +                                     * Note: will be enabled by default if ZSTD_c_windowLog >= 128 MB and
    +                                     * compression strategy >= ZSTD_btopt (== compression level 16+) */
    +    ZSTD_c_ldmHashLog=161,   /* Size of the table for long distance matching, as a power of 2.
    +                              * Larger values increase memory usage and compression ratio,
    +                              * but decrease compression speed.
    +                              * Must be clamped between ZSTD_HASHLOG_MIN and ZSTD_HASHLOG_MAX
    +                              * default: windowlog - 7.
    +                              * Special: value 0 means "automatically determine hashlog". */
    +    ZSTD_c_ldmMinMatch=162,  /* Minimum match size for long distance matcher.
    +                              * Larger/too small values usually decrease compression ratio.
    +                              * Must be clamped between ZSTD_LDM_MINMATCH_MIN and ZSTD_LDM_MINMATCH_MAX.
    +                              * Special: value 0 means "use default value" (default: 64). */
    +    ZSTD_c_ldmBucketSizeLog=163, /* Log size of each bucket in the LDM hash table for collision resolution.
    +                              * Larger values improve collision resolution but decrease compression speed.
    +                              * The maximum value is ZSTD_LDM_BUCKETSIZELOG_MAX.
    +                              * Special: value 0 means "use default value" (default: 3). */
    +    ZSTD_c_ldmHashRateLog=164, /* Frequency of inserting/looking up entries into the LDM hash table.
    +                              * Must be clamped between 0 and (ZSTD_WINDOWLOG_MAX - ZSTD_HASHLOG_MIN).
    +                              * Default is MAX(0, (windowLog - ldmHashLog)), optimizing hash table usage.
    +                              * Larger values improve compression speed.
    +                              * Deviating far from default value will likely result in a compression ratio decrease.
    +                              * Special: value 0 means "automatically determine hashRateLog". */
    +
    +    /* frame parameters */
    +    ZSTD_c_contentSizeFlag=200, /* Content size will be written into frame header _whenever known_ (default:1)
    +                              * Content size must be known at the beginning of compression.
    +                              * This is automatically the case when using ZSTD_compress2(),
    +                              * For streaming scenarios, content size must be provided with ZSTD_CCtx_setPledgedSrcSize() */
    +    ZSTD_c_checksumFlag=201, /* A 32-bits checksum of content is written at end of frame (default:0) */
    +    ZSTD_c_dictIDFlag=202,   /* When applicable, dictionary's ID is written into frame header (default:1) */
    +
    +    /* multi-threading parameters */
    +    /* These parameters are only active if multi-threading is enabled (compiled with build macro ZSTD_MULTITHREAD).
    +     * Otherwise, trying to set any other value than default (0) will be a no-op and return an error.
    +     * In a situation where it's unknown if the linked library supports multi-threading or not,
    +     * setting ZSTD_c_nbWorkers to any value >= 1 and consulting the return value provides a quick way to check this property.
    +     */
    +    ZSTD_c_nbWorkers=400,    /* Select how many threads will be spawned to compress in parallel.
    +                              * When nbWorkers >= 1, triggers asynchronous mode when invoking ZSTD_compressStream*() :
    +                              * ZSTD_compressStream*() consumes input and flush output if possible, but immediately gives back control to caller,
    +                              * while compression is performed in parallel, within worker thread(s).
    +                              * (note : a strong exception to this rule is when first invocation of ZSTD_compressStream2() sets ZSTD_e_end :
    +                              *  in which case, ZSTD_compressStream2() delegates to ZSTD_compress2(), which is always a blocking call).
    +                              * More workers improve speed, but also increase memory usage.
    +                              * Default value is `0`, aka "single-threaded mode" : no worker is spawned,
    +                              * compression is performed inside Caller's thread, and all invocations are blocking */
    +    ZSTD_c_jobSize=401,      /* Size of a compression job. This value is enforced only when nbWorkers >= 1.
    +                              * Each compression job is completed in parallel, so this value can indirectly impact the nb of active threads.
    +                              * 0 means default, which is dynamically determined based on compression parameters.
    +                              * Job size must be a minimum of overlap size, or ZSTDMT_JOBSIZE_MIN (= 512 KB), whichever is largest.
    +                              * The minimum size is automatically and transparently enforced. */
    +    ZSTD_c_overlapLog=402,   /* Control the overlap size, as a fraction of window size.
    +                              * The overlap size is an amount of data reloaded from previous job at the beginning of a new job.
    +                              * It helps preserve compression ratio, while each job is compressed in parallel.
    +                              * This value is enforced only when nbWorkers >= 1.
    +                              * Larger values increase compression ratio, but decrease speed.
    +                              * Possible values range from 0 to 9 :
    +                              * - 0 means "default" : value will be determined by the library, depending on strategy
    +                              * - 1 means "no overlap"
    +                              * - 9 means "full overlap", using a full window size.
    +                              * Each intermediate rank increases/decreases load size by a factor 2 :
    +                              * 9: full window;  8: w/2;  7: w/4;  6: w/8;  5:w/16;  4: w/32;  3:w/64;  2:w/128;  1:no overlap;  0:default
    +                              * default value varies between 6 and 9, depending on strategy */
    +
    +    /* note : additional experimental parameters are also available
    +     * within the experimental section of the API.
    +     * At the time of this writing, they include :
    +     * ZSTD_c_rsyncable
    +     * ZSTD_c_format
    +     * ZSTD_c_forceMaxWindow
    +     * ZSTD_c_forceAttachDict
    +     * ZSTD_c_literalCompressionMode
    +     * ZSTD_c_targetCBlockSize
    +     * ZSTD_c_srcSizeHint
    +     * ZSTD_c_enableDedicatedDictSearch
    +     * ZSTD_c_stableInBuffer
    +     * ZSTD_c_stableOutBuffer
    +     * ZSTD_c_blockDelimiters
    +     * ZSTD_c_validateSequences
    +     * ZSTD_c_splitBlocks
    +     * ZSTD_c_useRowMatchFinder
    +     * Because they are not stable, it's necessary to define ZSTD_STATIC_LINKING_ONLY to access them.
    +     * note : never ever use experimentalParam? names directly;
    +     *        also, the enums values themselves are unstable and can still change.
    +     */
    +     ZSTD_c_experimentalParam1=500,
    +     ZSTD_c_experimentalParam2=10,
    +     ZSTD_c_experimentalParam3=1000,
    +     ZSTD_c_experimentalParam4=1001,
    +     ZSTD_c_experimentalParam5=1002,
    +     ZSTD_c_experimentalParam6=1003,
    +     ZSTD_c_experimentalParam7=1004,
    +     ZSTD_c_experimentalParam8=1005,
    +     ZSTD_c_experimentalParam9=1006,
    +     ZSTD_c_experimentalParam10=1007,
    +     ZSTD_c_experimentalParam11=1008,
    +     ZSTD_c_experimentalParam12=1009,
    +     ZSTD_c_experimentalParam13=1010,
    +     ZSTD_c_experimentalParam14=1011,
    +     ZSTD_c_experimentalParam15=1012
    +} ZSTD_cParameter;
    +

    +
    typedef struct {
    +    size_t error;
    +    int lowerBound;
    +    int upperBound;
    +} ZSTD_bounds;
    +

    +
    ZSTD_bounds ZSTD_cParam_getBounds(ZSTD_cParameter cParam);
    +

    All parameters must belong to an interval with lower and upper bounds, + otherwise they will either trigger an error or be automatically clamped. + @return : a structure, ZSTD_bounds, which contains + - an error status field, which must be tested using ZSTD_isError() + - lower and upper bounds, both inclusive + +


    + +
    size_t ZSTD_CCtx_setParameter(ZSTD_CCtx* cctx, ZSTD_cParameter param, int value);
    +

    Set one compression parameter, selected by enum ZSTD_cParameter. + All parameters have valid bounds. Bounds can be queried using ZSTD_cParam_getBounds(). + Providing a value beyond bound will either clamp it, or trigger an error (depending on parameter). + Setting a parameter is generally only possible during frame initialization (before starting compression). + Exception : when using multi-threading mode (nbWorkers >= 1), + the following parameters can be updated _during_ compression (within same frame): + => compressionLevel, hashLog, chainLog, searchLog, minMatch, targetLength and strategy. + new parameters will be active for next job only (after a flush()). + @return : an error code (which can be tested using ZSTD_isError()). + +


    + +
    size_t ZSTD_CCtx_setPledgedSrcSize(ZSTD_CCtx* cctx, unsigned long long pledgedSrcSize);
    +

    Total input data size to be compressed as a single frame. + Value will be written in frame header, unless if explicitly forbidden using ZSTD_c_contentSizeFlag. + This value will also be controlled at end of frame, and trigger an error if not respected. + @result : 0, or an error code (which can be tested with ZSTD_isError()). + Note 1 : pledgedSrcSize==0 actually means zero, aka an empty frame. + In order to mean "unknown content size", pass constant ZSTD_CONTENTSIZE_UNKNOWN. + ZSTD_CONTENTSIZE_UNKNOWN is default value for any new frame. + Note 2 : pledgedSrcSize is only valid once, for the next frame. + It's discarded at the end of the frame, and replaced by ZSTD_CONTENTSIZE_UNKNOWN. + Note 3 : Whenever all input data is provided and consumed in a single round, + for example with ZSTD_compress2(), + or invoking immediately ZSTD_compressStream2(,,,ZSTD_e_end), + this value is automatically overridden by srcSize instead. + +


    + +
    typedef enum {
    +    ZSTD_reset_session_only = 1,
    +    ZSTD_reset_parameters = 2,
    +    ZSTD_reset_session_and_parameters = 3
    +} ZSTD_ResetDirective;
    +

    +
    size_t ZSTD_CCtx_reset(ZSTD_CCtx* cctx, ZSTD_ResetDirective reset);
    +

    There are 2 different things that can be reset, independently or jointly : + - The session : will stop compressing current frame, and make CCtx ready to start a new one. + Useful after an error, or to interrupt any ongoing compression. + Any internal data not yet flushed is cancelled. + Compression parameters and dictionary remain unchanged. + They will be used to compress next frame. + Resetting session never fails. + - The parameters : changes all parameters back to "default". + This removes any reference to any dictionary too. + Parameters can only be changed between 2 sessions (i.e. no compression is currently ongoing) + otherwise the reset fails, and function returns an error value (which can be tested using ZSTD_isError()) + - Both : similar to resetting the session, followed by resetting parameters. + +


    + +
    size_t ZSTD_compress2( ZSTD_CCtx* cctx,
    +                       void* dst, size_t dstCapacity,
    +                 const void* src, size_t srcSize);
    +

    Behave the same as ZSTD_compressCCtx(), but compression parameters are set using the advanced API. + ZSTD_compress2() always starts a new frame. + Should cctx hold data from a previously unfinished frame, everything about it is forgotten. + - Compression parameters are pushed into CCtx before starting compression, using ZSTD_CCtx_set*() + - The function is always blocking, returns when compression is completed. + Hint : compression runs faster if `dstCapacity` >= `ZSTD_compressBound(srcSize)`. + @return : compressed size written into `dst` (<= `dstCapacity), + or an error code if it fails (which can be tested using ZSTD_isError()). + +


    + +

    Advanced decompression API (Requires v1.4.0+)

    
    +
    +
    typedef enum {
    +
    +    ZSTD_d_windowLogMax=100, /* Select a size limit (in power of 2) beyond which
    +                              * the streaming API will refuse to allocate memory buffer
    +                              * in order to protect the host from unreasonable memory requirements.
    +                              * This parameter is only useful in streaming mode, since no internal buffer is allocated in single-pass mode.
    +                              * By default, a decompression context accepts window sizes <= (1 << ZSTD_WINDOWLOG_LIMIT_DEFAULT).
    +                              * Special: value 0 means "use default maximum windowLog". */
    +
    +    /* note : additional experimental parameters are also available
    +     * within the experimental section of the API.
    +     * At the time of this writing, they include :
    +     * ZSTD_d_format
    +     * ZSTD_d_stableOutBuffer
    +     * ZSTD_d_forceIgnoreChecksum
    +     * ZSTD_d_refMultipleDDicts
    +     * Because they are not stable, it's necessary to define ZSTD_STATIC_LINKING_ONLY to access them.
    +     * note : never ever use experimentalParam? names directly
    +     */
    +     ZSTD_d_experimentalParam1=1000,
    +     ZSTD_d_experimentalParam2=1001,
    +     ZSTD_d_experimentalParam3=1002,
    +     ZSTD_d_experimentalParam4=1003
    +
    +} ZSTD_dParameter;
    +

    +
    ZSTD_bounds ZSTD_dParam_getBounds(ZSTD_dParameter dParam);
    +

    All parameters must belong to an interval with lower and upper bounds, + otherwise they will either trigger an error or be automatically clamped. + @return : a structure, ZSTD_bounds, which contains + - an error status field, which must be tested using ZSTD_isError() + - both lower and upper bounds, inclusive + +


    + +
    size_t ZSTD_DCtx_setParameter(ZSTD_DCtx* dctx, ZSTD_dParameter param, int value);
    +

    Set one compression parameter, selected by enum ZSTD_dParameter. + All parameters have valid bounds. Bounds can be queried using ZSTD_dParam_getBounds(). + Providing a value beyond bound will either clamp it, or trigger an error (depending on parameter). + Setting a parameter is only possible during frame initialization (before starting decompression). + @return : 0, or an error code (which can be tested using ZSTD_isError()). + +


    + +
    size_t ZSTD_DCtx_reset(ZSTD_DCtx* dctx, ZSTD_ResetDirective reset);
    +

    Return a DCtx to clean state. + Session and parameters can be reset jointly or separately. + Parameters can only be reset when no active frame is being decompressed. + @return : 0, or an error code, which can be tested with ZSTD_isError() + +


    + +

    Streaming

    
    +
    +
    typedef struct ZSTD_inBuffer_s {
    +  const void* src;    /**< start of input buffer */
    +  size_t size;        /**< size of input buffer */
    +  size_t pos;         /**< position where reading stopped. Will be updated. Necessarily 0 <= pos <= size */
    +} ZSTD_inBuffer;
    +

    +
    typedef struct ZSTD_outBuffer_s {
    +  void*  dst;         /**< start of output buffer */
    +  size_t size;        /**< size of output buffer */
    +  size_t pos;         /**< position where writing stopped. Will be updated. Necessarily 0 <= pos <= size */
    +} ZSTD_outBuffer;
    +

    +

    Streaming compression - HowTo

    +  A ZSTD_CStream object is required to track streaming operation.
    +  Use ZSTD_createCStream() and ZSTD_freeCStream() to create/release resources.
    +  ZSTD_CStream objects can be reused multiple times on consecutive compression operations.
    +  It is recommended to re-use ZSTD_CStream since it will play nicer with system's memory, by re-using already allocated memory.
    +
    +  For parallel execution, use one separate ZSTD_CStream per thread.
    +
    +  note : since v1.3.0, ZSTD_CStream and ZSTD_CCtx are the same thing.
    +
    +  Parameters are sticky : when starting a new compression on the same context,
    +  it will re-use the same sticky parameters as previous compression session.
    +  When in doubt, it's recommended to fully initialize the context before usage.
    +  Use ZSTD_CCtx_reset() to reset the context and ZSTD_CCtx_setParameter(),
    +  ZSTD_CCtx_setPledgedSrcSize(), or ZSTD_CCtx_loadDictionary() and friends to
    +  set more specific parameters, the pledged source size, or load a dictionary.
    +
    +  Use ZSTD_compressStream2() with ZSTD_e_continue as many times as necessary to
    +  consume input stream. The function will automatically update both `pos`
    +  fields within `input` and `output`.
    +  Note that the function may not consume the entire input, for example, because
    +  the output buffer is already full, in which case `input.pos < input.size`.
    +  The caller must check if input has been entirely consumed.
    +  If not, the caller must make some room to receive more compressed data,
    +  and then present again remaining input data.
    +  note: ZSTD_e_continue is guaranteed to make some forward progress when called,
    +        but doesn't guarantee maximal forward progress. This is especially relevant
    +        when compressing with multiple threads. The call won't block if it can
    +        consume some input, but if it can't it will wait for some, but not all,
    +        output to be flushed.
    + @return : provides a minimum amount of data remaining to be flushed from internal buffers
    +           or an error code, which can be tested using ZSTD_isError().
    +
    +  At any moment, it's possible to flush whatever data might remain stuck within internal buffer,
    +  using ZSTD_compressStream2() with ZSTD_e_flush. `output->pos` will be updated.
    +  Note that, if `output->size` is too small, a single invocation with ZSTD_e_flush might not be enough (return code > 0).
    +  In which case, make some room to receive more compressed data, and call again ZSTD_compressStream2() with ZSTD_e_flush.
    +  You must continue calling ZSTD_compressStream2() with ZSTD_e_flush until it returns 0, at which point you can change the
    +  operation.
    +  note: ZSTD_e_flush will flush as much output as possible, meaning when compressing with multiple threads, it will
    +        block until the flush is complete or the output buffer is full.
    +  @return : 0 if internal buffers are entirely flushed,
    +            >0 if some data still present within internal buffer (the value is minimal estimation of remaining size),
    +            or an error code, which can be tested using ZSTD_isError().
    +
    +  Calling ZSTD_compressStream2() with ZSTD_e_end instructs to finish a frame.
    +  It will perform a flush and write frame epilogue.
    +  The epilogue is required for decoders to consider a frame completed.
    +  flush operation is the same, and follows same rules as calling ZSTD_compressStream2() with ZSTD_e_flush.
    +  You must continue calling ZSTD_compressStream2() with ZSTD_e_end until it returns 0, at which point you are free to
    +  start a new frame.
    +  note: ZSTD_e_end will flush as much output as possible, meaning when compressing with multiple threads, it will
    +        block until the flush is complete or the output buffer is full.
    +  @return : 0 if frame fully completed and fully flushed,
    +            >0 if some data still present within internal buffer (the value is minimal estimation of remaining size),
    +            or an error code, which can be tested using ZSTD_isError().
    +
    + 
    +
    + +
    typedef ZSTD_CCtx ZSTD_CStream;  /**< CCtx and CStream are now effectively same object (>= v1.3.0) */
    +

    +

    ZSTD_CStream management functions

    ZSTD_CStream* ZSTD_createCStream(void);
    +size_t ZSTD_freeCStream(ZSTD_CStream* zcs);  /* accept NULL pointer */
    +

    +

    Streaming compression functions

    typedef enum {
    +    ZSTD_e_continue=0, /* collect more data, encoder decides when to output compressed result, for optimal compression ratio */
    +    ZSTD_e_flush=1,    /* flush any data provided so far,
    +                        * it creates (at least) one new block, that can be decoded immediately on reception;
    +                        * frame will continue: any future data can still reference previously compressed data, improving compression.
    +                        * note : multithreaded compression will block to flush as much output as possible. */
    +    ZSTD_e_end=2       /* flush any remaining data _and_ close current frame.
    +                        * note that frame is only closed after compressed data is fully flushed (return value == 0).
    +                        * After that point, any additional data starts a new frame.
    +                        * note : each frame is independent (does not reference any content from previous frame).
    +                        : note : multithreaded compression will block to flush as much output as possible. */
    +} ZSTD_EndDirective;
    +

    +
    size_t ZSTD_compressStream2( ZSTD_CCtx* cctx,
    +                             ZSTD_outBuffer* output,
    +                             ZSTD_inBuffer* input,
    +                             ZSTD_EndDirective endOp);
    +

    Behaves about the same as ZSTD_compressStream, with additional control on end directive. + - Compression parameters are pushed into CCtx before starting compression, using ZSTD_CCtx_set*() + - Compression parameters cannot be changed once compression is started (save a list of exceptions in multi-threading mode) + - output->pos must be <= dstCapacity, input->pos must be <= srcSize + - output->pos and input->pos will be updated. They are guaranteed to remain below their respective limit. + - endOp must be a valid directive + - When nbWorkers==0 (default), function is blocking : it completes its job before returning to caller. + - When nbWorkers>=1, function is non-blocking : it copies a portion of input, distributes jobs to internal worker threads, flush to output whatever is available, + and then immediately returns, just indicating that there is some data remaining to be flushed. + The function nonetheless guarantees forward progress : it will return only after it reads or write at least 1+ byte. + - Exception : if the first call requests a ZSTD_e_end directive and provides enough dstCapacity, the function delegates to ZSTD_compress2() which is always blocking. + - @return provides a minimum amount of data remaining to be flushed from internal buffers + or an error code, which can be tested using ZSTD_isError(). + if @return != 0, flush is not fully completed, there is still some data left within internal buffers. + This is useful for ZSTD_e_flush, since in this case more flushes are necessary to empty all buffers. + For ZSTD_e_end, @return == 0 when internal buffers are fully flushed and frame is completed. + - after a ZSTD_e_end directive, if internal buffer is not fully flushed (@return != 0), + only ZSTD_e_end or ZSTD_e_flush operations are allowed. + Before starting a new compression job, or changing compression parameters, + it is required to fully flush internal buffers. + +


    + +
    size_t ZSTD_CStreamInSize(void);    /**< recommended size for input buffer */
    +

    +
    size_t ZSTD_CStreamOutSize(void);   /**< recommended size for output buffer. Guarantee to successfully flush at least one complete compressed block. */
    +

    +
    size_t ZSTD_initCStream(ZSTD_CStream* zcs, int compressionLevel);
    +/*!
    + * Alternative for ZSTD_compressStream2(zcs, output, input, ZSTD_e_continue).
    + * NOTE: The return value is different. ZSTD_compressStream() returns a hint for
    + * the next read size (if non-zero and not an error). ZSTD_compressStream2()
    + * returns the minimum nb of bytes left to flush (if non-zero and not an error).
    + */
    +size_t ZSTD_compressStream(ZSTD_CStream* zcs, ZSTD_outBuffer* output, ZSTD_inBuffer* input);
    +/*! Equivalent to ZSTD_compressStream2(zcs, output, &emptyInput, ZSTD_e_flush). */
    +size_t ZSTD_flushStream(ZSTD_CStream* zcs, ZSTD_outBuffer* output);
    +/*! Equivalent to ZSTD_compressStream2(zcs, output, &emptyInput, ZSTD_e_end). */
    +size_t ZSTD_endStream(ZSTD_CStream* zcs, ZSTD_outBuffer* output);
    +

    + ZSTD_CCtx_reset(zcs, ZSTD_reset_session_only); + ZSTD_CCtx_refCDict(zcs, NULL); // clear the dictionary (if any) + ZSTD_CCtx_setParameter(zcs, ZSTD_c_compressionLevel, compressionLevel); + +


    + +

    Streaming decompression - HowTo

    +  A ZSTD_DStream object is required to track streaming operations.
    +  Use ZSTD_createDStream() and ZSTD_freeDStream() to create/release resources.
    +  ZSTD_DStream objects can be re-used multiple times.
    +
    +  Use ZSTD_initDStream() to start a new decompression operation.
    + @return : recommended first input size
    +  Alternatively, use advanced API to set specific properties.
    +
    +  Use ZSTD_decompressStream() repetitively to consume your input.
    +  The function will update both `pos` fields.
    +  If `input.pos < input.size`, some input has not been consumed.
    +  It's up to the caller to present again remaining data.
    +  The function tries to flush all data decoded immediately, respecting output buffer size.
    +  If `output.pos < output.size`, decoder has flushed everything it could.
    +  But if `output.pos == output.size`, there might be some data left within internal buffers.,
    +  In which case, call ZSTD_decompressStream() again to flush whatever remains in the buffer.
    +  Note : with no additional input provided, amount of data flushed is necessarily <= ZSTD_BLOCKSIZE_MAX.
    + @return : 0 when a frame is completely decoded and fully flushed,
    +        or an error code, which can be tested using ZSTD_isError(),
    +        or any other value > 0, which means there is still some decoding or flushing to do to complete current frame :
    +                                the return value is a suggested next input size (just a hint for better latency)
    +                                that will never request more than the remaining frame size.
    + 
    +
    + +
    typedef ZSTD_DCtx ZSTD_DStream;  /**< DCtx and DStream are now effectively same object (>= v1.3.0) */
    +

    +

    ZSTD_DStream management functions

    ZSTD_DStream* ZSTD_createDStream(void);
    +size_t ZSTD_freeDStream(ZSTD_DStream* zds);  /* accept NULL pointer */
    +

    +

    Streaming decompression functions


    +
    size_t ZSTD_DStreamInSize(void);    /*!< recommended size for input buffer */
    +

    +
    size_t ZSTD_DStreamOutSize(void);   /*!< recommended size for output buffer. Guarantee to successfully flush at least one complete block in all circumstances. */
    +

    +

    Simple dictionary API

    
    +
    +
    size_t ZSTD_compress_usingDict(ZSTD_CCtx* ctx,
    +                               void* dst, size_t dstCapacity,
    +                         const void* src, size_t srcSize,
    +                         const void* dict,size_t dictSize,
    +                               int compressionLevel);
    +

    Compression at an explicit compression level using a Dictionary. + A dictionary can be any arbitrary data segment (also called a prefix), + or a buffer with specified information (see zdict.h). + Note : This function loads the dictionary, resulting in significant startup delay. + It's intended for a dictionary used only once. + Note 2 : When `dict == NULL || dictSize < 8` no dictionary is used. +


    + +
    size_t ZSTD_decompress_usingDict(ZSTD_DCtx* dctx,
    +                                 void* dst, size_t dstCapacity,
    +                           const void* src, size_t srcSize,
    +                           const void* dict,size_t dictSize);
    +

    Decompression using a known Dictionary. + Dictionary must be identical to the one used during compression. + Note : This function loads the dictionary, resulting in significant startup delay. + It's intended for a dictionary used only once. + Note : When `dict == NULL || dictSize < 8` no dictionary is used. +


    + +

    Bulk processing dictionary API

    
    +
    +
    ZSTD_CDict* ZSTD_createCDict(const void* dictBuffer, size_t dictSize,
    +                             int compressionLevel);
    +

    When compressing multiple messages or blocks using the same dictionary, + it's recommended to digest the dictionary only once, since it's a costly operation. + ZSTD_createCDict() will create a state from digesting a dictionary. + The resulting state can be used for future compression operations with very limited startup cost. + ZSTD_CDict can be created once and shared by multiple threads concurrently, since its usage is read-only. + @dictBuffer can be released after ZSTD_CDict creation, because its content is copied within CDict. + Note 1 : Consider experimental function `ZSTD_createCDict_byReference()` if you prefer to not duplicate @dictBuffer content. + Note 2 : A ZSTD_CDict can be created from an empty @dictBuffer, + in which case the only thing that it transports is the @compressionLevel. + This can be useful in a pipeline featuring ZSTD_compress_usingCDict() exclusively, + expecting a ZSTD_CDict parameter with any data, including those without a known dictionary. +


    + +
    size_t      ZSTD_freeCDict(ZSTD_CDict* CDict);
    +

    Function frees memory allocated by ZSTD_createCDict(). + If a NULL pointer is passed, no operation is performed. +


    + +
    size_t ZSTD_compress_usingCDict(ZSTD_CCtx* cctx,
    +                                void* dst, size_t dstCapacity,
    +                          const void* src, size_t srcSize,
    +                          const ZSTD_CDict* cdict);
    +

    Compression using a digested Dictionary. + Recommended when same dictionary is used multiple times. + Note : compression level is _decided at dictionary creation time_, + and frame parameters are hardcoded (dictID=yes, contentSize=yes, checksum=no) +


    + +
    ZSTD_DDict* ZSTD_createDDict(const void* dictBuffer, size_t dictSize);
    +

    Create a digested dictionary, ready to start decompression operation without startup delay. + dictBuffer can be released after DDict creation, as its content is copied inside DDict. +


    + +
    size_t      ZSTD_freeDDict(ZSTD_DDict* ddict);
    +

    Function frees memory allocated with ZSTD_createDDict() + If a NULL pointer is passed, no operation is performed. +


    + +
    size_t ZSTD_decompress_usingDDict(ZSTD_DCtx* dctx,
    +                                  void* dst, size_t dstCapacity,
    +                            const void* src, size_t srcSize,
    +                            const ZSTD_DDict* ddict);
    +

    Decompression using a digested Dictionary. + Recommended when same dictionary is used multiple times. +


    + +

    Dictionary helper functions

    
    +
    +
    unsigned ZSTD_getDictID_fromDict(const void* dict, size_t dictSize);
    +

    Provides the dictID stored within dictionary. + if @return == 0, the dictionary is not conformant with Zstandard specification. + It can still be loaded, but as a content-only dictionary. +


    + +
    unsigned ZSTD_getDictID_fromCDict(const ZSTD_CDict* cdict);
    +

    Provides the dictID of the dictionary loaded into `cdict`. + If @return == 0, the dictionary is not conformant to Zstandard specification, or empty. + Non-conformant dictionaries can still be loaded, but as content-only dictionaries. +


    + +
    unsigned ZSTD_getDictID_fromDDict(const ZSTD_DDict* ddict);
    +

    Provides the dictID of the dictionary loaded into `ddict`. + If @return == 0, the dictionary is not conformant to Zstandard specification, or empty. + Non-conformant dictionaries can still be loaded, but as content-only dictionaries. +


    + +
    unsigned ZSTD_getDictID_fromFrame(const void* src, size_t srcSize);
    +

    Provides the dictID required to decompressed the frame stored within `src`. + If @return == 0, the dictID could not be decoded. + This could for one of the following reasons : + - The frame does not require a dictionary to be decoded (most common case). + - The frame was built with dictID intentionally removed. Whatever dictionary is necessary is a hidden information. + Note : this use case also happens when using a non-conformant dictionary. + - `srcSize` is too small, and as a result, the frame header could not be decoded (only possible if `srcSize < ZSTD_FRAMEHEADERSIZE_MAX`). + - This is not a Zstandard frame. + When identifying the exact failure cause, it's possible to use ZSTD_getFrameHeader(), which will provide a more precise error code. +


    + +

    Advanced dictionary and prefix API (Requires v1.4.0+)

    + This API allows dictionaries to be used with ZSTD_compress2(),
    + ZSTD_compressStream2(), and ZSTD_decompress(). Dictionaries are sticky, and
    + only reset with the context is reset with ZSTD_reset_parameters or
    + ZSTD_reset_session_and_parameters. Prefixes are single-use.
    +
    + +
    size_t ZSTD_CCtx_loadDictionary(ZSTD_CCtx* cctx, const void* dict, size_t dictSize);
    +

    Create an internal CDict from `dict` buffer. + Decompression will have to use same dictionary. + @result : 0, or an error code (which can be tested with ZSTD_isError()). + Special: Loading a NULL (or 0-size) dictionary invalidates previous dictionary, + meaning "return to no-dictionary mode". + Note 1 : Dictionary is sticky, it will be used for all future compressed frames. + To return to "no-dictionary" situation, load a NULL dictionary (or reset parameters). + Note 2 : Loading a dictionary involves building tables. + It's also a CPU consuming operation, with non-negligible impact on latency. + Tables are dependent on compression parameters, and for this reason, + compression parameters can no longer be changed after loading a dictionary. + Note 3 :`dict` content will be copied internally. + Use experimental ZSTD_CCtx_loadDictionary_byReference() to reference content instead. + In such a case, dictionary buffer must outlive its users. + Note 4 : Use ZSTD_CCtx_loadDictionary_advanced() + to precisely select how dictionary content must be interpreted. +


    + +
    size_t ZSTD_CCtx_refCDict(ZSTD_CCtx* cctx, const ZSTD_CDict* cdict);
    +

    Reference a prepared dictionary, to be used for all next compressed frames. + Note that compression parameters are enforced from within CDict, + and supersede any compression parameter previously set within CCtx. + The parameters ignored are labelled as "superseded-by-cdict" in the ZSTD_cParameter enum docs. + The ignored parameters will be used again if the CCtx is returned to no-dictionary mode. + The dictionary will remain valid for future compressed frames using same CCtx. + @result : 0, or an error code (which can be tested with ZSTD_isError()). + Special : Referencing a NULL CDict means "return to no-dictionary mode". + Note 1 : Currently, only one dictionary can be managed. + Referencing a new dictionary effectively "discards" any previous one. + Note 2 : CDict is just referenced, its lifetime must outlive its usage within CCtx. +


    + +
    size_t ZSTD_CCtx_refPrefix(ZSTD_CCtx* cctx,
    +                     const void* prefix, size_t prefixSize);
    +

    Reference a prefix (single-usage dictionary) for next compressed frame. + A prefix is **only used once**. Tables are discarded at end of frame (ZSTD_e_end). + Decompression will need same prefix to properly regenerate data. + Compressing with a prefix is similar in outcome as performing a diff and compressing it, + but performs much faster, especially during decompression (compression speed is tunable with compression level). + @result : 0, or an error code (which can be tested with ZSTD_isError()). + Special: Adding any prefix (including NULL) invalidates any previous prefix or dictionary + Note 1 : Prefix buffer is referenced. It **must** outlive compression. + Its content must remain unmodified during compression. + Note 2 : If the intention is to diff some large src data blob with some prior version of itself, + ensure that the window size is large enough to contain the entire source. + See ZSTD_c_windowLog. + Note 3 : Referencing a prefix involves building tables, which are dependent on compression parameters. + It's a CPU consuming operation, with non-negligible impact on latency. + If there is a need to use the same prefix multiple times, consider loadDictionary instead. + Note 4 : By default, the prefix is interpreted as raw content (ZSTD_dct_rawContent). + Use experimental ZSTD_CCtx_refPrefix_advanced() to alter dictionary interpretation. +


    + +
    size_t ZSTD_DCtx_loadDictionary(ZSTD_DCtx* dctx, const void* dict, size_t dictSize);
    +

    Create an internal DDict from dict buffer, + to be used to decompress next frames. + The dictionary remains valid for all future frames, until explicitly invalidated. + @result : 0, or an error code (which can be tested with ZSTD_isError()). + Special : Adding a NULL (or 0-size) dictionary invalidates any previous dictionary, + meaning "return to no-dictionary mode". + Note 1 : Loading a dictionary involves building tables, + which has a non-negligible impact on CPU usage and latency. + It's recommended to "load once, use many times", to amortize the cost + Note 2 :`dict` content will be copied internally, so `dict` can be released after loading. + Use ZSTD_DCtx_loadDictionary_byReference() to reference dictionary content instead. + Note 3 : Use ZSTD_DCtx_loadDictionary_advanced() to take control of + how dictionary content is loaded and interpreted. + +


    + +
    size_t ZSTD_DCtx_refDDict(ZSTD_DCtx* dctx, const ZSTD_DDict* ddict);
    +

    Reference a prepared dictionary, to be used to decompress next frames. + The dictionary remains active for decompression of future frames using same DCtx. + + If called with ZSTD_d_refMultipleDDicts enabled, repeated calls of this function + will store the DDict references in a table, and the DDict used for decompression + will be determined at decompression time, as per the dict ID in the frame. + The memory for the table is allocated on the first call to refDDict, and can be + freed with ZSTD_freeDCtx(). + + @result : 0, or an error code (which can be tested with ZSTD_isError()). + Note 1 : Currently, only one dictionary can be managed. + Referencing a new dictionary effectively "discards" any previous one. + Special: referencing a NULL DDict means "return to no-dictionary mode". + Note 2 : DDict is just referenced, its lifetime must outlive its usage from DCtx. + +


    + +
    size_t ZSTD_DCtx_refPrefix(ZSTD_DCtx* dctx,
    +                     const void* prefix, size_t prefixSize);
    +

    Reference a prefix (single-usage dictionary) to decompress next frame. + This is the reverse operation of ZSTD_CCtx_refPrefix(), + and must use the same prefix as the one used during compression. + Prefix is **only used once**. Reference is discarded at end of frame. + End of frame is reached when ZSTD_decompressStream() returns 0. + @result : 0, or an error code (which can be tested with ZSTD_isError()). + Note 1 : Adding any prefix (including NULL) invalidates any previously set prefix or dictionary + Note 2 : Prefix buffer is referenced. It **must** outlive decompression. + Prefix buffer must remain unmodified up to the end of frame, + reached when ZSTD_decompressStream() returns 0. + Note 3 : By default, the prefix is treated as raw content (ZSTD_dct_rawContent). + Use ZSTD_CCtx_refPrefix_advanced() to alter dictMode (Experimental section) + Note 4 : Referencing a raw content prefix has almost no cpu nor memory cost. + A full dictionary is more costly, as it requires building tables. + +


    + +
    size_t ZSTD_sizeof_CCtx(const ZSTD_CCtx* cctx);
    +size_t ZSTD_sizeof_DCtx(const ZSTD_DCtx* dctx);
    +size_t ZSTD_sizeof_CStream(const ZSTD_CStream* zcs);
    +size_t ZSTD_sizeof_DStream(const ZSTD_DStream* zds);
    +size_t ZSTD_sizeof_CDict(const ZSTD_CDict* cdict);
    +size_t ZSTD_sizeof_DDict(const ZSTD_DDict* ddict);
    +

    These functions give the _current_ memory usage of selected object. + Note that object memory usage can evolve (increase or decrease) over time. +


    + +

    experimental API (static linking only)

    + The following symbols and constants
    + are not planned to join "stable API" status in the near future.
    + They can still change in future versions.
    + Some of them are planned to remain in the static_only section indefinitely.
    + Some of them might be removed in the future (especially when redundant with existing stable functions)
    + 
    +
    + +
    typedef struct {
    +    unsigned int offset;      /* The offset of the match. (NOT the same as the offset code)
    +                               * If offset == 0 and matchLength == 0, this sequence represents the last
    +                               * literals in the block of litLength size.
    +                               */
    +
    +    unsigned int litLength;   /* Literal length of the sequence. */
    +    unsigned int matchLength; /* Match length of the sequence. */
    +
    +                              /* Note: Users of this API may provide a sequence with matchLength == litLength == offset == 0.
    +                               * In this case, we will treat the sequence as a marker for a block boundary.
    +                               */
    +
    +    unsigned int rep;         /* Represents which repeat offset is represented by the field 'offset'.
    +                               * Ranges from [0, 3].
    +                               *
    +                               * Repeat offsets are essentially previous offsets from previous sequences sorted in
    +                               * recency order. For more detail, see doc/zstd_compression_format.md
    +                               *
    +                               * If rep == 0, then 'offset' does not contain a repeat offset.
    +                               * If rep > 0:
    +                               *  If litLength != 0:
    +                               *      rep == 1 --> offset == repeat_offset_1
    +                               *      rep == 2 --> offset == repeat_offset_2
    +                               *      rep == 3 --> offset == repeat_offset_3
    +                               *  If litLength == 0:
    +                               *      rep == 1 --> offset == repeat_offset_2
    +                               *      rep == 2 --> offset == repeat_offset_3
    +                               *      rep == 3 --> offset == repeat_offset_1 - 1
    +                               *
    +                               * Note: This field is optional. ZSTD_generateSequences() will calculate the value of
    +                               * 'rep', but repeat offsets do not necessarily need to be calculated from an external
    +                               * sequence provider's perspective. For example, ZSTD_compressSequences() does not
    +                               * use this 'rep' field at all (as of now).
    +                               */
    +} ZSTD_Sequence;
    +

    +
    typedef struct {
    +    unsigned windowLog;       /**< largest match distance : larger == more compression, more memory needed during decompression */
    +    unsigned chainLog;        /**< fully searched segment : larger == more compression, slower, more memory (useless for fast) */
    +    unsigned hashLog;         /**< dispatch table : larger == faster, more memory */
    +    unsigned searchLog;       /**< nb of searches : larger == more compression, slower */
    +    unsigned minMatch;        /**< match length searched : larger == faster decompression, sometimes less compression */
    +    unsigned targetLength;    /**< acceptable match size for optimal parser (only) : larger == more compression, slower */
    +    ZSTD_strategy strategy;   /**< see ZSTD_strategy definition above */
    +} ZSTD_compressionParameters;
    +

    +
    typedef struct {
    +    int contentSizeFlag; /**< 1: content size will be in frame header (when known) */
    +    int checksumFlag;    /**< 1: generate a 32-bits checksum using XXH64 algorithm at end of frame, for error detection */
    +    int noDictIDFlag;    /**< 1: no dictID will be saved into frame header (dictID is only useful for dictionary compression) */
    +} ZSTD_frameParameters;
    +

    +
    typedef struct {
    +    ZSTD_compressionParameters cParams;
    +    ZSTD_frameParameters fParams;
    +} ZSTD_parameters;
    +

    +
    typedef enum {
    +    ZSTD_dct_auto = 0,       /* dictionary is "full" when starting with ZSTD_MAGIC_DICTIONARY, otherwise it is "rawContent" */
    +    ZSTD_dct_rawContent = 1, /* ensures dictionary is always loaded as rawContent, even if it starts with ZSTD_MAGIC_DICTIONARY */
    +    ZSTD_dct_fullDict = 2    /* refuses to load a dictionary if it does not respect Zstandard's specification, starting with ZSTD_MAGIC_DICTIONARY */
    +} ZSTD_dictContentType_e;
    +

    +
    typedef enum {
    +    ZSTD_dlm_byCopy = 0,  /**< Copy dictionary content internally */
    +    ZSTD_dlm_byRef = 1    /**< Reference dictionary content -- the dictionary buffer must outlive its users. */
    +} ZSTD_dictLoadMethod_e;
    +

    +
    typedef enum {
    +    ZSTD_f_zstd1 = 0,           /* zstd frame format, specified in zstd_compression_format.md (default) */
    +    ZSTD_f_zstd1_magicless = 1  /* Variant of zstd frame format, without initial 4-bytes magic number.
    +                                 * Useful to save 4 bytes per generated frame.
    +                                 * Decoder cannot recognise automatically this format, requiring this instruction. */
    +} ZSTD_format_e;
    +

    +
    typedef enum {
    +    /* Note: this enum controls ZSTD_d_forceIgnoreChecksum */
    +    ZSTD_d_validateChecksum = 0,
    +    ZSTD_d_ignoreChecksum = 1
    +} ZSTD_forceIgnoreChecksum_e;
    +

    +
    typedef enum {
    +    /* Note: this enum controls ZSTD_d_refMultipleDDicts */
    +    ZSTD_rmd_refSingleDDict = 0,
    +    ZSTD_rmd_refMultipleDDicts = 1
    +} ZSTD_refMultipleDDicts_e;
    +

    +
    typedef enum {
    +    /* Note: this enum and the behavior it controls are effectively internal
    +     * implementation details of the compressor. They are expected to continue
    +     * to evolve and should be considered only in the context of extremely
    +     * advanced performance tuning.
    +     *
    +     * Zstd currently supports the use of a CDict in three ways:
    +     *
    +     * - The contents of the CDict can be copied into the working context. This
    +     *   means that the compression can search both the dictionary and input
    +     *   while operating on a single set of internal tables. This makes
    +     *   the compression faster per-byte of input. However, the initial copy of
    +     *   the CDict's tables incurs a fixed cost at the beginning of the
    +     *   compression. For small compressions (< 8 KB), that copy can dominate
    +     *   the cost of the compression.
    +     *
    +     * - The CDict's tables can be used in-place. In this model, compression is
    +     *   slower per input byte, because the compressor has to search two sets of
    +     *   tables. However, this model incurs no start-up cost (as long as the
    +     *   working context's tables can be reused). For small inputs, this can be
    +     *   faster than copying the CDict's tables.
    +     *
    +     * - The CDict's tables are not used at all, and instead we use the working
    +     *   context alone to reload the dictionary and use params based on the source
    +     *   size. See ZSTD_compress_insertDictionary() and ZSTD_compress_usingDict().
    +     *   This method is effective when the dictionary sizes are very small relative
    +     *   to the input size, and the input size is fairly large to begin with.
    +     *
    +     * Zstd has a simple internal heuristic that selects which strategy to use
    +     * at the beginning of a compression. However, if experimentation shows that
    +     * Zstd is making poor choices, it is possible to override that choice with
    +     * this enum.
    +     */
    +    ZSTD_dictDefaultAttach = 0, /* Use the default heuristic. */
    +    ZSTD_dictForceAttach   = 1, /* Never copy the dictionary. */
    +    ZSTD_dictForceCopy     = 2, /* Always copy the dictionary. */
    +    ZSTD_dictForceLoad     = 3  /* Always reload the dictionary */
    +} ZSTD_dictAttachPref_e;
    +

    +
    typedef enum {
    +  ZSTD_lcm_auto = 0,          /**< Automatically determine the compression mode based on the compression level.
    +                               *   Negative compression levels will be uncompressed, and positive compression
    +                               *   levels will be compressed. */
    +  ZSTD_lcm_huffman = 1,       /**< Always attempt Huffman compression. Uncompressed literals will still be
    +                               *   emitted if Huffman compression is not profitable. */
    +  ZSTD_lcm_uncompressed = 2   /**< Always emit uncompressed literals. */
    +} ZSTD_literalCompressionMode_e;
    +

    +
    typedef enum {
    +  ZSTD_urm_auto = 0,                   /* Automatically determine whether or not we use row matchfinder */
    +  ZSTD_urm_disableRowMatchFinder = 1,  /* Never use row matchfinder */
    +  ZSTD_urm_enableRowMatchFinder = 2    /* Always use row matchfinder when applicable */
    +} ZSTD_useRowMatchFinderMode_e;
    +

    +

    Frame size functions

    
    +
    +
    unsigned long long ZSTD_findDecompressedSize(const void* src, size_t srcSize);
    +

    `src` should point to the start of a series of ZSTD encoded and/or skippable frames + `srcSize` must be the _exact_ size of this series + (i.e. there should be a frame boundary at `src + srcSize`) + @return : - decompressed size of all data in all successive frames + - if the decompressed size cannot be determined: ZSTD_CONTENTSIZE_UNKNOWN + - if an error occurred: ZSTD_CONTENTSIZE_ERROR + + note 1 : decompressed size is an optional field, that may not be present, especially in streaming mode. + When `return==ZSTD_CONTENTSIZE_UNKNOWN`, data to decompress could be any size. + In which case, it's necessary to use streaming mode to decompress data. + note 2 : decompressed size is always present when compression is done with ZSTD_compress() + note 3 : decompressed size can be very large (64-bits value), + potentially larger than what local system can handle as a single memory segment. + In which case, it's necessary to use streaming mode to decompress data. + note 4 : If source is untrusted, decompressed size could be wrong or intentionally modified. + Always ensure result fits within application's authorized limits. + Each application can set its own limits. + note 5 : ZSTD_findDecompressedSize handles multiple frames, and so it must traverse the input to + read each contained frame header. This is fast as most of the data is skipped, + however it does mean that all frame data must be present and valid. +


    + +
    unsigned long long ZSTD_decompressBound(const void* src, size_t srcSize);
    +

    `src` should point to the start of a series of ZSTD encoded and/or skippable frames + `srcSize` must be the _exact_ size of this series + (i.e. there should be a frame boundary at `src + srcSize`) + @return : - upper-bound for the decompressed size of all data in all successive frames + - if an error occurred: ZSTD_CONTENTSIZE_ERROR + + note 1 : an error can occur if `src` contains an invalid or incorrectly formatted frame. + note 2 : the upper-bound is exact when the decompressed size field is available in every ZSTD encoded frame of `src`. + in this case, `ZSTD_findDecompressedSize` and `ZSTD_decompressBound` return the same value. + note 3 : when the decompressed size field isn't available, the upper-bound for that frame is calculated by: + upper-bound = # blocks * min(128 KB, Window_Size) + +


    + +
    size_t ZSTD_frameHeaderSize(const void* src, size_t srcSize);
    +

    srcSize must be >= ZSTD_FRAMEHEADERSIZE_PREFIX. + @return : size of the Frame Header, + or an error code (if srcSize is too small) +


    + +
    typedef enum {
    +  ZSTD_sf_noBlockDelimiters = 0,         /* Representation of ZSTD_Sequence has no block delimiters, sequences only */
    +  ZSTD_sf_explicitBlockDelimiters = 1    /* Representation of ZSTD_Sequence contains explicit block delimiters */
    +} ZSTD_sequenceFormat_e;
    +

    +

    Generate sequences using ZSTD_compress2, given a source buffer. + + Each block will end with a dummy sequence + with offset == 0, matchLength == 0, and litLength == length of last literals. + litLength may be == 0, and if so, then the sequence of (of: 0 ml: 0 ll: 0) + simply acts as a block delimiter. + + zc can be used to insert custom compression params. + This function invokes ZSTD_compress2 + + The output of this function can be fed into ZSTD_compressSequences() with CCtx + setting of ZSTD_c_blockDelimiters as ZSTD_sf_explicitBlockDelimiters + @return : number of sequences generated + +


    + +
    size_t ZSTD_mergeBlockDelimiters(ZSTD_Sequence* sequences, size_t seqsSize);
    +

    Given an array of ZSTD_Sequence, remove all sequences that represent block delimiters/last literals + by merging them into into the literals of the next sequence. + + As such, the final generated result has no explicit representation of block boundaries, + and the final last literals segment is not represented in the sequences. + + The output of this function can be fed into ZSTD_compressSequences() with CCtx + setting of ZSTD_c_blockDelimiters as ZSTD_sf_noBlockDelimiters + @return : number of sequences left after merging + +


    + +
    size_t ZSTD_compressSequences(ZSTD_CCtx* const cctx, void* dst, size_t dstSize,
    +                      const ZSTD_Sequence* inSeqs, size_t inSeqsSize,
    +                      const void* src, size_t srcSize);
    +

    Compress an array of ZSTD_Sequence, generated from the original source buffer, into dst. + If a dictionary is included, then the cctx should reference the dict. (see: ZSTD_CCtx_refCDict(), ZSTD_CCtx_loadDictionary(), etc.) + The entire source is compressed into a single frame. + + The compression behavior changes based on cctx params. In particular: + If ZSTD_c_blockDelimiters == ZSTD_sf_noBlockDelimiters, the array of ZSTD_Sequence is expected to contain + no block delimiters (defined in ZSTD_Sequence). Block boundaries are roughly determined based on + the block size derived from the cctx, and sequences may be split. This is the default setting. + + If ZSTD_c_blockDelimiters == ZSTD_sf_explicitBlockDelimiters, the array of ZSTD_Sequence is expected to contain + block delimiters (defined in ZSTD_Sequence). Behavior is undefined if no block delimiters are provided. + + If ZSTD_c_validateSequences == 0, this function will blindly accept the sequences provided. Invalid sequences cause undefined + behavior. If ZSTD_c_validateSequences == 1, then if sequence is invalid (see doc/zstd_compression_format.md for + specifics regarding offset/matchlength requirements) then the function will bail out and return an error. + + In addition to the two adjustable experimental params, there are other important cctx params. + - ZSTD_c_minMatch MUST be set as less than or equal to the smallest match generated by the match finder. It has a minimum value of ZSTD_MINMATCH_MIN. + - ZSTD_c_compressionLevel accordingly adjusts the strength of the entropy coder, as it would in typical compression. + - ZSTD_c_windowLog affects offset validation: this function will return an error at higher debug levels if a provided offset + is larger than what the spec allows for a given window log and dictionary (if present). See: doc/zstd_compression_format.md + + Note: Repcodes are, as of now, always re-calculated within this function, so ZSTD_Sequence::rep is unused. + Note 2: Once we integrate ability to ingest repcodes, the explicit block delims mode must respect those repcodes exactly, + and cannot emit an RLE block that disagrees with the repcode history + @return : final compressed size or a ZSTD error. + +


    + +
    size_t ZSTD_writeSkippableFrame(void* dst, size_t dstCapacity,
    +                                const void* src, size_t srcSize, unsigned magicVariant);
    +

    Generates a zstd skippable frame containing data given by src, and writes it to dst buffer. + + Skippable frames begin with a a 4-byte magic number. There are 16 possible choices of magic number, + ranging from ZSTD_MAGIC_SKIPPABLE_START to ZSTD_MAGIC_SKIPPABLE_START+15. + As such, the parameter magicVariant controls the exact skippable frame magic number variant used, so + the magic number used will be ZSTD_MAGIC_SKIPPABLE_START + magicVariant. + + Returns an error if destination buffer is not large enough, if the source size is not representable + with a 4-byte unsigned int, or if the parameter magicVariant is greater than 15 (and therefore invalid). + + @return : number of bytes written or a ZSTD error. + +


    + +

    Memory management

    
    +
    +
    size_t ZSTD_estimateCCtxSize(int compressionLevel);
    +size_t ZSTD_estimateCCtxSize_usingCParams(ZSTD_compressionParameters cParams);
    +size_t ZSTD_estimateCCtxSize_usingCCtxParams(const ZSTD_CCtx_params* params);
    +size_t ZSTD_estimateDCtxSize(void);
    +

    These functions make it possible to estimate memory usage + of a future {D,C}Ctx, before its creation. + + ZSTD_estimateCCtxSize() will provide a memory budget large enough + for any compression level up to selected one. + Note : Unlike ZSTD_estimateCStreamSize*(), this estimate + does not include space for a window buffer. + Therefore, the estimation is only guaranteed for single-shot compressions, not streaming. + The estimate will assume the input may be arbitrarily large, + which is the worst case. + + When srcSize can be bound by a known and rather "small" value, + this fact can be used to provide a tighter estimation + because the CCtx compression context will need less memory. + This tighter estimation can be provided by more advanced functions + ZSTD_estimateCCtxSize_usingCParams(), which can be used in tandem with ZSTD_getCParams(), + and ZSTD_estimateCCtxSize_usingCCtxParams(), which can be used in tandem with ZSTD_CCtxParams_setParameter(). + Both can be used to estimate memory using custom compression parameters and arbitrary srcSize limits. + + Note 2 : only single-threaded compression is supported. + ZSTD_estimateCCtxSize_usingCCtxParams() will return an error code if ZSTD_c_nbWorkers is >= 1. + +


    + +
    size_t ZSTD_estimateCStreamSize(int compressionLevel);
    +size_t ZSTD_estimateCStreamSize_usingCParams(ZSTD_compressionParameters cParams);
    +size_t ZSTD_estimateCStreamSize_usingCCtxParams(const ZSTD_CCtx_params* params);
    +size_t ZSTD_estimateDStreamSize(size_t windowSize);
    +size_t ZSTD_estimateDStreamSize_fromFrame(const void* src, size_t srcSize);
    +

    ZSTD_estimateCStreamSize() will provide a budget large enough for any compression level up to selected one. + It will also consider src size to be arbitrarily "large", which is worst case. + If srcSize is known to always be small, ZSTD_estimateCStreamSize_usingCParams() can provide a tighter estimation. + ZSTD_estimateCStreamSize_usingCParams() can be used in tandem with ZSTD_getCParams() to create cParams from compressionLevel. + ZSTD_estimateCStreamSize_usingCCtxParams() can be used in tandem with ZSTD_CCtxParams_setParameter(). Only single-threaded compression is supported. This function will return an error code if ZSTD_c_nbWorkers is >= 1. + Note : CStream size estimation is only correct for single-threaded compression. + ZSTD_DStream memory budget depends on window Size. + This information can be passed manually, using ZSTD_estimateDStreamSize, + or deducted from a valid frame Header, using ZSTD_estimateDStreamSize_fromFrame(); + Note : if streaming is init with function ZSTD_init?Stream_usingDict(), + an internal ?Dict will be created, which additional size is not estimated here. + In this case, get total size by adding ZSTD_estimate?DictSize +


    + +
    size_t ZSTD_estimateCDictSize(size_t dictSize, int compressionLevel);
    +size_t ZSTD_estimateCDictSize_advanced(size_t dictSize, ZSTD_compressionParameters cParams, ZSTD_dictLoadMethod_e dictLoadMethod);
    +size_t ZSTD_estimateDDictSize(size_t dictSize, ZSTD_dictLoadMethod_e dictLoadMethod);
    +

    ZSTD_estimateCDictSize() will bet that src size is relatively "small", and content is copied, like ZSTD_createCDict(). + ZSTD_estimateCDictSize_advanced() makes it possible to control compression parameters precisely, like ZSTD_createCDict_advanced(). + Note : dictionaries created by reference (`ZSTD_dlm_byRef`) are logically smaller. + +


    + +
    ZSTD_CCtx*    ZSTD_initStaticCCtx(void* workspace, size_t workspaceSize);
    +ZSTD_CStream* ZSTD_initStaticCStream(void* workspace, size_t workspaceSize);    /**< same as ZSTD_initStaticCCtx() */
    +

    Initialize an object using a pre-allocated fixed-size buffer. + workspace: The memory area to emplace the object into. + Provided pointer *must be 8-bytes aligned*. + Buffer must outlive object. + workspaceSize: Use ZSTD_estimate*Size() to determine + how large workspace must be to support target scenario. + @return : pointer to object (same address as workspace, just different type), + or NULL if error (size too small, incorrect alignment, etc.) + Note : zstd will never resize nor malloc() when using a static buffer. + If the object requires more memory than available, + zstd will just error out (typically ZSTD_error_memory_allocation). + Note 2 : there is no corresponding "free" function. + Since workspace is allocated externally, it must be freed externally too. + Note 3 : cParams : use ZSTD_getCParams() to convert a compression level + into its associated cParams. + Limitation 1 : currently not compatible with internal dictionary creation, triggered by + ZSTD_CCtx_loadDictionary(), ZSTD_initCStream_usingDict() or ZSTD_initDStream_usingDict(). + Limitation 2 : static cctx currently not compatible with multi-threading. + Limitation 3 : static dctx is incompatible with legacy support. + +


    + +
    ZSTD_DStream* ZSTD_initStaticDStream(void* workspace, size_t workspaceSize);    /**< same as ZSTD_initStaticDCtx() */
    +

    +
    typedef void* (*ZSTD_allocFunction) (void* opaque, size_t size);
    +typedef void  (*ZSTD_freeFunction) (void* opaque, void* address);
    +typedef struct { ZSTD_allocFunction customAlloc; ZSTD_freeFunction customFree; void* opaque; } ZSTD_customMem;
    +static
    +#ifdef __GNUC__
    +__attribute__((__unused__))
    +#endif
    +ZSTD_customMem const ZSTD_defaultCMem = { NULL, NULL, NULL };  /**< this constant defers to stdlib's functions */
    +

    These prototypes make it possible to pass your own allocation/free functions. + ZSTD_customMem is provided at creation time, using ZSTD_create*_advanced() variants listed below. + All allocation/free operations will be completed using these custom variants instead of regular ones. + +


    + +

    Advanced compression functions

    
    +
    +
    ZSTD_CDict* ZSTD_createCDict_byReference(const void* dictBuffer, size_t dictSize, int compressionLevel);
    +

    Create a digested dictionary for compression + Dictionary content is just referenced, not duplicated. + As a consequence, `dictBuffer` **must** outlive CDict, + and its content must remain unmodified throughout the lifetime of CDict. + note: equivalent to ZSTD_createCDict_advanced(), with dictLoadMethod==ZSTD_dlm_byRef +


    + +
    ZSTD_compressionParameters ZSTD_getCParams(int compressionLevel, unsigned long long estimatedSrcSize, size_t dictSize);
    +

    @return ZSTD_compressionParameters structure for a selected compression level and estimated srcSize. + `estimatedSrcSize` value is optional, select 0 if not known +


    + +
    ZSTD_parameters ZSTD_getParams(int compressionLevel, unsigned long long estimatedSrcSize, size_t dictSize);
    +

    same as ZSTD_getCParams(), but @return a full `ZSTD_parameters` object instead of sub-component `ZSTD_compressionParameters`. + All fields of `ZSTD_frameParameters` are set to default : contentSize=1, checksum=0, noDictID=0 +


    + +
    size_t ZSTD_checkCParams(ZSTD_compressionParameters params);
    +

    Ensure param values remain within authorized range. + @return 0 on success, or an error code (can be checked with ZSTD_isError()) +


    + +
    ZSTD_compressionParameters ZSTD_adjustCParams(ZSTD_compressionParameters cPar, unsigned long long srcSize, size_t dictSize);
    +

    optimize params for a given `srcSize` and `dictSize`. + `srcSize` can be unknown, in which case use ZSTD_CONTENTSIZE_UNKNOWN. + `dictSize` must be `0` when there is no dictionary. + cPar can be invalid : all parameters will be clamped within valid range in the @return struct. + This function never fails (wide contract) +


    + +
    ZSTD_DEPRECATED("use ZSTD_compress2")
    +size_t ZSTD_compress_advanced(ZSTD_CCtx* cctx,
    +                              void* dst, size_t dstCapacity,
    +                        const void* src, size_t srcSize,
    +                        const void* dict,size_t dictSize,
    +                              ZSTD_parameters params);
    +

    Note : this function is now DEPRECATED. + It can be replaced by ZSTD_compress2(), in combination with ZSTD_CCtx_setParameter() and other parameter setters. + This prototype will generate compilation warnings. +


    + +
    ZSTD_DEPRECATED("use ZSTD_compress2 with ZSTD_CCtx_loadDictionary")
    +size_t ZSTD_compress_usingCDict_advanced(ZSTD_CCtx* cctx,
    +                                  void* dst, size_t dstCapacity,
    +                            const void* src, size_t srcSize,
    +                            const ZSTD_CDict* cdict,
    +                                  ZSTD_frameParameters fParams);
    +

    Note : this function is now DEPRECATED. + It can be replaced by ZSTD_compress2(), in combination with ZSTD_CCtx_loadDictionary() and other parameter setters. + This prototype will generate compilation warnings. +


    + +
    size_t ZSTD_CCtx_loadDictionary_byReference(ZSTD_CCtx* cctx, const void* dict, size_t dictSize);
    +

    Same as ZSTD_CCtx_loadDictionary(), but dictionary content is referenced, instead of being copied into CCtx. + It saves some memory, but also requires that `dict` outlives its usage within `cctx` +


    + +
    size_t ZSTD_CCtx_loadDictionary_advanced(ZSTD_CCtx* cctx, const void* dict, size_t dictSize, ZSTD_dictLoadMethod_e dictLoadMethod, ZSTD_dictContentType_e dictContentType);
    +

    Same as ZSTD_CCtx_loadDictionary(), but gives finer control over + how to load the dictionary (by copy ? by reference ?) + and how to interpret it (automatic ? force raw mode ? full mode only ?) +


    + +
    size_t ZSTD_CCtx_refPrefix_advanced(ZSTD_CCtx* cctx, const void* prefix, size_t prefixSize, ZSTD_dictContentType_e dictContentType);
    +

    Same as ZSTD_CCtx_refPrefix(), but gives finer control over + how to interpret prefix content (automatic ? force raw mode (default) ? full mode only ?) +


    + +
    size_t ZSTD_CCtx_getParameter(const ZSTD_CCtx* cctx, ZSTD_cParameter param, int* value);
    +

    Get the requested compression parameter value, selected by enum ZSTD_cParameter, + and store it into int* value. + @return : 0, or an error code (which can be tested with ZSTD_isError()). + +


    + +
    ZSTD_CCtx_params* ZSTD_createCCtxParams(void);
    +size_t ZSTD_freeCCtxParams(ZSTD_CCtx_params* params);  /* accept NULL pointer */
    +

    Quick howto : + - ZSTD_createCCtxParams() : Create a ZSTD_CCtx_params structure + - ZSTD_CCtxParams_setParameter() : Push parameters one by one into + an existing ZSTD_CCtx_params structure. + This is similar to + ZSTD_CCtx_setParameter(). + - ZSTD_CCtx_setParametersUsingCCtxParams() : Apply parameters to + an existing CCtx. + These parameters will be applied to + all subsequent frames. + - ZSTD_compressStream2() : Do compression using the CCtx. + - ZSTD_freeCCtxParams() : Free the memory, accept NULL pointer. + + This can be used with ZSTD_estimateCCtxSize_advanced_usingCCtxParams() + for static allocation of CCtx for single-threaded compression. + +


    + +
    size_t ZSTD_CCtxParams_reset(ZSTD_CCtx_params* params);
    +

    Reset params to default values. + +


    + +
    size_t ZSTD_CCtxParams_init(ZSTD_CCtx_params* cctxParams, int compressionLevel);
    +

    Initializes the compression parameters of cctxParams according to + compression level. All other parameters are reset to their default values. + +


    + +
    size_t ZSTD_CCtxParams_init_advanced(ZSTD_CCtx_params* cctxParams, ZSTD_parameters params);
    +

    Initializes the compression and frame parameters of cctxParams according to + params. All other parameters are reset to their default values. + +


    + +
    size_t ZSTD_CCtxParams_setParameter(ZSTD_CCtx_params* params, ZSTD_cParameter param, int value);
    +

    Similar to ZSTD_CCtx_setParameter. + Set one compression parameter, selected by enum ZSTD_cParameter. + Parameters must be applied to a ZSTD_CCtx using + ZSTD_CCtx_setParametersUsingCCtxParams(). + @result : a code representing success or failure (which can be tested with + ZSTD_isError()). + +


    + +
    size_t ZSTD_CCtxParams_getParameter(const ZSTD_CCtx_params* params, ZSTD_cParameter param, int* value);
    +

    Similar to ZSTD_CCtx_getParameter. + Get the requested value of one compression parameter, selected by enum ZSTD_cParameter. + @result : 0, or an error code (which can be tested with ZSTD_isError()). + +


    + +
    size_t ZSTD_CCtx_setParametersUsingCCtxParams(
    +        ZSTD_CCtx* cctx, const ZSTD_CCtx_params* params);
    +

    Apply a set of ZSTD_CCtx_params to the compression context. + This can be done even after compression is started, + if nbWorkers==0, this will have no impact until a new compression is started. + if nbWorkers>=1, new parameters will be picked up at next job, + with a few restrictions (windowLog, pledgedSrcSize, nbWorkers, jobSize, and overlapLog are not updated). + +


    + +
    size_t ZSTD_compressStream2_simpleArgs (
    +                ZSTD_CCtx* cctx,
    +                void* dst, size_t dstCapacity, size_t* dstPos,
    +          const void* src, size_t srcSize, size_t* srcPos,
    +                ZSTD_EndDirective endOp);
    +

    Same as ZSTD_compressStream2(), + but using only integral types as arguments. + This variant might be helpful for binders from dynamic languages + which have troubles handling structures containing memory pointers. + +


    + +

    Advanced decompression functions

    
    +
    +
    unsigned ZSTD_isFrame(const void* buffer, size_t size);
    +

    Tells if the content of `buffer` starts with a valid Frame Identifier. + Note : Frame Identifier is 4 bytes. If `size < 4`, @return will always be 0. + Note 2 : Legacy Frame Identifiers are considered valid only if Legacy Support is enabled. + Note 3 : Skippable Frame Identifiers are considered valid. +


    + +
    ZSTD_DDict* ZSTD_createDDict_byReference(const void* dictBuffer, size_t dictSize);
    +

    Create a digested dictionary, ready to start decompression operation without startup delay. + Dictionary content is referenced, and therefore stays in dictBuffer. + It is important that dictBuffer outlives DDict, + it must remain read accessible throughout the lifetime of DDict +


    + +
    size_t ZSTD_DCtx_loadDictionary_byReference(ZSTD_DCtx* dctx, const void* dict, size_t dictSize);
    +

    Same as ZSTD_DCtx_loadDictionary(), + but references `dict` content instead of copying it into `dctx`. + This saves memory if `dict` remains around., + However, it's imperative that `dict` remains accessible (and unmodified) while being used, so it must outlive decompression. +


    + +
    size_t ZSTD_DCtx_loadDictionary_advanced(ZSTD_DCtx* dctx, const void* dict, size_t dictSize, ZSTD_dictLoadMethod_e dictLoadMethod, ZSTD_dictContentType_e dictContentType);
    +

    Same as ZSTD_DCtx_loadDictionary(), + but gives direct control over + how to load the dictionary (by copy ? by reference ?) + and how to interpret it (automatic ? force raw mode ? full mode only ?). +


    + +
    size_t ZSTD_DCtx_refPrefix_advanced(ZSTD_DCtx* dctx, const void* prefix, size_t prefixSize, ZSTD_dictContentType_e dictContentType);
    +

    Same as ZSTD_DCtx_refPrefix(), but gives finer control over + how to interpret prefix content (automatic ? force raw mode (default) ? full mode only ?) +


    + +
    size_t ZSTD_DCtx_setMaxWindowSize(ZSTD_DCtx* dctx, size_t maxWindowSize);
    +

    Refuses allocating internal buffers for frames requiring a window size larger than provided limit. + This protects a decoder context from reserving too much memory for itself (potential attack scenario). + This parameter is only useful in streaming mode, since no internal buffer is allocated in single-pass mode. + By default, a decompression context accepts all window sizes <= (1 << ZSTD_WINDOWLOG_LIMIT_DEFAULT) + @return : 0, or an error code (which can be tested using ZSTD_isError()). + +


    + +
    size_t ZSTD_DCtx_getParameter(ZSTD_DCtx* dctx, ZSTD_dParameter param, int* value);
    +

    Get the requested decompression parameter value, selected by enum ZSTD_dParameter, + and store it into int* value. + @return : 0, or an error code (which can be tested with ZSTD_isError()). + +


    + +
    ZSTD_DEPRECATED("use ZSTD_DCtx_setParameter() instead")
    +size_t ZSTD_DCtx_setFormat(ZSTD_DCtx* dctx, ZSTD_format_e format);
    +

    This function is REDUNDANT. Prefer ZSTD_DCtx_setParameter(). + Instruct the decoder context about what kind of data to decode next. + This instruction is mandatory to decode data without a fully-formed header, + such ZSTD_f_zstd1_magicless for example. + @return : 0, or an error code (which can be tested using ZSTD_isError()). +


    + +
    size_t ZSTD_decompressStream_simpleArgs (
    +                ZSTD_DCtx* dctx,
    +                void* dst, size_t dstCapacity, size_t* dstPos,
    +          const void* src, size_t srcSize, size_t* srcPos);
    +

    Same as ZSTD_decompressStream(), + but using only integral types as arguments. + This can be helpful for binders from dynamic languages + which have troubles handling structures containing memory pointers. + +


    + +

    Advanced streaming functions

      Warning : most of these functions are now redundant with the Advanced API.
    +  Once Advanced API reaches "stable" status,
    +  redundant functions will be deprecated, and then at some point removed.
    +
    + +

    Advanced Streaming compression functions


    +
    ZSTD_DEPRECATED("use ZSTD_CCtx_reset, see zstd.h for detailed instructions")
    +size_t ZSTD_initCStream_srcSize(ZSTD_CStream* zcs,
    +             int compressionLevel,
    +             unsigned long long pledgedSrcSize);
    +

    This function is DEPRECATED, and equivalent to: + ZSTD_CCtx_reset(zcs, ZSTD_reset_session_only); + ZSTD_CCtx_refCDict(zcs, NULL); // clear the dictionary (if any) + ZSTD_CCtx_setParameter(zcs, ZSTD_c_compressionLevel, compressionLevel); + ZSTD_CCtx_setPledgedSrcSize(zcs, pledgedSrcSize); + + pledgedSrcSize must be correct. If it is not known at init time, use + ZSTD_CONTENTSIZE_UNKNOWN. Note that, for compatibility with older programs, + "0" also disables frame content size field. It may be enabled in the future. + This prototype will generate compilation warnings. + +


    + +
    ZSTD_DEPRECATED("use ZSTD_CCtx_reset, see zstd.h for detailed instructions")
    +size_t ZSTD_initCStream_usingDict(ZSTD_CStream* zcs,
    +         const void* dict, size_t dictSize,
    +               int compressionLevel);
    +

    This function is DEPRECATED, and is equivalent to: + ZSTD_CCtx_reset(zcs, ZSTD_reset_session_only); + ZSTD_CCtx_setParameter(zcs, ZSTD_c_compressionLevel, compressionLevel); + ZSTD_CCtx_loadDictionary(zcs, dict, dictSize); + + Creates of an internal CDict (incompatible with static CCtx), except if + dict == NULL or dictSize < 8, in which case no dict is used. + Note: dict is loaded with ZSTD_dct_auto (treated as a full zstd dictionary if + it begins with ZSTD_MAGIC_DICTIONARY, else as raw content) and ZSTD_dlm_byCopy. + This prototype will generate compilation warnings. + +


    + +
    ZSTD_DEPRECATED("use ZSTD_CCtx_reset, see zstd.h for detailed instructions")
    +size_t ZSTD_initCStream_advanced(ZSTD_CStream* zcs,
    +        const void* dict, size_t dictSize,
    +              ZSTD_parameters params,
    +              unsigned long long pledgedSrcSize);
    +

    This function is DEPRECATED, and is approximately equivalent to: + ZSTD_CCtx_reset(zcs, ZSTD_reset_session_only); + // Pseudocode: Set each zstd parameter and leave the rest as-is. + for ((param, value) : params) { + ZSTD_CCtx_setParameter(zcs, param, value); + } + ZSTD_CCtx_setPledgedSrcSize(zcs, pledgedSrcSize); + ZSTD_CCtx_loadDictionary(zcs, dict, dictSize); + + dict is loaded with ZSTD_dct_auto and ZSTD_dlm_byCopy. + pledgedSrcSize must be correct. + If srcSize is not known at init time, use value ZSTD_CONTENTSIZE_UNKNOWN. + This prototype will generate compilation warnings. + +


    + +
    ZSTD_DEPRECATED("use ZSTD_CCtx_reset and ZSTD_CCtx_refCDict, see zstd.h for detailed instructions")
    +size_t ZSTD_initCStream_usingCDict(ZSTD_CStream* zcs, const ZSTD_CDict* cdict);
    +

    This function is DEPRECATED, and equivalent to: + ZSTD_CCtx_reset(zcs, ZSTD_reset_session_only); + ZSTD_CCtx_refCDict(zcs, cdict); + + note : cdict will just be referenced, and must outlive compression session + This prototype will generate compilation warnings. + +


    + +
    ZSTD_DEPRECATED("use ZSTD_CCtx_reset and ZSTD_CCtx_refCDict, see zstd.h for detailed instructions")
    +size_t ZSTD_initCStream_usingCDict_advanced(ZSTD_CStream* zcs,
    +                   const ZSTD_CDict* cdict,
    +                         ZSTD_frameParameters fParams,
    +                         unsigned long long pledgedSrcSize);
    +

    This function is DEPRECATED, and is approximately equivalent to: + ZSTD_CCtx_reset(zcs, ZSTD_reset_session_only); + // Pseudocode: Set each zstd frame parameter and leave the rest as-is. + for ((fParam, value) : fParams) { + ZSTD_CCtx_setParameter(zcs, fParam, value); + } + ZSTD_CCtx_setPledgedSrcSize(zcs, pledgedSrcSize); + ZSTD_CCtx_refCDict(zcs, cdict); + + same as ZSTD_initCStream_usingCDict(), with control over frame parameters. + pledgedSrcSize must be correct. If srcSize is not known at init time, use + value ZSTD_CONTENTSIZE_UNKNOWN. + This prototype will generate compilation warnings. + +


    + +
    ZSTD_DEPRECATED("use ZSTD_CCtx_reset, see zstd.h for detailed instructions")
    +size_t ZSTD_resetCStream(ZSTD_CStream* zcs, unsigned long long pledgedSrcSize);
    +

    This function is DEPRECATED, and is equivalent to: + ZSTD_CCtx_reset(zcs, ZSTD_reset_session_only); + ZSTD_CCtx_setPledgedSrcSize(zcs, pledgedSrcSize); + Note: ZSTD_resetCStream() interprets pledgedSrcSize == 0 as ZSTD_CONTENTSIZE_UNKNOWN, but + ZSTD_CCtx_setPledgedSrcSize() does not do the same, so ZSTD_CONTENTSIZE_UNKNOWN must be + explicitly specified. + + start a new frame, using same parameters from previous frame. + This is typically useful to skip dictionary loading stage, since it will re-use it in-place. + Note that zcs must be init at least once before using ZSTD_resetCStream(). + If pledgedSrcSize is not known at reset time, use macro ZSTD_CONTENTSIZE_UNKNOWN. + If pledgedSrcSize > 0, its value must be correct, as it will be written in header, and controlled at the end. + For the time being, pledgedSrcSize==0 is interpreted as "srcSize unknown" for compatibility with older programs, + but it will change to mean "empty" in future version, so use macro ZSTD_CONTENTSIZE_UNKNOWN instead. + @return : 0, or an error code (which can be tested using ZSTD_isError()) + This prototype will generate compilation warnings. + +


    + +
    typedef struct {
    +    unsigned long long ingested;   /* nb input bytes read and buffered */
    +    unsigned long long consumed;   /* nb input bytes actually compressed */
    +    unsigned long long produced;   /* nb of compressed bytes generated and buffered */
    +    unsigned long long flushed;    /* nb of compressed bytes flushed : not provided; can be tracked from caller side */
    +    unsigned currentJobID;         /* MT only : latest started job nb */
    +    unsigned nbActiveWorkers;      /* MT only : nb of workers actively compressing at probe time */
    +} ZSTD_frameProgression;
    +

    +
    size_t ZSTD_toFlushNow(ZSTD_CCtx* cctx);
    +

    Tell how many bytes are ready to be flushed immediately. + Useful for multithreading scenarios (nbWorkers >= 1). + Probe the oldest active job, defined as oldest job not yet entirely flushed, + and check its output buffer. + @return : amount of data stored in oldest job and ready to be flushed immediately. + if @return == 0, it means either : + + there is no active job (could be checked with ZSTD_frameProgression()), or + + oldest job is still actively compressing data, + but everything it has produced has also been flushed so far, + therefore flush speed is limited by production speed of oldest job + irrespective of the speed of concurrent (and newer) jobs. + +


    + +

    Advanced Streaming decompression functions


    +
    size_t ZSTD_initDStream_usingDict(ZSTD_DStream* zds, const void* dict, size_t dictSize);
    +

    + ZSTD_DCtx_reset(zds, ZSTD_reset_session_only); + ZSTD_DCtx_loadDictionary(zds, dict, dictSize); + + note: no dictionary will be used if dict == NULL or dictSize < 8 + Note : this prototype will be marked as deprecated and generate compilation warnings on reaching v1.5.x + +


    + +
    size_t ZSTD_initDStream_usingDDict(ZSTD_DStream* zds, const ZSTD_DDict* ddict);
    +

    + ZSTD_DCtx_reset(zds, ZSTD_reset_session_only); + ZSTD_DCtx_refDDict(zds, ddict); + + note : ddict is referenced, it must outlive decompression session + Note : this prototype will be marked as deprecated and generate compilation warnings on reaching v1.5.x + +


    + +
    size_t ZSTD_resetDStream(ZSTD_DStream* zds);
    +

    + ZSTD_DCtx_reset(zds, ZSTD_reset_session_only); + + re-use decompression parameters from previous init; saves dictionary loading + Note : this prototype will be marked as deprecated and generate compilation warnings on reaching v1.5.x + +


    + +

    Buffer-less and synchronous inner streaming functions

    +  This is an advanced API, giving full control over buffer management, for users which need direct control over memory.
    +  But it's also a complex one, with several restrictions, documented below.
    +  Prefer normal streaming API for an easier experience.
    + 
    +
    + +

    Buffer-less streaming compression (synchronous mode)

    +  A ZSTD_CCtx object is required to track streaming operations.
    +  Use ZSTD_createCCtx() / ZSTD_freeCCtx() to manage resource.
    +  ZSTD_CCtx object can be re-used multiple times within successive compression operations.
    +
    +  Start by initializing a context.
    +  Use ZSTD_compressBegin(), or ZSTD_compressBegin_usingDict() for dictionary compression.
    +  It's also possible to duplicate a reference context which has already been initialized, using ZSTD_copyCCtx()
    +
    +  Then, consume your input using ZSTD_compressContinue().
    +  There are some important considerations to keep in mind when using this advanced function :
    +  - ZSTD_compressContinue() has no internal buffer. It uses externally provided buffers only.
    +  - Interface is synchronous : input is consumed entirely and produces 1+ compressed blocks.
    +  - Caller must ensure there is enough space in `dst` to store compressed data under worst case scenario.
    +    Worst case evaluation is provided by ZSTD_compressBound().
    +    ZSTD_compressContinue() doesn't guarantee recover after a failed compression.
    +  - ZSTD_compressContinue() presumes prior input ***is still accessible and unmodified*** (up to maximum distance size, see WindowLog).
    +    It remembers all previous contiguous blocks, plus one separated memory segment (which can itself consists of multiple contiguous blocks)
    +  - ZSTD_compressContinue() detects that prior input has been overwritten when `src` buffer overlaps.
    +    In which case, it will "discard" the relevant memory section from its history.
    +
    +  Finish a frame with ZSTD_compressEnd(), which will write the last block(s) and optional checksum.
    +  It's possible to use srcSize==0, in which case, it will write a final empty block to end the frame.
    +  Without last block mark, frames are considered unfinished (hence corrupted) by compliant decoders.
    +
    +  `ZSTD_CCtx` object can be re-used (ZSTD_compressBegin()) to compress again.
    +
    + +

    Buffer-less streaming compression functions

    size_t ZSTD_compressBegin(ZSTD_CCtx* cctx, int compressionLevel);
    +size_t ZSTD_compressBegin_usingDict(ZSTD_CCtx* cctx, const void* dict, size_t dictSize, int compressionLevel);
    +size_t ZSTD_compressBegin_usingCDict(ZSTD_CCtx* cctx, const ZSTD_CDict* cdict); /**< note: fails if cdict==NULL */
    +size_t ZSTD_copyCCtx(ZSTD_CCtx* cctx, const ZSTD_CCtx* preparedCCtx, unsigned long long pledgedSrcSize); /**<  note: if pledgedSrcSize is not known, use ZSTD_CONTENTSIZE_UNKNOWN */
    +

    +
    size_t ZSTD_compressBegin_advanced(ZSTD_CCtx* cctx, const void* dict, size_t dictSize, ZSTD_parameters params, unsigned long long pledgedSrcSize); /**< pledgedSrcSize : If srcSize is not known at init time, use ZSTD_CONTENTSIZE_UNKNOWN */
    +

    +

    Buffer-less streaming decompression (synchronous mode)

    +  A ZSTD_DCtx object is required to track streaming operations.
    +  Use ZSTD_createDCtx() / ZSTD_freeDCtx() to manage it.
    +  A ZSTD_DCtx object can be re-used multiple times.
    +
    +  First typical operation is to retrieve frame parameters, using ZSTD_getFrameHeader().
    +  Frame header is extracted from the beginning of compressed frame, so providing only the frame's beginning is enough.
    +  Data fragment must be large enough to ensure successful decoding.
    + `ZSTD_frameHeaderSize_max` bytes is guaranteed to always be large enough.
    +  @result : 0 : successful decoding, the `ZSTD_frameHeader` structure is correctly filled.
    +           >0 : `srcSize` is too small, please provide at least @result bytes on next attempt.
    +           errorCode, which can be tested using ZSTD_isError().
    +
    +  It fills a ZSTD_frameHeader structure with important information to correctly decode the frame,
    +  such as the dictionary ID, content size, or maximum back-reference distance (`windowSize`).
    +  Note that these values could be wrong, either because of data corruption, or because a 3rd party deliberately spoofs false information.
    +  As a consequence, check that values remain within valid application range.
    +  For example, do not allocate memory blindly, check that `windowSize` is within expectation.
    +  Each application can set its own limits, depending on local restrictions.
    +  For extended interoperability, it is recommended to support `windowSize` of at least 8 MB.
    +
    +  ZSTD_decompressContinue() needs previous data blocks during decompression, up to `windowSize` bytes.
    +  ZSTD_decompressContinue() is very sensitive to contiguity,
    +  if 2 blocks don't follow each other, make sure that either the compressor breaks contiguity at the same place,
    +  or that previous contiguous segment is large enough to properly handle maximum back-reference distance.
    +  There are multiple ways to guarantee this condition.
    +
    +  The most memory efficient way is to use a round buffer of sufficient size.
    +  Sufficient size is determined by invoking ZSTD_decodingBufferSize_min(),
    +  which can @return an error code if required value is too large for current system (in 32-bits mode).
    +  In a round buffer methodology, ZSTD_decompressContinue() decompresses each block next to previous one,
    +  up to the moment there is not enough room left in the buffer to guarantee decoding another full block,
    +  which maximum size is provided in `ZSTD_frameHeader` structure, field `blockSizeMax`.
    +  At which point, decoding can resume from the beginning of the buffer.
    +  Note that already decoded data stored in the buffer should be flushed before being overwritten.
    +
    +  There are alternatives possible, for example using two or more buffers of size `windowSize` each, though they consume more memory.
    +
    +  Finally, if you control the compression process, you can also ignore all buffer size rules,
    +  as long as the encoder and decoder progress in "lock-step",
    +  aka use exactly the same buffer sizes, break contiguity at the same place, etc.
    +
    +  Once buffers are setup, start decompression, with ZSTD_decompressBegin().
    +  If decompression requires a dictionary, use ZSTD_decompressBegin_usingDict() or ZSTD_decompressBegin_usingDDict().
    +
    +  Then use ZSTD_nextSrcSizeToDecompress() and ZSTD_decompressContinue() alternatively.
    +  ZSTD_nextSrcSizeToDecompress() tells how many bytes to provide as 'srcSize' to ZSTD_decompressContinue().
    +  ZSTD_decompressContinue() requires this _exact_ amount of bytes, or it will fail.
    +
    + @result of ZSTD_decompressContinue() is the number of bytes regenerated within 'dst' (necessarily <= dstCapacity).
    +  It can be zero : it just means ZSTD_decompressContinue() has decoded some metadata item.
    +  It can also be an error code, which can be tested with ZSTD_isError().
    +
    +  A frame is fully decoded when ZSTD_nextSrcSizeToDecompress() returns zero.
    +  Context can then be reset to start a new decompression.
    +
    +  Note : it's possible to know if next input to present is a header or a block, using ZSTD_nextInputType().
    +  This information is not required to properly decode a frame.
    +
    +  == Special case : skippable frames 
    +
    +  Skippable frames allow integration of user-defined data into a flow of concatenated frames.
    +  Skippable frames will be ignored (skipped) by decompressor.
    +  The format of skippable frames is as follows :
    +  a) Skippable frame ID - 4 Bytes, Little endian format, any value from 0x184D2A50 to 0x184D2A5F
    +  b) Frame Size - 4 Bytes, Little endian format, unsigned 32-bits
    +  c) Frame Content - any content (User Data) of length equal to Frame Size
    +  For skippable frames ZSTD_getFrameHeader() returns zfhPtr->frameType==ZSTD_skippableFrame.
    +  For skippable frames ZSTD_decompressContinue() always returns 0 : it only skips the content.
    +
    + +

    Buffer-less streaming decompression functions

    typedef enum { ZSTD_frame, ZSTD_skippableFrame } ZSTD_frameType_e;
    +typedef struct {
    +    unsigned long long frameContentSize; /* if == ZSTD_CONTENTSIZE_UNKNOWN, it means this field is not available. 0 means "empty" */
    +    unsigned long long windowSize;       /* can be very large, up to <= frameContentSize */
    +    unsigned blockSizeMax;
    +    ZSTD_frameType_e frameType;          /* if == ZSTD_skippableFrame, frameContentSize is the size of skippable content */
    +    unsigned headerSize;
    +    unsigned dictID;
    +    unsigned checksumFlag;
    +} ZSTD_frameHeader;
    +

    +
    size_t ZSTD_getFrameHeader(ZSTD_frameHeader* zfhPtr, const void* src, size_t srcSize);   /**< doesn't consume input */
    +/*! ZSTD_getFrameHeader_advanced() :
    + *  same as ZSTD_getFrameHeader(),
    + *  with added capability to select a format (like ZSTD_f_zstd1_magicless) */
    +size_t ZSTD_getFrameHeader_advanced(ZSTD_frameHeader* zfhPtr, const void* src, size_t srcSize, ZSTD_format_e format);
    +size_t ZSTD_decodingBufferSize_min(unsigned long long windowSize, unsigned long long frameContentSize);  /**< when frame content size is not known, pass in frameContentSize == ZSTD_CONTENTSIZE_UNKNOWN */
    +

    decode Frame Header, or requires larger `srcSize`. + @return : 0, `zfhPtr` is correctly filled, + >0, `srcSize` is too small, value is wanted `srcSize` amount, + or an error code, which can be tested using ZSTD_isError() +


    + +
    typedef enum { ZSTDnit_frameHeader, ZSTDnit_blockHeader, ZSTDnit_block, ZSTDnit_lastBlock, ZSTDnit_checksum, ZSTDnit_skippableFrame } ZSTD_nextInputType_e;
    +

    +

    Block level API

    
    +
    +

    Frame metadata cost is typically ~12 bytes, which can be non-negligible for very small blocks (< 100 bytes). + But users will have to take in charge needed metadata to regenerate data, such as compressed and content sizes. + + A few rules to respect : + - Compressing and decompressing require a context structure + + Use ZSTD_createCCtx() and ZSTD_createDCtx() + - It is necessary to init context before starting + + compression : any ZSTD_compressBegin*() variant, including with dictionary + + decompression : any ZSTD_decompressBegin*() variant, including with dictionary + + copyCCtx() and copyDCtx() can be used too + - Block size is limited, it must be <= ZSTD_getBlockSize() <= ZSTD_BLOCKSIZE_MAX == 128 KB + + If input is larger than a block size, it's necessary to split input data into multiple blocks + + For inputs larger than a single block, consider using regular ZSTD_compress() instead. + Frame metadata is not that costly, and quickly becomes negligible as source size grows larger than a block. + - When a block is considered not compressible enough, ZSTD_compressBlock() result will be 0 (zero) ! + ===> In which case, nothing is produced into `dst` ! + + User __must__ test for such outcome and deal directly with uncompressed data + + A block cannot be declared incompressible if ZSTD_compressBlock() return value was != 0. + Doing so would mess up with statistics history, leading to potential data corruption. + + ZSTD_decompressBlock() _doesn't accept uncompressed data as input_ !! + + In case of multiple successive blocks, should some of them be uncompressed, + decoder must be informed of their existence in order to follow proper history. + Use ZSTD_insertBlock() for such a case. +


    + +

    Raw zstd block functions

    size_t ZSTD_getBlockSize   (const ZSTD_CCtx* cctx);
    +size_t ZSTD_compressBlock  (ZSTD_CCtx* cctx, void* dst, size_t dstCapacity, const void* src, size_t srcSize);
    +size_t ZSTD_decompressBlock(ZSTD_DCtx* dctx, void* dst, size_t dstCapacity, const void* src, size_t srcSize);
    +size_t ZSTD_insertBlock    (ZSTD_DCtx* dctx, const void* blockStart, size_t blockSize);  /**< insert uncompressed block into `dctx` history. Useful for multi-blocks decompression. */
    +

    + + diff --git a/dependencies/zstd-1.5.0/examples/.gitignore b/dependencies/zstd-1.5.0/examples/.gitignore new file mode 100644 index 0000000..d682cae --- /dev/null +++ b/dependencies/zstd-1.5.0/examples/.gitignore @@ -0,0 +1,15 @@ +#build +simple_compression +simple_decompression +multiple_simple_compression +dictionary_compression +dictionary_decompression +streaming_compression +streaming_decompression +multiple_streaming_compression +streaming_memory_usage + +#test artefact +tmp* +test* +*.zst diff --git a/dependencies/zstd-1.5.0/examples/Makefile b/dependencies/zstd-1.5.0/examples/Makefile new file mode 100644 index 0000000..8d7361d --- /dev/null +++ b/dependencies/zstd-1.5.0/examples/Makefile @@ -0,0 +1,93 @@ +# ################################################################ +# Copyright (c) Yann Collet, Facebook, Inc. +# All rights reserved. +# +# This source code is licensed under both the BSD-style license (found in the +# LICENSE file in the root directory of this source tree) and the GPLv2 (found +# in the COPYING file in the root directory of this source tree). +# You may select, at your option, one of the above-listed licenses. +# ################################################################ + +LIBDIR =../lib +CPPFLAGS += -I$(LIBDIR) +LIB = $(LIBDIR)/libzstd.a + + +.PHONY: default +default: all + +.PHONY: all +all: simple_compression simple_decompression \ + multiple_simple_compression\ + dictionary_compression dictionary_decompression \ + streaming_compression streaming_decompression \ + multiple_streaming_compression streaming_memory_usage + +$(LIB) : + $(MAKE) -C $(LIBDIR) libzstd.a + +simple_compression.o: common.h +simple_compression : $(LIB) + +simple_decompression.o: common.h +simple_decompression : $(LIB) + +multiple_simple_compression.o: common.h +multiple_simple_compression : $(LIB) + +dictionary_compression.o: common.h +dictionary_compression : $(LIB) + +dictionary_decompression.o: common.h +dictionary_decompression : $(LIB) + +streaming_compression.o: common.h +streaming_compression : $(LIB) + +multiple_streaming_compression.o: common.h +multiple_streaming_compression : $(LIB) + +streaming_decompression.o: common.h +streaming_decompression : $(LIB) + +streaming_memory_usage.o: common.h +streaming_memory_usage : $(LIB) + + +.PHONY:clean +clean: + @$(RM) core *.o tmp* result* *.zst \ + simple_compression simple_decompression \ + multiple_simple_compression \ + dictionary_compression dictionary_decompression \ + streaming_compression streaming_decompression \ + multiple_streaming_compression streaming_memory_usage + @echo Cleaning completed + +.PHONY:test +test: all + cp README.md tmp + cp Makefile tmp2 + @echo -- Simple compression tests + ./simple_compression tmp + ./simple_decompression tmp.zst + ./multiple_simple_compression *.c + ./streaming_decompression tmp.zst > /dev/null + @echo -- Streaming memory usage + ./streaming_memory_usage + @echo -- Streaming compression tests + ./streaming_compression tmp + ./streaming_decompression tmp.zst > /dev/null + @echo -- Edge cases detection + ! ./streaming_decompression tmp # invalid input, must fail + ! ./simple_decompression tmp # invalid input, must fail + touch tmpNull # create 0-size file + ./simple_compression tmpNull + ./simple_decompression tmpNull.zst # 0-size frame : must work + @echo -- Multiple streaming tests + ./multiple_streaming_compression *.c + @echo -- Dictionary compression tests + ./dictionary_compression tmp2 tmp README.md + ./dictionary_decompression tmp2.zst tmp.zst README.md + $(RM) tmp* *.zst + @echo tests completed diff --git a/dependencies/zstd-1.5.0/examples/README.md b/dependencies/zstd-1.5.0/examples/README.md new file mode 100644 index 0000000..0bff7ac --- /dev/null +++ b/dependencies/zstd-1.5.0/examples/README.md @@ -0,0 +1,46 @@ +Zstandard library : usage examples +================================== + +- [Simple compression](simple_compression.c) : + Compress a single file. + Introduces usage of : `ZSTD_compress()` + +- [Simple decompression](simple_decompression.c) : + Decompress a single file. + Only compatible with simple compression. + Result remains in memory. + Introduces usage of : `ZSTD_decompress()` + +- [Multiple simple compression](multiple_simple_compression.c) : + Compress multiple files (in simple mode) in a single command line. + Demonstrates memory preservation technique that + minimizes malloc()/free() calls by re-using existing resources. + Introduces usage of : `ZSTD_compressCCtx()` + +- [Streaming memory usage](streaming_memory_usage.c) : + Provides amount of memory used by streaming context. + Introduces usage of : `ZSTD_sizeof_CStream()` + +- [Streaming compression](streaming_compression.c) : + Compress a single file. + Introduces usage of : `ZSTD_compressStream()` + +- [Multiple Streaming compression](multiple_streaming_compression.c) : + Compress multiple files (in streaming mode) in a single command line. + Introduces memory usage preservation technique, + reducing impact of malloc()/free() and memset() by re-using existing resources. + +- [Streaming decompression](streaming_decompression.c) : + Decompress a single file compressed by zstd. + Compatible with both simple and streaming compression. + Result is sent to stdout. + Introduces usage of : `ZSTD_decompressStream()` + +- [Dictionary compression](dictionary_compression.c) : + Compress multiple files using the same dictionary. + Introduces usage of : `ZSTD_createCDict()` and `ZSTD_compress_usingCDict()` + +- [Dictionary decompression](dictionary_decompression.c) : + Decompress multiple files using the same dictionary. + Result remains in memory. + Introduces usage of : `ZSTD_createDDict()` and `ZSTD_decompress_usingDDict()` diff --git a/dependencies/zstd-1.5.0/examples/common.h b/dependencies/zstd-1.5.0/examples/common.h new file mode 100644 index 0000000..181f6b3 --- /dev/null +++ b/dependencies/zstd-1.5.0/examples/common.h @@ -0,0 +1,234 @@ +/* + * Copyright (c) Yann Collet, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + +/* + * This header file has common utility functions used in examples. + */ +#ifndef COMMON_H +#define COMMON_H + +#include // malloc, free, exit +#include // fprintf, perror, fopen, etc. +#include // strerror +#include // errno +#include // stat +#include + +/* + * Define the returned error code from utility functions. + */ +typedef enum { + ERROR_fsize = 1, + ERROR_fopen = 2, + ERROR_fclose = 3, + ERROR_fread = 4, + ERROR_fwrite = 5, + ERROR_loadFile = 6, + ERROR_saveFile = 7, + ERROR_malloc = 8, + ERROR_largeFile = 9, +} COMMON_ErrorCode; + +/*! CHECK + * Check that the condition holds. If it doesn't print a message and die. + */ +#define CHECK(cond, ...) \ + do { \ + if (!(cond)) { \ + fprintf(stderr, \ + "%s:%d CHECK(%s) failed: ", \ + __FILE__, \ + __LINE__, \ + #cond); \ + fprintf(stderr, "" __VA_ARGS__); \ + fprintf(stderr, "\n"); \ + exit(1); \ + } \ + } while (0) + +/*! CHECK_ZSTD + * Check the zstd error code and die if an error occurred after printing a + * message. + */ +#define CHECK_ZSTD(fn, ...) \ + do { \ + size_t const err = (fn); \ + CHECK(!ZSTD_isError(err), "%s", ZSTD_getErrorName(err)); \ + } while (0) + +/*! fsize_orDie() : + * Get the size of a given file path. + * + * @return The size of a given file path. + */ +static size_t fsize_orDie(const char *filename) +{ + struct stat st; + if (stat(filename, &st) != 0) { + /* error */ + perror(filename); + exit(ERROR_fsize); + } + + off_t const fileSize = st.st_size; + size_t const size = (size_t)fileSize; + /* 1. fileSize should be non-negative, + * 2. if off_t -> size_t type conversion results in discrepancy, + * the file size is too large for type size_t. + */ + if ((fileSize < 0) || (fileSize != (off_t)size)) { + fprintf(stderr, "%s : filesize too large \n", filename); + exit(ERROR_largeFile); + } + return size; +} + +/*! fopen_orDie() : + * Open a file using given file path and open option. + * + * @return If successful this function will return a FILE pointer to an + * opened file otherwise it sends an error to stderr and exits. + */ +static FILE* fopen_orDie(const char *filename, const char *instruction) +{ + FILE* const inFile = fopen(filename, instruction); + if (inFile) return inFile; + /* error */ + perror(filename); + exit(ERROR_fopen); +} + +/*! fclose_orDie() : + * Close an opened file using given FILE pointer. + */ +static void fclose_orDie(FILE* file) +{ + if (!fclose(file)) { return; }; + /* error */ + perror("fclose"); + exit(ERROR_fclose); +} + +/*! fread_orDie() : + * + * Read sizeToRead bytes from a given file, storing them at the + * location given by buffer. + * + * @return The number of bytes read. + */ +static size_t fread_orDie(void* buffer, size_t sizeToRead, FILE* file) +{ + size_t const readSize = fread(buffer, 1, sizeToRead, file); + if (readSize == sizeToRead) return readSize; /* good */ + if (feof(file)) return readSize; /* good, reached end of file */ + /* error */ + perror("fread"); + exit(ERROR_fread); +} + +/*! fwrite_orDie() : + * + * Write sizeToWrite bytes to a file pointed to by file, obtaining + * them from a location given by buffer. + * + * Note: This function will send an error to stderr and exit if it + * cannot write data to the given file pointer. + * + * @return The number of bytes written. + */ +static size_t fwrite_orDie(const void* buffer, size_t sizeToWrite, FILE* file) +{ + size_t const writtenSize = fwrite(buffer, 1, sizeToWrite, file); + if (writtenSize == sizeToWrite) return sizeToWrite; /* good */ + /* error */ + perror("fwrite"); + exit(ERROR_fwrite); +} + +/*! malloc_orDie() : + * Allocate memory. + * + * @return If successful this function returns a pointer to allo- + * cated memory. If there is an error, this function will send that + * error to stderr and exit. + */ +static void* malloc_orDie(size_t size) +{ + void* const buff = malloc(size); + if (buff) return buff; + /* error */ + perror("malloc"); + exit(ERROR_malloc); +} + +/*! loadFile_orDie() : + * load file into buffer (memory). + * + * Note: This function will send an error to stderr and exit if it + * cannot read data from the given file path. + * + * @return If successful this function will load file into buffer and + * return file size, otherwise it will printout an error to stderr and exit. + */ +static size_t loadFile_orDie(const char* fileName, void* buffer, size_t bufferSize) +{ + size_t const fileSize = fsize_orDie(fileName); + CHECK(fileSize <= bufferSize, "File too large!"); + + FILE* const inFile = fopen_orDie(fileName, "rb"); + size_t const readSize = fread(buffer, 1, fileSize, inFile); + if (readSize != (size_t)fileSize) { + fprintf(stderr, "fread: %s : %s \n", fileName, strerror(errno)); + exit(ERROR_fread); + } + fclose(inFile); /* can't fail, read only */ + return fileSize; +} + +/*! mallocAndLoadFile_orDie() : + * allocate memory buffer and then load file into it. + * + * Note: This function will send an error to stderr and exit if memory allocation + * fails or it cannot read data from the given file path. + * + * @return If successful this function will return buffer and bufferSize(=fileSize), + * otherwise it will printout an error to stderr and exit. + */ +static void* mallocAndLoadFile_orDie(const char* fileName, size_t* bufferSize) { + size_t const fileSize = fsize_orDie(fileName); + *bufferSize = fileSize; + void* const buffer = malloc_orDie(*bufferSize); + loadFile_orDie(fileName, buffer, *bufferSize); + return buffer; +} + +/*! saveFile_orDie() : + * + * Save buffSize bytes to a given file path, obtaining them from a location pointed + * to by buff. + * + * Note: This function will send an error to stderr and exit if it + * cannot write to a given file. + */ +static void saveFile_orDie(const char* fileName, const void* buff, size_t buffSize) +{ + FILE* const oFile = fopen_orDie(fileName, "wb"); + size_t const wSize = fwrite(buff, 1, buffSize, oFile); + if (wSize != (size_t)buffSize) { + fprintf(stderr, "fwrite: %s : %s \n", fileName, strerror(errno)); + exit(ERROR_fwrite); + } + if (fclose(oFile)) { + perror(fileName); + exit(ERROR_fclose); + } +} + +#endif diff --git a/dependencies/zstd-1.5.0/examples/dictionary_compression.c b/dependencies/zstd-1.5.0/examples/dictionary_compression.c new file mode 100644 index 0000000..0eee650 --- /dev/null +++ b/dependencies/zstd-1.5.0/examples/dictionary_compression.c @@ -0,0 +1,97 @@ +/* + * Copyright (c) Yann Collet, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ +#include // printf +#include // free +#include // memset, strcat +#include // presumes zstd library is installed +#include "common.h" // Helper functions, CHECK(), and CHECK_ZSTD() + +/* createDict() : + `dictFileName` is supposed to have been created using `zstd --train` */ +static ZSTD_CDict* createCDict_orDie(const char* dictFileName, int cLevel) +{ + size_t dictSize; + printf("loading dictionary %s \n", dictFileName); + void* const dictBuffer = mallocAndLoadFile_orDie(dictFileName, &dictSize); + ZSTD_CDict* const cdict = ZSTD_createCDict(dictBuffer, dictSize, cLevel); + CHECK(cdict != NULL, "ZSTD_createCDict() failed!"); + free(dictBuffer); + return cdict; +} + + +static void compress(const char* fname, const char* oname, const ZSTD_CDict* cdict) +{ + size_t fSize; + void* const fBuff = mallocAndLoadFile_orDie(fname, &fSize); + size_t const cBuffSize = ZSTD_compressBound(fSize); + void* const cBuff = malloc_orDie(cBuffSize); + + /* Compress using the dictionary. + * This function writes the dictionary id, and content size into the header. + * But, it doesn't use a checksum. You can control these options using the + * advanced API: ZSTD_CCtx_setParameter(), ZSTD_CCtx_refCDict(), + * and ZSTD_compress2(). + */ + ZSTD_CCtx* const cctx = ZSTD_createCCtx(); + CHECK(cctx != NULL, "ZSTD_createCCtx() failed!"); + size_t const cSize = ZSTD_compress_usingCDict(cctx, cBuff, cBuffSize, fBuff, fSize, cdict); + CHECK_ZSTD(cSize); + + saveFile_orDie(oname, cBuff, cSize); + + /* success */ + printf("%25s : %6u -> %7u - %s \n", fname, (unsigned)fSize, (unsigned)cSize, oname); + + ZSTD_freeCCtx(cctx); /* never fails */ + free(fBuff); + free(cBuff); +} + + +static char* createOutFilename_orDie(const char* filename) +{ + size_t const inL = strlen(filename); + size_t const outL = inL + 5; + void* outSpace = malloc_orDie(outL); + memset(outSpace, 0, outL); + strcat(outSpace, filename); + strcat(outSpace, ".zst"); + return (char*)outSpace; +} + +int main(int argc, const char** argv) +{ + const char* const exeName = argv[0]; + int const cLevel = 3; + + if (argc<3) { + fprintf(stderr, "wrong arguments\n"); + fprintf(stderr, "usage:\n"); + fprintf(stderr, "%s [FILES] dictionary\n", exeName); + return 1; + } + + /* load dictionary only once */ + const char* const dictName = argv[argc-1]; + ZSTD_CDict* const dictPtr = createCDict_orDie(dictName, cLevel); + + int u; + for (u=1; u // printf +#include // free +#include // presumes zstd library is installed +#include "common.h" // Helper functions, CHECK(), and CHECK_ZSTD() + +/* createDict() : + `dictFileName` is supposed to have been created using `zstd --train` */ +static ZSTD_DDict* createDict_orDie(const char* dictFileName) +{ + size_t dictSize; + printf("loading dictionary %s \n", dictFileName); + void* const dictBuffer = mallocAndLoadFile_orDie(dictFileName, &dictSize); + ZSTD_DDict* const ddict = ZSTD_createDDict(dictBuffer, dictSize); + CHECK(ddict != NULL, "ZSTD_createDDict() failed!"); + free(dictBuffer); + return ddict; +} + +static void decompress(const char* fname, const ZSTD_DDict* ddict) +{ + size_t cSize; + void* const cBuff = mallocAndLoadFile_orDie(fname, &cSize); + /* Read the content size from the frame header. For simplicity we require + * that it is always present. By default, zstd will write the content size + * in the header when it is known. If you can't guarantee that the frame + * content size is always written into the header, either use streaming + * decompression, or ZSTD_decompressBound(). + */ + unsigned long long const rSize = ZSTD_getFrameContentSize(cBuff, cSize); + CHECK(rSize != ZSTD_CONTENTSIZE_ERROR, "%s: not compressed by zstd!", fname); + CHECK(rSize != ZSTD_CONTENTSIZE_UNKNOWN, "%s: original size unknown!", fname); + void* const rBuff = malloc_orDie((size_t)rSize); + + /* Check that the dictionary ID matches. + * If a non-zstd dictionary is used, then both will be zero. + * By default zstd always writes the dictionary ID into the frame. + * Zstd will check if there is a dictionary ID mismatch as well. + */ + unsigned const expectedDictID = ZSTD_getDictID_fromDDict(ddict); + unsigned const actualDictID = ZSTD_getDictID_fromFrame(cBuff, cSize); + CHECK(actualDictID == expectedDictID, + "DictID mismatch: expected %u got %u", + expectedDictID, + actualDictID); + + /* Decompress using the dictionary. + * If you need to control the decompression parameters, then use the + * advanced API: ZSTD_DCtx_setParameter(), ZSTD_DCtx_refDDict(), and + * ZSTD_decompressDCtx(). + */ + ZSTD_DCtx* const dctx = ZSTD_createDCtx(); + CHECK(dctx != NULL, "ZSTD_createDCtx() failed!"); + size_t const dSize = ZSTD_decompress_usingDDict(dctx, rBuff, rSize, cBuff, cSize, ddict); + CHECK_ZSTD(dSize); + /* When zstd knows the content size, it will error if it doesn't match. */ + CHECK(dSize == rSize, "Impossible because zstd will check this condition!"); + + /* success */ + printf("%25s : %6u -> %7u \n", fname, (unsigned)cSize, (unsigned)rSize); + + ZSTD_freeDCtx(dctx); + free(rBuff); + free(cBuff); +} + + +int main(int argc, const char** argv) +{ + const char* const exeName = argv[0]; + + if (argc<3) { + printf("wrong arguments\n"); + printf("usage:\n"); + printf("%s [FILES] dictionary\n", exeName); + return 1; + } + + /* load dictionary only once */ + const char* const dictName = argv[argc-1]; + ZSTD_DDict* const dictPtr = createDict_orDie(dictName); + + int u; + for (u=1; u // printf +#include // free +#include // memcpy, strlen +#include // presumes zstd library is installed +#include "common.h" // Helper functions, CHECK(), and CHECK_ZSTD() + +typedef struct { + void* fBuffer; + void* cBuffer; + size_t fBufferSize; + size_t cBufferSize; + ZSTD_CCtx* cctx; +} resources; + +/* + * allocate memory for buffers big enough to compress all files + * as well as memory for output file name (ofn) + */ +static resources createResources_orDie(int argc, const char** argv, char **ofn, size_t* ofnBufferLen) +{ + size_t maxFilenameLength=0; + size_t maxFileSize = 0; + + int argNb; + for (argNb = 1; argNb < argc; argNb++) { + const char* const filename = argv[argNb]; + size_t const filenameLength = strlen(filename); + size_t const fileSize = fsize_orDie(filename); + + if (filenameLength > maxFilenameLength) maxFilenameLength = filenameLength; + if (fileSize > maxFileSize) maxFileSize = fileSize; + } + + resources ress; + ress.fBufferSize = maxFileSize; + ress.cBufferSize = ZSTD_compressBound(maxFileSize); + + *ofnBufferLen = maxFilenameLength + 5; + *ofn = (char*)malloc_orDie(*ofnBufferLen); + ress.fBuffer = malloc_orDie(ress.fBufferSize); + ress.cBuffer = malloc_orDie(ress.cBufferSize); + ress.cctx = ZSTD_createCCtx(); + CHECK(ress.cctx != NULL, "ZSTD_createCCtx() failed!"); + return ress; +} + +static void freeResources(resources ress, char *outFilename) +{ + free(ress.fBuffer); + free(ress.cBuffer); + ZSTD_freeCCtx(ress.cctx); /* never fails */ + free(outFilename); +} + +/* compress with pre-allocated context (ZSTD_CCtx) and input/output buffers*/ +static void compressFile_orDie(resources ress, const char* fname, const char* oname) +{ + size_t fSize = loadFile_orDie(fname, ress.fBuffer, ress.fBufferSize); + + /* Compress using the context. + * If you need more control over parameters, use the advanced API: + * ZSTD_CCtx_setParameter(), and ZSTD_compress2(). + */ + size_t const cSize = ZSTD_compressCCtx(ress.cctx, ress.cBuffer, ress.cBufferSize, ress.fBuffer, fSize, 1); + CHECK_ZSTD(cSize); + + saveFile_orDie(oname, ress.cBuffer, cSize); + + /* success */ + printf("%25s : %6u -> %7u - %s \n", fname, (unsigned)fSize, (unsigned)cSize, oname); +} + +int main(int argc, const char** argv) +{ + const char* const exeName = argv[0]; + + if (argc<2) { + printf("wrong arguments\n"); + printf("usage:\n"); + printf("%s FILE(s)\n", exeName); + return 1; + } + + /* memory allocation for outFilename and resources */ + char* outFilename; + size_t outFilenameBufferLen; + resources const ress = createResources_orDie(argc, argv, &outFilename, &outFilenameBufferLen); + + /* compress files with shared context, input and output buffers */ + int argNb; + for (argNb = 1; argNb < argc; argNb++) { + const char* const inFilename = argv[argNb]; + size_t const inFilenameLen = strlen(inFilename); + CHECK(inFilenameLen + 5 <= outFilenameBufferLen, "File name too long!"); + memcpy(outFilename, inFilename, inFilenameLen); + memcpy(outFilename+inFilenameLen, ".zst", 5); + compressFile_orDie(ress, inFilename, outFilename); + } + + /* free memory */ + freeResources(ress,outFilename); + + printf("compressed %i files \n", argc-1); + + return 0; +} diff --git a/dependencies/zstd-1.5.0/examples/multiple_streaming_compression.c b/dependencies/zstd-1.5.0/examples/multiple_streaming_compression.c new file mode 100644 index 0000000..d4efc8e --- /dev/null +++ b/dependencies/zstd-1.5.0/examples/multiple_streaming_compression.c @@ -0,0 +1,133 @@ +/* + * Copyright (c) Yann Collet, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + + +/* The objective of this example is to show of to compress multiple successive files +* while preserving memory management. +* All structures and buffers will be created only once, +* and shared across all compression operations */ + +#include // printf +#include // free +#include // memset, strcat +#include // presumes zstd library is installed +#include "common.h" // Helper functions, CHECK(), and CHECK_ZSTD() + +typedef struct { + void* buffIn; + void* buffOut; + size_t buffInSize; + size_t buffOutSize; + ZSTD_CCtx* cctx; +} resources; + +static resources createResources_orDie(int cLevel) +{ + resources ress; + ress.buffInSize = ZSTD_CStreamInSize(); /* can always read one full block */ + ress.buffOutSize= ZSTD_CStreamOutSize(); /* can always flush a full block */ + ress.buffIn = malloc_orDie(ress.buffInSize); + ress.buffOut= malloc_orDie(ress.buffOutSize); + ress.cctx = ZSTD_createCCtx(); + CHECK(ress.cctx != NULL, "ZSTD_createCCtx() failed!"); + + /* Set any compression parameters you want here. + * They will persist for every compression operation. + * Here we set the compression level, and enable the checksum. + */ + CHECK_ZSTD( ZSTD_CCtx_setParameter(ress.cctx, ZSTD_c_compressionLevel, cLevel) ); + CHECK_ZSTD( ZSTD_CCtx_setParameter(ress.cctx, ZSTD_c_checksumFlag, 1) ); + return ress; +} + +static void freeResources(resources ress) +{ + ZSTD_freeCCtx(ress.cctx); + free(ress.buffIn); + free(ress.buffOut); +} + +static void compressFile_orDie(resources ress, const char* fname, const char* outName) +{ + // Open the input and output files. + FILE* const fin = fopen_orDie(fname, "rb"); + FILE* const fout = fopen_orDie(outName, "wb"); + + /* Reset the context to a clean state to start a new compression operation. + * The parameters are sticky, so we keep the compression level and extra + * parameters that we set in createResources_orDie(). + */ + CHECK_ZSTD( ZSTD_CCtx_reset(ress.cctx, ZSTD_reset_session_only) ); + + size_t const toRead = ress.buffInSize; + size_t read; + while ( (read = fread_orDie(ress.buffIn, toRead, fin)) ) { + /* This loop is the same as streaming_compression.c. + * See that file for detailed comments. + */ + int const lastChunk = (read < toRead); + ZSTD_EndDirective const mode = lastChunk ? ZSTD_e_end : ZSTD_e_continue; + + ZSTD_inBuffer input = { ress.buffIn, read, 0 }; + int finished; + do { + ZSTD_outBuffer output = { ress.buffOut, ress.buffOutSize, 0 }; + size_t const remaining = ZSTD_compressStream2(ress.cctx, &output, &input, mode); + CHECK_ZSTD(remaining); + fwrite_orDie(ress.buffOut, output.pos, fout); + finished = lastChunk ? (remaining == 0) : (input.pos == input.size); + } while (!finished); + CHECK(input.pos == input.size, + "Impossible: zstd only returns 0 when the input is completely consumed!"); + } + + fclose_orDie(fout); + fclose_orDie(fin); +} + +int main(int argc, const char** argv) +{ + const char* const exeName = argv[0]; + + if (argc<2) { + printf("wrong arguments\n"); + printf("usage:\n"); + printf("%s FILE(s)\n", exeName); + return 1; + } + + int const cLevel = 7; + resources const ress = createResources_orDie(cLevel); + void* ofnBuffer = NULL; + size_t ofnbSize = 0; + + int argNb; + for (argNb = 1; argNb < argc; argNb++) { + const char* const ifn = argv[argNb]; + size_t const ifnSize = strlen(ifn); + size_t const ofnSize = ifnSize + 5; + if (ofnbSize <= ofnSize) { + ofnbSize = ofnSize + 16; + free(ofnBuffer); + ofnBuffer = malloc_orDie(ofnbSize); + } + memset(ofnBuffer, 0, ofnSize); + strcat(ofnBuffer, ifn); + strcat(ofnBuffer, ".zst"); + compressFile_orDie(ress, ifn, ofnBuffer); + } + + freeResources(ress); + free(ofnBuffer); + + printf("compressed %i files \n", argc-1); + + return 0; +} diff --git a/dependencies/zstd-1.5.0/examples/simple_compression.c b/dependencies/zstd-1.5.0/examples/simple_compression.c new file mode 100644 index 0000000..27a65b1 --- /dev/null +++ b/dependencies/zstd-1.5.0/examples/simple_compression.c @@ -0,0 +1,68 @@ +/* + * Copyright (c) Yann Collet, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + +#include // printf +#include // free +#include // strlen, strcat, memset +#include // presumes zstd library is installed +#include "common.h" // Helper functions, CHECK(), and CHECK_ZSTD() + +static void compress_orDie(const char* fname, const char* oname) +{ + size_t fSize; + void* const fBuff = mallocAndLoadFile_orDie(fname, &fSize); + size_t const cBuffSize = ZSTD_compressBound(fSize); + void* const cBuff = malloc_orDie(cBuffSize); + + /* Compress. + * If you are doing many compressions, you may want to reuse the context. + * See the multiple_simple_compression.c example. + */ + size_t const cSize = ZSTD_compress(cBuff, cBuffSize, fBuff, fSize, 1); + CHECK_ZSTD(cSize); + + saveFile_orDie(oname, cBuff, cSize); + + /* success */ + printf("%25s : %6u -> %7u - %s \n", fname, (unsigned)fSize, (unsigned)cSize, oname); + + free(fBuff); + free(cBuff); +} + +static char* createOutFilename_orDie(const char* filename) +{ + size_t const inL = strlen(filename); + size_t const outL = inL + 5; + void* const outSpace = malloc_orDie(outL); + memset(outSpace, 0, outL); + strcat(outSpace, filename); + strcat(outSpace, ".zst"); + return (char*)outSpace; +} + +int main(int argc, const char** argv) +{ + const char* const exeName = argv[0]; + + if (argc!=2) { + printf("wrong arguments\n"); + printf("usage:\n"); + printf("%s FILE\n", exeName); + return 1; + } + + const char* const inFilename = argv[1]; + + char* const outFilename = createOutFilename_orDie(inFilename); + compress_orDie(inFilename, outFilename); + free(outFilename); + return 0; +} diff --git a/dependencies/zstd-1.5.0/examples/simple_decompression.c b/dependencies/zstd-1.5.0/examples/simple_decompression.c new file mode 100644 index 0000000..59c1fd4 --- /dev/null +++ b/dependencies/zstd-1.5.0/examples/simple_decompression.c @@ -0,0 +1,65 @@ +/* + * Copyright (c) Yann Collet, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + +#include // printf +#include // free +#include // presumes zstd library is installed +#include "common.h" // Helper functions, CHECK(), and CHECK_ZSTD() + +static void decompress(const char* fname) +{ + size_t cSize; + void* const cBuff = mallocAndLoadFile_orDie(fname, &cSize); + /* Read the content size from the frame header. For simplicity we require + * that it is always present. By default, zstd will write the content size + * in the header when it is known. If you can't guarantee that the frame + * content size is always written into the header, either use streaming + * decompression, or ZSTD_decompressBound(). + */ + unsigned long long const rSize = ZSTD_getFrameContentSize(cBuff, cSize); + CHECK(rSize != ZSTD_CONTENTSIZE_ERROR, "%s: not compressed by zstd!", fname); + CHECK(rSize != ZSTD_CONTENTSIZE_UNKNOWN, "%s: original size unknown!", fname); + + void* const rBuff = malloc_orDie((size_t)rSize); + + /* Decompress. + * If you are doing many decompressions, you may want to reuse the context + * and use ZSTD_decompressDCtx(). If you want to set advanced parameters, + * use ZSTD_DCtx_setParameter(). + */ + size_t const dSize = ZSTD_decompress(rBuff, rSize, cBuff, cSize); + CHECK_ZSTD(dSize); + /* When zstd knows the content size, it will error if it doesn't match. */ + CHECK(dSize == rSize, "Impossible because zstd will check this condition!"); + + /* success */ + printf("%25s : %6u -> %7u \n", fname, (unsigned)cSize, (unsigned)rSize); + + free(rBuff); + free(cBuff); +} + +int main(int argc, const char** argv) +{ + const char* const exeName = argv[0]; + + if (argc!=2) { + printf("wrong arguments\n"); + printf("usage:\n"); + printf("%s FILE\n", exeName); + return 1; + } + + decompress(argv[1]); + + printf("%s correctly decoded (in memory). \n", argv[1]); + + return 0; +} diff --git a/dependencies/zstd-1.5.0/examples/streaming_compression.c b/dependencies/zstd-1.5.0/examples/streaming_compression.c new file mode 100644 index 0000000..e20bcde --- /dev/null +++ b/dependencies/zstd-1.5.0/examples/streaming_compression.c @@ -0,0 +1,124 @@ +/* + * Copyright (c) Yann Collet, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + + +#include // printf +#include // free +#include // memset, strcat, strlen +#include // presumes zstd library is installed +#include "common.h" // Helper functions, CHECK(), and CHECK_ZSTD() + + +static void compressFile_orDie(const char* fname, const char* outName, int cLevel) +{ + /* Open the input and output files. */ + FILE* const fin = fopen_orDie(fname, "rb"); + FILE* const fout = fopen_orDie(outName, "wb"); + /* Create the input and output buffers. + * They may be any size, but we recommend using these functions to size them. + * Performance will only suffer significantly for very tiny buffers. + */ + size_t const buffInSize = ZSTD_CStreamInSize(); + void* const buffIn = malloc_orDie(buffInSize); + size_t const buffOutSize = ZSTD_CStreamOutSize(); + void* const buffOut = malloc_orDie(buffOutSize); + + /* Create the context. */ + ZSTD_CCtx* const cctx = ZSTD_createCCtx(); + CHECK(cctx != NULL, "ZSTD_createCCtx() failed!"); + + /* Set any parameters you want. + * Here we set the compression level, and enable the checksum. + */ + CHECK_ZSTD( ZSTD_CCtx_setParameter(cctx, ZSTD_c_compressionLevel, cLevel) ); + CHECK_ZSTD( ZSTD_CCtx_setParameter(cctx, ZSTD_c_checksumFlag, 1) ); + ZSTD_CCtx_setParameter(cctx, ZSTD_c_nbWorkers, 4); + + /* This loop read from the input file, compresses that entire chunk, + * and writes all output produced to the output file. + */ + size_t const toRead = buffInSize; + for (;;) { + size_t read = fread_orDie(buffIn, toRead, fin); + /* Select the flush mode. + * If the read may not be finished (read == toRead) we use + * ZSTD_e_continue. If this is the last chunk, we use ZSTD_e_end. + * Zstd optimizes the case where the first flush mode is ZSTD_e_end, + * since it knows it is compressing the entire source in one pass. + */ + int const lastChunk = (read < toRead); + ZSTD_EndDirective const mode = lastChunk ? ZSTD_e_end : ZSTD_e_continue; + /* Set the input buffer to what we just read. + * We compress until the input buffer is empty, each time flushing the + * output. + */ + ZSTD_inBuffer input = { buffIn, read, 0 }; + int finished; + do { + /* Compress into the output buffer and write all of the output to + * the file so we can reuse the buffer next iteration. + */ + ZSTD_outBuffer output = { buffOut, buffOutSize, 0 }; + size_t const remaining = ZSTD_compressStream2(cctx, &output , &input, mode); + CHECK_ZSTD(remaining); + fwrite_orDie(buffOut, output.pos, fout); + /* If we're on the last chunk we're finished when zstd returns 0, + * which means its consumed all the input AND finished the frame. + * Otherwise, we're finished when we've consumed all the input. + */ + finished = lastChunk ? (remaining == 0) : (input.pos == input.size); + } while (!finished); + CHECK(input.pos == input.size, + "Impossible: zstd only returns 0 when the input is completely consumed!"); + + if (lastChunk) { + break; + } + } + + ZSTD_freeCCtx(cctx); + fclose_orDie(fout); + fclose_orDie(fin); + free(buffIn); + free(buffOut); +} + + +static char* createOutFilename_orDie(const char* filename) +{ + size_t const inL = strlen(filename); + size_t const outL = inL + 5; + void* const outSpace = malloc_orDie(outL); + memset(outSpace, 0, outL); + strcat(outSpace, filename); + strcat(outSpace, ".zst"); + return (char*)outSpace; +} + +int main(int argc, const char** argv) +{ + const char* const exeName = argv[0]; + + if (argc!=2) { + printf("wrong arguments\n"); + printf("usage:\n"); + printf("%s FILE\n", exeName); + return 1; + } + + const char* const inFilename = argv[1]; + + char* const outFilename = createOutFilename_orDie(inFilename); + compressFile_orDie(inFilename, outFilename, 1); + + free(outFilename); /* not strictly required, since program execution stops there, + * but some static analyzer main complain otherwise */ + return 0; +} diff --git a/dependencies/zstd-1.5.0/examples/streaming_compression_thread_pool.c b/dependencies/zstd-1.5.0/examples/streaming_compression_thread_pool.c new file mode 100644 index 0000000..5a6551b --- /dev/null +++ b/dependencies/zstd-1.5.0/examples/streaming_compression_thread_pool.c @@ -0,0 +1,178 @@ +/* + * Copyright (c) Martin Liska, SUSE, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + + +#include // printf +#include // free +#include // memset, strcat, strlen +#include // presumes zstd library is installed +#include "common.h" // Helper functions, CHECK(), and CHECK_ZSTD() +#include + +typedef struct compress_args +{ + const char *fname; + char *outName; + int cLevel; +#if defined(ZSTD_STATIC_LINKING_ONLY) + ZSTD_threadPool *pool; +#endif +} compress_args_t; + +static void *compressFile_orDie(void *data) +{ + compress_args_t *args = (compress_args_t *)data; + fprintf (stderr, "Starting compression of %s with level %d\n", args->fname, args->cLevel); + /* Open the input and output files. */ + FILE* const fin = fopen_orDie(args->fname, "rb"); + FILE* const fout = fopen_orDie(args->outName, "wb"); + /* Create the input and output buffers. + * They may be any size, but we recommend using these functions to size them. + * Performance will only suffer significantly for very tiny buffers. + */ + size_t const buffInSize = ZSTD_CStreamInSize(); + void* const buffIn = malloc_orDie(buffInSize); + size_t const buffOutSize = ZSTD_CStreamOutSize(); + void* const buffOut = malloc_orDie(buffOutSize); + + /* Create the context. */ + ZSTD_CCtx* const cctx = ZSTD_createCCtx(); + CHECK(cctx != NULL, "ZSTD_createCCtx() failed!"); + +#if defined(ZSTD_STATIC_LINKING_ONLY) + size_t r = ZSTD_CCtx_refThreadPool(cctx, args->pool); + CHECK(r == 0, "ZSTD_CCtx_refThreadPool failed!"); +#endif + + /* Set any parameters you want. + * Here we set the compression level, and enable the checksum. + */ + CHECK_ZSTD( ZSTD_CCtx_setParameter(cctx, ZSTD_c_compressionLevel, args->cLevel) ); + CHECK_ZSTD( ZSTD_CCtx_setParameter(cctx, ZSTD_c_checksumFlag, 1) ); + ZSTD_CCtx_setParameter(cctx, ZSTD_c_nbWorkers, 16); + + /* This loop read from the input file, compresses that entire chunk, + * and writes all output produced to the output file. + */ + size_t const toRead = buffInSize; + for (;;) { + size_t read = fread_orDie(buffIn, toRead, fin); + /* Select the flush mode. + * If the read may not be finished (read == toRead) we use + * ZSTD_e_continue. If this is the last chunk, we use ZSTD_e_end. + * Zstd optimizes the case where the first flush mode is ZSTD_e_end, + * since it knows it is compressing the entire source in one pass. + */ + int const lastChunk = (read < toRead); + ZSTD_EndDirective const mode = lastChunk ? ZSTD_e_end : ZSTD_e_continue; + /* Set the input buffer to what we just read. + * We compress until the input buffer is empty, each time flushing the + * output. + */ + ZSTD_inBuffer input = { buffIn, read, 0 }; + int finished; + do { + /* Compress into the output buffer and write all of the output to + * the file so we can reuse the buffer next iteration. + */ + ZSTD_outBuffer output = { buffOut, buffOutSize, 0 }; + size_t const remaining = ZSTD_compressStream2(cctx, &output , &input, mode); + CHECK_ZSTD(remaining); + fwrite_orDie(buffOut, output.pos, fout); + /* If we're on the last chunk we're finished when zstd returns 0, + * which means its consumed all the input AND finished the frame. + * Otherwise, we're finished when we've consumed all the input. + */ + finished = lastChunk ? (remaining == 0) : (input.pos == input.size); + } while (!finished); + CHECK(input.pos == input.size, + "Impossible: zstd only returns 0 when the input is completely consumed!"); + + if (lastChunk) { + break; + } + } + + fprintf (stderr, "Finishing compression of %s\n", args->outName); + + ZSTD_freeCCtx(cctx); + fclose_orDie(fout); + fclose_orDie(fin); + free(buffIn); + free(buffOut); + free(args->outName); + + return NULL; +} + + +static char* createOutFilename_orDie(const char* filename) +{ + size_t const inL = strlen(filename); + size_t const outL = inL + 5; + void* const outSpace = malloc_orDie(outL); + memset(outSpace, 0, outL); + strcat(outSpace, filename); + strcat(outSpace, ".zst"); + return (char*)outSpace; +} + +int main(int argc, const char** argv) +{ + const char* const exeName = argv[0]; + + if (argc<=3) { + printf("wrong arguments\n"); + printf("usage:\n"); + printf("%s POOL_SIZE LEVEL FILES\n", exeName); + return 1; + } + + int pool_size = atoi (argv[1]); + CHECK(pool_size != 0, "can't parse POOL_SIZE!"); + + int level = atoi (argv[2]); + CHECK(level != 0, "can't parse LEVEL!"); + + argc -= 3; + argv += 3; + +#if defined(ZSTD_STATIC_LINKING_ONLY) + ZSTD_threadPool *pool = ZSTD_createThreadPool (pool_size); + CHECK(pool != NULL, "ZSTD_createThreadPool() failed!"); + fprintf (stderr, "Using shared thread pool of size %d\n", pool_size); +#else + fprintf (stderr, "All threads use its own thread pool\n"); +#endif + + pthread_t *threads = malloc_orDie(argc * sizeof(pthread_t)); + compress_args_t *args = malloc_orDie(argc * sizeof(compress_args_t)); + + for (unsigned i = 0; i < argc; i++) + { + args[i].fname = argv[i]; + args[i].outName = createOutFilename_orDie(args[i].fname); + args[i].cLevel = level; +#if defined(ZSTD_STATIC_LINKING_ONLY) + args[i].pool = pool; +#endif + + pthread_create (&threads[i], NULL, compressFile_orDie, &args[i]); + } + + for (unsigned i = 0; i < argc; i++) + pthread_join (threads[i], NULL); + +#if defined(ZSTD_STATIC_LINKING_ONLY) + ZSTD_freeThreadPool (pool); +#endif + + return 0; +} diff --git a/dependencies/zstd-1.5.0/examples/streaming_decompression.c b/dependencies/zstd-1.5.0/examples/streaming_decompression.c new file mode 100644 index 0000000..6dc4c22 --- /dev/null +++ b/dependencies/zstd-1.5.0/examples/streaming_decompression.c @@ -0,0 +1,100 @@ +/* + * Copyright (c) Yann Collet, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + + +#include // fprintf +#include // free +#include // presumes zstd library is installed +#include "common.h" // Helper functions, CHECK(), and CHECK_ZSTD() + +static void decompressFile_orDie(const char* fname) +{ + FILE* const fin = fopen_orDie(fname, "rb"); + size_t const buffInSize = ZSTD_DStreamInSize(); + void* const buffIn = malloc_orDie(buffInSize); + FILE* const fout = stdout; + size_t const buffOutSize = ZSTD_DStreamOutSize(); /* Guarantee to successfully flush at least one complete compressed block in all circumstances. */ + void* const buffOut = malloc_orDie(buffOutSize); + + ZSTD_DCtx* const dctx = ZSTD_createDCtx(); + CHECK(dctx != NULL, "ZSTD_createDCtx() failed!"); + + /* This loop assumes that the input file is one or more concatenated zstd + * streams. This example won't work if there is trailing non-zstd data at + * the end, but streaming decompression in general handles this case. + * ZSTD_decompressStream() returns 0 exactly when the frame is completed, + * and doesn't consume input after the frame. + */ + size_t const toRead = buffInSize; + size_t read; + size_t lastRet = 0; + int isEmpty = 1; + while ( (read = fread_orDie(buffIn, toRead, fin)) ) { + isEmpty = 0; + ZSTD_inBuffer input = { buffIn, read, 0 }; + /* Given a valid frame, zstd won't consume the last byte of the frame + * until it has flushed all of the decompressed data of the frame. + * Therefore, instead of checking if the return code is 0, we can + * decompress just check if input.pos < input.size. + */ + while (input.pos < input.size) { + ZSTD_outBuffer output = { buffOut, buffOutSize, 0 }; + /* The return code is zero if the frame is complete, but there may + * be multiple frames concatenated together. Zstd will automatically + * reset the context when a frame is complete. Still, calling + * ZSTD_DCtx_reset() can be useful to reset the context to a clean + * state, for instance if the last decompression call returned an + * error. + */ + size_t const ret = ZSTD_decompressStream(dctx, &output , &input); + CHECK_ZSTD(ret); + fwrite_orDie(buffOut, output.pos, fout); + lastRet = ret; + } + } + + if (isEmpty) { + fprintf(stderr, "input is empty\n"); + exit(1); + } + + if (lastRet != 0) { + /* The last return value from ZSTD_decompressStream did not end on a + * frame, but we reached the end of the file! We assume this is an + * error, and the input was truncated. + */ + fprintf(stderr, "EOF before end of stream: %zu\n", lastRet); + exit(1); + } + + ZSTD_freeDCtx(dctx); + fclose_orDie(fin); + fclose_orDie(fout); + free(buffIn); + free(buffOut); +} + + +int main(int argc, const char** argv) +{ + const char* const exeName = argv[0]; + + if (argc!=2) { + fprintf(stderr, "wrong arguments\n"); + fprintf(stderr, "usage:\n"); + fprintf(stderr, "%s FILE\n", exeName); + return 1; + } + + const char* const inFilename = argv[1]; + + decompressFile_orDie(inFilename); + return 0; +} diff --git a/dependencies/zstd-1.5.0/examples/streaming_memory_usage.c b/dependencies/zstd-1.5.0/examples/streaming_memory_usage.c new file mode 100644 index 0000000..a5219ef --- /dev/null +++ b/dependencies/zstd-1.5.0/examples/streaming_memory_usage.c @@ -0,0 +1,137 @@ +/* + * Copyright (c) Yann Collet, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + + +/*=== Tuning parameter ===*/ +#ifndef MAX_TESTED_LEVEL +#define MAX_TESTED_LEVEL 12 +#endif + + +/*=== Dependencies ===*/ +#include // printf +#define ZSTD_STATIC_LINKING_ONLY +#include // presumes zstd library is installed +#include "common.h" // Helper functions, CHECK(), and CHECK_ZSTD() + + +/*=== functions ===*/ + +/*! readU32FromChar() : + @return : unsigned integer value read from input in `char` format + allows and interprets K, KB, KiB, M, MB and MiB suffix. + Will also modify `*stringPtr`, advancing it to position where it stopped reading. + Note : function result can overflow if digit string > MAX_UINT */ +static unsigned readU32FromChar(const char** stringPtr) +{ + unsigned result = 0; + while ((**stringPtr >='0') && (**stringPtr <='9')) + result *= 10, result += **stringPtr - '0', (*stringPtr)++ ; + if ((**stringPtr=='K') || (**stringPtr=='M')) { + result <<= 10; + if (**stringPtr=='M') result <<= 10; + (*stringPtr)++ ; + if (**stringPtr=='i') (*stringPtr)++; + if (**stringPtr=='B') (*stringPtr)++; + } + return result; +} + + +int main(int argc, char const *argv[]) { + + printf("\n Zstandard (v%s) memory usage for streaming : \n\n", ZSTD_versionString()); + + unsigned wLog = 0; + if (argc > 1) { + const char* valStr = argv[1]; + wLog = readU32FromChar(&valStr); + } + + int compressionLevel; + for (compressionLevel = 1; compressionLevel <= MAX_TESTED_LEVEL; compressionLevel++) { +#define INPUT_SIZE 5 +#define COMPRESSED_SIZE 128 + char const dataToCompress[INPUT_SIZE] = "abcde"; + char compressedData[COMPRESSED_SIZE]; + char decompressedData[INPUT_SIZE]; + /* the ZSTD_CCtx_params structure is a way to save parameters and use + * them across multiple contexts. We use them here so we can call the + * function ZSTD_estimateCStreamSize_usingCCtxParams(). + */ + ZSTD_CCtx_params* const cctxParams = ZSTD_createCCtxParams(); + CHECK(cctxParams != NULL, "ZSTD_createCCtxParams() failed!"); + + /* Set the compression level. */ + CHECK_ZSTD( ZSTD_CCtxParams_setParameter(cctxParams, ZSTD_c_compressionLevel, compressionLevel) ); + /* Set the window log. + * The value 0 means use the default window log, which is equivalent to + * not setting it. + */ + CHECK_ZSTD( ZSTD_CCtxParams_setParameter(cctxParams, ZSTD_c_windowLog, wLog) ); + + /* Force the compressor to allocate the maximum memory size for a given + * level by not providing the pledged source size, or calling + * ZSTD_compressStream2() with ZSTD_e_end. + */ + ZSTD_CCtx* const cctx = ZSTD_createCCtx(); + CHECK(cctx != NULL, "ZSTD_createCCtx() failed!"); + CHECK_ZSTD( ZSTD_CCtx_setParametersUsingCCtxParams(cctx, cctxParams) ); + size_t compressedSize; + { + ZSTD_inBuffer inBuff = { dataToCompress, sizeof(dataToCompress), 0 }; + ZSTD_outBuffer outBuff = { compressedData, sizeof(compressedData), 0 }; + CHECK_ZSTD( ZSTD_compressStream(cctx, &outBuff, &inBuff) ); + size_t const remaining = ZSTD_endStream(cctx, &outBuff); + CHECK_ZSTD(remaining); + CHECK(remaining == 0, "Frame not flushed!"); + compressedSize = outBuff.pos; + } + + ZSTD_DCtx* const dctx = ZSTD_createDCtx(); + CHECK(dctx != NULL, "ZSTD_createDCtx() failed!"); + /* Set the maximum allowed window log. + * The value 0 means use the default window log, which is equivalent to + * not setting it. + */ + CHECK_ZSTD( ZSTD_DCtx_setParameter(dctx, ZSTD_d_windowLogMax, wLog) ); + /* forces decompressor to use maximum memory size, since the + * decompressed size is not stored in the frame header. + */ + { ZSTD_inBuffer inBuff = { compressedData, compressedSize, 0 }; + ZSTD_outBuffer outBuff = { decompressedData, sizeof(decompressedData), 0 }; + size_t const remaining = ZSTD_decompressStream(dctx, &outBuff, &inBuff); + CHECK_ZSTD(remaining); + CHECK(remaining == 0, "Frame not complete!"); + CHECK(outBuff.pos == sizeof(dataToCompress), "Bad decompression!"); + } + + size_t const cstreamSize = ZSTD_sizeof_CStream(cctx); + size_t const cstreamEstimatedSize = ZSTD_estimateCStreamSize_usingCCtxParams(cctxParams); + size_t const dstreamSize = ZSTD_sizeof_DStream(dctx); + size_t const dstreamEstimatedSize = ZSTD_estimateDStreamSize_fromFrame(compressedData, compressedSize); + + CHECK(cstreamSize <= cstreamEstimatedSize, "Compression mem (%u) > estimated (%u)", + (unsigned)cstreamSize, (unsigned)cstreamEstimatedSize); + CHECK(dstreamSize <= dstreamEstimatedSize, "Decompression mem (%u) > estimated (%u)", + (unsigned)dstreamSize, (unsigned)dstreamEstimatedSize); + + printf("Level %2i : Compression Mem = %5u KB (estimated : %5u KB) ; Decompression Mem = %4u KB (estimated : %5u KB)\n", + compressionLevel, + (unsigned)(cstreamSize>>10), (unsigned)(cstreamEstimatedSize>>10), + (unsigned)(dstreamSize>>10), (unsigned)(dstreamEstimatedSize>>10)); + + ZSTD_freeDCtx(dctx); + ZSTD_freeCCtx(cctx); + ZSTD_freeCCtxParams(cctxParams); + if (wLog) break; /* single test */ + } + return 0; +} diff --git a/dependencies/zstd-1.5.0/lib/.gitignore b/dependencies/zstd-1.5.0/lib/.gitignore new file mode 100644 index 0000000..4cd50ac --- /dev/null +++ b/dependencies/zstd-1.5.0/lib/.gitignore @@ -0,0 +1,3 @@ +# make install artefact +libzstd.pc +libzstd-nomt diff --git a/dependencies/zstd-1.5.0/lib/BUCK b/dependencies/zstd-1.5.0/lib/BUCK new file mode 100644 index 0000000..60c6bbb --- /dev/null +++ b/dependencies/zstd-1.5.0/lib/BUCK @@ -0,0 +1,232 @@ +cxx_library( + name='zstd', + header_namespace='', + exported_headers=['zstd.h'], + visibility=['PUBLIC'], + deps=[ + ':common', + ':compress', + ':decompress', + ':deprecated', + ], +) + +cxx_library( + name='compress', + header_namespace='', + visibility=['PUBLIC'], + exported_headers=subdir_glob([ + ('compress', 'zstd*.h'), + ]), + srcs=glob(['compress/zstd*.c', 'compress/hist.c']), + deps=[':common'], +) + +cxx_library( + name='decompress', + header_namespace='', + visibility=['PUBLIC'], + headers=subdir_glob([ + ('decompress', '*_impl.h'), + ]), + srcs=glob(['decompress/zstd*.c']), + deps=[ + ':common', + ':legacy', + ], +) + +cxx_library( + name='deprecated', + header_namespace='', + visibility=['PUBLIC'], + exported_headers=subdir_glob([ + ('deprecated', '*.h'), + ]), + srcs=glob(['deprecated/*.c']), + deps=[':common'], +) + +cxx_library( + name='legacy', + header_namespace='', + visibility=['PUBLIC'], + exported_headers=subdir_glob([ + ('legacy', '*.h'), + ]), + srcs=glob(['legacy/*.c']), + deps=[':common'], + exported_preprocessor_flags=[ + '-DZSTD_LEGACY_SUPPORT=4', + ], +) + +cxx_library( + name='zdict', + header_namespace='', + visibility=['PUBLIC'], + exported_headers=['zdict.h'], + headers=subdir_glob([ + ('dictBuilder', 'divsufsort.h'), + ('dictBuilder', 'cover.h'), + ]), + srcs=glob(['dictBuilder/*.c']), + deps=[':common'], +) + +cxx_library( + name='compiler', + header_namespace='', + visibility=['PUBLIC'], + exported_headers=subdir_glob([ + ('common', 'compiler.h'), + ]), +) + +cxx_library( + name='cpu', + header_namespace='', + visibility=['PUBLIC'], + exported_headers=subdir_glob([ + ('common', 'cpu.h'), + ]), +) + +cxx_library( + name='bitstream', + header_namespace='', + visibility=['PUBLIC'], + exported_headers=subdir_glob([ + ('common', 'bitstream.h'), + ]), +) + +cxx_library( + name='entropy', + header_namespace='', + visibility=['PUBLIC'], + exported_headers=subdir_glob([ + ('common', 'fse.h'), + ('common', 'huf.h'), + ]), + srcs=[ + 'common/entropy_common.c', + 'common/fse_decompress.c', + 'compress/fse_compress.c', + 'compress/huf_compress.c', + 'decompress/huf_decompress.c', + ], + deps=[ + ':debug', + ':bitstream', + ':compiler', + ':errors', + ':mem', + ], +) + +cxx_library( + name='errors', + header_namespace='', + visibility=['PUBLIC'], + exported_headers=[ + 'zstd_errors.h', + 'common/error_private.h', + ] + srcs=['common/error_private.c'], +) + +cxx_library( + name='mem', + header_namespace='', + visibility=['PUBLIC'], + exported_headers=subdir_glob([ + ('common', 'mem.h'), + ]), +) + +cxx_library( + name='pool', + header_namespace='', + visibility=['PUBLIC'], + exported_headers=subdir_glob([ + ('common', 'pool.h'), + ]), + srcs=['common/pool.c'], + deps=[ + ':threading', + ':zstd_common', + ], +) + +cxx_library( + name='threading', + header_namespace='', + visibility=['PUBLIC'], + exported_headers=subdir_glob([ + ('common', 'threading.h'), + ]), + srcs=['common/threading.c'], + exported_preprocessor_flags=[ + '-DZSTD_MULTITHREAD', + ], + exported_linker_flags=[ + '-pthread', + ], +) + +cxx_library( + name='xxhash', + header_namespace='', + visibility=['PUBLIC'], + exported_headers=subdir_glob([ + ('common', 'xxhash.h'), + ]), + srcs=['common/xxhash.c'], + exported_preprocessor_flags=[ + '-DXXH_NAMESPACE=ZSTD_', + ], +) + +cxx_library( + name='zstd_common', + header_namespace='', + visibility=['PUBLIC'], + exported_headers=subdir_glob([ + ('', 'zstd.h'), + ('common', 'zstd_internal.h'), + ]), + srcs=['common/zstd_common.c'], + deps=[ + ':compiler', + ':errors', + ':mem', + ], +) + +cxx_library( + name='debug', + header_namespace='', + visibility=['PUBLIC'], + exported_headers=subdir_glob([ + ('common', 'debug.h'), + ]), + srcs=['common/debug.c'], +) + +cxx_library( + name='common', + deps=[ + ':debug', + ':bitstream', + ':compiler', + ':cpu', + ':entropy', + ':errors', + ':mem', + ':pool', + ':threading', + ':xxhash', + ':zstd_common', + ] +) diff --git a/dependencies/zstd-1.5.0/lib/Makefile b/dependencies/zstd-1.5.0/lib/Makefile new file mode 100644 index 0000000..9109476 --- /dev/null +++ b/dependencies/zstd-1.5.0/lib/Makefile @@ -0,0 +1,482 @@ +# ################################################################ +# Copyright (c) Yann Collet, Facebook, Inc. +# All rights reserved. +# +# This source code is licensed under both the BSD-style license (found in the +# LICENSE file in the root directory of this source tree) and the GPLv2 (found +# in the COPYING file in the root directory of this source tree). +# You may select, at your option, one of the above-listed licenses. +# ################################################################ + +# Note: by default, the static library is built single-threaded and dynamic library is built +# multi-threaded. It is possible to force multi or single threaded builds by appending +# -mt or -nomt to the build target (like lib-mt for multi-threaded, lib-nomt for single-threaded). +.PHONY: default +default: lib-release + +# define silent mode as default (verbose mode with V=1 or VERBOSE=1) +$(V)$(VERBOSE).SILENT: + +# When cross-compiling from linux to windows, +# one might need to specify TARGET_SYSTEM as "Windows." +# Building from Fedora fails without it. +# (but Ubuntu and Debian don't need to set anything) +TARGET_SYSTEM ?= $(OS) + +# Version numbers +LIBVER_MAJOR_SCRIPT:=`sed -n '/define ZSTD_VERSION_MAJOR/s/.*[[:blank:]]\([0-9][0-9]*\).*/\1/p' < ./zstd.h` +LIBVER_MINOR_SCRIPT:=`sed -n '/define ZSTD_VERSION_MINOR/s/.*[[:blank:]]\([0-9][0-9]*\).*/\1/p' < ./zstd.h` +LIBVER_PATCH_SCRIPT:=`sed -n '/define ZSTD_VERSION_RELEASE/s/.*[[:blank:]]\([0-9][0-9]*\).*/\1/p' < ./zstd.h` +LIBVER_SCRIPT:= $(LIBVER_MAJOR_SCRIPT).$(LIBVER_MINOR_SCRIPT).$(LIBVER_PATCH_SCRIPT) +LIBVER_MAJOR := $(shell echo $(LIBVER_MAJOR_SCRIPT)) +LIBVER_MINOR := $(shell echo $(LIBVER_MINOR_SCRIPT)) +LIBVER_PATCH := $(shell echo $(LIBVER_PATCH_SCRIPT)) +LIBVER := $(shell echo $(LIBVER_SCRIPT)) +VERSION?= $(LIBVER) +CCVER := $(shell $(CC) --version) + +# ZSTD_LIB_MINIFY is a helper variable that +# configures a bunch of other variables to space-optimized defaults. +ZSTD_LIB_MINIFY ?= 0 +ifneq ($(ZSTD_LIB_MINIFY), 0) + HAVE_CC_OZ ?= $(shell echo "" | $(CC) -Oz -x c -c - -o /dev/null 2> /dev/null && echo 1 || echo 0) + ZSTD_LEGACY_SUPPORT ?= 0 + ZSTD_LIB_DEPRECATED ?= 0 + HUF_FORCE_DECOMPRESS_X1 ?= 1 + ZSTD_FORCE_DECOMPRESS_SHORT ?= 1 + ZSTD_NO_INLINE ?= 1 + ZSTD_STRIP_ERROR_STRINGS ?= 1 +ifneq ($(HAVE_CC_OZ), 0) + # Some compilers (clang) support an even more space-optimized setting. + CFLAGS += -Oz +else + CFLAGS += -Os +endif + CFLAGS += -fno-stack-protector -fomit-frame-pointer -fno-ident \ + -DDYNAMIC_BMI2=0 -DNDEBUG +else + CFLAGS += -O3 +endif + +DEBUGLEVEL ?= 0 +CPPFLAGS += -DXXH_NAMESPACE=ZSTD_ -DDEBUGLEVEL=$(DEBUGLEVEL) +ifeq ($(TARGET_SYSTEM),Windows_NT) # MinGW assumed + CPPFLAGS += -D__USE_MINGW_ANSI_STDIO # compatibility with %zu formatting +endif +DEBUGFLAGS= -Wall -Wextra -Wcast-qual -Wcast-align -Wshadow \ + -Wstrict-aliasing=1 -Wswitch-enum -Wdeclaration-after-statement \ + -Wstrict-prototypes -Wundef -Wpointer-arith \ + -Wvla -Wformat=2 -Winit-self -Wfloat-equal -Wwrite-strings \ + -Wredundant-decls -Wmissing-prototypes -Wc++-compat +CFLAGS += $(DEBUGFLAGS) $(MOREFLAGS) +FLAGS = $(CPPFLAGS) $(CFLAGS) + +CPPFLAGS_DYNLIB = -DZSTD_MULTITHREAD # dynamic library build defaults to multi-threaded +LDFLAGS_DYNLIB = -pthread +CPPFLAGS_STATLIB = # static library build defaults to single-threaded + +HAVE_COLORNEVER = $(shell echo a | grep --color=never a > /dev/null 2> /dev/null && echo 1 || echo 0) +GREP_OPTIONS ?= +ifeq ($HAVE_COLORNEVER, 1) + GREP_OPTIONS += --color=never +endif +GREP = grep $(GREP_OPTIONS) +SED_ERE_OPT ?= -E + +ZSTDCOMMON_FILES := $(sort $(wildcard common/*.c)) +ZSTDCOMP_FILES := $(sort $(wildcard compress/*.c)) +ZSTDDECOMP_FILES := $(sort $(wildcard decompress/*.c)) +ZDICT_FILES := $(sort $(wildcard dictBuilder/*.c)) +ZDEPR_FILES := $(sort $(wildcard deprecated/*.c)) +ZSTD_FILES := $(ZSTDCOMMON_FILES) + +ifeq ($(findstring GCC,$(CCVER)),GCC) +decompress/zstd_decompress_block.o : CFLAGS+=-fno-tree-vectorize +endif + +# Modules +ZSTD_LIB_COMPRESSION ?= 1 +ZSTD_LIB_DECOMPRESSION ?= 1 +ZSTD_LIB_DICTBUILDER ?= 1 +ZSTD_LIB_DEPRECATED ?= 0 + +# Legacy support +ZSTD_LEGACY_SUPPORT ?= 5 +ZSTD_LEGACY_MULTITHREADED_API ?= 0 + +# Build size optimizations +HUF_FORCE_DECOMPRESS_X1 ?= 0 +HUF_FORCE_DECOMPRESS_X2 ?= 0 +ZSTD_FORCE_DECOMPRESS_SHORT ?= 0 +ZSTD_FORCE_DECOMPRESS_LONG ?= 0 +ZSTD_NO_INLINE ?= 0 +ZSTD_STRIP_ERROR_STRINGS ?= 0 + +ifeq ($(ZSTD_LIB_COMPRESSION), 0) + ZSTD_LIB_DICTBUILDER = 0 + ZSTD_LIB_DEPRECATED = 0 +endif + +ifeq ($(ZSTD_LIB_DECOMPRESSION), 0) + ZSTD_LEGACY_SUPPORT = 0 + ZSTD_LIB_DEPRECATED = 0 +endif + +ifneq ($(ZSTD_LIB_COMPRESSION), 0) + ZSTD_FILES += $(ZSTDCOMP_FILES) +endif + +ifneq ($(ZSTD_LIB_DECOMPRESSION), 0) + ZSTD_FILES += $(ZSTDDECOMP_FILES) +endif + +ifneq ($(ZSTD_LIB_DEPRECATED), 0) + ZSTD_FILES += $(ZDEPR_FILES) +endif + +ifneq ($(ZSTD_LIB_DICTBUILDER), 0) + ZSTD_FILES += $(ZDICT_FILES) +endif + +ifneq ($(HUF_FORCE_DECOMPRESS_X1), 0) + CFLAGS += -DHUF_FORCE_DECOMPRESS_X1 +endif + +ifneq ($(HUF_FORCE_DECOMPRESS_X2), 0) + CFLAGS += -DHUF_FORCE_DECOMPRESS_X2 +endif + +ifneq ($(ZSTD_FORCE_DECOMPRESS_SHORT), 0) + CFLAGS += -DZSTD_FORCE_DECOMPRESS_SHORT +endif + +ifneq ($(ZSTD_FORCE_DECOMPRESS_LONG), 0) + CFLAGS += -DZSTD_FORCE_DECOMPRESS_LONG +endif + +ifneq ($(ZSTD_NO_INLINE), 0) + CFLAGS += -DZSTD_NO_INLINE +endif + +ifneq ($(ZSTD_STRIP_ERROR_STRINGS), 0) + CFLAGS += -DZSTD_STRIP_ERROR_STRINGS +endif + +ifneq ($(ZSTD_LEGACY_MULTITHREADED_API), 0) + CFLAGS += -DZSTD_LEGACY_MULTITHREADED_API +endif + +ifneq ($(ZSTD_LEGACY_SUPPORT), 0) +ifeq ($(shell test $(ZSTD_LEGACY_SUPPORT) -lt 8; echo $$?), 0) + ZSTD_FILES += $(shell ls legacy/*.c | $(GREP) 'v0[$(ZSTD_LEGACY_SUPPORT)-7]') +endif +endif +CPPFLAGS += -DZSTD_LEGACY_SUPPORT=$(ZSTD_LEGACY_SUPPORT) + +ZSTD_LOCAL_SRC := $(notdir $(ZSTD_FILES)) +ZSTD_LOCAL_OBJ := $(ZSTD_LOCAL_SRC:.c=.o) + +ZSTD_SUBDIR := common compress decompress dictBuilder legacy deprecated +vpath %.c $(ZSTD_SUBDIR) + +UNAME := $(shell uname) + +ifndef BUILD_DIR +ifeq ($(UNAME), Darwin) + ifeq ($(shell md5 < /dev/null > /dev/null; echo $$?), 0) + HASH ?= md5 + endif +else ifeq ($(UNAME), FreeBSD) + HASH ?= gmd5sum +else ifeq ($(UNAME), NetBSD) + HASH ?= md5 -n +else ifeq ($(UNAME), OpenBSD) + HASH ?= md5 +endif +HASH ?= md5sum + +HASH_DIR = conf_$(shell echo $(CC) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) $(ZSTD_FILES) | $(HASH) | cut -f 1 -d " " ) +HAVE_HASH :=$(shell echo 1 | $(HASH) > /dev/null && echo 1 || echo 0) +ifeq ($(HAVE_HASH),0) + $(info warning : could not find HASH ($(HASH)), needed to differentiate builds using different flags) + BUILD_DIR := obj/generic_noconf +endif +endif # BUILD_DIR + + +# macOS linker doesn't support -soname, and use different extension +# see : https://developer.apple.com/library/mac/documentation/DeveloperTools/Conceptual/DynamicLibraries/100-Articles/DynamicLibraryDesignGuidelines.html +ifeq ($(UNAME), Darwin) + SHARED_EXT = dylib + SHARED_EXT_MAJOR = $(LIBVER_MAJOR).$(SHARED_EXT) + SHARED_EXT_VER = $(LIBVER).$(SHARED_EXT) + SONAME_FLAGS = -install_name $(LIBDIR)/libzstd.$(SHARED_EXT_MAJOR) -compatibility_version $(LIBVER_MAJOR) -current_version $(LIBVER) +else + SONAME_FLAGS = -Wl,-soname=libzstd.$(SHARED_EXT).$(LIBVER_MAJOR) + SHARED_EXT = so + SHARED_EXT_MAJOR = $(SHARED_EXT).$(LIBVER_MAJOR) + SHARED_EXT_VER = $(SHARED_EXT).$(LIBVER) +endif + +SET_CACHE_DIRECTORY = \ + +$(MAKE) --no-print-directory $@ \ + BUILD_DIR=obj/$(HASH_DIR) \ + CPPFLAGS="$(CPPFLAGS)" \ + CFLAGS="$(CFLAGS)" \ + LDFLAGS="$(LDFLAGS)" + + +.PHONY: all +all: lib + + +.PHONY: libzstd.a # must be run every time +libzstd.a: CPPFLAGS += $(CPPFLAGS_STATLIB) + +ifndef BUILD_DIR +# determine BUILD_DIR from compilation flags + +libzstd.a: + $(SET_CACHE_DIRECTORY) + +else +# BUILD_DIR is defined + +ZSTD_STATLIB_DIR := $(BUILD_DIR)/static +ZSTD_STATLIB := $(ZSTD_STATLIB_DIR)/libzstd.a +ZSTD_STATLIB_OBJ := $(addprefix $(ZSTD_STATLIB_DIR)/,$(ZSTD_LOCAL_OBJ)) +$(ZSTD_STATLIB): ARFLAGS = rcs +$(ZSTD_STATLIB): | $(ZSTD_STATLIB_DIR) +$(ZSTD_STATLIB): $(ZSTD_STATLIB_OBJ) + # Check for multithread flag at target execution time + $(if $(filter -DZSTD_MULTITHREAD,$(CPPFLAGS)),\ + @echo compiling multi-threaded static library $(LIBVER),\ + @echo compiling single-threaded static library $(LIBVER)) + $(AR) $(ARFLAGS) $@ $^ + +libzstd.a: $(ZSTD_STATLIB) + cp -f $< $@ + +endif + +ifneq (,$(filter Windows%,$(TARGET_SYSTEM))) + +LIBZSTD = dll/libzstd.dll +$(LIBZSTD): $(ZSTD_FILES) + @echo compiling dynamic library $(LIBVER) + $(CC) $(FLAGS) -DZSTD_DLL_EXPORT=1 -Wl,--out-implib,dll/libzstd.dll.a -shared $^ -o $@ + +else # not Windows + +LIBZSTD = libzstd.$(SHARED_EXT_VER) +.PHONY: $(LIBZSTD) # must be run every time +$(LIBZSTD): CPPFLAGS += $(CPPFLAGS_DYNLIB) +$(LIBZSTD): CFLAGS += -fPIC -fvisibility=hidden +$(LIBZSTD): LDFLAGS += -shared $(LDFLAGS_DYNLIB) + +ifndef BUILD_DIR +# determine BUILD_DIR from compilation flags + +$(LIBZSTD): + $(SET_CACHE_DIRECTORY) + +else +# BUILD_DIR is defined + +ZSTD_DYNLIB_DIR := $(BUILD_DIR)/dynamic +ZSTD_DYNLIB := $(ZSTD_DYNLIB_DIR)/$(LIBZSTD) +ZSTD_DYNLIB_OBJ := $(addprefix $(ZSTD_DYNLIB_DIR)/,$(ZSTD_LOCAL_OBJ)) + +$(ZSTD_DYNLIB): | $(ZSTD_DYNLIB_DIR) +$(ZSTD_DYNLIB): $(ZSTD_DYNLIB_OBJ) +# Check for multithread flag at target execution time + $(if $(filter -DZSTD_MULTITHREAD,$(CPPFLAGS)),\ + @echo compiling multi-threaded dynamic library $(LIBVER),\ + @echo compiling single-threaded dynamic library $(LIBVER)) + $(CC) $(FLAGS) $^ $(LDFLAGS) $(SONAME_FLAGS) -o $@ + @echo creating versioned links + ln -sf $@ libzstd.$(SHARED_EXT_MAJOR) + ln -sf $@ libzstd.$(SHARED_EXT) + +$(LIBZSTD): $(ZSTD_DYNLIB) + cp -f $< $@ + +endif # ifndef BUILD_DIR +endif # if windows + +.PHONY: libzstd +libzstd : $(LIBZSTD) + +.PHONY: lib +lib : libzstd.a libzstd + + +# note : do not define lib-mt or lib-release as .PHONY +# make does not consider implicit pattern rule for .PHONY target + +%-mt : CPPFLAGS_DYNLIB := -DZSTD_MULTITHREAD +%-mt : CPPFLAGS_STATLIB := -DZSTD_MULTITHREAD +%-mt : LDFLAGS_DYNLIB := -pthread +%-mt : % + @echo multi-threaded build completed + +%-nomt : CPPFLAGS_DYNLIB := +%-nomt : LDFLAGS_DYNLIB := +%-nomt : CPPFLAGS_STATLIB := +%-nomt : % + @echo single-threaded build completed + +%-release : DEBUGFLAGS := +%-release : % + @echo release build completed + + +# Generate .h dependencies automatically + +DEPFLAGS = -MT $@ -MMD -MP -MF + +$(ZSTD_DYNLIB_DIR)/%.o : %.c $(ZSTD_DYNLIB_DIR)/%.d | $(ZSTD_DYNLIB_DIR) + @echo CC $@ + $(COMPILE.c) $(DEPFLAGS) $(ZSTD_DYNLIB_DIR)/$*.d $(OUTPUT_OPTION) $< + +$(ZSTD_STATLIB_DIR)/%.o : %.c $(ZSTD_STATLIB_DIR)/%.d | $(ZSTD_STATLIB_DIR) + @echo CC $@ + $(COMPILE.c) $(DEPFLAGS) $(ZSTD_STATLIB_DIR)/$*.d $(OUTPUT_OPTION) $< + +MKDIR ?= mkdir +$(BUILD_DIR) $(ZSTD_DYNLIB_DIR) $(ZSTD_STATLIB_DIR): + $(MKDIR) -p $@ + +DEPFILES := $(ZSTD_DYNLIB_OBJ:.o=.d) $(ZSTD_STATLIB_OBJ:.o=.d) +$(DEPFILES): + +include $(wildcard $(DEPFILES)) + + +# Special case : building library in single-thread mode _and_ without zstdmt_compress.c +ZSTDMT_FILES = compress/zstdmt_compress.c +ZSTD_NOMT_FILES = $(filter-out $(ZSTDMT_FILES),$(ZSTD_FILES)) +libzstd-nomt: CFLAGS += -fPIC -fvisibility=hidden +libzstd-nomt: LDFLAGS += -shared +libzstd-nomt: $(ZSTD_NOMT_FILES) + @echo compiling single-thread dynamic library $(LIBVER) + @echo files : $(ZSTD_NOMT_FILES) + $(CC) $(FLAGS) $^ $(LDFLAGS) $(SONAME_FLAGS) -o $@ + +.PHONY: clean +clean: + $(RM) -r *.dSYM # macOS-specific + $(RM) core *.o *.a *.gcda *.$(SHARED_EXT) *.$(SHARED_EXT).* libzstd.pc + $(RM) dll/libzstd.dll dll/libzstd.lib libzstd-nomt* + $(RM) -r obj/* + @echo Cleaning library completed + +#----------------------------------------------------------------------------- +# make install is validated only for below listed environments +#----------------------------------------------------------------------------- +ifneq (,$(filter $(UNAME),Linux Darwin GNU/kFreeBSD GNU OpenBSD FreeBSD NetBSD DragonFly SunOS Haiku)) + +all: libzstd.pc + +HAS_EXPLICIT_EXEC_PREFIX := $(if $(or $(EXEC_PREFIX),$(exec_prefix)),1,) + +DESTDIR ?= +# directory variables : GNU conventions prefer lowercase +# see https://www.gnu.org/prep/standards/html_node/Makefile-Conventions.html +# support both lower and uppercase (BSD), use uppercase in script +prefix ?= /usr/local +PREFIX ?= $(prefix) +exec_prefix ?= $(PREFIX) +EXEC_PREFIX ?= $(exec_prefix) +libdir ?= $(EXEC_PREFIX)/lib +LIBDIR ?= $(libdir) +includedir ?= $(PREFIX)/include +INCLUDEDIR ?= $(includedir) + +PCINCDIR := $(patsubst $(PREFIX)%,%,$(INCLUDEDIR)) +PCLIBDIR := $(patsubst $(EXEC_PREFIX)%,%,$(LIBDIR)) + +# If we successfully stripped off a prefix, we'll add a reference to the +# relevant pc variable. +PCINCPREFIX := $(if $(findstring $(INCLUDEDIR),$(PCINCDIR)),,$${prefix}) +PCLIBPREFIX := $(if $(findstring $(LIBDIR),$(PCLIBDIR)),,$${exec_prefix}) + +# If no explicit EXEC_PREFIX was set by the caller, write it out as a reference +# to PREFIX, rather than as a resolved value. +PCEXEC_PREFIX := $(if $(HAS_EXPLICIT_EXEC_PREFIX),$(EXEC_PREFIX),$${prefix}) + +ifneq (,$(filter $(UNAME),FreeBSD NetBSD DragonFly)) + PKGCONFIGDIR ?= $(PREFIX)/libdata/pkgconfig +else + PKGCONFIGDIR ?= $(LIBDIR)/pkgconfig +endif + +ifneq (,$(filter $(UNAME),SunOS)) + INSTALL ?= ginstall +else + INSTALL ?= install +endif + +INSTALL_PROGRAM ?= $(INSTALL) +INSTALL_DATA ?= $(INSTALL) -m 644 + + +libzstd.pc: +libzstd.pc: libzstd.pc.in + @echo creating pkgconfig + @sed $(SED_ERE_OPT) \ + -e 's|@PREFIX@|$(PREFIX)|' \ + -e 's|@EXEC_PREFIX@|$(PCEXEC_PREFIX)|' \ + -e 's|@INCLUDEDIR@|$(PCINCPREFIX)$(PCINCDIR)|' \ + -e 's|@LIBDIR@|$(PCLIBPREFIX)$(PCLIBDIR)|' \ + -e 's|@VERSION@|$(VERSION)|' \ + $< >$@ + +.PHONY: install +install: install-pc install-static install-shared install-includes + @echo zstd static and shared library installed + +.PHONY: install-pc +install-pc: libzstd.pc + [ -e $(DESTDIR)$(PKGCONFIGDIR) ] || $(INSTALL) -d -m 755 $(DESTDIR)$(PKGCONFIGDIR)/ + $(INSTALL_DATA) libzstd.pc $(DESTDIR)$(PKGCONFIGDIR)/ + +.PHONY: install-static +install-static: + # only generate libzstd.a if it's not already present + [ -e libzstd.a ] || $(MAKE) libzstd.a-release + [ -e $(DESTDIR)$(LIBDIR) ] || $(INSTALL) -d -m 755 $(DESTDIR)$(LIBDIR)/ + @echo Installing static library + $(INSTALL_DATA) libzstd.a $(DESTDIR)$(LIBDIR) + +.PHONY: install-shared +install-shared: + # only generate libzstd.so if it's not already present + [ -e $(LIBZSTD) ] || $(MAKE) libzstd-release + [ -e $(DESTDIR)$(LIBDIR) ] || $(INSTALL) -d -m 755 $(DESTDIR)$(LIBDIR)/ + @echo Installing shared library + $(INSTALL_PROGRAM) $(LIBZSTD) $(DESTDIR)$(LIBDIR) + ln -sf $(LIBZSTD) $(DESTDIR)$(LIBDIR)/libzstd.$(SHARED_EXT_MAJOR) + ln -sf $(LIBZSTD) $(DESTDIR)$(LIBDIR)/libzstd.$(SHARED_EXT) + +.PHONY: install-includes +install-includes: + [ -e $(DESTDIR)$(INCLUDEDIR) ] || $(INSTALL) -d -m 755 $(DESTDIR)$(INCLUDEDIR)/ + @echo Installing includes + $(INSTALL_DATA) zstd.h $(DESTDIR)$(INCLUDEDIR) + $(INSTALL_DATA) zstd_errors.h $(DESTDIR)$(INCLUDEDIR) + $(INSTALL_DATA) zdict.h $(DESTDIR)$(INCLUDEDIR) + +.PHONY: uninstall +uninstall: + $(RM) $(DESTDIR)$(LIBDIR)/libzstd.a + $(RM) $(DESTDIR)$(LIBDIR)/libzstd.$(SHARED_EXT) + $(RM) $(DESTDIR)$(LIBDIR)/libzstd.$(SHARED_EXT_MAJOR) + $(RM) $(DESTDIR)$(LIBDIR)/$(LIBZSTD) + $(RM) $(DESTDIR)$(PKGCONFIGDIR)/libzstd.pc + $(RM) $(DESTDIR)$(INCLUDEDIR)/zstd.h + $(RM) $(DESTDIR)$(INCLUDEDIR)/zstd_errors.h + $(RM) $(DESTDIR)$(INCLUDEDIR)/zdict.h + @echo zstd libraries successfully uninstalled + +endif diff --git a/dependencies/zstd-1.5.0/lib/README.md b/dependencies/zstd-1.5.0/lib/README.md new file mode 100644 index 0000000..f781ac5 --- /dev/null +++ b/dependencies/zstd-1.5.0/lib/README.md @@ -0,0 +1,211 @@ +Zstandard library files +================================ + +The __lib__ directory is split into several sub-directories, +in order to make it easier to select or exclude features. + + +#### Building + +`Makefile` script is provided, supporting [Makefile conventions](https://www.gnu.org/prep/standards/html_node/Makefile-Conventions.html#Makefile-Conventions), +including commands variables, staged install, directory variables and standard targets. +- `make` : generates both static and dynamic libraries +- `make install` : install libraries and headers in target system directories + +`libzstd` default scope is pretty large, including compression, decompression, dictionary builder, +and support for decoding legacy formats >= v0.5.0. +The scope can be reduced on demand (see paragraph _modular build_). + + +#### Multithreading support + +When building with `make`, by default the dynamic library is multithreaded and static library is single-threaded (for compatibility reasons). + +Enabling multithreading requires 2 conditions : +- set build macro `ZSTD_MULTITHREAD` (`-DZSTD_MULTITHREAD` for `gcc`) +- for POSIX systems : compile with pthread (`-pthread` compilation flag for `gcc`) + +For convenience, we provide a build target to generate multi and single threaded libraries: +- Force enable multithreading on both dynamic and static libraries by appending `-mt` to the target, e.g. `make lib-mt`. +- Force disable multithreading on both dynamic and static libraries by appending `-nomt` to the target, e.g. `make lib-nomt`. +- By default, as mentioned before, dynamic library is multithreaded, and static library is single-threaded, e.g. `make lib`. + +When linking a POSIX program with a multithreaded version of `libzstd`, +note that it's necessary to invoke the `-pthread` flag during link stage. + +Multithreading capabilities are exposed +via the [advanced API defined in `lib/zstd.h`](https://github.com/facebook/zstd/blob/v1.4.3/lib/zstd.h#L351). + + +#### API + +Zstandard's stable API is exposed within [lib/zstd.h](zstd.h). + + +#### Advanced API + +Optional advanced features are exposed via : + +- `lib/zstd_errors.h` : translates `size_t` function results + into a `ZSTD_ErrorCode`, for accurate error handling. + +- `ZSTD_STATIC_LINKING_ONLY` : if this macro is defined _before_ including `zstd.h`, + it unlocks access to the experimental API, + exposed in the second part of `zstd.h`. + All definitions in the experimental APIs are unstable, + they may still change in the future, or even be removed. + As a consequence, experimental definitions shall ___never be used with dynamic library___ ! + Only static linking is allowed. + + +#### Modular build + +It's possible to compile only a limited set of features within `libzstd`. +The file structure is designed to make this selection manually achievable for any build system : + +- Directory `lib/common` is always required, for all variants. + +- Compression source code lies in `lib/compress` + +- Decompression source code lies in `lib/decompress` + +- It's possible to include only `compress` or only `decompress`, they don't depend on each other. + +- `lib/dictBuilder` : makes it possible to generate dictionaries from a set of samples. + The API is exposed in `lib/dictBuilder/zdict.h`. + This module depends on both `lib/common` and `lib/compress` . + +- `lib/legacy` : makes it possible to decompress legacy zstd formats, starting from `v0.1.0`. + This module depends on `lib/common` and `lib/decompress`. + To enable this feature, define `ZSTD_LEGACY_SUPPORT` during compilation. + Specifying a number limits versions supported to that version onward. + For example, `ZSTD_LEGACY_SUPPORT=2` means : "support legacy formats >= v0.2.0". + Conversely, `ZSTD_LEGACY_SUPPORT=0` means "do __not__ support legacy formats". + By default, this build macro is set as `ZSTD_LEGACY_SUPPORT=5`. + Decoding supported legacy format is a transparent capability triggered within decompression functions. + It's also allowed to invoke legacy API directly, exposed in `lib/legacy/zstd_legacy.h`. + Each version does also provide its own set of advanced API. + For example, advanced API for version `v0.4` is exposed in `lib/legacy/zstd_v04.h` . + +- While invoking `make libzstd`, it's possible to define build macros + `ZSTD_LIB_COMPRESSION, ZSTD_LIB_DECOMPRESSION`, `ZSTD_LIB_DICTBUILDER`, + and `ZSTD_LIB_DEPRECATED` as `0` to forgo compilation of the + corresponding features. This will also disable compilation of all + dependencies (eg. `ZSTD_LIB_COMPRESSION=0` will also disable + dictBuilder). + +- There are a number of options that can help minimize the binary size of + `libzstd`. + + The first step is to select the components needed (using the above-described + `ZSTD_LIB_COMPRESSION` etc.). + + The next step is to set `ZSTD_LIB_MINIFY` to `1` when invoking `make`. This + disables various optional components and changes the compilation flags to + prioritize space-saving. + + Detailed options: Zstandard's code and build environment is set up by default + to optimize above all else for performance. In pursuit of this goal, Zstandard + makes significant trade-offs in code size. For example, Zstandard often has + more than one implementation of a particular component, with each + implementation optimized for different scenarios. For example, the Huffman + decoder has complementary implementations that decode the stream one symbol at + a time or two symbols at a time. Zstd normally includes both (and dispatches + between them at runtime), but by defining `HUF_FORCE_DECOMPRESS_X1` or + `HUF_FORCE_DECOMPRESS_X2`, you can force the use of one or the other, avoiding + compilation of the other. Similarly, `ZSTD_FORCE_DECOMPRESS_SEQUENCES_SHORT` + and `ZSTD_FORCE_DECOMPRESS_SEQUENCES_LONG` force the compilation and use of + only one or the other of two decompression implementations. The smallest + binary is achieved by using `HUF_FORCE_DECOMPRESS_X1` and + `ZSTD_FORCE_DECOMPRESS_SEQUENCES_SHORT` (implied by `ZSTD_LIB_MINIFY`). + + For squeezing the last ounce of size out, you can also define + `ZSTD_NO_INLINE`, which disables inlining, and `ZSTD_STRIP_ERROR_STRINGS`, + which removes the error messages that are otherwise returned by + `ZSTD_getErrorName` (implied by `ZSTD_LIB_MINIFY`). + + Finally, when integrating into your application, make sure you're doing link- + time optimation and unused symbol garbage collection (via some combination of, + e.g., `-flto`, `-ffat-lto-objects`, `-fuse-linker-plugin`, + `-ffunction-sections`, `-fdata-sections`, `-fmerge-all-constants`, + `-Wl,--gc-sections`, `-Wl,-z,norelro`, and an archiver that understands + the compiler's intermediate representation, e.g., `AR=gcc-ar`). Consult your + compiler's documentation. + +- While invoking `make libzstd`, the build macro `ZSTD_LEGACY_MULTITHREADED_API=1` + will expose the deprecated `ZSTDMT` API exposed by `zstdmt_compress.h` in + the shared library, which is now hidden by default. + +- The build macro `DYNAMIC_BMI2` can be set to 1 or 0 in order to generate binaries + which can detect at runtime the presence of BMI2 instructions, and use them only if present. + These instructions contribute to better performance, notably on the decoder side. + By default, this feature is automatically enabled on detecting + the right instruction set (x64) and compiler (clang or gcc >= 5). + It's obviously disabled for different cpus, + or when BMI2 instruction set is _required_ by the compiler command line + (in this case, only the BMI2 code path is generated). + Setting this macro will either force to generate the BMI2 dispatcher (1) + or prevent it (0). It overrides automatic detection. + +- The build macro `ZSTD_NO_UNUSED_FUNCTIONS` can be defined to hide the definitions of functions + that zstd does not use. Not all unused functions are hidden, but they can be if needed. + Currently, this macro will hide function definitions in FSE and HUF that use an excessive + amount of stack space. + +- The build macro `ZSTD_NO_INTRINSICS` can be defined to disable all explicit intrinsics. + Compiler builtins are still used. + + +#### Windows : using MinGW+MSYS to create DLL + +DLL can be created using MinGW+MSYS with the `make libzstd` command. +This command creates `dll\libzstd.dll` and the import library `dll\libzstd.lib`. +The import library is only required with Visual C++. +The header file `zstd.h` and the dynamic library `dll\libzstd.dll` are required to +compile a project using gcc/MinGW. +The dynamic library has to be added to linking options. +It means that if a project that uses ZSTD consists of a single `test-dll.c` +file it should be linked with `dll\libzstd.dll`. For example: +``` + gcc $(CFLAGS) -Iinclude/ test-dll.c -o test-dll dll\libzstd.dll +``` +The compiled executable will require ZSTD DLL which is available at `dll\libzstd.dll`. + + +#### Advanced Build options + +The build system requires a hash function in order to +separate object files created with different compilation flags. +By default, it tries to use `md5sum` or equivalent. +The hash function can be manually switched by setting the `HASH` variable. +For example : `make HASH=xxhsum` +The hash function needs to generate at least 64-bit using hexadecimal format. +When no hash function is found, +the Makefile just generates all object files into the same default directory, +irrespective of compilation flags. +This functionality only matters if `libzstd` is compiled multiple times +with different build flags. + +The build directory, where object files are stored +can also be manually controlled using variable `BUILD_DIR`, +for example `make BUILD_DIR=objectDir/v1`. +In which case, the hash function doesn't matter. + + +#### Deprecated API + +Obsolete API on their way out are stored in directory `lib/deprecated`. +At this stage, it contains older streaming prototypes, in `lib/deprecated/zbuff.h`. +These prototypes will be removed in some future version. +Consider migrating code towards supported streaming API exposed in `zstd.h`. + + +#### Miscellaneous + +The other files are not source code. There are : + + - `BUCK` : support for `buck` build system (https://buckbuild.com/) + - `Makefile` : `make` script to build and install zstd library (static and dynamic) + - `README.md` : this file + - `dll/` : resources directory for Windows compilation + - `libzstd.pc.in` : script for `pkg-config` (used in `make install`) diff --git a/dependencies/zstd-1.5.0/lib/common/bitstream.h b/dependencies/zstd-1.5.0/lib/common/bitstream.h new file mode 100644 index 0000000..2e5a933 --- /dev/null +++ b/dependencies/zstd-1.5.0/lib/common/bitstream.h @@ -0,0 +1,463 @@ +/* ****************************************************************** + * bitstream + * Part of FSE library + * Copyright (c) Yann Collet, Facebook, Inc. + * + * You can contact the author at : + * - Source repository : https://github.com/Cyan4973/FiniteStateEntropy + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. +****************************************************************** */ +#ifndef BITSTREAM_H_MODULE +#define BITSTREAM_H_MODULE + +#if defined (__cplusplus) +extern "C" { +#endif +/* +* This API consists of small unitary functions, which must be inlined for best performance. +* Since link-time-optimization is not available for all compilers, +* these functions are defined into a .h to be included. +*/ + +/*-**************************************** +* Dependencies +******************************************/ +#include "mem.h" /* unaligned access routines */ +#include "compiler.h" /* UNLIKELY() */ +#include "debug.h" /* assert(), DEBUGLOG(), RAWLOG() */ +#include "error_private.h" /* error codes and messages */ + + +/*========================================= +* Target specific +=========================================*/ +#ifndef ZSTD_NO_INTRINSICS +# if defined(__BMI__) && defined(__GNUC__) +# include /* support for bextr (experimental) */ +# elif defined(__ICCARM__) +# include +# endif +#endif + +#define STREAM_ACCUMULATOR_MIN_32 25 +#define STREAM_ACCUMULATOR_MIN_64 57 +#define STREAM_ACCUMULATOR_MIN ((U32)(MEM_32bits() ? STREAM_ACCUMULATOR_MIN_32 : STREAM_ACCUMULATOR_MIN_64)) + + +/*-****************************************** +* bitStream encoding API (write forward) +********************************************/ +/* bitStream can mix input from multiple sources. + * A critical property of these streams is that they encode and decode in **reverse** direction. + * So the first bit sequence you add will be the last to be read, like a LIFO stack. + */ +typedef struct { + size_t bitContainer; + unsigned bitPos; + char* startPtr; + char* ptr; + char* endPtr; +} BIT_CStream_t; + +MEM_STATIC size_t BIT_initCStream(BIT_CStream_t* bitC, void* dstBuffer, size_t dstCapacity); +MEM_STATIC void BIT_addBits(BIT_CStream_t* bitC, size_t value, unsigned nbBits); +MEM_STATIC void BIT_flushBits(BIT_CStream_t* bitC); +MEM_STATIC size_t BIT_closeCStream(BIT_CStream_t* bitC); + +/* Start with initCStream, providing the size of buffer to write into. +* bitStream will never write outside of this buffer. +* `dstCapacity` must be >= sizeof(bitD->bitContainer), otherwise @return will be an error code. +* +* bits are first added to a local register. +* Local register is size_t, hence 64-bits on 64-bits systems, or 32-bits on 32-bits systems. +* Writing data into memory is an explicit operation, performed by the flushBits function. +* Hence keep track how many bits are potentially stored into local register to avoid register overflow. +* After a flushBits, a maximum of 7 bits might still be stored into local register. +* +* Avoid storing elements of more than 24 bits if you want compatibility with 32-bits bitstream readers. +* +* Last operation is to close the bitStream. +* The function returns the final size of CStream in bytes. +* If data couldn't fit into `dstBuffer`, it will return a 0 ( == not storable) +*/ + + +/*-******************************************** +* bitStream decoding API (read backward) +**********************************************/ +typedef struct { + size_t bitContainer; + unsigned bitsConsumed; + const char* ptr; + const char* start; + const char* limitPtr; +} BIT_DStream_t; + +typedef enum { BIT_DStream_unfinished = 0, + BIT_DStream_endOfBuffer = 1, + BIT_DStream_completed = 2, + BIT_DStream_overflow = 3 } BIT_DStream_status; /* result of BIT_reloadDStream() */ + /* 1,2,4,8 would be better for bitmap combinations, but slows down performance a bit ... :( */ + +MEM_STATIC size_t BIT_initDStream(BIT_DStream_t* bitD, const void* srcBuffer, size_t srcSize); +MEM_STATIC size_t BIT_readBits(BIT_DStream_t* bitD, unsigned nbBits); +MEM_STATIC BIT_DStream_status BIT_reloadDStream(BIT_DStream_t* bitD); +MEM_STATIC unsigned BIT_endOfDStream(const BIT_DStream_t* bitD); + + +/* Start by invoking BIT_initDStream(). +* A chunk of the bitStream is then stored into a local register. +* Local register size is 64-bits on 64-bits systems, 32-bits on 32-bits systems (size_t). +* You can then retrieve bitFields stored into the local register, **in reverse order**. +* Local register is explicitly reloaded from memory by the BIT_reloadDStream() method. +* A reload guarantee a minimum of ((8*sizeof(bitD->bitContainer))-7) bits when its result is BIT_DStream_unfinished. +* Otherwise, it can be less than that, so proceed accordingly. +* Checking if DStream has reached its end can be performed with BIT_endOfDStream(). +*/ + + +/*-**************************************** +* unsafe API +******************************************/ +MEM_STATIC void BIT_addBitsFast(BIT_CStream_t* bitC, size_t value, unsigned nbBits); +/* faster, but works only if value is "clean", meaning all high bits above nbBits are 0 */ + +MEM_STATIC void BIT_flushBitsFast(BIT_CStream_t* bitC); +/* unsafe version; does not check buffer overflow */ + +MEM_STATIC size_t BIT_readBitsFast(BIT_DStream_t* bitD, unsigned nbBits); +/* faster, but works only if nbBits >= 1 */ + + + +/*-************************************************************** +* Internal functions +****************************************************************/ +MEM_STATIC unsigned BIT_highbit32 (U32 val) +{ + assert(val != 0); + { +# if defined(_MSC_VER) /* Visual */ +# if STATIC_BMI2 == 1 + return _lzcnt_u32(val) ^ 31; +# else + unsigned long r = 0; + return _BitScanReverse(&r, val) ? (unsigned)r : 0; +# endif +# elif defined(__GNUC__) && (__GNUC__ >= 3) /* Use GCC Intrinsic */ + return __builtin_clz (val) ^ 31; +# elif defined(__ICCARM__) /* IAR Intrinsic */ + return 31 - __CLZ(val); +# else /* Software version */ + static const unsigned DeBruijnClz[32] = { 0, 9, 1, 10, 13, 21, 2, 29, + 11, 14, 16, 18, 22, 25, 3, 30, + 8, 12, 20, 28, 15, 17, 24, 7, + 19, 27, 23, 6, 26, 5, 4, 31 }; + U32 v = val; + v |= v >> 1; + v |= v >> 2; + v |= v >> 4; + v |= v >> 8; + v |= v >> 16; + return DeBruijnClz[ (U32) (v * 0x07C4ACDDU) >> 27]; +# endif + } +} + +/*===== Local Constants =====*/ +static const unsigned BIT_mask[] = { + 0, 1, 3, 7, 0xF, 0x1F, + 0x3F, 0x7F, 0xFF, 0x1FF, 0x3FF, 0x7FF, + 0xFFF, 0x1FFF, 0x3FFF, 0x7FFF, 0xFFFF, 0x1FFFF, + 0x3FFFF, 0x7FFFF, 0xFFFFF, 0x1FFFFF, 0x3FFFFF, 0x7FFFFF, + 0xFFFFFF, 0x1FFFFFF, 0x3FFFFFF, 0x7FFFFFF, 0xFFFFFFF, 0x1FFFFFFF, + 0x3FFFFFFF, 0x7FFFFFFF}; /* up to 31 bits */ +#define BIT_MASK_SIZE (sizeof(BIT_mask) / sizeof(BIT_mask[0])) + +/*-************************************************************** +* bitStream encoding +****************************************************************/ +/*! BIT_initCStream() : + * `dstCapacity` must be > sizeof(size_t) + * @return : 0 if success, + * otherwise an error code (can be tested using ERR_isError()) */ +MEM_STATIC size_t BIT_initCStream(BIT_CStream_t* bitC, + void* startPtr, size_t dstCapacity) +{ + bitC->bitContainer = 0; + bitC->bitPos = 0; + bitC->startPtr = (char*)startPtr; + bitC->ptr = bitC->startPtr; + bitC->endPtr = bitC->startPtr + dstCapacity - sizeof(bitC->bitContainer); + if (dstCapacity <= sizeof(bitC->bitContainer)) return ERROR(dstSize_tooSmall); + return 0; +} + +/*! BIT_addBits() : + * can add up to 31 bits into `bitC`. + * Note : does not check for register overflow ! */ +MEM_STATIC void BIT_addBits(BIT_CStream_t* bitC, + size_t value, unsigned nbBits) +{ + DEBUG_STATIC_ASSERT(BIT_MASK_SIZE == 32); + assert(nbBits < BIT_MASK_SIZE); + assert(nbBits + bitC->bitPos < sizeof(bitC->bitContainer) * 8); + bitC->bitContainer |= (value & BIT_mask[nbBits]) << bitC->bitPos; + bitC->bitPos += nbBits; +} + +/*! BIT_addBitsFast() : + * works only if `value` is _clean_, + * meaning all high bits above nbBits are 0 */ +MEM_STATIC void BIT_addBitsFast(BIT_CStream_t* bitC, + size_t value, unsigned nbBits) +{ + assert((value>>nbBits) == 0); + assert(nbBits + bitC->bitPos < sizeof(bitC->bitContainer) * 8); + bitC->bitContainer |= value << bitC->bitPos; + bitC->bitPos += nbBits; +} + +/*! BIT_flushBitsFast() : + * assumption : bitContainer has not overflowed + * unsafe version; does not check buffer overflow */ +MEM_STATIC void BIT_flushBitsFast(BIT_CStream_t* bitC) +{ + size_t const nbBytes = bitC->bitPos >> 3; + assert(bitC->bitPos < sizeof(bitC->bitContainer) * 8); + assert(bitC->ptr <= bitC->endPtr); + MEM_writeLEST(bitC->ptr, bitC->bitContainer); + bitC->ptr += nbBytes; + bitC->bitPos &= 7; + bitC->bitContainer >>= nbBytes*8; +} + +/*! BIT_flushBits() : + * assumption : bitContainer has not overflowed + * safe version; check for buffer overflow, and prevents it. + * note : does not signal buffer overflow. + * overflow will be revealed later on using BIT_closeCStream() */ +MEM_STATIC void BIT_flushBits(BIT_CStream_t* bitC) +{ + size_t const nbBytes = bitC->bitPos >> 3; + assert(bitC->bitPos < sizeof(bitC->bitContainer) * 8); + assert(bitC->ptr <= bitC->endPtr); + MEM_writeLEST(bitC->ptr, bitC->bitContainer); + bitC->ptr += nbBytes; + if (bitC->ptr > bitC->endPtr) bitC->ptr = bitC->endPtr; + bitC->bitPos &= 7; + bitC->bitContainer >>= nbBytes*8; +} + +/*! BIT_closeCStream() : + * @return : size of CStream, in bytes, + * or 0 if it could not fit into dstBuffer */ +MEM_STATIC size_t BIT_closeCStream(BIT_CStream_t* bitC) +{ + BIT_addBitsFast(bitC, 1, 1); /* endMark */ + BIT_flushBits(bitC); + if (bitC->ptr >= bitC->endPtr) return 0; /* overflow detected */ + return (bitC->ptr - bitC->startPtr) + (bitC->bitPos > 0); +} + + +/*-******************************************************** +* bitStream decoding +**********************************************************/ +/*! BIT_initDStream() : + * Initialize a BIT_DStream_t. + * `bitD` : a pointer to an already allocated BIT_DStream_t structure. + * `srcSize` must be the *exact* size of the bitStream, in bytes. + * @return : size of stream (== srcSize), or an errorCode if a problem is detected + */ +MEM_STATIC size_t BIT_initDStream(BIT_DStream_t* bitD, const void* srcBuffer, size_t srcSize) +{ + if (srcSize < 1) { ZSTD_memset(bitD, 0, sizeof(*bitD)); return ERROR(srcSize_wrong); } + + bitD->start = (const char*)srcBuffer; + bitD->limitPtr = bitD->start + sizeof(bitD->bitContainer); + + if (srcSize >= sizeof(bitD->bitContainer)) { /* normal case */ + bitD->ptr = (const char*)srcBuffer + srcSize - sizeof(bitD->bitContainer); + bitD->bitContainer = MEM_readLEST(bitD->ptr); + { BYTE const lastByte = ((const BYTE*)srcBuffer)[srcSize-1]; + bitD->bitsConsumed = lastByte ? 8 - BIT_highbit32(lastByte) : 0; /* ensures bitsConsumed is always set */ + if (lastByte == 0) return ERROR(GENERIC); /* endMark not present */ } + } else { + bitD->ptr = bitD->start; + bitD->bitContainer = *(const BYTE*)(bitD->start); + switch(srcSize) + { + case 7: bitD->bitContainer += (size_t)(((const BYTE*)(srcBuffer))[6]) << (sizeof(bitD->bitContainer)*8 - 16); + /* fall-through */ + + case 6: bitD->bitContainer += (size_t)(((const BYTE*)(srcBuffer))[5]) << (sizeof(bitD->bitContainer)*8 - 24); + /* fall-through */ + + case 5: bitD->bitContainer += (size_t)(((const BYTE*)(srcBuffer))[4]) << (sizeof(bitD->bitContainer)*8 - 32); + /* fall-through */ + + case 4: bitD->bitContainer += (size_t)(((const BYTE*)(srcBuffer))[3]) << 24; + /* fall-through */ + + case 3: bitD->bitContainer += (size_t)(((const BYTE*)(srcBuffer))[2]) << 16; + /* fall-through */ + + case 2: bitD->bitContainer += (size_t)(((const BYTE*)(srcBuffer))[1]) << 8; + /* fall-through */ + + default: break; + } + { BYTE const lastByte = ((const BYTE*)srcBuffer)[srcSize-1]; + bitD->bitsConsumed = lastByte ? 8 - BIT_highbit32(lastByte) : 0; + if (lastByte == 0) return ERROR(corruption_detected); /* endMark not present */ + } + bitD->bitsConsumed += (U32)(sizeof(bitD->bitContainer) - srcSize)*8; + } + + return srcSize; +} + +MEM_STATIC FORCE_INLINE_ATTR size_t BIT_getUpperBits(size_t bitContainer, U32 const start) +{ + return bitContainer >> start; +} + +MEM_STATIC FORCE_INLINE_ATTR size_t BIT_getMiddleBits(size_t bitContainer, U32 const start, U32 const nbBits) +{ + U32 const regMask = sizeof(bitContainer)*8 - 1; + /* if start > regMask, bitstream is corrupted, and result is undefined */ + assert(nbBits < BIT_MASK_SIZE); + return (bitContainer >> (start & regMask)) & BIT_mask[nbBits]; +} + +MEM_STATIC FORCE_INLINE_ATTR size_t BIT_getLowerBits(size_t bitContainer, U32 const nbBits) +{ +#if defined(STATIC_BMI2) && STATIC_BMI2 == 1 + return _bzhi_u64(bitContainer, nbBits); +#else + assert(nbBits < BIT_MASK_SIZE); + return bitContainer & BIT_mask[nbBits]; +#endif +} + +/*! BIT_lookBits() : + * Provides next n bits from local register. + * local register is not modified. + * On 32-bits, maxNbBits==24. + * On 64-bits, maxNbBits==56. + * @return : value extracted */ +MEM_STATIC FORCE_INLINE_ATTR size_t BIT_lookBits(const BIT_DStream_t* bitD, U32 nbBits) +{ + /* arbitrate between double-shift and shift+mask */ +#if 1 + /* if bitD->bitsConsumed + nbBits > sizeof(bitD->bitContainer)*8, + * bitstream is likely corrupted, and result is undefined */ + return BIT_getMiddleBits(bitD->bitContainer, (sizeof(bitD->bitContainer)*8) - bitD->bitsConsumed - nbBits, nbBits); +#else + /* this code path is slower on my os-x laptop */ + U32 const regMask = sizeof(bitD->bitContainer)*8 - 1; + return ((bitD->bitContainer << (bitD->bitsConsumed & regMask)) >> 1) >> ((regMask-nbBits) & regMask); +#endif +} + +/*! BIT_lookBitsFast() : + * unsafe version; only works if nbBits >= 1 */ +MEM_STATIC size_t BIT_lookBitsFast(const BIT_DStream_t* bitD, U32 nbBits) +{ + U32 const regMask = sizeof(bitD->bitContainer)*8 - 1; + assert(nbBits >= 1); + return (bitD->bitContainer << (bitD->bitsConsumed & regMask)) >> (((regMask+1)-nbBits) & regMask); +} + +MEM_STATIC FORCE_INLINE_ATTR void BIT_skipBits(BIT_DStream_t* bitD, U32 nbBits) +{ + bitD->bitsConsumed += nbBits; +} + +/*! BIT_readBits() : + * Read (consume) next n bits from local register and update. + * Pay attention to not read more than nbBits contained into local register. + * @return : extracted value. */ +MEM_STATIC FORCE_INLINE_ATTR size_t BIT_readBits(BIT_DStream_t* bitD, unsigned nbBits) +{ + size_t const value = BIT_lookBits(bitD, nbBits); + BIT_skipBits(bitD, nbBits); + return value; +} + +/*! BIT_readBitsFast() : + * unsafe version; only works only if nbBits >= 1 */ +MEM_STATIC size_t BIT_readBitsFast(BIT_DStream_t* bitD, unsigned nbBits) +{ + size_t const value = BIT_lookBitsFast(bitD, nbBits); + assert(nbBits >= 1); + BIT_skipBits(bitD, nbBits); + return value; +} + +/*! BIT_reloadDStreamFast() : + * Similar to BIT_reloadDStream(), but with two differences: + * 1. bitsConsumed <= sizeof(bitD->bitContainer)*8 must hold! + * 2. Returns BIT_DStream_overflow when bitD->ptr < bitD->limitPtr, at this + * point you must use BIT_reloadDStream() to reload. + */ +MEM_STATIC BIT_DStream_status BIT_reloadDStreamFast(BIT_DStream_t* bitD) +{ + if (UNLIKELY(bitD->ptr < bitD->limitPtr)) + return BIT_DStream_overflow; + assert(bitD->bitsConsumed <= sizeof(bitD->bitContainer)*8); + bitD->ptr -= bitD->bitsConsumed >> 3; + bitD->bitsConsumed &= 7; + bitD->bitContainer = MEM_readLEST(bitD->ptr); + return BIT_DStream_unfinished; +} + +/*! BIT_reloadDStream() : + * Refill `bitD` from buffer previously set in BIT_initDStream() . + * This function is safe, it guarantees it will not read beyond src buffer. + * @return : status of `BIT_DStream_t` internal register. + * when status == BIT_DStream_unfinished, internal register is filled with at least 25 or 57 bits */ +MEM_STATIC BIT_DStream_status BIT_reloadDStream(BIT_DStream_t* bitD) +{ + if (bitD->bitsConsumed > (sizeof(bitD->bitContainer)*8)) /* overflow detected, like end of stream */ + return BIT_DStream_overflow; + + if (bitD->ptr >= bitD->limitPtr) { + return BIT_reloadDStreamFast(bitD); + } + if (bitD->ptr == bitD->start) { + if (bitD->bitsConsumed < sizeof(bitD->bitContainer)*8) return BIT_DStream_endOfBuffer; + return BIT_DStream_completed; + } + /* start < ptr < limitPtr */ + { U32 nbBytes = bitD->bitsConsumed >> 3; + BIT_DStream_status result = BIT_DStream_unfinished; + if (bitD->ptr - nbBytes < bitD->start) { + nbBytes = (U32)(bitD->ptr - bitD->start); /* ptr > start */ + result = BIT_DStream_endOfBuffer; + } + bitD->ptr -= nbBytes; + bitD->bitsConsumed -= nbBytes*8; + bitD->bitContainer = MEM_readLEST(bitD->ptr); /* reminder : srcSize > sizeof(bitD->bitContainer), otherwise bitD->ptr == bitD->start */ + return result; + } +} + +/*! BIT_endOfDStream() : + * @return : 1 if DStream has _exactly_ reached its end (all bits consumed). + */ +MEM_STATIC unsigned BIT_endOfDStream(const BIT_DStream_t* DStream) +{ + return ((DStream->ptr == DStream->start) && (DStream->bitsConsumed == sizeof(DStream->bitContainer)*8)); +} + +#if defined (__cplusplus) +} +#endif + +#endif /* BITSTREAM_H_MODULE */ diff --git a/dependencies/zstd-1.5.0/lib/common/compiler.h b/dependencies/zstd-1.5.0/lib/common/compiler.h new file mode 100644 index 0000000..a951d0a --- /dev/null +++ b/dependencies/zstd-1.5.0/lib/common/compiler.h @@ -0,0 +1,289 @@ +/* + * Copyright (c) Yann Collet, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + +#ifndef ZSTD_COMPILER_H +#define ZSTD_COMPILER_H + +/*-******************************************************* +* Compiler specifics +*********************************************************/ +/* force inlining */ + +#if !defined(ZSTD_NO_INLINE) +#if (defined(__GNUC__) && !defined(__STRICT_ANSI__)) || defined(__cplusplus) || defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L /* C99 */ +# define INLINE_KEYWORD inline +#else +# define INLINE_KEYWORD +#endif + +#if defined(__GNUC__) || defined(__ICCARM__) +# define FORCE_INLINE_ATTR __attribute__((always_inline)) +#elif defined(_MSC_VER) +# define FORCE_INLINE_ATTR __forceinline +#else +# define FORCE_INLINE_ATTR +#endif + +#else + +#define INLINE_KEYWORD +#define FORCE_INLINE_ATTR + +#endif + +/** + On MSVC qsort requires that functions passed into it use the __cdecl calling conversion(CC). + This explictly marks such functions as __cdecl so that the code will still compile + if a CC other than __cdecl has been made the default. +*/ +#if defined(_MSC_VER) +# define WIN_CDECL __cdecl +#else +# define WIN_CDECL +#endif + +/** + * FORCE_INLINE_TEMPLATE is used to define C "templates", which take constant + * parameters. They must be inlined for the compiler to eliminate the constant + * branches. + */ +#define FORCE_INLINE_TEMPLATE static INLINE_KEYWORD FORCE_INLINE_ATTR +/** + * HINT_INLINE is used to help the compiler generate better code. It is *not* + * used for "templates", so it can be tweaked based on the compilers + * performance. + * + * gcc-4.8 and gcc-4.9 have been shown to benefit from leaving off the + * always_inline attribute. + * + * clang up to 5.0.0 (trunk) benefit tremendously from the always_inline + * attribute. + */ +#if !defined(__clang__) && defined(__GNUC__) && __GNUC__ >= 4 && __GNUC_MINOR__ >= 8 && __GNUC__ < 5 +# define HINT_INLINE static INLINE_KEYWORD +#else +# define HINT_INLINE static INLINE_KEYWORD FORCE_INLINE_ATTR +#endif + +/* UNUSED_ATTR tells the compiler it is okay if the function is unused. */ +#if defined(__GNUC__) +# define UNUSED_ATTR __attribute__((unused)) +#else +# define UNUSED_ATTR +#endif + +/* force no inlining */ +#ifdef _MSC_VER +# define FORCE_NOINLINE static __declspec(noinline) +#else +# if defined(__GNUC__) || defined(__ICCARM__) +# define FORCE_NOINLINE static __attribute__((__noinline__)) +# else +# define FORCE_NOINLINE static +# endif +#endif + + +/* target attribute */ +#ifndef __has_attribute + #define __has_attribute(x) 0 /* Compatibility with non-clang compilers. */ +#endif +#if defined(__GNUC__) || defined(__ICCARM__) +# define TARGET_ATTRIBUTE(target) __attribute__((__target__(target))) +#else +# define TARGET_ATTRIBUTE(target) +#endif + +/* Enable runtime BMI2 dispatch based on the CPU. + * Enabled for clang & gcc >=4.8 on x86 when BMI2 isn't enabled by default. + */ +#ifndef DYNAMIC_BMI2 + #if ((defined(__clang__) && __has_attribute(__target__)) \ + || (defined(__GNUC__) \ + && (__GNUC__ >= 5 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8)))) \ + && (defined(__x86_64__) || defined(_M_X86)) \ + && !defined(__BMI2__) + # define DYNAMIC_BMI2 1 + #else + # define DYNAMIC_BMI2 0 + #endif +#endif + +/* prefetch + * can be disabled, by declaring NO_PREFETCH build macro */ +#if defined(NO_PREFETCH) +# define PREFETCH_L1(ptr) (void)(ptr) /* disabled */ +# define PREFETCH_L2(ptr) (void)(ptr) /* disabled */ +#else +# if defined(_MSC_VER) && (defined(_M_X64) || defined(_M_I86)) /* _mm_prefetch() is not defined outside of x86/x64 */ +# include /* https://msdn.microsoft.com/fr-fr/library/84szxsww(v=vs.90).aspx */ +# define PREFETCH_L1(ptr) _mm_prefetch((const char*)(ptr), _MM_HINT_T0) +# define PREFETCH_L2(ptr) _mm_prefetch((const char*)(ptr), _MM_HINT_T1) +# elif defined(__GNUC__) && ( (__GNUC__ >= 4) || ( (__GNUC__ == 3) && (__GNUC_MINOR__ >= 1) ) ) +# define PREFETCH_L1(ptr) __builtin_prefetch((ptr), 0 /* rw==read */, 3 /* locality */) +# define PREFETCH_L2(ptr) __builtin_prefetch((ptr), 0 /* rw==read */, 2 /* locality */) +# elif defined(__aarch64__) +# define PREFETCH_L1(ptr) __asm__ __volatile__("prfm pldl1keep, %0" ::"Q"(*(ptr))) +# define PREFETCH_L2(ptr) __asm__ __volatile__("prfm pldl2keep, %0" ::"Q"(*(ptr))) +# else +# define PREFETCH_L1(ptr) (void)(ptr) /* disabled */ +# define PREFETCH_L2(ptr) (void)(ptr) /* disabled */ +# endif +#endif /* NO_PREFETCH */ + +#define CACHELINE_SIZE 64 + +#define PREFETCH_AREA(p, s) { \ + const char* const _ptr = (const char*)(p); \ + size_t const _size = (size_t)(s); \ + size_t _pos; \ + for (_pos=0; _pos<_size; _pos+=CACHELINE_SIZE) { \ + PREFETCH_L2(_ptr + _pos); \ + } \ +} + +/* vectorization + * older GCC (pre gcc-4.3 picked as the cutoff) uses a different syntax */ +#if !defined(__INTEL_COMPILER) && !defined(__clang__) && defined(__GNUC__) +# if (__GNUC__ == 4 && __GNUC_MINOR__ > 3) || (__GNUC__ >= 5) +# define DONT_VECTORIZE __attribute__((optimize("no-tree-vectorize"))) +# else +# define DONT_VECTORIZE _Pragma("GCC optimize(\"no-tree-vectorize\")") +# endif +#else +# define DONT_VECTORIZE +#endif + +/* Tell the compiler that a branch is likely or unlikely. + * Only use these macros if it causes the compiler to generate better code. + * If you can remove a LIKELY/UNLIKELY annotation without speed changes in gcc + * and clang, please do. + */ +#if defined(__GNUC__) +#define LIKELY(x) (__builtin_expect((x), 1)) +#define UNLIKELY(x) (__builtin_expect((x), 0)) +#else +#define LIKELY(x) (x) +#define UNLIKELY(x) (x) +#endif + +/* disable warnings */ +#ifdef _MSC_VER /* Visual Studio */ +# include /* For Visual 2005 */ +# pragma warning(disable : 4100) /* disable: C4100: unreferenced formal parameter */ +# pragma warning(disable : 4127) /* disable: C4127: conditional expression is constant */ +# pragma warning(disable : 4204) /* disable: C4204: non-constant aggregate initializer */ +# pragma warning(disable : 4214) /* disable: C4214: non-int bitfields */ +# pragma warning(disable : 4324) /* disable: C4324: padded structure */ +#endif + +/*Like DYNAMIC_BMI2 but for compile time determination of BMI2 support*/ +#ifndef STATIC_BMI2 +# if defined(_MSC_VER) && (defined(_M_X64) || defined(_M_I86)) +# ifdef __AVX2__ //MSVC does not have a BMI2 specific flag, but every CPU that supports AVX2 also supports BMI2 +# define STATIC_BMI2 1 +# endif +# endif +#endif + +#ifndef STATIC_BMI2 + #define STATIC_BMI2 0 +#endif + +/* compat. with non-clang compilers */ +#ifndef __has_builtin +# define __has_builtin(x) 0 +#endif + +/* compat. with non-clang compilers */ +#ifndef __has_feature +# define __has_feature(x) 0 +#endif + +/* detects whether we are being compiled under msan */ +#ifndef ZSTD_MEMORY_SANITIZER +# if __has_feature(memory_sanitizer) +# define ZSTD_MEMORY_SANITIZER 1 +# else +# define ZSTD_MEMORY_SANITIZER 0 +# endif +#endif + +#if ZSTD_MEMORY_SANITIZER +/* Not all platforms that support msan provide sanitizers/msan_interface.h. + * We therefore declare the functions we need ourselves, rather than trying to + * include the header file... */ +#include /* size_t */ +#define ZSTD_DEPS_NEED_STDINT +#include "zstd_deps.h" /* intptr_t */ + +/* Make memory region fully initialized (without changing its contents). */ +void __msan_unpoison(const volatile void *a, size_t size); + +/* Make memory region fully uninitialized (without changing its contents). + This is a legacy interface that does not update origin information. Use + __msan_allocated_memory() instead. */ +void __msan_poison(const volatile void *a, size_t size); + +/* Returns the offset of the first (at least partially) poisoned byte in the + memory range, or -1 if the whole range is good. */ +intptr_t __msan_test_shadow(const volatile void *x, size_t size); +#endif + +/* detects whether we are being compiled under asan */ +#ifndef ZSTD_ADDRESS_SANITIZER +# if __has_feature(address_sanitizer) +# define ZSTD_ADDRESS_SANITIZER 1 +# elif defined(__SANITIZE_ADDRESS__) +# define ZSTD_ADDRESS_SANITIZER 1 +# else +# define ZSTD_ADDRESS_SANITIZER 0 +# endif +#endif + +#if ZSTD_ADDRESS_SANITIZER +/* Not all platforms that support asan provide sanitizers/asan_interface.h. + * We therefore declare the functions we need ourselves, rather than trying to + * include the header file... */ +#include /* size_t */ + +/** + * Marks a memory region ([addr, addr+size)) as unaddressable. + * + * This memory must be previously allocated by your program. Instrumented + * code is forbidden from accessing addresses in this region until it is + * unpoisoned. This function is not guaranteed to poison the entire region - + * it could poison only a subregion of [addr, addr+size) due to ASan + * alignment restrictions. + * + * \note This function is not thread-safe because no two threads can poison or + * unpoison memory in the same memory region simultaneously. + * + * \param addr Start of memory region. + * \param size Size of memory region. */ +void __asan_poison_memory_region(void const volatile *addr, size_t size); + +/** + * Marks a memory region ([addr, addr+size)) as addressable. + * + * This memory must be previously allocated by your program. Accessing + * addresses in this region is allowed until this region is poisoned again. + * This function could unpoison a super-region of [addr, addr+size) due + * to ASan alignment restrictions. + * + * \note This function is not thread-safe because no two threads can + * poison or unpoison memory in the same memory region simultaneously. + * + * \param addr Start of memory region. + * \param size Size of memory region. */ +void __asan_unpoison_memory_region(void const volatile *addr, size_t size); +#endif + +#endif /* ZSTD_COMPILER_H */ diff --git a/dependencies/zstd-1.5.0/lib/common/cpu.h b/dependencies/zstd-1.5.0/lib/common/cpu.h new file mode 100644 index 0000000..8acd33b --- /dev/null +++ b/dependencies/zstd-1.5.0/lib/common/cpu.h @@ -0,0 +1,213 @@ +/* + * Copyright (c) Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + +#ifndef ZSTD_COMMON_CPU_H +#define ZSTD_COMMON_CPU_H + +/** + * Implementation taken from folly/CpuId.h + * https://github.com/facebook/folly/blob/master/folly/CpuId.h + */ + +#include "mem.h" + +#ifdef _MSC_VER +#include +#endif + +typedef struct { + U32 f1c; + U32 f1d; + U32 f7b; + U32 f7c; +} ZSTD_cpuid_t; + +MEM_STATIC ZSTD_cpuid_t ZSTD_cpuid(void) { + U32 f1c = 0; + U32 f1d = 0; + U32 f7b = 0; + U32 f7c = 0; +#if defined(_MSC_VER) && (defined(_M_X64) || defined(_M_IX86)) + int reg[4]; + __cpuid((int*)reg, 0); + { + int const n = reg[0]; + if (n >= 1) { + __cpuid((int*)reg, 1); + f1c = (U32)reg[2]; + f1d = (U32)reg[3]; + } + if (n >= 7) { + __cpuidex((int*)reg, 7, 0); + f7b = (U32)reg[1]; + f7c = (U32)reg[2]; + } + } +#elif defined(__i386__) && defined(__PIC__) && !defined(__clang__) && defined(__GNUC__) + /* The following block like the normal cpuid branch below, but gcc + * reserves ebx for use of its pic register so we must specially + * handle the save and restore to avoid clobbering the register + */ + U32 n; + __asm__( + "pushl %%ebx\n\t" + "cpuid\n\t" + "popl %%ebx\n\t" + : "=a"(n) + : "a"(0) + : "ecx", "edx"); + if (n >= 1) { + U32 f1a; + __asm__( + "pushl %%ebx\n\t" + "cpuid\n\t" + "popl %%ebx\n\t" + : "=a"(f1a), "=c"(f1c), "=d"(f1d) + : "a"(1)); + } + if (n >= 7) { + __asm__( + "pushl %%ebx\n\t" + "cpuid\n\t" + "movl %%ebx, %%eax\n\t" + "popl %%ebx" + : "=a"(f7b), "=c"(f7c) + : "a"(7), "c"(0) + : "edx"); + } +#elif defined(__x86_64__) || defined(_M_X64) || defined(__i386__) + U32 n; + __asm__("cpuid" : "=a"(n) : "a"(0) : "ebx", "ecx", "edx"); + if (n >= 1) { + U32 f1a; + __asm__("cpuid" : "=a"(f1a), "=c"(f1c), "=d"(f1d) : "a"(1) : "ebx"); + } + if (n >= 7) { + U32 f7a; + __asm__("cpuid" + : "=a"(f7a), "=b"(f7b), "=c"(f7c) + : "a"(7), "c"(0) + : "edx"); + } +#endif + { + ZSTD_cpuid_t cpuid; + cpuid.f1c = f1c; + cpuid.f1d = f1d; + cpuid.f7b = f7b; + cpuid.f7c = f7c; + return cpuid; + } +} + +#define X(name, r, bit) \ + MEM_STATIC int ZSTD_cpuid_##name(ZSTD_cpuid_t const cpuid) { \ + return ((cpuid.r) & (1U << bit)) != 0; \ + } + +/* cpuid(1): Processor Info and Feature Bits. */ +#define C(name, bit) X(name, f1c, bit) + C(sse3, 0) + C(pclmuldq, 1) + C(dtes64, 2) + C(monitor, 3) + C(dscpl, 4) + C(vmx, 5) + C(smx, 6) + C(eist, 7) + C(tm2, 8) + C(ssse3, 9) + C(cnxtid, 10) + C(fma, 12) + C(cx16, 13) + C(xtpr, 14) + C(pdcm, 15) + C(pcid, 17) + C(dca, 18) + C(sse41, 19) + C(sse42, 20) + C(x2apic, 21) + C(movbe, 22) + C(popcnt, 23) + C(tscdeadline, 24) + C(aes, 25) + C(xsave, 26) + C(osxsave, 27) + C(avx, 28) + C(f16c, 29) + C(rdrand, 30) +#undef C +#define D(name, bit) X(name, f1d, bit) + D(fpu, 0) + D(vme, 1) + D(de, 2) + D(pse, 3) + D(tsc, 4) + D(msr, 5) + D(pae, 6) + D(mce, 7) + D(cx8, 8) + D(apic, 9) + D(sep, 11) + D(mtrr, 12) + D(pge, 13) + D(mca, 14) + D(cmov, 15) + D(pat, 16) + D(pse36, 17) + D(psn, 18) + D(clfsh, 19) + D(ds, 21) + D(acpi, 22) + D(mmx, 23) + D(fxsr, 24) + D(sse, 25) + D(sse2, 26) + D(ss, 27) + D(htt, 28) + D(tm, 29) + D(pbe, 31) +#undef D + +/* cpuid(7): Extended Features. */ +#define B(name, bit) X(name, f7b, bit) + B(bmi1, 3) + B(hle, 4) + B(avx2, 5) + B(smep, 7) + B(bmi2, 8) + B(erms, 9) + B(invpcid, 10) + B(rtm, 11) + B(mpx, 14) + B(avx512f, 16) + B(avx512dq, 17) + B(rdseed, 18) + B(adx, 19) + B(smap, 20) + B(avx512ifma, 21) + B(pcommit, 22) + B(clflushopt, 23) + B(clwb, 24) + B(avx512pf, 26) + B(avx512er, 27) + B(avx512cd, 28) + B(sha, 29) + B(avx512bw, 30) + B(avx512vl, 31) +#undef B +#define C(name, bit) X(name, f7c, bit) + C(prefetchwt1, 0) + C(avx512vbmi, 1) +#undef C + +#undef X + +#endif /* ZSTD_COMMON_CPU_H */ diff --git a/dependencies/zstd-1.5.0/lib/common/debug.c b/dependencies/zstd-1.5.0/lib/common/debug.c new file mode 100644 index 0000000..bb863c9 --- /dev/null +++ b/dependencies/zstd-1.5.0/lib/common/debug.c @@ -0,0 +1,24 @@ +/* ****************************************************************** + * debug + * Part of FSE library + * Copyright (c) Yann Collet, Facebook, Inc. + * + * You can contact the author at : + * - Source repository : https://github.com/Cyan4973/FiniteStateEntropy + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. +****************************************************************** */ + + +/* + * This module only hosts one global variable + * which can be used to dynamically influence the verbosity of traces, + * such as DEBUGLOG and RAWLOG + */ + +#include "debug.h" + +int g_debuglevel = DEBUGLEVEL; diff --git a/dependencies/zstd-1.5.0/lib/common/debug.h b/dependencies/zstd-1.5.0/lib/common/debug.h new file mode 100644 index 0000000..3b2a320 --- /dev/null +++ b/dependencies/zstd-1.5.0/lib/common/debug.h @@ -0,0 +1,107 @@ +/* ****************************************************************** + * debug + * Part of FSE library + * Copyright (c) Yann Collet, Facebook, Inc. + * + * You can contact the author at : + * - Source repository : https://github.com/Cyan4973/FiniteStateEntropy + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. +****************************************************************** */ + + +/* + * The purpose of this header is to enable debug functions. + * They regroup assert(), DEBUGLOG() and RAWLOG() for run-time, + * and DEBUG_STATIC_ASSERT() for compile-time. + * + * By default, DEBUGLEVEL==0, which means run-time debug is disabled. + * + * Level 1 enables assert() only. + * Starting level 2, traces can be generated and pushed to stderr. + * The higher the level, the more verbose the traces. + * + * It's possible to dynamically adjust level using variable g_debug_level, + * which is only declared if DEBUGLEVEL>=2, + * and is a global variable, not multi-thread protected (use with care) + */ + +#ifndef DEBUG_H_12987983217 +#define DEBUG_H_12987983217 + +#if defined (__cplusplus) +extern "C" { +#endif + + +/* static assert is triggered at compile time, leaving no runtime artefact. + * static assert only works with compile-time constants. + * Also, this variant can only be used inside a function. */ +#define DEBUG_STATIC_ASSERT(c) (void)sizeof(char[(c) ? 1 : -1]) + + +/* DEBUGLEVEL is expected to be defined externally, + * typically through compiler command line. + * Value must be a number. */ +#ifndef DEBUGLEVEL +# define DEBUGLEVEL 0 +#endif + + +/* recommended values for DEBUGLEVEL : + * 0 : release mode, no debug, all run-time checks disabled + * 1 : enables assert() only, no display + * 2 : reserved, for currently active debug path + * 3 : events once per object lifetime (CCtx, CDict, etc.) + * 4 : events once per frame + * 5 : events once per block + * 6 : events once per sequence (verbose) + * 7+: events at every position (*very* verbose) + * + * It's generally inconvenient to output traces > 5. + * In which case, it's possible to selectively trigger high verbosity levels + * by modifying g_debug_level. + */ + +#if (DEBUGLEVEL>=1) +# define ZSTD_DEPS_NEED_ASSERT +# include "zstd_deps.h" +#else +# ifndef assert /* assert may be already defined, due to prior #include */ +# define assert(condition) ((void)0) /* disable assert (default) */ +# endif +#endif + +#if (DEBUGLEVEL>=2) +# define ZSTD_DEPS_NEED_IO +# include "zstd_deps.h" +extern int g_debuglevel; /* the variable is only declared, + it actually lives in debug.c, + and is shared by the whole process. + It's not thread-safe. + It's useful when enabling very verbose levels + on selective conditions (such as position in src) */ + +# define RAWLOG(l, ...) { \ + if (l<=g_debuglevel) { \ + ZSTD_DEBUG_PRINT(__VA_ARGS__); \ + } } +# define DEBUGLOG(l, ...) { \ + if (l<=g_debuglevel) { \ + ZSTD_DEBUG_PRINT(__FILE__ ": " __VA_ARGS__); \ + ZSTD_DEBUG_PRINT(" \n"); \ + } } +#else +# define RAWLOG(l, ...) {} /* disabled */ +# define DEBUGLOG(l, ...) {} /* disabled */ +#endif + + +#if defined (__cplusplus) +} +#endif + +#endif /* DEBUG_H_12987983217 */ diff --git a/dependencies/zstd-1.5.0/lib/common/entropy_common.c b/dependencies/zstd-1.5.0/lib/common/entropy_common.c new file mode 100644 index 0000000..41cd695 --- /dev/null +++ b/dependencies/zstd-1.5.0/lib/common/entropy_common.c @@ -0,0 +1,362 @@ +/* ****************************************************************** + * Common functions of New Generation Entropy library + * Copyright (c) Yann Collet, Facebook, Inc. + * + * You can contact the author at : + * - FSE+HUF source repository : https://github.com/Cyan4973/FiniteStateEntropy + * - Public forum : https://groups.google.com/forum/#!forum/lz4c + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. +****************************************************************** */ + +/* ************************************* +* Dependencies +***************************************/ +#include "mem.h" +#include "error_private.h" /* ERR_*, ERROR */ +#define FSE_STATIC_LINKING_ONLY /* FSE_MIN_TABLELOG */ +#include "fse.h" +#define HUF_STATIC_LINKING_ONLY /* HUF_TABLELOG_ABSOLUTEMAX */ +#include "huf.h" + + +/*=== Version ===*/ +unsigned FSE_versionNumber(void) { return FSE_VERSION_NUMBER; } + + +/*=== Error Management ===*/ +unsigned FSE_isError(size_t code) { return ERR_isError(code); } +const char* FSE_getErrorName(size_t code) { return ERR_getErrorName(code); } + +unsigned HUF_isError(size_t code) { return ERR_isError(code); } +const char* HUF_getErrorName(size_t code) { return ERR_getErrorName(code); } + + +/*-************************************************************** +* FSE NCount encoding-decoding +****************************************************************/ +static U32 FSE_ctz(U32 val) +{ + assert(val != 0); + { +# if defined(_MSC_VER) /* Visual */ + unsigned long r=0; + return _BitScanForward(&r, val) ? (unsigned)r : 0; +# elif defined(__GNUC__) && (__GNUC__ >= 3) /* GCC Intrinsic */ + return __builtin_ctz(val); +# elif defined(__ICCARM__) /* IAR Intrinsic */ + return __CTZ(val); +# else /* Software version */ + U32 count = 0; + while ((val & 1) == 0) { + val >>= 1; + ++count; + } + return count; +# endif + } +} + +FORCE_INLINE_TEMPLATE +size_t FSE_readNCount_body(short* normalizedCounter, unsigned* maxSVPtr, unsigned* tableLogPtr, + const void* headerBuffer, size_t hbSize) +{ + const BYTE* const istart = (const BYTE*) headerBuffer; + const BYTE* const iend = istart + hbSize; + const BYTE* ip = istart; + int nbBits; + int remaining; + int threshold; + U32 bitStream; + int bitCount; + unsigned charnum = 0; + unsigned const maxSV1 = *maxSVPtr + 1; + int previous0 = 0; + + if (hbSize < 8) { + /* This function only works when hbSize >= 8 */ + char buffer[8] = {0}; + ZSTD_memcpy(buffer, headerBuffer, hbSize); + { size_t const countSize = FSE_readNCount(normalizedCounter, maxSVPtr, tableLogPtr, + buffer, sizeof(buffer)); + if (FSE_isError(countSize)) return countSize; + if (countSize > hbSize) return ERROR(corruption_detected); + return countSize; + } } + assert(hbSize >= 8); + + /* init */ + ZSTD_memset(normalizedCounter, 0, (*maxSVPtr+1) * sizeof(normalizedCounter[0])); /* all symbols not present in NCount have a frequency of 0 */ + bitStream = MEM_readLE32(ip); + nbBits = (bitStream & 0xF) + FSE_MIN_TABLELOG; /* extract tableLog */ + if (nbBits > FSE_TABLELOG_ABSOLUTE_MAX) return ERROR(tableLog_tooLarge); + bitStream >>= 4; + bitCount = 4; + *tableLogPtr = nbBits; + remaining = (1<> 1; + while (repeats >= 12) { + charnum += 3 * 12; + if (LIKELY(ip <= iend-7)) { + ip += 3; + } else { + bitCount -= (int)(8 * (iend - 7 - ip)); + bitCount &= 31; + ip = iend - 4; + } + bitStream = MEM_readLE32(ip) >> bitCount; + repeats = FSE_ctz(~bitStream | 0x80000000) >> 1; + } + charnum += 3 * repeats; + bitStream >>= 2 * repeats; + bitCount += 2 * repeats; + + /* Add the final repeat which isn't 0b11. */ + assert((bitStream & 3) < 3); + charnum += bitStream & 3; + bitCount += 2; + + /* This is an error, but break and return an error + * at the end, because returning out of a loop makes + * it harder for the compiler to optimize. + */ + if (charnum >= maxSV1) break; + + /* We don't need to set the normalized count to 0 + * because we already memset the whole buffer to 0. + */ + + if (LIKELY(ip <= iend-7) || (ip + (bitCount>>3) <= iend-4)) { + assert((bitCount >> 3) <= 3); /* For first condition to work */ + ip += bitCount>>3; + bitCount &= 7; + } else { + bitCount -= (int)(8 * (iend - 4 - ip)); + bitCount &= 31; + ip = iend - 4; + } + bitStream = MEM_readLE32(ip) >> bitCount; + } + { + int const max = (2*threshold-1) - remaining; + int count; + + if ((bitStream & (threshold-1)) < (U32)max) { + count = bitStream & (threshold-1); + bitCount += nbBits-1; + } else { + count = bitStream & (2*threshold-1); + if (count >= threshold) count -= max; + bitCount += nbBits; + } + + count--; /* extra accuracy */ + /* When it matters (small blocks), this is a + * predictable branch, because we don't use -1. + */ + if (count >= 0) { + remaining -= count; + } else { + assert(count == -1); + remaining += count; + } + normalizedCounter[charnum++] = (short)count; + previous0 = !count; + + assert(threshold > 1); + if (remaining < threshold) { + /* This branch can be folded into the + * threshold update condition because we + * know that threshold > 1. + */ + if (remaining <= 1) break; + nbBits = BIT_highbit32(remaining) + 1; + threshold = 1 << (nbBits - 1); + } + if (charnum >= maxSV1) break; + + if (LIKELY(ip <= iend-7) || (ip + (bitCount>>3) <= iend-4)) { + ip += bitCount>>3; + bitCount &= 7; + } else { + bitCount -= (int)(8 * (iend - 4 - ip)); + bitCount &= 31; + ip = iend - 4; + } + bitStream = MEM_readLE32(ip) >> bitCount; + } } + if (remaining != 1) return ERROR(corruption_detected); + /* Only possible when there are too many zeros. */ + if (charnum > maxSV1) return ERROR(maxSymbolValue_tooSmall); + if (bitCount > 32) return ERROR(corruption_detected); + *maxSVPtr = charnum-1; + + ip += (bitCount+7)>>3; + return ip-istart; +} + +/* Avoids the FORCE_INLINE of the _body() function. */ +static size_t FSE_readNCount_body_default( + short* normalizedCounter, unsigned* maxSVPtr, unsigned* tableLogPtr, + const void* headerBuffer, size_t hbSize) +{ + return FSE_readNCount_body(normalizedCounter, maxSVPtr, tableLogPtr, headerBuffer, hbSize); +} + +#if DYNAMIC_BMI2 +TARGET_ATTRIBUTE("bmi2") static size_t FSE_readNCount_body_bmi2( + short* normalizedCounter, unsigned* maxSVPtr, unsigned* tableLogPtr, + const void* headerBuffer, size_t hbSize) +{ + return FSE_readNCount_body(normalizedCounter, maxSVPtr, tableLogPtr, headerBuffer, hbSize); +} +#endif + +size_t FSE_readNCount_bmi2( + short* normalizedCounter, unsigned* maxSVPtr, unsigned* tableLogPtr, + const void* headerBuffer, size_t hbSize, int bmi2) +{ +#if DYNAMIC_BMI2 + if (bmi2) { + return FSE_readNCount_body_bmi2(normalizedCounter, maxSVPtr, tableLogPtr, headerBuffer, hbSize); + } +#endif + (void)bmi2; + return FSE_readNCount_body_default(normalizedCounter, maxSVPtr, tableLogPtr, headerBuffer, hbSize); +} + +size_t FSE_readNCount( + short* normalizedCounter, unsigned* maxSVPtr, unsigned* tableLogPtr, + const void* headerBuffer, size_t hbSize) +{ + return FSE_readNCount_bmi2(normalizedCounter, maxSVPtr, tableLogPtr, headerBuffer, hbSize, /* bmi2 */ 0); +} + + +/*! HUF_readStats() : + Read compact Huffman tree, saved by HUF_writeCTable(). + `huffWeight` is destination buffer. + `rankStats` is assumed to be a table of at least HUF_TABLELOG_MAX U32. + @return : size read from `src` , or an error Code . + Note : Needed by HUF_readCTable() and HUF_readDTableX?() . +*/ +size_t HUF_readStats(BYTE* huffWeight, size_t hwSize, U32* rankStats, + U32* nbSymbolsPtr, U32* tableLogPtr, + const void* src, size_t srcSize) +{ + U32 wksp[HUF_READ_STATS_WORKSPACE_SIZE_U32]; + return HUF_readStats_wksp(huffWeight, hwSize, rankStats, nbSymbolsPtr, tableLogPtr, src, srcSize, wksp, sizeof(wksp), /* bmi2 */ 0); +} + +FORCE_INLINE_TEMPLATE size_t +HUF_readStats_body(BYTE* huffWeight, size_t hwSize, U32* rankStats, + U32* nbSymbolsPtr, U32* tableLogPtr, + const void* src, size_t srcSize, + void* workSpace, size_t wkspSize, + int bmi2) +{ + U32 weightTotal; + const BYTE* ip = (const BYTE*) src; + size_t iSize; + size_t oSize; + + if (!srcSize) return ERROR(srcSize_wrong); + iSize = ip[0]; + /* ZSTD_memset(huffWeight, 0, hwSize); *//* is not necessary, even though some analyzer complain ... */ + + if (iSize >= 128) { /* special header */ + oSize = iSize - 127; + iSize = ((oSize+1)/2); + if (iSize+1 > srcSize) return ERROR(srcSize_wrong); + if (oSize >= hwSize) return ERROR(corruption_detected); + ip += 1; + { U32 n; + for (n=0; n> 4; + huffWeight[n+1] = ip[n/2] & 15; + } } } + else { /* header compressed with FSE (normal case) */ + if (iSize+1 > srcSize) return ERROR(srcSize_wrong); + /* max (hwSize-1) values decoded, as last one is implied */ + oSize = FSE_decompress_wksp_bmi2(huffWeight, hwSize-1, ip+1, iSize, 6, workSpace, wkspSize, bmi2); + if (FSE_isError(oSize)) return oSize; + } + + /* collect weight stats */ + ZSTD_memset(rankStats, 0, (HUF_TABLELOG_MAX + 1) * sizeof(U32)); + weightTotal = 0; + { U32 n; for (n=0; n= HUF_TABLELOG_MAX) return ERROR(corruption_detected); + rankStats[huffWeight[n]]++; + weightTotal += (1 << huffWeight[n]) >> 1; + } } + if (weightTotal == 0) return ERROR(corruption_detected); + + /* get last non-null symbol weight (implied, total must be 2^n) */ + { U32 const tableLog = BIT_highbit32(weightTotal) + 1; + if (tableLog > HUF_TABLELOG_MAX) return ERROR(corruption_detected); + *tableLogPtr = tableLog; + /* determine last weight */ + { U32 const total = 1 << tableLog; + U32 const rest = total - weightTotal; + U32 const verif = 1 << BIT_highbit32(rest); + U32 const lastWeight = BIT_highbit32(rest) + 1; + if (verif != rest) return ERROR(corruption_detected); /* last value must be a clean power of 2 */ + huffWeight[oSize] = (BYTE)lastWeight; + rankStats[lastWeight]++; + } } + + /* check tree construction validity */ + if ((rankStats[1] < 2) || (rankStats[1] & 1)) return ERROR(corruption_detected); /* by construction : at least 2 elts of rank 1, must be even */ + + /* results */ + *nbSymbolsPtr = (U32)(oSize+1); + return iSize+1; +} + +/* Avoids the FORCE_INLINE of the _body() function. */ +static size_t HUF_readStats_body_default(BYTE* huffWeight, size_t hwSize, U32* rankStats, + U32* nbSymbolsPtr, U32* tableLogPtr, + const void* src, size_t srcSize, + void* workSpace, size_t wkspSize) +{ + return HUF_readStats_body(huffWeight, hwSize, rankStats, nbSymbolsPtr, tableLogPtr, src, srcSize, workSpace, wkspSize, 0); +} + +#if DYNAMIC_BMI2 +static TARGET_ATTRIBUTE("bmi2") size_t HUF_readStats_body_bmi2(BYTE* huffWeight, size_t hwSize, U32* rankStats, + U32* nbSymbolsPtr, U32* tableLogPtr, + const void* src, size_t srcSize, + void* workSpace, size_t wkspSize) +{ + return HUF_readStats_body(huffWeight, hwSize, rankStats, nbSymbolsPtr, tableLogPtr, src, srcSize, workSpace, wkspSize, 1); +} +#endif + +size_t HUF_readStats_wksp(BYTE* huffWeight, size_t hwSize, U32* rankStats, + U32* nbSymbolsPtr, U32* tableLogPtr, + const void* src, size_t srcSize, + void* workSpace, size_t wkspSize, + int bmi2) +{ +#if DYNAMIC_BMI2 + if (bmi2) { + return HUF_readStats_body_bmi2(huffWeight, hwSize, rankStats, nbSymbolsPtr, tableLogPtr, src, srcSize, workSpace, wkspSize); + } +#endif + (void)bmi2; + return HUF_readStats_body_default(huffWeight, hwSize, rankStats, nbSymbolsPtr, tableLogPtr, src, srcSize, workSpace, wkspSize); +} diff --git a/dependencies/zstd-1.5.0/lib/common/error_private.c b/dependencies/zstd-1.5.0/lib/common/error_private.c new file mode 100644 index 0000000..6d1135f --- /dev/null +++ b/dependencies/zstd-1.5.0/lib/common/error_private.c @@ -0,0 +1,56 @@ +/* + * Copyright (c) Yann Collet, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + +/* The purpose of this file is to have a single list of error strings embedded in binary */ + +#include "error_private.h" + +const char* ERR_getErrorString(ERR_enum code) +{ +#ifdef ZSTD_STRIP_ERROR_STRINGS + (void)code; + return "Error strings stripped"; +#else + static const char* const notErrorCode = "Unspecified error code"; + switch( code ) + { + case PREFIX(no_error): return "No error detected"; + case PREFIX(GENERIC): return "Error (generic)"; + case PREFIX(prefix_unknown): return "Unknown frame descriptor"; + case PREFIX(version_unsupported): return "Version not supported"; + case PREFIX(frameParameter_unsupported): return "Unsupported frame parameter"; + case PREFIX(frameParameter_windowTooLarge): return "Frame requires too much memory for decoding"; + case PREFIX(corruption_detected): return "Corrupted block detected"; + case PREFIX(checksum_wrong): return "Restored data doesn't match checksum"; + case PREFIX(parameter_unsupported): return "Unsupported parameter"; + case PREFIX(parameter_outOfBound): return "Parameter is out of bound"; + case PREFIX(init_missing): return "Context should be init first"; + case PREFIX(memory_allocation): return "Allocation error : not enough memory"; + case PREFIX(workSpace_tooSmall): return "workSpace buffer is not large enough"; + case PREFIX(stage_wrong): return "Operation not authorized at current processing stage"; + case PREFIX(tableLog_tooLarge): return "tableLog requires too much memory : unsupported"; + case PREFIX(maxSymbolValue_tooLarge): return "Unsupported max Symbol Value : too large"; + case PREFIX(maxSymbolValue_tooSmall): return "Specified maxSymbolValue is too small"; + case PREFIX(dictionary_corrupted): return "Dictionary is corrupted"; + case PREFIX(dictionary_wrong): return "Dictionary mismatch"; + case PREFIX(dictionaryCreation_failed): return "Cannot create Dictionary from provided samples"; + case PREFIX(dstSize_tooSmall): return "Destination buffer is too small"; + case PREFIX(srcSize_wrong): return "Src size is incorrect"; + case PREFIX(dstBuffer_null): return "Operation on NULL destination buffer"; + /* following error codes are not stable and may be removed or changed in a future version */ + case PREFIX(frameIndex_tooLarge): return "Frame index is too large"; + case PREFIX(seekableIO): return "An I/O error occurred when reading/seeking"; + case PREFIX(dstBuffer_wrong): return "Destination buffer is wrong"; + case PREFIX(srcBuffer_wrong): return "Source buffer is wrong"; + case PREFIX(maxCode): + default: return notErrorCode; + } +#endif +} diff --git a/dependencies/zstd-1.5.0/lib/common/error_private.h b/dependencies/zstd-1.5.0/lib/common/error_private.h new file mode 100644 index 0000000..6d8b9f7 --- /dev/null +++ b/dependencies/zstd-1.5.0/lib/common/error_private.h @@ -0,0 +1,80 @@ +/* + * Copyright (c) Yann Collet, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + +/* Note : this module is expected to remain private, do not expose it */ + +#ifndef ERROR_H_MODULE +#define ERROR_H_MODULE + +#if defined (__cplusplus) +extern "C" { +#endif + + +/* **************************************** +* Dependencies +******************************************/ +#include "../zstd_errors.h" /* enum list */ +#include "zstd_deps.h" /* size_t */ + + +/* **************************************** +* Compiler-specific +******************************************/ +#if defined(__GNUC__) +# define ERR_STATIC static __attribute__((unused)) +#elif defined (__cplusplus) || (defined (__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) /* C99 */) +# define ERR_STATIC static inline +#elif defined(_MSC_VER) +# define ERR_STATIC static __inline +#else +# define ERR_STATIC static /* this version may generate warnings for unused static functions; disable the relevant warning */ +#endif + + +/*-**************************************** +* Customization (error_public.h) +******************************************/ +typedef ZSTD_ErrorCode ERR_enum; +#define PREFIX(name) ZSTD_error_##name + + +/*-**************************************** +* Error codes handling +******************************************/ +#undef ERROR /* already defined on Visual Studio */ +#define ERROR(name) ZSTD_ERROR(name) +#define ZSTD_ERROR(name) ((size_t)-PREFIX(name)) + +ERR_STATIC unsigned ERR_isError(size_t code) { return (code > ERROR(maxCode)); } + +ERR_STATIC ERR_enum ERR_getErrorCode(size_t code) { if (!ERR_isError(code)) return (ERR_enum)0; return (ERR_enum) (0-code); } + +/* check and forward error code */ +#define CHECK_V_F(e, f) size_t const e = f; if (ERR_isError(e)) return e +#define CHECK_F(f) { CHECK_V_F(_var_err__, f); } + + +/*-**************************************** +* Error Strings +******************************************/ + +const char* ERR_getErrorString(ERR_enum code); /* error_private.c */ + +ERR_STATIC const char* ERR_getErrorName(size_t code) +{ + return ERR_getErrorString(ERR_getErrorCode(code)); +} + +#if defined (__cplusplus) +} +#endif + +#endif /* ERROR_H_MODULE */ diff --git a/dependencies/zstd-1.5.0/lib/common/fse.h b/dependencies/zstd-1.5.0/lib/common/fse.h new file mode 100644 index 0000000..19dd4fe --- /dev/null +++ b/dependencies/zstd-1.5.0/lib/common/fse.h @@ -0,0 +1,716 @@ +/* ****************************************************************** + * FSE : Finite State Entropy codec + * Public Prototypes declaration + * Copyright (c) Yann Collet, Facebook, Inc. + * + * You can contact the author at : + * - Source repository : https://github.com/Cyan4973/FiniteStateEntropy + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. +****************************************************************** */ + +#if defined (__cplusplus) +extern "C" { +#endif + +#ifndef FSE_H +#define FSE_H + + +/*-***************************************** +* Dependencies +******************************************/ +#include "zstd_deps.h" /* size_t, ptrdiff_t */ + + +/*-***************************************** +* FSE_PUBLIC_API : control library symbols visibility +******************************************/ +#if defined(FSE_DLL_EXPORT) && (FSE_DLL_EXPORT==1) && defined(__GNUC__) && (__GNUC__ >= 4) +# define FSE_PUBLIC_API __attribute__ ((visibility ("default"))) +#elif defined(FSE_DLL_EXPORT) && (FSE_DLL_EXPORT==1) /* Visual expected */ +# define FSE_PUBLIC_API __declspec(dllexport) +#elif defined(FSE_DLL_IMPORT) && (FSE_DLL_IMPORT==1) +# define FSE_PUBLIC_API __declspec(dllimport) /* It isn't required but allows to generate better code, saving a function pointer load from the IAT and an indirect jump.*/ +#else +# define FSE_PUBLIC_API +#endif + +/*------ Version ------*/ +#define FSE_VERSION_MAJOR 0 +#define FSE_VERSION_MINOR 9 +#define FSE_VERSION_RELEASE 0 + +#define FSE_LIB_VERSION FSE_VERSION_MAJOR.FSE_VERSION_MINOR.FSE_VERSION_RELEASE +#define FSE_QUOTE(str) #str +#define FSE_EXPAND_AND_QUOTE(str) FSE_QUOTE(str) +#define FSE_VERSION_STRING FSE_EXPAND_AND_QUOTE(FSE_LIB_VERSION) + +#define FSE_VERSION_NUMBER (FSE_VERSION_MAJOR *100*100 + FSE_VERSION_MINOR *100 + FSE_VERSION_RELEASE) +FSE_PUBLIC_API unsigned FSE_versionNumber(void); /**< library version number; to be used when checking dll version */ + + +/*-**************************************** +* FSE simple functions +******************************************/ +/*! FSE_compress() : + Compress content of buffer 'src', of size 'srcSize', into destination buffer 'dst'. + 'dst' buffer must be already allocated. Compression runs faster is dstCapacity >= FSE_compressBound(srcSize). + @return : size of compressed data (<= dstCapacity). + Special values : if return == 0, srcData is not compressible => Nothing is stored within dst !!! + if return == 1, srcData is a single byte symbol * srcSize times. Use RLE compression instead. + if FSE_isError(return), compression failed (more details using FSE_getErrorName()) +*/ +FSE_PUBLIC_API size_t FSE_compress(void* dst, size_t dstCapacity, + const void* src, size_t srcSize); + +/*! FSE_decompress(): + Decompress FSE data from buffer 'cSrc', of size 'cSrcSize', + into already allocated destination buffer 'dst', of size 'dstCapacity'. + @return : size of regenerated data (<= maxDstSize), + or an error code, which can be tested using FSE_isError() . + + ** Important ** : FSE_decompress() does not decompress non-compressible nor RLE data !!! + Why ? : making this distinction requires a header. + Header management is intentionally delegated to the user layer, which can better manage special cases. +*/ +FSE_PUBLIC_API size_t FSE_decompress(void* dst, size_t dstCapacity, + const void* cSrc, size_t cSrcSize); + + +/*-***************************************** +* Tool functions +******************************************/ +FSE_PUBLIC_API size_t FSE_compressBound(size_t size); /* maximum compressed size */ + +/* Error Management */ +FSE_PUBLIC_API unsigned FSE_isError(size_t code); /* tells if a return value is an error code */ +FSE_PUBLIC_API const char* FSE_getErrorName(size_t code); /* provides error code string (useful for debugging) */ + + +/*-***************************************** +* FSE advanced functions +******************************************/ +/*! FSE_compress2() : + Same as FSE_compress(), but allows the selection of 'maxSymbolValue' and 'tableLog' + Both parameters can be defined as '0' to mean : use default value + @return : size of compressed data + Special values : if return == 0, srcData is not compressible => Nothing is stored within cSrc !!! + if return == 1, srcData is a single byte symbol * srcSize times. Use RLE compression. + if FSE_isError(return), it's an error code. +*/ +FSE_PUBLIC_API size_t FSE_compress2 (void* dst, size_t dstSize, const void* src, size_t srcSize, unsigned maxSymbolValue, unsigned tableLog); + + +/*-***************************************** +* FSE detailed API +******************************************/ +/*! +FSE_compress() does the following: +1. count symbol occurrence from source[] into table count[] (see hist.h) +2. normalize counters so that sum(count[]) == Power_of_2 (2^tableLog) +3. save normalized counters to memory buffer using writeNCount() +4. build encoding table 'CTable' from normalized counters +5. encode the data stream using encoding table 'CTable' + +FSE_decompress() does the following: +1. read normalized counters with readNCount() +2. build decoding table 'DTable' from normalized counters +3. decode the data stream using decoding table 'DTable' + +The following API allows targeting specific sub-functions for advanced tasks. +For example, it's possible to compress several blocks using the same 'CTable', +or to save and provide normalized distribution using external method. +*/ + +/* *** COMPRESSION *** */ + +/*! FSE_optimalTableLog(): + dynamically downsize 'tableLog' when conditions are met. + It saves CPU time, by using smaller tables, while preserving or even improving compression ratio. + @return : recommended tableLog (necessarily <= 'maxTableLog') */ +FSE_PUBLIC_API unsigned FSE_optimalTableLog(unsigned maxTableLog, size_t srcSize, unsigned maxSymbolValue); + +/*! FSE_normalizeCount(): + normalize counts so that sum(count[]) == Power_of_2 (2^tableLog) + 'normalizedCounter' is a table of short, of minimum size (maxSymbolValue+1). + useLowProbCount is a boolean parameter which trades off compressed size for + faster header decoding. When it is set to 1, the compressed data will be slightly + smaller. And when it is set to 0, FSE_readNCount() and FSE_buildDTable() will be + faster. If you are compressing a small amount of data (< 2 KB) then useLowProbCount=0 + is a good default, since header deserialization makes a big speed difference. + Otherwise, useLowProbCount=1 is a good default, since the speed difference is small. + @return : tableLog, + or an errorCode, which can be tested using FSE_isError() */ +FSE_PUBLIC_API size_t FSE_normalizeCount(short* normalizedCounter, unsigned tableLog, + const unsigned* count, size_t srcSize, unsigned maxSymbolValue, unsigned useLowProbCount); + +/*! FSE_NCountWriteBound(): + Provides the maximum possible size of an FSE normalized table, given 'maxSymbolValue' and 'tableLog'. + Typically useful for allocation purpose. */ +FSE_PUBLIC_API size_t FSE_NCountWriteBound(unsigned maxSymbolValue, unsigned tableLog); + +/*! FSE_writeNCount(): + Compactly save 'normalizedCounter' into 'buffer'. + @return : size of the compressed table, + or an errorCode, which can be tested using FSE_isError(). */ +FSE_PUBLIC_API size_t FSE_writeNCount (void* buffer, size_t bufferSize, + const short* normalizedCounter, + unsigned maxSymbolValue, unsigned tableLog); + +/*! Constructor and Destructor of FSE_CTable. + Note that FSE_CTable size depends on 'tableLog' and 'maxSymbolValue' */ +typedef unsigned FSE_CTable; /* don't allocate that. It's only meant to be more restrictive than void* */ +FSE_PUBLIC_API FSE_CTable* FSE_createCTable (unsigned maxSymbolValue, unsigned tableLog); +FSE_PUBLIC_API void FSE_freeCTable (FSE_CTable* ct); + +/*! FSE_buildCTable(): + Builds `ct`, which must be already allocated, using FSE_createCTable(). + @return : 0, or an errorCode, which can be tested using FSE_isError() */ +FSE_PUBLIC_API size_t FSE_buildCTable(FSE_CTable* ct, const short* normalizedCounter, unsigned maxSymbolValue, unsigned tableLog); + +/*! FSE_compress_usingCTable(): + Compress `src` using `ct` into `dst` which must be already allocated. + @return : size of compressed data (<= `dstCapacity`), + or 0 if compressed data could not fit into `dst`, + or an errorCode, which can be tested using FSE_isError() */ +FSE_PUBLIC_API size_t FSE_compress_usingCTable (void* dst, size_t dstCapacity, const void* src, size_t srcSize, const FSE_CTable* ct); + +/*! +Tutorial : +---------- +The first step is to count all symbols. FSE_count() does this job very fast. +Result will be saved into 'count', a table of unsigned int, which must be already allocated, and have 'maxSymbolValuePtr[0]+1' cells. +'src' is a table of bytes of size 'srcSize'. All values within 'src' MUST be <= maxSymbolValuePtr[0] +maxSymbolValuePtr[0] will be updated, with its real value (necessarily <= original value) +FSE_count() will return the number of occurrence of the most frequent symbol. +This can be used to know if there is a single symbol within 'src', and to quickly evaluate its compressibility. +If there is an error, the function will return an ErrorCode (which can be tested using FSE_isError()). + +The next step is to normalize the frequencies. +FSE_normalizeCount() will ensure that sum of frequencies is == 2 ^'tableLog'. +It also guarantees a minimum of 1 to any Symbol with frequency >= 1. +You can use 'tableLog'==0 to mean "use default tableLog value". +If you are unsure of which tableLog value to use, you can ask FSE_optimalTableLog(), +which will provide the optimal valid tableLog given sourceSize, maxSymbolValue, and a user-defined maximum (0 means "default"). + +The result of FSE_normalizeCount() will be saved into a table, +called 'normalizedCounter', which is a table of signed short. +'normalizedCounter' must be already allocated, and have at least 'maxSymbolValue+1' cells. +The return value is tableLog if everything proceeded as expected. +It is 0 if there is a single symbol within distribution. +If there is an error (ex: invalid tableLog value), the function will return an ErrorCode (which can be tested using FSE_isError()). + +'normalizedCounter' can be saved in a compact manner to a memory area using FSE_writeNCount(). +'buffer' must be already allocated. +For guaranteed success, buffer size must be at least FSE_headerBound(). +The result of the function is the number of bytes written into 'buffer'. +If there is an error, the function will return an ErrorCode (which can be tested using FSE_isError(); ex : buffer size too small). + +'normalizedCounter' can then be used to create the compression table 'CTable'. +The space required by 'CTable' must be already allocated, using FSE_createCTable(). +You can then use FSE_buildCTable() to fill 'CTable'. +If there is an error, both functions will return an ErrorCode (which can be tested using FSE_isError()). + +'CTable' can then be used to compress 'src', with FSE_compress_usingCTable(). +Similar to FSE_count(), the convention is that 'src' is assumed to be a table of char of size 'srcSize' +The function returns the size of compressed data (without header), necessarily <= `dstCapacity`. +If it returns '0', compressed data could not fit into 'dst'. +If there is an error, the function will return an ErrorCode (which can be tested using FSE_isError()). +*/ + + +/* *** DECOMPRESSION *** */ + +/*! FSE_readNCount(): + Read compactly saved 'normalizedCounter' from 'rBuffer'. + @return : size read from 'rBuffer', + or an errorCode, which can be tested using FSE_isError(). + maxSymbolValuePtr[0] and tableLogPtr[0] will also be updated with their respective values */ +FSE_PUBLIC_API size_t FSE_readNCount (short* normalizedCounter, + unsigned* maxSymbolValuePtr, unsigned* tableLogPtr, + const void* rBuffer, size_t rBuffSize); + +/*! FSE_readNCount_bmi2(): + * Same as FSE_readNCount() but pass bmi2=1 when your CPU supports BMI2 and 0 otherwise. + */ +FSE_PUBLIC_API size_t FSE_readNCount_bmi2(short* normalizedCounter, + unsigned* maxSymbolValuePtr, unsigned* tableLogPtr, + const void* rBuffer, size_t rBuffSize, int bmi2); + +/*! Constructor and Destructor of FSE_DTable. + Note that its size depends on 'tableLog' */ +typedef unsigned FSE_DTable; /* don't allocate that. It's just a way to be more restrictive than void* */ +FSE_PUBLIC_API FSE_DTable* FSE_createDTable(unsigned tableLog); +FSE_PUBLIC_API void FSE_freeDTable(FSE_DTable* dt); + +/*! FSE_buildDTable(): + Builds 'dt', which must be already allocated, using FSE_createDTable(). + return : 0, or an errorCode, which can be tested using FSE_isError() */ +FSE_PUBLIC_API size_t FSE_buildDTable (FSE_DTable* dt, const short* normalizedCounter, unsigned maxSymbolValue, unsigned tableLog); + +/*! FSE_decompress_usingDTable(): + Decompress compressed source `cSrc` of size `cSrcSize` using `dt` + into `dst` which must be already allocated. + @return : size of regenerated data (necessarily <= `dstCapacity`), + or an errorCode, which can be tested using FSE_isError() */ +FSE_PUBLIC_API size_t FSE_decompress_usingDTable(void* dst, size_t dstCapacity, const void* cSrc, size_t cSrcSize, const FSE_DTable* dt); + +/*! +Tutorial : +---------- +(Note : these functions only decompress FSE-compressed blocks. + If block is uncompressed, use memcpy() instead + If block is a single repeated byte, use memset() instead ) + +The first step is to obtain the normalized frequencies of symbols. +This can be performed by FSE_readNCount() if it was saved using FSE_writeNCount(). +'normalizedCounter' must be already allocated, and have at least 'maxSymbolValuePtr[0]+1' cells of signed short. +In practice, that means it's necessary to know 'maxSymbolValue' beforehand, +or size the table to handle worst case situations (typically 256). +FSE_readNCount() will provide 'tableLog' and 'maxSymbolValue'. +The result of FSE_readNCount() is the number of bytes read from 'rBuffer'. +Note that 'rBufferSize' must be at least 4 bytes, even if useful information is less than that. +If there is an error, the function will return an error code, which can be tested using FSE_isError(). + +The next step is to build the decompression tables 'FSE_DTable' from 'normalizedCounter'. +This is performed by the function FSE_buildDTable(). +The space required by 'FSE_DTable' must be already allocated using FSE_createDTable(). +If there is an error, the function will return an error code, which can be tested using FSE_isError(). + +`FSE_DTable` can then be used to decompress `cSrc`, with FSE_decompress_usingDTable(). +`cSrcSize` must be strictly correct, otherwise decompression will fail. +FSE_decompress_usingDTable() result will tell how many bytes were regenerated (<=`dstCapacity`). +If there is an error, the function will return an error code, which can be tested using FSE_isError(). (ex: dst buffer too small) +*/ + +#endif /* FSE_H */ + +#if defined(FSE_STATIC_LINKING_ONLY) && !defined(FSE_H_FSE_STATIC_LINKING_ONLY) +#define FSE_H_FSE_STATIC_LINKING_ONLY + +/* *** Dependency *** */ +#include "bitstream.h" + + +/* ***************************************** +* Static allocation +*******************************************/ +/* FSE buffer bounds */ +#define FSE_NCOUNTBOUND 512 +#define FSE_BLOCKBOUND(size) ((size) + ((size)>>7) + 4 /* fse states */ + sizeof(size_t) /* bitContainer */) +#define FSE_COMPRESSBOUND(size) (FSE_NCOUNTBOUND + FSE_BLOCKBOUND(size)) /* Macro version, useful for static allocation */ + +/* It is possible to statically allocate FSE CTable/DTable as a table of FSE_CTable/FSE_DTable using below macros */ +#define FSE_CTABLE_SIZE_U32(maxTableLog, maxSymbolValue) (1 + (1<<((maxTableLog)-1)) + (((maxSymbolValue)+1)*2)) +#define FSE_DTABLE_SIZE_U32(maxTableLog) (1 + (1<<(maxTableLog))) + +/* or use the size to malloc() space directly. Pay attention to alignment restrictions though */ +#define FSE_CTABLE_SIZE(maxTableLog, maxSymbolValue) (FSE_CTABLE_SIZE_U32(maxTableLog, maxSymbolValue) * sizeof(FSE_CTable)) +#define FSE_DTABLE_SIZE(maxTableLog) (FSE_DTABLE_SIZE_U32(maxTableLog) * sizeof(FSE_DTable)) + + +/* ***************************************** + * FSE advanced API + ***************************************** */ + +unsigned FSE_optimalTableLog_internal(unsigned maxTableLog, size_t srcSize, unsigned maxSymbolValue, unsigned minus); +/**< same as FSE_optimalTableLog(), which used `minus==2` */ + +/* FSE_compress_wksp() : + * Same as FSE_compress2(), but using an externally allocated scratch buffer (`workSpace`). + * FSE_COMPRESS_WKSP_SIZE_U32() provides the minimum size required for `workSpace` as a table of FSE_CTable. + */ +#define FSE_COMPRESS_WKSP_SIZE_U32(maxTableLog, maxSymbolValue) ( FSE_CTABLE_SIZE_U32(maxTableLog, maxSymbolValue) + ((maxTableLog > 12) ? (1 << (maxTableLog - 2)) : 1024) ) +size_t FSE_compress_wksp (void* dst, size_t dstSize, const void* src, size_t srcSize, unsigned maxSymbolValue, unsigned tableLog, void* workSpace, size_t wkspSize); + +size_t FSE_buildCTable_raw (FSE_CTable* ct, unsigned nbBits); +/**< build a fake FSE_CTable, designed for a flat distribution, where each symbol uses nbBits */ + +size_t FSE_buildCTable_rle (FSE_CTable* ct, unsigned char symbolValue); +/**< build a fake FSE_CTable, designed to compress always the same symbolValue */ + +/* FSE_buildCTable_wksp() : + * Same as FSE_buildCTable(), but using an externally allocated scratch buffer (`workSpace`). + * `wkspSize` must be >= `FSE_BUILD_CTABLE_WORKSPACE_SIZE_U32(maxSymbolValue, tableLog)` of `unsigned`. + */ +#define FSE_BUILD_CTABLE_WORKSPACE_SIZE_U32(maxSymbolValue, tableLog) (maxSymbolValue + 2 + (1ull << (tableLog - 2))) +#define FSE_BUILD_CTABLE_WORKSPACE_SIZE(maxSymbolValue, tableLog) (sizeof(unsigned) * FSE_BUILD_CTABLE_WORKSPACE_SIZE_U32(maxSymbolValue, tableLog)) +size_t FSE_buildCTable_wksp(FSE_CTable* ct, const short* normalizedCounter, unsigned maxSymbolValue, unsigned tableLog, void* workSpace, size_t wkspSize); + +#define FSE_BUILD_DTABLE_WKSP_SIZE(maxTableLog, maxSymbolValue) (sizeof(short) * (maxSymbolValue + 1) + (1ULL << maxTableLog) + 8) +#define FSE_BUILD_DTABLE_WKSP_SIZE_U32(maxTableLog, maxSymbolValue) ((FSE_BUILD_DTABLE_WKSP_SIZE(maxTableLog, maxSymbolValue) + sizeof(unsigned) - 1) / sizeof(unsigned)) +FSE_PUBLIC_API size_t FSE_buildDTable_wksp(FSE_DTable* dt, const short* normalizedCounter, unsigned maxSymbolValue, unsigned tableLog, void* workSpace, size_t wkspSize); +/**< Same as FSE_buildDTable(), using an externally allocated `workspace` produced with `FSE_BUILD_DTABLE_WKSP_SIZE_U32(maxSymbolValue)` */ + +size_t FSE_buildDTable_raw (FSE_DTable* dt, unsigned nbBits); +/**< build a fake FSE_DTable, designed to read a flat distribution where each symbol uses nbBits */ + +size_t FSE_buildDTable_rle (FSE_DTable* dt, unsigned char symbolValue); +/**< build a fake FSE_DTable, designed to always generate the same symbolValue */ + +#define FSE_DECOMPRESS_WKSP_SIZE_U32(maxTableLog, maxSymbolValue) (FSE_DTABLE_SIZE_U32(maxTableLog) + FSE_BUILD_DTABLE_WKSP_SIZE_U32(maxTableLog, maxSymbolValue) + (FSE_MAX_SYMBOL_VALUE + 1) / 2 + 1) +#define FSE_DECOMPRESS_WKSP_SIZE(maxTableLog, maxSymbolValue) (FSE_DECOMPRESS_WKSP_SIZE_U32(maxTableLog, maxSymbolValue) * sizeof(unsigned)) +size_t FSE_decompress_wksp(void* dst, size_t dstCapacity, const void* cSrc, size_t cSrcSize, unsigned maxLog, void* workSpace, size_t wkspSize); +/**< same as FSE_decompress(), using an externally allocated `workSpace` produced with `FSE_DECOMPRESS_WKSP_SIZE_U32(maxLog, maxSymbolValue)` */ + +size_t FSE_decompress_wksp_bmi2(void* dst, size_t dstCapacity, const void* cSrc, size_t cSrcSize, unsigned maxLog, void* workSpace, size_t wkspSize, int bmi2); +/**< Same as FSE_decompress_wksp() but with dynamic BMI2 support. Pass 1 if your CPU supports BMI2 or 0 if it doesn't. */ + +typedef enum { + FSE_repeat_none, /**< Cannot use the previous table */ + FSE_repeat_check, /**< Can use the previous table but it must be checked */ + FSE_repeat_valid /**< Can use the previous table and it is assumed to be valid */ + } FSE_repeat; + +/* ***************************************** +* FSE symbol compression API +*******************************************/ +/*! + This API consists of small unitary functions, which highly benefit from being inlined. + Hence their body are included in next section. +*/ +typedef struct { + ptrdiff_t value; + const void* stateTable; + const void* symbolTT; + unsigned stateLog; +} FSE_CState_t; + +static void FSE_initCState(FSE_CState_t* CStatePtr, const FSE_CTable* ct); + +static void FSE_encodeSymbol(BIT_CStream_t* bitC, FSE_CState_t* CStatePtr, unsigned symbol); + +static void FSE_flushCState(BIT_CStream_t* bitC, const FSE_CState_t* CStatePtr); + +/**< +These functions are inner components of FSE_compress_usingCTable(). +They allow the creation of custom streams, mixing multiple tables and bit sources. + +A key property to keep in mind is that encoding and decoding are done **in reverse direction**. +So the first symbol you will encode is the last you will decode, like a LIFO stack. + +You will need a few variables to track your CStream. They are : + +FSE_CTable ct; // Provided by FSE_buildCTable() +BIT_CStream_t bitStream; // bitStream tracking structure +FSE_CState_t state; // State tracking structure (can have several) + + +The first thing to do is to init bitStream and state. + size_t errorCode = BIT_initCStream(&bitStream, dstBuffer, maxDstSize); + FSE_initCState(&state, ct); + +Note that BIT_initCStream() can produce an error code, so its result should be tested, using FSE_isError(); +You can then encode your input data, byte after byte. +FSE_encodeSymbol() outputs a maximum of 'tableLog' bits at a time. +Remember decoding will be done in reverse direction. + FSE_encodeByte(&bitStream, &state, symbol); + +At any time, you can also add any bit sequence. +Note : maximum allowed nbBits is 25, for compatibility with 32-bits decoders + BIT_addBits(&bitStream, bitField, nbBits); + +The above methods don't commit data to memory, they just store it into local register, for speed. +Local register size is 64-bits on 64-bits systems, 32-bits on 32-bits systems (size_t). +Writing data to memory is a manual operation, performed by the flushBits function. + BIT_flushBits(&bitStream); + +Your last FSE encoding operation shall be to flush your last state value(s). + FSE_flushState(&bitStream, &state); + +Finally, you must close the bitStream. +The function returns the size of CStream in bytes. +If data couldn't fit into dstBuffer, it will return a 0 ( == not compressible) +If there is an error, it returns an errorCode (which can be tested using FSE_isError()). + size_t size = BIT_closeCStream(&bitStream); +*/ + + +/* ***************************************** +* FSE symbol decompression API +*******************************************/ +typedef struct { + size_t state; + const void* table; /* precise table may vary, depending on U16 */ +} FSE_DState_t; + + +static void FSE_initDState(FSE_DState_t* DStatePtr, BIT_DStream_t* bitD, const FSE_DTable* dt); + +static unsigned char FSE_decodeSymbol(FSE_DState_t* DStatePtr, BIT_DStream_t* bitD); + +static unsigned FSE_endOfDState(const FSE_DState_t* DStatePtr); + +/**< +Let's now decompose FSE_decompress_usingDTable() into its unitary components. +You will decode FSE-encoded symbols from the bitStream, +and also any other bitFields you put in, **in reverse order**. + +You will need a few variables to track your bitStream. They are : + +BIT_DStream_t DStream; // Stream context +FSE_DState_t DState; // State context. Multiple ones are possible +FSE_DTable* DTablePtr; // Decoding table, provided by FSE_buildDTable() + +The first thing to do is to init the bitStream. + errorCode = BIT_initDStream(&DStream, srcBuffer, srcSize); + +You should then retrieve your initial state(s) +(in reverse flushing order if you have several ones) : + errorCode = FSE_initDState(&DState, &DStream, DTablePtr); + +You can then decode your data, symbol after symbol. +For information the maximum number of bits read by FSE_decodeSymbol() is 'tableLog'. +Keep in mind that symbols are decoded in reverse order, like a LIFO stack (last in, first out). + unsigned char symbol = FSE_decodeSymbol(&DState, &DStream); + +You can retrieve any bitfield you eventually stored into the bitStream (in reverse order) +Note : maximum allowed nbBits is 25, for 32-bits compatibility + size_t bitField = BIT_readBits(&DStream, nbBits); + +All above operations only read from local register (which size depends on size_t). +Refueling the register from memory is manually performed by the reload method. + endSignal = FSE_reloadDStream(&DStream); + +BIT_reloadDStream() result tells if there is still some more data to read from DStream. +BIT_DStream_unfinished : there is still some data left into the DStream. +BIT_DStream_endOfBuffer : Dstream reached end of buffer. Its container may no longer be completely filled. +BIT_DStream_completed : Dstream reached its exact end, corresponding in general to decompression completed. +BIT_DStream_tooFar : Dstream went too far. Decompression result is corrupted. + +When reaching end of buffer (BIT_DStream_endOfBuffer), progress slowly, notably if you decode multiple symbols per loop, +to properly detect the exact end of stream. +After each decoded symbol, check if DStream is fully consumed using this simple test : + BIT_reloadDStream(&DStream) >= BIT_DStream_completed + +When it's done, verify decompression is fully completed, by checking both DStream and the relevant states. +Checking if DStream has reached its end is performed by : + BIT_endOfDStream(&DStream); +Check also the states. There might be some symbols left there, if some high probability ones (>50%) are possible. + FSE_endOfDState(&DState); +*/ + + +/* ***************************************** +* FSE unsafe API +*******************************************/ +static unsigned char FSE_decodeSymbolFast(FSE_DState_t* DStatePtr, BIT_DStream_t* bitD); +/* faster, but works only if nbBits is always >= 1 (otherwise, result will be corrupted) */ + + +/* ***************************************** +* Implementation of inlined functions +*******************************************/ +typedef struct { + int deltaFindState; + U32 deltaNbBits; +} FSE_symbolCompressionTransform; /* total 8 bytes */ + +MEM_STATIC void FSE_initCState(FSE_CState_t* statePtr, const FSE_CTable* ct) +{ + const void* ptr = ct; + const U16* u16ptr = (const U16*) ptr; + const U32 tableLog = MEM_read16(ptr); + statePtr->value = (ptrdiff_t)1<stateTable = u16ptr+2; + statePtr->symbolTT = ct + 1 + (tableLog ? (1<<(tableLog-1)) : 1); + statePtr->stateLog = tableLog; +} + + +/*! FSE_initCState2() : +* Same as FSE_initCState(), but the first symbol to include (which will be the last to be read) +* uses the smallest state value possible, saving the cost of this symbol */ +MEM_STATIC void FSE_initCState2(FSE_CState_t* statePtr, const FSE_CTable* ct, U32 symbol) +{ + FSE_initCState(statePtr, ct); + { const FSE_symbolCompressionTransform symbolTT = ((const FSE_symbolCompressionTransform*)(statePtr->symbolTT))[symbol]; + const U16* stateTable = (const U16*)(statePtr->stateTable); + U32 nbBitsOut = (U32)((symbolTT.deltaNbBits + (1<<15)) >> 16); + statePtr->value = (nbBitsOut << 16) - symbolTT.deltaNbBits; + statePtr->value = stateTable[(statePtr->value >> nbBitsOut) + symbolTT.deltaFindState]; + } +} + +MEM_STATIC void FSE_encodeSymbol(BIT_CStream_t* bitC, FSE_CState_t* statePtr, unsigned symbol) +{ + FSE_symbolCompressionTransform const symbolTT = ((const FSE_symbolCompressionTransform*)(statePtr->symbolTT))[symbol]; + const U16* const stateTable = (const U16*)(statePtr->stateTable); + U32 const nbBitsOut = (U32)((statePtr->value + symbolTT.deltaNbBits) >> 16); + BIT_addBits(bitC, statePtr->value, nbBitsOut); + statePtr->value = stateTable[ (statePtr->value >> nbBitsOut) + symbolTT.deltaFindState]; +} + +MEM_STATIC void FSE_flushCState(BIT_CStream_t* bitC, const FSE_CState_t* statePtr) +{ + BIT_addBits(bitC, statePtr->value, statePtr->stateLog); + BIT_flushBits(bitC); +} + + +/* FSE_getMaxNbBits() : + * Approximate maximum cost of a symbol, in bits. + * Fractional get rounded up (i.e : a symbol with a normalized frequency of 3 gives the same result as a frequency of 2) + * note 1 : assume symbolValue is valid (<= maxSymbolValue) + * note 2 : if freq[symbolValue]==0, @return a fake cost of tableLog+1 bits */ +MEM_STATIC U32 FSE_getMaxNbBits(const void* symbolTTPtr, U32 symbolValue) +{ + const FSE_symbolCompressionTransform* symbolTT = (const FSE_symbolCompressionTransform*) symbolTTPtr; + return (symbolTT[symbolValue].deltaNbBits + ((1<<16)-1)) >> 16; +} + +/* FSE_bitCost() : + * Approximate symbol cost, as fractional value, using fixed-point format (accuracyLog fractional bits) + * note 1 : assume symbolValue is valid (<= maxSymbolValue) + * note 2 : if freq[symbolValue]==0, @return a fake cost of tableLog+1 bits */ +MEM_STATIC U32 FSE_bitCost(const void* symbolTTPtr, U32 tableLog, U32 symbolValue, U32 accuracyLog) +{ + const FSE_symbolCompressionTransform* symbolTT = (const FSE_symbolCompressionTransform*) symbolTTPtr; + U32 const minNbBits = symbolTT[symbolValue].deltaNbBits >> 16; + U32 const threshold = (minNbBits+1) << 16; + assert(tableLog < 16); + assert(accuracyLog < 31-tableLog); /* ensure enough room for renormalization double shift */ + { U32 const tableSize = 1 << tableLog; + U32 const deltaFromThreshold = threshold - (symbolTT[symbolValue].deltaNbBits + tableSize); + U32 const normalizedDeltaFromThreshold = (deltaFromThreshold << accuracyLog) >> tableLog; /* linear interpolation (very approximate) */ + U32 const bitMultiplier = 1 << accuracyLog; + assert(symbolTT[symbolValue].deltaNbBits + tableSize <= threshold); + assert(normalizedDeltaFromThreshold <= bitMultiplier); + return (minNbBits+1)*bitMultiplier - normalizedDeltaFromThreshold; + } +} + + +/* ====== Decompression ====== */ + +typedef struct { + U16 tableLog; + U16 fastMode; +} FSE_DTableHeader; /* sizeof U32 */ + +typedef struct +{ + unsigned short newState; + unsigned char symbol; + unsigned char nbBits; +} FSE_decode_t; /* size == U32 */ + +MEM_STATIC void FSE_initDState(FSE_DState_t* DStatePtr, BIT_DStream_t* bitD, const FSE_DTable* dt) +{ + const void* ptr = dt; + const FSE_DTableHeader* const DTableH = (const FSE_DTableHeader*)ptr; + DStatePtr->state = BIT_readBits(bitD, DTableH->tableLog); + BIT_reloadDStream(bitD); + DStatePtr->table = dt + 1; +} + +MEM_STATIC BYTE FSE_peekSymbol(const FSE_DState_t* DStatePtr) +{ + FSE_decode_t const DInfo = ((const FSE_decode_t*)(DStatePtr->table))[DStatePtr->state]; + return DInfo.symbol; +} + +MEM_STATIC void FSE_updateState(FSE_DState_t* DStatePtr, BIT_DStream_t* bitD) +{ + FSE_decode_t const DInfo = ((const FSE_decode_t*)(DStatePtr->table))[DStatePtr->state]; + U32 const nbBits = DInfo.nbBits; + size_t const lowBits = BIT_readBits(bitD, nbBits); + DStatePtr->state = DInfo.newState + lowBits; +} + +MEM_STATIC BYTE FSE_decodeSymbol(FSE_DState_t* DStatePtr, BIT_DStream_t* bitD) +{ + FSE_decode_t const DInfo = ((const FSE_decode_t*)(DStatePtr->table))[DStatePtr->state]; + U32 const nbBits = DInfo.nbBits; + BYTE const symbol = DInfo.symbol; + size_t const lowBits = BIT_readBits(bitD, nbBits); + + DStatePtr->state = DInfo.newState + lowBits; + return symbol; +} + +/*! FSE_decodeSymbolFast() : + unsafe, only works if no symbol has a probability > 50% */ +MEM_STATIC BYTE FSE_decodeSymbolFast(FSE_DState_t* DStatePtr, BIT_DStream_t* bitD) +{ + FSE_decode_t const DInfo = ((const FSE_decode_t*)(DStatePtr->table))[DStatePtr->state]; + U32 const nbBits = DInfo.nbBits; + BYTE const symbol = DInfo.symbol; + size_t const lowBits = BIT_readBitsFast(bitD, nbBits); + + DStatePtr->state = DInfo.newState + lowBits; + return symbol; +} + +MEM_STATIC unsigned FSE_endOfDState(const FSE_DState_t* DStatePtr) +{ + return DStatePtr->state == 0; +} + + + +#ifndef FSE_COMMONDEFS_ONLY + +/* ************************************************************** +* Tuning parameters +****************************************************************/ +/*!MEMORY_USAGE : +* Memory usage formula : N->2^N Bytes (examples : 10 -> 1KB; 12 -> 4KB ; 16 -> 64KB; 20 -> 1MB; etc.) +* Increasing memory usage improves compression ratio +* Reduced memory usage can improve speed, due to cache effect +* Recommended max value is 14, for 16KB, which nicely fits into Intel x86 L1 cache */ +#ifndef FSE_MAX_MEMORY_USAGE +# define FSE_MAX_MEMORY_USAGE 14 +#endif +#ifndef FSE_DEFAULT_MEMORY_USAGE +# define FSE_DEFAULT_MEMORY_USAGE 13 +#endif +#if (FSE_DEFAULT_MEMORY_USAGE > FSE_MAX_MEMORY_USAGE) +# error "FSE_DEFAULT_MEMORY_USAGE must be <= FSE_MAX_MEMORY_USAGE" +#endif + +/*!FSE_MAX_SYMBOL_VALUE : +* Maximum symbol value authorized. +* Required for proper stack allocation */ +#ifndef FSE_MAX_SYMBOL_VALUE +# define FSE_MAX_SYMBOL_VALUE 255 +#endif + +/* ************************************************************** +* template functions type & suffix +****************************************************************/ +#define FSE_FUNCTION_TYPE BYTE +#define FSE_FUNCTION_EXTENSION +#define FSE_DECODE_TYPE FSE_decode_t + + +#endif /* !FSE_COMMONDEFS_ONLY */ + + +/* *************************************************************** +* Constants +*****************************************************************/ +#define FSE_MAX_TABLELOG (FSE_MAX_MEMORY_USAGE-2) +#define FSE_MAX_TABLESIZE (1U< FSE_TABLELOG_ABSOLUTE_MAX +# error "FSE_MAX_TABLELOG > FSE_TABLELOG_ABSOLUTE_MAX is not supported" +#endif + +#define FSE_TABLESTEP(tableSize) (((tableSize)>>1) + ((tableSize)>>3) + 3) + + +#endif /* FSE_STATIC_LINKING_ONLY */ + + +#if defined (__cplusplus) +} +#endif diff --git a/dependencies/zstd-1.5.0/lib/common/fse_decompress.c b/dependencies/zstd-1.5.0/lib/common/fse_decompress.c new file mode 100644 index 0000000..f4ff58f --- /dev/null +++ b/dependencies/zstd-1.5.0/lib/common/fse_decompress.c @@ -0,0 +1,403 @@ +/* ****************************************************************** + * FSE : Finite State Entropy decoder + * Copyright (c) Yann Collet, Facebook, Inc. + * + * You can contact the author at : + * - FSE source repository : https://github.com/Cyan4973/FiniteStateEntropy + * - Public forum : https://groups.google.com/forum/#!forum/lz4c + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. +****************************************************************** */ + + +/* ************************************************************** +* Includes +****************************************************************/ +#include "debug.h" /* assert */ +#include "bitstream.h" +#include "compiler.h" +#define FSE_STATIC_LINKING_ONLY +#include "fse.h" +#include "error_private.h" +#define ZSTD_DEPS_NEED_MALLOC +#include "zstd_deps.h" + + +/* ************************************************************** +* Error Management +****************************************************************/ +#define FSE_isError ERR_isError +#define FSE_STATIC_ASSERT(c) DEBUG_STATIC_ASSERT(c) /* use only *after* variable declarations */ + + +/* ************************************************************** +* Templates +****************************************************************/ +/* + designed to be included + for type-specific functions (template emulation in C) + Objective is to write these functions only once, for improved maintenance +*/ + +/* safety checks */ +#ifndef FSE_FUNCTION_EXTENSION +# error "FSE_FUNCTION_EXTENSION must be defined" +#endif +#ifndef FSE_FUNCTION_TYPE +# error "FSE_FUNCTION_TYPE must be defined" +#endif + +/* Function names */ +#define FSE_CAT(X,Y) X##Y +#define FSE_FUNCTION_NAME(X,Y) FSE_CAT(X,Y) +#define FSE_TYPE_NAME(X,Y) FSE_CAT(X,Y) + + +/* Function templates */ +FSE_DTable* FSE_createDTable (unsigned tableLog) +{ + if (tableLog > FSE_TABLELOG_ABSOLUTE_MAX) tableLog = FSE_TABLELOG_ABSOLUTE_MAX; + return (FSE_DTable*)ZSTD_malloc( FSE_DTABLE_SIZE_U32(tableLog) * sizeof (U32) ); +} + +void FSE_freeDTable (FSE_DTable* dt) +{ + ZSTD_free(dt); +} + +static size_t FSE_buildDTable_internal(FSE_DTable* dt, const short* normalizedCounter, unsigned maxSymbolValue, unsigned tableLog, void* workSpace, size_t wkspSize) +{ + void* const tdPtr = dt+1; /* because *dt is unsigned, 32-bits aligned on 32-bits */ + FSE_DECODE_TYPE* const tableDecode = (FSE_DECODE_TYPE*) (tdPtr); + U16* symbolNext = (U16*)workSpace; + BYTE* spread = (BYTE*)(symbolNext + maxSymbolValue + 1); + + U32 const maxSV1 = maxSymbolValue + 1; + U32 const tableSize = 1 << tableLog; + U32 highThreshold = tableSize-1; + + /* Sanity Checks */ + if (FSE_BUILD_DTABLE_WKSP_SIZE(tableLog, maxSymbolValue) > wkspSize) return ERROR(maxSymbolValue_tooLarge); + if (maxSymbolValue > FSE_MAX_SYMBOL_VALUE) return ERROR(maxSymbolValue_tooLarge); + if (tableLog > FSE_MAX_TABLELOG) return ERROR(tableLog_tooLarge); + + /* Init, lay down lowprob symbols */ + { FSE_DTableHeader DTableH; + DTableH.tableLog = (U16)tableLog; + DTableH.fastMode = 1; + { S16 const largeLimit= (S16)(1 << (tableLog-1)); + U32 s; + for (s=0; s= largeLimit) DTableH.fastMode=0; + symbolNext[s] = normalizedCounter[s]; + } } } + ZSTD_memcpy(dt, &DTableH, sizeof(DTableH)); + } + + /* Spread symbols */ + if (highThreshold == tableSize - 1) { + size_t const tableMask = tableSize-1; + size_t const step = FSE_TABLESTEP(tableSize); + /* First lay down the symbols in order. + * We use a uint64_t to lay down 8 bytes at a time. This reduces branch + * misses since small blocks generally have small table logs, so nearly + * all symbols have counts <= 8. We ensure we have 8 bytes at the end of + * our buffer to handle the over-write. + */ + { + U64 const add = 0x0101010101010101ull; + size_t pos = 0; + U64 sv = 0; + U32 s; + for (s=0; s highThreshold) position = (position + step) & tableMask; /* lowprob area */ + } } + if (position!=0) return ERROR(GENERIC); /* position must reach all cells once, otherwise normalizedCounter is incorrect */ + } + + /* Build Decoding table */ + { U32 u; + for (u=0; utableLog = 0; + DTableH->fastMode = 0; + + cell->newState = 0; + cell->symbol = symbolValue; + cell->nbBits = 0; + + return 0; +} + + +size_t FSE_buildDTable_raw (FSE_DTable* dt, unsigned nbBits) +{ + void* ptr = dt; + FSE_DTableHeader* const DTableH = (FSE_DTableHeader*)ptr; + void* dPtr = dt + 1; + FSE_decode_t* const dinfo = (FSE_decode_t*)dPtr; + const unsigned tableSize = 1 << nbBits; + const unsigned tableMask = tableSize - 1; + const unsigned maxSV1 = tableMask+1; + unsigned s; + + /* Sanity checks */ + if (nbBits < 1) return ERROR(GENERIC); /* min size */ + + /* Build Decoding Table */ + DTableH->tableLog = (U16)nbBits; + DTableH->fastMode = 1; + for (s=0; s sizeof(bitD.bitContainer)*8) /* This test must be static */ + BIT_reloadDStream(&bitD); + + op[1] = FSE_GETSYMBOL(&state2); + + if (FSE_MAX_TABLELOG*4+7 > sizeof(bitD.bitContainer)*8) /* This test must be static */ + { if (BIT_reloadDStream(&bitD) > BIT_DStream_unfinished) { op+=2; break; } } + + op[2] = FSE_GETSYMBOL(&state1); + + if (FSE_MAX_TABLELOG*2+7 > sizeof(bitD.bitContainer)*8) /* This test must be static */ + BIT_reloadDStream(&bitD); + + op[3] = FSE_GETSYMBOL(&state2); + } + + /* tail */ + /* note : BIT_reloadDStream(&bitD) >= FSE_DStream_partiallyFilled; Ends at exactly BIT_DStream_completed */ + while (1) { + if (op>(omax-2)) return ERROR(dstSize_tooSmall); + *op++ = FSE_GETSYMBOL(&state1); + if (BIT_reloadDStream(&bitD)==BIT_DStream_overflow) { + *op++ = FSE_GETSYMBOL(&state2); + break; + } + + if (op>(omax-2)) return ERROR(dstSize_tooSmall); + *op++ = FSE_GETSYMBOL(&state2); + if (BIT_reloadDStream(&bitD)==BIT_DStream_overflow) { + *op++ = FSE_GETSYMBOL(&state1); + break; + } } + + return op-ostart; +} + + +size_t FSE_decompress_usingDTable(void* dst, size_t originalSize, + const void* cSrc, size_t cSrcSize, + const FSE_DTable* dt) +{ + const void* ptr = dt; + const FSE_DTableHeader* DTableH = (const FSE_DTableHeader*)ptr; + const U32 fastMode = DTableH->fastMode; + + /* select fast mode (static) */ + if (fastMode) return FSE_decompress_usingDTable_generic(dst, originalSize, cSrc, cSrcSize, dt, 1); + return FSE_decompress_usingDTable_generic(dst, originalSize, cSrc, cSrcSize, dt, 0); +} + + +size_t FSE_decompress_wksp(void* dst, size_t dstCapacity, const void* cSrc, size_t cSrcSize, unsigned maxLog, void* workSpace, size_t wkspSize) +{ + return FSE_decompress_wksp_bmi2(dst, dstCapacity, cSrc, cSrcSize, maxLog, workSpace, wkspSize, /* bmi2 */ 0); +} + +typedef struct { + short ncount[FSE_MAX_SYMBOL_VALUE + 1]; + FSE_DTable dtable[1]; /* Dynamically sized */ +} FSE_DecompressWksp; + + +FORCE_INLINE_TEMPLATE size_t FSE_decompress_wksp_body( + void* dst, size_t dstCapacity, + const void* cSrc, size_t cSrcSize, + unsigned maxLog, void* workSpace, size_t wkspSize, + int bmi2) +{ + const BYTE* const istart = (const BYTE*)cSrc; + const BYTE* ip = istart; + unsigned tableLog; + unsigned maxSymbolValue = FSE_MAX_SYMBOL_VALUE; + FSE_DecompressWksp* const wksp = (FSE_DecompressWksp*)workSpace; + + DEBUG_STATIC_ASSERT((FSE_MAX_SYMBOL_VALUE + 1) % 2 == 0); + if (wkspSize < sizeof(*wksp)) return ERROR(GENERIC); + + /* normal FSE decoding mode */ + { + size_t const NCountLength = FSE_readNCount_bmi2(wksp->ncount, &maxSymbolValue, &tableLog, istart, cSrcSize, bmi2); + if (FSE_isError(NCountLength)) return NCountLength; + if (tableLog > maxLog) return ERROR(tableLog_tooLarge); + assert(NCountLength <= cSrcSize); + ip += NCountLength; + cSrcSize -= NCountLength; + } + + if (FSE_DECOMPRESS_WKSP_SIZE(tableLog, maxSymbolValue) > wkspSize) return ERROR(tableLog_tooLarge); + workSpace = wksp->dtable + FSE_DTABLE_SIZE_U32(tableLog); + wkspSize -= sizeof(*wksp) + FSE_DTABLE_SIZE(tableLog); + + CHECK_F( FSE_buildDTable_internal(wksp->dtable, wksp->ncount, maxSymbolValue, tableLog, workSpace, wkspSize) ); + + { + const void* ptr = wksp->dtable; + const FSE_DTableHeader* DTableH = (const FSE_DTableHeader*)ptr; + const U32 fastMode = DTableH->fastMode; + + /* select fast mode (static) */ + if (fastMode) return FSE_decompress_usingDTable_generic(dst, dstCapacity, ip, cSrcSize, wksp->dtable, 1); + return FSE_decompress_usingDTable_generic(dst, dstCapacity, ip, cSrcSize, wksp->dtable, 0); + } +} + +/* Avoids the FORCE_INLINE of the _body() function. */ +static size_t FSE_decompress_wksp_body_default(void* dst, size_t dstCapacity, const void* cSrc, size_t cSrcSize, unsigned maxLog, void* workSpace, size_t wkspSize) +{ + return FSE_decompress_wksp_body(dst, dstCapacity, cSrc, cSrcSize, maxLog, workSpace, wkspSize, 0); +} + +#if DYNAMIC_BMI2 +TARGET_ATTRIBUTE("bmi2") static size_t FSE_decompress_wksp_body_bmi2(void* dst, size_t dstCapacity, const void* cSrc, size_t cSrcSize, unsigned maxLog, void* workSpace, size_t wkspSize) +{ + return FSE_decompress_wksp_body(dst, dstCapacity, cSrc, cSrcSize, maxLog, workSpace, wkspSize, 1); +} +#endif + +size_t FSE_decompress_wksp_bmi2(void* dst, size_t dstCapacity, const void* cSrc, size_t cSrcSize, unsigned maxLog, void* workSpace, size_t wkspSize, int bmi2) +{ +#if DYNAMIC_BMI2 + if (bmi2) { + return FSE_decompress_wksp_body_bmi2(dst, dstCapacity, cSrc, cSrcSize, maxLog, workSpace, wkspSize); + } +#endif + (void)bmi2; + return FSE_decompress_wksp_body_default(dst, dstCapacity, cSrc, cSrcSize, maxLog, workSpace, wkspSize); +} + + +typedef FSE_DTable DTable_max_t[FSE_DTABLE_SIZE_U32(FSE_MAX_TABLELOG)]; + +#ifndef ZSTD_NO_UNUSED_FUNCTIONS +size_t FSE_buildDTable(FSE_DTable* dt, const short* normalizedCounter, unsigned maxSymbolValue, unsigned tableLog) { + U32 wksp[FSE_BUILD_DTABLE_WKSP_SIZE_U32(FSE_TABLELOG_ABSOLUTE_MAX, FSE_MAX_SYMBOL_VALUE)]; + return FSE_buildDTable_wksp(dt, normalizedCounter, maxSymbolValue, tableLog, wksp, sizeof(wksp)); +} + +size_t FSE_decompress(void* dst, size_t dstCapacity, const void* cSrc, size_t cSrcSize) +{ + /* Static analyzer seems unable to understand this table will be properly initialized later */ + U32 wksp[FSE_DECOMPRESS_WKSP_SIZE_U32(FSE_MAX_TABLELOG, FSE_MAX_SYMBOL_VALUE)]; + return FSE_decompress_wksp(dst, dstCapacity, cSrc, cSrcSize, FSE_MAX_TABLELOG, wksp, sizeof(wksp)); +} +#endif + + +#endif /* FSE_COMMONDEFS_ONLY */ diff --git a/dependencies/zstd-1.5.0/lib/common/huf.h b/dependencies/zstd-1.5.0/lib/common/huf.h new file mode 100644 index 0000000..3d47ced --- /dev/null +++ b/dependencies/zstd-1.5.0/lib/common/huf.h @@ -0,0 +1,362 @@ +/* ****************************************************************** + * huff0 huffman codec, + * part of Finite State Entropy library + * Copyright (c) Yann Collet, Facebook, Inc. + * + * You can contact the author at : + * - Source repository : https://github.com/Cyan4973/FiniteStateEntropy + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. +****************************************************************** */ + +#if defined (__cplusplus) +extern "C" { +#endif + +#ifndef HUF_H_298734234 +#define HUF_H_298734234 + +/* *** Dependencies *** */ +#include "zstd_deps.h" /* size_t */ + + +/* *** library symbols visibility *** */ +/* Note : when linking with -fvisibility=hidden on gcc, or by default on Visual, + * HUF symbols remain "private" (internal symbols for library only). + * Set macro FSE_DLL_EXPORT to 1 if you want HUF symbols visible on DLL interface */ +#if defined(FSE_DLL_EXPORT) && (FSE_DLL_EXPORT==1) && defined(__GNUC__) && (__GNUC__ >= 4) +# define HUF_PUBLIC_API __attribute__ ((visibility ("default"))) +#elif defined(FSE_DLL_EXPORT) && (FSE_DLL_EXPORT==1) /* Visual expected */ +# define HUF_PUBLIC_API __declspec(dllexport) +#elif defined(FSE_DLL_IMPORT) && (FSE_DLL_IMPORT==1) +# define HUF_PUBLIC_API __declspec(dllimport) /* not required, just to generate faster code (saves a function pointer load from IAT and an indirect jump) */ +#else +# define HUF_PUBLIC_API +#endif + + +/* ========================== */ +/* *** simple functions *** */ +/* ========================== */ + +/** HUF_compress() : + * Compress content from buffer 'src', of size 'srcSize', into buffer 'dst'. + * 'dst' buffer must be already allocated. + * Compression runs faster if `dstCapacity` >= HUF_compressBound(srcSize). + * `srcSize` must be <= `HUF_BLOCKSIZE_MAX` == 128 KB. + * @return : size of compressed data (<= `dstCapacity`). + * Special values : if return == 0, srcData is not compressible => Nothing is stored within dst !!! + * if HUF_isError(return), compression failed (more details using HUF_getErrorName()) + */ +HUF_PUBLIC_API size_t HUF_compress(void* dst, size_t dstCapacity, + const void* src, size_t srcSize); + +/** HUF_decompress() : + * Decompress HUF data from buffer 'cSrc', of size 'cSrcSize', + * into already allocated buffer 'dst', of minimum size 'dstSize'. + * `originalSize` : **must** be the ***exact*** size of original (uncompressed) data. + * Note : in contrast with FSE, HUF_decompress can regenerate + * RLE (cSrcSize==1) and uncompressed (cSrcSize==dstSize) data, + * because it knows size to regenerate (originalSize). + * @return : size of regenerated data (== originalSize), + * or an error code, which can be tested using HUF_isError() + */ +HUF_PUBLIC_API size_t HUF_decompress(void* dst, size_t originalSize, + const void* cSrc, size_t cSrcSize); + + +/* *** Tool functions *** */ +#define HUF_BLOCKSIZE_MAX (128 * 1024) /**< maximum input size for a single block compressed with HUF_compress */ +HUF_PUBLIC_API size_t HUF_compressBound(size_t size); /**< maximum compressed size (worst case) */ + +/* Error Management */ +HUF_PUBLIC_API unsigned HUF_isError(size_t code); /**< tells if a return value is an error code */ +HUF_PUBLIC_API const char* HUF_getErrorName(size_t code); /**< provides error code string (useful for debugging) */ + + +/* *** Advanced function *** */ + +/** HUF_compress2() : + * Same as HUF_compress(), but offers control over `maxSymbolValue` and `tableLog`. + * `maxSymbolValue` must be <= HUF_SYMBOLVALUE_MAX . + * `tableLog` must be `<= HUF_TABLELOG_MAX` . */ +HUF_PUBLIC_API size_t HUF_compress2 (void* dst, size_t dstCapacity, + const void* src, size_t srcSize, + unsigned maxSymbolValue, unsigned tableLog); + +/** HUF_compress4X_wksp() : + * Same as HUF_compress2(), but uses externally allocated `workSpace`. + * `workspace` must have minimum alignment of 4, and be at least as large as HUF_WORKSPACE_SIZE */ +#define HUF_WORKSPACE_SIZE ((6 << 10) + 256) +#define HUF_WORKSPACE_SIZE_U32 (HUF_WORKSPACE_SIZE / sizeof(U32)) +HUF_PUBLIC_API size_t HUF_compress4X_wksp (void* dst, size_t dstCapacity, + const void* src, size_t srcSize, + unsigned maxSymbolValue, unsigned tableLog, + void* workSpace, size_t wkspSize); + +#endif /* HUF_H_298734234 */ + +/* ****************************************************************** + * WARNING !! + * The following section contains advanced and experimental definitions + * which shall never be used in the context of a dynamic library, + * because they are not guaranteed to remain stable in the future. + * Only consider them in association with static linking. + * *****************************************************************/ +#if defined(HUF_STATIC_LINKING_ONLY) && !defined(HUF_H_HUF_STATIC_LINKING_ONLY) +#define HUF_H_HUF_STATIC_LINKING_ONLY + +/* *** Dependencies *** */ +#include "mem.h" /* U32 */ +#define FSE_STATIC_LINKING_ONLY +#include "fse.h" + + +/* *** Constants *** */ +#define HUF_TABLELOG_MAX 12 /* max runtime value of tableLog (due to static allocation); can be modified up to HUF_ABSOLUTEMAX_TABLELOG */ +#define HUF_TABLELOG_DEFAULT 11 /* default tableLog value when none specified */ +#define HUF_SYMBOLVALUE_MAX 255 + +#define HUF_TABLELOG_ABSOLUTEMAX 15 /* absolute limit of HUF_MAX_TABLELOG. Beyond that value, code does not work */ +#if (HUF_TABLELOG_MAX > HUF_TABLELOG_ABSOLUTEMAX) +# error "HUF_TABLELOG_MAX is too large !" +#endif + + +/* **************************************** +* Static allocation +******************************************/ +/* HUF buffer bounds */ +#define HUF_CTABLEBOUND 129 +#define HUF_BLOCKBOUND(size) (size + (size>>8) + 8) /* only true when incompressible is pre-filtered with fast heuristic */ +#define HUF_COMPRESSBOUND(size) (HUF_CTABLEBOUND + HUF_BLOCKBOUND(size)) /* Macro version, useful for static allocation */ + +/* static allocation of HUF's Compression Table */ +/* this is a private definition, just exposed for allocation and strict aliasing purpose. never EVER access its members directly */ +struct HUF_CElt_s { + U16 val; + BYTE nbBits; +}; /* typedef'd to HUF_CElt */ +typedef struct HUF_CElt_s HUF_CElt; /* consider it an incomplete type */ +#define HUF_CTABLE_SIZE_U32(maxSymbolValue) ((maxSymbolValue)+1) /* Use tables of U32, for proper alignment */ +#define HUF_CTABLE_SIZE(maxSymbolValue) (HUF_CTABLE_SIZE_U32(maxSymbolValue) * sizeof(U32)) +#define HUF_CREATE_STATIC_CTABLE(name, maxSymbolValue) \ + HUF_CElt name[HUF_CTABLE_SIZE_U32(maxSymbolValue)] /* no final ; */ + +/* static allocation of HUF's DTable */ +typedef U32 HUF_DTable; +#define HUF_DTABLE_SIZE(maxTableLog) (1 + (1<<(maxTableLog))) +#define HUF_CREATE_STATIC_DTABLEX1(DTable, maxTableLog) \ + HUF_DTable DTable[HUF_DTABLE_SIZE((maxTableLog)-1)] = { ((U32)((maxTableLog)-1) * 0x01000001) } +#define HUF_CREATE_STATIC_DTABLEX2(DTable, maxTableLog) \ + HUF_DTable DTable[HUF_DTABLE_SIZE(maxTableLog)] = { ((U32)(maxTableLog) * 0x01000001) } + + +/* **************************************** +* Advanced decompression functions +******************************************/ +size_t HUF_decompress4X1 (void* dst, size_t dstSize, const void* cSrc, size_t cSrcSize); /**< single-symbol decoder */ +#ifndef HUF_FORCE_DECOMPRESS_X1 +size_t HUF_decompress4X2 (void* dst, size_t dstSize, const void* cSrc, size_t cSrcSize); /**< double-symbols decoder */ +#endif + +size_t HUF_decompress4X_DCtx (HUF_DTable* dctx, void* dst, size_t dstSize, const void* cSrc, size_t cSrcSize); /**< decodes RLE and uncompressed */ +size_t HUF_decompress4X_hufOnly(HUF_DTable* dctx, void* dst, size_t dstSize, const void* cSrc, size_t cSrcSize); /**< considers RLE and uncompressed as errors */ +size_t HUF_decompress4X_hufOnly_wksp(HUF_DTable* dctx, void* dst, size_t dstSize, const void* cSrc, size_t cSrcSize, void* workSpace, size_t wkspSize); /**< considers RLE and uncompressed as errors */ +size_t HUF_decompress4X1_DCtx(HUF_DTable* dctx, void* dst, size_t dstSize, const void* cSrc, size_t cSrcSize); /**< single-symbol decoder */ +size_t HUF_decompress4X1_DCtx_wksp(HUF_DTable* dctx, void* dst, size_t dstSize, const void* cSrc, size_t cSrcSize, void* workSpace, size_t wkspSize); /**< single-symbol decoder */ +#ifndef HUF_FORCE_DECOMPRESS_X1 +size_t HUF_decompress4X2_DCtx(HUF_DTable* dctx, void* dst, size_t dstSize, const void* cSrc, size_t cSrcSize); /**< double-symbols decoder */ +size_t HUF_decompress4X2_DCtx_wksp(HUF_DTable* dctx, void* dst, size_t dstSize, const void* cSrc, size_t cSrcSize, void* workSpace, size_t wkspSize); /**< double-symbols decoder */ +#endif + + +/* **************************************** + * HUF detailed API + * ****************************************/ + +/*! HUF_compress() does the following: + * 1. count symbol occurrence from source[] into table count[] using FSE_count() (exposed within "fse.h") + * 2. (optional) refine tableLog using HUF_optimalTableLog() + * 3. build Huffman table from count using HUF_buildCTable() + * 4. save Huffman table to memory buffer using HUF_writeCTable() + * 5. encode the data stream using HUF_compress4X_usingCTable() + * + * The following API allows targeting specific sub-functions for advanced tasks. + * For example, it's possible to compress several blocks using the same 'CTable', + * or to save and regenerate 'CTable' using external methods. + */ +unsigned HUF_optimalTableLog(unsigned maxTableLog, size_t srcSize, unsigned maxSymbolValue); +size_t HUF_buildCTable (HUF_CElt* CTable, const unsigned* count, unsigned maxSymbolValue, unsigned maxNbBits); /* @return : maxNbBits; CTable and count can overlap. In which case, CTable will overwrite count content */ +size_t HUF_writeCTable (void* dst, size_t maxDstSize, const HUF_CElt* CTable, unsigned maxSymbolValue, unsigned huffLog); +size_t HUF_writeCTable_wksp(void* dst, size_t maxDstSize, const HUF_CElt* CTable, unsigned maxSymbolValue, unsigned huffLog, void* workspace, size_t workspaceSize); +size_t HUF_compress4X_usingCTable(void* dst, size_t dstSize, const void* src, size_t srcSize, const HUF_CElt* CTable); +size_t HUF_estimateCompressedSize(const HUF_CElt* CTable, const unsigned* count, unsigned maxSymbolValue); +int HUF_validateCTable(const HUF_CElt* CTable, const unsigned* count, unsigned maxSymbolValue); + +typedef enum { + HUF_repeat_none, /**< Cannot use the previous table */ + HUF_repeat_check, /**< Can use the previous table but it must be checked. Note : The previous table must have been constructed by HUF_compress{1, 4}X_repeat */ + HUF_repeat_valid /**< Can use the previous table and it is assumed to be valid */ + } HUF_repeat; +/** HUF_compress4X_repeat() : + * Same as HUF_compress4X_wksp(), but considers using hufTable if *repeat != HUF_repeat_none. + * If it uses hufTable it does not modify hufTable or repeat. + * If it doesn't, it sets *repeat = HUF_repeat_none, and it sets hufTable to the table used. + * If preferRepeat then the old table will always be used if valid. */ +size_t HUF_compress4X_repeat(void* dst, size_t dstSize, + const void* src, size_t srcSize, + unsigned maxSymbolValue, unsigned tableLog, + void* workSpace, size_t wkspSize, /**< `workSpace` must be aligned on 4-bytes boundaries, `wkspSize` must be >= HUF_WORKSPACE_SIZE */ + HUF_CElt* hufTable, HUF_repeat* repeat, int preferRepeat, int bmi2); + +/** HUF_buildCTable_wksp() : + * Same as HUF_buildCTable(), but using externally allocated scratch buffer. + * `workSpace` must be aligned on 4-bytes boundaries, and its size must be >= HUF_CTABLE_WORKSPACE_SIZE. + */ +#define HUF_CTABLE_WORKSPACE_SIZE_U32 (2*HUF_SYMBOLVALUE_MAX +1 +1) +#define HUF_CTABLE_WORKSPACE_SIZE (HUF_CTABLE_WORKSPACE_SIZE_U32 * sizeof(unsigned)) +size_t HUF_buildCTable_wksp (HUF_CElt* tree, + const unsigned* count, U32 maxSymbolValue, U32 maxNbBits, + void* workSpace, size_t wkspSize); + +/*! HUF_readStats() : + * Read compact Huffman tree, saved by HUF_writeCTable(). + * `huffWeight` is destination buffer. + * @return : size read from `src` , or an error Code . + * Note : Needed by HUF_readCTable() and HUF_readDTableXn() . */ +size_t HUF_readStats(BYTE* huffWeight, size_t hwSize, + U32* rankStats, U32* nbSymbolsPtr, U32* tableLogPtr, + const void* src, size_t srcSize); + +/*! HUF_readStats_wksp() : + * Same as HUF_readStats() but takes an external workspace which must be + * 4-byte aligned and its size must be >= HUF_READ_STATS_WORKSPACE_SIZE. + * If the CPU has BMI2 support, pass bmi2=1, otherwise pass bmi2=0. + */ +#define HUF_READ_STATS_WORKSPACE_SIZE_U32 FSE_DECOMPRESS_WKSP_SIZE_U32(6, HUF_TABLELOG_MAX-1) +#define HUF_READ_STATS_WORKSPACE_SIZE (HUF_READ_STATS_WORKSPACE_SIZE_U32 * sizeof(unsigned)) +size_t HUF_readStats_wksp(BYTE* huffWeight, size_t hwSize, + U32* rankStats, U32* nbSymbolsPtr, U32* tableLogPtr, + const void* src, size_t srcSize, + void* workspace, size_t wkspSize, + int bmi2); + +/** HUF_readCTable() : + * Loading a CTable saved with HUF_writeCTable() */ +size_t HUF_readCTable (HUF_CElt* CTable, unsigned* maxSymbolValuePtr, const void* src, size_t srcSize, unsigned *hasZeroWeights); + +/** HUF_getNbBits() : + * Read nbBits from CTable symbolTable, for symbol `symbolValue` presumed <= HUF_SYMBOLVALUE_MAX + * Note 1 : is not inlined, as HUF_CElt definition is private + * Note 2 : const void* used, so that it can provide a statically allocated table as argument (which uses type U32) */ +U32 HUF_getNbBits(const void* symbolTable, U32 symbolValue); + +/* + * HUF_decompress() does the following: + * 1. select the decompression algorithm (X1, X2) based on pre-computed heuristics + * 2. build Huffman table from save, using HUF_readDTableX?() + * 3. decode 1 or 4 segments in parallel using HUF_decompress?X?_usingDTable() + */ + +/** HUF_selectDecoder() : + * Tells which decoder is likely to decode faster, + * based on a set of pre-computed metrics. + * @return : 0==HUF_decompress4X1, 1==HUF_decompress4X2 . + * Assumption : 0 < dstSize <= 128 KB */ +U32 HUF_selectDecoder (size_t dstSize, size_t cSrcSize); + +/** + * The minimum workspace size for the `workSpace` used in + * HUF_readDTableX1_wksp() and HUF_readDTableX2_wksp(). + * + * The space used depends on HUF_TABLELOG_MAX, ranging from ~1500 bytes when + * HUF_TABLE_LOG_MAX=12 to ~1850 bytes when HUF_TABLE_LOG_MAX=15. + * Buffer overflow errors may potentially occur if code modifications result in + * a required workspace size greater than that specified in the following + * macro. + */ +#define HUF_DECOMPRESS_WORKSPACE_SIZE ((2 << 10) + (1 << 9)) +#define HUF_DECOMPRESS_WORKSPACE_SIZE_U32 (HUF_DECOMPRESS_WORKSPACE_SIZE / sizeof(U32)) + +#ifndef HUF_FORCE_DECOMPRESS_X2 +size_t HUF_readDTableX1 (HUF_DTable* DTable, const void* src, size_t srcSize); +size_t HUF_readDTableX1_wksp (HUF_DTable* DTable, const void* src, size_t srcSize, void* workSpace, size_t wkspSize); +#endif +#ifndef HUF_FORCE_DECOMPRESS_X1 +size_t HUF_readDTableX2 (HUF_DTable* DTable, const void* src, size_t srcSize); +size_t HUF_readDTableX2_wksp (HUF_DTable* DTable, const void* src, size_t srcSize, void* workSpace, size_t wkspSize); +#endif + +size_t HUF_decompress4X_usingDTable(void* dst, size_t maxDstSize, const void* cSrc, size_t cSrcSize, const HUF_DTable* DTable); +#ifndef HUF_FORCE_DECOMPRESS_X2 +size_t HUF_decompress4X1_usingDTable(void* dst, size_t maxDstSize, const void* cSrc, size_t cSrcSize, const HUF_DTable* DTable); +#endif +#ifndef HUF_FORCE_DECOMPRESS_X1 +size_t HUF_decompress4X2_usingDTable(void* dst, size_t maxDstSize, const void* cSrc, size_t cSrcSize, const HUF_DTable* DTable); +#endif + + +/* ====================== */ +/* single stream variants */ +/* ====================== */ + +size_t HUF_compress1X (void* dst, size_t dstSize, const void* src, size_t srcSize, unsigned maxSymbolValue, unsigned tableLog); +size_t HUF_compress1X_wksp (void* dst, size_t dstSize, const void* src, size_t srcSize, unsigned maxSymbolValue, unsigned tableLog, void* workSpace, size_t wkspSize); /**< `workSpace` must be a table of at least HUF_WORKSPACE_SIZE_U32 unsigned */ +size_t HUF_compress1X_usingCTable(void* dst, size_t dstSize, const void* src, size_t srcSize, const HUF_CElt* CTable); +/** HUF_compress1X_repeat() : + * Same as HUF_compress1X_wksp(), but considers using hufTable if *repeat != HUF_repeat_none. + * If it uses hufTable it does not modify hufTable or repeat. + * If it doesn't, it sets *repeat = HUF_repeat_none, and it sets hufTable to the table used. + * If preferRepeat then the old table will always be used if valid. */ +size_t HUF_compress1X_repeat(void* dst, size_t dstSize, + const void* src, size_t srcSize, + unsigned maxSymbolValue, unsigned tableLog, + void* workSpace, size_t wkspSize, /**< `workSpace` must be aligned on 4-bytes boundaries, `wkspSize` must be >= HUF_WORKSPACE_SIZE */ + HUF_CElt* hufTable, HUF_repeat* repeat, int preferRepeat, int bmi2); + +size_t HUF_decompress1X1 (void* dst, size_t dstSize, const void* cSrc, size_t cSrcSize); /* single-symbol decoder */ +#ifndef HUF_FORCE_DECOMPRESS_X1 +size_t HUF_decompress1X2 (void* dst, size_t dstSize, const void* cSrc, size_t cSrcSize); /* double-symbol decoder */ +#endif + +size_t HUF_decompress1X_DCtx (HUF_DTable* dctx, void* dst, size_t dstSize, const void* cSrc, size_t cSrcSize); +size_t HUF_decompress1X_DCtx_wksp (HUF_DTable* dctx, void* dst, size_t dstSize, const void* cSrc, size_t cSrcSize, void* workSpace, size_t wkspSize); +#ifndef HUF_FORCE_DECOMPRESS_X2 +size_t HUF_decompress1X1_DCtx(HUF_DTable* dctx, void* dst, size_t dstSize, const void* cSrc, size_t cSrcSize); /**< single-symbol decoder */ +size_t HUF_decompress1X1_DCtx_wksp(HUF_DTable* dctx, void* dst, size_t dstSize, const void* cSrc, size_t cSrcSize, void* workSpace, size_t wkspSize); /**< single-symbol decoder */ +#endif +#ifndef HUF_FORCE_DECOMPRESS_X1 +size_t HUF_decompress1X2_DCtx(HUF_DTable* dctx, void* dst, size_t dstSize, const void* cSrc, size_t cSrcSize); /**< double-symbols decoder */ +size_t HUF_decompress1X2_DCtx_wksp(HUF_DTable* dctx, void* dst, size_t dstSize, const void* cSrc, size_t cSrcSize, void* workSpace, size_t wkspSize); /**< double-symbols decoder */ +#endif + +size_t HUF_decompress1X_usingDTable(void* dst, size_t maxDstSize, const void* cSrc, size_t cSrcSize, const HUF_DTable* DTable); /**< automatic selection of sing or double symbol decoder, based on DTable */ +#ifndef HUF_FORCE_DECOMPRESS_X2 +size_t HUF_decompress1X1_usingDTable(void* dst, size_t maxDstSize, const void* cSrc, size_t cSrcSize, const HUF_DTable* DTable); +#endif +#ifndef HUF_FORCE_DECOMPRESS_X1 +size_t HUF_decompress1X2_usingDTable(void* dst, size_t maxDstSize, const void* cSrc, size_t cSrcSize, const HUF_DTable* DTable); +#endif + +/* BMI2 variants. + * If the CPU has BMI2 support, pass bmi2=1, otherwise pass bmi2=0. + */ +size_t HUF_decompress1X_usingDTable_bmi2(void* dst, size_t maxDstSize, const void* cSrc, size_t cSrcSize, const HUF_DTable* DTable, int bmi2); +#ifndef HUF_FORCE_DECOMPRESS_X2 +size_t HUF_decompress1X1_DCtx_wksp_bmi2(HUF_DTable* dctx, void* dst, size_t dstSize, const void* cSrc, size_t cSrcSize, void* workSpace, size_t wkspSize, int bmi2); +#endif +size_t HUF_decompress4X_usingDTable_bmi2(void* dst, size_t maxDstSize, const void* cSrc, size_t cSrcSize, const HUF_DTable* DTable, int bmi2); +size_t HUF_decompress4X_hufOnly_wksp_bmi2(HUF_DTable* dctx, void* dst, size_t dstSize, const void* cSrc, size_t cSrcSize, void* workSpace, size_t wkspSize, int bmi2); +#ifndef HUF_FORCE_DECOMPRESS_X2 +size_t HUF_readDTableX1_wksp_bmi2(HUF_DTable* DTable, const void* src, size_t srcSize, void* workSpace, size_t wkspSize, int bmi2); +#endif + +#endif /* HUF_STATIC_LINKING_ONLY */ + +#if defined (__cplusplus) +} +#endif diff --git a/dependencies/zstd-1.5.0/lib/common/mem.h b/dependencies/zstd-1.5.0/lib/common/mem.h new file mode 100644 index 0000000..9f3b81a --- /dev/null +++ b/dependencies/zstd-1.5.0/lib/common/mem.h @@ -0,0 +1,424 @@ +/* + * Copyright (c) Yann Collet, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + +#ifndef MEM_H_MODULE +#define MEM_H_MODULE + +#if defined (__cplusplus) +extern "C" { +#endif + +/*-**************************************** +* Dependencies +******************************************/ +#include /* size_t, ptrdiff_t */ +#include "compiler.h" /* __has_builtin */ +#include "debug.h" /* DEBUG_STATIC_ASSERT */ +#include "zstd_deps.h" /* ZSTD_memcpy */ + + +/*-**************************************** +* Compiler specifics +******************************************/ +#if defined(_MSC_VER) /* Visual Studio */ +# include /* _byteswap_ulong */ +# include /* _byteswap_* */ +#endif +#if defined(__GNUC__) +# define MEM_STATIC static __inline __attribute__((unused)) +#elif defined (__cplusplus) || (defined (__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) /* C99 */) +# define MEM_STATIC static inline +#elif defined(_MSC_VER) +# define MEM_STATIC static __inline +#else +# define MEM_STATIC static /* this version may generate warnings for unused static functions; disable the relevant warning */ +#endif + +/*-************************************************************** +* Basic Types +*****************************************************************/ +#if !defined (__VMS) && (defined (__cplusplus) || (defined (__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) /* C99 */) ) +# if defined(_AIX) +# include +# else +# include /* intptr_t */ +# endif + typedef uint8_t BYTE; + typedef uint16_t U16; + typedef int16_t S16; + typedef uint32_t U32; + typedef int32_t S32; + typedef uint64_t U64; + typedef int64_t S64; +#else +# include +#if CHAR_BIT != 8 +# error "this implementation requires char to be exactly 8-bit type" +#endif + typedef unsigned char BYTE; +#if USHRT_MAX != 65535 +# error "this implementation requires short to be exactly 16-bit type" +#endif + typedef unsigned short U16; + typedef signed short S16; +#if UINT_MAX != 4294967295 +# error "this implementation requires int to be exactly 32-bit type" +#endif + typedef unsigned int U32; + typedef signed int S32; +/* note : there are no limits defined for long long type in C90. + * limits exist in C99, however, in such case, is preferred */ + typedef unsigned long long U64; + typedef signed long long S64; +#endif + + +/*-************************************************************** +* Memory I/O API +*****************************************************************/ +/*=== Static platform detection ===*/ +MEM_STATIC unsigned MEM_32bits(void); +MEM_STATIC unsigned MEM_64bits(void); +MEM_STATIC unsigned MEM_isLittleEndian(void); + +/*=== Native unaligned read/write ===*/ +MEM_STATIC U16 MEM_read16(const void* memPtr); +MEM_STATIC U32 MEM_read32(const void* memPtr); +MEM_STATIC U64 MEM_read64(const void* memPtr); +MEM_STATIC size_t MEM_readST(const void* memPtr); + +MEM_STATIC void MEM_write16(void* memPtr, U16 value); +MEM_STATIC void MEM_write32(void* memPtr, U32 value); +MEM_STATIC void MEM_write64(void* memPtr, U64 value); + +/*=== Little endian unaligned read/write ===*/ +MEM_STATIC U16 MEM_readLE16(const void* memPtr); +MEM_STATIC U32 MEM_readLE24(const void* memPtr); +MEM_STATIC U32 MEM_readLE32(const void* memPtr); +MEM_STATIC U64 MEM_readLE64(const void* memPtr); +MEM_STATIC size_t MEM_readLEST(const void* memPtr); + +MEM_STATIC void MEM_writeLE16(void* memPtr, U16 val); +MEM_STATIC void MEM_writeLE24(void* memPtr, U32 val); +MEM_STATIC void MEM_writeLE32(void* memPtr, U32 val32); +MEM_STATIC void MEM_writeLE64(void* memPtr, U64 val64); +MEM_STATIC void MEM_writeLEST(void* memPtr, size_t val); + +/*=== Big endian unaligned read/write ===*/ +MEM_STATIC U32 MEM_readBE32(const void* memPtr); +MEM_STATIC U64 MEM_readBE64(const void* memPtr); +MEM_STATIC size_t MEM_readBEST(const void* memPtr); + +MEM_STATIC void MEM_writeBE32(void* memPtr, U32 val32); +MEM_STATIC void MEM_writeBE64(void* memPtr, U64 val64); +MEM_STATIC void MEM_writeBEST(void* memPtr, size_t val); + +/*=== Byteswap ===*/ +MEM_STATIC U32 MEM_swap32(U32 in); +MEM_STATIC U64 MEM_swap64(U64 in); +MEM_STATIC size_t MEM_swapST(size_t in); + + +/*-************************************************************** +* Memory I/O Implementation +*****************************************************************/ +/* MEM_FORCE_MEMORY_ACCESS : + * By default, access to unaligned memory is controlled by `memcpy()`, which is safe and portable. + * Unfortunately, on some target/compiler combinations, the generated assembly is sub-optimal. + * The below switch allow to select different access method for improved performance. + * Method 0 (default) : use `memcpy()`. Safe and portable. + * Method 1 : `__packed` statement. It depends on compiler extension (i.e., not portable). + * This method is safe if your compiler supports it, and *generally* as fast or faster than `memcpy`. + * Method 2 : direct access. This method is portable but violate C standard. + * It can generate buggy code on targets depending on alignment. + * In some circumstances, it's the only known way to get the most performance (i.e. GCC + ARMv6) + * See http://fastcompression.blogspot.fr/2015/08/accessing-unaligned-memory.html for details. + * Prefer these methods in priority order (0 > 1 > 2) + */ +#ifndef MEM_FORCE_MEMORY_ACCESS /* can be defined externally, on command line for example */ +# if defined(__INTEL_COMPILER) || defined(__GNUC__) || defined(__ICCARM__) +# define MEM_FORCE_MEMORY_ACCESS 1 +# endif +#endif + +MEM_STATIC unsigned MEM_32bits(void) { return sizeof(size_t)==4; } +MEM_STATIC unsigned MEM_64bits(void) { return sizeof(size_t)==8; } + +MEM_STATIC unsigned MEM_isLittleEndian(void) +{ + const union { U32 u; BYTE c[4]; } one = { 1 }; /* don't use static : performance detrimental */ + return one.c[0]; +} + +#if defined(MEM_FORCE_MEMORY_ACCESS) && (MEM_FORCE_MEMORY_ACCESS==2) + +/* violates C standard, by lying on structure alignment. +Only use if no other choice to achieve best performance on target platform */ +MEM_STATIC U16 MEM_read16(const void* memPtr) { return *(const U16*) memPtr; } +MEM_STATIC U32 MEM_read32(const void* memPtr) { return *(const U32*) memPtr; } +MEM_STATIC U64 MEM_read64(const void* memPtr) { return *(const U64*) memPtr; } +MEM_STATIC size_t MEM_readST(const void* memPtr) { return *(const size_t*) memPtr; } + +MEM_STATIC void MEM_write16(void* memPtr, U16 value) { *(U16*)memPtr = value; } +MEM_STATIC void MEM_write32(void* memPtr, U32 value) { *(U32*)memPtr = value; } +MEM_STATIC void MEM_write64(void* memPtr, U64 value) { *(U64*)memPtr = value; } + +#elif defined(MEM_FORCE_MEMORY_ACCESS) && (MEM_FORCE_MEMORY_ACCESS==1) + +/* __pack instructions are safer, but compiler specific, hence potentially problematic for some compilers */ +/* currently only defined for gcc and icc */ +#if defined(_MSC_VER) || (defined(__INTEL_COMPILER) && defined(WIN32)) + __pragma( pack(push, 1) ) + typedef struct { U16 v; } unalign16; + typedef struct { U32 v; } unalign32; + typedef struct { U64 v; } unalign64; + typedef struct { size_t v; } unalignArch; + __pragma( pack(pop) ) +#else + typedef struct { U16 v; } __attribute__((packed)) unalign16; + typedef struct { U32 v; } __attribute__((packed)) unalign32; + typedef struct { U64 v; } __attribute__((packed)) unalign64; + typedef struct { size_t v; } __attribute__((packed)) unalignArch; +#endif + +MEM_STATIC U16 MEM_read16(const void* ptr) { return ((const unalign16*)ptr)->v; } +MEM_STATIC U32 MEM_read32(const void* ptr) { return ((const unalign32*)ptr)->v; } +MEM_STATIC U64 MEM_read64(const void* ptr) { return ((const unalign64*)ptr)->v; } +MEM_STATIC size_t MEM_readST(const void* ptr) { return ((const unalignArch*)ptr)->v; } + +MEM_STATIC void MEM_write16(void* memPtr, U16 value) { ((unalign16*)memPtr)->v = value; } +MEM_STATIC void MEM_write32(void* memPtr, U32 value) { ((unalign32*)memPtr)->v = value; } +MEM_STATIC void MEM_write64(void* memPtr, U64 value) { ((unalign64*)memPtr)->v = value; } + +#else + +/* default method, safe and standard. + can sometimes prove slower */ + +MEM_STATIC U16 MEM_read16(const void* memPtr) +{ + U16 val; ZSTD_memcpy(&val, memPtr, sizeof(val)); return val; +} + +MEM_STATIC U32 MEM_read32(const void* memPtr) +{ + U32 val; ZSTD_memcpy(&val, memPtr, sizeof(val)); return val; +} + +MEM_STATIC U64 MEM_read64(const void* memPtr) +{ + U64 val; ZSTD_memcpy(&val, memPtr, sizeof(val)); return val; +} + +MEM_STATIC size_t MEM_readST(const void* memPtr) +{ + size_t val; ZSTD_memcpy(&val, memPtr, sizeof(val)); return val; +} + +MEM_STATIC void MEM_write16(void* memPtr, U16 value) +{ + ZSTD_memcpy(memPtr, &value, sizeof(value)); +} + +MEM_STATIC void MEM_write32(void* memPtr, U32 value) +{ + ZSTD_memcpy(memPtr, &value, sizeof(value)); +} + +MEM_STATIC void MEM_write64(void* memPtr, U64 value) +{ + ZSTD_memcpy(memPtr, &value, sizeof(value)); +} + +#endif /* MEM_FORCE_MEMORY_ACCESS */ + +MEM_STATIC U32 MEM_swap32(U32 in) +{ +#if defined(_MSC_VER) /* Visual Studio */ + return _byteswap_ulong(in); +#elif (defined (__GNUC__) && (__GNUC__ * 100 + __GNUC_MINOR__ >= 403)) \ + || (defined(__clang__) && __has_builtin(__builtin_bswap32)) + return __builtin_bswap32(in); +#else + return ((in << 24) & 0xff000000 ) | + ((in << 8) & 0x00ff0000 ) | + ((in >> 8) & 0x0000ff00 ) | + ((in >> 24) & 0x000000ff ); +#endif +} + +MEM_STATIC U64 MEM_swap64(U64 in) +{ +#if defined(_MSC_VER) /* Visual Studio */ + return _byteswap_uint64(in); +#elif (defined (__GNUC__) && (__GNUC__ * 100 + __GNUC_MINOR__ >= 403)) \ + || (defined(__clang__) && __has_builtin(__builtin_bswap64)) + return __builtin_bswap64(in); +#else + return ((in << 56) & 0xff00000000000000ULL) | + ((in << 40) & 0x00ff000000000000ULL) | + ((in << 24) & 0x0000ff0000000000ULL) | + ((in << 8) & 0x000000ff00000000ULL) | + ((in >> 8) & 0x00000000ff000000ULL) | + ((in >> 24) & 0x0000000000ff0000ULL) | + ((in >> 40) & 0x000000000000ff00ULL) | + ((in >> 56) & 0x00000000000000ffULL); +#endif +} + +MEM_STATIC size_t MEM_swapST(size_t in) +{ + if (MEM_32bits()) + return (size_t)MEM_swap32((U32)in); + else + return (size_t)MEM_swap64((U64)in); +} + +/*=== Little endian r/w ===*/ + +MEM_STATIC U16 MEM_readLE16(const void* memPtr) +{ + if (MEM_isLittleEndian()) + return MEM_read16(memPtr); + else { + const BYTE* p = (const BYTE*)memPtr; + return (U16)(p[0] + (p[1]<<8)); + } +} + +MEM_STATIC void MEM_writeLE16(void* memPtr, U16 val) +{ + if (MEM_isLittleEndian()) { + MEM_write16(memPtr, val); + } else { + BYTE* p = (BYTE*)memPtr; + p[0] = (BYTE)val; + p[1] = (BYTE)(val>>8); + } +} + +MEM_STATIC U32 MEM_readLE24(const void* memPtr) +{ + return (U32)MEM_readLE16(memPtr) + ((U32)(((const BYTE*)memPtr)[2]) << 16); +} + +MEM_STATIC void MEM_writeLE24(void* memPtr, U32 val) +{ + MEM_writeLE16(memPtr, (U16)val); + ((BYTE*)memPtr)[2] = (BYTE)(val>>16); +} + +MEM_STATIC U32 MEM_readLE32(const void* memPtr) +{ + if (MEM_isLittleEndian()) + return MEM_read32(memPtr); + else + return MEM_swap32(MEM_read32(memPtr)); +} + +MEM_STATIC void MEM_writeLE32(void* memPtr, U32 val32) +{ + if (MEM_isLittleEndian()) + MEM_write32(memPtr, val32); + else + MEM_write32(memPtr, MEM_swap32(val32)); +} + +MEM_STATIC U64 MEM_readLE64(const void* memPtr) +{ + if (MEM_isLittleEndian()) + return MEM_read64(memPtr); + else + return MEM_swap64(MEM_read64(memPtr)); +} + +MEM_STATIC void MEM_writeLE64(void* memPtr, U64 val64) +{ + if (MEM_isLittleEndian()) + MEM_write64(memPtr, val64); + else + MEM_write64(memPtr, MEM_swap64(val64)); +} + +MEM_STATIC size_t MEM_readLEST(const void* memPtr) +{ + if (MEM_32bits()) + return (size_t)MEM_readLE32(memPtr); + else + return (size_t)MEM_readLE64(memPtr); +} + +MEM_STATIC void MEM_writeLEST(void* memPtr, size_t val) +{ + if (MEM_32bits()) + MEM_writeLE32(memPtr, (U32)val); + else + MEM_writeLE64(memPtr, (U64)val); +} + +/*=== Big endian r/w ===*/ + +MEM_STATIC U32 MEM_readBE32(const void* memPtr) +{ + if (MEM_isLittleEndian()) + return MEM_swap32(MEM_read32(memPtr)); + else + return MEM_read32(memPtr); +} + +MEM_STATIC void MEM_writeBE32(void* memPtr, U32 val32) +{ + if (MEM_isLittleEndian()) + MEM_write32(memPtr, MEM_swap32(val32)); + else + MEM_write32(memPtr, val32); +} + +MEM_STATIC U64 MEM_readBE64(const void* memPtr) +{ + if (MEM_isLittleEndian()) + return MEM_swap64(MEM_read64(memPtr)); + else + return MEM_read64(memPtr); +} + +MEM_STATIC void MEM_writeBE64(void* memPtr, U64 val64) +{ + if (MEM_isLittleEndian()) + MEM_write64(memPtr, MEM_swap64(val64)); + else + MEM_write64(memPtr, val64); +} + +MEM_STATIC size_t MEM_readBEST(const void* memPtr) +{ + if (MEM_32bits()) + return (size_t)MEM_readBE32(memPtr); + else + return (size_t)MEM_readBE64(memPtr); +} + +MEM_STATIC void MEM_writeBEST(void* memPtr, size_t val) +{ + if (MEM_32bits()) + MEM_writeBE32(memPtr, (U32)val); + else + MEM_writeBE64(memPtr, (U64)val); +} + +/* code only tested on 32 and 64 bits systems */ +MEM_STATIC void MEM_check(void) { DEBUG_STATIC_ASSERT((sizeof(size_t)==4) || (sizeof(size_t)==8)); } + + +#if defined (__cplusplus) +} +#endif + +#endif /* MEM_H_MODULE */ diff --git a/dependencies/zstd-1.5.0/lib/common/pool.c b/dependencies/zstd-1.5.0/lib/common/pool.c new file mode 100644 index 0000000..ea70b8b --- /dev/null +++ b/dependencies/zstd-1.5.0/lib/common/pool.c @@ -0,0 +1,350 @@ +/* + * Copyright (c) Yann Collet, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + + +/* ====== Dependencies ======= */ +#include "zstd_deps.h" /* size_t */ +#include "debug.h" /* assert */ +#include "zstd_internal.h" /* ZSTD_customMalloc, ZSTD_customFree */ +#include "pool.h" + +/* ====== Compiler specifics ====== */ +#if defined(_MSC_VER) +# pragma warning(disable : 4204) /* disable: C4204: non-constant aggregate initializer */ +#endif + + +#ifdef ZSTD_MULTITHREAD + +#include "threading.h" /* pthread adaptation */ + +/* A job is a function and an opaque argument */ +typedef struct POOL_job_s { + POOL_function function; + void *opaque; +} POOL_job; + +struct POOL_ctx_s { + ZSTD_customMem customMem; + /* Keep track of the threads */ + ZSTD_pthread_t* threads; + size_t threadCapacity; + size_t threadLimit; + + /* The queue is a circular buffer */ + POOL_job *queue; + size_t queueHead; + size_t queueTail; + size_t queueSize; + + /* The number of threads working on jobs */ + size_t numThreadsBusy; + /* Indicates if the queue is empty */ + int queueEmpty; + + /* The mutex protects the queue */ + ZSTD_pthread_mutex_t queueMutex; + /* Condition variable for pushers to wait on when the queue is full */ + ZSTD_pthread_cond_t queuePushCond; + /* Condition variables for poppers to wait on when the queue is empty */ + ZSTD_pthread_cond_t queuePopCond; + /* Indicates if the queue is shutting down */ + int shutdown; +}; + +/* POOL_thread() : + * Work thread for the thread pool. + * Waits for jobs and executes them. + * @returns : NULL on failure else non-null. + */ +static void* POOL_thread(void* opaque) { + POOL_ctx* const ctx = (POOL_ctx*)opaque; + if (!ctx) { return NULL; } + for (;;) { + /* Lock the mutex and wait for a non-empty queue or until shutdown */ + ZSTD_pthread_mutex_lock(&ctx->queueMutex); + + while ( ctx->queueEmpty + || (ctx->numThreadsBusy >= ctx->threadLimit) ) { + if (ctx->shutdown) { + /* even if !queueEmpty, (possible if numThreadsBusy >= threadLimit), + * a few threads will be shutdown while !queueEmpty, + * but enough threads will remain active to finish the queue */ + ZSTD_pthread_mutex_unlock(&ctx->queueMutex); + return opaque; + } + ZSTD_pthread_cond_wait(&ctx->queuePopCond, &ctx->queueMutex); + } + /* Pop a job off the queue */ + { POOL_job const job = ctx->queue[ctx->queueHead]; + ctx->queueHead = (ctx->queueHead + 1) % ctx->queueSize; + ctx->numThreadsBusy++; + ctx->queueEmpty = ctx->queueHead == ctx->queueTail; + /* Unlock the mutex, signal a pusher, and run the job */ + ZSTD_pthread_cond_signal(&ctx->queuePushCond); + ZSTD_pthread_mutex_unlock(&ctx->queueMutex); + + job.function(job.opaque); + + /* If the intended queue size was 0, signal after finishing job */ + ZSTD_pthread_mutex_lock(&ctx->queueMutex); + ctx->numThreadsBusy--; + if (ctx->queueSize == 1) { + ZSTD_pthread_cond_signal(&ctx->queuePushCond); + } + ZSTD_pthread_mutex_unlock(&ctx->queueMutex); + } + } /* for (;;) */ + assert(0); /* Unreachable */ +} + +POOL_ctx* ZSTD_createThreadPool(size_t numThreads) { + return POOL_create (numThreads, 0); +} + +POOL_ctx* POOL_create(size_t numThreads, size_t queueSize) { + return POOL_create_advanced(numThreads, queueSize, ZSTD_defaultCMem); +} + +POOL_ctx* POOL_create_advanced(size_t numThreads, size_t queueSize, + ZSTD_customMem customMem) { + POOL_ctx* ctx; + /* Check parameters */ + if (!numThreads) { return NULL; } + /* Allocate the context and zero initialize */ + ctx = (POOL_ctx*)ZSTD_customCalloc(sizeof(POOL_ctx), customMem); + if (!ctx) { return NULL; } + /* Initialize the job queue. + * It needs one extra space since one space is wasted to differentiate + * empty and full queues. + */ + ctx->queueSize = queueSize + 1; + ctx->queue = (POOL_job*)ZSTD_customMalloc(ctx->queueSize * sizeof(POOL_job), customMem); + ctx->queueHead = 0; + ctx->queueTail = 0; + ctx->numThreadsBusy = 0; + ctx->queueEmpty = 1; + { + int error = 0; + error |= ZSTD_pthread_mutex_init(&ctx->queueMutex, NULL); + error |= ZSTD_pthread_cond_init(&ctx->queuePushCond, NULL); + error |= ZSTD_pthread_cond_init(&ctx->queuePopCond, NULL); + if (error) { POOL_free(ctx); return NULL; } + } + ctx->shutdown = 0; + /* Allocate space for the thread handles */ + ctx->threads = (ZSTD_pthread_t*)ZSTD_customMalloc(numThreads * sizeof(ZSTD_pthread_t), customMem); + ctx->threadCapacity = 0; + ctx->customMem = customMem; + /* Check for errors */ + if (!ctx->threads || !ctx->queue) { POOL_free(ctx); return NULL; } + /* Initialize the threads */ + { size_t i; + for (i = 0; i < numThreads; ++i) { + if (ZSTD_pthread_create(&ctx->threads[i], NULL, &POOL_thread, ctx)) { + ctx->threadCapacity = i; + POOL_free(ctx); + return NULL; + } } + ctx->threadCapacity = numThreads; + ctx->threadLimit = numThreads; + } + return ctx; +} + +/*! POOL_join() : + Shutdown the queue, wake any sleeping threads, and join all of the threads. +*/ +static void POOL_join(POOL_ctx* ctx) { + /* Shut down the queue */ + ZSTD_pthread_mutex_lock(&ctx->queueMutex); + ctx->shutdown = 1; + ZSTD_pthread_mutex_unlock(&ctx->queueMutex); + /* Wake up sleeping threads */ + ZSTD_pthread_cond_broadcast(&ctx->queuePushCond); + ZSTD_pthread_cond_broadcast(&ctx->queuePopCond); + /* Join all of the threads */ + { size_t i; + for (i = 0; i < ctx->threadCapacity; ++i) { + ZSTD_pthread_join(ctx->threads[i], NULL); /* note : could fail */ + } } +} + +void POOL_free(POOL_ctx *ctx) { + if (!ctx) { return; } + POOL_join(ctx); + ZSTD_pthread_mutex_destroy(&ctx->queueMutex); + ZSTD_pthread_cond_destroy(&ctx->queuePushCond); + ZSTD_pthread_cond_destroy(&ctx->queuePopCond); + ZSTD_customFree(ctx->queue, ctx->customMem); + ZSTD_customFree(ctx->threads, ctx->customMem); + ZSTD_customFree(ctx, ctx->customMem); +} + +void ZSTD_freeThreadPool (ZSTD_threadPool* pool) { + POOL_free (pool); +} + +size_t POOL_sizeof(POOL_ctx *ctx) { + if (ctx==NULL) return 0; /* supports sizeof NULL */ + return sizeof(*ctx) + + ctx->queueSize * sizeof(POOL_job) + + ctx->threadCapacity * sizeof(ZSTD_pthread_t); +} + + +/* @return : 0 on success, 1 on error */ +static int POOL_resize_internal(POOL_ctx* ctx, size_t numThreads) +{ + if (numThreads <= ctx->threadCapacity) { + if (!numThreads) return 1; + ctx->threadLimit = numThreads; + return 0; + } + /* numThreads > threadCapacity */ + { ZSTD_pthread_t* const threadPool = (ZSTD_pthread_t*)ZSTD_customMalloc(numThreads * sizeof(ZSTD_pthread_t), ctx->customMem); + if (!threadPool) return 1; + /* replace existing thread pool */ + ZSTD_memcpy(threadPool, ctx->threads, ctx->threadCapacity * sizeof(*threadPool)); + ZSTD_customFree(ctx->threads, ctx->customMem); + ctx->threads = threadPool; + /* Initialize additional threads */ + { size_t threadId; + for (threadId = ctx->threadCapacity; threadId < numThreads; ++threadId) { + if (ZSTD_pthread_create(&threadPool[threadId], NULL, &POOL_thread, ctx)) { + ctx->threadCapacity = threadId; + return 1; + } } + } } + /* successfully expanded */ + ctx->threadCapacity = numThreads; + ctx->threadLimit = numThreads; + return 0; +} + +/* @return : 0 on success, 1 on error */ +int POOL_resize(POOL_ctx* ctx, size_t numThreads) +{ + int result; + if (ctx==NULL) return 1; + ZSTD_pthread_mutex_lock(&ctx->queueMutex); + result = POOL_resize_internal(ctx, numThreads); + ZSTD_pthread_cond_broadcast(&ctx->queuePopCond); + ZSTD_pthread_mutex_unlock(&ctx->queueMutex); + return result; +} + +/** + * Returns 1 if the queue is full and 0 otherwise. + * + * When queueSize is 1 (pool was created with an intended queueSize of 0), + * then a queue is empty if there is a thread free _and_ no job is waiting. + */ +static int isQueueFull(POOL_ctx const* ctx) { + if (ctx->queueSize > 1) { + return ctx->queueHead == ((ctx->queueTail + 1) % ctx->queueSize); + } else { + return (ctx->numThreadsBusy == ctx->threadLimit) || + !ctx->queueEmpty; + } +} + + +static void POOL_add_internal(POOL_ctx* ctx, POOL_function function, void *opaque) +{ + POOL_job const job = {function, opaque}; + assert(ctx != NULL); + if (ctx->shutdown) return; + + ctx->queueEmpty = 0; + ctx->queue[ctx->queueTail] = job; + ctx->queueTail = (ctx->queueTail + 1) % ctx->queueSize; + ZSTD_pthread_cond_signal(&ctx->queuePopCond); +} + +void POOL_add(POOL_ctx* ctx, POOL_function function, void* opaque) +{ + assert(ctx != NULL); + ZSTD_pthread_mutex_lock(&ctx->queueMutex); + /* Wait until there is space in the queue for the new job */ + while (isQueueFull(ctx) && (!ctx->shutdown)) { + ZSTD_pthread_cond_wait(&ctx->queuePushCond, &ctx->queueMutex); + } + POOL_add_internal(ctx, function, opaque); + ZSTD_pthread_mutex_unlock(&ctx->queueMutex); +} + + +int POOL_tryAdd(POOL_ctx* ctx, POOL_function function, void* opaque) +{ + assert(ctx != NULL); + ZSTD_pthread_mutex_lock(&ctx->queueMutex); + if (isQueueFull(ctx)) { + ZSTD_pthread_mutex_unlock(&ctx->queueMutex); + return 0; + } + POOL_add_internal(ctx, function, opaque); + ZSTD_pthread_mutex_unlock(&ctx->queueMutex); + return 1; +} + + +#else /* ZSTD_MULTITHREAD not defined */ + +/* ========================== */ +/* No multi-threading support */ +/* ========================== */ + + +/* We don't need any data, but if it is empty, malloc() might return NULL. */ +struct POOL_ctx_s { + int dummy; +}; +static POOL_ctx g_poolCtx; + +POOL_ctx* POOL_create(size_t numThreads, size_t queueSize) { + return POOL_create_advanced(numThreads, queueSize, ZSTD_defaultCMem); +} + +POOL_ctx* POOL_create_advanced(size_t numThreads, size_t queueSize, ZSTD_customMem customMem) { + (void)numThreads; + (void)queueSize; + (void)customMem; + return &g_poolCtx; +} + +void POOL_free(POOL_ctx* ctx) { + assert(!ctx || ctx == &g_poolCtx); + (void)ctx; +} + +int POOL_resize(POOL_ctx* ctx, size_t numThreads) { + (void)ctx; (void)numThreads; + return 0; +} + +void POOL_add(POOL_ctx* ctx, POOL_function function, void* opaque) { + (void)ctx; + function(opaque); +} + +int POOL_tryAdd(POOL_ctx* ctx, POOL_function function, void* opaque) { + (void)ctx; + function(opaque); + return 1; +} + +size_t POOL_sizeof(POOL_ctx* ctx) { + if (ctx==NULL) return 0; /* supports sizeof NULL */ + assert(ctx == &g_poolCtx); + return sizeof(*ctx); +} + +#endif /* ZSTD_MULTITHREAD */ diff --git a/dependencies/zstd-1.5.0/lib/common/pool.h b/dependencies/zstd-1.5.0/lib/common/pool.h new file mode 100644 index 0000000..e18aa07 --- /dev/null +++ b/dependencies/zstd-1.5.0/lib/common/pool.h @@ -0,0 +1,84 @@ +/* + * Copyright (c) Yann Collet, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + +#ifndef POOL_H +#define POOL_H + +#if defined (__cplusplus) +extern "C" { +#endif + + +#include "zstd_deps.h" +#define ZSTD_STATIC_LINKING_ONLY /* ZSTD_customMem */ +#include "../zstd.h" + +typedef struct POOL_ctx_s POOL_ctx; + +/*! POOL_create() : + * Create a thread pool with at most `numThreads` threads. + * `numThreads` must be at least 1. + * The maximum number of queued jobs before blocking is `queueSize`. + * @return : POOL_ctx pointer on success, else NULL. +*/ +POOL_ctx* POOL_create(size_t numThreads, size_t queueSize); + +POOL_ctx* POOL_create_advanced(size_t numThreads, size_t queueSize, + ZSTD_customMem customMem); + +/*! POOL_free() : + * Free a thread pool returned by POOL_create(). + */ +void POOL_free(POOL_ctx* ctx); + +/*! POOL_resize() : + * Expands or shrinks pool's number of threads. + * This is more efficient than releasing + creating a new context, + * since it tries to preserve and re-use existing threads. + * `numThreads` must be at least 1. + * @return : 0 when resize was successful, + * !0 (typically 1) if there is an error. + * note : only numThreads can be resized, queueSize remains unchanged. + */ +int POOL_resize(POOL_ctx* ctx, size_t numThreads); + +/*! POOL_sizeof() : + * @return threadpool memory usage + * note : compatible with NULL (returns 0 in this case) + */ +size_t POOL_sizeof(POOL_ctx* ctx); + +/*! POOL_function : + * The function type that can be added to a thread pool. + */ +typedef void (*POOL_function)(void*); + +/*! POOL_add() : + * Add the job `function(opaque)` to the thread pool. `ctx` must be valid. + * Possibly blocks until there is room in the queue. + * Note : The function may be executed asynchronously, + * therefore, `opaque` must live until function has been completed. + */ +void POOL_add(POOL_ctx* ctx, POOL_function function, void* opaque); + + +/*! POOL_tryAdd() : + * Add the job `function(opaque)` to thread pool _if_ a worker is available. + * Returns immediately even if not (does not block). + * @return : 1 if successful, 0 if not. + */ +int POOL_tryAdd(POOL_ctx* ctx, POOL_function function, void* opaque); + + +#if defined (__cplusplus) +} +#endif + +#endif diff --git a/dependencies/zstd-1.5.0/lib/common/threading.c b/dependencies/zstd-1.5.0/lib/common/threading.c new file mode 100644 index 0000000..92cf57c --- /dev/null +++ b/dependencies/zstd-1.5.0/lib/common/threading.c @@ -0,0 +1,122 @@ +/** + * Copyright (c) 2016 Tino Reichardt + * All rights reserved. + * + * You can contact the author at: + * - zstdmt source repository: https://github.com/mcmilk/zstdmt + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + +/** + * This file will hold wrapper for systems, which do not support pthreads + */ + +#include "threading.h" + +/* create fake symbol to avoid empty translation unit warning */ +int g_ZSTD_threading_useless_symbol; + +#if defined(ZSTD_MULTITHREAD) && defined(_WIN32) + +/** + * Windows minimalist Pthread Wrapper, based on : + * http://www.cse.wustl.edu/~schmidt/win32-cv-1.html + */ + + +/* === Dependencies === */ +#include +#include + + +/* === Implementation === */ + +static unsigned __stdcall worker(void *arg) +{ + ZSTD_pthread_t* const thread = (ZSTD_pthread_t*) arg; + thread->arg = thread->start_routine(thread->arg); + return 0; +} + +int ZSTD_pthread_create(ZSTD_pthread_t* thread, const void* unused, + void* (*start_routine) (void*), void* arg) +{ + (void)unused; + thread->arg = arg; + thread->start_routine = start_routine; + thread->handle = (HANDLE) _beginthreadex(NULL, 0, worker, thread, 0, NULL); + + if (!thread->handle) + return errno; + else + return 0; +} + +int ZSTD_pthread_join(ZSTD_pthread_t thread, void **value_ptr) +{ + DWORD result; + + if (!thread.handle) return 0; + + result = WaitForSingleObject(thread.handle, INFINITE); + switch (result) { + case WAIT_OBJECT_0: + if (value_ptr) *value_ptr = thread.arg; + return 0; + case WAIT_ABANDONED: + return EINVAL; + default: + return GetLastError(); + } +} + +#endif /* ZSTD_MULTITHREAD */ + +#if defined(ZSTD_MULTITHREAD) && DEBUGLEVEL >= 1 && !defined(_WIN32) + +#define ZSTD_DEPS_NEED_MALLOC +#include "zstd_deps.h" + +int ZSTD_pthread_mutex_init(ZSTD_pthread_mutex_t* mutex, pthread_mutexattr_t const* attr) +{ + *mutex = (pthread_mutex_t*)ZSTD_malloc(sizeof(pthread_mutex_t)); + if (!*mutex) + return 1; + return pthread_mutex_init(*mutex, attr); +} + +int ZSTD_pthread_mutex_destroy(ZSTD_pthread_mutex_t* mutex) +{ + if (!*mutex) + return 0; + { + int const ret = pthread_mutex_destroy(*mutex); + ZSTD_free(*mutex); + return ret; + } +} + +int ZSTD_pthread_cond_init(ZSTD_pthread_cond_t* cond, pthread_condattr_t const* attr) +{ + *cond = (pthread_cond_t*)ZSTD_malloc(sizeof(pthread_cond_t)); + if (!*cond) + return 1; + return pthread_cond_init(*cond, attr); +} + +int ZSTD_pthread_cond_destroy(ZSTD_pthread_cond_t* cond) +{ + if (!*cond) + return 0; + { + int const ret = pthread_cond_destroy(*cond); + ZSTD_free(*cond); + return ret; + } +} + +#endif diff --git a/dependencies/zstd-1.5.0/lib/common/threading.h b/dependencies/zstd-1.5.0/lib/common/threading.h new file mode 100644 index 0000000..fd0060d --- /dev/null +++ b/dependencies/zstd-1.5.0/lib/common/threading.h @@ -0,0 +1,155 @@ +/** + * Copyright (c) 2016 Tino Reichardt + * All rights reserved. + * + * You can contact the author at: + * - zstdmt source repository: https://github.com/mcmilk/zstdmt + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + +#ifndef THREADING_H_938743 +#define THREADING_H_938743 + +#include "debug.h" + +#if defined (__cplusplus) +extern "C" { +#endif + +#if defined(ZSTD_MULTITHREAD) && defined(_WIN32) + +/** + * Windows minimalist Pthread Wrapper, based on : + * http://www.cse.wustl.edu/~schmidt/win32-cv-1.html + */ +#ifdef WINVER +# undef WINVER +#endif +#define WINVER 0x0600 + +#ifdef _WIN32_WINNT +# undef _WIN32_WINNT +#endif +#define _WIN32_WINNT 0x0600 + +#ifndef WIN32_LEAN_AND_MEAN +# define WIN32_LEAN_AND_MEAN +#endif + +#undef ERROR /* reported already defined on VS 2015 (Rich Geldreich) */ +#include +#undef ERROR +#define ERROR(name) ZSTD_ERROR(name) + + +/* mutex */ +#define ZSTD_pthread_mutex_t CRITICAL_SECTION +#define ZSTD_pthread_mutex_init(a, b) ((void)(b), InitializeCriticalSection((a)), 0) +#define ZSTD_pthread_mutex_destroy(a) DeleteCriticalSection((a)) +#define ZSTD_pthread_mutex_lock(a) EnterCriticalSection((a)) +#define ZSTD_pthread_mutex_unlock(a) LeaveCriticalSection((a)) + +/* condition variable */ +#define ZSTD_pthread_cond_t CONDITION_VARIABLE +#define ZSTD_pthread_cond_init(a, b) ((void)(b), InitializeConditionVariable((a)), 0) +#define ZSTD_pthread_cond_destroy(a) ((void)(a)) +#define ZSTD_pthread_cond_wait(a, b) SleepConditionVariableCS((a), (b), INFINITE) +#define ZSTD_pthread_cond_signal(a) WakeConditionVariable((a)) +#define ZSTD_pthread_cond_broadcast(a) WakeAllConditionVariable((a)) + +/* ZSTD_pthread_create() and ZSTD_pthread_join() */ +typedef struct { + HANDLE handle; + void* (*start_routine)(void*); + void* arg; +} ZSTD_pthread_t; + +int ZSTD_pthread_create(ZSTD_pthread_t* thread, const void* unused, + void* (*start_routine) (void*), void* arg); + +int ZSTD_pthread_join(ZSTD_pthread_t thread, void** value_ptr); + +/** + * add here more wrappers as required + */ + + +#elif defined(ZSTD_MULTITHREAD) /* posix assumed ; need a better detection method */ +/* === POSIX Systems === */ +# include + +#if DEBUGLEVEL < 1 + +#define ZSTD_pthread_mutex_t pthread_mutex_t +#define ZSTD_pthread_mutex_init(a, b) pthread_mutex_init((a), (b)) +#define ZSTD_pthread_mutex_destroy(a) pthread_mutex_destroy((a)) +#define ZSTD_pthread_mutex_lock(a) pthread_mutex_lock((a)) +#define ZSTD_pthread_mutex_unlock(a) pthread_mutex_unlock((a)) + +#define ZSTD_pthread_cond_t pthread_cond_t +#define ZSTD_pthread_cond_init(a, b) pthread_cond_init((a), (b)) +#define ZSTD_pthread_cond_destroy(a) pthread_cond_destroy((a)) +#define ZSTD_pthread_cond_wait(a, b) pthread_cond_wait((a), (b)) +#define ZSTD_pthread_cond_signal(a) pthread_cond_signal((a)) +#define ZSTD_pthread_cond_broadcast(a) pthread_cond_broadcast((a)) + +#define ZSTD_pthread_t pthread_t +#define ZSTD_pthread_create(a, b, c, d) pthread_create((a), (b), (c), (d)) +#define ZSTD_pthread_join(a, b) pthread_join((a),(b)) + +#else /* DEBUGLEVEL >= 1 */ + +/* Debug implementation of threading. + * In this implementation we use pointers for mutexes and condition variables. + * This way, if we forget to init/destroy them the program will crash or ASAN + * will report leaks. + */ + +#define ZSTD_pthread_mutex_t pthread_mutex_t* +int ZSTD_pthread_mutex_init(ZSTD_pthread_mutex_t* mutex, pthread_mutexattr_t const* attr); +int ZSTD_pthread_mutex_destroy(ZSTD_pthread_mutex_t* mutex); +#define ZSTD_pthread_mutex_lock(a) pthread_mutex_lock(*(a)) +#define ZSTD_pthread_mutex_unlock(a) pthread_mutex_unlock(*(a)) + +#define ZSTD_pthread_cond_t pthread_cond_t* +int ZSTD_pthread_cond_init(ZSTD_pthread_cond_t* cond, pthread_condattr_t const* attr); +int ZSTD_pthread_cond_destroy(ZSTD_pthread_cond_t* cond); +#define ZSTD_pthread_cond_wait(a, b) pthread_cond_wait(*(a), *(b)) +#define ZSTD_pthread_cond_signal(a) pthread_cond_signal(*(a)) +#define ZSTD_pthread_cond_broadcast(a) pthread_cond_broadcast(*(a)) + +#define ZSTD_pthread_t pthread_t +#define ZSTD_pthread_create(a, b, c, d) pthread_create((a), (b), (c), (d)) +#define ZSTD_pthread_join(a, b) pthread_join((a),(b)) + +#endif + +#else /* ZSTD_MULTITHREAD not defined */ +/* No multithreading support */ + +typedef int ZSTD_pthread_mutex_t; +#define ZSTD_pthread_mutex_init(a, b) ((void)(a), (void)(b), 0) +#define ZSTD_pthread_mutex_destroy(a) ((void)(a)) +#define ZSTD_pthread_mutex_lock(a) ((void)(a)) +#define ZSTD_pthread_mutex_unlock(a) ((void)(a)) + +typedef int ZSTD_pthread_cond_t; +#define ZSTD_pthread_cond_init(a, b) ((void)(a), (void)(b), 0) +#define ZSTD_pthread_cond_destroy(a) ((void)(a)) +#define ZSTD_pthread_cond_wait(a, b) ((void)(a), (void)(b)) +#define ZSTD_pthread_cond_signal(a) ((void)(a)) +#define ZSTD_pthread_cond_broadcast(a) ((void)(a)) + +/* do not use ZSTD_pthread_t */ + +#endif /* ZSTD_MULTITHREAD */ + +#if defined (__cplusplus) +} +#endif + +#endif /* THREADING_H_938743 */ diff --git a/dependencies/zstd-1.5.0/lib/common/xxhash.c b/dependencies/zstd-1.5.0/lib/common/xxhash.c new file mode 100644 index 0000000..926b336 --- /dev/null +++ b/dependencies/zstd-1.5.0/lib/common/xxhash.c @@ -0,0 +1,824 @@ +/* + * xxHash - Fast Hash algorithm + * Copyright (c) Yann Collet, Facebook, Inc. + * + * You can contact the author at : + * - xxHash homepage: http://www.xxhash.com + * - xxHash source repository : https://github.com/Cyan4973/xxHash + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. +*/ + + +/* ************************************* +* Tuning parameters +***************************************/ +/*!XXH_FORCE_MEMORY_ACCESS : + * By default, access to unaligned memory is controlled by `memcpy()`, which is safe and portable. + * Unfortunately, on some target/compiler combinations, the generated assembly is sub-optimal. + * The below switch allow to select different access method for improved performance. + * Method 0 (default) : use `memcpy()`. Safe and portable. + * Method 1 : `__packed` statement. It depends on compiler extension (ie, not portable). + * This method is safe if your compiler supports it, and *generally* as fast or faster than `memcpy`. + * Method 2 : direct access. This method doesn't depend on compiler but violate C standard. + * It can generate buggy code on targets which do not support unaligned memory accesses. + * But in some circumstances, it's the only known way to get the most performance (ie GCC + ARMv6) + * See http://stackoverflow.com/a/32095106/646947 for details. + * Prefer these methods in priority order (0 > 1 > 2) + */ +#ifndef XXH_FORCE_MEMORY_ACCESS /* can be defined externally, on command line for example */ +# if (defined(__INTEL_COMPILER) && !defined(WIN32)) || \ + (defined(__GNUC__) && ( defined(__ARM_ARCH_7__) || defined(__ARM_ARCH_7A__) || defined(__ARM_ARCH_7R__) || defined(__ARM_ARCH_7M__) || defined(__ARM_ARCH_7S__) )) || \ + defined(__ICCARM__) +# define XXH_FORCE_MEMORY_ACCESS 1 +# endif +#endif + +/*!XXH_ACCEPT_NULL_INPUT_POINTER : + * If the input pointer is a null pointer, xxHash default behavior is to trigger a memory access error, since it is a bad pointer. + * When this option is enabled, xxHash output for null input pointers will be the same as a null-length input. + * By default, this option is disabled. To enable it, uncomment below define : + */ +/* #define XXH_ACCEPT_NULL_INPUT_POINTER 1 */ + +/*!XXH_FORCE_NATIVE_FORMAT : + * By default, xxHash library provides endian-independent Hash values, based on little-endian convention. + * Results are therefore identical for little-endian and big-endian CPU. + * This comes at a performance cost for big-endian CPU, since some swapping is required to emulate little-endian format. + * Should endian-independence be of no importance for your application, you may set the #define below to 1, + * to improve speed for Big-endian CPU. + * This option has no impact on Little_Endian CPU. + */ +#ifndef XXH_FORCE_NATIVE_FORMAT /* can be defined externally */ +# define XXH_FORCE_NATIVE_FORMAT 0 +#endif + +/*!XXH_FORCE_ALIGN_CHECK : + * This is a minor performance trick, only useful with lots of very small keys. + * It means : check for aligned/unaligned input. + * The check costs one initial branch per hash; set to 0 when the input data + * is guaranteed to be aligned. + */ +#ifndef XXH_FORCE_ALIGN_CHECK /* can be defined externally */ +# if defined(__i386) || defined(_M_IX86) || defined(__x86_64__) || defined(_M_X64) +# define XXH_FORCE_ALIGN_CHECK 0 +# else +# define XXH_FORCE_ALIGN_CHECK 1 +# endif +#endif + + +/* ************************************* +* Includes & Memory related functions +***************************************/ +/* Modify the local functions below should you wish to use some other memory routines */ +/* for ZSTD_malloc(), ZSTD_free() */ +#define ZSTD_DEPS_NEED_MALLOC +#include "zstd_deps.h" /* size_t, ZSTD_malloc, ZSTD_free, ZSTD_memcpy */ +static void* XXH_malloc(size_t s) { return ZSTD_malloc(s); } +static void XXH_free (void* p) { ZSTD_free(p); } +static void* XXH_memcpy(void* dest, const void* src, size_t size) { return ZSTD_memcpy(dest,src,size); } + +#ifndef XXH_STATIC_LINKING_ONLY +# define XXH_STATIC_LINKING_ONLY +#endif +#include "xxhash.h" + + +/* ************************************* +* Compiler Specific Options +***************************************/ +#include "compiler.h" + + +/* ************************************* +* Basic Types +***************************************/ +#include "mem.h" /* BYTE, U32, U64, size_t */ + +#if (defined(XXH_FORCE_MEMORY_ACCESS) && (XXH_FORCE_MEMORY_ACCESS==2)) + +/* Force direct memory access. Only works on CPU which support unaligned memory access in hardware */ +static U32 XXH_read32(const void* memPtr) { return *(const U32*) memPtr; } +static U64 XXH_read64(const void* memPtr) { return *(const U64*) memPtr; } + +#elif (defined(XXH_FORCE_MEMORY_ACCESS) && (XXH_FORCE_MEMORY_ACCESS==1)) + +/* __pack instructions are safer, but compiler specific, hence potentially problematic for some compilers */ +/* currently only defined for gcc and icc */ +typedef union { U32 u32; U64 u64; } __attribute__((packed)) unalign; + +static U32 XXH_read32(const void* ptr) { return ((const unalign*)ptr)->u32; } +static U64 XXH_read64(const void* ptr) { return ((const unalign*)ptr)->u64; } + +#else + +/* portable and safe solution. Generally efficient. + * see : http://stackoverflow.com/a/32095106/646947 + */ + +static U32 XXH_read32(const void* memPtr) +{ + U32 val; + ZSTD_memcpy(&val, memPtr, sizeof(val)); + return val; +} + +static U64 XXH_read64(const void* memPtr) +{ + U64 val; + ZSTD_memcpy(&val, memPtr, sizeof(val)); + return val; +} + +#endif /* XXH_FORCE_DIRECT_MEMORY_ACCESS */ + + +/* **************************************** +* Compiler-specific Functions and Macros +******************************************/ +#define GCC_VERSION (__GNUC__ * 100 + __GNUC_MINOR__) + +/* Note : although _rotl exists for minGW (GCC under windows), performance seems poor */ +#if defined(_MSC_VER) +# define XXH_rotl32(x,r) _rotl(x,r) +# define XXH_rotl64(x,r) _rotl64(x,r) +#else +#if defined(__ICCARM__) +# include +# define XXH_rotl32(x,r) __ROR(x,(32 - r)) +#else +# define XXH_rotl32(x,r) ((x << r) | (x >> (32 - r))) +#endif +# define XXH_rotl64(x,r) ((x << r) | (x >> (64 - r))) +#endif + +#if defined(_MSC_VER) /* Visual Studio */ +# define XXH_swap32 _byteswap_ulong +# define XXH_swap64 _byteswap_uint64 +#elif GCC_VERSION >= 403 +# define XXH_swap32 __builtin_bswap32 +# define XXH_swap64 __builtin_bswap64 +#else +static U32 XXH_swap32 (U32 x) +{ + return ((x << 24) & 0xff000000 ) | + ((x << 8) & 0x00ff0000 ) | + ((x >> 8) & 0x0000ff00 ) | + ((x >> 24) & 0x000000ff ); +} +static U64 XXH_swap64 (U64 x) +{ + return ((x << 56) & 0xff00000000000000ULL) | + ((x << 40) & 0x00ff000000000000ULL) | + ((x << 24) & 0x0000ff0000000000ULL) | + ((x << 8) & 0x000000ff00000000ULL) | + ((x >> 8) & 0x00000000ff000000ULL) | + ((x >> 24) & 0x0000000000ff0000ULL) | + ((x >> 40) & 0x000000000000ff00ULL) | + ((x >> 56) & 0x00000000000000ffULL); +} +#endif + + +/* ************************************* +* Architecture Macros +***************************************/ +typedef enum { XXH_bigEndian=0, XXH_littleEndian=1 } XXH_endianess; + +/* XXH_CPU_LITTLE_ENDIAN can be defined externally, for example on the compiler command line */ +#ifndef XXH_CPU_LITTLE_ENDIAN + static const int g_one = 1; +# define XXH_CPU_LITTLE_ENDIAN (*(const char*)(&g_one)) +#endif + + +/* *************************** +* Memory reads +*****************************/ +typedef enum { XXH_aligned, XXH_unaligned } XXH_alignment; + +FORCE_INLINE_TEMPLATE U32 XXH_readLE32_align(const void* ptr, XXH_endianess endian, XXH_alignment align) +{ + if (align==XXH_unaligned) + return endian==XXH_littleEndian ? XXH_read32(ptr) : XXH_swap32(XXH_read32(ptr)); + else + return endian==XXH_littleEndian ? *(const U32*)ptr : XXH_swap32(*(const U32*)ptr); +} + +FORCE_INLINE_TEMPLATE U32 XXH_readLE32(const void* ptr, XXH_endianess endian) +{ + return XXH_readLE32_align(ptr, endian, XXH_unaligned); +} + +static U32 XXH_readBE32(const void* ptr) +{ + return XXH_CPU_LITTLE_ENDIAN ? XXH_swap32(XXH_read32(ptr)) : XXH_read32(ptr); +} + +FORCE_INLINE_TEMPLATE U64 XXH_readLE64_align(const void* ptr, XXH_endianess endian, XXH_alignment align) +{ + if (align==XXH_unaligned) + return endian==XXH_littleEndian ? XXH_read64(ptr) : XXH_swap64(XXH_read64(ptr)); + else + return endian==XXH_littleEndian ? *(const U64*)ptr : XXH_swap64(*(const U64*)ptr); +} + +FORCE_INLINE_TEMPLATE U64 XXH_readLE64(const void* ptr, XXH_endianess endian) +{ + return XXH_readLE64_align(ptr, endian, XXH_unaligned); +} + +static U64 XXH_readBE64(const void* ptr) +{ + return XXH_CPU_LITTLE_ENDIAN ? XXH_swap64(XXH_read64(ptr)) : XXH_read64(ptr); +} + + +/* ************************************* +* Macros +***************************************/ +#define XXH_STATIC_ASSERT(c) { enum { XXH_static_assert = 1/(int)(!!(c)) }; } /* use only *after* variable declarations */ + + +/* ************************************* +* Constants +***************************************/ +static const U32 PRIME32_1 = 2654435761U; +static const U32 PRIME32_2 = 2246822519U; +static const U32 PRIME32_3 = 3266489917U; +static const U32 PRIME32_4 = 668265263U; +static const U32 PRIME32_5 = 374761393U; + +static const U64 PRIME64_1 = 11400714785074694791ULL; +static const U64 PRIME64_2 = 14029467366897019727ULL; +static const U64 PRIME64_3 = 1609587929392839161ULL; +static const U64 PRIME64_4 = 9650029242287828579ULL; +static const U64 PRIME64_5 = 2870177450012600261ULL; + +XXH_PUBLIC_API unsigned XXH_versionNumber (void) { return XXH_VERSION_NUMBER; } + + +/* ************************** +* Utils +****************************/ +XXH_PUBLIC_API void XXH32_copyState(XXH32_state_t* restrict dstState, const XXH32_state_t* restrict srcState) +{ + ZSTD_memcpy(dstState, srcState, sizeof(*dstState)); +} + +XXH_PUBLIC_API void XXH64_copyState(XXH64_state_t* restrict dstState, const XXH64_state_t* restrict srcState) +{ + ZSTD_memcpy(dstState, srcState, sizeof(*dstState)); +} + + +/* *************************** +* Simple Hash Functions +*****************************/ + +static U32 XXH32_round(U32 seed, U32 input) +{ + seed += input * PRIME32_2; + seed = XXH_rotl32(seed, 13); + seed *= PRIME32_1; + return seed; +} + +FORCE_INLINE_TEMPLATE U32 XXH32_endian_align(const void* input, size_t len, U32 seed, XXH_endianess endian, XXH_alignment align) +{ + const BYTE* p = (const BYTE*)input; + const BYTE* bEnd = p + len; + U32 h32; +#define XXH_get32bits(p) XXH_readLE32_align(p, endian, align) + +#ifdef XXH_ACCEPT_NULL_INPUT_POINTER + if (p==NULL) { + len=0; + bEnd=p=(const BYTE*)(size_t)16; + } +#endif + + if (len>=16) { + const BYTE* const limit = bEnd - 16; + U32 v1 = seed + PRIME32_1 + PRIME32_2; + U32 v2 = seed + PRIME32_2; + U32 v3 = seed + 0; + U32 v4 = seed - PRIME32_1; + + do { + v1 = XXH32_round(v1, XXH_get32bits(p)); p+=4; + v2 = XXH32_round(v2, XXH_get32bits(p)); p+=4; + v3 = XXH32_round(v3, XXH_get32bits(p)); p+=4; + v4 = XXH32_round(v4, XXH_get32bits(p)); p+=4; + } while (p<=limit); + + h32 = XXH_rotl32(v1, 1) + XXH_rotl32(v2, 7) + XXH_rotl32(v3, 12) + XXH_rotl32(v4, 18); + } else { + h32 = seed + PRIME32_5; + } + + h32 += (U32) len; + + while (p+4<=bEnd) { + h32 += XXH_get32bits(p) * PRIME32_3; + h32 = XXH_rotl32(h32, 17) * PRIME32_4 ; + p+=4; + } + + while (p> 15; + h32 *= PRIME32_2; + h32 ^= h32 >> 13; + h32 *= PRIME32_3; + h32 ^= h32 >> 16; + + return h32; +} + + +XXH_PUBLIC_API unsigned int XXH32 (const void* input, size_t len, unsigned int seed) +{ +#if 0 + /* Simple version, good for code maintenance, but unfortunately slow for small inputs */ + XXH32_CREATESTATE_STATIC(state); + XXH32_reset(state, seed); + XXH32_update(state, input, len); + return XXH32_digest(state); +#else + XXH_endianess endian_detected = (XXH_endianess)XXH_CPU_LITTLE_ENDIAN; + + if (XXH_FORCE_ALIGN_CHECK) { + if ((((size_t)input) & 3) == 0) { /* Input is 4-bytes aligned, leverage the speed benefit */ + if ((endian_detected==XXH_littleEndian) || XXH_FORCE_NATIVE_FORMAT) + return XXH32_endian_align(input, len, seed, XXH_littleEndian, XXH_aligned); + else + return XXH32_endian_align(input, len, seed, XXH_bigEndian, XXH_aligned); + } } + + if ((endian_detected==XXH_littleEndian) || XXH_FORCE_NATIVE_FORMAT) + return XXH32_endian_align(input, len, seed, XXH_littleEndian, XXH_unaligned); + else + return XXH32_endian_align(input, len, seed, XXH_bigEndian, XXH_unaligned); +#endif +} + + +static U64 XXH64_round(U64 acc, U64 input) +{ + acc += input * PRIME64_2; + acc = XXH_rotl64(acc, 31); + acc *= PRIME64_1; + return acc; +} + +static U64 XXH64_mergeRound(U64 acc, U64 val) +{ + val = XXH64_round(0, val); + acc ^= val; + acc = acc * PRIME64_1 + PRIME64_4; + return acc; +} + +FORCE_INLINE_TEMPLATE U64 XXH64_endian_align(const void* input, size_t len, U64 seed, XXH_endianess endian, XXH_alignment align) +{ + const BYTE* p = (const BYTE*)input; + const BYTE* const bEnd = p + len; + U64 h64; +#define XXH_get64bits(p) XXH_readLE64_align(p, endian, align) + +#ifdef XXH_ACCEPT_NULL_INPUT_POINTER + if (p==NULL) { + len=0; + bEnd=p=(const BYTE*)(size_t)32; + } +#endif + + if (len>=32) { + const BYTE* const limit = bEnd - 32; + U64 v1 = seed + PRIME64_1 + PRIME64_2; + U64 v2 = seed + PRIME64_2; + U64 v3 = seed + 0; + U64 v4 = seed - PRIME64_1; + + do { + v1 = XXH64_round(v1, XXH_get64bits(p)); p+=8; + v2 = XXH64_round(v2, XXH_get64bits(p)); p+=8; + v3 = XXH64_round(v3, XXH_get64bits(p)); p+=8; + v4 = XXH64_round(v4, XXH_get64bits(p)); p+=8; + } while (p<=limit); + + h64 = XXH_rotl64(v1, 1) + XXH_rotl64(v2, 7) + XXH_rotl64(v3, 12) + XXH_rotl64(v4, 18); + h64 = XXH64_mergeRound(h64, v1); + h64 = XXH64_mergeRound(h64, v2); + h64 = XXH64_mergeRound(h64, v3); + h64 = XXH64_mergeRound(h64, v4); + + } else { + h64 = seed + PRIME64_5; + } + + h64 += (U64) len; + + while (p+8<=bEnd) { + U64 const k1 = XXH64_round(0, XXH_get64bits(p)); + h64 ^= k1; + h64 = XXH_rotl64(h64,27) * PRIME64_1 + PRIME64_4; + p+=8; + } + + if (p+4<=bEnd) { + h64 ^= (U64)(XXH_get32bits(p)) * PRIME64_1; + h64 = XXH_rotl64(h64, 23) * PRIME64_2 + PRIME64_3; + p+=4; + } + + while (p> 33; + h64 *= PRIME64_2; + h64 ^= h64 >> 29; + h64 *= PRIME64_3; + h64 ^= h64 >> 32; + + return h64; +} + + +XXH_PUBLIC_API unsigned long long XXH64 (const void* input, size_t len, unsigned long long seed) +{ +#if 0 + /* Simple version, good for code maintenance, but unfortunately slow for small inputs */ + XXH64_CREATESTATE_STATIC(state); + XXH64_reset(state, seed); + XXH64_update(state, input, len); + return XXH64_digest(state); +#else + XXH_endianess endian_detected = (XXH_endianess)XXH_CPU_LITTLE_ENDIAN; + + if (XXH_FORCE_ALIGN_CHECK) { + if ((((size_t)input) & 7)==0) { /* Input is aligned, let's leverage the speed advantage */ + if ((endian_detected==XXH_littleEndian) || XXH_FORCE_NATIVE_FORMAT) + return XXH64_endian_align(input, len, seed, XXH_littleEndian, XXH_aligned); + else + return XXH64_endian_align(input, len, seed, XXH_bigEndian, XXH_aligned); + } } + + if ((endian_detected==XXH_littleEndian) || XXH_FORCE_NATIVE_FORMAT) + return XXH64_endian_align(input, len, seed, XXH_littleEndian, XXH_unaligned); + else + return XXH64_endian_align(input, len, seed, XXH_bigEndian, XXH_unaligned); +#endif +} + + +/* ************************************************** +* Advanced Hash Functions +****************************************************/ + +XXH_PUBLIC_API XXH32_state_t* XXH32_createState(void) +{ + return (XXH32_state_t*)XXH_malloc(sizeof(XXH32_state_t)); +} +XXH_PUBLIC_API XXH_errorcode XXH32_freeState(XXH32_state_t* statePtr) +{ + XXH_free(statePtr); + return XXH_OK; +} + +XXH_PUBLIC_API XXH64_state_t* XXH64_createState(void) +{ + return (XXH64_state_t*)XXH_malloc(sizeof(XXH64_state_t)); +} +XXH_PUBLIC_API XXH_errorcode XXH64_freeState(XXH64_state_t* statePtr) +{ + XXH_free(statePtr); + return XXH_OK; +} + + +/*** Hash feed ***/ + +XXH_PUBLIC_API XXH_errorcode XXH32_reset(XXH32_state_t* statePtr, unsigned int seed) +{ + XXH32_state_t state; /* using a local state to memcpy() in order to avoid strict-aliasing warnings */ + ZSTD_memset(&state, 0, sizeof(state)-4); /* do not write into reserved, for future removal */ + state.v1 = seed + PRIME32_1 + PRIME32_2; + state.v2 = seed + PRIME32_2; + state.v3 = seed + 0; + state.v4 = seed - PRIME32_1; + ZSTD_memcpy(statePtr, &state, sizeof(state)); + return XXH_OK; +} + + +XXH_PUBLIC_API XXH_errorcode XXH64_reset(XXH64_state_t* statePtr, unsigned long long seed) +{ + XXH64_state_t state; /* using a local state to memcpy() in order to avoid strict-aliasing warnings */ + ZSTD_memset(&state, 0, sizeof(state)-8); /* do not write into reserved, for future removal */ + state.v1 = seed + PRIME64_1 + PRIME64_2; + state.v2 = seed + PRIME64_2; + state.v3 = seed + 0; + state.v4 = seed - PRIME64_1; + ZSTD_memcpy(statePtr, &state, sizeof(state)); + return XXH_OK; +} + + +FORCE_INLINE_TEMPLATE XXH_errorcode XXH32_update_endian (XXH32_state_t* state, const void* input, size_t len, XXH_endianess endian) +{ + const BYTE* p = (const BYTE*)input; + const BYTE* const bEnd = p + len; + +#ifdef XXH_ACCEPT_NULL_INPUT_POINTER + if (input==NULL) return XXH_ERROR; +#endif + + state->total_len_32 += (unsigned)len; + state->large_len |= (len>=16) | (state->total_len_32>=16); + + if (state->memsize + len < 16) { /* fill in tmp buffer */ + XXH_memcpy((BYTE*)(state->mem32) + state->memsize, input, len); + state->memsize += (unsigned)len; + return XXH_OK; + } + + if (state->memsize) { /* some data left from previous update */ + XXH_memcpy((BYTE*)(state->mem32) + state->memsize, input, 16-state->memsize); + { const U32* p32 = state->mem32; + state->v1 = XXH32_round(state->v1, XXH_readLE32(p32, endian)); p32++; + state->v2 = XXH32_round(state->v2, XXH_readLE32(p32, endian)); p32++; + state->v3 = XXH32_round(state->v3, XXH_readLE32(p32, endian)); p32++; + state->v4 = XXH32_round(state->v4, XXH_readLE32(p32, endian)); p32++; + } + p += 16-state->memsize; + state->memsize = 0; + } + + if (p <= bEnd-16) { + const BYTE* const limit = bEnd - 16; + U32 v1 = state->v1; + U32 v2 = state->v2; + U32 v3 = state->v3; + U32 v4 = state->v4; + + do { + v1 = XXH32_round(v1, XXH_readLE32(p, endian)); p+=4; + v2 = XXH32_round(v2, XXH_readLE32(p, endian)); p+=4; + v3 = XXH32_round(v3, XXH_readLE32(p, endian)); p+=4; + v4 = XXH32_round(v4, XXH_readLE32(p, endian)); p+=4; + } while (p<=limit); + + state->v1 = v1; + state->v2 = v2; + state->v3 = v3; + state->v4 = v4; + } + + if (p < bEnd) { + XXH_memcpy(state->mem32, p, (size_t)(bEnd-p)); + state->memsize = (unsigned)(bEnd-p); + } + + return XXH_OK; +} + +XXH_PUBLIC_API XXH_errorcode XXH32_update (XXH32_state_t* state_in, const void* input, size_t len) +{ + XXH_endianess endian_detected = (XXH_endianess)XXH_CPU_LITTLE_ENDIAN; + + if ((endian_detected==XXH_littleEndian) || XXH_FORCE_NATIVE_FORMAT) + return XXH32_update_endian(state_in, input, len, XXH_littleEndian); + else + return XXH32_update_endian(state_in, input, len, XXH_bigEndian); +} + + + +FORCE_INLINE_TEMPLATE U32 XXH32_digest_endian (const XXH32_state_t* state, XXH_endianess endian) +{ + const BYTE * p = (const BYTE*)state->mem32; + const BYTE* const bEnd = (const BYTE*)(state->mem32) + state->memsize; + U32 h32; + + if (state->large_len) { + h32 = XXH_rotl32(state->v1, 1) + XXH_rotl32(state->v2, 7) + XXH_rotl32(state->v3, 12) + XXH_rotl32(state->v4, 18); + } else { + h32 = state->v3 /* == seed */ + PRIME32_5; + } + + h32 += state->total_len_32; + + while (p+4<=bEnd) { + h32 += XXH_readLE32(p, endian) * PRIME32_3; + h32 = XXH_rotl32(h32, 17) * PRIME32_4; + p+=4; + } + + while (p> 15; + h32 *= PRIME32_2; + h32 ^= h32 >> 13; + h32 *= PRIME32_3; + h32 ^= h32 >> 16; + + return h32; +} + + +XXH_PUBLIC_API unsigned int XXH32_digest (const XXH32_state_t* state_in) +{ + XXH_endianess endian_detected = (XXH_endianess)XXH_CPU_LITTLE_ENDIAN; + + if ((endian_detected==XXH_littleEndian) || XXH_FORCE_NATIVE_FORMAT) + return XXH32_digest_endian(state_in, XXH_littleEndian); + else + return XXH32_digest_endian(state_in, XXH_bigEndian); +} + + + +/* **** XXH64 **** */ + +FORCE_INLINE_TEMPLATE XXH_errorcode XXH64_update_endian (XXH64_state_t* state, const void* input, size_t len, XXH_endianess endian) +{ + const BYTE* p = (const BYTE*)input; + const BYTE* const bEnd = p + len; + +#ifdef XXH_ACCEPT_NULL_INPUT_POINTER + if (input==NULL) return XXH_ERROR; +#endif + + state->total_len += len; + + if (state->memsize + len < 32) { /* fill in tmp buffer */ + if (input != NULL) { + XXH_memcpy(((BYTE*)state->mem64) + state->memsize, input, len); + } + state->memsize += (U32)len; + return XXH_OK; + } + + if (state->memsize) { /* tmp buffer is full */ + XXH_memcpy(((BYTE*)state->mem64) + state->memsize, input, 32-state->memsize); + state->v1 = XXH64_round(state->v1, XXH_readLE64(state->mem64+0, endian)); + state->v2 = XXH64_round(state->v2, XXH_readLE64(state->mem64+1, endian)); + state->v3 = XXH64_round(state->v3, XXH_readLE64(state->mem64+2, endian)); + state->v4 = XXH64_round(state->v4, XXH_readLE64(state->mem64+3, endian)); + p += 32-state->memsize; + state->memsize = 0; + } + + if (p+32 <= bEnd) { + const BYTE* const limit = bEnd - 32; + U64 v1 = state->v1; + U64 v2 = state->v2; + U64 v3 = state->v3; + U64 v4 = state->v4; + + do { + v1 = XXH64_round(v1, XXH_readLE64(p, endian)); p+=8; + v2 = XXH64_round(v2, XXH_readLE64(p, endian)); p+=8; + v3 = XXH64_round(v3, XXH_readLE64(p, endian)); p+=8; + v4 = XXH64_round(v4, XXH_readLE64(p, endian)); p+=8; + } while (p<=limit); + + state->v1 = v1; + state->v2 = v2; + state->v3 = v3; + state->v4 = v4; + } + + if (p < bEnd) { + XXH_memcpy(state->mem64, p, (size_t)(bEnd-p)); + state->memsize = (unsigned)(bEnd-p); + } + + return XXH_OK; +} + +XXH_PUBLIC_API XXH_errorcode XXH64_update (XXH64_state_t* state_in, const void* input, size_t len) +{ + XXH_endianess endian_detected = (XXH_endianess)XXH_CPU_LITTLE_ENDIAN; + + if ((endian_detected==XXH_littleEndian) || XXH_FORCE_NATIVE_FORMAT) + return XXH64_update_endian(state_in, input, len, XXH_littleEndian); + else + return XXH64_update_endian(state_in, input, len, XXH_bigEndian); +} + + + +FORCE_INLINE_TEMPLATE U64 XXH64_digest_endian (const XXH64_state_t* state, XXH_endianess endian) +{ + const BYTE * p = (const BYTE*)state->mem64; + const BYTE* const bEnd = (const BYTE*)state->mem64 + state->memsize; + U64 h64; + + if (state->total_len >= 32) { + U64 const v1 = state->v1; + U64 const v2 = state->v2; + U64 const v3 = state->v3; + U64 const v4 = state->v4; + + h64 = XXH_rotl64(v1, 1) + XXH_rotl64(v2, 7) + XXH_rotl64(v3, 12) + XXH_rotl64(v4, 18); + h64 = XXH64_mergeRound(h64, v1); + h64 = XXH64_mergeRound(h64, v2); + h64 = XXH64_mergeRound(h64, v3); + h64 = XXH64_mergeRound(h64, v4); + } else { + h64 = state->v3 + PRIME64_5; + } + + h64 += (U64) state->total_len; + + while (p+8<=bEnd) { + U64 const k1 = XXH64_round(0, XXH_readLE64(p, endian)); + h64 ^= k1; + h64 = XXH_rotl64(h64,27) * PRIME64_1 + PRIME64_4; + p+=8; + } + + if (p+4<=bEnd) { + h64 ^= (U64)(XXH_readLE32(p, endian)) * PRIME64_1; + h64 = XXH_rotl64(h64, 23) * PRIME64_2 + PRIME64_3; + p+=4; + } + + while (p> 33; + h64 *= PRIME64_2; + h64 ^= h64 >> 29; + h64 *= PRIME64_3; + h64 ^= h64 >> 32; + + return h64; +} + + +XXH_PUBLIC_API unsigned long long XXH64_digest (const XXH64_state_t* state_in) +{ + XXH_endianess endian_detected = (XXH_endianess)XXH_CPU_LITTLE_ENDIAN; + + if ((endian_detected==XXH_littleEndian) || XXH_FORCE_NATIVE_FORMAT) + return XXH64_digest_endian(state_in, XXH_littleEndian); + else + return XXH64_digest_endian(state_in, XXH_bigEndian); +} + + +/* ************************** +* Canonical representation +****************************/ + +/*! Default XXH result types are basic unsigned 32 and 64 bits. +* The canonical representation follows human-readable write convention, aka big-endian (large digits first). +* These functions allow transformation of hash result into and from its canonical format. +* This way, hash values can be written into a file or buffer, and remain comparable across different systems and programs. +*/ + +XXH_PUBLIC_API void XXH32_canonicalFromHash(XXH32_canonical_t* dst, XXH32_hash_t hash) +{ + XXH_STATIC_ASSERT(sizeof(XXH32_canonical_t) == sizeof(XXH32_hash_t)); + if (XXH_CPU_LITTLE_ENDIAN) hash = XXH_swap32(hash); + ZSTD_memcpy(dst, &hash, sizeof(*dst)); +} + +XXH_PUBLIC_API void XXH64_canonicalFromHash(XXH64_canonical_t* dst, XXH64_hash_t hash) +{ + XXH_STATIC_ASSERT(sizeof(XXH64_canonical_t) == sizeof(XXH64_hash_t)); + if (XXH_CPU_LITTLE_ENDIAN) hash = XXH_swap64(hash); + ZSTD_memcpy(dst, &hash, sizeof(*dst)); +} + +XXH_PUBLIC_API XXH32_hash_t XXH32_hashFromCanonical(const XXH32_canonical_t* src) +{ + return XXH_readBE32(src); +} + +XXH_PUBLIC_API XXH64_hash_t XXH64_hashFromCanonical(const XXH64_canonical_t* src) +{ + return XXH_readBE64(src); +} diff --git a/dependencies/zstd-1.5.0/lib/common/xxhash.h b/dependencies/zstd-1.5.0/lib/common/xxhash.h new file mode 100644 index 0000000..16c1f16 --- /dev/null +++ b/dependencies/zstd-1.5.0/lib/common/xxhash.h @@ -0,0 +1,285 @@ +/* + * xxHash - Extremely Fast Hash algorithm + * Header File + * Copyright (c) Yann Collet, Facebook, Inc. + * + * You can contact the author at : + * - xxHash source repository : https://github.com/Cyan4973/xxHash + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. +*/ + +/* Notice extracted from xxHash homepage : + +xxHash is an extremely fast Hash algorithm, running at RAM speed limits. +It also successfully passes all tests from the SMHasher suite. + +Comparison (single thread, Windows Seven 32 bits, using SMHasher on a Core 2 Duo @3GHz) + +Name Speed Q.Score Author +xxHash 5.4 GB/s 10 +CrapWow 3.2 GB/s 2 Andrew +MumurHash 3a 2.7 GB/s 10 Austin Appleby +SpookyHash 2.0 GB/s 10 Bob Jenkins +SBox 1.4 GB/s 9 Bret Mulvey +Lookup3 1.2 GB/s 9 Bob Jenkins +SuperFastHash 1.2 GB/s 1 Paul Hsieh +CityHash64 1.05 GB/s 10 Pike & Alakuijala +FNV 0.55 GB/s 5 Fowler, Noll, Vo +CRC32 0.43 GB/s 9 +MD5-32 0.33 GB/s 10 Ronald L. Rivest +SHA1-32 0.28 GB/s 10 + +Q.Score is a measure of quality of the hash function. +It depends on successfully passing SMHasher test set. +10 is a perfect score. + +A 64-bits version, named XXH64, is available since r35. +It offers much better speed, but for 64-bits applications only. +Name Speed on 64 bits Speed on 32 bits +XXH64 13.8 GB/s 1.9 GB/s +XXH32 6.8 GB/s 6.0 GB/s +*/ + +#if defined (__cplusplus) +extern "C" { +#endif + +#ifndef XXHASH_H_5627135585666179 +#define XXHASH_H_5627135585666179 1 + + +/* **************************** +* Definitions +******************************/ +#include "zstd_deps.h" +typedef enum { XXH_OK=0, XXH_ERROR } XXH_errorcode; + + +/* **************************** +* API modifier +******************************/ +/** XXH_PRIVATE_API +* This is useful if you want to include xxhash functions in `static` mode +* in order to inline them, and remove their symbol from the public list. +* Methodology : +* #define XXH_PRIVATE_API +* #include "xxhash.h" +* `xxhash.c` is automatically included. +* It's not useful to compile and link it as a separate module anymore. +*/ +#ifdef XXH_PRIVATE_API +# ifndef XXH_STATIC_LINKING_ONLY +# define XXH_STATIC_LINKING_ONLY +# endif +# if defined(__GNUC__) +# define XXH_PUBLIC_API static __inline __attribute__((unused)) +# elif defined (__cplusplus) || (defined (__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) /* C99 */) +# define XXH_PUBLIC_API static inline +# elif defined(_MSC_VER) +# define XXH_PUBLIC_API static __inline +# else +# define XXH_PUBLIC_API static /* this version may generate warnings for unused static functions; disable the relevant warning */ +# endif +#else +# define XXH_PUBLIC_API /* do nothing */ +#endif /* XXH_PRIVATE_API */ + +/*!XXH_NAMESPACE, aka Namespace Emulation : + +If you want to include _and expose_ xxHash functions from within your own library, +but also want to avoid symbol collisions with another library which also includes xxHash, + +you can use XXH_NAMESPACE, to automatically prefix any public symbol from xxhash library +with the value of XXH_NAMESPACE (so avoid to keep it NULL and avoid numeric values). + +Note that no change is required within the calling program as long as it includes `xxhash.h` : +regular symbol name will be automatically translated by this header. +*/ +#ifdef XXH_NAMESPACE +# define XXH_CAT(A,B) A##B +# define XXH_NAME2(A,B) XXH_CAT(A,B) +# define XXH32 XXH_NAME2(XXH_NAMESPACE, XXH32) +# define XXH64 XXH_NAME2(XXH_NAMESPACE, XXH64) +# define XXH_versionNumber XXH_NAME2(XXH_NAMESPACE, XXH_versionNumber) +# define XXH32_createState XXH_NAME2(XXH_NAMESPACE, XXH32_createState) +# define XXH64_createState XXH_NAME2(XXH_NAMESPACE, XXH64_createState) +# define XXH32_freeState XXH_NAME2(XXH_NAMESPACE, XXH32_freeState) +# define XXH64_freeState XXH_NAME2(XXH_NAMESPACE, XXH64_freeState) +# define XXH32_reset XXH_NAME2(XXH_NAMESPACE, XXH32_reset) +# define XXH64_reset XXH_NAME2(XXH_NAMESPACE, XXH64_reset) +# define XXH32_update XXH_NAME2(XXH_NAMESPACE, XXH32_update) +# define XXH64_update XXH_NAME2(XXH_NAMESPACE, XXH64_update) +# define XXH32_digest XXH_NAME2(XXH_NAMESPACE, XXH32_digest) +# define XXH64_digest XXH_NAME2(XXH_NAMESPACE, XXH64_digest) +# define XXH32_copyState XXH_NAME2(XXH_NAMESPACE, XXH32_copyState) +# define XXH64_copyState XXH_NAME2(XXH_NAMESPACE, XXH64_copyState) +# define XXH32_canonicalFromHash XXH_NAME2(XXH_NAMESPACE, XXH32_canonicalFromHash) +# define XXH64_canonicalFromHash XXH_NAME2(XXH_NAMESPACE, XXH64_canonicalFromHash) +# define XXH32_hashFromCanonical XXH_NAME2(XXH_NAMESPACE, XXH32_hashFromCanonical) +# define XXH64_hashFromCanonical XXH_NAME2(XXH_NAMESPACE, XXH64_hashFromCanonical) +#endif + + +/* ************************************* +* Version +***************************************/ +#define XXH_VERSION_MAJOR 0 +#define XXH_VERSION_MINOR 6 +#define XXH_VERSION_RELEASE 2 +#define XXH_VERSION_NUMBER (XXH_VERSION_MAJOR *100*100 + XXH_VERSION_MINOR *100 + XXH_VERSION_RELEASE) +XXH_PUBLIC_API unsigned XXH_versionNumber (void); + + +/* **************************** +* Simple Hash Functions +******************************/ +typedef unsigned int XXH32_hash_t; +typedef unsigned long long XXH64_hash_t; + +XXH_PUBLIC_API XXH32_hash_t XXH32 (const void* input, size_t length, unsigned int seed); +XXH_PUBLIC_API XXH64_hash_t XXH64 (const void* input, size_t length, unsigned long long seed); + +/*! +XXH32() : + Calculate the 32-bits hash of sequence "length" bytes stored at memory address "input". + The memory between input & input+length must be valid (allocated and read-accessible). + "seed" can be used to alter the result predictably. + Speed on Core 2 Duo @ 3 GHz (single thread, SMHasher benchmark) : 5.4 GB/s +XXH64() : + Calculate the 64-bits hash of sequence of length "len" stored at memory address "input". + "seed" can be used to alter the result predictably. + This function runs 2x faster on 64-bits systems, but slower on 32-bits systems (see benchmark). +*/ + + +/* **************************** +* Streaming Hash Functions +******************************/ +typedef struct XXH32_state_s XXH32_state_t; /* incomplete type */ +typedef struct XXH64_state_s XXH64_state_t; /* incomplete type */ + +/*! State allocation, compatible with dynamic libraries */ + +XXH_PUBLIC_API XXH32_state_t* XXH32_createState(void); +XXH_PUBLIC_API XXH_errorcode XXH32_freeState(XXH32_state_t* statePtr); + +XXH_PUBLIC_API XXH64_state_t* XXH64_createState(void); +XXH_PUBLIC_API XXH_errorcode XXH64_freeState(XXH64_state_t* statePtr); + + +/* hash streaming */ + +XXH_PUBLIC_API XXH_errorcode XXH32_reset (XXH32_state_t* statePtr, unsigned int seed); +XXH_PUBLIC_API XXH_errorcode XXH32_update (XXH32_state_t* statePtr, const void* input, size_t length); +XXH_PUBLIC_API XXH32_hash_t XXH32_digest (const XXH32_state_t* statePtr); + +XXH_PUBLIC_API XXH_errorcode XXH64_reset (XXH64_state_t* statePtr, unsigned long long seed); +XXH_PUBLIC_API XXH_errorcode XXH64_update (XXH64_state_t* statePtr, const void* input, size_t length); +XXH_PUBLIC_API XXH64_hash_t XXH64_digest (const XXH64_state_t* statePtr); + +/* +These functions generate the xxHash of an input provided in multiple segments. +Note that, for small input, they are slower than single-call functions, due to state management. +For small input, prefer `XXH32()` and `XXH64()` . + +XXH state must first be allocated, using XXH*_createState() . + +Start a new hash by initializing state with a seed, using XXH*_reset(). + +Then, feed the hash state by calling XXH*_update() as many times as necessary. +Obviously, input must be allocated and read accessible. +The function returns an error code, with 0 meaning OK, and any other value meaning there is an error. + +Finally, a hash value can be produced anytime, by using XXH*_digest(). +This function returns the nn-bits hash as an int or long long. + +It's still possible to continue inserting input into the hash state after a digest, +and generate some new hashes later on, by calling again XXH*_digest(). + +When done, free XXH state space if it was allocated dynamically. +*/ + + +/* ************************** +* Utils +****************************/ +#if !(defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)) /* ! C99 */ +# define restrict /* disable restrict */ +#endif + +XXH_PUBLIC_API void XXH32_copyState(XXH32_state_t* restrict dst_state, const XXH32_state_t* restrict src_state); +XXH_PUBLIC_API void XXH64_copyState(XXH64_state_t* restrict dst_state, const XXH64_state_t* restrict src_state); + + +/* ************************** +* Canonical representation +****************************/ +/* Default result type for XXH functions are primitive unsigned 32 and 64 bits. +* The canonical representation uses human-readable write convention, aka big-endian (large digits first). +* These functions allow transformation of hash result into and from its canonical format. +* This way, hash values can be written into a file / memory, and remain comparable on different systems and programs. +*/ +typedef struct { unsigned char digest[4]; } XXH32_canonical_t; +typedef struct { unsigned char digest[8]; } XXH64_canonical_t; + +XXH_PUBLIC_API void XXH32_canonicalFromHash(XXH32_canonical_t* dst, XXH32_hash_t hash); +XXH_PUBLIC_API void XXH64_canonicalFromHash(XXH64_canonical_t* dst, XXH64_hash_t hash); + +XXH_PUBLIC_API XXH32_hash_t XXH32_hashFromCanonical(const XXH32_canonical_t* src); +XXH_PUBLIC_API XXH64_hash_t XXH64_hashFromCanonical(const XXH64_canonical_t* src); + +#endif /* XXHASH_H_5627135585666179 */ + + + +/* ================================================================================================ + This section contains definitions which are not guaranteed to remain stable. + They may change in future versions, becoming incompatible with a different version of the library. + They shall only be used with static linking. + Never use these definitions in association with dynamic linking ! +=================================================================================================== */ +#if defined(XXH_STATIC_LINKING_ONLY) && !defined(XXH_STATIC_H_3543687687345) +#define XXH_STATIC_H_3543687687345 + +/* These definitions are only meant to allow allocation of XXH state + statically, on stack, or in a struct for example. + Do not use members directly. */ + + struct XXH32_state_s { + unsigned total_len_32; + unsigned large_len; + unsigned v1; + unsigned v2; + unsigned v3; + unsigned v4; + unsigned mem32[4]; /* buffer defined as U32 for alignment */ + unsigned memsize; + unsigned reserved; /* never read nor write, will be removed in a future version */ + }; /* typedef'd to XXH32_state_t */ + + struct XXH64_state_s { + unsigned long long total_len; + unsigned long long v1; + unsigned long long v2; + unsigned long long v3; + unsigned long long v4; + unsigned long long mem64[4]; /* buffer defined as U64 for alignment */ + unsigned memsize; + unsigned reserved[2]; /* never read nor write, will be removed in a future version */ + }; /* typedef'd to XXH64_state_t */ + + +# ifdef XXH_PRIVATE_API +# include "xxhash.c" /* include xxhash functions as `static`, for inlining */ +# endif + +#endif /* XXH_STATIC_LINKING_ONLY && XXH_STATIC_H_3543687687345 */ + + +#if defined (__cplusplus) +} +#endif diff --git a/dependencies/zstd-1.5.0/lib/common/zstd_common.c b/dependencies/zstd-1.5.0/lib/common/zstd_common.c new file mode 100644 index 0000000..3d7e35b --- /dev/null +++ b/dependencies/zstd-1.5.0/lib/common/zstd_common.c @@ -0,0 +1,83 @@ +/* + * Copyright (c) Yann Collet, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + + + +/*-************************************* +* Dependencies +***************************************/ +#define ZSTD_DEPS_NEED_MALLOC +#include "zstd_deps.h" /* ZSTD_malloc, ZSTD_calloc, ZSTD_free, ZSTD_memset */ +#include "error_private.h" +#include "zstd_internal.h" + + +/*-**************************************** +* Version +******************************************/ +unsigned ZSTD_versionNumber(void) { return ZSTD_VERSION_NUMBER; } + +const char* ZSTD_versionString(void) { return ZSTD_VERSION_STRING; } + + +/*-**************************************** +* ZSTD Error Management +******************************************/ +#undef ZSTD_isError /* defined within zstd_internal.h */ +/*! ZSTD_isError() : + * tells if a return value is an error code + * symbol is required for external callers */ +unsigned ZSTD_isError(size_t code) { return ERR_isError(code); } + +/*! ZSTD_getErrorName() : + * provides error code string from function result (useful for debugging) */ +const char* ZSTD_getErrorName(size_t code) { return ERR_getErrorName(code); } + +/*! ZSTD_getError() : + * convert a `size_t` function result into a proper ZSTD_errorCode enum */ +ZSTD_ErrorCode ZSTD_getErrorCode(size_t code) { return ERR_getErrorCode(code); } + +/*! ZSTD_getErrorString() : + * provides error code string from enum */ +const char* ZSTD_getErrorString(ZSTD_ErrorCode code) { return ERR_getErrorString(code); } + + + +/*=************************************************************** +* Custom allocator +****************************************************************/ +void* ZSTD_customMalloc(size_t size, ZSTD_customMem customMem) +{ + if (customMem.customAlloc) + return customMem.customAlloc(customMem.opaque, size); + return ZSTD_malloc(size); +} + +void* ZSTD_customCalloc(size_t size, ZSTD_customMem customMem) +{ + if (customMem.customAlloc) { + /* calloc implemented as malloc+memset; + * not as efficient as calloc, but next best guess for custom malloc */ + void* const ptr = customMem.customAlloc(customMem.opaque, size); + ZSTD_memset(ptr, 0, size); + return ptr; + } + return ZSTD_calloc(1, size); +} + +void ZSTD_customFree(void* ptr, ZSTD_customMem customMem) +{ + if (ptr!=NULL) { + if (customMem.customFree) + customMem.customFree(customMem.opaque, ptr); + else + ZSTD_free(ptr); + } +} diff --git a/dependencies/zstd-1.5.0/lib/common/zstd_deps.h b/dependencies/zstd-1.5.0/lib/common/zstd_deps.h new file mode 100644 index 0000000..1421134 --- /dev/null +++ b/dependencies/zstd-1.5.0/lib/common/zstd_deps.h @@ -0,0 +1,111 @@ +/* + * Copyright (c) Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + +/* This file provides common libc dependencies that zstd requires. + * The purpose is to allow replacing this file with a custom implementation + * to compile zstd without libc support. + */ + +/* Need: + * NULL + * INT_MAX + * UINT_MAX + * ZSTD_memcpy() + * ZSTD_memset() + * ZSTD_memmove() + */ +#ifndef ZSTD_DEPS_COMMON +#define ZSTD_DEPS_COMMON + +#include +#include +#include + +#if defined(__GNUC__) && __GNUC__ >= 4 +# define ZSTD_memcpy(d,s,l) __builtin_memcpy((d),(s),(l)) +# define ZSTD_memmove(d,s,l) __builtin_memmove((d),(s),(l)) +# define ZSTD_memset(p,v,l) __builtin_memset((p),(v),(l)) +#else +# define ZSTD_memcpy(d,s,l) memcpy((d),(s),(l)) +# define ZSTD_memmove(d,s,l) memmove((d),(s),(l)) +# define ZSTD_memset(p,v,l) memset((p),(v),(l)) +#endif + +#endif /* ZSTD_DEPS_COMMON */ + +/* Need: + * ZSTD_malloc() + * ZSTD_free() + * ZSTD_calloc() + */ +#ifdef ZSTD_DEPS_NEED_MALLOC +#ifndef ZSTD_DEPS_MALLOC +#define ZSTD_DEPS_MALLOC + +#include + +#define ZSTD_malloc(s) malloc(s) +#define ZSTD_calloc(n,s) calloc((n), (s)) +#define ZSTD_free(p) free((p)) + +#endif /* ZSTD_DEPS_MALLOC */ +#endif /* ZSTD_DEPS_NEED_MALLOC */ + +/* + * Provides 64-bit math support. + * Need: + * U64 ZSTD_div64(U64 dividend, U32 divisor) + */ +#ifdef ZSTD_DEPS_NEED_MATH64 +#ifndef ZSTD_DEPS_MATH64 +#define ZSTD_DEPS_MATH64 + +#define ZSTD_div64(dividend, divisor) ((dividend) / (divisor)) + +#endif /* ZSTD_DEPS_MATH64 */ +#endif /* ZSTD_DEPS_NEED_MATH64 */ + +/* Need: + * assert() + */ +#ifdef ZSTD_DEPS_NEED_ASSERT +#ifndef ZSTD_DEPS_ASSERT +#define ZSTD_DEPS_ASSERT + +#include + +#endif /* ZSTD_DEPS_ASSERT */ +#endif /* ZSTD_DEPS_NEED_ASSERT */ + +/* Need: + * ZSTD_DEBUG_PRINT() + */ +#ifdef ZSTD_DEPS_NEED_IO +#ifndef ZSTD_DEPS_IO +#define ZSTD_DEPS_IO + +#include +#define ZSTD_DEBUG_PRINT(...) fprintf(stderr, __VA_ARGS__) + +#endif /* ZSTD_DEPS_IO */ +#endif /* ZSTD_DEPS_NEED_IO */ + +/* Only requested when is known to be present. + * Need: + * intptr_t + */ +#ifdef ZSTD_DEPS_NEED_STDINT +#ifndef ZSTD_DEPS_STDINT +#define ZSTD_DEPS_STDINT + +#include + +#endif /* ZSTD_DEPS_STDINT */ +#endif /* ZSTD_DEPS_NEED_STDINT */ diff --git a/dependencies/zstd-1.5.0/lib/common/zstd_internal.h b/dependencies/zstd-1.5.0/lib/common/zstd_internal.h new file mode 100644 index 0000000..68252e9 --- /dev/null +++ b/dependencies/zstd-1.5.0/lib/common/zstd_internal.h @@ -0,0 +1,490 @@ +/* + * Copyright (c) Yann Collet, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + +#ifndef ZSTD_CCOMMON_H_MODULE +#define ZSTD_CCOMMON_H_MODULE + +/* this module contains definitions which must be identical + * across compression, decompression and dictBuilder. + * It also contains a few functions useful to at least 2 of them + * and which benefit from being inlined */ + +/*-************************************* +* Dependencies +***************************************/ +#if !defined(ZSTD_NO_INTRINSICS) && defined(__ARM_NEON) +#include +#endif +#include "compiler.h" +#include "mem.h" +#include "debug.h" /* assert, DEBUGLOG, RAWLOG, g_debuglevel */ +#include "error_private.h" +#define ZSTD_STATIC_LINKING_ONLY +#include "../zstd.h" +#define FSE_STATIC_LINKING_ONLY +#include "fse.h" +#define HUF_STATIC_LINKING_ONLY +#include "huf.h" +#ifndef XXH_STATIC_LINKING_ONLY +# define XXH_STATIC_LINKING_ONLY /* XXH64_state_t */ +#endif +#include "xxhash.h" /* XXH_reset, update, digest */ +#ifndef ZSTD_NO_TRACE +# include "zstd_trace.h" +#else +# define ZSTD_TRACE 0 +#endif + +#if defined (__cplusplus) +extern "C" { +#endif + +/* ---- static assert (debug) --- */ +#define ZSTD_STATIC_ASSERT(c) DEBUG_STATIC_ASSERT(c) +#define ZSTD_isError ERR_isError /* for inlining */ +#define FSE_isError ERR_isError +#define HUF_isError ERR_isError + + +/*-************************************* +* shared macros +***************************************/ +#undef MIN +#undef MAX +#define MIN(a,b) ((a)<(b) ? (a) : (b)) +#define MAX(a,b) ((a)>(b) ? (a) : (b)) + +/** + * Ignore: this is an internal helper. + * + * This is a helper function to help force C99-correctness during compilation. + * Under strict compilation modes, variadic macro arguments can't be empty. + * However, variadic function arguments can be. Using a function therefore lets + * us statically check that at least one (string) argument was passed, + * independent of the compilation flags. + */ +static INLINE_KEYWORD UNUSED_ATTR +void _force_has_format_string(const char *format, ...) { + (void)format; +} + +/** + * Ignore: this is an internal helper. + * + * We want to force this function invocation to be syntactically correct, but + * we don't want to force runtime evaluation of its arguments. + */ +#define _FORCE_HAS_FORMAT_STRING(...) \ + if (0) { \ + _force_has_format_string(__VA_ARGS__); \ + } + +/** + * Return the specified error if the condition evaluates to true. + * + * In debug modes, prints additional information. + * In order to do that (particularly, printing the conditional that failed), + * this can't just wrap RETURN_ERROR(). + */ +#define RETURN_ERROR_IF(cond, err, ...) \ + if (cond) { \ + RAWLOG(3, "%s:%d: ERROR!: check %s failed, returning %s", \ + __FILE__, __LINE__, ZSTD_QUOTE(cond), ZSTD_QUOTE(ERROR(err))); \ + _FORCE_HAS_FORMAT_STRING(__VA_ARGS__); \ + RAWLOG(3, ": " __VA_ARGS__); \ + RAWLOG(3, "\n"); \ + return ERROR(err); \ + } + +/** + * Unconditionally return the specified error. + * + * In debug modes, prints additional information. + */ +#define RETURN_ERROR(err, ...) \ + do { \ + RAWLOG(3, "%s:%d: ERROR!: unconditional check failed, returning %s", \ + __FILE__, __LINE__, ZSTD_QUOTE(ERROR(err))); \ + _FORCE_HAS_FORMAT_STRING(__VA_ARGS__); \ + RAWLOG(3, ": " __VA_ARGS__); \ + RAWLOG(3, "\n"); \ + return ERROR(err); \ + } while(0); + +/** + * If the provided expression evaluates to an error code, returns that error code. + * + * In debug modes, prints additional information. + */ +#define FORWARD_IF_ERROR(err, ...) \ + do { \ + size_t const err_code = (err); \ + if (ERR_isError(err_code)) { \ + RAWLOG(3, "%s:%d: ERROR!: forwarding error in %s: %s", \ + __FILE__, __LINE__, ZSTD_QUOTE(err), ERR_getErrorName(err_code)); \ + _FORCE_HAS_FORMAT_STRING(__VA_ARGS__); \ + RAWLOG(3, ": " __VA_ARGS__); \ + RAWLOG(3, "\n"); \ + return err_code; \ + } \ + } while(0); + + +/*-************************************* +* Common constants +***************************************/ +#define ZSTD_OPT_NUM (1<<12) + +#define ZSTD_REP_NUM 3 /* number of repcodes */ +#define ZSTD_REP_MOVE (ZSTD_REP_NUM-1) +static UNUSED_ATTR const U32 repStartValue[ZSTD_REP_NUM] = { 1, 4, 8 }; + +#define KB *(1 <<10) +#define MB *(1 <<20) +#define GB *(1U<<30) + +#define BIT7 128 +#define BIT6 64 +#define BIT5 32 +#define BIT4 16 +#define BIT1 2 +#define BIT0 1 + +#define ZSTD_WINDOWLOG_ABSOLUTEMIN 10 +static UNUSED_ATTR const size_t ZSTD_fcs_fieldSize[4] = { 0, 2, 4, 8 }; +static UNUSED_ATTR const size_t ZSTD_did_fieldSize[4] = { 0, 1, 2, 4 }; + +#define ZSTD_FRAMEIDSIZE 4 /* magic number size */ + +#define ZSTD_BLOCKHEADERSIZE 3 /* C standard doesn't allow `static const` variable to be init using another `static const` variable */ +static UNUSED_ATTR const size_t ZSTD_blockHeaderSize = ZSTD_BLOCKHEADERSIZE; +typedef enum { bt_raw, bt_rle, bt_compressed, bt_reserved } blockType_e; + +#define ZSTD_FRAMECHECKSUMSIZE 4 + +#define MIN_SEQUENCES_SIZE 1 /* nbSeq==0 */ +#define MIN_CBLOCK_SIZE (1 /*litCSize*/ + 1 /* RLE or RAW */ + MIN_SEQUENCES_SIZE /* nbSeq==0 */) /* for a non-null block */ + +#define HufLog 12 +typedef enum { set_basic, set_rle, set_compressed, set_repeat } symbolEncodingType_e; + +#define LONGNBSEQ 0x7F00 + +#define MINMATCH 3 + +#define Litbits 8 +#define MaxLit ((1<= 8 || (ovtype == ZSTD_no_overlap && diff <= -WILDCOPY_VECLEN)); + + if (ovtype == ZSTD_overlap_src_before_dst && diff < WILDCOPY_VECLEN) { + /* Handle short offset copies. */ + do { + COPY8(op, ip) + } while (op < oend); + } else { + assert(diff >= WILDCOPY_VECLEN || diff <= -WILDCOPY_VECLEN); + /* Separate out the first COPY16() call because the copy length is + * almost certain to be short, so the branches have different + * probabilities. Since it is almost certain to be short, only do + * one COPY16() in the first call. Then, do two calls per loop since + * at that point it is more likely to have a high trip count. + */ +#ifdef __aarch64__ + do { + COPY16(op, ip); + } + while (op < oend); +#else + ZSTD_copy16(op, ip); + if (16 >= length) return; + op += 16; + ip += 16; + do { + COPY16(op, ip); + COPY16(op, ip); + } + while (op < oend); +#endif + } +} + +MEM_STATIC size_t ZSTD_limitCopy(void* dst, size_t dstCapacity, const void* src, size_t srcSize) +{ + size_t const length = MIN(dstCapacity, srcSize); + if (length > 0) { + ZSTD_memcpy(dst, src, length); + } + return length; +} + +/* define "workspace is too large" as this number of times larger than needed */ +#define ZSTD_WORKSPACETOOLARGE_FACTOR 3 + +/* when workspace is continuously too large + * during at least this number of times, + * context's memory usage is considered wasteful, + * because it's sized to handle a worst case scenario which rarely happens. + * In which case, resize it down to free some memory */ +#define ZSTD_WORKSPACETOOLARGE_MAXDURATION 128 + +/* Controls whether the input/output buffer is buffered or stable. */ +typedef enum { + ZSTD_bm_buffered = 0, /* Buffer the input/output */ + ZSTD_bm_stable = 1 /* ZSTD_inBuffer/ZSTD_outBuffer is stable */ +} ZSTD_bufferMode_e; + + +/*-******************************************* +* Private declarations +*********************************************/ +typedef struct seqDef_s { + U32 offset; /* offset == rawOffset + ZSTD_REP_NUM, or equivalently, offCode + 1 */ + U16 litLength; + U16 matchLength; +} seqDef; + +/* Controls whether seqStore has a single "long" litLength or matchLength. See seqStore_t. */ +typedef enum { + ZSTD_llt_none = 0, /* no longLengthType */ + ZSTD_llt_literalLength = 1, /* represents a long literal */ + ZSTD_llt_matchLength = 2 /* represents a long match */ +} ZSTD_longLengthType_e; + +typedef struct { + seqDef* sequencesStart; + seqDef* sequences; /* ptr to end of sequences */ + BYTE* litStart; + BYTE* lit; /* ptr to end of literals */ + BYTE* llCode; + BYTE* mlCode; + BYTE* ofCode; + size_t maxNbSeq; + size_t maxNbLit; + + /* longLengthPos and longLengthType to allow us to represent either a single litLength or matchLength + * in the seqStore that has a value larger than U16 (if it exists). To do so, we increment + * the existing value of the litLength or matchLength by 0x10000. + */ + ZSTD_longLengthType_e longLengthType; + U32 longLengthPos; /* Index of the sequence to apply long length modification to */ +} seqStore_t; + +typedef struct { + U32 litLength; + U32 matchLength; +} ZSTD_sequenceLength; + +/** + * Returns the ZSTD_sequenceLength for the given sequences. It handles the decoding of long sequences + * indicated by longLengthPos and longLengthType, and adds MINMATCH back to matchLength. + */ +MEM_STATIC ZSTD_sequenceLength ZSTD_getSequenceLength(seqStore_t const* seqStore, seqDef const* seq) +{ + ZSTD_sequenceLength seqLen; + seqLen.litLength = seq->litLength; + seqLen.matchLength = seq->matchLength + MINMATCH; + if (seqStore->longLengthPos == (U32)(seq - seqStore->sequencesStart)) { + if (seqStore->longLengthType == ZSTD_llt_literalLength) { + seqLen.litLength += 0xFFFF; + } + if (seqStore->longLengthType == ZSTD_llt_matchLength) { + seqLen.matchLength += 0xFFFF; + } + } + return seqLen; +} + +/** + * Contains the compressed frame size and an upper-bound for the decompressed frame size. + * Note: before using `compressedSize`, check for errors using ZSTD_isError(). + * similarly, before using `decompressedBound`, check for errors using: + * `decompressedBound != ZSTD_CONTENTSIZE_ERROR` + */ +typedef struct { + size_t compressedSize; + unsigned long long decompressedBound; +} ZSTD_frameSizeInfo; /* decompress & legacy */ + +const seqStore_t* ZSTD_getSeqStore(const ZSTD_CCtx* ctx); /* compress & dictBuilder */ +void ZSTD_seqToCodes(const seqStore_t* seqStorePtr); /* compress, dictBuilder, decodeCorpus (shouldn't get its definition from here) */ + +/* custom memory allocation functions */ +void* ZSTD_customMalloc(size_t size, ZSTD_customMem customMem); +void* ZSTD_customCalloc(size_t size, ZSTD_customMem customMem); +void ZSTD_customFree(void* ptr, ZSTD_customMem customMem); + + +MEM_STATIC U32 ZSTD_highbit32(U32 val) /* compress, dictBuilder, decodeCorpus */ +{ + assert(val != 0); + { +# if defined(_MSC_VER) /* Visual */ +# if STATIC_BMI2 == 1 + return _lzcnt_u32(val)^31; +# else + unsigned long r=0; + return _BitScanReverse(&r, val) ? (unsigned)r : 0; +# endif +# elif defined(__GNUC__) && (__GNUC__ >= 3) /* GCC Intrinsic */ + return __builtin_clz (val) ^ 31; +# elif defined(__ICCARM__) /* IAR Intrinsic */ + return 31 - __CLZ(val); +# else /* Software version */ + static const U32 DeBruijnClz[32] = { 0, 9, 1, 10, 13, 21, 2, 29, 11, 14, 16, 18, 22, 25, 3, 30, 8, 12, 20, 28, 15, 17, 24, 7, 19, 27, 23, 6, 26, 5, 4, 31 }; + U32 v = val; + v |= v >> 1; + v |= v >> 2; + v |= v >> 4; + v |= v >> 8; + v |= v >> 16; + return DeBruijnClz[(v * 0x07C4ACDDU) >> 27]; +# endif + } +} + + +/* ZSTD_invalidateRepCodes() : + * ensures next compression will not use repcodes from previous block. + * Note : only works with regular variant; + * do not use with extDict variant ! */ +void ZSTD_invalidateRepCodes(ZSTD_CCtx* cctx); /* zstdmt, adaptive_compression (shouldn't get this definition from here) */ + + +typedef struct { + blockType_e blockType; + U32 lastBlock; + U32 origSize; +} blockProperties_t; /* declared here for decompress and fullbench */ + +/*! ZSTD_getcBlockSize() : + * Provides the size of compressed block from block header `src` */ +/* Used by: decompress, fullbench (does not get its definition from here) */ +size_t ZSTD_getcBlockSize(const void* src, size_t srcSize, + blockProperties_t* bpPtr); + +/*! ZSTD_decodeSeqHeaders() : + * decode sequence header from src */ +/* Used by: decompress, fullbench (does not get its definition from here) */ +size_t ZSTD_decodeSeqHeaders(ZSTD_DCtx* dctx, int* nbSeqPtr, + const void* src, size_t srcSize); + + +#if defined (__cplusplus) +} +#endif + +#endif /* ZSTD_CCOMMON_H_MODULE */ diff --git a/dependencies/zstd-1.5.0/lib/common/zstd_trace.h b/dependencies/zstd-1.5.0/lib/common/zstd_trace.h new file mode 100644 index 0000000..2da5640 --- /dev/null +++ b/dependencies/zstd-1.5.0/lib/common/zstd_trace.h @@ -0,0 +1,154 @@ +/* + * Copyright (c) Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + +#ifndef ZSTD_TRACE_H +#define ZSTD_TRACE_H + +#if defined (__cplusplus) +extern "C" { +#endif + +#include + +/* weak symbol support */ +#if !defined(ZSTD_HAVE_WEAK_SYMBOLS) && defined(__GNUC__) && \ + !defined(__APPLE__) && !defined(_WIN32) && !defined(__MINGW32__) && \ + !defined(__CYGWIN__) +# define ZSTD_HAVE_WEAK_SYMBOLS 1 +#else +# define ZSTD_HAVE_WEAK_SYMBOLS 0 +#endif +#if ZSTD_HAVE_WEAK_SYMBOLS +# define ZSTD_WEAK_ATTR __attribute__((__weak__)) +#else +# define ZSTD_WEAK_ATTR +#endif + +/* Only enable tracing when weak symbols are available. */ +#ifndef ZSTD_TRACE +# define ZSTD_TRACE ZSTD_HAVE_WEAK_SYMBOLS +#endif + +#if ZSTD_TRACE + +struct ZSTD_CCtx_s; +struct ZSTD_DCtx_s; +struct ZSTD_CCtx_params_s; + +typedef struct { + /** + * ZSTD_VERSION_NUMBER + * + * This is guaranteed to be the first member of ZSTD_trace. + * Otherwise, this struct is not stable between versions. If + * the version number does not match your expectation, you + * should not interpret the rest of the struct. + */ + unsigned version; + /** + * Non-zero if streaming (de)compression is used. + */ + unsigned streaming; + /** + * The dictionary ID. + */ + unsigned dictionaryID; + /** + * Is the dictionary cold? + * Only set on decompression. + */ + unsigned dictionaryIsCold; + /** + * The dictionary size or zero if no dictionary. + */ + size_t dictionarySize; + /** + * The uncompressed size of the data. + */ + size_t uncompressedSize; + /** + * The compressed size of the data. + */ + size_t compressedSize; + /** + * The fully resolved CCtx parameters (NULL on decompression). + */ + struct ZSTD_CCtx_params_s const* params; + /** + * The ZSTD_CCtx pointer (NULL on decompression). + */ + struct ZSTD_CCtx_s const* cctx; + /** + * The ZSTD_DCtx pointer (NULL on compression). + */ + struct ZSTD_DCtx_s const* dctx; +} ZSTD_Trace; + +/** + * A tracing context. It must be 0 when tracing is disabled. + * Otherwise, any non-zero value returned by a tracing begin() + * function is presented to any subsequent calls to end(). + * + * Any non-zero value is treated as tracing is enabled and not + * interpreted by the library. + * + * Two possible uses are: + * * A timestamp for when the begin() function was called. + * * A unique key identifying the (de)compression, like the + * address of the [dc]ctx pointer if you need to track + * more information than just a timestamp. + */ +typedef unsigned long long ZSTD_TraceCtx; + +/** + * Trace the beginning of a compression call. + * @param cctx The dctx pointer for the compression. + * It can be used as a key to map begin() to end(). + * @returns Non-zero if tracing is enabled. The return value is + * passed to ZSTD_trace_compress_end(). + */ +ZSTD_WEAK_ATTR ZSTD_TraceCtx ZSTD_trace_compress_begin( + struct ZSTD_CCtx_s const* cctx); + +/** + * Trace the end of a compression call. + * @param ctx The return value of ZSTD_trace_compress_begin(). + * @param trace The zstd tracing info. + */ +ZSTD_WEAK_ATTR void ZSTD_trace_compress_end( + ZSTD_TraceCtx ctx, + ZSTD_Trace const* trace); + +/** + * Trace the beginning of a decompression call. + * @param dctx The dctx pointer for the decompression. + * It can be used as a key to map begin() to end(). + * @returns Non-zero if tracing is enabled. The return value is + * passed to ZSTD_trace_compress_end(). + */ +ZSTD_WEAK_ATTR ZSTD_TraceCtx ZSTD_trace_decompress_begin( + struct ZSTD_DCtx_s const* dctx); + +/** + * Trace the end of a decompression call. + * @param ctx The return value of ZSTD_trace_decompress_begin(). + * @param trace The zstd tracing info. + */ +ZSTD_WEAK_ATTR void ZSTD_trace_decompress_end( + ZSTD_TraceCtx ctx, + ZSTD_Trace const* trace); + +#endif /* ZSTD_TRACE */ + +#if defined (__cplusplus) +} +#endif + +#endif /* ZSTD_TRACE_H */ diff --git a/dependencies/zstd-1.5.0/lib/compress/fse_compress.c b/dependencies/zstd-1.5.0/lib/compress/fse_compress.c new file mode 100644 index 0000000..b4297ec --- /dev/null +++ b/dependencies/zstd-1.5.0/lib/compress/fse_compress.c @@ -0,0 +1,705 @@ +/* ****************************************************************** + * FSE : Finite State Entropy encoder + * Copyright (c) Yann Collet, Facebook, Inc. + * + * You can contact the author at : + * - FSE source repository : https://github.com/Cyan4973/FiniteStateEntropy + * - Public forum : https://groups.google.com/forum/#!forum/lz4c + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. +****************************************************************** */ + +/* ************************************************************** +* Includes +****************************************************************/ +#include "../common/compiler.h" +#include "../common/mem.h" /* U32, U16, etc. */ +#include "../common/debug.h" /* assert, DEBUGLOG */ +#include "hist.h" /* HIST_count_wksp */ +#include "../common/bitstream.h" +#define FSE_STATIC_LINKING_ONLY +#include "../common/fse.h" +#include "../common/error_private.h" +#define ZSTD_DEPS_NEED_MALLOC +#define ZSTD_DEPS_NEED_MATH64 +#include "../common/zstd_deps.h" /* ZSTD_malloc, ZSTD_free, ZSTD_memcpy, ZSTD_memset */ + + +/* ************************************************************** +* Error Management +****************************************************************/ +#define FSE_isError ERR_isError + + +/* ************************************************************** +* Templates +****************************************************************/ +/* + designed to be included + for type-specific functions (template emulation in C) + Objective is to write these functions only once, for improved maintenance +*/ + +/* safety checks */ +#ifndef FSE_FUNCTION_EXTENSION +# error "FSE_FUNCTION_EXTENSION must be defined" +#endif +#ifndef FSE_FUNCTION_TYPE +# error "FSE_FUNCTION_TYPE must be defined" +#endif + +/* Function names */ +#define FSE_CAT(X,Y) X##Y +#define FSE_FUNCTION_NAME(X,Y) FSE_CAT(X,Y) +#define FSE_TYPE_NAME(X,Y) FSE_CAT(X,Y) + + +/* Function templates */ + +/* FSE_buildCTable_wksp() : + * Same as FSE_buildCTable(), but using an externally allocated scratch buffer (`workSpace`). + * wkspSize should be sized to handle worst case situation, which is `1<>1 : 1) ; + FSE_symbolCompressionTransform* const symbolTT = (FSE_symbolCompressionTransform*) (FSCT); + U32 const step = FSE_TABLESTEP(tableSize); + + U32* cumul = (U32*)workSpace; + FSE_FUNCTION_TYPE* tableSymbol = (FSE_FUNCTION_TYPE*)(cumul + (maxSymbolValue + 2)); + + U32 highThreshold = tableSize-1; + + if ((size_t)workSpace & 3) return ERROR(GENERIC); /* Must be 4 byte aligned */ + if (FSE_BUILD_CTABLE_WORKSPACE_SIZE(maxSymbolValue, tableLog) > wkspSize) return ERROR(tableLog_tooLarge); + /* CTable header */ + tableU16[-2] = (U16) tableLog; + tableU16[-1] = (U16) maxSymbolValue; + assert(tableLog < 16); /* required for threshold strategy to work */ + + /* For explanations on how to distribute symbol values over the table : + * http://fastcompression.blogspot.fr/2014/02/fse-distributing-symbol-values.html */ + + #ifdef __clang_analyzer__ + ZSTD_memset(tableSymbol, 0, sizeof(*tableSymbol) * tableSize); /* useless initialization, just to keep scan-build happy */ + #endif + + /* symbol start positions */ + { U32 u; + cumul[0] = 0; + for (u=1; u <= maxSymbolValue+1; u++) { + if (normalizedCounter[u-1]==-1) { /* Low proba symbol */ + cumul[u] = cumul[u-1] + 1; + tableSymbol[highThreshold--] = (FSE_FUNCTION_TYPE)(u-1); + } else { + cumul[u] = cumul[u-1] + normalizedCounter[u-1]; + } } + cumul[maxSymbolValue+1] = tableSize+1; + } + + /* Spread symbols */ + { U32 position = 0; + U32 symbol; + for (symbol=0; symbol<=maxSymbolValue; symbol++) { + int nbOccurrences; + int const freq = normalizedCounter[symbol]; + for (nbOccurrences=0; nbOccurrences highThreshold) + position = (position + step) & tableMask; /* Low proba area */ + } } + + assert(position==0); /* Must have initialized all positions */ + } + + /* Build table */ + { U32 u; for (u=0; u> 3) + 3; + return maxSymbolValue ? maxHeaderSize : FSE_NCOUNTBOUND; /* maxSymbolValue==0 ? use default */ +} + +static size_t +FSE_writeNCount_generic (void* header, size_t headerBufferSize, + const short* normalizedCounter, unsigned maxSymbolValue, unsigned tableLog, + unsigned writeIsSafe) +{ + BYTE* const ostart = (BYTE*) header; + BYTE* out = ostart; + BYTE* const oend = ostart + headerBufferSize; + int nbBits; + const int tableSize = 1 << tableLog; + int remaining; + int threshold; + U32 bitStream = 0; + int bitCount = 0; + unsigned symbol = 0; + unsigned const alphabetSize = maxSymbolValue + 1; + int previousIs0 = 0; + + /* Table Size */ + bitStream += (tableLog-FSE_MIN_TABLELOG) << bitCount; + bitCount += 4; + + /* Init */ + remaining = tableSize+1; /* +1 for extra accuracy */ + threshold = tableSize; + nbBits = tableLog+1; + + while ((symbol < alphabetSize) && (remaining>1)) { /* stops at 1 */ + if (previousIs0) { + unsigned start = symbol; + while ((symbol < alphabetSize) && !normalizedCounter[symbol]) symbol++; + if (symbol == alphabetSize) break; /* incorrect distribution */ + while (symbol >= start+24) { + start+=24; + bitStream += 0xFFFFU << bitCount; + if ((!writeIsSafe) && (out > oend-2)) + return ERROR(dstSize_tooSmall); /* Buffer overflow */ + out[0] = (BYTE) bitStream; + out[1] = (BYTE)(bitStream>>8); + out+=2; + bitStream>>=16; + } + while (symbol >= start+3) { + start+=3; + bitStream += 3 << bitCount; + bitCount += 2; + } + bitStream += (symbol-start) << bitCount; + bitCount += 2; + if (bitCount>16) { + if ((!writeIsSafe) && (out > oend - 2)) + return ERROR(dstSize_tooSmall); /* Buffer overflow */ + out[0] = (BYTE)bitStream; + out[1] = (BYTE)(bitStream>>8); + out += 2; + bitStream >>= 16; + bitCount -= 16; + } } + { int count = normalizedCounter[symbol++]; + int const max = (2*threshold-1) - remaining; + remaining -= count < 0 ? -count : count; + count++; /* +1 for extra accuracy */ + if (count>=threshold) + count += max; /* [0..max[ [max..threshold[ (...) [threshold+max 2*threshold[ */ + bitStream += count << bitCount; + bitCount += nbBits; + bitCount -= (count>=1; } + } + if (bitCount>16) { + if ((!writeIsSafe) && (out > oend - 2)) + return ERROR(dstSize_tooSmall); /* Buffer overflow */ + out[0] = (BYTE)bitStream; + out[1] = (BYTE)(bitStream>>8); + out += 2; + bitStream >>= 16; + bitCount -= 16; + } } + + if (remaining != 1) + return ERROR(GENERIC); /* incorrect normalized distribution */ + assert(symbol <= alphabetSize); + + /* flush remaining bitStream */ + if ((!writeIsSafe) && (out > oend - 2)) + return ERROR(dstSize_tooSmall); /* Buffer overflow */ + out[0] = (BYTE)bitStream; + out[1] = (BYTE)(bitStream>>8); + out+= (bitCount+7) /8; + + return (out-ostart); +} + + +size_t FSE_writeNCount (void* buffer, size_t bufferSize, + const short* normalizedCounter, unsigned maxSymbolValue, unsigned tableLog) +{ + if (tableLog > FSE_MAX_TABLELOG) return ERROR(tableLog_tooLarge); /* Unsupported */ + if (tableLog < FSE_MIN_TABLELOG) return ERROR(GENERIC); /* Unsupported */ + + if (bufferSize < FSE_NCountWriteBound(maxSymbolValue, tableLog)) + return FSE_writeNCount_generic(buffer, bufferSize, normalizedCounter, maxSymbolValue, tableLog, 0); + + return FSE_writeNCount_generic(buffer, bufferSize, normalizedCounter, maxSymbolValue, tableLog, 1 /* write in buffer is safe */); +} + + +/*-************************************************************** +* FSE Compression Code +****************************************************************/ + +FSE_CTable* FSE_createCTable (unsigned maxSymbolValue, unsigned tableLog) +{ + size_t size; + if (tableLog > FSE_TABLELOG_ABSOLUTE_MAX) tableLog = FSE_TABLELOG_ABSOLUTE_MAX; + size = FSE_CTABLE_SIZE_U32 (tableLog, maxSymbolValue) * sizeof(U32); + return (FSE_CTable*)ZSTD_malloc(size); +} + +void FSE_freeCTable (FSE_CTable* ct) { ZSTD_free(ct); } + +/* provides the minimum logSize to safely represent a distribution */ +static unsigned FSE_minTableLog(size_t srcSize, unsigned maxSymbolValue) +{ + U32 minBitsSrc = BIT_highbit32((U32)(srcSize)) + 1; + U32 minBitsSymbols = BIT_highbit32(maxSymbolValue) + 2; + U32 minBits = minBitsSrc < minBitsSymbols ? minBitsSrc : minBitsSymbols; + assert(srcSize > 1); /* Not supported, RLE should be used instead */ + return minBits; +} + +unsigned FSE_optimalTableLog_internal(unsigned maxTableLog, size_t srcSize, unsigned maxSymbolValue, unsigned minus) +{ + U32 maxBitsSrc = BIT_highbit32((U32)(srcSize - 1)) - minus; + U32 tableLog = maxTableLog; + U32 minBits = FSE_minTableLog(srcSize, maxSymbolValue); + assert(srcSize > 1); /* Not supported, RLE should be used instead */ + if (tableLog==0) tableLog = FSE_DEFAULT_TABLELOG; + if (maxBitsSrc < tableLog) tableLog = maxBitsSrc; /* Accuracy can be reduced */ + if (minBits > tableLog) tableLog = minBits; /* Need a minimum to safely represent all symbol values */ + if (tableLog < FSE_MIN_TABLELOG) tableLog = FSE_MIN_TABLELOG; + if (tableLog > FSE_MAX_TABLELOG) tableLog = FSE_MAX_TABLELOG; + return tableLog; +} + +unsigned FSE_optimalTableLog(unsigned maxTableLog, size_t srcSize, unsigned maxSymbolValue) +{ + return FSE_optimalTableLog_internal(maxTableLog, srcSize, maxSymbolValue, 2); +} + +/* Secondary normalization method. + To be used when primary method fails. */ + +static size_t FSE_normalizeM2(short* norm, U32 tableLog, const unsigned* count, size_t total, U32 maxSymbolValue, short lowProbCount) +{ + short const NOT_YET_ASSIGNED = -2; + U32 s; + U32 distributed = 0; + U32 ToDistribute; + + /* Init */ + U32 const lowThreshold = (U32)(total >> tableLog); + U32 lowOne = (U32)((total * 3) >> (tableLog + 1)); + + for (s=0; s<=maxSymbolValue; s++) { + if (count[s] == 0) { + norm[s]=0; + continue; + } + if (count[s] <= lowThreshold) { + norm[s] = lowProbCount; + distributed++; + total -= count[s]; + continue; + } + if (count[s] <= lowOne) { + norm[s] = 1; + distributed++; + total -= count[s]; + continue; + } + + norm[s]=NOT_YET_ASSIGNED; + } + ToDistribute = (1 << tableLog) - distributed; + + if (ToDistribute == 0) + return 0; + + if ((total / ToDistribute) > lowOne) { + /* risk of rounding to zero */ + lowOne = (U32)((total * 3) / (ToDistribute * 2)); + for (s=0; s<=maxSymbolValue; s++) { + if ((norm[s] == NOT_YET_ASSIGNED) && (count[s] <= lowOne)) { + norm[s] = 1; + distributed++; + total -= count[s]; + continue; + } } + ToDistribute = (1 << tableLog) - distributed; + } + + if (distributed == maxSymbolValue+1) { + /* all values are pretty poor; + probably incompressible data (should have already been detected); + find max, then give all remaining points to max */ + U32 maxV = 0, maxC = 0; + for (s=0; s<=maxSymbolValue; s++) + if (count[s] > maxC) { maxV=s; maxC=count[s]; } + norm[maxV] += (short)ToDistribute; + return 0; + } + + if (total == 0) { + /* all of the symbols were low enough for the lowOne or lowThreshold */ + for (s=0; ToDistribute > 0; s = (s+1)%(maxSymbolValue+1)) + if (norm[s] > 0) { ToDistribute--; norm[s]++; } + return 0; + } + + { U64 const vStepLog = 62 - tableLog; + U64 const mid = (1ULL << (vStepLog-1)) - 1; + U64 const rStep = ZSTD_div64((((U64)1<> vStepLog); + U32 const sEnd = (U32)(end >> vStepLog); + U32 const weight = sEnd - sStart; + if (weight < 1) + return ERROR(GENERIC); + norm[s] = (short)weight; + tmpTotal = end; + } } } + + return 0; +} + +size_t FSE_normalizeCount (short* normalizedCounter, unsigned tableLog, + const unsigned* count, size_t total, + unsigned maxSymbolValue, unsigned useLowProbCount) +{ + /* Sanity checks */ + if (tableLog==0) tableLog = FSE_DEFAULT_TABLELOG; + if (tableLog < FSE_MIN_TABLELOG) return ERROR(GENERIC); /* Unsupported size */ + if (tableLog > FSE_MAX_TABLELOG) return ERROR(tableLog_tooLarge); /* Unsupported size */ + if (tableLog < FSE_minTableLog(total, maxSymbolValue)) return ERROR(GENERIC); /* Too small tableLog, compression potentially impossible */ + + { static U32 const rtbTable[] = { 0, 473195, 504333, 520860, 550000, 700000, 750000, 830000 }; + short const lowProbCount = useLowProbCount ? -1 : 1; + U64 const scale = 62 - tableLog; + U64 const step = ZSTD_div64((U64)1<<62, (U32)total); /* <== here, one division ! */ + U64 const vStep = 1ULL<<(scale-20); + int stillToDistribute = 1<> tableLog); + + for (s=0; s<=maxSymbolValue; s++) { + if (count[s] == total) return 0; /* rle special case */ + if (count[s] == 0) { normalizedCounter[s]=0; continue; } + if (count[s] <= lowThreshold) { + normalizedCounter[s] = lowProbCount; + stillToDistribute--; + } else { + short proba = (short)((count[s]*step) >> scale); + if (proba<8) { + U64 restToBeat = vStep * rtbTable[proba]; + proba += (count[s]*step) - ((U64)proba< restToBeat; + } + if (proba > largestP) { largestP=proba; largest=s; } + normalizedCounter[s] = proba; + stillToDistribute -= proba; + } } + if (-stillToDistribute >= (normalizedCounter[largest] >> 1)) { + /* corner case, need another normalization method */ + size_t const errorCode = FSE_normalizeM2(normalizedCounter, tableLog, count, total, maxSymbolValue, lowProbCount); + if (FSE_isError(errorCode)) return errorCode; + } + else normalizedCounter[largest] += (short)stillToDistribute; + } + +#if 0 + { /* Print Table (debug) */ + U32 s; + U32 nTotal = 0; + for (s=0; s<=maxSymbolValue; s++) + RAWLOG(2, "%3i: %4i \n", s, normalizedCounter[s]); + for (s=0; s<=maxSymbolValue; s++) + nTotal += abs(normalizedCounter[s]); + if (nTotal != (1U<>1); /* assumption : tableLog >= 1 */ + FSE_symbolCompressionTransform* const symbolTT = (FSE_symbolCompressionTransform*) (FSCT); + unsigned s; + + /* Sanity checks */ + if (nbBits < 1) return ERROR(GENERIC); /* min size */ + + /* header */ + tableU16[-2] = (U16) nbBits; + tableU16[-1] = (U16) maxSymbolValue; + + /* Build table */ + for (s=0; s FSE_MAX_TABLELOG*4+7 ) && (srcSize & 2)) { /* test bit 2 */ + FSE_encodeSymbol(&bitC, &CState2, *--ip); + FSE_encodeSymbol(&bitC, &CState1, *--ip); + FSE_FLUSHBITS(&bitC); + } + + /* 2 or 4 encoding per loop */ + while ( ip>istart ) { + + FSE_encodeSymbol(&bitC, &CState2, *--ip); + + if (sizeof(bitC.bitContainer)*8 < FSE_MAX_TABLELOG*2+7 ) /* this test must be static */ + FSE_FLUSHBITS(&bitC); + + FSE_encodeSymbol(&bitC, &CState1, *--ip); + + if (sizeof(bitC.bitContainer)*8 > FSE_MAX_TABLELOG*4+7 ) { /* this test must be static */ + FSE_encodeSymbol(&bitC, &CState2, *--ip); + FSE_encodeSymbol(&bitC, &CState1, *--ip); + } + + FSE_FLUSHBITS(&bitC); + } + + FSE_flushCState(&bitC, &CState2); + FSE_flushCState(&bitC, &CState1); + return BIT_closeCStream(&bitC); +} + +size_t FSE_compress_usingCTable (void* dst, size_t dstSize, + const void* src, size_t srcSize, + const FSE_CTable* ct) +{ + unsigned const fast = (dstSize >= FSE_BLOCKBOUND(srcSize)); + + if (fast) + return FSE_compress_usingCTable_generic(dst, dstSize, src, srcSize, ct, 1); + else + return FSE_compress_usingCTable_generic(dst, dstSize, src, srcSize, ct, 0); +} + + +size_t FSE_compressBound(size_t size) { return FSE_COMPRESSBOUND(size); } + +#ifndef ZSTD_NO_UNUSED_FUNCTIONS +/* FSE_compress_wksp() : + * Same as FSE_compress2(), but using an externally allocated scratch buffer (`workSpace`). + * `wkspSize` size must be `(1< not compressible */ + if (maxCount < (srcSize >> 7)) return 0; /* Heuristic : not compressible enough */ + } + + tableLog = FSE_optimalTableLog(tableLog, srcSize, maxSymbolValue); + CHECK_F( FSE_normalizeCount(norm, tableLog, count, srcSize, maxSymbolValue, /* useLowProbCount */ srcSize >= 2048) ); + + /* Write table description header */ + { CHECK_V_F(nc_err, FSE_writeNCount(op, oend-op, norm, maxSymbolValue, tableLog) ); + op += nc_err; + } + + /* Compress */ + CHECK_F( FSE_buildCTable_wksp(CTable, norm, maxSymbolValue, tableLog, scratchBuffer, scratchBufferSize) ); + { CHECK_V_F(cSize, FSE_compress_usingCTable(op, oend - op, src, srcSize, CTable) ); + if (cSize == 0) return 0; /* not enough space for compressed data */ + op += cSize; + } + + /* check compressibility */ + if ( (size_t)(op-ostart) >= srcSize-1 ) return 0; + + return op-ostart; +} + +typedef struct { + FSE_CTable CTable_max[FSE_CTABLE_SIZE_U32(FSE_MAX_TABLELOG, FSE_MAX_SYMBOL_VALUE)]; + union { + U32 hist_wksp[HIST_WKSP_SIZE_U32]; + BYTE scratchBuffer[1 << FSE_MAX_TABLELOG]; + } workspace; +} fseWkspMax_t; + +size_t FSE_compress2 (void* dst, size_t dstCapacity, const void* src, size_t srcSize, unsigned maxSymbolValue, unsigned tableLog) +{ + fseWkspMax_t scratchBuffer; + DEBUG_STATIC_ASSERT(sizeof(scratchBuffer) >= FSE_COMPRESS_WKSP_SIZE_U32(FSE_MAX_TABLELOG, FSE_MAX_SYMBOL_VALUE)); /* compilation failures here means scratchBuffer is not large enough */ + if (tableLog > FSE_MAX_TABLELOG) return ERROR(tableLog_tooLarge); + return FSE_compress_wksp(dst, dstCapacity, src, srcSize, maxSymbolValue, tableLog, &scratchBuffer, sizeof(scratchBuffer)); +} + +size_t FSE_compress (void* dst, size_t dstCapacity, const void* src, size_t srcSize) +{ + return FSE_compress2(dst, dstCapacity, src, srcSize, FSE_MAX_SYMBOL_VALUE, FSE_DEFAULT_TABLELOG); +} +#endif + +#endif /* FSE_COMMONDEFS_ONLY */ diff --git a/dependencies/zstd-1.5.0/lib/compress/hist.c b/dependencies/zstd-1.5.0/lib/compress/hist.c new file mode 100644 index 0000000..073c57e --- /dev/null +++ b/dependencies/zstd-1.5.0/lib/compress/hist.c @@ -0,0 +1,181 @@ +/* ****************************************************************** + * hist : Histogram functions + * part of Finite State Entropy project + * Copyright (c) Yann Collet, Facebook, Inc. + * + * You can contact the author at : + * - FSE source repository : https://github.com/Cyan4973/FiniteStateEntropy + * - Public forum : https://groups.google.com/forum/#!forum/lz4c + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. +****************************************************************** */ + +/* --- dependencies --- */ +#include "../common/mem.h" /* U32, BYTE, etc. */ +#include "../common/debug.h" /* assert, DEBUGLOG */ +#include "../common/error_private.h" /* ERROR */ +#include "hist.h" + + +/* --- Error management --- */ +unsigned HIST_isError(size_t code) { return ERR_isError(code); } + +/*-************************************************************** + * Histogram functions + ****************************************************************/ +unsigned HIST_count_simple(unsigned* count, unsigned* maxSymbolValuePtr, + const void* src, size_t srcSize) +{ + const BYTE* ip = (const BYTE*)src; + const BYTE* const end = ip + srcSize; + unsigned maxSymbolValue = *maxSymbolValuePtr; + unsigned largestCount=0; + + ZSTD_memset(count, 0, (maxSymbolValue+1) * sizeof(*count)); + if (srcSize==0) { *maxSymbolValuePtr = 0; return 0; } + + while (ip largestCount) largestCount = count[s]; + } + + return largestCount; +} + +typedef enum { trustInput, checkMaxSymbolValue } HIST_checkInput_e; + +/* HIST_count_parallel_wksp() : + * store histogram into 4 intermediate tables, recombined at the end. + * this design makes better use of OoO cpus, + * and is noticeably faster when some values are heavily repeated. + * But it needs some additional workspace for intermediate tables. + * `workSpace` must be a U32 table of size >= HIST_WKSP_SIZE_U32. + * @return : largest histogram frequency, + * or an error code (notably when histogram's alphabet is larger than *maxSymbolValuePtr) */ +static size_t HIST_count_parallel_wksp( + unsigned* count, unsigned* maxSymbolValuePtr, + const void* source, size_t sourceSize, + HIST_checkInput_e check, + U32* const workSpace) +{ + const BYTE* ip = (const BYTE*)source; + const BYTE* const iend = ip+sourceSize; + size_t const countSize = (*maxSymbolValuePtr + 1) * sizeof(*count); + unsigned max=0; + U32* const Counting1 = workSpace; + U32* const Counting2 = Counting1 + 256; + U32* const Counting3 = Counting2 + 256; + U32* const Counting4 = Counting3 + 256; + + /* safety checks */ + assert(*maxSymbolValuePtr <= 255); + if (!sourceSize) { + ZSTD_memset(count, 0, countSize); + *maxSymbolValuePtr = 0; + return 0; + } + ZSTD_memset(workSpace, 0, 4*256*sizeof(unsigned)); + + /* by stripes of 16 bytes */ + { U32 cached = MEM_read32(ip); ip += 4; + while (ip < iend-15) { + U32 c = cached; cached = MEM_read32(ip); ip += 4; + Counting1[(BYTE) c ]++; + Counting2[(BYTE)(c>>8) ]++; + Counting3[(BYTE)(c>>16)]++; + Counting4[ c>>24 ]++; + c = cached; cached = MEM_read32(ip); ip += 4; + Counting1[(BYTE) c ]++; + Counting2[(BYTE)(c>>8) ]++; + Counting3[(BYTE)(c>>16)]++; + Counting4[ c>>24 ]++; + c = cached; cached = MEM_read32(ip); ip += 4; + Counting1[(BYTE) c ]++; + Counting2[(BYTE)(c>>8) ]++; + Counting3[(BYTE)(c>>16)]++; + Counting4[ c>>24 ]++; + c = cached; cached = MEM_read32(ip); ip += 4; + Counting1[(BYTE) c ]++; + Counting2[(BYTE)(c>>8) ]++; + Counting3[(BYTE)(c>>16)]++; + Counting4[ c>>24 ]++; + } + ip-=4; + } + + /* finish last symbols */ + while (ip max) max = Counting1[s]; + } } + + { unsigned maxSymbolValue = 255; + while (!Counting1[maxSymbolValue]) maxSymbolValue--; + if (check && maxSymbolValue > *maxSymbolValuePtr) return ERROR(maxSymbolValue_tooSmall); + *maxSymbolValuePtr = maxSymbolValue; + ZSTD_memmove(count, Counting1, countSize); /* in case count & Counting1 are overlapping */ + } + return (size_t)max; +} + +/* HIST_countFast_wksp() : + * Same as HIST_countFast(), but using an externally provided scratch buffer. + * `workSpace` is a writable buffer which must be 4-bytes aligned, + * `workSpaceSize` must be >= HIST_WKSP_SIZE + */ +size_t HIST_countFast_wksp(unsigned* count, unsigned* maxSymbolValuePtr, + const void* source, size_t sourceSize, + void* workSpace, size_t workSpaceSize) +{ + if (sourceSize < 1500) /* heuristic threshold */ + return HIST_count_simple(count, maxSymbolValuePtr, source, sourceSize); + if ((size_t)workSpace & 3) return ERROR(GENERIC); /* must be aligned on 4-bytes boundaries */ + if (workSpaceSize < HIST_WKSP_SIZE) return ERROR(workSpace_tooSmall); + return HIST_count_parallel_wksp(count, maxSymbolValuePtr, source, sourceSize, trustInput, (U32*)workSpace); +} + +/* HIST_count_wksp() : + * Same as HIST_count(), but using an externally provided scratch buffer. + * `workSpace` size must be table of >= HIST_WKSP_SIZE_U32 unsigned */ +size_t HIST_count_wksp(unsigned* count, unsigned* maxSymbolValuePtr, + const void* source, size_t sourceSize, + void* workSpace, size_t workSpaceSize) +{ + if ((size_t)workSpace & 3) return ERROR(GENERIC); /* must be aligned on 4-bytes boundaries */ + if (workSpaceSize < HIST_WKSP_SIZE) return ERROR(workSpace_tooSmall); + if (*maxSymbolValuePtr < 255) + return HIST_count_parallel_wksp(count, maxSymbolValuePtr, source, sourceSize, checkMaxSymbolValue, (U32*)workSpace); + *maxSymbolValuePtr = 255; + return HIST_countFast_wksp(count, maxSymbolValuePtr, source, sourceSize, workSpace, workSpaceSize); +} + +#ifndef ZSTD_NO_UNUSED_FUNCTIONS +/* fast variant (unsafe : won't check if src contains values beyond count[] limit) */ +size_t HIST_countFast(unsigned* count, unsigned* maxSymbolValuePtr, + const void* source, size_t sourceSize) +{ + unsigned tmpCounters[HIST_WKSP_SIZE_U32]; + return HIST_countFast_wksp(count, maxSymbolValuePtr, source, sourceSize, tmpCounters, sizeof(tmpCounters)); +} + +size_t HIST_count(unsigned* count, unsigned* maxSymbolValuePtr, + const void* src, size_t srcSize) +{ + unsigned tmpCounters[HIST_WKSP_SIZE_U32]; + return HIST_count_wksp(count, maxSymbolValuePtr, src, srcSize, tmpCounters, sizeof(tmpCounters)); +} +#endif diff --git a/dependencies/zstd-1.5.0/lib/compress/hist.h b/dependencies/zstd-1.5.0/lib/compress/hist.h new file mode 100644 index 0000000..228ed48 --- /dev/null +++ b/dependencies/zstd-1.5.0/lib/compress/hist.h @@ -0,0 +1,75 @@ +/* ****************************************************************** + * hist : Histogram functions + * part of Finite State Entropy project + * Copyright (c) Yann Collet, Facebook, Inc. + * + * You can contact the author at : + * - FSE source repository : https://github.com/Cyan4973/FiniteStateEntropy + * - Public forum : https://groups.google.com/forum/#!forum/lz4c + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. +****************************************************************** */ + +/* --- dependencies --- */ +#include "../common/zstd_deps.h" /* size_t */ + + +/* --- simple histogram functions --- */ + +/*! HIST_count(): + * Provides the precise count of each byte within a table 'count'. + * 'count' is a table of unsigned int, of minimum size (*maxSymbolValuePtr+1). + * Updates *maxSymbolValuePtr with actual largest symbol value detected. + * @return : count of the most frequent symbol (which isn't identified). + * or an error code, which can be tested using HIST_isError(). + * note : if return == srcSize, there is only one symbol. + */ +size_t HIST_count(unsigned* count, unsigned* maxSymbolValuePtr, + const void* src, size_t srcSize); + +unsigned HIST_isError(size_t code); /**< tells if a return value is an error code */ + + +/* --- advanced histogram functions --- */ + +#define HIST_WKSP_SIZE_U32 1024 +#define HIST_WKSP_SIZE (HIST_WKSP_SIZE_U32 * sizeof(unsigned)) +/** HIST_count_wksp() : + * Same as HIST_count(), but using an externally provided scratch buffer. + * Benefit is this function will use very little stack space. + * `workSpace` is a writable buffer which must be 4-bytes aligned, + * `workSpaceSize` must be >= HIST_WKSP_SIZE + */ +size_t HIST_count_wksp(unsigned* count, unsigned* maxSymbolValuePtr, + const void* src, size_t srcSize, + void* workSpace, size_t workSpaceSize); + +/** HIST_countFast() : + * same as HIST_count(), but blindly trusts that all byte values within src are <= *maxSymbolValuePtr. + * This function is unsafe, and will segfault if any value within `src` is `> *maxSymbolValuePtr` + */ +size_t HIST_countFast(unsigned* count, unsigned* maxSymbolValuePtr, + const void* src, size_t srcSize); + +/** HIST_countFast_wksp() : + * Same as HIST_countFast(), but using an externally provided scratch buffer. + * `workSpace` is a writable buffer which must be 4-bytes aligned, + * `workSpaceSize` must be >= HIST_WKSP_SIZE + */ +size_t HIST_countFast_wksp(unsigned* count, unsigned* maxSymbolValuePtr, + const void* src, size_t srcSize, + void* workSpace, size_t workSpaceSize); + +/*! HIST_count_simple() : + * Same as HIST_countFast(), this function is unsafe, + * and will segfault if any value within `src` is `> *maxSymbolValuePtr`. + * It is also a bit slower for large inputs. + * However, it does not need any additional memory (not even on stack). + * @return : count of the most frequent symbol. + * Note this function doesn't produce any error (i.e. it must succeed). + */ +unsigned HIST_count_simple(unsigned* count, unsigned* maxSymbolValuePtr, + const void* src, size_t srcSize); diff --git a/dependencies/zstd-1.5.0/lib/compress/huf_compress.c b/dependencies/zstd-1.5.0/lib/compress/huf_compress.c new file mode 100644 index 0000000..485906e --- /dev/null +++ b/dependencies/zstd-1.5.0/lib/compress/huf_compress.c @@ -0,0 +1,937 @@ +/* ****************************************************************** + * Huffman encoder, part of New Generation Entropy library + * Copyright (c) Yann Collet, Facebook, Inc. + * + * You can contact the author at : + * - FSE+HUF source repository : https://github.com/Cyan4973/FiniteStateEntropy + * - Public forum : https://groups.google.com/forum/#!forum/lz4c + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. +****************************************************************** */ + +/* ************************************************************** +* Compiler specifics +****************************************************************/ +#ifdef _MSC_VER /* Visual Studio */ +# pragma warning(disable : 4127) /* disable: C4127: conditional expression is constant */ +#endif + + +/* ************************************************************** +* Includes +****************************************************************/ +#include "../common/zstd_deps.h" /* ZSTD_memcpy, ZSTD_memset */ +#include "../common/compiler.h" +#include "../common/bitstream.h" +#include "hist.h" +#define FSE_STATIC_LINKING_ONLY /* FSE_optimalTableLog_internal */ +#include "../common/fse.h" /* header compression */ +#define HUF_STATIC_LINKING_ONLY +#include "../common/huf.h" +#include "../common/error_private.h" + + +/* ************************************************************** +* Error Management +****************************************************************/ +#define HUF_isError ERR_isError +#define HUF_STATIC_ASSERT(c) DEBUG_STATIC_ASSERT(c) /* use only *after* variable declarations */ + + +/* ************************************************************** +* Utils +****************************************************************/ +unsigned HUF_optimalTableLog(unsigned maxTableLog, size_t srcSize, unsigned maxSymbolValue) +{ + return FSE_optimalTableLog_internal(maxTableLog, srcSize, maxSymbolValue, 1); +} + + +/* ******************************************************* +* HUF : Huffman block compression +*********************************************************/ +/* HUF_compressWeights() : + * Same as FSE_compress(), but dedicated to huff0's weights compression. + * The use case needs much less stack memory. + * Note : all elements within weightTable are supposed to be <= HUF_TABLELOG_MAX. + */ +#define MAX_FSE_TABLELOG_FOR_HUFF_HEADER 6 + +typedef struct { + FSE_CTable CTable[FSE_CTABLE_SIZE_U32(MAX_FSE_TABLELOG_FOR_HUFF_HEADER, HUF_TABLELOG_MAX)]; + U32 scratchBuffer[FSE_BUILD_CTABLE_WORKSPACE_SIZE_U32(HUF_TABLELOG_MAX, MAX_FSE_TABLELOG_FOR_HUFF_HEADER)]; + unsigned count[HUF_TABLELOG_MAX+1]; + S16 norm[HUF_TABLELOG_MAX+1]; +} HUF_CompressWeightsWksp; + +static size_t HUF_compressWeights(void* dst, size_t dstSize, const void* weightTable, size_t wtSize, void* workspace, size_t workspaceSize) +{ + BYTE* const ostart = (BYTE*) dst; + BYTE* op = ostart; + BYTE* const oend = ostart + dstSize; + + unsigned maxSymbolValue = HUF_TABLELOG_MAX; + U32 tableLog = MAX_FSE_TABLELOG_FOR_HUFF_HEADER; + HUF_CompressWeightsWksp* wksp = (HUF_CompressWeightsWksp*)workspace; + + if (workspaceSize < sizeof(HUF_CompressWeightsWksp)) return ERROR(GENERIC); + + /* init conditions */ + if (wtSize <= 1) return 0; /* Not compressible */ + + /* Scan input and build symbol stats */ + { unsigned const maxCount = HIST_count_simple(wksp->count, &maxSymbolValue, weightTable, wtSize); /* never fails */ + if (maxCount == wtSize) return 1; /* only a single symbol in src : rle */ + if (maxCount == 1) return 0; /* each symbol present maximum once => not compressible */ + } + + tableLog = FSE_optimalTableLog(tableLog, wtSize, maxSymbolValue); + CHECK_F( FSE_normalizeCount(wksp->norm, tableLog, wksp->count, wtSize, maxSymbolValue, /* useLowProbCount */ 0) ); + + /* Write table description header */ + { CHECK_V_F(hSize, FSE_writeNCount(op, (size_t)(oend-op), wksp->norm, maxSymbolValue, tableLog) ); + op += hSize; + } + + /* Compress */ + CHECK_F( FSE_buildCTable_wksp(wksp->CTable, wksp->norm, maxSymbolValue, tableLog, wksp->scratchBuffer, sizeof(wksp->scratchBuffer)) ); + { CHECK_V_F(cSize, FSE_compress_usingCTable(op, (size_t)(oend - op), weightTable, wtSize, wksp->CTable) ); + if (cSize == 0) return 0; /* not enough space for compressed data */ + op += cSize; + } + + return (size_t)(op-ostart); +} + + +typedef struct { + HUF_CompressWeightsWksp wksp; + BYTE bitsToWeight[HUF_TABLELOG_MAX + 1]; /* precomputed conversion table */ + BYTE huffWeight[HUF_SYMBOLVALUE_MAX]; +} HUF_WriteCTableWksp; + +size_t HUF_writeCTable_wksp(void* dst, size_t maxDstSize, + const HUF_CElt* CTable, unsigned maxSymbolValue, unsigned huffLog, + void* workspace, size_t workspaceSize) +{ + BYTE* op = (BYTE*)dst; + U32 n; + HUF_WriteCTableWksp* wksp = (HUF_WriteCTableWksp*)workspace; + + /* check conditions */ + if (workspaceSize < sizeof(HUF_WriteCTableWksp)) return ERROR(GENERIC); + if (maxSymbolValue > HUF_SYMBOLVALUE_MAX) return ERROR(maxSymbolValue_tooLarge); + + /* convert to weight */ + wksp->bitsToWeight[0] = 0; + for (n=1; nbitsToWeight[n] = (BYTE)(huffLog + 1 - n); + for (n=0; nhuffWeight[n] = wksp->bitsToWeight[CTable[n].nbBits]; + + /* attempt weights compression by FSE */ + { CHECK_V_F(hSize, HUF_compressWeights(op+1, maxDstSize-1, wksp->huffWeight, maxSymbolValue, &wksp->wksp, sizeof(wksp->wksp)) ); + if ((hSize>1) & (hSize < maxSymbolValue/2)) { /* FSE compressed */ + op[0] = (BYTE)hSize; + return hSize+1; + } } + + /* write raw values as 4-bits (max : 15) */ + if (maxSymbolValue > (256-128)) return ERROR(GENERIC); /* should not happen : likely means source cannot be compressed */ + if (((maxSymbolValue+1)/2) + 1 > maxDstSize) return ERROR(dstSize_tooSmall); /* not enough space within dst buffer */ + op[0] = (BYTE)(128 /*special case*/ + (maxSymbolValue-1)); + wksp->huffWeight[maxSymbolValue] = 0; /* to be sure it doesn't cause msan issue in final combination */ + for (n=0; nhuffWeight[n] << 4) + wksp->huffWeight[n+1]); + return ((maxSymbolValue+1)/2) + 1; +} + +/*! HUF_writeCTable() : + `CTable` : Huffman tree to save, using huf representation. + @return : size of saved CTable */ +size_t HUF_writeCTable (void* dst, size_t maxDstSize, + const HUF_CElt* CTable, unsigned maxSymbolValue, unsigned huffLog) +{ + HUF_WriteCTableWksp wksp; + return HUF_writeCTable_wksp(dst, maxDstSize, CTable, maxSymbolValue, huffLog, &wksp, sizeof(wksp)); +} + + +size_t HUF_readCTable (HUF_CElt* CTable, unsigned* maxSymbolValuePtr, const void* src, size_t srcSize, unsigned* hasZeroWeights) +{ + BYTE huffWeight[HUF_SYMBOLVALUE_MAX + 1]; /* init not required, even though some static analyzer may complain */ + U32 rankVal[HUF_TABLELOG_ABSOLUTEMAX + 1]; /* large enough for values from 0 to 16 */ + U32 tableLog = 0; + U32 nbSymbols = 0; + + /* get symbol weights */ + CHECK_V_F(readSize, HUF_readStats(huffWeight, HUF_SYMBOLVALUE_MAX+1, rankVal, &nbSymbols, &tableLog, src, srcSize)); + *hasZeroWeights = (rankVal[0] > 0); + + /* check result */ + if (tableLog > HUF_TABLELOG_MAX) return ERROR(tableLog_tooLarge); + if (nbSymbols > *maxSymbolValuePtr+1) return ERROR(maxSymbolValue_tooSmall); + + /* Prepare base value per rank */ + { U32 n, nextRankStart = 0; + for (n=1; n<=tableLog; n++) { + U32 curr = nextRankStart; + nextRankStart += (rankVal[n] << (n-1)); + rankVal[n] = curr; + } } + + /* fill nbBits */ + { U32 n; for (n=0; nn=tableLog+1 */ + U16 valPerRank[HUF_TABLELOG_MAX+2] = {0}; + { U32 n; for (n=0; n0; n--) { /* start at n=tablelog <-> w=1 */ + valPerRank[n] = min; /* get starting value within each rank */ + min += nbPerRank[n]; + min >>= 1; + } } + /* assign value within rank, symbol order */ + { U32 n; for (n=0; n maxNbBits to be maxNbBits. Then it adjusts + * the tree to so that it is a valid canonical Huffman tree. + * + * @pre The sum of the ranks of each symbol == 2^largestBits, + * where largestBits == huffNode[lastNonNull].nbBits. + * @post The sum of the ranks of each symbol == 2^largestBits, + * where largestBits is the return value <= maxNbBits. + * + * @param huffNode The Huffman tree modified in place to enforce maxNbBits. + * @param lastNonNull The symbol with the lowest count in the Huffman tree. + * @param maxNbBits The maximum allowed number of bits, which the Huffman tree + * may not respect. After this function the Huffman tree will + * respect maxNbBits. + * @return The maximum number of bits of the Huffman tree after adjustment, + * necessarily no more than maxNbBits. + */ +static U32 HUF_setMaxHeight(nodeElt* huffNode, U32 lastNonNull, U32 maxNbBits) +{ + const U32 largestBits = huffNode[lastNonNull].nbBits; + /* early exit : no elt > maxNbBits, so the tree is already valid. */ + if (largestBits <= maxNbBits) return largestBits; + + /* there are several too large elements (at least >= 2) */ + { int totalCost = 0; + const U32 baseCost = 1 << (largestBits - maxNbBits); + int n = (int)lastNonNull; + + /* Adjust any ranks > maxNbBits to maxNbBits. + * Compute totalCost, which is how far the sum of the ranks is + * we are over 2^largestBits after adjust the offending ranks. + */ + while (huffNode[n].nbBits > maxNbBits) { + totalCost += baseCost - (1 << (largestBits - huffNode[n].nbBits)); + huffNode[n].nbBits = (BYTE)maxNbBits; + n--; + } + /* n stops at huffNode[n].nbBits <= maxNbBits */ + assert(huffNode[n].nbBits <= maxNbBits); + /* n end at index of smallest symbol using < maxNbBits */ + while (huffNode[n].nbBits == maxNbBits) --n; + + /* renorm totalCost from 2^largestBits to 2^maxNbBits + * note : totalCost is necessarily a multiple of baseCost */ + assert((totalCost & (baseCost - 1)) == 0); + totalCost >>= (largestBits - maxNbBits); + assert(totalCost > 0); + + /* repay normalized cost */ + { U32 const noSymbol = 0xF0F0F0F0; + U32 rankLast[HUF_TABLELOG_MAX+2]; + + /* Get pos of last (smallest = lowest cum. count) symbol per rank */ + ZSTD_memset(rankLast, 0xF0, sizeof(rankLast)); + { U32 currentNbBits = maxNbBits; + int pos; + for (pos=n ; pos >= 0; pos--) { + if (huffNode[pos].nbBits >= currentNbBits) continue; + currentNbBits = huffNode[pos].nbBits; /* < maxNbBits */ + rankLast[maxNbBits-currentNbBits] = (U32)pos; + } } + + while (totalCost > 0) { + /* Try to reduce the next power of 2 above totalCost because we + * gain back half the rank. + */ + U32 nBitsToDecrease = BIT_highbit32((U32)totalCost) + 1; + for ( ; nBitsToDecrease > 1; nBitsToDecrease--) { + U32 const highPos = rankLast[nBitsToDecrease]; + U32 const lowPos = rankLast[nBitsToDecrease-1]; + if (highPos == noSymbol) continue; + /* Decrease highPos if no symbols of lowPos or if it is + * not cheaper to remove 2 lowPos than highPos. + */ + if (lowPos == noSymbol) break; + { U32 const highTotal = huffNode[highPos].count; + U32 const lowTotal = 2 * huffNode[lowPos].count; + if (highTotal <= lowTotal) break; + } } + /* only triggered when no more rank 1 symbol left => find closest one (note : there is necessarily at least one !) */ + assert(rankLast[nBitsToDecrease] != noSymbol || nBitsToDecrease == 1); + /* HUF_MAX_TABLELOG test just to please gcc 5+; but it should not be necessary */ + while ((nBitsToDecrease<=HUF_TABLELOG_MAX) && (rankLast[nBitsToDecrease] == noSymbol)) + nBitsToDecrease++; + assert(rankLast[nBitsToDecrease] != noSymbol); + /* Increase the number of bits to gain back half the rank cost. */ + totalCost -= 1 << (nBitsToDecrease-1); + huffNode[rankLast[nBitsToDecrease]].nbBits++; + + /* Fix up the new rank. + * If the new rank was empty, this symbol is now its smallest. + * Otherwise, this symbol will be the largest in the new rank so no adjustment. + */ + if (rankLast[nBitsToDecrease-1] == noSymbol) + rankLast[nBitsToDecrease-1] = rankLast[nBitsToDecrease]; + /* Fix up the old rank. + * If the symbol was at position 0, meaning it was the highest weight symbol in the tree, + * it must be the only symbol in its rank, so the old rank now has no symbols. + * Otherwise, since the Huffman nodes are sorted by count, the previous position is now + * the smallest node in the rank. If the previous position belongs to a different rank, + * then the rank is now empty. + */ + if (rankLast[nBitsToDecrease] == 0) /* special case, reached largest symbol */ + rankLast[nBitsToDecrease] = noSymbol; + else { + rankLast[nBitsToDecrease]--; + if (huffNode[rankLast[nBitsToDecrease]].nbBits != maxNbBits-nBitsToDecrease) + rankLast[nBitsToDecrease] = noSymbol; /* this rank is now empty */ + } + } /* while (totalCost > 0) */ + + /* If we've removed too much weight, then we have to add it back. + * To avoid overshooting again, we only adjust the smallest rank. + * We take the largest nodes from the lowest rank 0 and move them + * to rank 1. There's guaranteed to be enough rank 0 symbols because + * TODO. + */ + while (totalCost < 0) { /* Sometimes, cost correction overshoot */ + /* special case : no rank 1 symbol (using maxNbBits-1); + * let's create one from largest rank 0 (using maxNbBits). + */ + if (rankLast[1] == noSymbol) { + while (huffNode[n].nbBits == maxNbBits) n--; + huffNode[n+1].nbBits--; + assert(n >= 0); + rankLast[1] = (U32)(n+1); + totalCost++; + continue; + } + huffNode[ rankLast[1] + 1 ].nbBits--; + rankLast[1]++; + totalCost ++; + } + } /* repay normalized cost */ + } /* there are several too large elements (at least >= 2) */ + + return maxNbBits; +} + +typedef struct { + U32 base; + U32 curr; +} rankPos; + +typedef nodeElt huffNodeTable[HUF_CTABLE_WORKSPACE_SIZE_U32]; + +#define RANK_POSITION_TABLE_SIZE 32 + +typedef struct { + huffNodeTable huffNodeTbl; + rankPos rankPosition[RANK_POSITION_TABLE_SIZE]; +} HUF_buildCTable_wksp_tables; + +/** + * HUF_sort(): + * Sorts the symbols [0, maxSymbolValue] by count[symbol] in decreasing order. + * + * @param[out] huffNode Sorted symbols by decreasing count. Only members `.count` and `.byte` are filled. + * Must have (maxSymbolValue + 1) entries. + * @param[in] count Histogram of the symbols. + * @param[in] maxSymbolValue Maximum symbol value. + * @param rankPosition This is a scratch workspace. Must have RANK_POSITION_TABLE_SIZE entries. + */ +static void HUF_sort(nodeElt* huffNode, const unsigned* count, U32 maxSymbolValue, rankPos* rankPosition) +{ + int n; + int const maxSymbolValue1 = (int)maxSymbolValue + 1; + + /* Compute base and set curr to base. + * For symbol s let lowerRank = BIT_highbit32(count[n]+1) and rank = lowerRank + 1. + * Then 2^lowerRank <= count[n]+1 <= 2^rank. + * We attribute each symbol to lowerRank's base value, because we want to know where + * each rank begins in the output, so for rank R we want to count ranks R+1 and above. + */ + ZSTD_memset(rankPosition, 0, sizeof(*rankPosition) * RANK_POSITION_TABLE_SIZE); + for (n = 0; n < maxSymbolValue1; ++n) { + U32 lowerRank = BIT_highbit32(count[n] + 1); + rankPosition[lowerRank].base++; + } + assert(rankPosition[RANK_POSITION_TABLE_SIZE - 1].base == 0); + for (n = RANK_POSITION_TABLE_SIZE - 1; n > 0; --n) { + rankPosition[n-1].base += rankPosition[n].base; + rankPosition[n-1].curr = rankPosition[n-1].base; + } + /* Sort */ + for (n = 0; n < maxSymbolValue1; ++n) { + U32 const c = count[n]; + U32 const r = BIT_highbit32(c+1) + 1; + U32 pos = rankPosition[r].curr++; + /* Insert into the correct position in the rank. + * We have at most 256 symbols, so this insertion should be fine. + */ + while ((pos > rankPosition[r].base) && (c > huffNode[pos-1].count)) { + huffNode[pos] = huffNode[pos-1]; + pos--; + } + huffNode[pos].count = c; + huffNode[pos].byte = (BYTE)n; + } +} + + +/** HUF_buildCTable_wksp() : + * Same as HUF_buildCTable(), but using externally allocated scratch buffer. + * `workSpace` must be aligned on 4-bytes boundaries, and be at least as large as sizeof(HUF_buildCTable_wksp_tables). + */ +#define STARTNODE (HUF_SYMBOLVALUE_MAX+1) + +/* HUF_buildTree(): + * Takes the huffNode array sorted by HUF_sort() and builds an unlimited-depth Huffman tree. + * + * @param huffNode The array sorted by HUF_sort(). Builds the Huffman tree in this array. + * @param maxSymbolValue The maximum symbol value. + * @return The smallest node in the Huffman tree (by count). + */ +static int HUF_buildTree(nodeElt* huffNode, U32 maxSymbolValue) +{ + nodeElt* const huffNode0 = huffNode - 1; + int nonNullRank; + int lowS, lowN; + int nodeNb = STARTNODE; + int n, nodeRoot; + /* init for parents */ + nonNullRank = (int)maxSymbolValue; + while(huffNode[nonNullRank].count == 0) nonNullRank--; + lowS = nonNullRank; nodeRoot = nodeNb + lowS - 1; lowN = nodeNb; + huffNode[nodeNb].count = huffNode[lowS].count + huffNode[lowS-1].count; + huffNode[lowS].parent = huffNode[lowS-1].parent = (U16)nodeNb; + nodeNb++; lowS-=2; + for (n=nodeNb; n<=nodeRoot; n++) huffNode[n].count = (U32)(1U<<30); + huffNode0[0].count = (U32)(1U<<31); /* fake entry, strong barrier */ + + /* create parents */ + while (nodeNb <= nodeRoot) { + int const n1 = (huffNode[lowS].count < huffNode[lowN].count) ? lowS-- : lowN++; + int const n2 = (huffNode[lowS].count < huffNode[lowN].count) ? lowS-- : lowN++; + huffNode[nodeNb].count = huffNode[n1].count + huffNode[n2].count; + huffNode[n1].parent = huffNode[n2].parent = (U16)nodeNb; + nodeNb++; + } + + /* distribute weights (unlimited tree height) */ + huffNode[nodeRoot].nbBits = 0; + for (n=nodeRoot-1; n>=STARTNODE; n--) + huffNode[n].nbBits = huffNode[ huffNode[n].parent ].nbBits + 1; + for (n=0; n<=nonNullRank; n++) + huffNode[n].nbBits = huffNode[ huffNode[n].parent ].nbBits + 1; + + return nonNullRank; +} + +/** + * HUF_buildCTableFromTree(): + * Build the CTable given the Huffman tree in huffNode. + * + * @param[out] CTable The output Huffman CTable. + * @param huffNode The Huffman tree. + * @param nonNullRank The last and smallest node in the Huffman tree. + * @param maxSymbolValue The maximum symbol value. + * @param maxNbBits The exact maximum number of bits used in the Huffman tree. + */ +static void HUF_buildCTableFromTree(HUF_CElt* CTable, nodeElt const* huffNode, int nonNullRank, U32 maxSymbolValue, U32 maxNbBits) +{ + /* fill result into ctable (val, nbBits) */ + int n; + U16 nbPerRank[HUF_TABLELOG_MAX+1] = {0}; + U16 valPerRank[HUF_TABLELOG_MAX+1] = {0}; + int const alphabetSize = (int)(maxSymbolValue + 1); + for (n=0; n<=nonNullRank; n++) + nbPerRank[huffNode[n].nbBits]++; + /* determine starting value per rank */ + { U16 min = 0; + for (n=(int)maxNbBits; n>0; n--) { + valPerRank[n] = min; /* get starting value within each rank */ + min += nbPerRank[n]; + min >>= 1; + } } + for (n=0; nhuffNodeTbl; + nodeElt* const huffNode = huffNode0+1; + int nonNullRank; + + /* safety checks */ + if (((size_t)workSpace & 3) != 0) return ERROR(GENERIC); /* must be aligned on 4-bytes boundaries */ + if (wkspSize < sizeof(HUF_buildCTable_wksp_tables)) + return ERROR(workSpace_tooSmall); + if (maxNbBits == 0) maxNbBits = HUF_TABLELOG_DEFAULT; + if (maxSymbolValue > HUF_SYMBOLVALUE_MAX) + return ERROR(maxSymbolValue_tooLarge); + ZSTD_memset(huffNode0, 0, sizeof(huffNodeTable)); + + /* sort, decreasing order */ + HUF_sort(huffNode, count, maxSymbolValue, wksp_tables->rankPosition); + + /* build tree */ + nonNullRank = HUF_buildTree(huffNode, maxSymbolValue); + + /* enforce maxTableLog */ + maxNbBits = HUF_setMaxHeight(huffNode, (U32)nonNullRank, maxNbBits); + if (maxNbBits > HUF_TABLELOG_MAX) return ERROR(GENERIC); /* check fit into table */ + + HUF_buildCTableFromTree(tree, huffNode, nonNullRank, maxSymbolValue, maxNbBits); + + return maxNbBits; +} + +size_t HUF_estimateCompressedSize(const HUF_CElt* CTable, const unsigned* count, unsigned maxSymbolValue) +{ + size_t nbBits = 0; + int s; + for (s = 0; s <= (int)maxSymbolValue; ++s) { + nbBits += CTable[s].nbBits * count[s]; + } + return nbBits >> 3; +} + +int HUF_validateCTable(const HUF_CElt* CTable, const unsigned* count, unsigned maxSymbolValue) { + int bad = 0; + int s; + for (s = 0; s <= (int)maxSymbolValue; ++s) { + bad |= (count[s] != 0) & (CTable[s].nbBits == 0); + } + return !bad; +} + +size_t HUF_compressBound(size_t size) { return HUF_COMPRESSBOUND(size); } + +FORCE_INLINE_TEMPLATE void +HUF_encodeSymbol(BIT_CStream_t* bitCPtr, U32 symbol, const HUF_CElt* CTable) +{ + BIT_addBitsFast(bitCPtr, CTable[symbol].val, CTable[symbol].nbBits); +} + +#define HUF_FLUSHBITS(s) BIT_flushBits(s) + +#define HUF_FLUSHBITS_1(stream) \ + if (sizeof((stream)->bitContainer)*8 < HUF_TABLELOG_MAX*2+7) HUF_FLUSHBITS(stream) + +#define HUF_FLUSHBITS_2(stream) \ + if (sizeof((stream)->bitContainer)*8 < HUF_TABLELOG_MAX*4+7) HUF_FLUSHBITS(stream) + +FORCE_INLINE_TEMPLATE size_t +HUF_compress1X_usingCTable_internal_body(void* dst, size_t dstSize, + const void* src, size_t srcSize, + const HUF_CElt* CTable) +{ + const BYTE* ip = (const BYTE*) src; + BYTE* const ostart = (BYTE*)dst; + BYTE* const oend = ostart + dstSize; + BYTE* op = ostart; + size_t n; + BIT_CStream_t bitC; + + /* init */ + if (dstSize < 8) return 0; /* not enough space to compress */ + { size_t const initErr = BIT_initCStream(&bitC, op, (size_t)(oend-op)); + if (HUF_isError(initErr)) return 0; } + + n = srcSize & ~3; /* join to mod 4 */ + switch (srcSize & 3) + { + case 3 : HUF_encodeSymbol(&bitC, ip[n+ 2], CTable); + HUF_FLUSHBITS_2(&bitC); + /* fall-through */ + case 2 : HUF_encodeSymbol(&bitC, ip[n+ 1], CTable); + HUF_FLUSHBITS_1(&bitC); + /* fall-through */ + case 1 : HUF_encodeSymbol(&bitC, ip[n+ 0], CTable); + HUF_FLUSHBITS(&bitC); + /* fall-through */ + case 0 : /* fall-through */ + default: break; + } + + for (; n>0; n-=4) { /* note : n&3==0 at this stage */ + HUF_encodeSymbol(&bitC, ip[n- 1], CTable); + HUF_FLUSHBITS_1(&bitC); + HUF_encodeSymbol(&bitC, ip[n- 2], CTable); + HUF_FLUSHBITS_2(&bitC); + HUF_encodeSymbol(&bitC, ip[n- 3], CTable); + HUF_FLUSHBITS_1(&bitC); + HUF_encodeSymbol(&bitC, ip[n- 4], CTable); + HUF_FLUSHBITS(&bitC); + } + + return BIT_closeCStream(&bitC); +} + +#if DYNAMIC_BMI2 + +static TARGET_ATTRIBUTE("bmi2") size_t +HUF_compress1X_usingCTable_internal_bmi2(void* dst, size_t dstSize, + const void* src, size_t srcSize, + const HUF_CElt* CTable) +{ + return HUF_compress1X_usingCTable_internal_body(dst, dstSize, src, srcSize, CTable); +} + +static size_t +HUF_compress1X_usingCTable_internal_default(void* dst, size_t dstSize, + const void* src, size_t srcSize, + const HUF_CElt* CTable) +{ + return HUF_compress1X_usingCTable_internal_body(dst, dstSize, src, srcSize, CTable); +} + +static size_t +HUF_compress1X_usingCTable_internal(void* dst, size_t dstSize, + const void* src, size_t srcSize, + const HUF_CElt* CTable, const int bmi2) +{ + if (bmi2) { + return HUF_compress1X_usingCTable_internal_bmi2(dst, dstSize, src, srcSize, CTable); + } + return HUF_compress1X_usingCTable_internal_default(dst, dstSize, src, srcSize, CTable); +} + +#else + +static size_t +HUF_compress1X_usingCTable_internal(void* dst, size_t dstSize, + const void* src, size_t srcSize, + const HUF_CElt* CTable, const int bmi2) +{ + (void)bmi2; + return HUF_compress1X_usingCTable_internal_body(dst, dstSize, src, srcSize, CTable); +} + +#endif + +size_t HUF_compress1X_usingCTable(void* dst, size_t dstSize, const void* src, size_t srcSize, const HUF_CElt* CTable) +{ + return HUF_compress1X_usingCTable_internal(dst, dstSize, src, srcSize, CTable, /* bmi2 */ 0); +} + + +static size_t +HUF_compress4X_usingCTable_internal(void* dst, size_t dstSize, + const void* src, size_t srcSize, + const HUF_CElt* CTable, int bmi2) +{ + size_t const segmentSize = (srcSize+3)/4; /* first 3 segments */ + const BYTE* ip = (const BYTE*) src; + const BYTE* const iend = ip + srcSize; + BYTE* const ostart = (BYTE*) dst; + BYTE* const oend = ostart + dstSize; + BYTE* op = ostart; + + if (dstSize < 6 + 1 + 1 + 1 + 8) return 0; /* minimum space to compress successfully */ + if (srcSize < 12) return 0; /* no saving possible : too small input */ + op += 6; /* jumpTable */ + + assert(op <= oend); + { CHECK_V_F(cSize, HUF_compress1X_usingCTable_internal(op, (size_t)(oend-op), ip, segmentSize, CTable, bmi2) ); + if (cSize==0) return 0; + assert(cSize <= 65535); + MEM_writeLE16(ostart, (U16)cSize); + op += cSize; + } + + ip += segmentSize; + assert(op <= oend); + { CHECK_V_F(cSize, HUF_compress1X_usingCTable_internal(op, (size_t)(oend-op), ip, segmentSize, CTable, bmi2) ); + if (cSize==0) return 0; + assert(cSize <= 65535); + MEM_writeLE16(ostart+2, (U16)cSize); + op += cSize; + } + + ip += segmentSize; + assert(op <= oend); + { CHECK_V_F(cSize, HUF_compress1X_usingCTable_internal(op, (size_t)(oend-op), ip, segmentSize, CTable, bmi2) ); + if (cSize==0) return 0; + assert(cSize <= 65535); + MEM_writeLE16(ostart+4, (U16)cSize); + op += cSize; + } + + ip += segmentSize; + assert(op <= oend); + assert(ip <= iend); + { CHECK_V_F(cSize, HUF_compress1X_usingCTable_internal(op, (size_t)(oend-op), ip, (size_t)(iend-ip), CTable, bmi2) ); + if (cSize==0) return 0; + op += cSize; + } + + return (size_t)(op-ostart); +} + +size_t HUF_compress4X_usingCTable(void* dst, size_t dstSize, const void* src, size_t srcSize, const HUF_CElt* CTable) +{ + return HUF_compress4X_usingCTable_internal(dst, dstSize, src, srcSize, CTable, /* bmi2 */ 0); +} + +typedef enum { HUF_singleStream, HUF_fourStreams } HUF_nbStreams_e; + +static size_t HUF_compressCTable_internal( + BYTE* const ostart, BYTE* op, BYTE* const oend, + const void* src, size_t srcSize, + HUF_nbStreams_e nbStreams, const HUF_CElt* CTable, const int bmi2) +{ + size_t const cSize = (nbStreams==HUF_singleStream) ? + HUF_compress1X_usingCTable_internal(op, (size_t)(oend - op), src, srcSize, CTable, bmi2) : + HUF_compress4X_usingCTable_internal(op, (size_t)(oend - op), src, srcSize, CTable, bmi2); + if (HUF_isError(cSize)) { return cSize; } + if (cSize==0) { return 0; } /* uncompressible */ + op += cSize; + /* check compressibility */ + assert(op >= ostart); + if ((size_t)(op-ostart) >= srcSize-1) { return 0; } + return (size_t)(op-ostart); +} + +typedef struct { + unsigned count[HUF_SYMBOLVALUE_MAX + 1]; + HUF_CElt CTable[HUF_SYMBOLVALUE_MAX + 1]; + union { + HUF_buildCTable_wksp_tables buildCTable_wksp; + HUF_WriteCTableWksp writeCTable_wksp; + } wksps; +} HUF_compress_tables_t; + +/* HUF_compress_internal() : + * `workSpace_align4` must be aligned on 4-bytes boundaries, + * and occupies the same space as a table of HUF_WORKSPACE_SIZE_U32 unsigned */ +static size_t +HUF_compress_internal (void* dst, size_t dstSize, + const void* src, size_t srcSize, + unsigned maxSymbolValue, unsigned huffLog, + HUF_nbStreams_e nbStreams, + void* workSpace_align4, size_t wkspSize, + HUF_CElt* oldHufTable, HUF_repeat* repeat, int preferRepeat, + const int bmi2) +{ + HUF_compress_tables_t* const table = (HUF_compress_tables_t*)workSpace_align4; + BYTE* const ostart = (BYTE*)dst; + BYTE* const oend = ostart + dstSize; + BYTE* op = ostart; + + HUF_STATIC_ASSERT(sizeof(*table) <= HUF_WORKSPACE_SIZE); + assert(((size_t)workSpace_align4 & 3) == 0); /* must be aligned on 4-bytes boundaries */ + + /* checks & inits */ + if (wkspSize < HUF_WORKSPACE_SIZE) return ERROR(workSpace_tooSmall); + if (!srcSize) return 0; /* Uncompressed */ + if (!dstSize) return 0; /* cannot fit anything within dst budget */ + if (srcSize > HUF_BLOCKSIZE_MAX) return ERROR(srcSize_wrong); /* current block size limit */ + if (huffLog > HUF_TABLELOG_MAX) return ERROR(tableLog_tooLarge); + if (maxSymbolValue > HUF_SYMBOLVALUE_MAX) return ERROR(maxSymbolValue_tooLarge); + if (!maxSymbolValue) maxSymbolValue = HUF_SYMBOLVALUE_MAX; + if (!huffLog) huffLog = HUF_TABLELOG_DEFAULT; + + /* Heuristic : If old table is valid, use it for small inputs */ + if (preferRepeat && repeat && *repeat == HUF_repeat_valid) { + return HUF_compressCTable_internal(ostart, op, oend, + src, srcSize, + nbStreams, oldHufTable, bmi2); + } + + /* Scan input and build symbol stats */ + { CHECK_V_F(largest, HIST_count_wksp (table->count, &maxSymbolValue, (const BYTE*)src, srcSize, workSpace_align4, wkspSize) ); + if (largest == srcSize) { *ostart = ((const BYTE*)src)[0]; return 1; } /* single symbol, rle */ + if (largest <= (srcSize >> 7)+4) return 0; /* heuristic : probably not compressible enough */ + } + + /* Check validity of previous table */ + if ( repeat + && *repeat == HUF_repeat_check + && !HUF_validateCTable(oldHufTable, table->count, maxSymbolValue)) { + *repeat = HUF_repeat_none; + } + /* Heuristic : use existing table for small inputs */ + if (preferRepeat && repeat && *repeat != HUF_repeat_none) { + return HUF_compressCTable_internal(ostart, op, oend, + src, srcSize, + nbStreams, oldHufTable, bmi2); + } + + /* Build Huffman Tree */ + huffLog = HUF_optimalTableLog(huffLog, srcSize, maxSymbolValue); + { size_t const maxBits = HUF_buildCTable_wksp(table->CTable, table->count, + maxSymbolValue, huffLog, + &table->wksps.buildCTable_wksp, sizeof(table->wksps.buildCTable_wksp)); + CHECK_F(maxBits); + huffLog = (U32)maxBits; + /* Zero unused symbols in CTable, so we can check it for validity */ + ZSTD_memset(table->CTable + (maxSymbolValue + 1), 0, + sizeof(table->CTable) - ((maxSymbolValue + 1) * sizeof(HUF_CElt))); + } + + /* Write table description header */ + { CHECK_V_F(hSize, HUF_writeCTable_wksp(op, dstSize, table->CTable, maxSymbolValue, huffLog, + &table->wksps.writeCTable_wksp, sizeof(table->wksps.writeCTable_wksp)) ); + /* Check if using previous huffman table is beneficial */ + if (repeat && *repeat != HUF_repeat_none) { + size_t const oldSize = HUF_estimateCompressedSize(oldHufTable, table->count, maxSymbolValue); + size_t const newSize = HUF_estimateCompressedSize(table->CTable, table->count, maxSymbolValue); + if (oldSize <= hSize + newSize || hSize + 12 >= srcSize) { + return HUF_compressCTable_internal(ostart, op, oend, + src, srcSize, + nbStreams, oldHufTable, bmi2); + } } + + /* Use the new huffman table */ + if (hSize + 12ul >= srcSize) { return 0; } + op += hSize; + if (repeat) { *repeat = HUF_repeat_none; } + if (oldHufTable) + ZSTD_memcpy(oldHufTable, table->CTable, sizeof(table->CTable)); /* Save new table */ + } + return HUF_compressCTable_internal(ostart, op, oend, + src, srcSize, + nbStreams, table->CTable, bmi2); +} + + +size_t HUF_compress1X_wksp (void* dst, size_t dstSize, + const void* src, size_t srcSize, + unsigned maxSymbolValue, unsigned huffLog, + void* workSpace, size_t wkspSize) +{ + return HUF_compress_internal(dst, dstSize, src, srcSize, + maxSymbolValue, huffLog, HUF_singleStream, + workSpace, wkspSize, + NULL, NULL, 0, 0 /*bmi2*/); +} + +size_t HUF_compress1X_repeat (void* dst, size_t dstSize, + const void* src, size_t srcSize, + unsigned maxSymbolValue, unsigned huffLog, + void* workSpace, size_t wkspSize, + HUF_CElt* hufTable, HUF_repeat* repeat, int preferRepeat, int bmi2) +{ + return HUF_compress_internal(dst, dstSize, src, srcSize, + maxSymbolValue, huffLog, HUF_singleStream, + workSpace, wkspSize, hufTable, + repeat, preferRepeat, bmi2); +} + +/* HUF_compress4X_repeat(): + * compress input using 4 streams. + * provide workspace to generate compression tables */ +size_t HUF_compress4X_wksp (void* dst, size_t dstSize, + const void* src, size_t srcSize, + unsigned maxSymbolValue, unsigned huffLog, + void* workSpace, size_t wkspSize) +{ + return HUF_compress_internal(dst, dstSize, src, srcSize, + maxSymbolValue, huffLog, HUF_fourStreams, + workSpace, wkspSize, + NULL, NULL, 0, 0 /*bmi2*/); +} + +/* HUF_compress4X_repeat(): + * compress input using 4 streams. + * re-use an existing huffman compression table */ +size_t HUF_compress4X_repeat (void* dst, size_t dstSize, + const void* src, size_t srcSize, + unsigned maxSymbolValue, unsigned huffLog, + void* workSpace, size_t wkspSize, + HUF_CElt* hufTable, HUF_repeat* repeat, int preferRepeat, int bmi2) +{ + return HUF_compress_internal(dst, dstSize, src, srcSize, + maxSymbolValue, huffLog, HUF_fourStreams, + workSpace, wkspSize, + hufTable, repeat, preferRepeat, bmi2); +} + +#ifndef ZSTD_NO_UNUSED_FUNCTIONS +/** HUF_buildCTable() : + * @return : maxNbBits + * Note : count is used before tree is written, so they can safely overlap + */ +size_t HUF_buildCTable (HUF_CElt* tree, const unsigned* count, unsigned maxSymbolValue, unsigned maxNbBits) +{ + HUF_buildCTable_wksp_tables workspace; + return HUF_buildCTable_wksp(tree, count, maxSymbolValue, maxNbBits, &workspace, sizeof(workspace)); +} + +size_t HUF_compress1X (void* dst, size_t dstSize, + const void* src, size_t srcSize, + unsigned maxSymbolValue, unsigned huffLog) +{ + unsigned workSpace[HUF_WORKSPACE_SIZE_U32]; + return HUF_compress1X_wksp(dst, dstSize, src, srcSize, maxSymbolValue, huffLog, workSpace, sizeof(workSpace)); +} + +size_t HUF_compress2 (void* dst, size_t dstSize, + const void* src, size_t srcSize, + unsigned maxSymbolValue, unsigned huffLog) +{ + unsigned workSpace[HUF_WORKSPACE_SIZE_U32]; + return HUF_compress4X_wksp(dst, dstSize, src, srcSize, maxSymbolValue, huffLog, workSpace, sizeof(workSpace)); +} + +size_t HUF_compress (void* dst, size_t maxDstSize, const void* src, size_t srcSize) +{ + return HUF_compress2(dst, maxDstSize, src, srcSize, 255, HUF_TABLELOG_DEFAULT); +} +#endif diff --git a/dependencies/zstd-1.5.0/lib/compress/zstd_compress.c b/dependencies/zstd-1.5.0/lib/compress/zstd_compress.c new file mode 100644 index 0000000..b7ee298 --- /dev/null +++ b/dependencies/zstd-1.5.0/lib/compress/zstd_compress.c @@ -0,0 +1,6393 @@ +/* + * Copyright (c) Yann Collet, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + +/*-************************************* +* Dependencies +***************************************/ +#include "../common/zstd_deps.h" /* INT_MAX, ZSTD_memset, ZSTD_memcpy */ +#include "../common/cpu.h" +#include "../common/mem.h" +#include "hist.h" /* HIST_countFast_wksp */ +#define FSE_STATIC_LINKING_ONLY /* FSE_encodeSymbol */ +#include "../common/fse.h" +#define HUF_STATIC_LINKING_ONLY +#include "../common/huf.h" +#include "zstd_compress_internal.h" +#include "zstd_compress_sequences.h" +#include "zstd_compress_literals.h" +#include "zstd_fast.h" +#include "zstd_double_fast.h" +#include "zstd_lazy.h" +#include "zstd_opt.h" +#include "zstd_ldm.h" +#include "zstd_compress_superblock.h" + +/* *************************************************************** +* Tuning parameters +*****************************************************************/ +/*! + * COMPRESS_HEAPMODE : + * Select how default decompression function ZSTD_compress() allocates its context, + * on stack (0, default), or into heap (1). + * Note that functions with explicit context such as ZSTD_compressCCtx() are unaffected. + */ +#ifndef ZSTD_COMPRESS_HEAPMODE +# define ZSTD_COMPRESS_HEAPMODE 0 +#endif + + +/*-************************************* +* Helper functions +***************************************/ +/* ZSTD_compressBound() + * Note that the result from this function is only compatible with the "normal" + * full-block strategy. + * When there are a lot of small blocks due to frequent flush in streaming mode + * the overhead of headers can make the compressed data to be larger than the + * return value of ZSTD_compressBound(). + */ +size_t ZSTD_compressBound(size_t srcSize) { + return ZSTD_COMPRESSBOUND(srcSize); +} + + +/*-************************************* +* Context memory management +***************************************/ +struct ZSTD_CDict_s { + const void* dictContent; + size_t dictContentSize; + ZSTD_dictContentType_e dictContentType; /* The dictContentType the CDict was created with */ + U32* entropyWorkspace; /* entropy workspace of HUF_WORKSPACE_SIZE bytes */ + ZSTD_cwksp workspace; + ZSTD_matchState_t matchState; + ZSTD_compressedBlockState_t cBlockState; + ZSTD_customMem customMem; + U32 dictID; + int compressionLevel; /* 0 indicates that advanced API was used to select CDict params */ + ZSTD_useRowMatchFinderMode_e useRowMatchFinder; /* Indicates whether the CDict was created with params that would use + * row-based matchfinder. Unless the cdict is reloaded, we will use + * the same greedy/lazy matchfinder at compression time. + */ +}; /* typedef'd to ZSTD_CDict within "zstd.h" */ + +ZSTD_CCtx* ZSTD_createCCtx(void) +{ + return ZSTD_createCCtx_advanced(ZSTD_defaultCMem); +} + +static void ZSTD_initCCtx(ZSTD_CCtx* cctx, ZSTD_customMem memManager) +{ + assert(cctx != NULL); + ZSTD_memset(cctx, 0, sizeof(*cctx)); + cctx->customMem = memManager; + cctx->bmi2 = ZSTD_cpuid_bmi2(ZSTD_cpuid()); + { size_t const err = ZSTD_CCtx_reset(cctx, ZSTD_reset_parameters); + assert(!ZSTD_isError(err)); + (void)err; + } +} + +ZSTD_CCtx* ZSTD_createCCtx_advanced(ZSTD_customMem customMem) +{ + ZSTD_STATIC_ASSERT(zcss_init==0); + ZSTD_STATIC_ASSERT(ZSTD_CONTENTSIZE_UNKNOWN==(0ULL - 1)); + if ((!customMem.customAlloc) ^ (!customMem.customFree)) return NULL; + { ZSTD_CCtx* const cctx = (ZSTD_CCtx*)ZSTD_customMalloc(sizeof(ZSTD_CCtx), customMem); + if (!cctx) return NULL; + ZSTD_initCCtx(cctx, customMem); + return cctx; + } +} + +ZSTD_CCtx* ZSTD_initStaticCCtx(void* workspace, size_t workspaceSize) +{ + ZSTD_cwksp ws; + ZSTD_CCtx* cctx; + if (workspaceSize <= sizeof(ZSTD_CCtx)) return NULL; /* minimum size */ + if ((size_t)workspace & 7) return NULL; /* must be 8-aligned */ + ZSTD_cwksp_init(&ws, workspace, workspaceSize, ZSTD_cwksp_static_alloc); + + cctx = (ZSTD_CCtx*)ZSTD_cwksp_reserve_object(&ws, sizeof(ZSTD_CCtx)); + if (cctx == NULL) return NULL; + + ZSTD_memset(cctx, 0, sizeof(ZSTD_CCtx)); + ZSTD_cwksp_move(&cctx->workspace, &ws); + cctx->staticSize = workspaceSize; + + /* statically sized space. entropyWorkspace never moves (but prev/next block swap places) */ + if (!ZSTD_cwksp_check_available(&cctx->workspace, ENTROPY_WORKSPACE_SIZE + 2 * sizeof(ZSTD_compressedBlockState_t))) return NULL; + cctx->blockState.prevCBlock = (ZSTD_compressedBlockState_t*)ZSTD_cwksp_reserve_object(&cctx->workspace, sizeof(ZSTD_compressedBlockState_t)); + cctx->blockState.nextCBlock = (ZSTD_compressedBlockState_t*)ZSTD_cwksp_reserve_object(&cctx->workspace, sizeof(ZSTD_compressedBlockState_t)); + cctx->entropyWorkspace = (U32*)ZSTD_cwksp_reserve_object(&cctx->workspace, ENTROPY_WORKSPACE_SIZE); + cctx->bmi2 = ZSTD_cpuid_bmi2(ZSTD_cpuid()); + return cctx; +} + +/** + * Clears and frees all of the dictionaries in the CCtx. + */ +static void ZSTD_clearAllDicts(ZSTD_CCtx* cctx) +{ + ZSTD_customFree(cctx->localDict.dictBuffer, cctx->customMem); + ZSTD_freeCDict(cctx->localDict.cdict); + ZSTD_memset(&cctx->localDict, 0, sizeof(cctx->localDict)); + ZSTD_memset(&cctx->prefixDict, 0, sizeof(cctx->prefixDict)); + cctx->cdict = NULL; +} + +static size_t ZSTD_sizeof_localDict(ZSTD_localDict dict) +{ + size_t const bufferSize = dict.dictBuffer != NULL ? dict.dictSize : 0; + size_t const cdictSize = ZSTD_sizeof_CDict(dict.cdict); + return bufferSize + cdictSize; +} + +static void ZSTD_freeCCtxContent(ZSTD_CCtx* cctx) +{ + assert(cctx != NULL); + assert(cctx->staticSize == 0); + ZSTD_clearAllDicts(cctx); +#ifdef ZSTD_MULTITHREAD + ZSTDMT_freeCCtx(cctx->mtctx); cctx->mtctx = NULL; +#endif + ZSTD_cwksp_free(&cctx->workspace, cctx->customMem); +} + +size_t ZSTD_freeCCtx(ZSTD_CCtx* cctx) +{ + if (cctx==NULL) return 0; /* support free on NULL */ + RETURN_ERROR_IF(cctx->staticSize, memory_allocation, + "not compatible with static CCtx"); + { + int cctxInWorkspace = ZSTD_cwksp_owns_buffer(&cctx->workspace, cctx); + ZSTD_freeCCtxContent(cctx); + if (!cctxInWorkspace) { + ZSTD_customFree(cctx, cctx->customMem); + } + } + return 0; +} + + +static size_t ZSTD_sizeof_mtctx(const ZSTD_CCtx* cctx) +{ +#ifdef ZSTD_MULTITHREAD + return ZSTDMT_sizeof_CCtx(cctx->mtctx); +#else + (void)cctx; + return 0; +#endif +} + + +size_t ZSTD_sizeof_CCtx(const ZSTD_CCtx* cctx) +{ + if (cctx==NULL) return 0; /* support sizeof on NULL */ + /* cctx may be in the workspace */ + return (cctx->workspace.workspace == cctx ? 0 : sizeof(*cctx)) + + ZSTD_cwksp_sizeof(&cctx->workspace) + + ZSTD_sizeof_localDict(cctx->localDict) + + ZSTD_sizeof_mtctx(cctx); +} + +size_t ZSTD_sizeof_CStream(const ZSTD_CStream* zcs) +{ + return ZSTD_sizeof_CCtx(zcs); /* same object */ +} + +/* private API call, for dictBuilder only */ +const seqStore_t* ZSTD_getSeqStore(const ZSTD_CCtx* ctx) { return &(ctx->seqStore); } + +/* Returns true if the strategy supports using a row based matchfinder */ +static int ZSTD_rowMatchFinderSupported(const ZSTD_strategy strategy) { + return (strategy >= ZSTD_greedy && strategy <= ZSTD_lazy2); +} + +/* Returns true if the strategy and useRowMatchFinder mode indicate that we will use the row based matchfinder + * for this compression. + */ +static int ZSTD_rowMatchFinderUsed(const ZSTD_strategy strategy, const ZSTD_useRowMatchFinderMode_e mode) { + assert(mode != ZSTD_urm_auto); + return ZSTD_rowMatchFinderSupported(strategy) && (mode == ZSTD_urm_enableRowMatchFinder); +} + +/* Returns row matchfinder usage enum given an initial mode and cParams */ +static ZSTD_useRowMatchFinderMode_e ZSTD_resolveRowMatchFinderMode(ZSTD_useRowMatchFinderMode_e mode, + const ZSTD_compressionParameters* const cParams) { +#if !defined(ZSTD_NO_INTRINSICS) && (defined(__SSE2__) || defined(__ARM_NEON)) + int const kHasSIMD128 = 1; +#else + int const kHasSIMD128 = 0; +#endif + if (mode != ZSTD_urm_auto) return mode; /* if requested enabled, but no SIMD, we still will use row matchfinder */ + mode = ZSTD_urm_disableRowMatchFinder; + if (!ZSTD_rowMatchFinderSupported(cParams->strategy)) return mode; + if (kHasSIMD128) { + if (cParams->windowLog > 14) mode = ZSTD_urm_enableRowMatchFinder; + } else { + if (cParams->windowLog > 17) mode = ZSTD_urm_enableRowMatchFinder; + } + return mode; +} + +/* Returns 1 if the arguments indicate that we should allocate a chainTable, 0 otherwise */ +static int ZSTD_allocateChainTable(const ZSTD_strategy strategy, + const ZSTD_useRowMatchFinderMode_e useRowMatchFinder, + const U32 forDDSDict) { + assert(useRowMatchFinder != ZSTD_urm_auto); + /* We always should allocate a chaintable if we are allocating a matchstate for a DDS dictionary matchstate. + * We do not allocate a chaintable if we are using ZSTD_fast, or are using the row-based matchfinder. + */ + return forDDSDict || ((strategy != ZSTD_fast) && !ZSTD_rowMatchFinderUsed(strategy, useRowMatchFinder)); +} + +/* Returns 1 if compression parameters are such that we should + * enable long distance matching (wlog >= 27, strategy >= btopt). + * Returns 0 otherwise. + */ +static U32 ZSTD_CParams_shouldEnableLdm(const ZSTD_compressionParameters* const cParams) { + return cParams->strategy >= ZSTD_btopt && cParams->windowLog >= 27; +} + +/* Returns 1 if compression parameters are such that we should + * enable blockSplitter (wlog >= 17, strategy >= btopt). + * Returns 0 otherwise. + */ +static U32 ZSTD_CParams_useBlockSplitter(const ZSTD_compressionParameters* const cParams) { + return cParams->strategy >= ZSTD_btopt && cParams->windowLog >= 17; +} + +static ZSTD_CCtx_params ZSTD_makeCCtxParamsFromCParams( + ZSTD_compressionParameters cParams) +{ + ZSTD_CCtx_params cctxParams; + /* should not matter, as all cParams are presumed properly defined */ + ZSTD_CCtxParams_init(&cctxParams, ZSTD_CLEVEL_DEFAULT); + cctxParams.cParams = cParams; + + /* Adjust advanced params according to cParams */ + if (ZSTD_CParams_shouldEnableLdm(&cParams)) { + DEBUGLOG(4, "ZSTD_makeCCtxParamsFromCParams(): Including LDM into cctx params"); + cctxParams.ldmParams.enableLdm = 1; + /* LDM is enabled by default for optimal parser and window size >= 128MB */ + ZSTD_ldm_adjustParameters(&cctxParams.ldmParams, &cParams); + assert(cctxParams.ldmParams.hashLog >= cctxParams.ldmParams.bucketSizeLog); + assert(cctxParams.ldmParams.hashRateLog < 32); + } + + if (ZSTD_CParams_useBlockSplitter(&cParams)) { + DEBUGLOG(4, "ZSTD_makeCCtxParamsFromCParams(): Including block splitting into cctx params"); + cctxParams.splitBlocks = 1; + } + + cctxParams.useRowMatchFinder = ZSTD_resolveRowMatchFinderMode(cctxParams.useRowMatchFinder, &cParams); + assert(!ZSTD_checkCParams(cParams)); + return cctxParams; +} + +static ZSTD_CCtx_params* ZSTD_createCCtxParams_advanced( + ZSTD_customMem customMem) +{ + ZSTD_CCtx_params* params; + if ((!customMem.customAlloc) ^ (!customMem.customFree)) return NULL; + params = (ZSTD_CCtx_params*)ZSTD_customCalloc( + sizeof(ZSTD_CCtx_params), customMem); + if (!params) { return NULL; } + ZSTD_CCtxParams_init(params, ZSTD_CLEVEL_DEFAULT); + params->customMem = customMem; + return params; +} + +ZSTD_CCtx_params* ZSTD_createCCtxParams(void) +{ + return ZSTD_createCCtxParams_advanced(ZSTD_defaultCMem); +} + +size_t ZSTD_freeCCtxParams(ZSTD_CCtx_params* params) +{ + if (params == NULL) { return 0; } + ZSTD_customFree(params, params->customMem); + return 0; +} + +size_t ZSTD_CCtxParams_reset(ZSTD_CCtx_params* params) +{ + return ZSTD_CCtxParams_init(params, ZSTD_CLEVEL_DEFAULT); +} + +size_t ZSTD_CCtxParams_init(ZSTD_CCtx_params* cctxParams, int compressionLevel) { + RETURN_ERROR_IF(!cctxParams, GENERIC, "NULL pointer!"); + ZSTD_memset(cctxParams, 0, sizeof(*cctxParams)); + cctxParams->compressionLevel = compressionLevel; + cctxParams->fParams.contentSizeFlag = 1; + return 0; +} + +#define ZSTD_NO_CLEVEL 0 + +/** + * Initializes the cctxParams from params and compressionLevel. + * @param compressionLevel If params are derived from a compression level then that compression level, otherwise ZSTD_NO_CLEVEL. + */ +static void ZSTD_CCtxParams_init_internal(ZSTD_CCtx_params* cctxParams, ZSTD_parameters const* params, int compressionLevel) +{ + assert(!ZSTD_checkCParams(params->cParams)); + ZSTD_memset(cctxParams, 0, sizeof(*cctxParams)); + cctxParams->cParams = params->cParams; + cctxParams->fParams = params->fParams; + /* Should not matter, as all cParams are presumed properly defined. + * But, set it for tracing anyway. + */ + cctxParams->compressionLevel = compressionLevel; + cctxParams->useRowMatchFinder = ZSTD_resolveRowMatchFinderMode(cctxParams->useRowMatchFinder, ¶ms->cParams); + DEBUGLOG(4, "ZSTD_CCtxParams_init_internal: useRowMatchFinder=%d", cctxParams->useRowMatchFinder); +} + +size_t ZSTD_CCtxParams_init_advanced(ZSTD_CCtx_params* cctxParams, ZSTD_parameters params) +{ + RETURN_ERROR_IF(!cctxParams, GENERIC, "NULL pointer!"); + FORWARD_IF_ERROR( ZSTD_checkCParams(params.cParams) , ""); + ZSTD_CCtxParams_init_internal(cctxParams, ¶ms, ZSTD_NO_CLEVEL); + return 0; +} + +/** + * Sets cctxParams' cParams and fParams from params, but otherwise leaves them alone. + * @param param Validated zstd parameters. + */ +static void ZSTD_CCtxParams_setZstdParams( + ZSTD_CCtx_params* cctxParams, const ZSTD_parameters* params) +{ + assert(!ZSTD_checkCParams(params->cParams)); + cctxParams->cParams = params->cParams; + cctxParams->fParams = params->fParams; + /* Should not matter, as all cParams are presumed properly defined. + * But, set it for tracing anyway. + */ + cctxParams->compressionLevel = ZSTD_NO_CLEVEL; +} + +ZSTD_bounds ZSTD_cParam_getBounds(ZSTD_cParameter param) +{ + ZSTD_bounds bounds = { 0, 0, 0 }; + + switch(param) + { + case ZSTD_c_compressionLevel: + bounds.lowerBound = ZSTD_minCLevel(); + bounds.upperBound = ZSTD_maxCLevel(); + return bounds; + + case ZSTD_c_windowLog: + bounds.lowerBound = ZSTD_WINDOWLOG_MIN; + bounds.upperBound = ZSTD_WINDOWLOG_MAX; + return bounds; + + case ZSTD_c_hashLog: + bounds.lowerBound = ZSTD_HASHLOG_MIN; + bounds.upperBound = ZSTD_HASHLOG_MAX; + return bounds; + + case ZSTD_c_chainLog: + bounds.lowerBound = ZSTD_CHAINLOG_MIN; + bounds.upperBound = ZSTD_CHAINLOG_MAX; + return bounds; + + case ZSTD_c_searchLog: + bounds.lowerBound = ZSTD_SEARCHLOG_MIN; + bounds.upperBound = ZSTD_SEARCHLOG_MAX; + return bounds; + + case ZSTD_c_minMatch: + bounds.lowerBound = ZSTD_MINMATCH_MIN; + bounds.upperBound = ZSTD_MINMATCH_MAX; + return bounds; + + case ZSTD_c_targetLength: + bounds.lowerBound = ZSTD_TARGETLENGTH_MIN; + bounds.upperBound = ZSTD_TARGETLENGTH_MAX; + return bounds; + + case ZSTD_c_strategy: + bounds.lowerBound = ZSTD_STRATEGY_MIN; + bounds.upperBound = ZSTD_STRATEGY_MAX; + return bounds; + + case ZSTD_c_contentSizeFlag: + bounds.lowerBound = 0; + bounds.upperBound = 1; + return bounds; + + case ZSTD_c_checksumFlag: + bounds.lowerBound = 0; + bounds.upperBound = 1; + return bounds; + + case ZSTD_c_dictIDFlag: + bounds.lowerBound = 0; + bounds.upperBound = 1; + return bounds; + + case ZSTD_c_nbWorkers: + bounds.lowerBound = 0; +#ifdef ZSTD_MULTITHREAD + bounds.upperBound = ZSTDMT_NBWORKERS_MAX; +#else + bounds.upperBound = 0; +#endif + return bounds; + + case ZSTD_c_jobSize: + bounds.lowerBound = 0; +#ifdef ZSTD_MULTITHREAD + bounds.upperBound = ZSTDMT_JOBSIZE_MAX; +#else + bounds.upperBound = 0; +#endif + return bounds; + + case ZSTD_c_overlapLog: +#ifdef ZSTD_MULTITHREAD + bounds.lowerBound = ZSTD_OVERLAPLOG_MIN; + bounds.upperBound = ZSTD_OVERLAPLOG_MAX; +#else + bounds.lowerBound = 0; + bounds.upperBound = 0; +#endif + return bounds; + + case ZSTD_c_enableDedicatedDictSearch: + bounds.lowerBound = 0; + bounds.upperBound = 1; + return bounds; + + case ZSTD_c_enableLongDistanceMatching: + bounds.lowerBound = 0; + bounds.upperBound = 1; + return bounds; + + case ZSTD_c_ldmHashLog: + bounds.lowerBound = ZSTD_LDM_HASHLOG_MIN; + bounds.upperBound = ZSTD_LDM_HASHLOG_MAX; + return bounds; + + case ZSTD_c_ldmMinMatch: + bounds.lowerBound = ZSTD_LDM_MINMATCH_MIN; + bounds.upperBound = ZSTD_LDM_MINMATCH_MAX; + return bounds; + + case ZSTD_c_ldmBucketSizeLog: + bounds.lowerBound = ZSTD_LDM_BUCKETSIZELOG_MIN; + bounds.upperBound = ZSTD_LDM_BUCKETSIZELOG_MAX; + return bounds; + + case ZSTD_c_ldmHashRateLog: + bounds.lowerBound = ZSTD_LDM_HASHRATELOG_MIN; + bounds.upperBound = ZSTD_LDM_HASHRATELOG_MAX; + return bounds; + + /* experimental parameters */ + case ZSTD_c_rsyncable: + bounds.lowerBound = 0; + bounds.upperBound = 1; + return bounds; + + case ZSTD_c_forceMaxWindow : + bounds.lowerBound = 0; + bounds.upperBound = 1; + return bounds; + + case ZSTD_c_format: + ZSTD_STATIC_ASSERT(ZSTD_f_zstd1 < ZSTD_f_zstd1_magicless); + bounds.lowerBound = ZSTD_f_zstd1; + bounds.upperBound = ZSTD_f_zstd1_magicless; /* note : how to ensure at compile time that this is the highest value enum ? */ + return bounds; + + case ZSTD_c_forceAttachDict: + ZSTD_STATIC_ASSERT(ZSTD_dictDefaultAttach < ZSTD_dictForceLoad); + bounds.lowerBound = ZSTD_dictDefaultAttach; + bounds.upperBound = ZSTD_dictForceLoad; /* note : how to ensure at compile time that this is the highest value enum ? */ + return bounds; + + case ZSTD_c_literalCompressionMode: + ZSTD_STATIC_ASSERT(ZSTD_lcm_auto < ZSTD_lcm_huffman && ZSTD_lcm_huffman < ZSTD_lcm_uncompressed); + bounds.lowerBound = ZSTD_lcm_auto; + bounds.upperBound = ZSTD_lcm_uncompressed; + return bounds; + + case ZSTD_c_targetCBlockSize: + bounds.lowerBound = ZSTD_TARGETCBLOCKSIZE_MIN; + bounds.upperBound = ZSTD_TARGETCBLOCKSIZE_MAX; + return bounds; + + case ZSTD_c_srcSizeHint: + bounds.lowerBound = ZSTD_SRCSIZEHINT_MIN; + bounds.upperBound = ZSTD_SRCSIZEHINT_MAX; + return bounds; + + case ZSTD_c_stableInBuffer: + case ZSTD_c_stableOutBuffer: + bounds.lowerBound = (int)ZSTD_bm_buffered; + bounds.upperBound = (int)ZSTD_bm_stable; + return bounds; + + case ZSTD_c_blockDelimiters: + bounds.lowerBound = (int)ZSTD_sf_noBlockDelimiters; + bounds.upperBound = (int)ZSTD_sf_explicitBlockDelimiters; + return bounds; + + case ZSTD_c_validateSequences: + bounds.lowerBound = 0; + bounds.upperBound = 1; + return bounds; + + case ZSTD_c_splitBlocks: + bounds.lowerBound = 0; + bounds.upperBound = 1; + return bounds; + + case ZSTD_c_useRowMatchFinder: + bounds.lowerBound = (int)ZSTD_urm_auto; + bounds.upperBound = (int)ZSTD_urm_enableRowMatchFinder; + return bounds; + + case ZSTD_c_deterministicRefPrefix: + bounds.lowerBound = 0; + bounds.upperBound = 1; + return bounds; + + default: + bounds.error = ERROR(parameter_unsupported); + return bounds; + } +} + +/* ZSTD_cParam_clampBounds: + * Clamps the value into the bounded range. + */ +static size_t ZSTD_cParam_clampBounds(ZSTD_cParameter cParam, int* value) +{ + ZSTD_bounds const bounds = ZSTD_cParam_getBounds(cParam); + if (ZSTD_isError(bounds.error)) return bounds.error; + if (*value < bounds.lowerBound) *value = bounds.lowerBound; + if (*value > bounds.upperBound) *value = bounds.upperBound; + return 0; +} + +#define BOUNDCHECK(cParam, val) { \ + RETURN_ERROR_IF(!ZSTD_cParam_withinBounds(cParam,val), \ + parameter_outOfBound, "Param out of bounds"); \ +} + + +static int ZSTD_isUpdateAuthorized(ZSTD_cParameter param) +{ + switch(param) + { + case ZSTD_c_compressionLevel: + case ZSTD_c_hashLog: + case ZSTD_c_chainLog: + case ZSTD_c_searchLog: + case ZSTD_c_minMatch: + case ZSTD_c_targetLength: + case ZSTD_c_strategy: + return 1; + + case ZSTD_c_format: + case ZSTD_c_windowLog: + case ZSTD_c_contentSizeFlag: + case ZSTD_c_checksumFlag: + case ZSTD_c_dictIDFlag: + case ZSTD_c_forceMaxWindow : + case ZSTD_c_nbWorkers: + case ZSTD_c_jobSize: + case ZSTD_c_overlapLog: + case ZSTD_c_rsyncable: + case ZSTD_c_enableDedicatedDictSearch: + case ZSTD_c_enableLongDistanceMatching: + case ZSTD_c_ldmHashLog: + case ZSTD_c_ldmMinMatch: + case ZSTD_c_ldmBucketSizeLog: + case ZSTD_c_ldmHashRateLog: + case ZSTD_c_forceAttachDict: + case ZSTD_c_literalCompressionMode: + case ZSTD_c_targetCBlockSize: + case ZSTD_c_srcSizeHint: + case ZSTD_c_stableInBuffer: + case ZSTD_c_stableOutBuffer: + case ZSTD_c_blockDelimiters: + case ZSTD_c_validateSequences: + case ZSTD_c_splitBlocks: + case ZSTD_c_useRowMatchFinder: + case ZSTD_c_deterministicRefPrefix: + default: + return 0; + } +} + +size_t ZSTD_CCtx_setParameter(ZSTD_CCtx* cctx, ZSTD_cParameter param, int value) +{ + DEBUGLOG(4, "ZSTD_CCtx_setParameter (%i, %i)", (int)param, value); + if (cctx->streamStage != zcss_init) { + if (ZSTD_isUpdateAuthorized(param)) { + cctx->cParamsChanged = 1; + } else { + RETURN_ERROR(stage_wrong, "can only set params in ctx init stage"); + } } + + switch(param) + { + case ZSTD_c_nbWorkers: + RETURN_ERROR_IF((value!=0) && cctx->staticSize, parameter_unsupported, + "MT not compatible with static alloc"); + break; + + case ZSTD_c_compressionLevel: + case ZSTD_c_windowLog: + case ZSTD_c_hashLog: + case ZSTD_c_chainLog: + case ZSTD_c_searchLog: + case ZSTD_c_minMatch: + case ZSTD_c_targetLength: + case ZSTD_c_strategy: + case ZSTD_c_ldmHashRateLog: + case ZSTD_c_format: + case ZSTD_c_contentSizeFlag: + case ZSTD_c_checksumFlag: + case ZSTD_c_dictIDFlag: + case ZSTD_c_forceMaxWindow: + case ZSTD_c_forceAttachDict: + case ZSTD_c_literalCompressionMode: + case ZSTD_c_jobSize: + case ZSTD_c_overlapLog: + case ZSTD_c_rsyncable: + case ZSTD_c_enableDedicatedDictSearch: + case ZSTD_c_enableLongDistanceMatching: + case ZSTD_c_ldmHashLog: + case ZSTD_c_ldmMinMatch: + case ZSTD_c_ldmBucketSizeLog: + case ZSTD_c_targetCBlockSize: + case ZSTD_c_srcSizeHint: + case ZSTD_c_stableInBuffer: + case ZSTD_c_stableOutBuffer: + case ZSTD_c_blockDelimiters: + case ZSTD_c_validateSequences: + case ZSTD_c_splitBlocks: + case ZSTD_c_useRowMatchFinder: + case ZSTD_c_deterministicRefPrefix: + break; + + default: RETURN_ERROR(parameter_unsupported, "unknown parameter"); + } + return ZSTD_CCtxParams_setParameter(&cctx->requestedParams, param, value); +} + +size_t ZSTD_CCtxParams_setParameter(ZSTD_CCtx_params* CCtxParams, + ZSTD_cParameter param, int value) +{ + DEBUGLOG(4, "ZSTD_CCtxParams_setParameter (%i, %i)", (int)param, value); + switch(param) + { + case ZSTD_c_format : + BOUNDCHECK(ZSTD_c_format, value); + CCtxParams->format = (ZSTD_format_e)value; + return (size_t)CCtxParams->format; + + case ZSTD_c_compressionLevel : { + FORWARD_IF_ERROR(ZSTD_cParam_clampBounds(param, &value), ""); + if (value == 0) + CCtxParams->compressionLevel = ZSTD_CLEVEL_DEFAULT; /* 0 == default */ + else + CCtxParams->compressionLevel = value; + if (CCtxParams->compressionLevel >= 0) return (size_t)CCtxParams->compressionLevel; + return 0; /* return type (size_t) cannot represent negative values */ + } + + case ZSTD_c_windowLog : + if (value!=0) /* 0 => use default */ + BOUNDCHECK(ZSTD_c_windowLog, value); + CCtxParams->cParams.windowLog = (U32)value; + return CCtxParams->cParams.windowLog; + + case ZSTD_c_hashLog : + if (value!=0) /* 0 => use default */ + BOUNDCHECK(ZSTD_c_hashLog, value); + CCtxParams->cParams.hashLog = (U32)value; + return CCtxParams->cParams.hashLog; + + case ZSTD_c_chainLog : + if (value!=0) /* 0 => use default */ + BOUNDCHECK(ZSTD_c_chainLog, value); + CCtxParams->cParams.chainLog = (U32)value; + return CCtxParams->cParams.chainLog; + + case ZSTD_c_searchLog : + if (value!=0) /* 0 => use default */ + BOUNDCHECK(ZSTD_c_searchLog, value); + CCtxParams->cParams.searchLog = (U32)value; + return (size_t)value; + + case ZSTD_c_minMatch : + if (value!=0) /* 0 => use default */ + BOUNDCHECK(ZSTD_c_minMatch, value); + CCtxParams->cParams.minMatch = value; + return CCtxParams->cParams.minMatch; + + case ZSTD_c_targetLength : + BOUNDCHECK(ZSTD_c_targetLength, value); + CCtxParams->cParams.targetLength = value; + return CCtxParams->cParams.targetLength; + + case ZSTD_c_strategy : + if (value!=0) /* 0 => use default */ + BOUNDCHECK(ZSTD_c_strategy, value); + CCtxParams->cParams.strategy = (ZSTD_strategy)value; + return (size_t)CCtxParams->cParams.strategy; + + case ZSTD_c_contentSizeFlag : + /* Content size written in frame header _when known_ (default:1) */ + DEBUGLOG(4, "set content size flag = %u", (value!=0)); + CCtxParams->fParams.contentSizeFlag = value != 0; + return CCtxParams->fParams.contentSizeFlag; + + case ZSTD_c_checksumFlag : + /* A 32-bits content checksum will be calculated and written at end of frame (default:0) */ + CCtxParams->fParams.checksumFlag = value != 0; + return CCtxParams->fParams.checksumFlag; + + case ZSTD_c_dictIDFlag : /* When applicable, dictionary's dictID is provided in frame header (default:1) */ + DEBUGLOG(4, "set dictIDFlag = %u", (value!=0)); + CCtxParams->fParams.noDictIDFlag = !value; + return !CCtxParams->fParams.noDictIDFlag; + + case ZSTD_c_forceMaxWindow : + CCtxParams->forceWindow = (value != 0); + return CCtxParams->forceWindow; + + case ZSTD_c_forceAttachDict : { + const ZSTD_dictAttachPref_e pref = (ZSTD_dictAttachPref_e)value; + BOUNDCHECK(ZSTD_c_forceAttachDict, pref); + CCtxParams->attachDictPref = pref; + return CCtxParams->attachDictPref; + } + + case ZSTD_c_literalCompressionMode : { + const ZSTD_literalCompressionMode_e lcm = (ZSTD_literalCompressionMode_e)value; + BOUNDCHECK(ZSTD_c_literalCompressionMode, lcm); + CCtxParams->literalCompressionMode = lcm; + return CCtxParams->literalCompressionMode; + } + + case ZSTD_c_nbWorkers : +#ifndef ZSTD_MULTITHREAD + RETURN_ERROR_IF(value!=0, parameter_unsupported, "not compiled with multithreading"); + return 0; +#else + FORWARD_IF_ERROR(ZSTD_cParam_clampBounds(param, &value), ""); + CCtxParams->nbWorkers = value; + return CCtxParams->nbWorkers; +#endif + + case ZSTD_c_jobSize : +#ifndef ZSTD_MULTITHREAD + RETURN_ERROR_IF(value!=0, parameter_unsupported, "not compiled with multithreading"); + return 0; +#else + /* Adjust to the minimum non-default value. */ + if (value != 0 && value < ZSTDMT_JOBSIZE_MIN) + value = ZSTDMT_JOBSIZE_MIN; + FORWARD_IF_ERROR(ZSTD_cParam_clampBounds(param, &value), ""); + assert(value >= 0); + CCtxParams->jobSize = value; + return CCtxParams->jobSize; +#endif + + case ZSTD_c_overlapLog : +#ifndef ZSTD_MULTITHREAD + RETURN_ERROR_IF(value!=0, parameter_unsupported, "not compiled with multithreading"); + return 0; +#else + FORWARD_IF_ERROR(ZSTD_cParam_clampBounds(ZSTD_c_overlapLog, &value), ""); + CCtxParams->overlapLog = value; + return CCtxParams->overlapLog; +#endif + + case ZSTD_c_rsyncable : +#ifndef ZSTD_MULTITHREAD + RETURN_ERROR_IF(value!=0, parameter_unsupported, "not compiled with multithreading"); + return 0; +#else + FORWARD_IF_ERROR(ZSTD_cParam_clampBounds(ZSTD_c_overlapLog, &value), ""); + CCtxParams->rsyncable = value; + return CCtxParams->rsyncable; +#endif + + case ZSTD_c_enableDedicatedDictSearch : + CCtxParams->enableDedicatedDictSearch = (value!=0); + return CCtxParams->enableDedicatedDictSearch; + + case ZSTD_c_enableLongDistanceMatching : + CCtxParams->ldmParams.enableLdm = (value!=0); + return CCtxParams->ldmParams.enableLdm; + + case ZSTD_c_ldmHashLog : + if (value!=0) /* 0 ==> auto */ + BOUNDCHECK(ZSTD_c_ldmHashLog, value); + CCtxParams->ldmParams.hashLog = value; + return CCtxParams->ldmParams.hashLog; + + case ZSTD_c_ldmMinMatch : + if (value!=0) /* 0 ==> default */ + BOUNDCHECK(ZSTD_c_ldmMinMatch, value); + CCtxParams->ldmParams.minMatchLength = value; + return CCtxParams->ldmParams.minMatchLength; + + case ZSTD_c_ldmBucketSizeLog : + if (value!=0) /* 0 ==> default */ + BOUNDCHECK(ZSTD_c_ldmBucketSizeLog, value); + CCtxParams->ldmParams.bucketSizeLog = value; + return CCtxParams->ldmParams.bucketSizeLog; + + case ZSTD_c_ldmHashRateLog : + RETURN_ERROR_IF(value > ZSTD_WINDOWLOG_MAX - ZSTD_HASHLOG_MIN, + parameter_outOfBound, "Param out of bounds!"); + CCtxParams->ldmParams.hashRateLog = value; + return CCtxParams->ldmParams.hashRateLog; + + case ZSTD_c_targetCBlockSize : + if (value!=0) /* 0 ==> default */ + BOUNDCHECK(ZSTD_c_targetCBlockSize, value); + CCtxParams->targetCBlockSize = value; + return CCtxParams->targetCBlockSize; + + case ZSTD_c_srcSizeHint : + if (value!=0) /* 0 ==> default */ + BOUNDCHECK(ZSTD_c_srcSizeHint, value); + CCtxParams->srcSizeHint = value; + return CCtxParams->srcSizeHint; + + case ZSTD_c_stableInBuffer: + BOUNDCHECK(ZSTD_c_stableInBuffer, value); + CCtxParams->inBufferMode = (ZSTD_bufferMode_e)value; + return CCtxParams->inBufferMode; + + case ZSTD_c_stableOutBuffer: + BOUNDCHECK(ZSTD_c_stableOutBuffer, value); + CCtxParams->outBufferMode = (ZSTD_bufferMode_e)value; + return CCtxParams->outBufferMode; + + case ZSTD_c_blockDelimiters: + BOUNDCHECK(ZSTD_c_blockDelimiters, value); + CCtxParams->blockDelimiters = (ZSTD_sequenceFormat_e)value; + return CCtxParams->blockDelimiters; + + case ZSTD_c_validateSequences: + BOUNDCHECK(ZSTD_c_validateSequences, value); + CCtxParams->validateSequences = value; + return CCtxParams->validateSequences; + + case ZSTD_c_splitBlocks: + BOUNDCHECK(ZSTD_c_splitBlocks, value); + CCtxParams->splitBlocks = value; + return CCtxParams->splitBlocks; + + case ZSTD_c_useRowMatchFinder: + BOUNDCHECK(ZSTD_c_useRowMatchFinder, value); + CCtxParams->useRowMatchFinder = (ZSTD_useRowMatchFinderMode_e)value; + return CCtxParams->useRowMatchFinder; + + case ZSTD_c_deterministicRefPrefix: + BOUNDCHECK(ZSTD_c_deterministicRefPrefix, value); + CCtxParams->deterministicRefPrefix = !!value; + return CCtxParams->deterministicRefPrefix; + + default: RETURN_ERROR(parameter_unsupported, "unknown parameter"); + } +} + +size_t ZSTD_CCtx_getParameter(ZSTD_CCtx const* cctx, ZSTD_cParameter param, int* value) +{ + return ZSTD_CCtxParams_getParameter(&cctx->requestedParams, param, value); +} + +size_t ZSTD_CCtxParams_getParameter( + ZSTD_CCtx_params const* CCtxParams, ZSTD_cParameter param, int* value) +{ + switch(param) + { + case ZSTD_c_format : + *value = CCtxParams->format; + break; + case ZSTD_c_compressionLevel : + *value = CCtxParams->compressionLevel; + break; + case ZSTD_c_windowLog : + *value = (int)CCtxParams->cParams.windowLog; + break; + case ZSTD_c_hashLog : + *value = (int)CCtxParams->cParams.hashLog; + break; + case ZSTD_c_chainLog : + *value = (int)CCtxParams->cParams.chainLog; + break; + case ZSTD_c_searchLog : + *value = CCtxParams->cParams.searchLog; + break; + case ZSTD_c_minMatch : + *value = CCtxParams->cParams.minMatch; + break; + case ZSTD_c_targetLength : + *value = CCtxParams->cParams.targetLength; + break; + case ZSTD_c_strategy : + *value = (unsigned)CCtxParams->cParams.strategy; + break; + case ZSTD_c_contentSizeFlag : + *value = CCtxParams->fParams.contentSizeFlag; + break; + case ZSTD_c_checksumFlag : + *value = CCtxParams->fParams.checksumFlag; + break; + case ZSTD_c_dictIDFlag : + *value = !CCtxParams->fParams.noDictIDFlag; + break; + case ZSTD_c_forceMaxWindow : + *value = CCtxParams->forceWindow; + break; + case ZSTD_c_forceAttachDict : + *value = CCtxParams->attachDictPref; + break; + case ZSTD_c_literalCompressionMode : + *value = CCtxParams->literalCompressionMode; + break; + case ZSTD_c_nbWorkers : +#ifndef ZSTD_MULTITHREAD + assert(CCtxParams->nbWorkers == 0); +#endif + *value = CCtxParams->nbWorkers; + break; + case ZSTD_c_jobSize : +#ifndef ZSTD_MULTITHREAD + RETURN_ERROR(parameter_unsupported, "not compiled with multithreading"); +#else + assert(CCtxParams->jobSize <= INT_MAX); + *value = (int)CCtxParams->jobSize; + break; +#endif + case ZSTD_c_overlapLog : +#ifndef ZSTD_MULTITHREAD + RETURN_ERROR(parameter_unsupported, "not compiled with multithreading"); +#else + *value = CCtxParams->overlapLog; + break; +#endif + case ZSTD_c_rsyncable : +#ifndef ZSTD_MULTITHREAD + RETURN_ERROR(parameter_unsupported, "not compiled with multithreading"); +#else + *value = CCtxParams->rsyncable; + break; +#endif + case ZSTD_c_enableDedicatedDictSearch : + *value = CCtxParams->enableDedicatedDictSearch; + break; + case ZSTD_c_enableLongDistanceMatching : + *value = CCtxParams->ldmParams.enableLdm; + break; + case ZSTD_c_ldmHashLog : + *value = CCtxParams->ldmParams.hashLog; + break; + case ZSTD_c_ldmMinMatch : + *value = CCtxParams->ldmParams.minMatchLength; + break; + case ZSTD_c_ldmBucketSizeLog : + *value = CCtxParams->ldmParams.bucketSizeLog; + break; + case ZSTD_c_ldmHashRateLog : + *value = CCtxParams->ldmParams.hashRateLog; + break; + case ZSTD_c_targetCBlockSize : + *value = (int)CCtxParams->targetCBlockSize; + break; + case ZSTD_c_srcSizeHint : + *value = (int)CCtxParams->srcSizeHint; + break; + case ZSTD_c_stableInBuffer : + *value = (int)CCtxParams->inBufferMode; + break; + case ZSTD_c_stableOutBuffer : + *value = (int)CCtxParams->outBufferMode; + break; + case ZSTD_c_blockDelimiters : + *value = (int)CCtxParams->blockDelimiters; + break; + case ZSTD_c_validateSequences : + *value = (int)CCtxParams->validateSequences; + break; + case ZSTD_c_splitBlocks : + *value = (int)CCtxParams->splitBlocks; + break; + case ZSTD_c_useRowMatchFinder : + *value = (int)CCtxParams->useRowMatchFinder; + break; + case ZSTD_c_deterministicRefPrefix: + *value = (int)CCtxParams->deterministicRefPrefix; + break; + default: RETURN_ERROR(parameter_unsupported, "unknown parameter"); + } + return 0; +} + +/** ZSTD_CCtx_setParametersUsingCCtxParams() : + * just applies `params` into `cctx` + * no action is performed, parameters are merely stored. + * If ZSTDMT is enabled, parameters are pushed to cctx->mtctx. + * This is possible even if a compression is ongoing. + * In which case, new parameters will be applied on the fly, starting with next compression job. + */ +size_t ZSTD_CCtx_setParametersUsingCCtxParams( + ZSTD_CCtx* cctx, const ZSTD_CCtx_params* params) +{ + DEBUGLOG(4, "ZSTD_CCtx_setParametersUsingCCtxParams"); + RETURN_ERROR_IF(cctx->streamStage != zcss_init, stage_wrong, + "The context is in the wrong stage!"); + RETURN_ERROR_IF(cctx->cdict, stage_wrong, + "Can't override parameters with cdict attached (some must " + "be inherited from the cdict)."); + + cctx->requestedParams = *params; + return 0; +} + +ZSTDLIB_API size_t ZSTD_CCtx_setPledgedSrcSize(ZSTD_CCtx* cctx, unsigned long long pledgedSrcSize) +{ + DEBUGLOG(4, "ZSTD_CCtx_setPledgedSrcSize to %u bytes", (U32)pledgedSrcSize); + RETURN_ERROR_IF(cctx->streamStage != zcss_init, stage_wrong, + "Can't set pledgedSrcSize when not in init stage."); + cctx->pledgedSrcSizePlusOne = pledgedSrcSize+1; + return 0; +} + +static ZSTD_compressionParameters ZSTD_dedicatedDictSearch_getCParams( + int const compressionLevel, + size_t const dictSize); +static int ZSTD_dedicatedDictSearch_isSupported( + const ZSTD_compressionParameters* cParams); +static void ZSTD_dedicatedDictSearch_revertCParams( + ZSTD_compressionParameters* cParams); + +/** + * Initializes the local dict using the requested parameters. + * NOTE: This does not use the pledged src size, because it may be used for more + * than one compression. + */ +static size_t ZSTD_initLocalDict(ZSTD_CCtx* cctx) +{ + ZSTD_localDict* const dl = &cctx->localDict; + if (dl->dict == NULL) { + /* No local dictionary. */ + assert(dl->dictBuffer == NULL); + assert(dl->cdict == NULL); + assert(dl->dictSize == 0); + return 0; + } + if (dl->cdict != NULL) { + assert(cctx->cdict == dl->cdict); + /* Local dictionary already initialized. */ + return 0; + } + assert(dl->dictSize > 0); + assert(cctx->cdict == NULL); + assert(cctx->prefixDict.dict == NULL); + + dl->cdict = ZSTD_createCDict_advanced2( + dl->dict, + dl->dictSize, + ZSTD_dlm_byRef, + dl->dictContentType, + &cctx->requestedParams, + cctx->customMem); + RETURN_ERROR_IF(!dl->cdict, memory_allocation, "ZSTD_createCDict_advanced failed"); + cctx->cdict = dl->cdict; + return 0; +} + +size_t ZSTD_CCtx_loadDictionary_advanced( + ZSTD_CCtx* cctx, const void* dict, size_t dictSize, + ZSTD_dictLoadMethod_e dictLoadMethod, ZSTD_dictContentType_e dictContentType) +{ + RETURN_ERROR_IF(cctx->streamStage != zcss_init, stage_wrong, + "Can't load a dictionary when ctx is not in init stage."); + DEBUGLOG(4, "ZSTD_CCtx_loadDictionary_advanced (size: %u)", (U32)dictSize); + ZSTD_clearAllDicts(cctx); /* in case one already exists */ + if (dict == NULL || dictSize == 0) /* no dictionary mode */ + return 0; + if (dictLoadMethod == ZSTD_dlm_byRef) { + cctx->localDict.dict = dict; + } else { + void* dictBuffer; + RETURN_ERROR_IF(cctx->staticSize, memory_allocation, + "no malloc for static CCtx"); + dictBuffer = ZSTD_customMalloc(dictSize, cctx->customMem); + RETURN_ERROR_IF(!dictBuffer, memory_allocation, "NULL pointer!"); + ZSTD_memcpy(dictBuffer, dict, dictSize); + cctx->localDict.dictBuffer = dictBuffer; + cctx->localDict.dict = dictBuffer; + } + cctx->localDict.dictSize = dictSize; + cctx->localDict.dictContentType = dictContentType; + return 0; +} + +ZSTDLIB_API size_t ZSTD_CCtx_loadDictionary_byReference( + ZSTD_CCtx* cctx, const void* dict, size_t dictSize) +{ + return ZSTD_CCtx_loadDictionary_advanced( + cctx, dict, dictSize, ZSTD_dlm_byRef, ZSTD_dct_auto); +} + +ZSTDLIB_API size_t ZSTD_CCtx_loadDictionary(ZSTD_CCtx* cctx, const void* dict, size_t dictSize) +{ + return ZSTD_CCtx_loadDictionary_advanced( + cctx, dict, dictSize, ZSTD_dlm_byCopy, ZSTD_dct_auto); +} + + +size_t ZSTD_CCtx_refCDict(ZSTD_CCtx* cctx, const ZSTD_CDict* cdict) +{ + RETURN_ERROR_IF(cctx->streamStage != zcss_init, stage_wrong, + "Can't ref a dict when ctx not in init stage."); + /* Free the existing local cdict (if any) to save memory. */ + ZSTD_clearAllDicts(cctx); + cctx->cdict = cdict; + return 0; +} + +size_t ZSTD_CCtx_refThreadPool(ZSTD_CCtx* cctx, ZSTD_threadPool* pool) +{ + RETURN_ERROR_IF(cctx->streamStage != zcss_init, stage_wrong, + "Can't ref a pool when ctx not in init stage."); + cctx->pool = pool; + return 0; +} + +size_t ZSTD_CCtx_refPrefix(ZSTD_CCtx* cctx, const void* prefix, size_t prefixSize) +{ + return ZSTD_CCtx_refPrefix_advanced(cctx, prefix, prefixSize, ZSTD_dct_rawContent); +} + +size_t ZSTD_CCtx_refPrefix_advanced( + ZSTD_CCtx* cctx, const void* prefix, size_t prefixSize, ZSTD_dictContentType_e dictContentType) +{ + RETURN_ERROR_IF(cctx->streamStage != zcss_init, stage_wrong, + "Can't ref a prefix when ctx not in init stage."); + ZSTD_clearAllDicts(cctx); + if (prefix != NULL && prefixSize > 0) { + cctx->prefixDict.dict = prefix; + cctx->prefixDict.dictSize = prefixSize; + cctx->prefixDict.dictContentType = dictContentType; + } + return 0; +} + +/*! ZSTD_CCtx_reset() : + * Also dumps dictionary */ +size_t ZSTD_CCtx_reset(ZSTD_CCtx* cctx, ZSTD_ResetDirective reset) +{ + if ( (reset == ZSTD_reset_session_only) + || (reset == ZSTD_reset_session_and_parameters) ) { + cctx->streamStage = zcss_init; + cctx->pledgedSrcSizePlusOne = 0; + } + if ( (reset == ZSTD_reset_parameters) + || (reset == ZSTD_reset_session_and_parameters) ) { + RETURN_ERROR_IF(cctx->streamStage != zcss_init, stage_wrong, + "Can't reset parameters only when not in init stage."); + ZSTD_clearAllDicts(cctx); + return ZSTD_CCtxParams_reset(&cctx->requestedParams); + } + return 0; +} + + +/** ZSTD_checkCParams() : + control CParam values remain within authorized range. + @return : 0, or an error code if one value is beyond authorized range */ +size_t ZSTD_checkCParams(ZSTD_compressionParameters cParams) +{ + BOUNDCHECK(ZSTD_c_windowLog, (int)cParams.windowLog); + BOUNDCHECK(ZSTD_c_chainLog, (int)cParams.chainLog); + BOUNDCHECK(ZSTD_c_hashLog, (int)cParams.hashLog); + BOUNDCHECK(ZSTD_c_searchLog, (int)cParams.searchLog); + BOUNDCHECK(ZSTD_c_minMatch, (int)cParams.minMatch); + BOUNDCHECK(ZSTD_c_targetLength,(int)cParams.targetLength); + BOUNDCHECK(ZSTD_c_strategy, cParams.strategy); + return 0; +} + +/** ZSTD_clampCParams() : + * make CParam values within valid range. + * @return : valid CParams */ +static ZSTD_compressionParameters +ZSTD_clampCParams(ZSTD_compressionParameters cParams) +{ +# define CLAMP_TYPE(cParam, val, type) { \ + ZSTD_bounds const bounds = ZSTD_cParam_getBounds(cParam); \ + if ((int)valbounds.upperBound) val=(type)bounds.upperBound; \ + } +# define CLAMP(cParam, val) CLAMP_TYPE(cParam, val, unsigned) + CLAMP(ZSTD_c_windowLog, cParams.windowLog); + CLAMP(ZSTD_c_chainLog, cParams.chainLog); + CLAMP(ZSTD_c_hashLog, cParams.hashLog); + CLAMP(ZSTD_c_searchLog, cParams.searchLog); + CLAMP(ZSTD_c_minMatch, cParams.minMatch); + CLAMP(ZSTD_c_targetLength,cParams.targetLength); + CLAMP_TYPE(ZSTD_c_strategy,cParams.strategy, ZSTD_strategy); + return cParams; +} + +/** ZSTD_cycleLog() : + * condition for correct operation : hashLog > 1 */ +U32 ZSTD_cycleLog(U32 hashLog, ZSTD_strategy strat) +{ + U32 const btScale = ((U32)strat >= (U32)ZSTD_btlazy2); + return hashLog - btScale; +} + +/** ZSTD_dictAndWindowLog() : + * Returns an adjusted window log that is large enough to fit the source and the dictionary. + * The zstd format says that the entire dictionary is valid if one byte of the dictionary + * is within the window. So the hashLog and chainLog should be large enough to reference both + * the dictionary and the window. So we must use this adjusted dictAndWindowLog when downsizing + * the hashLog and windowLog. + * NOTE: srcSize must not be ZSTD_CONTENTSIZE_UNKNOWN. + */ +static U32 ZSTD_dictAndWindowLog(U32 windowLog, U64 srcSize, U64 dictSize) +{ + const U64 maxWindowSize = 1ULL << ZSTD_WINDOWLOG_MAX; + /* No dictionary ==> No change */ + if (dictSize == 0) { + return windowLog; + } + assert(windowLog <= ZSTD_WINDOWLOG_MAX); + assert(srcSize != ZSTD_CONTENTSIZE_UNKNOWN); /* Handled in ZSTD_adjustCParams_internal() */ + { + U64 const windowSize = 1ULL << windowLog; + U64 const dictAndWindowSize = dictSize + windowSize; + /* If the window size is already large enough to fit both the source and the dictionary + * then just use the window size. Otherwise adjust so that it fits the dictionary and + * the window. + */ + if (windowSize >= dictSize + srcSize) { + return windowLog; /* Window size large enough already */ + } else if (dictAndWindowSize >= maxWindowSize) { + return ZSTD_WINDOWLOG_MAX; /* Larger than max window log */ + } else { + return ZSTD_highbit32((U32)dictAndWindowSize - 1) + 1; + } + } +} + +/** ZSTD_adjustCParams_internal() : + * optimize `cPar` for a specified input (`srcSize` and `dictSize`). + * mostly downsize to reduce memory consumption and initialization latency. + * `srcSize` can be ZSTD_CONTENTSIZE_UNKNOWN when not known. + * `mode` is the mode for parameter adjustment. See docs for `ZSTD_cParamMode_e`. + * note : `srcSize==0` means 0! + * condition : cPar is presumed validated (can be checked using ZSTD_checkCParams()). */ +static ZSTD_compressionParameters +ZSTD_adjustCParams_internal(ZSTD_compressionParameters cPar, + unsigned long long srcSize, + size_t dictSize, + ZSTD_cParamMode_e mode) +{ + const U64 minSrcSize = 513; /* (1<<9) + 1 */ + const U64 maxWindowResize = 1ULL << (ZSTD_WINDOWLOG_MAX-1); + assert(ZSTD_checkCParams(cPar)==0); + + switch (mode) { + case ZSTD_cpm_unknown: + case ZSTD_cpm_noAttachDict: + /* If we don't know the source size, don't make any + * assumptions about it. We will already have selected + * smaller parameters if a dictionary is in use. + */ + break; + case ZSTD_cpm_createCDict: + /* Assume a small source size when creating a dictionary + * with an unkown source size. + */ + if (dictSize && srcSize == ZSTD_CONTENTSIZE_UNKNOWN) + srcSize = minSrcSize; + break; + case ZSTD_cpm_attachDict: + /* Dictionary has its own dedicated parameters which have + * already been selected. We are selecting parameters + * for only the source. + */ + dictSize = 0; + break; + default: + assert(0); + break; + } + + /* resize windowLog if input is small enough, to use less memory */ + if ( (srcSize < maxWindowResize) + && (dictSize < maxWindowResize) ) { + U32 const tSize = (U32)(srcSize + dictSize); + static U32 const hashSizeMin = 1 << ZSTD_HASHLOG_MIN; + U32 const srcLog = (tSize < hashSizeMin) ? ZSTD_HASHLOG_MIN : + ZSTD_highbit32(tSize-1) + 1; + if (cPar.windowLog > srcLog) cPar.windowLog = srcLog; + } + if (srcSize != ZSTD_CONTENTSIZE_UNKNOWN) { + U32 const dictAndWindowLog = ZSTD_dictAndWindowLog(cPar.windowLog, (U64)srcSize, (U64)dictSize); + U32 const cycleLog = ZSTD_cycleLog(cPar.chainLog, cPar.strategy); + if (cPar.hashLog > dictAndWindowLog+1) cPar.hashLog = dictAndWindowLog+1; + if (cycleLog > dictAndWindowLog) + cPar.chainLog -= (cycleLog - dictAndWindowLog); + } + + if (cPar.windowLog < ZSTD_WINDOWLOG_ABSOLUTEMIN) + cPar.windowLog = ZSTD_WINDOWLOG_ABSOLUTEMIN; /* minimum wlog required for valid frame header */ + + return cPar; +} + +ZSTD_compressionParameters +ZSTD_adjustCParams(ZSTD_compressionParameters cPar, + unsigned long long srcSize, + size_t dictSize) +{ + cPar = ZSTD_clampCParams(cPar); /* resulting cPar is necessarily valid (all parameters within range) */ + if (srcSize == 0) srcSize = ZSTD_CONTENTSIZE_UNKNOWN; + return ZSTD_adjustCParams_internal(cPar, srcSize, dictSize, ZSTD_cpm_unknown); +} + +static ZSTD_compressionParameters ZSTD_getCParams_internal(int compressionLevel, unsigned long long srcSizeHint, size_t dictSize, ZSTD_cParamMode_e mode); +static ZSTD_parameters ZSTD_getParams_internal(int compressionLevel, unsigned long long srcSizeHint, size_t dictSize, ZSTD_cParamMode_e mode); + +static void ZSTD_overrideCParams( + ZSTD_compressionParameters* cParams, + const ZSTD_compressionParameters* overrides) +{ + if (overrides->windowLog) cParams->windowLog = overrides->windowLog; + if (overrides->hashLog) cParams->hashLog = overrides->hashLog; + if (overrides->chainLog) cParams->chainLog = overrides->chainLog; + if (overrides->searchLog) cParams->searchLog = overrides->searchLog; + if (overrides->minMatch) cParams->minMatch = overrides->minMatch; + if (overrides->targetLength) cParams->targetLength = overrides->targetLength; + if (overrides->strategy) cParams->strategy = overrides->strategy; +} + +ZSTD_compressionParameters ZSTD_getCParamsFromCCtxParams( + const ZSTD_CCtx_params* CCtxParams, U64 srcSizeHint, size_t dictSize, ZSTD_cParamMode_e mode) +{ + ZSTD_compressionParameters cParams; + if (srcSizeHint == ZSTD_CONTENTSIZE_UNKNOWN && CCtxParams->srcSizeHint > 0) { + srcSizeHint = CCtxParams->srcSizeHint; + } + cParams = ZSTD_getCParams_internal(CCtxParams->compressionLevel, srcSizeHint, dictSize, mode); + if (CCtxParams->ldmParams.enableLdm) cParams.windowLog = ZSTD_LDM_DEFAULT_WINDOW_LOG; + ZSTD_overrideCParams(&cParams, &CCtxParams->cParams); + assert(!ZSTD_checkCParams(cParams)); + /* srcSizeHint == 0 means 0 */ + return ZSTD_adjustCParams_internal(cParams, srcSizeHint, dictSize, mode); +} + +static size_t +ZSTD_sizeof_matchState(const ZSTD_compressionParameters* const cParams, + const ZSTD_useRowMatchFinderMode_e useRowMatchFinder, + const U32 enableDedicatedDictSearch, + const U32 forCCtx) +{ + /* chain table size should be 0 for fast or row-hash strategies */ + size_t const chainSize = ZSTD_allocateChainTable(cParams->strategy, useRowMatchFinder, enableDedicatedDictSearch && !forCCtx) + ? ((size_t)1 << cParams->chainLog) + : 0; + size_t const hSize = ((size_t)1) << cParams->hashLog; + U32 const hashLog3 = (forCCtx && cParams->minMatch==3) ? MIN(ZSTD_HASHLOG3_MAX, cParams->windowLog) : 0; + size_t const h3Size = hashLog3 ? ((size_t)1) << hashLog3 : 0; + /* We don't use ZSTD_cwksp_alloc_size() here because the tables aren't + * surrounded by redzones in ASAN. */ + size_t const tableSpace = chainSize * sizeof(U32) + + hSize * sizeof(U32) + + h3Size * sizeof(U32); + size_t const optPotentialSpace = + ZSTD_cwksp_aligned_alloc_size((MaxML+1) * sizeof(U32)) + + ZSTD_cwksp_aligned_alloc_size((MaxLL+1) * sizeof(U32)) + + ZSTD_cwksp_aligned_alloc_size((MaxOff+1) * sizeof(U32)) + + ZSTD_cwksp_aligned_alloc_size((1<strategy, useRowMatchFinder) + ? ZSTD_cwksp_aligned_alloc_size(hSize*sizeof(U16)) + : 0; + size_t const optSpace = (forCCtx && (cParams->strategy >= ZSTD_btopt)) + ? optPotentialSpace + : 0; + size_t const slackSpace = ZSTD_cwksp_slack_space_required(); + + /* tables are guaranteed to be sized in multiples of 64 bytes (or 16 uint32_t) */ + ZSTD_STATIC_ASSERT(ZSTD_HASHLOG_MIN >= 4 && ZSTD_WINDOWLOG_MIN >= 4 && ZSTD_CHAINLOG_MIN >= 4); + assert(useRowMatchFinder != ZSTD_urm_auto); + + DEBUGLOG(4, "chainSize: %u - hSize: %u - h3Size: %u", + (U32)chainSize, (U32)hSize, (U32)h3Size); + return tableSpace + optSpace + slackSpace + lazyAdditionalSpace; +} + +static size_t ZSTD_estimateCCtxSize_usingCCtxParams_internal( + const ZSTD_compressionParameters* cParams, + const ldmParams_t* ldmParams, + const int isStatic, + const ZSTD_useRowMatchFinderMode_e useRowMatchFinder, + const size_t buffInSize, + const size_t buffOutSize, + const U64 pledgedSrcSize) +{ + size_t const windowSize = MAX(1, (size_t)MIN(((U64)1 << cParams->windowLog), pledgedSrcSize)); + size_t const blockSize = MIN(ZSTD_BLOCKSIZE_MAX, windowSize); + U32 const divider = (cParams->minMatch==3) ? 3 : 4; + size_t const maxNbSeq = blockSize / divider; + size_t const tokenSpace = ZSTD_cwksp_alloc_size(WILDCOPY_OVERLENGTH + blockSize) + + ZSTD_cwksp_aligned_alloc_size(maxNbSeq * sizeof(seqDef)) + + 3 * ZSTD_cwksp_alloc_size(maxNbSeq * sizeof(BYTE)); + size_t const entropySpace = ZSTD_cwksp_alloc_size(ENTROPY_WORKSPACE_SIZE); + size_t const blockStateSpace = 2 * ZSTD_cwksp_alloc_size(sizeof(ZSTD_compressedBlockState_t)); + size_t const matchStateSize = ZSTD_sizeof_matchState(cParams, useRowMatchFinder, /* enableDedicatedDictSearch */ 0, /* forCCtx */ 1); + + size_t const ldmSpace = ZSTD_ldm_getTableSize(*ldmParams); + size_t const maxNbLdmSeq = ZSTD_ldm_getMaxNbSeq(*ldmParams, blockSize); + size_t const ldmSeqSpace = ldmParams->enableLdm ? + ZSTD_cwksp_aligned_alloc_size(maxNbLdmSeq * sizeof(rawSeq)) : 0; + + + size_t const bufferSpace = ZSTD_cwksp_alloc_size(buffInSize) + + ZSTD_cwksp_alloc_size(buffOutSize); + + size_t const cctxSpace = isStatic ? ZSTD_cwksp_alloc_size(sizeof(ZSTD_CCtx)) : 0; + + size_t const neededSpace = + cctxSpace + + entropySpace + + blockStateSpace + + ldmSpace + + ldmSeqSpace + + matchStateSize + + tokenSpace + + bufferSpace; + + DEBUGLOG(5, "estimate workspace : %u", (U32)neededSpace); + return neededSpace; +} + +size_t ZSTD_estimateCCtxSize_usingCCtxParams(const ZSTD_CCtx_params* params) +{ + ZSTD_compressionParameters const cParams = + ZSTD_getCParamsFromCCtxParams(params, ZSTD_CONTENTSIZE_UNKNOWN, 0, ZSTD_cpm_noAttachDict); + ZSTD_useRowMatchFinderMode_e const useRowMatchFinder = ZSTD_resolveRowMatchFinderMode(params->useRowMatchFinder, + &cParams); + + RETURN_ERROR_IF(params->nbWorkers > 0, GENERIC, "Estimate CCtx size is supported for single-threaded compression only."); + /* estimateCCtxSize is for one-shot compression. So no buffers should + * be needed. However, we still allocate two 0-sized buffers, which can + * take space under ASAN. */ + return ZSTD_estimateCCtxSize_usingCCtxParams_internal( + &cParams, ¶ms->ldmParams, 1, useRowMatchFinder, 0, 0, ZSTD_CONTENTSIZE_UNKNOWN); +} + +size_t ZSTD_estimateCCtxSize_usingCParams(ZSTD_compressionParameters cParams) +{ + ZSTD_CCtx_params initialParams = ZSTD_makeCCtxParamsFromCParams(cParams); + if (ZSTD_rowMatchFinderSupported(cParams.strategy)) { + /* Pick bigger of not using and using row-based matchfinder for greedy and lazy strategies */ + size_t noRowCCtxSize; + size_t rowCCtxSize; + initialParams.useRowMatchFinder = ZSTD_urm_disableRowMatchFinder; + noRowCCtxSize = ZSTD_estimateCCtxSize_usingCCtxParams(&initialParams); + initialParams.useRowMatchFinder = ZSTD_urm_enableRowMatchFinder; + rowCCtxSize = ZSTD_estimateCCtxSize_usingCCtxParams(&initialParams); + return MAX(noRowCCtxSize, rowCCtxSize); + } else { + return ZSTD_estimateCCtxSize_usingCCtxParams(&initialParams); + } +} + +static size_t ZSTD_estimateCCtxSize_internal(int compressionLevel) +{ + int tier = 0; + size_t largestSize = 0; + static const unsigned long long srcSizeTiers[4] = {16 KB, 128 KB, 256 KB, ZSTD_CONTENTSIZE_UNKNOWN}; + for (; tier < 4; ++tier) { + /* Choose the set of cParams for a given level across all srcSizes that give the largest cctxSize */ + ZSTD_compressionParameters const cParams = ZSTD_getCParams_internal(compressionLevel, srcSizeTiers[tier], 0, ZSTD_cpm_noAttachDict); + largestSize = MAX(ZSTD_estimateCCtxSize_usingCParams(cParams), largestSize); + } + return largestSize; +} + +size_t ZSTD_estimateCCtxSize(int compressionLevel) +{ + int level; + size_t memBudget = 0; + for (level=MIN(compressionLevel, 1); level<=compressionLevel; level++) { + /* Ensure monotonically increasing memory usage as compression level increases */ + size_t const newMB = ZSTD_estimateCCtxSize_internal(level); + if (newMB > memBudget) memBudget = newMB; + } + return memBudget; +} + +size_t ZSTD_estimateCStreamSize_usingCCtxParams(const ZSTD_CCtx_params* params) +{ + RETURN_ERROR_IF(params->nbWorkers > 0, GENERIC, "Estimate CCtx size is supported for single-threaded compression only."); + { ZSTD_compressionParameters const cParams = + ZSTD_getCParamsFromCCtxParams(params, ZSTD_CONTENTSIZE_UNKNOWN, 0, ZSTD_cpm_noAttachDict); + size_t const blockSize = MIN(ZSTD_BLOCKSIZE_MAX, (size_t)1 << cParams.windowLog); + size_t const inBuffSize = (params->inBufferMode == ZSTD_bm_buffered) + ? ((size_t)1 << cParams.windowLog) + blockSize + : 0; + size_t const outBuffSize = (params->outBufferMode == ZSTD_bm_buffered) + ? ZSTD_compressBound(blockSize) + 1 + : 0; + ZSTD_useRowMatchFinderMode_e const useRowMatchFinder = ZSTD_resolveRowMatchFinderMode(params->useRowMatchFinder, ¶ms->cParams); + + return ZSTD_estimateCCtxSize_usingCCtxParams_internal( + &cParams, ¶ms->ldmParams, 1, useRowMatchFinder, inBuffSize, outBuffSize, + ZSTD_CONTENTSIZE_UNKNOWN); + } +} + +size_t ZSTD_estimateCStreamSize_usingCParams(ZSTD_compressionParameters cParams) +{ + ZSTD_CCtx_params initialParams = ZSTD_makeCCtxParamsFromCParams(cParams); + if (ZSTD_rowMatchFinderSupported(cParams.strategy)) { + /* Pick bigger of not using and using row-based matchfinder for greedy and lazy strategies */ + size_t noRowCCtxSize; + size_t rowCCtxSize; + initialParams.useRowMatchFinder = ZSTD_urm_disableRowMatchFinder; + noRowCCtxSize = ZSTD_estimateCStreamSize_usingCCtxParams(&initialParams); + initialParams.useRowMatchFinder = ZSTD_urm_enableRowMatchFinder; + rowCCtxSize = ZSTD_estimateCStreamSize_usingCCtxParams(&initialParams); + return MAX(noRowCCtxSize, rowCCtxSize); + } else { + return ZSTD_estimateCStreamSize_usingCCtxParams(&initialParams); + } +} + +static size_t ZSTD_estimateCStreamSize_internal(int compressionLevel) +{ + ZSTD_compressionParameters const cParams = ZSTD_getCParams_internal(compressionLevel, ZSTD_CONTENTSIZE_UNKNOWN, 0, ZSTD_cpm_noAttachDict); + return ZSTD_estimateCStreamSize_usingCParams(cParams); +} + +size_t ZSTD_estimateCStreamSize(int compressionLevel) +{ + int level; + size_t memBudget = 0; + for (level=MIN(compressionLevel, 1); level<=compressionLevel; level++) { + size_t const newMB = ZSTD_estimateCStreamSize_internal(level); + if (newMB > memBudget) memBudget = newMB; + } + return memBudget; +} + +/* ZSTD_getFrameProgression(): + * tells how much data has been consumed (input) and produced (output) for current frame. + * able to count progression inside worker threads (non-blocking mode). + */ +ZSTD_frameProgression ZSTD_getFrameProgression(const ZSTD_CCtx* cctx) +{ +#ifdef ZSTD_MULTITHREAD + if (cctx->appliedParams.nbWorkers > 0) { + return ZSTDMT_getFrameProgression(cctx->mtctx); + } +#endif + { ZSTD_frameProgression fp; + size_t const buffered = (cctx->inBuff == NULL) ? 0 : + cctx->inBuffPos - cctx->inToCompress; + if (buffered) assert(cctx->inBuffPos >= cctx->inToCompress); + assert(buffered <= ZSTD_BLOCKSIZE_MAX); + fp.ingested = cctx->consumedSrcSize + buffered; + fp.consumed = cctx->consumedSrcSize; + fp.produced = cctx->producedCSize; + fp.flushed = cctx->producedCSize; /* simplified; some data might still be left within streaming output buffer */ + fp.currentJobID = 0; + fp.nbActiveWorkers = 0; + return fp; +} } + +/*! ZSTD_toFlushNow() + * Only useful for multithreading scenarios currently (nbWorkers >= 1). + */ +size_t ZSTD_toFlushNow(ZSTD_CCtx* cctx) +{ +#ifdef ZSTD_MULTITHREAD + if (cctx->appliedParams.nbWorkers > 0) { + return ZSTDMT_toFlushNow(cctx->mtctx); + } +#endif + (void)cctx; + return 0; /* over-simplification; could also check if context is currently running in streaming mode, and in which case, report how many bytes are left to be flushed within output buffer */ +} + +static void ZSTD_assertEqualCParams(ZSTD_compressionParameters cParams1, + ZSTD_compressionParameters cParams2) +{ + (void)cParams1; + (void)cParams2; + assert(cParams1.windowLog == cParams2.windowLog); + assert(cParams1.chainLog == cParams2.chainLog); + assert(cParams1.hashLog == cParams2.hashLog); + assert(cParams1.searchLog == cParams2.searchLog); + assert(cParams1.minMatch == cParams2.minMatch); + assert(cParams1.targetLength == cParams2.targetLength); + assert(cParams1.strategy == cParams2.strategy); +} + +void ZSTD_reset_compressedBlockState(ZSTD_compressedBlockState_t* bs) +{ + int i; + for (i = 0; i < ZSTD_REP_NUM; ++i) + bs->rep[i] = repStartValue[i]; + bs->entropy.huf.repeatMode = HUF_repeat_none; + bs->entropy.fse.offcode_repeatMode = FSE_repeat_none; + bs->entropy.fse.matchlength_repeatMode = FSE_repeat_none; + bs->entropy.fse.litlength_repeatMode = FSE_repeat_none; +} + +/*! ZSTD_invalidateMatchState() + * Invalidate all the matches in the match finder tables. + * Requires nextSrc and base to be set (can be NULL). + */ +static void ZSTD_invalidateMatchState(ZSTD_matchState_t* ms) +{ + ZSTD_window_clear(&ms->window); + + ms->nextToUpdate = ms->window.dictLimit; + ms->loadedDictEnd = 0; + ms->opt.litLengthSum = 0; /* force reset of btopt stats */ + ms->dictMatchState = NULL; +} + +/** + * Controls, for this matchState reset, whether the tables need to be cleared / + * prepared for the coming compression (ZSTDcrp_makeClean), or whether the + * tables can be left unclean (ZSTDcrp_leaveDirty), because we know that a + * subsequent operation will overwrite the table space anyways (e.g., copying + * the matchState contents in from a CDict). + */ +typedef enum { + ZSTDcrp_makeClean, + ZSTDcrp_leaveDirty +} ZSTD_compResetPolicy_e; + +/** + * Controls, for this matchState reset, whether indexing can continue where it + * left off (ZSTDirp_continue), or whether it needs to be restarted from zero + * (ZSTDirp_reset). + */ +typedef enum { + ZSTDirp_continue, + ZSTDirp_reset +} ZSTD_indexResetPolicy_e; + +typedef enum { + ZSTD_resetTarget_CDict, + ZSTD_resetTarget_CCtx +} ZSTD_resetTarget_e; + + +static size_t +ZSTD_reset_matchState(ZSTD_matchState_t* ms, + ZSTD_cwksp* ws, + const ZSTD_compressionParameters* cParams, + const ZSTD_useRowMatchFinderMode_e useRowMatchFinder, + const ZSTD_compResetPolicy_e crp, + const ZSTD_indexResetPolicy_e forceResetIndex, + const ZSTD_resetTarget_e forWho) +{ + /* disable chain table allocation for fast or row-based strategies */ + size_t const chainSize = ZSTD_allocateChainTable(cParams->strategy, useRowMatchFinder, + ms->dedicatedDictSearch && (forWho == ZSTD_resetTarget_CDict)) + ? ((size_t)1 << cParams->chainLog) + : 0; + size_t const hSize = ((size_t)1) << cParams->hashLog; + U32 const hashLog3 = ((forWho == ZSTD_resetTarget_CCtx) && cParams->minMatch==3) ? MIN(ZSTD_HASHLOG3_MAX, cParams->windowLog) : 0; + size_t const h3Size = hashLog3 ? ((size_t)1) << hashLog3 : 0; + + DEBUGLOG(4, "reset indices : %u", forceResetIndex == ZSTDirp_reset); + assert(useRowMatchFinder != ZSTD_urm_auto); + if (forceResetIndex == ZSTDirp_reset) { + ZSTD_window_init(&ms->window); + ZSTD_cwksp_mark_tables_dirty(ws); + } + + ms->hashLog3 = hashLog3; + + ZSTD_invalidateMatchState(ms); + + assert(!ZSTD_cwksp_reserve_failed(ws)); /* check that allocation hasn't already failed */ + + ZSTD_cwksp_clear_tables(ws); + + DEBUGLOG(5, "reserving table space"); + /* table Space */ + ms->hashTable = (U32*)ZSTD_cwksp_reserve_table(ws, hSize * sizeof(U32)); + ms->chainTable = (U32*)ZSTD_cwksp_reserve_table(ws, chainSize * sizeof(U32)); + ms->hashTable3 = (U32*)ZSTD_cwksp_reserve_table(ws, h3Size * sizeof(U32)); + RETURN_ERROR_IF(ZSTD_cwksp_reserve_failed(ws), memory_allocation, + "failed a workspace allocation in ZSTD_reset_matchState"); + + DEBUGLOG(4, "reset table : %u", crp!=ZSTDcrp_leaveDirty); + if (crp!=ZSTDcrp_leaveDirty) { + /* reset tables only */ + ZSTD_cwksp_clean_tables(ws); + } + + /* opt parser space */ + if ((forWho == ZSTD_resetTarget_CCtx) && (cParams->strategy >= ZSTD_btopt)) { + DEBUGLOG(4, "reserving optimal parser space"); + ms->opt.litFreq = (unsigned*)ZSTD_cwksp_reserve_aligned(ws, (1<opt.litLengthFreq = (unsigned*)ZSTD_cwksp_reserve_aligned(ws, (MaxLL+1) * sizeof(unsigned)); + ms->opt.matchLengthFreq = (unsigned*)ZSTD_cwksp_reserve_aligned(ws, (MaxML+1) * sizeof(unsigned)); + ms->opt.offCodeFreq = (unsigned*)ZSTD_cwksp_reserve_aligned(ws, (MaxOff+1) * sizeof(unsigned)); + ms->opt.matchTable = (ZSTD_match_t*)ZSTD_cwksp_reserve_aligned(ws, (ZSTD_OPT_NUM+1) * sizeof(ZSTD_match_t)); + ms->opt.priceTable = (ZSTD_optimal_t*)ZSTD_cwksp_reserve_aligned(ws, (ZSTD_OPT_NUM+1) * sizeof(ZSTD_optimal_t)); + } + + if (ZSTD_rowMatchFinderUsed(cParams->strategy, useRowMatchFinder)) { + { /* Row match finder needs an additional table of hashes ("tags") */ + size_t const tagTableSize = hSize*sizeof(U16); + ms->tagTable = (U16*)ZSTD_cwksp_reserve_aligned(ws, tagTableSize); + if (ms->tagTable) ZSTD_memset(ms->tagTable, 0, tagTableSize); + } + { /* Switch to 32-entry rows if searchLog is 5 (or more) */ + U32 const rowLog = cParams->searchLog < 5 ? 4 : 5; + assert(cParams->hashLog > rowLog); + ms->rowHashLog = cParams->hashLog - rowLog; + } + } + + ms->cParams = *cParams; + + RETURN_ERROR_IF(ZSTD_cwksp_reserve_failed(ws), memory_allocation, + "failed a workspace allocation in ZSTD_reset_matchState"); + return 0; +} + +/* ZSTD_indexTooCloseToMax() : + * minor optimization : prefer memset() rather than reduceIndex() + * which is measurably slow in some circumstances (reported for Visual Studio). + * Works when re-using a context for a lot of smallish inputs : + * if all inputs are smaller than ZSTD_INDEXOVERFLOW_MARGIN, + * memset() will be triggered before reduceIndex(). + */ +#define ZSTD_INDEXOVERFLOW_MARGIN (16 MB) +static int ZSTD_indexTooCloseToMax(ZSTD_window_t w) +{ + return (size_t)(w.nextSrc - w.base) > (ZSTD_CURRENT_MAX - ZSTD_INDEXOVERFLOW_MARGIN); +} + +/** ZSTD_dictTooBig(): + * When dictionaries are larger than ZSTD_CHUNKSIZE_MAX they can't be loaded in + * one go generically. So we ensure that in that case we reset the tables to zero, + * so that we can load as much of the dictionary as possible. + */ +static int ZSTD_dictTooBig(size_t const loadedDictSize) +{ + return loadedDictSize > ZSTD_CHUNKSIZE_MAX; +} + +/*! ZSTD_resetCCtx_internal() : + * @param loadedDictSize The size of the dictionary to be loaded + * into the context, if any. If no dictionary is used, or the + * dictionary is being attached / copied, then pass 0. + * note : `params` are assumed fully validated at this stage. + */ +static size_t ZSTD_resetCCtx_internal(ZSTD_CCtx* zc, + ZSTD_CCtx_params const* params, + U64 const pledgedSrcSize, + size_t const loadedDictSize, + ZSTD_compResetPolicy_e const crp, + ZSTD_buffered_policy_e const zbuff) +{ + ZSTD_cwksp* const ws = &zc->workspace; + DEBUGLOG(4, "ZSTD_resetCCtx_internal: pledgedSrcSize=%u, wlog=%u, useRowMatchFinder=%d", + (U32)pledgedSrcSize, params->cParams.windowLog, (int)params->useRowMatchFinder); + assert(!ZSTD_isError(ZSTD_checkCParams(params->cParams))); + + zc->isFirstBlock = 1; + + /* Set applied params early so we can modify them for LDM, + * and point params at the applied params. + */ + zc->appliedParams = *params; + params = &zc->appliedParams; + + assert(params->useRowMatchFinder != ZSTD_urm_auto); + if (params->ldmParams.enableLdm) { + /* Adjust long distance matching parameters */ + ZSTD_ldm_adjustParameters(&zc->appliedParams.ldmParams, ¶ms->cParams); + assert(params->ldmParams.hashLog >= params->ldmParams.bucketSizeLog); + assert(params->ldmParams.hashRateLog < 32); + } + + { size_t const windowSize = MAX(1, (size_t)MIN(((U64)1 << params->cParams.windowLog), pledgedSrcSize)); + size_t const blockSize = MIN(ZSTD_BLOCKSIZE_MAX, windowSize); + U32 const divider = (params->cParams.minMatch==3) ? 3 : 4; + size_t const maxNbSeq = blockSize / divider; + size_t const buffOutSize = (zbuff == ZSTDb_buffered && params->outBufferMode == ZSTD_bm_buffered) + ? ZSTD_compressBound(blockSize) + 1 + : 0; + size_t const buffInSize = (zbuff == ZSTDb_buffered && params->inBufferMode == ZSTD_bm_buffered) + ? windowSize + blockSize + : 0; + size_t const maxNbLdmSeq = ZSTD_ldm_getMaxNbSeq(params->ldmParams, blockSize); + + int const indexTooClose = ZSTD_indexTooCloseToMax(zc->blockState.matchState.window); + int const dictTooBig = ZSTD_dictTooBig(loadedDictSize); + ZSTD_indexResetPolicy_e needsIndexReset = + (indexTooClose || dictTooBig || !zc->initialized) ? ZSTDirp_reset : ZSTDirp_continue; + + size_t const neededSpace = + ZSTD_estimateCCtxSize_usingCCtxParams_internal( + ¶ms->cParams, ¶ms->ldmParams, zc->staticSize != 0, params->useRowMatchFinder, + buffInSize, buffOutSize, pledgedSrcSize); + int resizeWorkspace; + + FORWARD_IF_ERROR(neededSpace, "cctx size estimate failed!"); + + if (!zc->staticSize) ZSTD_cwksp_bump_oversized_duration(ws, 0); + + { /* Check if workspace is large enough, alloc a new one if needed */ + int const workspaceTooSmall = ZSTD_cwksp_sizeof(ws) < neededSpace; + int const workspaceWasteful = ZSTD_cwksp_check_wasteful(ws, neededSpace); + resizeWorkspace = workspaceTooSmall || workspaceWasteful; + DEBUGLOG(4, "Need %zu B workspace", neededSpace); + DEBUGLOG(4, "windowSize: %zu - blockSize: %zu", windowSize, blockSize); + + if (resizeWorkspace) { + DEBUGLOG(4, "Resize workspaceSize from %zuKB to %zuKB", + ZSTD_cwksp_sizeof(ws) >> 10, + neededSpace >> 10); + + RETURN_ERROR_IF(zc->staticSize, memory_allocation, "static cctx : no resize"); + + needsIndexReset = ZSTDirp_reset; + + ZSTD_cwksp_free(ws, zc->customMem); + FORWARD_IF_ERROR(ZSTD_cwksp_create(ws, neededSpace, zc->customMem), ""); + + DEBUGLOG(5, "reserving object space"); + /* Statically sized space. + * entropyWorkspace never moves, + * though prev/next block swap places */ + assert(ZSTD_cwksp_check_available(ws, 2 * sizeof(ZSTD_compressedBlockState_t))); + zc->blockState.prevCBlock = (ZSTD_compressedBlockState_t*) ZSTD_cwksp_reserve_object(ws, sizeof(ZSTD_compressedBlockState_t)); + RETURN_ERROR_IF(zc->blockState.prevCBlock == NULL, memory_allocation, "couldn't allocate prevCBlock"); + zc->blockState.nextCBlock = (ZSTD_compressedBlockState_t*) ZSTD_cwksp_reserve_object(ws, sizeof(ZSTD_compressedBlockState_t)); + RETURN_ERROR_IF(zc->blockState.nextCBlock == NULL, memory_allocation, "couldn't allocate nextCBlock"); + zc->entropyWorkspace = (U32*) ZSTD_cwksp_reserve_object(ws, ENTROPY_WORKSPACE_SIZE); + RETURN_ERROR_IF(zc->blockState.nextCBlock == NULL, memory_allocation, "couldn't allocate entropyWorkspace"); + } } + + ZSTD_cwksp_clear(ws); + + /* init params */ + zc->blockState.matchState.cParams = params->cParams; + zc->pledgedSrcSizePlusOne = pledgedSrcSize+1; + zc->consumedSrcSize = 0; + zc->producedCSize = 0; + if (pledgedSrcSize == ZSTD_CONTENTSIZE_UNKNOWN) + zc->appliedParams.fParams.contentSizeFlag = 0; + DEBUGLOG(4, "pledged content size : %u ; flag : %u", + (unsigned)pledgedSrcSize, zc->appliedParams.fParams.contentSizeFlag); + zc->blockSize = blockSize; + + XXH64_reset(&zc->xxhState, 0); + zc->stage = ZSTDcs_init; + zc->dictID = 0; + zc->dictContentSize = 0; + + ZSTD_reset_compressedBlockState(zc->blockState.prevCBlock); + + /* ZSTD_wildcopy() is used to copy into the literals buffer, + * so we have to oversize the buffer by WILDCOPY_OVERLENGTH bytes. + */ + zc->seqStore.litStart = ZSTD_cwksp_reserve_buffer(ws, blockSize + WILDCOPY_OVERLENGTH); + zc->seqStore.maxNbLit = blockSize; + + /* buffers */ + zc->bufferedPolicy = zbuff; + zc->inBuffSize = buffInSize; + zc->inBuff = (char*)ZSTD_cwksp_reserve_buffer(ws, buffInSize); + zc->outBuffSize = buffOutSize; + zc->outBuff = (char*)ZSTD_cwksp_reserve_buffer(ws, buffOutSize); + + /* ldm bucketOffsets table */ + if (params->ldmParams.enableLdm) { + /* TODO: avoid memset? */ + size_t const numBuckets = + ((size_t)1) << (params->ldmParams.hashLog - + params->ldmParams.bucketSizeLog); + zc->ldmState.bucketOffsets = ZSTD_cwksp_reserve_buffer(ws, numBuckets); + ZSTD_memset(zc->ldmState.bucketOffsets, 0, numBuckets); + } + + /* sequences storage */ + ZSTD_referenceExternalSequences(zc, NULL, 0); + zc->seqStore.maxNbSeq = maxNbSeq; + zc->seqStore.llCode = ZSTD_cwksp_reserve_buffer(ws, maxNbSeq * sizeof(BYTE)); + zc->seqStore.mlCode = ZSTD_cwksp_reserve_buffer(ws, maxNbSeq * sizeof(BYTE)); + zc->seqStore.ofCode = ZSTD_cwksp_reserve_buffer(ws, maxNbSeq * sizeof(BYTE)); + zc->seqStore.sequencesStart = (seqDef*)ZSTD_cwksp_reserve_aligned(ws, maxNbSeq * sizeof(seqDef)); + + FORWARD_IF_ERROR(ZSTD_reset_matchState( + &zc->blockState.matchState, + ws, + ¶ms->cParams, + params->useRowMatchFinder, + crp, + needsIndexReset, + ZSTD_resetTarget_CCtx), ""); + + /* ldm hash table */ + if (params->ldmParams.enableLdm) { + /* TODO: avoid memset? */ + size_t const ldmHSize = ((size_t)1) << params->ldmParams.hashLog; + zc->ldmState.hashTable = (ldmEntry_t*)ZSTD_cwksp_reserve_aligned(ws, ldmHSize * sizeof(ldmEntry_t)); + ZSTD_memset(zc->ldmState.hashTable, 0, ldmHSize * sizeof(ldmEntry_t)); + zc->ldmSequences = (rawSeq*)ZSTD_cwksp_reserve_aligned(ws, maxNbLdmSeq * sizeof(rawSeq)); + zc->maxNbLdmSequences = maxNbLdmSeq; + + ZSTD_window_init(&zc->ldmState.window); + zc->ldmState.loadedDictEnd = 0; + } + + assert(ZSTD_cwksp_estimated_space_within_bounds(ws, neededSpace, resizeWorkspace)); + DEBUGLOG(3, "wksp: finished allocating, %zd bytes remain available", ZSTD_cwksp_available_space(ws)); + + zc->initialized = 1; + + return 0; + } +} + +/* ZSTD_invalidateRepCodes() : + * ensures next compression will not use repcodes from previous block. + * Note : only works with regular variant; + * do not use with extDict variant ! */ +void ZSTD_invalidateRepCodes(ZSTD_CCtx* cctx) { + int i; + for (i=0; iblockState.prevCBlock->rep[i] = 0; + assert(!ZSTD_window_hasExtDict(cctx->blockState.matchState.window)); +} + +/* These are the approximate sizes for each strategy past which copying the + * dictionary tables into the working context is faster than using them + * in-place. + */ +static const size_t attachDictSizeCutoffs[ZSTD_STRATEGY_MAX+1] = { + 8 KB, /* unused */ + 8 KB, /* ZSTD_fast */ + 16 KB, /* ZSTD_dfast */ + 32 KB, /* ZSTD_greedy */ + 32 KB, /* ZSTD_lazy */ + 32 KB, /* ZSTD_lazy2 */ + 32 KB, /* ZSTD_btlazy2 */ + 32 KB, /* ZSTD_btopt */ + 8 KB, /* ZSTD_btultra */ + 8 KB /* ZSTD_btultra2 */ +}; + +static int ZSTD_shouldAttachDict(const ZSTD_CDict* cdict, + const ZSTD_CCtx_params* params, + U64 pledgedSrcSize) +{ + size_t cutoff = attachDictSizeCutoffs[cdict->matchState.cParams.strategy]; + int const dedicatedDictSearch = cdict->matchState.dedicatedDictSearch; + return dedicatedDictSearch + || ( ( pledgedSrcSize <= cutoff + || pledgedSrcSize == ZSTD_CONTENTSIZE_UNKNOWN + || params->attachDictPref == ZSTD_dictForceAttach ) + && params->attachDictPref != ZSTD_dictForceCopy + && !params->forceWindow ); /* dictMatchState isn't correctly + * handled in _enforceMaxDist */ +} + +static size_t +ZSTD_resetCCtx_byAttachingCDict(ZSTD_CCtx* cctx, + const ZSTD_CDict* cdict, + ZSTD_CCtx_params params, + U64 pledgedSrcSize, + ZSTD_buffered_policy_e zbuff) +{ + DEBUGLOG(4, "ZSTD_resetCCtx_byAttachingCDict() pledgedSrcSize=%llu", + (unsigned long long)pledgedSrcSize); + { + ZSTD_compressionParameters adjusted_cdict_cParams = cdict->matchState.cParams; + unsigned const windowLog = params.cParams.windowLog; + assert(windowLog != 0); + /* Resize working context table params for input only, since the dict + * has its own tables. */ + /* pledgedSrcSize == 0 means 0! */ + + if (cdict->matchState.dedicatedDictSearch) { + ZSTD_dedicatedDictSearch_revertCParams(&adjusted_cdict_cParams); + } + + params.cParams = ZSTD_adjustCParams_internal(adjusted_cdict_cParams, pledgedSrcSize, + cdict->dictContentSize, ZSTD_cpm_attachDict); + params.cParams.windowLog = windowLog; + params.useRowMatchFinder = cdict->useRowMatchFinder; /* cdict overrides */ + FORWARD_IF_ERROR(ZSTD_resetCCtx_internal(cctx, ¶ms, pledgedSrcSize, + /* loadedDictSize */ 0, + ZSTDcrp_makeClean, zbuff), ""); + assert(cctx->appliedParams.cParams.strategy == adjusted_cdict_cParams.strategy); + } + + { const U32 cdictEnd = (U32)( cdict->matchState.window.nextSrc + - cdict->matchState.window.base); + const U32 cdictLen = cdictEnd - cdict->matchState.window.dictLimit; + if (cdictLen == 0) { + /* don't even attach dictionaries with no contents */ + DEBUGLOG(4, "skipping attaching empty dictionary"); + } else { + DEBUGLOG(4, "attaching dictionary into context"); + cctx->blockState.matchState.dictMatchState = &cdict->matchState; + + /* prep working match state so dict matches never have negative indices + * when they are translated to the working context's index space. */ + if (cctx->blockState.matchState.window.dictLimit < cdictEnd) { + cctx->blockState.matchState.window.nextSrc = + cctx->blockState.matchState.window.base + cdictEnd; + ZSTD_window_clear(&cctx->blockState.matchState.window); + } + /* loadedDictEnd is expressed within the referential of the active context */ + cctx->blockState.matchState.loadedDictEnd = cctx->blockState.matchState.window.dictLimit; + } } + + cctx->dictID = cdict->dictID; + cctx->dictContentSize = cdict->dictContentSize; + + /* copy block state */ + ZSTD_memcpy(cctx->blockState.prevCBlock, &cdict->cBlockState, sizeof(cdict->cBlockState)); + + return 0; +} + +static size_t ZSTD_resetCCtx_byCopyingCDict(ZSTD_CCtx* cctx, + const ZSTD_CDict* cdict, + ZSTD_CCtx_params params, + U64 pledgedSrcSize, + ZSTD_buffered_policy_e zbuff) +{ + const ZSTD_compressionParameters *cdict_cParams = &cdict->matchState.cParams; + + assert(!cdict->matchState.dedicatedDictSearch); + DEBUGLOG(4, "ZSTD_resetCCtx_byCopyingCDict() pledgedSrcSize=%llu", + (unsigned long long)pledgedSrcSize); + + { unsigned const windowLog = params.cParams.windowLog; + assert(windowLog != 0); + /* Copy only compression parameters related to tables. */ + params.cParams = *cdict_cParams; + params.cParams.windowLog = windowLog; + params.useRowMatchFinder = cdict->useRowMatchFinder; + FORWARD_IF_ERROR(ZSTD_resetCCtx_internal(cctx, ¶ms, pledgedSrcSize, + /* loadedDictSize */ 0, + ZSTDcrp_leaveDirty, zbuff), ""); + assert(cctx->appliedParams.cParams.strategy == cdict_cParams->strategy); + assert(cctx->appliedParams.cParams.hashLog == cdict_cParams->hashLog); + assert(cctx->appliedParams.cParams.chainLog == cdict_cParams->chainLog); + } + + ZSTD_cwksp_mark_tables_dirty(&cctx->workspace); + assert(params.useRowMatchFinder != ZSTD_urm_auto); + + /* copy tables */ + { size_t const chainSize = ZSTD_allocateChainTable(cdict_cParams->strategy, cdict->useRowMatchFinder, 0 /* DDS guaranteed disabled */) + ? ((size_t)1 << cdict_cParams->chainLog) + : 0; + size_t const hSize = (size_t)1 << cdict_cParams->hashLog; + + ZSTD_memcpy(cctx->blockState.matchState.hashTable, + cdict->matchState.hashTable, + hSize * sizeof(U32)); + /* Do not copy cdict's chainTable if cctx has parameters such that it would not use chainTable */ + if (ZSTD_allocateChainTable(cctx->appliedParams.cParams.strategy, cctx->appliedParams.useRowMatchFinder, 0 /* forDDSDict */)) { + ZSTD_memcpy(cctx->blockState.matchState.chainTable, + cdict->matchState.chainTable, + chainSize * sizeof(U32)); + } + /* copy tag table */ + if (ZSTD_rowMatchFinderUsed(cdict_cParams->strategy, cdict->useRowMatchFinder)) { + size_t const tagTableSize = hSize*sizeof(U16); + ZSTD_memcpy(cctx->blockState.matchState.tagTable, + cdict->matchState.tagTable, + tagTableSize); + } + } + + /* Zero the hashTable3, since the cdict never fills it */ + { int const h3log = cctx->blockState.matchState.hashLog3; + size_t const h3Size = h3log ? ((size_t)1 << h3log) : 0; + assert(cdict->matchState.hashLog3 == 0); + ZSTD_memset(cctx->blockState.matchState.hashTable3, 0, h3Size * sizeof(U32)); + } + + ZSTD_cwksp_mark_tables_clean(&cctx->workspace); + + /* copy dictionary offsets */ + { ZSTD_matchState_t const* srcMatchState = &cdict->matchState; + ZSTD_matchState_t* dstMatchState = &cctx->blockState.matchState; + dstMatchState->window = srcMatchState->window; + dstMatchState->nextToUpdate = srcMatchState->nextToUpdate; + dstMatchState->loadedDictEnd= srcMatchState->loadedDictEnd; + } + + cctx->dictID = cdict->dictID; + cctx->dictContentSize = cdict->dictContentSize; + + /* copy block state */ + ZSTD_memcpy(cctx->blockState.prevCBlock, &cdict->cBlockState, sizeof(cdict->cBlockState)); + + return 0; +} + +/* We have a choice between copying the dictionary context into the working + * context, or referencing the dictionary context from the working context + * in-place. We decide here which strategy to use. */ +static size_t ZSTD_resetCCtx_usingCDict(ZSTD_CCtx* cctx, + const ZSTD_CDict* cdict, + const ZSTD_CCtx_params* params, + U64 pledgedSrcSize, + ZSTD_buffered_policy_e zbuff) +{ + + DEBUGLOG(4, "ZSTD_resetCCtx_usingCDict (pledgedSrcSize=%u)", + (unsigned)pledgedSrcSize); + + if (ZSTD_shouldAttachDict(cdict, params, pledgedSrcSize)) { + return ZSTD_resetCCtx_byAttachingCDict( + cctx, cdict, *params, pledgedSrcSize, zbuff); + } else { + return ZSTD_resetCCtx_byCopyingCDict( + cctx, cdict, *params, pledgedSrcSize, zbuff); + } +} + +/*! ZSTD_copyCCtx_internal() : + * Duplicate an existing context `srcCCtx` into another one `dstCCtx`. + * Only works during stage ZSTDcs_init (i.e. after creation, but before first call to ZSTD_compressContinue()). + * The "context", in this case, refers to the hash and chain tables, + * entropy tables, and dictionary references. + * `windowLog` value is enforced if != 0, otherwise value is copied from srcCCtx. + * @return : 0, or an error code */ +static size_t ZSTD_copyCCtx_internal(ZSTD_CCtx* dstCCtx, + const ZSTD_CCtx* srcCCtx, + ZSTD_frameParameters fParams, + U64 pledgedSrcSize, + ZSTD_buffered_policy_e zbuff) +{ + RETURN_ERROR_IF(srcCCtx->stage!=ZSTDcs_init, stage_wrong, + "Can't copy a ctx that's not in init stage."); + DEBUGLOG(5, "ZSTD_copyCCtx_internal"); + ZSTD_memcpy(&dstCCtx->customMem, &srcCCtx->customMem, sizeof(ZSTD_customMem)); + { ZSTD_CCtx_params params = dstCCtx->requestedParams; + /* Copy only compression parameters related to tables. */ + params.cParams = srcCCtx->appliedParams.cParams; + assert(srcCCtx->appliedParams.useRowMatchFinder != ZSTD_urm_auto); + params.useRowMatchFinder = srcCCtx->appliedParams.useRowMatchFinder; + params.fParams = fParams; + ZSTD_resetCCtx_internal(dstCCtx, ¶ms, pledgedSrcSize, + /* loadedDictSize */ 0, + ZSTDcrp_leaveDirty, zbuff); + assert(dstCCtx->appliedParams.cParams.windowLog == srcCCtx->appliedParams.cParams.windowLog); + assert(dstCCtx->appliedParams.cParams.strategy == srcCCtx->appliedParams.cParams.strategy); + assert(dstCCtx->appliedParams.cParams.hashLog == srcCCtx->appliedParams.cParams.hashLog); + assert(dstCCtx->appliedParams.cParams.chainLog == srcCCtx->appliedParams.cParams.chainLog); + assert(dstCCtx->blockState.matchState.hashLog3 == srcCCtx->blockState.matchState.hashLog3); + } + + ZSTD_cwksp_mark_tables_dirty(&dstCCtx->workspace); + + /* copy tables */ + { size_t const chainSize = ZSTD_allocateChainTable(srcCCtx->appliedParams.cParams.strategy, + srcCCtx->appliedParams.useRowMatchFinder, + 0 /* forDDSDict */) + ? ((size_t)1 << srcCCtx->appliedParams.cParams.chainLog) + : 0; + size_t const hSize = (size_t)1 << srcCCtx->appliedParams.cParams.hashLog; + int const h3log = srcCCtx->blockState.matchState.hashLog3; + size_t const h3Size = h3log ? ((size_t)1 << h3log) : 0; + + ZSTD_memcpy(dstCCtx->blockState.matchState.hashTable, + srcCCtx->blockState.matchState.hashTable, + hSize * sizeof(U32)); + ZSTD_memcpy(dstCCtx->blockState.matchState.chainTable, + srcCCtx->blockState.matchState.chainTable, + chainSize * sizeof(U32)); + ZSTD_memcpy(dstCCtx->blockState.matchState.hashTable3, + srcCCtx->blockState.matchState.hashTable3, + h3Size * sizeof(U32)); + } + + ZSTD_cwksp_mark_tables_clean(&dstCCtx->workspace); + + /* copy dictionary offsets */ + { + const ZSTD_matchState_t* srcMatchState = &srcCCtx->blockState.matchState; + ZSTD_matchState_t* dstMatchState = &dstCCtx->blockState.matchState; + dstMatchState->window = srcMatchState->window; + dstMatchState->nextToUpdate = srcMatchState->nextToUpdate; + dstMatchState->loadedDictEnd= srcMatchState->loadedDictEnd; + } + dstCCtx->dictID = srcCCtx->dictID; + dstCCtx->dictContentSize = srcCCtx->dictContentSize; + + /* copy block state */ + ZSTD_memcpy(dstCCtx->blockState.prevCBlock, srcCCtx->blockState.prevCBlock, sizeof(*srcCCtx->blockState.prevCBlock)); + + return 0; +} + +/*! ZSTD_copyCCtx() : + * Duplicate an existing context `srcCCtx` into another one `dstCCtx`. + * Only works during stage ZSTDcs_init (i.e. after creation, but before first call to ZSTD_compressContinue()). + * pledgedSrcSize==0 means "unknown". +* @return : 0, or an error code */ +size_t ZSTD_copyCCtx(ZSTD_CCtx* dstCCtx, const ZSTD_CCtx* srcCCtx, unsigned long long pledgedSrcSize) +{ + ZSTD_frameParameters fParams = { 1 /*content*/, 0 /*checksum*/, 0 /*noDictID*/ }; + ZSTD_buffered_policy_e const zbuff = srcCCtx->bufferedPolicy; + ZSTD_STATIC_ASSERT((U32)ZSTDb_buffered==1); + if (pledgedSrcSize==0) pledgedSrcSize = ZSTD_CONTENTSIZE_UNKNOWN; + fParams.contentSizeFlag = (pledgedSrcSize != ZSTD_CONTENTSIZE_UNKNOWN); + + return ZSTD_copyCCtx_internal(dstCCtx, srcCCtx, + fParams, pledgedSrcSize, + zbuff); +} + + +#define ZSTD_ROWSIZE 16 +/*! ZSTD_reduceTable() : + * reduce table indexes by `reducerValue`, or squash to zero. + * PreserveMark preserves "unsorted mark" for btlazy2 strategy. + * It must be set to a clear 0/1 value, to remove branch during inlining. + * Presume table size is a multiple of ZSTD_ROWSIZE + * to help auto-vectorization */ +FORCE_INLINE_TEMPLATE void +ZSTD_reduceTable_internal (U32* const table, U32 const size, U32 const reducerValue, int const preserveMark) +{ + int const nbRows = (int)size / ZSTD_ROWSIZE; + int cellNb = 0; + int rowNb; + assert((size & (ZSTD_ROWSIZE-1)) == 0); /* multiple of ZSTD_ROWSIZE */ + assert(size < (1U<<31)); /* can be casted to int */ + +#if ZSTD_MEMORY_SANITIZER && !defined (ZSTD_MSAN_DONT_POISON_WORKSPACE) + /* To validate that the table re-use logic is sound, and that we don't + * access table space that we haven't cleaned, we re-"poison" the table + * space every time we mark it dirty. + * + * This function however is intended to operate on those dirty tables and + * re-clean them. So when this function is used correctly, we can unpoison + * the memory it operated on. This introduces a blind spot though, since + * if we now try to operate on __actually__ poisoned memory, we will not + * detect that. */ + __msan_unpoison(table, size * sizeof(U32)); +#endif + + for (rowNb=0 ; rowNb < nbRows ; rowNb++) { + int column; + for (column=0; columncParams.hashLog; + ZSTD_reduceTable(ms->hashTable, hSize, reducerValue); + } + + if (ZSTD_allocateChainTable(params->cParams.strategy, params->useRowMatchFinder, (U32)ms->dedicatedDictSearch)) { + U32 const chainSize = (U32)1 << params->cParams.chainLog; + if (params->cParams.strategy == ZSTD_btlazy2) + ZSTD_reduceTable_btlazy2(ms->chainTable, chainSize, reducerValue); + else + ZSTD_reduceTable(ms->chainTable, chainSize, reducerValue); + } + + if (ms->hashLog3) { + U32 const h3Size = (U32)1 << ms->hashLog3; + ZSTD_reduceTable(ms->hashTable3, h3Size, reducerValue); + } +} + + +/*-******************************************************* +* Block entropic compression +*********************************************************/ + +/* See doc/zstd_compression_format.md for detailed format description */ + +void ZSTD_seqToCodes(const seqStore_t* seqStorePtr) +{ + const seqDef* const sequences = seqStorePtr->sequencesStart; + BYTE* const llCodeTable = seqStorePtr->llCode; + BYTE* const ofCodeTable = seqStorePtr->ofCode; + BYTE* const mlCodeTable = seqStorePtr->mlCode; + U32 const nbSeq = (U32)(seqStorePtr->sequences - seqStorePtr->sequencesStart); + U32 u; + assert(nbSeq <= seqStorePtr->maxNbSeq); + for (u=0; ulongLengthType==ZSTD_llt_literalLength) + llCodeTable[seqStorePtr->longLengthPos] = MaxLL; + if (seqStorePtr->longLengthType==ZSTD_llt_matchLength) + mlCodeTable[seqStorePtr->longLengthPos] = MaxML; +} + +/* ZSTD_useTargetCBlockSize(): + * Returns if target compressed block size param is being used. + * If used, compression will do best effort to make a compressed block size to be around targetCBlockSize. + * Returns 1 if true, 0 otherwise. */ +static int ZSTD_useTargetCBlockSize(const ZSTD_CCtx_params* cctxParams) +{ + DEBUGLOG(5, "ZSTD_useTargetCBlockSize (targetCBlockSize=%zu)", cctxParams->targetCBlockSize); + return (cctxParams->targetCBlockSize != 0); +} + +/* ZSTD_blockSplitterEnabled(): + * Returns if block splitting param is being used + * If used, compression will do best effort to split a block in order to improve compression ratio. + * Returns 1 if true, 0 otherwise. */ +static int ZSTD_blockSplitterEnabled(ZSTD_CCtx_params* cctxParams) +{ + DEBUGLOG(5, "ZSTD_blockSplitterEnabled(splitBlocks=%d)", cctxParams->splitBlocks); + return (cctxParams->splitBlocks != 0); +} + +/* Type returned by ZSTD_buildSequencesStatistics containing finalized symbol encoding types + * and size of the sequences statistics + */ +typedef struct { + U32 LLtype; + U32 Offtype; + U32 MLtype; + size_t size; + size_t lastCountSize; /* Accounts for bug in 1.3.4. More detail in ZSTD_entropyCompressSeqStore_internal() */ +} ZSTD_symbolEncodingTypeStats_t; + +/* ZSTD_buildSequencesStatistics(): + * Returns a ZSTD_symbolEncodingTypeStats_t, or a zstd error code in the `size` field. + * Modifies `nextEntropy` to have the appropriate values as a side effect. + * nbSeq must be greater than 0. + * + * entropyWkspSize must be of size at least ENTROPY_WORKSPACE_SIZE - (MaxSeq + 1)*sizeof(U32) + */ +static ZSTD_symbolEncodingTypeStats_t +ZSTD_buildSequencesStatistics(seqStore_t* seqStorePtr, size_t nbSeq, + const ZSTD_fseCTables_t* prevEntropy, ZSTD_fseCTables_t* nextEntropy, + BYTE* dst, const BYTE* const dstEnd, + ZSTD_strategy strategy, unsigned* countWorkspace, + void* entropyWorkspace, size_t entropyWkspSize) { + BYTE* const ostart = dst; + const BYTE* const oend = dstEnd; + BYTE* op = ostart; + FSE_CTable* CTable_LitLength = nextEntropy->litlengthCTable; + FSE_CTable* CTable_OffsetBits = nextEntropy->offcodeCTable; + FSE_CTable* CTable_MatchLength = nextEntropy->matchlengthCTable; + const BYTE* const ofCodeTable = seqStorePtr->ofCode; + const BYTE* const llCodeTable = seqStorePtr->llCode; + const BYTE* const mlCodeTable = seqStorePtr->mlCode; + ZSTD_symbolEncodingTypeStats_t stats; + + stats.lastCountSize = 0; + /* convert length/distances into codes */ + ZSTD_seqToCodes(seqStorePtr); + assert(op <= oend); + assert(nbSeq != 0); /* ZSTD_selectEncodingType() divides by nbSeq */ + /* build CTable for Literal Lengths */ + { unsigned max = MaxLL; + size_t const mostFrequent = HIST_countFast_wksp(countWorkspace, &max, llCodeTable, nbSeq, entropyWorkspace, entropyWkspSize); /* can't fail */ + DEBUGLOG(5, "Building LL table"); + nextEntropy->litlength_repeatMode = prevEntropy->litlength_repeatMode; + stats.LLtype = ZSTD_selectEncodingType(&nextEntropy->litlength_repeatMode, + countWorkspace, max, mostFrequent, nbSeq, + LLFSELog, prevEntropy->litlengthCTable, + LL_defaultNorm, LL_defaultNormLog, + ZSTD_defaultAllowed, strategy); + assert(set_basic < set_compressed && set_rle < set_compressed); + assert(!(stats.LLtype < set_compressed && nextEntropy->litlength_repeatMode != FSE_repeat_none)); /* We don't copy tables */ + { size_t const countSize = ZSTD_buildCTable( + op, (size_t)(oend - op), + CTable_LitLength, LLFSELog, (symbolEncodingType_e)stats.LLtype, + countWorkspace, max, llCodeTable, nbSeq, + LL_defaultNorm, LL_defaultNormLog, MaxLL, + prevEntropy->litlengthCTable, + sizeof(prevEntropy->litlengthCTable), + entropyWorkspace, entropyWkspSize); + if (ZSTD_isError(countSize)) { + DEBUGLOG(3, "ZSTD_buildCTable for LitLens failed"); + stats.size = countSize; + return stats; + } + if (stats.LLtype == set_compressed) + stats.lastCountSize = countSize; + op += countSize; + assert(op <= oend); + } } + /* build CTable for Offsets */ + { unsigned max = MaxOff; + size_t const mostFrequent = HIST_countFast_wksp( + countWorkspace, &max, ofCodeTable, nbSeq, entropyWorkspace, entropyWkspSize); /* can't fail */ + /* We can only use the basic table if max <= DefaultMaxOff, otherwise the offsets are too large */ + ZSTD_defaultPolicy_e const defaultPolicy = (max <= DefaultMaxOff) ? ZSTD_defaultAllowed : ZSTD_defaultDisallowed; + DEBUGLOG(5, "Building OF table"); + nextEntropy->offcode_repeatMode = prevEntropy->offcode_repeatMode; + stats.Offtype = ZSTD_selectEncodingType(&nextEntropy->offcode_repeatMode, + countWorkspace, max, mostFrequent, nbSeq, + OffFSELog, prevEntropy->offcodeCTable, + OF_defaultNorm, OF_defaultNormLog, + defaultPolicy, strategy); + assert(!(stats.Offtype < set_compressed && nextEntropy->offcode_repeatMode != FSE_repeat_none)); /* We don't copy tables */ + { size_t const countSize = ZSTD_buildCTable( + op, (size_t)(oend - op), + CTable_OffsetBits, OffFSELog, (symbolEncodingType_e)stats.Offtype, + countWorkspace, max, ofCodeTable, nbSeq, + OF_defaultNorm, OF_defaultNormLog, DefaultMaxOff, + prevEntropy->offcodeCTable, + sizeof(prevEntropy->offcodeCTable), + entropyWorkspace, entropyWkspSize); + if (ZSTD_isError(countSize)) { + DEBUGLOG(3, "ZSTD_buildCTable for Offsets failed"); + stats.size = countSize; + return stats; + } + if (stats.Offtype == set_compressed) + stats.lastCountSize = countSize; + op += countSize; + assert(op <= oend); + } } + /* build CTable for MatchLengths */ + { unsigned max = MaxML; + size_t const mostFrequent = HIST_countFast_wksp( + countWorkspace, &max, mlCodeTable, nbSeq, entropyWorkspace, entropyWkspSize); /* can't fail */ + DEBUGLOG(5, "Building ML table (remaining space : %i)", (int)(oend-op)); + nextEntropy->matchlength_repeatMode = prevEntropy->matchlength_repeatMode; + stats.MLtype = ZSTD_selectEncodingType(&nextEntropy->matchlength_repeatMode, + countWorkspace, max, mostFrequent, nbSeq, + MLFSELog, prevEntropy->matchlengthCTable, + ML_defaultNorm, ML_defaultNormLog, + ZSTD_defaultAllowed, strategy); + assert(!(stats.MLtype < set_compressed && nextEntropy->matchlength_repeatMode != FSE_repeat_none)); /* We don't copy tables */ + { size_t const countSize = ZSTD_buildCTable( + op, (size_t)(oend - op), + CTable_MatchLength, MLFSELog, (symbolEncodingType_e)stats.MLtype, + countWorkspace, max, mlCodeTable, nbSeq, + ML_defaultNorm, ML_defaultNormLog, MaxML, + prevEntropy->matchlengthCTable, + sizeof(prevEntropy->matchlengthCTable), + entropyWorkspace, entropyWkspSize); + if (ZSTD_isError(countSize)) { + DEBUGLOG(3, "ZSTD_buildCTable for MatchLengths failed"); + stats.size = countSize; + return stats; + } + if (stats.MLtype == set_compressed) + stats.lastCountSize = countSize; + op += countSize; + assert(op <= oend); + } } + stats.size = (size_t)(op-ostart); + return stats; +} + +/* ZSTD_entropyCompressSeqStore_internal(): + * compresses both literals and sequences + * Returns compressed size of block, or a zstd error. + */ +MEM_STATIC size_t +ZSTD_entropyCompressSeqStore_internal(seqStore_t* seqStorePtr, + const ZSTD_entropyCTables_t* prevEntropy, + ZSTD_entropyCTables_t* nextEntropy, + const ZSTD_CCtx_params* cctxParams, + void* dst, size_t dstCapacity, + void* entropyWorkspace, size_t entropyWkspSize, + const int bmi2) +{ + const int longOffsets = cctxParams->cParams.windowLog > STREAM_ACCUMULATOR_MIN; + ZSTD_strategy const strategy = cctxParams->cParams.strategy; + unsigned* count = (unsigned*)entropyWorkspace; + FSE_CTable* CTable_LitLength = nextEntropy->fse.litlengthCTable; + FSE_CTable* CTable_OffsetBits = nextEntropy->fse.offcodeCTable; + FSE_CTable* CTable_MatchLength = nextEntropy->fse.matchlengthCTable; + const seqDef* const sequences = seqStorePtr->sequencesStart; + const size_t nbSeq = seqStorePtr->sequences - seqStorePtr->sequencesStart; + const BYTE* const ofCodeTable = seqStorePtr->ofCode; + const BYTE* const llCodeTable = seqStorePtr->llCode; + const BYTE* const mlCodeTable = seqStorePtr->mlCode; + BYTE* const ostart = (BYTE*)dst; + BYTE* const oend = ostart + dstCapacity; + BYTE* op = ostart; + size_t lastCountSize; + + entropyWorkspace = count + (MaxSeq + 1); + entropyWkspSize -= (MaxSeq + 1) * sizeof(*count); + + DEBUGLOG(4, "ZSTD_entropyCompressSeqStore_internal (nbSeq=%zu)", nbSeq); + ZSTD_STATIC_ASSERT(HUF_WORKSPACE_SIZE >= (1<= HUF_WORKSPACE_SIZE); + + /* Compress literals */ + { const BYTE* const literals = seqStorePtr->litStart; + size_t const litSize = (size_t)(seqStorePtr->lit - literals); + size_t const cSize = ZSTD_compressLiterals( + &prevEntropy->huf, &nextEntropy->huf, + cctxParams->cParams.strategy, + ZSTD_disableLiteralsCompression(cctxParams), + op, dstCapacity, + literals, litSize, + entropyWorkspace, entropyWkspSize, + bmi2); + FORWARD_IF_ERROR(cSize, "ZSTD_compressLiterals failed"); + assert(cSize <= dstCapacity); + op += cSize; + } + + /* Sequences Header */ + RETURN_ERROR_IF((oend-op) < 3 /*max nbSeq Size*/ + 1 /*seqHead*/, + dstSize_tooSmall, "Can't fit seq hdr in output buf!"); + if (nbSeq < 128) { + *op++ = (BYTE)nbSeq; + } else if (nbSeq < LONGNBSEQ) { + op[0] = (BYTE)((nbSeq>>8) + 0x80); + op[1] = (BYTE)nbSeq; + op+=2; + } else { + op[0]=0xFF; + MEM_writeLE16(op+1, (U16)(nbSeq - LONGNBSEQ)); + op+=3; + } + assert(op <= oend); + if (nbSeq==0) { + /* Copy the old tables over as if we repeated them */ + ZSTD_memcpy(&nextEntropy->fse, &prevEntropy->fse, sizeof(prevEntropy->fse)); + return (size_t)(op - ostart); + } + { + ZSTD_symbolEncodingTypeStats_t stats; + BYTE* seqHead = op++; + /* build stats for sequences */ + stats = ZSTD_buildSequencesStatistics(seqStorePtr, nbSeq, + &prevEntropy->fse, &nextEntropy->fse, + op, oend, + strategy, count, + entropyWorkspace, entropyWkspSize); + FORWARD_IF_ERROR(stats.size, "ZSTD_buildSequencesStatistics failed!"); + *seqHead = (BYTE)((stats.LLtype<<6) + (stats.Offtype<<4) + (stats.MLtype<<2)); + lastCountSize = stats.lastCountSize; + op += stats.size; + } + + { size_t const bitstreamSize = ZSTD_encodeSequences( + op, (size_t)(oend - op), + CTable_MatchLength, mlCodeTable, + CTable_OffsetBits, ofCodeTable, + CTable_LitLength, llCodeTable, + sequences, nbSeq, + longOffsets, bmi2); + FORWARD_IF_ERROR(bitstreamSize, "ZSTD_encodeSequences failed"); + op += bitstreamSize; + assert(op <= oend); + /* zstd versions <= 1.3.4 mistakenly report corruption when + * FSE_readNCount() receives a buffer < 4 bytes. + * Fixed by https://github.com/facebook/zstd/pull/1146. + * This can happen when the last set_compressed table present is 2 + * bytes and the bitstream is only one byte. + * In this exceedingly rare case, we will simply emit an uncompressed + * block, since it isn't worth optimizing. + */ + if (lastCountSize && (lastCountSize + bitstreamSize) < 4) { + /* lastCountSize >= 2 && bitstreamSize > 0 ==> lastCountSize == 3 */ + assert(lastCountSize + bitstreamSize == 3); + DEBUGLOG(5, "Avoiding bug in zstd decoder in versions <= 1.3.4 by " + "emitting an uncompressed block."); + return 0; + } + } + + DEBUGLOG(5, "compressed block size : %u", (unsigned)(op - ostart)); + return (size_t)(op - ostart); +} + +MEM_STATIC size_t +ZSTD_entropyCompressSeqStore(seqStore_t* seqStorePtr, + const ZSTD_entropyCTables_t* prevEntropy, + ZSTD_entropyCTables_t* nextEntropy, + const ZSTD_CCtx_params* cctxParams, + void* dst, size_t dstCapacity, + size_t srcSize, + void* entropyWorkspace, size_t entropyWkspSize, + int bmi2) +{ + size_t const cSize = ZSTD_entropyCompressSeqStore_internal( + seqStorePtr, prevEntropy, nextEntropy, cctxParams, + dst, dstCapacity, + entropyWorkspace, entropyWkspSize, bmi2); + if (cSize == 0) return 0; + /* When srcSize <= dstCapacity, there is enough space to write a raw uncompressed block. + * Since we ran out of space, block must be not compressible, so fall back to raw uncompressed block. + */ + if ((cSize == ERROR(dstSize_tooSmall)) & (srcSize <= dstCapacity)) + return 0; /* block not compressed */ + FORWARD_IF_ERROR(cSize, "ZSTD_entropyCompressSeqStore_internal failed"); + + /* Check compressibility */ + { size_t const maxCSize = srcSize - ZSTD_minGain(srcSize, cctxParams->cParams.strategy); + if (cSize >= maxCSize) return 0; /* block not compressed */ + } + DEBUGLOG(4, "ZSTD_entropyCompressSeqStore() cSize: %zu", cSize); + return cSize; +} + +/* ZSTD_selectBlockCompressor() : + * Not static, but internal use only (used by long distance matcher) + * assumption : strat is a valid strategy */ +ZSTD_blockCompressor ZSTD_selectBlockCompressor(ZSTD_strategy strat, ZSTD_useRowMatchFinderMode_e useRowMatchFinder, ZSTD_dictMode_e dictMode) +{ + static const ZSTD_blockCompressor blockCompressor[4][ZSTD_STRATEGY_MAX+1] = { + { ZSTD_compressBlock_fast /* default for 0 */, + ZSTD_compressBlock_fast, + ZSTD_compressBlock_doubleFast, + ZSTD_compressBlock_greedy, + ZSTD_compressBlock_lazy, + ZSTD_compressBlock_lazy2, + ZSTD_compressBlock_btlazy2, + ZSTD_compressBlock_btopt, + ZSTD_compressBlock_btultra, + ZSTD_compressBlock_btultra2 }, + { ZSTD_compressBlock_fast_extDict /* default for 0 */, + ZSTD_compressBlock_fast_extDict, + ZSTD_compressBlock_doubleFast_extDict, + ZSTD_compressBlock_greedy_extDict, + ZSTD_compressBlock_lazy_extDict, + ZSTD_compressBlock_lazy2_extDict, + ZSTD_compressBlock_btlazy2_extDict, + ZSTD_compressBlock_btopt_extDict, + ZSTD_compressBlock_btultra_extDict, + ZSTD_compressBlock_btultra_extDict }, + { ZSTD_compressBlock_fast_dictMatchState /* default for 0 */, + ZSTD_compressBlock_fast_dictMatchState, + ZSTD_compressBlock_doubleFast_dictMatchState, + ZSTD_compressBlock_greedy_dictMatchState, + ZSTD_compressBlock_lazy_dictMatchState, + ZSTD_compressBlock_lazy2_dictMatchState, + ZSTD_compressBlock_btlazy2_dictMatchState, + ZSTD_compressBlock_btopt_dictMatchState, + ZSTD_compressBlock_btultra_dictMatchState, + ZSTD_compressBlock_btultra_dictMatchState }, + { NULL /* default for 0 */, + NULL, + NULL, + ZSTD_compressBlock_greedy_dedicatedDictSearch, + ZSTD_compressBlock_lazy_dedicatedDictSearch, + ZSTD_compressBlock_lazy2_dedicatedDictSearch, + NULL, + NULL, + NULL, + NULL } + }; + ZSTD_blockCompressor selectedCompressor; + ZSTD_STATIC_ASSERT((unsigned)ZSTD_fast == 1); + + assert(ZSTD_cParam_withinBounds(ZSTD_c_strategy, strat)); + DEBUGLOG(4, "Selected block compressor: dictMode=%d strat=%d rowMatchfinder=%d", (int)dictMode, (int)strat, (int)useRowMatchFinder); + if (ZSTD_rowMatchFinderUsed(strat, useRowMatchFinder)) { + static const ZSTD_blockCompressor rowBasedBlockCompressors[4][3] = { + { ZSTD_compressBlock_greedy_row, + ZSTD_compressBlock_lazy_row, + ZSTD_compressBlock_lazy2_row }, + { ZSTD_compressBlock_greedy_extDict_row, + ZSTD_compressBlock_lazy_extDict_row, + ZSTD_compressBlock_lazy2_extDict_row }, + { ZSTD_compressBlock_greedy_dictMatchState_row, + ZSTD_compressBlock_lazy_dictMatchState_row, + ZSTD_compressBlock_lazy2_dictMatchState_row }, + { ZSTD_compressBlock_greedy_dedicatedDictSearch_row, + ZSTD_compressBlock_lazy_dedicatedDictSearch_row, + ZSTD_compressBlock_lazy2_dedicatedDictSearch_row } + }; + DEBUGLOG(4, "Selecting a row-based matchfinder"); + assert(useRowMatchFinder != ZSTD_urm_auto); + selectedCompressor = rowBasedBlockCompressors[(int)dictMode][(int)strat - (int)ZSTD_greedy]; + } else { + selectedCompressor = blockCompressor[(int)dictMode][(int)strat]; + } + assert(selectedCompressor != NULL); + return selectedCompressor; +} + +static void ZSTD_storeLastLiterals(seqStore_t* seqStorePtr, + const BYTE* anchor, size_t lastLLSize) +{ + ZSTD_memcpy(seqStorePtr->lit, anchor, lastLLSize); + seqStorePtr->lit += lastLLSize; +} + +void ZSTD_resetSeqStore(seqStore_t* ssPtr) +{ + ssPtr->lit = ssPtr->litStart; + ssPtr->sequences = ssPtr->sequencesStart; + ssPtr->longLengthType = ZSTD_llt_none; +} + +typedef enum { ZSTDbss_compress, ZSTDbss_noCompress } ZSTD_buildSeqStore_e; + +static size_t ZSTD_buildSeqStore(ZSTD_CCtx* zc, const void* src, size_t srcSize) +{ + ZSTD_matchState_t* const ms = &zc->blockState.matchState; + DEBUGLOG(5, "ZSTD_buildSeqStore (srcSize=%zu)", srcSize); + assert(srcSize <= ZSTD_BLOCKSIZE_MAX); + /* Assert that we have correctly flushed the ctx params into the ms's copy */ + ZSTD_assertEqualCParams(zc->appliedParams.cParams, ms->cParams); + if (srcSize < MIN_CBLOCK_SIZE+ZSTD_blockHeaderSize+1) { + if (zc->appliedParams.cParams.strategy >= ZSTD_btopt) { + ZSTD_ldm_skipRawSeqStoreBytes(&zc->externSeqStore, srcSize); + } else { + ZSTD_ldm_skipSequences(&zc->externSeqStore, srcSize, zc->appliedParams.cParams.minMatch); + } + return ZSTDbss_noCompress; /* don't even attempt compression below a certain srcSize */ + } + ZSTD_resetSeqStore(&(zc->seqStore)); + /* required for optimal parser to read stats from dictionary */ + ms->opt.symbolCosts = &zc->blockState.prevCBlock->entropy; + /* tell the optimal parser how we expect to compress literals */ + ms->opt.literalCompressionMode = zc->appliedParams.literalCompressionMode; + /* a gap between an attached dict and the current window is not safe, + * they must remain adjacent, + * and when that stops being the case, the dict must be unset */ + assert(ms->dictMatchState == NULL || ms->loadedDictEnd == ms->window.dictLimit); + + /* limited update after a very long match */ + { const BYTE* const base = ms->window.base; + const BYTE* const istart = (const BYTE*)src; + const U32 curr = (U32)(istart-base); + if (sizeof(ptrdiff_t)==8) assert(istart - base < (ptrdiff_t)(U32)(-1)); /* ensure no overflow */ + if (curr > ms->nextToUpdate + 384) + ms->nextToUpdate = curr - MIN(192, (U32)(curr - ms->nextToUpdate - 384)); + } + + /* select and store sequences */ + { ZSTD_dictMode_e const dictMode = ZSTD_matchState_dictMode(ms); + size_t lastLLSize; + { int i; + for (i = 0; i < ZSTD_REP_NUM; ++i) + zc->blockState.nextCBlock->rep[i] = zc->blockState.prevCBlock->rep[i]; + } + if (zc->externSeqStore.pos < zc->externSeqStore.size) { + assert(!zc->appliedParams.ldmParams.enableLdm); + /* Updates ldmSeqStore.pos */ + lastLLSize = + ZSTD_ldm_blockCompress(&zc->externSeqStore, + ms, &zc->seqStore, + zc->blockState.nextCBlock->rep, + zc->appliedParams.useRowMatchFinder, + src, srcSize); + assert(zc->externSeqStore.pos <= zc->externSeqStore.size); + } else if (zc->appliedParams.ldmParams.enableLdm) { + rawSeqStore_t ldmSeqStore = kNullRawSeqStore; + + ldmSeqStore.seq = zc->ldmSequences; + ldmSeqStore.capacity = zc->maxNbLdmSequences; + /* Updates ldmSeqStore.size */ + FORWARD_IF_ERROR(ZSTD_ldm_generateSequences(&zc->ldmState, &ldmSeqStore, + &zc->appliedParams.ldmParams, + src, srcSize), ""); + /* Updates ldmSeqStore.pos */ + lastLLSize = + ZSTD_ldm_blockCompress(&ldmSeqStore, + ms, &zc->seqStore, + zc->blockState.nextCBlock->rep, + zc->appliedParams.useRowMatchFinder, + src, srcSize); + assert(ldmSeqStore.pos == ldmSeqStore.size); + } else { /* not long range mode */ + ZSTD_blockCompressor const blockCompressor = ZSTD_selectBlockCompressor(zc->appliedParams.cParams.strategy, + zc->appliedParams.useRowMatchFinder, + dictMode); + ms->ldmSeqStore = NULL; + lastLLSize = blockCompressor(ms, &zc->seqStore, zc->blockState.nextCBlock->rep, src, srcSize); + } + { const BYTE* const lastLiterals = (const BYTE*)src + srcSize - lastLLSize; + ZSTD_storeLastLiterals(&zc->seqStore, lastLiterals, lastLLSize); + } } + return ZSTDbss_compress; +} + +static void ZSTD_copyBlockSequences(ZSTD_CCtx* zc) +{ + const seqStore_t* seqStore = ZSTD_getSeqStore(zc); + const seqDef* seqStoreSeqs = seqStore->sequencesStart; + size_t seqStoreSeqSize = seqStore->sequences - seqStoreSeqs; + size_t seqStoreLiteralsSize = (size_t)(seqStore->lit - seqStore->litStart); + size_t literalsRead = 0; + size_t lastLLSize; + + ZSTD_Sequence* outSeqs = &zc->seqCollector.seqStart[zc->seqCollector.seqIndex]; + size_t i; + repcodes_t updatedRepcodes; + + assert(zc->seqCollector.seqIndex + 1 < zc->seqCollector.maxSequences); + /* Ensure we have enough space for last literals "sequence" */ + assert(zc->seqCollector.maxSequences >= seqStoreSeqSize + 1); + ZSTD_memcpy(updatedRepcodes.rep, zc->blockState.prevCBlock->rep, sizeof(repcodes_t)); + for (i = 0; i < seqStoreSeqSize; ++i) { + U32 rawOffset = seqStoreSeqs[i].offset - ZSTD_REP_NUM; + outSeqs[i].litLength = seqStoreSeqs[i].litLength; + outSeqs[i].matchLength = seqStoreSeqs[i].matchLength + MINMATCH; + outSeqs[i].rep = 0; + + if (i == seqStore->longLengthPos) { + if (seqStore->longLengthType == ZSTD_llt_literalLength) { + outSeqs[i].litLength += 0x10000; + } else if (seqStore->longLengthType == ZSTD_llt_matchLength) { + outSeqs[i].matchLength += 0x10000; + } + } + + if (seqStoreSeqs[i].offset <= ZSTD_REP_NUM) { + /* Derive the correct offset corresponding to a repcode */ + outSeqs[i].rep = seqStoreSeqs[i].offset; + if (outSeqs[i].litLength != 0) { + rawOffset = updatedRepcodes.rep[outSeqs[i].rep - 1]; + } else { + if (outSeqs[i].rep == 3) { + rawOffset = updatedRepcodes.rep[0] - 1; + } else { + rawOffset = updatedRepcodes.rep[outSeqs[i].rep]; + } + } + } + outSeqs[i].offset = rawOffset; + /* seqStoreSeqs[i].offset == offCode+1, and ZSTD_updateRep() expects offCode + so we provide seqStoreSeqs[i].offset - 1 */ + updatedRepcodes = ZSTD_updateRep(updatedRepcodes.rep, + seqStoreSeqs[i].offset - 1, + seqStoreSeqs[i].litLength == 0); + literalsRead += outSeqs[i].litLength; + } + /* Insert last literals (if any exist) in the block as a sequence with ml == off == 0. + * If there are no last literals, then we'll emit (of: 0, ml: 0, ll: 0), which is a marker + * for the block boundary, according to the API. + */ + assert(seqStoreLiteralsSize >= literalsRead); + lastLLSize = seqStoreLiteralsSize - literalsRead; + outSeqs[i].litLength = (U32)lastLLSize; + outSeqs[i].matchLength = outSeqs[i].offset = outSeqs[i].rep = 0; + seqStoreSeqSize++; + zc->seqCollector.seqIndex += seqStoreSeqSize; +} + +size_t ZSTD_generateSequences(ZSTD_CCtx* zc, ZSTD_Sequence* outSeqs, + size_t outSeqsSize, const void* src, size_t srcSize) +{ + const size_t dstCapacity = ZSTD_compressBound(srcSize); + void* dst = ZSTD_customMalloc(dstCapacity, ZSTD_defaultCMem); + SeqCollector seqCollector; + + RETURN_ERROR_IF(dst == NULL, memory_allocation, "NULL pointer!"); + + seqCollector.collectSequences = 1; + seqCollector.seqStart = outSeqs; + seqCollector.seqIndex = 0; + seqCollector.maxSequences = outSeqsSize; + zc->seqCollector = seqCollector; + + ZSTD_compress2(zc, dst, dstCapacity, src, srcSize); + ZSTD_customFree(dst, ZSTD_defaultCMem); + return zc->seqCollector.seqIndex; +} + +size_t ZSTD_mergeBlockDelimiters(ZSTD_Sequence* sequences, size_t seqsSize) { + size_t in = 0; + size_t out = 0; + for (; in < seqsSize; ++in) { + if (sequences[in].offset == 0 && sequences[in].matchLength == 0) { + if (in != seqsSize - 1) { + sequences[in+1].litLength += sequences[in].litLength; + } + } else { + sequences[out] = sequences[in]; + ++out; + } + } + return out; +} + +/* Unrolled loop to read four size_ts of input at a time. Returns 1 if is RLE, 0 if not. */ +static int ZSTD_isRLE(const BYTE* src, size_t length) { + const BYTE* ip = src; + const BYTE value = ip[0]; + const size_t valueST = (size_t)((U64)value * 0x0101010101010101ULL); + const size_t unrollSize = sizeof(size_t) * 4; + const size_t unrollMask = unrollSize - 1; + const size_t prefixLength = length & unrollMask; + size_t i; + size_t u; + if (length == 1) return 1; + /* Check if prefix is RLE first before using unrolled loop */ + if (prefixLength && ZSTD_count(ip+1, ip, ip+prefixLength) != prefixLength-1) { + return 0; + } + for (i = prefixLength; i != length; i += unrollSize) { + for (u = 0; u < unrollSize; u += sizeof(size_t)) { + if (MEM_readST(ip + i + u) != valueST) { + return 0; + } + } + } + return 1; +} + +/* Returns true if the given block may be RLE. + * This is just a heuristic based on the compressibility. + * It may return both false positives and false negatives. + */ +static int ZSTD_maybeRLE(seqStore_t const* seqStore) +{ + size_t const nbSeqs = (size_t)(seqStore->sequences - seqStore->sequencesStart); + size_t const nbLits = (size_t)(seqStore->lit - seqStore->litStart); + + return nbSeqs < 4 && nbLits < 10; +} + +static void ZSTD_blockState_confirmRepcodesAndEntropyTables(ZSTD_blockState_t* const bs) +{ + ZSTD_compressedBlockState_t* const tmp = bs->prevCBlock; + bs->prevCBlock = bs->nextCBlock; + bs->nextCBlock = tmp; +} + +/* Writes the block header */ +static void writeBlockHeader(void* op, size_t cSize, size_t blockSize, U32 lastBlock) { + U32 const cBlockHeader = cSize == 1 ? + lastBlock + (((U32)bt_rle)<<1) + (U32)(blockSize << 3) : + lastBlock + (((U32)bt_compressed)<<1) + (U32)(cSize << 3); + MEM_writeLE24(op, cBlockHeader); + DEBUGLOG(3, "writeBlockHeader: cSize: %zu blockSize: %zu lastBlock: %u", cSize, blockSize, lastBlock); +} + +/** ZSTD_buildBlockEntropyStats_literals() : + * Builds entropy for the literals. + * Stores literals block type (raw, rle, compressed, repeat) and + * huffman description table to hufMetadata. + * Requires ENTROPY_WORKSPACE_SIZE workspace + * @return : size of huffman description table or error code */ +static size_t ZSTD_buildBlockEntropyStats_literals(void* const src, size_t srcSize, + const ZSTD_hufCTables_t* prevHuf, + ZSTD_hufCTables_t* nextHuf, + ZSTD_hufCTablesMetadata_t* hufMetadata, + const int disableLiteralsCompression, + void* workspace, size_t wkspSize) +{ + BYTE* const wkspStart = (BYTE*)workspace; + BYTE* const wkspEnd = wkspStart + wkspSize; + BYTE* const countWkspStart = wkspStart; + unsigned* const countWksp = (unsigned*)workspace; + const size_t countWkspSize = (HUF_SYMBOLVALUE_MAX + 1) * sizeof(unsigned); + BYTE* const nodeWksp = countWkspStart + countWkspSize; + const size_t nodeWkspSize = wkspEnd-nodeWksp; + unsigned maxSymbolValue = HUF_SYMBOLVALUE_MAX; + unsigned huffLog = HUF_TABLELOG_DEFAULT; + HUF_repeat repeat = prevHuf->repeatMode; + DEBUGLOG(5, "ZSTD_buildBlockEntropyStats_literals (srcSize=%zu)", srcSize); + + /* Prepare nextEntropy assuming reusing the existing table */ + ZSTD_memcpy(nextHuf, prevHuf, sizeof(*prevHuf)); + + if (disableLiteralsCompression) { + DEBUGLOG(5, "set_basic - disabled"); + hufMetadata->hType = set_basic; + return 0; + } + + /* small ? don't even attempt compression (speed opt) */ +#ifndef COMPRESS_LITERALS_SIZE_MIN +#define COMPRESS_LITERALS_SIZE_MIN 63 +#endif + { size_t const minLitSize = (prevHuf->repeatMode == HUF_repeat_valid) ? 6 : COMPRESS_LITERALS_SIZE_MIN; + if (srcSize <= minLitSize) { + DEBUGLOG(5, "set_basic - too small"); + hufMetadata->hType = set_basic; + return 0; + } + } + + /* Scan input and build symbol stats */ + { size_t const largest = HIST_count_wksp (countWksp, &maxSymbolValue, (const BYTE*)src, srcSize, workspace, wkspSize); + FORWARD_IF_ERROR(largest, "HIST_count_wksp failed"); + if (largest == srcSize) { + DEBUGLOG(5, "set_rle"); + hufMetadata->hType = set_rle; + return 0; + } + if (largest <= (srcSize >> 7)+4) { + DEBUGLOG(5, "set_basic - no gain"); + hufMetadata->hType = set_basic; + return 0; + } + } + + /* Validate the previous Huffman table */ + if (repeat == HUF_repeat_check && !HUF_validateCTable((HUF_CElt const*)prevHuf->CTable, countWksp, maxSymbolValue)) { + repeat = HUF_repeat_none; + } + + /* Build Huffman Tree */ + ZSTD_memset(nextHuf->CTable, 0, sizeof(nextHuf->CTable)); + huffLog = HUF_optimalTableLog(huffLog, srcSize, maxSymbolValue); + { size_t const maxBits = HUF_buildCTable_wksp((HUF_CElt*)nextHuf->CTable, countWksp, + maxSymbolValue, huffLog, + nodeWksp, nodeWkspSize); + FORWARD_IF_ERROR(maxBits, "HUF_buildCTable_wksp"); + huffLog = (U32)maxBits; + { /* Build and write the CTable */ + size_t const newCSize = HUF_estimateCompressedSize( + (HUF_CElt*)nextHuf->CTable, countWksp, maxSymbolValue); + size_t const hSize = HUF_writeCTable_wksp( + hufMetadata->hufDesBuffer, sizeof(hufMetadata->hufDesBuffer), + (HUF_CElt*)nextHuf->CTable, maxSymbolValue, huffLog, + nodeWksp, nodeWkspSize); + /* Check against repeating the previous CTable */ + if (repeat != HUF_repeat_none) { + size_t const oldCSize = HUF_estimateCompressedSize( + (HUF_CElt const*)prevHuf->CTable, countWksp, maxSymbolValue); + if (oldCSize < srcSize && (oldCSize <= hSize + newCSize || hSize + 12 >= srcSize)) { + DEBUGLOG(5, "set_repeat - smaller"); + ZSTD_memcpy(nextHuf, prevHuf, sizeof(*prevHuf)); + hufMetadata->hType = set_repeat; + return 0; + } + } + if (newCSize + hSize >= srcSize) { + DEBUGLOG(5, "set_basic - no gains"); + ZSTD_memcpy(nextHuf, prevHuf, sizeof(*prevHuf)); + hufMetadata->hType = set_basic; + return 0; + } + DEBUGLOG(5, "set_compressed (hSize=%u)", (U32)hSize); + hufMetadata->hType = set_compressed; + nextHuf->repeatMode = HUF_repeat_check; + return hSize; + } + } +} + + +/* ZSTD_buildDummySequencesStatistics(): + * Returns a ZSTD_symbolEncodingTypeStats_t with all encoding types as set_basic, + * and updates nextEntropy to the appropriate repeatMode. + */ +static ZSTD_symbolEncodingTypeStats_t +ZSTD_buildDummySequencesStatistics(ZSTD_fseCTables_t* nextEntropy) { + ZSTD_symbolEncodingTypeStats_t stats = {set_basic, set_basic, set_basic, 0, 0}; + nextEntropy->litlength_repeatMode = FSE_repeat_none; + nextEntropy->offcode_repeatMode = FSE_repeat_none; + nextEntropy->matchlength_repeatMode = FSE_repeat_none; + return stats; +} + +/** ZSTD_buildBlockEntropyStats_sequences() : + * Builds entropy for the sequences. + * Stores symbol compression modes and fse table to fseMetadata. + * Requires ENTROPY_WORKSPACE_SIZE wksp. + * @return : size of fse tables or error code */ +static size_t ZSTD_buildBlockEntropyStats_sequences(seqStore_t* seqStorePtr, + const ZSTD_fseCTables_t* prevEntropy, + ZSTD_fseCTables_t* nextEntropy, + const ZSTD_CCtx_params* cctxParams, + ZSTD_fseCTablesMetadata_t* fseMetadata, + void* workspace, size_t wkspSize) +{ + ZSTD_strategy const strategy = cctxParams->cParams.strategy; + size_t const nbSeq = seqStorePtr->sequences - seqStorePtr->sequencesStart; + BYTE* const ostart = fseMetadata->fseTablesBuffer; + BYTE* const oend = ostart + sizeof(fseMetadata->fseTablesBuffer); + BYTE* op = ostart; + unsigned* countWorkspace = (unsigned*)workspace; + unsigned* entropyWorkspace = countWorkspace + (MaxSeq + 1); + size_t entropyWorkspaceSize = wkspSize - (MaxSeq + 1) * sizeof(*countWorkspace); + ZSTD_symbolEncodingTypeStats_t stats; + + DEBUGLOG(5, "ZSTD_buildBlockEntropyStats_sequences (nbSeq=%zu)", nbSeq); + stats = nbSeq != 0 ? ZSTD_buildSequencesStatistics(seqStorePtr, nbSeq, + prevEntropy, nextEntropy, op, oend, + strategy, countWorkspace, + entropyWorkspace, entropyWorkspaceSize) + : ZSTD_buildDummySequencesStatistics(nextEntropy); + FORWARD_IF_ERROR(stats.size, "ZSTD_buildSequencesStatistics failed!"); + fseMetadata->llType = (symbolEncodingType_e) stats.LLtype; + fseMetadata->ofType = (symbolEncodingType_e) stats.Offtype; + fseMetadata->mlType = (symbolEncodingType_e) stats.MLtype; + fseMetadata->lastCountSize = stats.lastCountSize; + return stats.size; +} + + +/** ZSTD_buildBlockEntropyStats() : + * Builds entropy for the block. + * Requires workspace size ENTROPY_WORKSPACE_SIZE + * + * @return : 0 on success or error code + */ +size_t ZSTD_buildBlockEntropyStats(seqStore_t* seqStorePtr, + const ZSTD_entropyCTables_t* prevEntropy, + ZSTD_entropyCTables_t* nextEntropy, + const ZSTD_CCtx_params* cctxParams, + ZSTD_entropyCTablesMetadata_t* entropyMetadata, + void* workspace, size_t wkspSize) +{ + size_t const litSize = seqStorePtr->lit - seqStorePtr->litStart; + entropyMetadata->hufMetadata.hufDesSize = + ZSTD_buildBlockEntropyStats_literals(seqStorePtr->litStart, litSize, + &prevEntropy->huf, &nextEntropy->huf, + &entropyMetadata->hufMetadata, + ZSTD_disableLiteralsCompression(cctxParams), + workspace, wkspSize); + FORWARD_IF_ERROR(entropyMetadata->hufMetadata.hufDesSize, "ZSTD_buildBlockEntropyStats_literals failed"); + entropyMetadata->fseMetadata.fseTablesSize = + ZSTD_buildBlockEntropyStats_sequences(seqStorePtr, + &prevEntropy->fse, &nextEntropy->fse, + cctxParams, + &entropyMetadata->fseMetadata, + workspace, wkspSize); + FORWARD_IF_ERROR(entropyMetadata->fseMetadata.fseTablesSize, "ZSTD_buildBlockEntropyStats_sequences failed"); + return 0; +} + +/* Returns the size estimate for the literals section (header + content) of a block */ +static size_t ZSTD_estimateBlockSize_literal(const BYTE* literals, size_t litSize, + const ZSTD_hufCTables_t* huf, + const ZSTD_hufCTablesMetadata_t* hufMetadata, + void* workspace, size_t wkspSize, + int writeEntropy) +{ + unsigned* const countWksp = (unsigned*)workspace; + unsigned maxSymbolValue = HUF_SYMBOLVALUE_MAX; + size_t literalSectionHeaderSize = 3 + (litSize >= 1 KB) + (litSize >= 16 KB); + U32 singleStream = litSize < 256; + + if (hufMetadata->hType == set_basic) return litSize; + else if (hufMetadata->hType == set_rle) return 1; + else if (hufMetadata->hType == set_compressed || hufMetadata->hType == set_repeat) { + size_t const largest = HIST_count_wksp (countWksp, &maxSymbolValue, (const BYTE*)literals, litSize, workspace, wkspSize); + if (ZSTD_isError(largest)) return litSize; + { size_t cLitSizeEstimate = HUF_estimateCompressedSize((const HUF_CElt*)huf->CTable, countWksp, maxSymbolValue); + if (writeEntropy) cLitSizeEstimate += hufMetadata->hufDesSize; + if (!singleStream) cLitSizeEstimate += 6; /* multi-stream huffman uses 6-byte jump table */ + return cLitSizeEstimate + literalSectionHeaderSize; + } } + assert(0); /* impossible */ + return 0; +} + +/* Returns the size estimate for the FSE-compressed symbols (of, ml, ll) of a block */ +static size_t ZSTD_estimateBlockSize_symbolType(symbolEncodingType_e type, + const BYTE* codeTable, size_t nbSeq, unsigned maxCode, + const FSE_CTable* fseCTable, + const U32* additionalBits, + short const* defaultNorm, U32 defaultNormLog, U32 defaultMax, + void* workspace, size_t wkspSize) +{ + unsigned* const countWksp = (unsigned*)workspace; + const BYTE* ctp = codeTable; + const BYTE* const ctStart = ctp; + const BYTE* const ctEnd = ctStart + nbSeq; + size_t cSymbolTypeSizeEstimateInBits = 0; + unsigned max = maxCode; + + HIST_countFast_wksp(countWksp, &max, codeTable, nbSeq, workspace, wkspSize); /* can't fail */ + if (type == set_basic) { + /* We selected this encoding type, so it must be valid. */ + assert(max <= defaultMax); + (void)defaultMax; + cSymbolTypeSizeEstimateInBits = ZSTD_crossEntropyCost(defaultNorm, defaultNormLog, countWksp, max); + } else if (type == set_rle) { + cSymbolTypeSizeEstimateInBits = 0; + } else if (type == set_compressed || type == set_repeat) { + cSymbolTypeSizeEstimateInBits = ZSTD_fseBitCost(fseCTable, countWksp, max); + } + if (ZSTD_isError(cSymbolTypeSizeEstimateInBits)) { + return nbSeq * 10; + } + while (ctp < ctEnd) { + if (additionalBits) cSymbolTypeSizeEstimateInBits += additionalBits[*ctp]; + else cSymbolTypeSizeEstimateInBits += *ctp; /* for offset, offset code is also the number of additional bits */ + ctp++; + } + return cSymbolTypeSizeEstimateInBits >> 3; +} + +/* Returns the size estimate for the sequences section (header + content) of a block */ +static size_t ZSTD_estimateBlockSize_sequences(const BYTE* ofCodeTable, + const BYTE* llCodeTable, + const BYTE* mlCodeTable, + size_t nbSeq, + const ZSTD_fseCTables_t* fseTables, + const ZSTD_fseCTablesMetadata_t* fseMetadata, + void* workspace, size_t wkspSize, + int writeEntropy) +{ + size_t sequencesSectionHeaderSize = 1 /* seqHead */ + 1 /* min seqSize size */ + (nbSeq >= 128) + (nbSeq >= LONGNBSEQ); + size_t cSeqSizeEstimate = 0; + cSeqSizeEstimate += ZSTD_estimateBlockSize_symbolType(fseMetadata->ofType, ofCodeTable, nbSeq, MaxOff, + fseTables->offcodeCTable, NULL, + OF_defaultNorm, OF_defaultNormLog, DefaultMaxOff, + workspace, wkspSize); + cSeqSizeEstimate += ZSTD_estimateBlockSize_symbolType(fseMetadata->llType, llCodeTable, nbSeq, MaxLL, + fseTables->litlengthCTable, LL_bits, + LL_defaultNorm, LL_defaultNormLog, MaxLL, + workspace, wkspSize); + cSeqSizeEstimate += ZSTD_estimateBlockSize_symbolType(fseMetadata->mlType, mlCodeTable, nbSeq, MaxML, + fseTables->matchlengthCTable, ML_bits, + ML_defaultNorm, ML_defaultNormLog, MaxML, + workspace, wkspSize); + if (writeEntropy) cSeqSizeEstimate += fseMetadata->fseTablesSize; + return cSeqSizeEstimate + sequencesSectionHeaderSize; +} + +/* Returns the size estimate for a given stream of literals, of, ll, ml */ +static size_t ZSTD_estimateBlockSize(const BYTE* literals, size_t litSize, + const BYTE* ofCodeTable, + const BYTE* llCodeTable, + const BYTE* mlCodeTable, + size_t nbSeq, + const ZSTD_entropyCTables_t* entropy, + const ZSTD_entropyCTablesMetadata_t* entropyMetadata, + void* workspace, size_t wkspSize, + int writeLitEntropy, int writeSeqEntropy) { + size_t const literalsSize = ZSTD_estimateBlockSize_literal(literals, litSize, + &entropy->huf, &entropyMetadata->hufMetadata, + workspace, wkspSize, writeLitEntropy); + size_t const seqSize = ZSTD_estimateBlockSize_sequences(ofCodeTable, llCodeTable, mlCodeTable, + nbSeq, &entropy->fse, &entropyMetadata->fseMetadata, + workspace, wkspSize, writeSeqEntropy); + return seqSize + literalsSize + ZSTD_blockHeaderSize; +} + +/* Builds entropy statistics and uses them for blocksize estimation. + * + * Returns the estimated compressed size of the seqStore, or a zstd error. + */ +static size_t ZSTD_buildEntropyStatisticsAndEstimateSubBlockSize(seqStore_t* seqStore, const ZSTD_CCtx* zc) { + ZSTD_entropyCTablesMetadata_t entropyMetadata; + FORWARD_IF_ERROR(ZSTD_buildBlockEntropyStats(seqStore, + &zc->blockState.prevCBlock->entropy, + &zc->blockState.nextCBlock->entropy, + &zc->appliedParams, + &entropyMetadata, + zc->entropyWorkspace, ENTROPY_WORKSPACE_SIZE /* statically allocated in resetCCtx */), ""); + return ZSTD_estimateBlockSize(seqStore->litStart, (size_t)(seqStore->lit - seqStore->litStart), + seqStore->ofCode, seqStore->llCode, seqStore->mlCode, + (size_t)(seqStore->sequences - seqStore->sequencesStart), + &zc->blockState.nextCBlock->entropy, &entropyMetadata, zc->entropyWorkspace, ENTROPY_WORKSPACE_SIZE, + (int)(entropyMetadata.hufMetadata.hType == set_compressed), 1); +} + +/* Returns literals bytes represented in a seqStore */ +static size_t ZSTD_countSeqStoreLiteralsBytes(const seqStore_t* const seqStore) { + size_t literalsBytes = 0; + size_t const nbSeqs = seqStore->sequences - seqStore->sequencesStart; + size_t i; + for (i = 0; i < nbSeqs; ++i) { + seqDef seq = seqStore->sequencesStart[i]; + literalsBytes += seq.litLength; + if (i == seqStore->longLengthPos && seqStore->longLengthType == ZSTD_llt_literalLength) { + literalsBytes += 0x10000; + } + } + return literalsBytes; +} + +/* Returns match bytes represented in a seqStore */ +static size_t ZSTD_countSeqStoreMatchBytes(const seqStore_t* const seqStore) { + size_t matchBytes = 0; + size_t const nbSeqs = seqStore->sequences - seqStore->sequencesStart; + size_t i; + for (i = 0; i < nbSeqs; ++i) { + seqDef seq = seqStore->sequencesStart[i]; + matchBytes += seq.matchLength + MINMATCH; + if (i == seqStore->longLengthPos && seqStore->longLengthType == ZSTD_llt_matchLength) { + matchBytes += 0x10000; + } + } + return matchBytes; +} + +/* Derives the seqStore that is a chunk of the originalSeqStore from [startIdx, endIdx). + * Stores the result in resultSeqStore. + */ +static void ZSTD_deriveSeqStoreChunk(seqStore_t* resultSeqStore, + const seqStore_t* originalSeqStore, + size_t startIdx, size_t endIdx) { + BYTE* const litEnd = originalSeqStore->lit; + size_t literalsBytes; + size_t literalsBytesPreceding = 0; + + *resultSeqStore = *originalSeqStore; + if (startIdx > 0) { + resultSeqStore->sequences = originalSeqStore->sequencesStart + startIdx; + literalsBytesPreceding = ZSTD_countSeqStoreLiteralsBytes(resultSeqStore); + } + + /* Move longLengthPos into the correct position if necessary */ + if (originalSeqStore->longLengthType != ZSTD_llt_none) { + if (originalSeqStore->longLengthPos < startIdx || originalSeqStore->longLengthPos > endIdx) { + resultSeqStore->longLengthType = ZSTD_llt_none; + } else { + resultSeqStore->longLengthPos -= (U32)startIdx; + } + } + resultSeqStore->sequencesStart = originalSeqStore->sequencesStart + startIdx; + resultSeqStore->sequences = originalSeqStore->sequencesStart + endIdx; + literalsBytes = ZSTD_countSeqStoreLiteralsBytes(resultSeqStore); + resultSeqStore->litStart += literalsBytesPreceding; + if (endIdx == (size_t)(originalSeqStore->sequences - originalSeqStore->sequencesStart)) { + /* This accounts for possible last literals if the derived chunk reaches the end of the block */ + resultSeqStore->lit = litEnd; + } else { + resultSeqStore->lit = resultSeqStore->litStart+literalsBytes; + } + resultSeqStore->llCode += startIdx; + resultSeqStore->mlCode += startIdx; + resultSeqStore->ofCode += startIdx; +} + +/** + * Returns the raw offset represented by the combination of offCode, ll0, and repcode history. + * offCode must be an offCode representing a repcode, therefore in the range of [0, 2]. + */ +static U32 ZSTD_resolveRepcodeToRawOffset(const U32 rep[ZSTD_REP_NUM], const U32 offCode, const U32 ll0) { + U32 const adjustedOffCode = offCode + ll0; + assert(offCode < ZSTD_REP_NUM); + if (adjustedOffCode == ZSTD_REP_NUM) { + /* litlength == 0 and offCode == 2 implies selection of first repcode - 1 */ + assert(rep[0] > 0); + return rep[0] - 1; + } + return rep[adjustedOffCode]; +} + +/** + * ZSTD_seqStore_resolveOffCodes() reconciles any possible divergences in offset history that may arise + * due to emission of RLE/raw blocks that disturb the offset history, and replaces any repcodes within + * the seqStore that may be invalid. + * + * dRepcodes are updated as would be on the decompression side. cRepcodes are updated exactly in + * accordance with the seqStore. + */ +static void ZSTD_seqStore_resolveOffCodes(repcodes_t* const dRepcodes, repcodes_t* const cRepcodes, + seqStore_t* const seqStore, U32 const nbSeq) { + U32 idx = 0; + for (; idx < nbSeq; ++idx) { + seqDef* const seq = seqStore->sequencesStart + idx; + U32 const ll0 = (seq->litLength == 0); + U32 offCode = seq->offset - 1; + assert(seq->offset > 0); + if (offCode <= ZSTD_REP_MOVE) { + U32 const dRawOffset = ZSTD_resolveRepcodeToRawOffset(dRepcodes->rep, offCode, ll0); + U32 const cRawOffset = ZSTD_resolveRepcodeToRawOffset(cRepcodes->rep, offCode, ll0); + /* Adjust simulated decompression repcode history if we come across a mismatch. Replace + * the repcode with the offset it actually references, determined by the compression + * repcode history. + */ + if (dRawOffset != cRawOffset) { + seq->offset = cRawOffset + ZSTD_REP_NUM; + } + } + /* Compression repcode history is always updated with values directly from the unmodified seqStore. + * Decompression repcode history may use modified seq->offset value taken from compression repcode history. + */ + *dRepcodes = ZSTD_updateRep(dRepcodes->rep, seq->offset - 1, ll0); + *cRepcodes = ZSTD_updateRep(cRepcodes->rep, offCode, ll0); + } +} + +/* ZSTD_compressSeqStore_singleBlock(): + * Compresses a seqStore into a block with a block header, into the buffer dst. + * + * Returns the total size of that block (including header) or a ZSTD error code. + */ +static size_t ZSTD_compressSeqStore_singleBlock(ZSTD_CCtx* zc, seqStore_t* const seqStore, + repcodes_t* const dRep, repcodes_t* const cRep, + void* dst, size_t dstCapacity, + const void* src, size_t srcSize, + U32 lastBlock, U32 isPartition) { + const U32 rleMaxLength = 25; + BYTE* op = (BYTE*)dst; + const BYTE* ip = (const BYTE*)src; + size_t cSize; + size_t cSeqsSize; + + /* In case of an RLE or raw block, the simulated decompression repcode history must be reset */ + repcodes_t const dRepOriginal = *dRep; + if (isPartition) + ZSTD_seqStore_resolveOffCodes(dRep, cRep, seqStore, (U32)(seqStore->sequences - seqStore->sequencesStart)); + + cSeqsSize = ZSTD_entropyCompressSeqStore(seqStore, + &zc->blockState.prevCBlock->entropy, &zc->blockState.nextCBlock->entropy, + &zc->appliedParams, + op + ZSTD_blockHeaderSize, dstCapacity - ZSTD_blockHeaderSize, + srcSize, + zc->entropyWorkspace, ENTROPY_WORKSPACE_SIZE /* statically allocated in resetCCtx */, + zc->bmi2); + FORWARD_IF_ERROR(cSeqsSize, "ZSTD_entropyCompressSeqStore failed!"); + + if (!zc->isFirstBlock && + cSeqsSize < rleMaxLength && + ZSTD_isRLE((BYTE const*)src, srcSize)) { + /* We don't want to emit our first block as a RLE even if it qualifies because + * doing so will cause the decoder (cli only) to throw a "should consume all input error." + * This is only an issue for zstd <= v1.4.3 + */ + cSeqsSize = 1; + } + + if (zc->seqCollector.collectSequences) { + ZSTD_copyBlockSequences(zc); + ZSTD_blockState_confirmRepcodesAndEntropyTables(&zc->blockState); + return 0; + } + + if (zc->blockState.prevCBlock->entropy.fse.offcode_repeatMode == FSE_repeat_valid) + zc->blockState.prevCBlock->entropy.fse.offcode_repeatMode = FSE_repeat_check; + + if (cSeqsSize == 0) { + cSize = ZSTD_noCompressBlock(op, dstCapacity, ip, srcSize, lastBlock); + FORWARD_IF_ERROR(cSize, "Nocompress block failed"); + DEBUGLOG(4, "Writing out nocompress block, size: %zu", cSize); + *dRep = dRepOriginal; /* reset simulated decompression repcode history */ + } else if (cSeqsSize == 1) { + cSize = ZSTD_rleCompressBlock(op, dstCapacity, *ip, srcSize, lastBlock); + FORWARD_IF_ERROR(cSize, "RLE compress block failed"); + DEBUGLOG(4, "Writing out RLE block, size: %zu", cSize); + *dRep = dRepOriginal; /* reset simulated decompression repcode history */ + } else { + ZSTD_blockState_confirmRepcodesAndEntropyTables(&zc->blockState); + writeBlockHeader(op, cSeqsSize, srcSize, lastBlock); + cSize = ZSTD_blockHeaderSize + cSeqsSize; + DEBUGLOG(4, "Writing out compressed block, size: %zu", cSize); + } + return cSize; +} + +/* Struct to keep track of where we are in our recursive calls. */ +typedef struct { + U32* splitLocations; /* Array of split indices */ + size_t idx; /* The current index within splitLocations being worked on */ +} seqStoreSplits; + +#define MIN_SEQUENCES_BLOCK_SPLITTING 300 +#define MAX_NB_SPLITS 196 + +/* Helper function to perform the recursive search for block splits. + * Estimates the cost of seqStore prior to split, and estimates the cost of splitting the sequences in half. + * If advantageous to split, then we recurse down the two sub-blocks. If not, or if an error occurred in estimation, then + * we do not recurse. + * + * Note: The recursion depth is capped by a heuristic minimum number of sequences, defined by MIN_SEQUENCES_BLOCK_SPLITTING. + * In theory, this means the absolute largest recursion depth is 10 == log2(maxNbSeqInBlock/MIN_SEQUENCES_BLOCK_SPLITTING). + * In practice, recursion depth usually doesn't go beyond 4. + * + * Furthermore, the number of splits is capped by MAX_NB_SPLITS. At MAX_NB_SPLITS == 196 with the current existing blockSize + * maximum of 128 KB, this value is actually impossible to reach. + */ +static void ZSTD_deriveBlockSplitsHelper(seqStoreSplits* splits, size_t startIdx, size_t endIdx, + const ZSTD_CCtx* zc, const seqStore_t* origSeqStore) { + seqStore_t fullSeqStoreChunk; + seqStore_t firstHalfSeqStore; + seqStore_t secondHalfSeqStore; + size_t estimatedOriginalSize; + size_t estimatedFirstHalfSize; + size_t estimatedSecondHalfSize; + size_t midIdx = (startIdx + endIdx)/2; + + if (endIdx - startIdx < MIN_SEQUENCES_BLOCK_SPLITTING || splits->idx >= MAX_NB_SPLITS) { + return; + } + ZSTD_deriveSeqStoreChunk(&fullSeqStoreChunk, origSeqStore, startIdx, endIdx); + ZSTD_deriveSeqStoreChunk(&firstHalfSeqStore, origSeqStore, startIdx, midIdx); + ZSTD_deriveSeqStoreChunk(&secondHalfSeqStore, origSeqStore, midIdx, endIdx); + estimatedOriginalSize = ZSTD_buildEntropyStatisticsAndEstimateSubBlockSize(&fullSeqStoreChunk, zc); + estimatedFirstHalfSize = ZSTD_buildEntropyStatisticsAndEstimateSubBlockSize(&firstHalfSeqStore, zc); + estimatedSecondHalfSize = ZSTD_buildEntropyStatisticsAndEstimateSubBlockSize(&secondHalfSeqStore, zc); + DEBUGLOG(5, "Estimated original block size: %zu -- First half split: %zu -- Second half split: %zu", + estimatedOriginalSize, estimatedFirstHalfSize, estimatedSecondHalfSize); + if (ZSTD_isError(estimatedOriginalSize) || ZSTD_isError(estimatedFirstHalfSize) || ZSTD_isError(estimatedSecondHalfSize)) { + return; + } + if (estimatedFirstHalfSize + estimatedSecondHalfSize < estimatedOriginalSize) { + ZSTD_deriveBlockSplitsHelper(splits, startIdx, midIdx, zc, origSeqStore); + splits->splitLocations[splits->idx] = (U32)midIdx; + splits->idx++; + ZSTD_deriveBlockSplitsHelper(splits, midIdx, endIdx, zc, origSeqStore); + } +} + +/* Base recursive function. Populates a table with intra-block partition indices that can improve compression ratio. + * + * Returns the number of splits made (which equals the size of the partition table - 1). + */ +static size_t ZSTD_deriveBlockSplits(ZSTD_CCtx* zc, U32 partitions[], U32 nbSeq) { + seqStoreSplits splits = {partitions, 0}; + if (nbSeq <= 4) { + DEBUGLOG(4, "ZSTD_deriveBlockSplits: Too few sequences to split"); + /* Refuse to try and split anything with less than 4 sequences */ + return 0; + } + ZSTD_deriveBlockSplitsHelper(&splits, 0, nbSeq, zc, &zc->seqStore); + splits.splitLocations[splits.idx] = nbSeq; + DEBUGLOG(5, "ZSTD_deriveBlockSplits: final nb partitions: %zu", splits.idx+1); + return splits.idx; +} + +/* ZSTD_compressBlock_splitBlock(): + * Attempts to split a given block into multiple blocks to improve compression ratio. + * + * Returns combined size of all blocks (which includes headers), or a ZSTD error code. + */ +static size_t ZSTD_compressBlock_splitBlock_internal(ZSTD_CCtx* zc, void* dst, size_t dstCapacity, + const void* src, size_t blockSize, U32 lastBlock, U32 nbSeq) { + size_t cSize = 0; + const BYTE* ip = (const BYTE*)src; + BYTE* op = (BYTE*)dst; + U32 partitions[MAX_NB_SPLITS]; + size_t i = 0; + size_t srcBytesTotal = 0; + size_t numSplits = ZSTD_deriveBlockSplits(zc, partitions, nbSeq); + seqStore_t nextSeqStore; + seqStore_t currSeqStore; + + /* If a block is split and some partitions are emitted as RLE/uncompressed, then repcode history + * may become invalid. In order to reconcile potentially invalid repcodes, we keep track of two + * separate repcode histories that simulate repcode history on compression and decompression side, + * and use the histories to determine whether we must replace a particular repcode with its raw offset. + * + * 1) cRep gets updated for each partition, regardless of whether the block was emitted as uncompressed + * or RLE. This allows us to retrieve the offset value that an invalid repcode references within + * a nocompress/RLE block. + * 2) dRep gets updated only for compressed partitions, and when a repcode gets replaced, will use + * the replacement offset value rather than the original repcode to update the repcode history. + * dRep also will be the final repcode history sent to the next block. + * + * See ZSTD_seqStore_resolveOffCodes() for more details. + */ + repcodes_t dRep; + repcodes_t cRep; + ZSTD_memcpy(dRep.rep, zc->blockState.prevCBlock->rep, sizeof(repcodes_t)); + ZSTD_memcpy(cRep.rep, zc->blockState.prevCBlock->rep, sizeof(repcodes_t)); + + DEBUGLOG(4, "ZSTD_compressBlock_splitBlock_internal (dstCapacity=%u, dictLimit=%u, nextToUpdate=%u)", + (unsigned)dstCapacity, (unsigned)zc->blockState.matchState.window.dictLimit, + (unsigned)zc->blockState.matchState.nextToUpdate); + + if (numSplits == 0) { + size_t cSizeSingleBlock = ZSTD_compressSeqStore_singleBlock(zc, &zc->seqStore, + &dRep, &cRep, + op, dstCapacity, + ip, blockSize, + lastBlock, 0 /* isPartition */); + FORWARD_IF_ERROR(cSizeSingleBlock, "Compressing single block from splitBlock_internal() failed!"); + DEBUGLOG(5, "ZSTD_compressBlock_splitBlock_internal: No splits"); + assert(cSizeSingleBlock <= ZSTD_BLOCKSIZE_MAX + ZSTD_blockHeaderSize); + return cSizeSingleBlock; + } + + ZSTD_deriveSeqStoreChunk(&currSeqStore, &zc->seqStore, 0, partitions[0]); + for (i = 0; i <= numSplits; ++i) { + size_t srcBytes; + size_t cSizeChunk; + U32 const lastPartition = (i == numSplits); + U32 lastBlockEntireSrc = 0; + + srcBytes = ZSTD_countSeqStoreLiteralsBytes(&currSeqStore) + ZSTD_countSeqStoreMatchBytes(&currSeqStore); + srcBytesTotal += srcBytes; + if (lastPartition) { + /* This is the final partition, need to account for possible last literals */ + srcBytes += blockSize - srcBytesTotal; + lastBlockEntireSrc = lastBlock; + } else { + ZSTD_deriveSeqStoreChunk(&nextSeqStore, &zc->seqStore, partitions[i], partitions[i+1]); + } + + cSizeChunk = ZSTD_compressSeqStore_singleBlock(zc, &currSeqStore, + &dRep, &cRep, + op, dstCapacity, + ip, srcBytes, + lastBlockEntireSrc, 1 /* isPartition */); + DEBUGLOG(5, "Estimated size: %zu actual size: %zu", ZSTD_buildEntropyStatisticsAndEstimateSubBlockSize(&currSeqStore, zc), cSizeChunk); + FORWARD_IF_ERROR(cSizeChunk, "Compressing chunk failed!"); + + ip += srcBytes; + op += cSizeChunk; + dstCapacity -= cSizeChunk; + cSize += cSizeChunk; + currSeqStore = nextSeqStore; + assert(cSizeChunk <= ZSTD_BLOCKSIZE_MAX + ZSTD_blockHeaderSize); + } + /* cRep and dRep may have diverged during the compression. If so, we use the dRep repcodes + * for the next block. + */ + ZSTD_memcpy(zc->blockState.prevCBlock->rep, dRep.rep, sizeof(repcodes_t)); + return cSize; +} + +static size_t ZSTD_compressBlock_splitBlock(ZSTD_CCtx* zc, + void* dst, size_t dstCapacity, + const void* src, size_t srcSize, U32 lastBlock) { + const BYTE* ip = (const BYTE*)src; + BYTE* op = (BYTE*)dst; + U32 nbSeq; + size_t cSize; + DEBUGLOG(4, "ZSTD_compressBlock_splitBlock"); + + { const size_t bss = ZSTD_buildSeqStore(zc, src, srcSize); + FORWARD_IF_ERROR(bss, "ZSTD_buildSeqStore failed"); + if (bss == ZSTDbss_noCompress) { + if (zc->blockState.prevCBlock->entropy.fse.offcode_repeatMode == FSE_repeat_valid) + zc->blockState.prevCBlock->entropy.fse.offcode_repeatMode = FSE_repeat_check; + cSize = ZSTD_noCompressBlock(op, dstCapacity, ip, srcSize, lastBlock); + FORWARD_IF_ERROR(cSize, "ZSTD_noCompressBlock failed"); + DEBUGLOG(4, "ZSTD_compressBlock_splitBlock: Nocompress block"); + return cSize; + } + nbSeq = (U32)(zc->seqStore.sequences - zc->seqStore.sequencesStart); + } + + assert(zc->appliedParams.splitBlocks == 1); + cSize = ZSTD_compressBlock_splitBlock_internal(zc, dst, dstCapacity, src, srcSize, lastBlock, nbSeq); + FORWARD_IF_ERROR(cSize, "Splitting blocks failed!"); + return cSize; +} + +static size_t ZSTD_compressBlock_internal(ZSTD_CCtx* zc, + void* dst, size_t dstCapacity, + const void* src, size_t srcSize, U32 frame) +{ + /* This the upper bound for the length of an rle block. + * This isn't the actual upper bound. Finding the real threshold + * needs further investigation. + */ + const U32 rleMaxLength = 25; + size_t cSize; + const BYTE* ip = (const BYTE*)src; + BYTE* op = (BYTE*)dst; + DEBUGLOG(5, "ZSTD_compressBlock_internal (dstCapacity=%u, dictLimit=%u, nextToUpdate=%u)", + (unsigned)dstCapacity, (unsigned)zc->blockState.matchState.window.dictLimit, + (unsigned)zc->blockState.matchState.nextToUpdate); + + { const size_t bss = ZSTD_buildSeqStore(zc, src, srcSize); + FORWARD_IF_ERROR(bss, "ZSTD_buildSeqStore failed"); + if (bss == ZSTDbss_noCompress) { cSize = 0; goto out; } + } + + if (zc->seqCollector.collectSequences) { + ZSTD_copyBlockSequences(zc); + ZSTD_blockState_confirmRepcodesAndEntropyTables(&zc->blockState); + return 0; + } + + /* encode sequences and literals */ + cSize = ZSTD_entropyCompressSeqStore(&zc->seqStore, + &zc->blockState.prevCBlock->entropy, &zc->blockState.nextCBlock->entropy, + &zc->appliedParams, + dst, dstCapacity, + srcSize, + zc->entropyWorkspace, ENTROPY_WORKSPACE_SIZE /* statically allocated in resetCCtx */, + zc->bmi2); + + if (zc->seqCollector.collectSequences) { + ZSTD_copyBlockSequences(zc); + return 0; + } + + + if (frame && + /* We don't want to emit our first block as a RLE even if it qualifies because + * doing so will cause the decoder (cli only) to throw a "should consume all input error." + * This is only an issue for zstd <= v1.4.3 + */ + !zc->isFirstBlock && + cSize < rleMaxLength && + ZSTD_isRLE(ip, srcSize)) + { + cSize = 1; + op[0] = ip[0]; + } + +out: + if (!ZSTD_isError(cSize) && cSize > 1) { + ZSTD_blockState_confirmRepcodesAndEntropyTables(&zc->blockState); + } + /* We check that dictionaries have offset codes available for the first + * block. After the first block, the offcode table might not have large + * enough codes to represent the offsets in the data. + */ + if (zc->blockState.prevCBlock->entropy.fse.offcode_repeatMode == FSE_repeat_valid) + zc->blockState.prevCBlock->entropy.fse.offcode_repeatMode = FSE_repeat_check; + + return cSize; +} + +static size_t ZSTD_compressBlock_targetCBlockSize_body(ZSTD_CCtx* zc, + void* dst, size_t dstCapacity, + const void* src, size_t srcSize, + const size_t bss, U32 lastBlock) +{ + DEBUGLOG(6, "Attempting ZSTD_compressSuperBlock()"); + if (bss == ZSTDbss_compress) { + if (/* We don't want to emit our first block as a RLE even if it qualifies because + * doing so will cause the decoder (cli only) to throw a "should consume all input error." + * This is only an issue for zstd <= v1.4.3 + */ + !zc->isFirstBlock && + ZSTD_maybeRLE(&zc->seqStore) && + ZSTD_isRLE((BYTE const*)src, srcSize)) + { + return ZSTD_rleCompressBlock(dst, dstCapacity, *(BYTE const*)src, srcSize, lastBlock); + } + /* Attempt superblock compression. + * + * Note that compressed size of ZSTD_compressSuperBlock() is not bound by the + * standard ZSTD_compressBound(). This is a problem, because even if we have + * space now, taking an extra byte now could cause us to run out of space later + * and violate ZSTD_compressBound(). + * + * Define blockBound(blockSize) = blockSize + ZSTD_blockHeaderSize. + * + * In order to respect ZSTD_compressBound() we must attempt to emit a raw + * uncompressed block in these cases: + * * cSize == 0: Return code for an uncompressed block. + * * cSize == dstSize_tooSmall: We may have expanded beyond blockBound(srcSize). + * ZSTD_noCompressBlock() will return dstSize_tooSmall if we are really out of + * output space. + * * cSize >= blockBound(srcSize): We have expanded the block too much so + * emit an uncompressed block. + */ + { + size_t const cSize = ZSTD_compressSuperBlock(zc, dst, dstCapacity, src, srcSize, lastBlock); + if (cSize != ERROR(dstSize_tooSmall)) { + size_t const maxCSize = srcSize - ZSTD_minGain(srcSize, zc->appliedParams.cParams.strategy); + FORWARD_IF_ERROR(cSize, "ZSTD_compressSuperBlock failed"); + if (cSize != 0 && cSize < maxCSize + ZSTD_blockHeaderSize) { + ZSTD_blockState_confirmRepcodesAndEntropyTables(&zc->blockState); + return cSize; + } + } + } + } + + DEBUGLOG(6, "Resorting to ZSTD_noCompressBlock()"); + /* Superblock compression failed, attempt to emit a single no compress block. + * The decoder will be able to stream this block since it is uncompressed. + */ + return ZSTD_noCompressBlock(dst, dstCapacity, src, srcSize, lastBlock); +} + +static size_t ZSTD_compressBlock_targetCBlockSize(ZSTD_CCtx* zc, + void* dst, size_t dstCapacity, + const void* src, size_t srcSize, + U32 lastBlock) +{ + size_t cSize = 0; + const size_t bss = ZSTD_buildSeqStore(zc, src, srcSize); + DEBUGLOG(5, "ZSTD_compressBlock_targetCBlockSize (dstCapacity=%u, dictLimit=%u, nextToUpdate=%u, srcSize=%zu)", + (unsigned)dstCapacity, (unsigned)zc->blockState.matchState.window.dictLimit, (unsigned)zc->blockState.matchState.nextToUpdate, srcSize); + FORWARD_IF_ERROR(bss, "ZSTD_buildSeqStore failed"); + + cSize = ZSTD_compressBlock_targetCBlockSize_body(zc, dst, dstCapacity, src, srcSize, bss, lastBlock); + FORWARD_IF_ERROR(cSize, "ZSTD_compressBlock_targetCBlockSize_body failed"); + + if (zc->blockState.prevCBlock->entropy.fse.offcode_repeatMode == FSE_repeat_valid) + zc->blockState.prevCBlock->entropy.fse.offcode_repeatMode = FSE_repeat_check; + + return cSize; +} + +static void ZSTD_overflowCorrectIfNeeded(ZSTD_matchState_t* ms, + ZSTD_cwksp* ws, + ZSTD_CCtx_params const* params, + void const* ip, + void const* iend) +{ + U32 const cycleLog = ZSTD_cycleLog(params->cParams.chainLog, params->cParams.strategy); + U32 const maxDist = (U32)1 << params->cParams.windowLog; + if (ZSTD_window_needOverflowCorrection(ms->window, cycleLog, maxDist, ms->loadedDictEnd, ip, iend)) { + U32 const correction = ZSTD_window_correctOverflow(&ms->window, cycleLog, maxDist, ip); + ZSTD_STATIC_ASSERT(ZSTD_CHAINLOG_MAX <= 30); + ZSTD_STATIC_ASSERT(ZSTD_WINDOWLOG_MAX_32 <= 30); + ZSTD_STATIC_ASSERT(ZSTD_WINDOWLOG_MAX <= 31); + ZSTD_cwksp_mark_tables_dirty(ws); + ZSTD_reduceIndex(ms, params, correction); + ZSTD_cwksp_mark_tables_clean(ws); + if (ms->nextToUpdate < correction) ms->nextToUpdate = 0; + else ms->nextToUpdate -= correction; + /* invalidate dictionaries on overflow correction */ + ms->loadedDictEnd = 0; + ms->dictMatchState = NULL; + } +} + +/*! ZSTD_compress_frameChunk() : +* Compress a chunk of data into one or multiple blocks. +* All blocks will be terminated, all input will be consumed. +* Function will issue an error if there is not enough `dstCapacity` to hold the compressed content. +* Frame is supposed already started (header already produced) +* @return : compressed size, or an error code +*/ +static size_t ZSTD_compress_frameChunk(ZSTD_CCtx* cctx, + void* dst, size_t dstCapacity, + const void* src, size_t srcSize, + U32 lastFrameChunk) +{ + size_t blockSize = cctx->blockSize; + size_t remaining = srcSize; + const BYTE* ip = (const BYTE*)src; + BYTE* const ostart = (BYTE*)dst; + BYTE* op = ostart; + U32 const maxDist = (U32)1 << cctx->appliedParams.cParams.windowLog; + + assert(cctx->appliedParams.cParams.windowLog <= ZSTD_WINDOWLOG_MAX); + + DEBUGLOG(4, "ZSTD_compress_frameChunk (blockSize=%u)", (unsigned)blockSize); + if (cctx->appliedParams.fParams.checksumFlag && srcSize) + XXH64_update(&cctx->xxhState, src, srcSize); + + while (remaining) { + ZSTD_matchState_t* const ms = &cctx->blockState.matchState; + U32 const lastBlock = lastFrameChunk & (blockSize >= remaining); + + RETURN_ERROR_IF(dstCapacity < ZSTD_blockHeaderSize + MIN_CBLOCK_SIZE, + dstSize_tooSmall, + "not enough space to store compressed block"); + if (remaining < blockSize) blockSize = remaining; + + ZSTD_overflowCorrectIfNeeded( + ms, &cctx->workspace, &cctx->appliedParams, ip, ip + blockSize); + ZSTD_checkDictValidity(&ms->window, ip + blockSize, maxDist, &ms->loadedDictEnd, &ms->dictMatchState); + + /* Ensure hash/chain table insertion resumes no sooner than lowlimit */ + if (ms->nextToUpdate < ms->window.lowLimit) ms->nextToUpdate = ms->window.lowLimit; + + { size_t cSize; + if (ZSTD_useTargetCBlockSize(&cctx->appliedParams)) { + cSize = ZSTD_compressBlock_targetCBlockSize(cctx, op, dstCapacity, ip, blockSize, lastBlock); + FORWARD_IF_ERROR(cSize, "ZSTD_compressBlock_targetCBlockSize failed"); + assert(cSize > 0); + assert(cSize <= blockSize + ZSTD_blockHeaderSize); + } else if (ZSTD_blockSplitterEnabled(&cctx->appliedParams)) { + cSize = ZSTD_compressBlock_splitBlock(cctx, op, dstCapacity, ip, blockSize, lastBlock); + FORWARD_IF_ERROR(cSize, "ZSTD_compressBlock_splitBlock failed"); + assert(cSize > 0 || cctx->seqCollector.collectSequences == 1); + } else { + cSize = ZSTD_compressBlock_internal(cctx, + op+ZSTD_blockHeaderSize, dstCapacity-ZSTD_blockHeaderSize, + ip, blockSize, 1 /* frame */); + FORWARD_IF_ERROR(cSize, "ZSTD_compressBlock_internal failed"); + + if (cSize == 0) { /* block is not compressible */ + cSize = ZSTD_noCompressBlock(op, dstCapacity, ip, blockSize, lastBlock); + FORWARD_IF_ERROR(cSize, "ZSTD_noCompressBlock failed"); + } else { + U32 const cBlockHeader = cSize == 1 ? + lastBlock + (((U32)bt_rle)<<1) + (U32)(blockSize << 3) : + lastBlock + (((U32)bt_compressed)<<1) + (U32)(cSize << 3); + MEM_writeLE24(op, cBlockHeader); + cSize += ZSTD_blockHeaderSize; + } + } + + + ip += blockSize; + assert(remaining >= blockSize); + remaining -= blockSize; + op += cSize; + assert(dstCapacity >= cSize); + dstCapacity -= cSize; + cctx->isFirstBlock = 0; + DEBUGLOG(5, "ZSTD_compress_frameChunk: adding a block of size %u", + (unsigned)cSize); + } } + + if (lastFrameChunk && (op>ostart)) cctx->stage = ZSTDcs_ending; + return (size_t)(op-ostart); +} + + +static size_t ZSTD_writeFrameHeader(void* dst, size_t dstCapacity, + const ZSTD_CCtx_params* params, U64 pledgedSrcSize, U32 dictID) +{ BYTE* const op = (BYTE*)dst; + U32 const dictIDSizeCodeLength = (dictID>0) + (dictID>=256) + (dictID>=65536); /* 0-3 */ + U32 const dictIDSizeCode = params->fParams.noDictIDFlag ? 0 : dictIDSizeCodeLength; /* 0-3 */ + U32 const checksumFlag = params->fParams.checksumFlag>0; + U32 const windowSize = (U32)1 << params->cParams.windowLog; + U32 const singleSegment = params->fParams.contentSizeFlag && (windowSize >= pledgedSrcSize); + BYTE const windowLogByte = (BYTE)((params->cParams.windowLog - ZSTD_WINDOWLOG_ABSOLUTEMIN) << 3); + U32 const fcsCode = params->fParams.contentSizeFlag ? + (pledgedSrcSize>=256) + (pledgedSrcSize>=65536+256) + (pledgedSrcSize>=0xFFFFFFFFU) : 0; /* 0-3 */ + BYTE const frameHeaderDescriptionByte = (BYTE)(dictIDSizeCode + (checksumFlag<<2) + (singleSegment<<5) + (fcsCode<<6) ); + size_t pos=0; + + assert(!(params->fParams.contentSizeFlag && pledgedSrcSize == ZSTD_CONTENTSIZE_UNKNOWN)); + RETURN_ERROR_IF(dstCapacity < ZSTD_FRAMEHEADERSIZE_MAX, dstSize_tooSmall, + "dst buf is too small to fit worst-case frame header size."); + DEBUGLOG(4, "ZSTD_writeFrameHeader : dictIDFlag : %u ; dictID : %u ; dictIDSizeCode : %u", + !params->fParams.noDictIDFlag, (unsigned)dictID, (unsigned)dictIDSizeCode); + if (params->format == ZSTD_f_zstd1) { + MEM_writeLE32(dst, ZSTD_MAGICNUMBER); + pos = 4; + } + op[pos++] = frameHeaderDescriptionByte; + if (!singleSegment) op[pos++] = windowLogByte; + switch(dictIDSizeCode) + { + default: assert(0); /* impossible */ + case 0 : break; + case 1 : op[pos] = (BYTE)(dictID); pos++; break; + case 2 : MEM_writeLE16(op+pos, (U16)dictID); pos+=2; break; + case 3 : MEM_writeLE32(op+pos, dictID); pos+=4; break; + } + switch(fcsCode) + { + default: assert(0); /* impossible */ + case 0 : if (singleSegment) op[pos++] = (BYTE)(pledgedSrcSize); break; + case 1 : MEM_writeLE16(op+pos, (U16)(pledgedSrcSize-256)); pos+=2; break; + case 2 : MEM_writeLE32(op+pos, (U32)(pledgedSrcSize)); pos+=4; break; + case 3 : MEM_writeLE64(op+pos, (U64)(pledgedSrcSize)); pos+=8; break; + } + return pos; +} + +/* ZSTD_writeSkippableFrame_advanced() : + * Writes out a skippable frame with the specified magic number variant (16 are supported), + * from ZSTD_MAGIC_SKIPPABLE_START to ZSTD_MAGIC_SKIPPABLE_START+15, and the desired source data. + * + * Returns the total number of bytes written, or a ZSTD error code. + */ +size_t ZSTD_writeSkippableFrame(void* dst, size_t dstCapacity, + const void* src, size_t srcSize, unsigned magicVariant) { + BYTE* op = (BYTE*)dst; + RETURN_ERROR_IF(dstCapacity < srcSize + ZSTD_SKIPPABLEHEADERSIZE /* Skippable frame overhead */, + dstSize_tooSmall, "Not enough room for skippable frame"); + RETURN_ERROR_IF(srcSize > (unsigned)0xFFFFFFFF, srcSize_wrong, "Src size too large for skippable frame"); + RETURN_ERROR_IF(magicVariant > 15, parameter_outOfBound, "Skippable frame magic number variant not supported"); + + MEM_writeLE32(op, (U32)(ZSTD_MAGIC_SKIPPABLE_START + magicVariant)); + MEM_writeLE32(op+4, (U32)srcSize); + ZSTD_memcpy(op+8, src, srcSize); + return srcSize + ZSTD_SKIPPABLEHEADERSIZE; +} + +/* ZSTD_writeLastEmptyBlock() : + * output an empty Block with end-of-frame mark to complete a frame + * @return : size of data written into `dst` (== ZSTD_blockHeaderSize (defined in zstd_internal.h)) + * or an error code if `dstCapacity` is too small (stage != ZSTDcs_init, stage_wrong, + "wrong cctx stage"); + RETURN_ERROR_IF(cctx->appliedParams.ldmParams.enableLdm, + parameter_unsupported, + "incompatible with ldm"); + cctx->externSeqStore.seq = seq; + cctx->externSeqStore.size = nbSeq; + cctx->externSeqStore.capacity = nbSeq; + cctx->externSeqStore.pos = 0; + cctx->externSeqStore.posInSequence = 0; + return 0; +} + + +static size_t ZSTD_compressContinue_internal (ZSTD_CCtx* cctx, + void* dst, size_t dstCapacity, + const void* src, size_t srcSize, + U32 frame, U32 lastFrameChunk) +{ + ZSTD_matchState_t* const ms = &cctx->blockState.matchState; + size_t fhSize = 0; + + DEBUGLOG(5, "ZSTD_compressContinue_internal, stage: %u, srcSize: %u", + cctx->stage, (unsigned)srcSize); + RETURN_ERROR_IF(cctx->stage==ZSTDcs_created, stage_wrong, + "missing init (ZSTD_compressBegin)"); + + if (frame && (cctx->stage==ZSTDcs_init)) { + fhSize = ZSTD_writeFrameHeader(dst, dstCapacity, &cctx->appliedParams, + cctx->pledgedSrcSizePlusOne-1, cctx->dictID); + FORWARD_IF_ERROR(fhSize, "ZSTD_writeFrameHeader failed"); + assert(fhSize <= dstCapacity); + dstCapacity -= fhSize; + dst = (char*)dst + fhSize; + cctx->stage = ZSTDcs_ongoing; + } + + if (!srcSize) return fhSize; /* do not generate an empty block if no input */ + + if (!ZSTD_window_update(&ms->window, src, srcSize, ms->forceNonContiguous)) { + ms->forceNonContiguous = 0; + ms->nextToUpdate = ms->window.dictLimit; + } + if (cctx->appliedParams.ldmParams.enableLdm) { + ZSTD_window_update(&cctx->ldmState.window, src, srcSize, /* forceNonContiguous */ 0); + } + + if (!frame) { + /* overflow check and correction for block mode */ + ZSTD_overflowCorrectIfNeeded( + ms, &cctx->workspace, &cctx->appliedParams, + src, (BYTE const*)src + srcSize); + } + + DEBUGLOG(5, "ZSTD_compressContinue_internal (blockSize=%u)", (unsigned)cctx->blockSize); + { size_t const cSize = frame ? + ZSTD_compress_frameChunk (cctx, dst, dstCapacity, src, srcSize, lastFrameChunk) : + ZSTD_compressBlock_internal (cctx, dst, dstCapacity, src, srcSize, 0 /* frame */); + FORWARD_IF_ERROR(cSize, "%s", frame ? "ZSTD_compress_frameChunk failed" : "ZSTD_compressBlock_internal failed"); + cctx->consumedSrcSize += srcSize; + cctx->producedCSize += (cSize + fhSize); + assert(!(cctx->appliedParams.fParams.contentSizeFlag && cctx->pledgedSrcSizePlusOne == 0)); + if (cctx->pledgedSrcSizePlusOne != 0) { /* control src size */ + ZSTD_STATIC_ASSERT(ZSTD_CONTENTSIZE_UNKNOWN == (unsigned long long)-1); + RETURN_ERROR_IF( + cctx->consumedSrcSize+1 > cctx->pledgedSrcSizePlusOne, + srcSize_wrong, + "error : pledgedSrcSize = %u, while realSrcSize >= %u", + (unsigned)cctx->pledgedSrcSizePlusOne-1, + (unsigned)cctx->consumedSrcSize); + } + return cSize + fhSize; + } +} + +size_t ZSTD_compressContinue (ZSTD_CCtx* cctx, + void* dst, size_t dstCapacity, + const void* src, size_t srcSize) +{ + DEBUGLOG(5, "ZSTD_compressContinue (srcSize=%u)", (unsigned)srcSize); + return ZSTD_compressContinue_internal(cctx, dst, dstCapacity, src, srcSize, 1 /* frame mode */, 0 /* last chunk */); +} + + +size_t ZSTD_getBlockSize(const ZSTD_CCtx* cctx) +{ + ZSTD_compressionParameters const cParams = cctx->appliedParams.cParams; + assert(!ZSTD_checkCParams(cParams)); + return MIN (ZSTD_BLOCKSIZE_MAX, (U32)1 << cParams.windowLog); +} + +size_t ZSTD_compressBlock(ZSTD_CCtx* cctx, void* dst, size_t dstCapacity, const void* src, size_t srcSize) +{ + DEBUGLOG(5, "ZSTD_compressBlock: srcSize = %u", (unsigned)srcSize); + { size_t const blockSizeMax = ZSTD_getBlockSize(cctx); + RETURN_ERROR_IF(srcSize > blockSizeMax, srcSize_wrong, "input is larger than a block"); } + + return ZSTD_compressContinue_internal(cctx, dst, dstCapacity, src, srcSize, 0 /* frame mode */, 0 /* last chunk */); +} + +/*! ZSTD_loadDictionaryContent() : + * @return : 0, or an error code + */ +static size_t ZSTD_loadDictionaryContent(ZSTD_matchState_t* ms, + ldmState_t* ls, + ZSTD_cwksp* ws, + ZSTD_CCtx_params const* params, + const void* src, size_t srcSize, + ZSTD_dictTableLoadMethod_e dtlm) +{ + const BYTE* ip = (const BYTE*) src; + const BYTE* const iend = ip + srcSize; + int const loadLdmDict = params->ldmParams.enableLdm && ls != NULL; + + /* Assert that we the ms params match the params we're being given */ + ZSTD_assertEqualCParams(params->cParams, ms->cParams); + + if (srcSize > ZSTD_CHUNKSIZE_MAX) { + /* Allow the dictionary to set indices up to exactly ZSTD_CURRENT_MAX. + * Dictionaries right at the edge will immediately trigger overflow + * correction, but I don't want to insert extra constraints here. + */ + U32 const maxDictSize = ZSTD_CURRENT_MAX - 1; + /* We must have cleared our windows when our source is this large. */ + assert(ZSTD_window_isEmpty(ms->window)); + if (loadLdmDict) + assert(ZSTD_window_isEmpty(ls->window)); + /* If the dictionary is too large, only load the suffix of the dictionary. */ + if (srcSize > maxDictSize) { + ip = iend - maxDictSize; + src = ip; + srcSize = maxDictSize; + } + } + + DEBUGLOG(4, "ZSTD_loadDictionaryContent(): useRowMatchFinder=%d", (int)params->useRowMatchFinder); + ZSTD_window_update(&ms->window, src, srcSize, /* forceNonContiguous */ 0); + ms->loadedDictEnd = params->forceWindow ? 0 : (U32)(iend - ms->window.base); + ms->forceNonContiguous = params->deterministicRefPrefix; + + if (loadLdmDict) { + ZSTD_window_update(&ls->window, src, srcSize, /* forceNonContiguous */ 0); + ls->loadedDictEnd = params->forceWindow ? 0 : (U32)(iend - ls->window.base); + } + + if (srcSize <= HASH_READ_SIZE) return 0; + + ZSTD_overflowCorrectIfNeeded(ms, ws, params, ip, iend); + + if (loadLdmDict) + ZSTD_ldm_fillHashTable(ls, ip, iend, ¶ms->ldmParams); + + switch(params->cParams.strategy) + { + case ZSTD_fast: + ZSTD_fillHashTable(ms, iend, dtlm); + break; + case ZSTD_dfast: + ZSTD_fillDoubleHashTable(ms, iend, dtlm); + break; + + case ZSTD_greedy: + case ZSTD_lazy: + case ZSTD_lazy2: + assert(srcSize >= HASH_READ_SIZE); + if (ms->dedicatedDictSearch) { + assert(ms->chainTable != NULL); + ZSTD_dedicatedDictSearch_lazy_loadDictionary(ms, iend-HASH_READ_SIZE); + } else { + assert(params->useRowMatchFinder != ZSTD_urm_auto); + if (params->useRowMatchFinder == ZSTD_urm_enableRowMatchFinder) { + size_t const tagTableSize = ((size_t)1 << params->cParams.hashLog) * sizeof(U16); + ZSTD_memset(ms->tagTable, 0, tagTableSize); + ZSTD_row_update(ms, iend-HASH_READ_SIZE); + DEBUGLOG(4, "Using row-based hash table for lazy dict"); + } else { + ZSTD_insertAndFindFirstIndex(ms, iend-HASH_READ_SIZE); + DEBUGLOG(4, "Using chain-based hash table for lazy dict"); + } + } + break; + + case ZSTD_btlazy2: /* we want the dictionary table fully sorted */ + case ZSTD_btopt: + case ZSTD_btultra: + case ZSTD_btultra2: + assert(srcSize >= HASH_READ_SIZE); + ZSTD_updateTree(ms, iend-HASH_READ_SIZE, iend); + break; + + default: + assert(0); /* not possible : not a valid strategy id */ + } + + ms->nextToUpdate = (U32)(iend - ms->window.base); + return 0; +} + + +/* Dictionaries that assign zero probability to symbols that show up causes problems + * when FSE encoding. Mark dictionaries with zero probability symbols as FSE_repeat_check + * and only dictionaries with 100% valid symbols can be assumed valid. + */ +static FSE_repeat ZSTD_dictNCountRepeat(short* normalizedCounter, unsigned dictMaxSymbolValue, unsigned maxSymbolValue) +{ + U32 s; + if (dictMaxSymbolValue < maxSymbolValue) { + return FSE_repeat_check; + } + for (s = 0; s <= maxSymbolValue; ++s) { + if (normalizedCounter[s] == 0) { + return FSE_repeat_check; + } + } + return FSE_repeat_valid; +} + +size_t ZSTD_loadCEntropy(ZSTD_compressedBlockState_t* bs, void* workspace, + const void* const dict, size_t dictSize) +{ + short offcodeNCount[MaxOff+1]; + unsigned offcodeMaxValue = MaxOff; + const BYTE* dictPtr = (const BYTE*)dict; /* skip magic num and dict ID */ + const BYTE* const dictEnd = dictPtr + dictSize; + dictPtr += 8; + bs->entropy.huf.repeatMode = HUF_repeat_check; + + { unsigned maxSymbolValue = 255; + unsigned hasZeroWeights = 1; + size_t const hufHeaderSize = HUF_readCTable((HUF_CElt*)bs->entropy.huf.CTable, &maxSymbolValue, dictPtr, + dictEnd-dictPtr, &hasZeroWeights); + + /* We only set the loaded table as valid if it contains all non-zero + * weights. Otherwise, we set it to check */ + if (!hasZeroWeights) + bs->entropy.huf.repeatMode = HUF_repeat_valid; + + RETURN_ERROR_IF(HUF_isError(hufHeaderSize), dictionary_corrupted, ""); + RETURN_ERROR_IF(maxSymbolValue < 255, dictionary_corrupted, ""); + dictPtr += hufHeaderSize; + } + + { unsigned offcodeLog; + size_t const offcodeHeaderSize = FSE_readNCount(offcodeNCount, &offcodeMaxValue, &offcodeLog, dictPtr, dictEnd-dictPtr); + RETURN_ERROR_IF(FSE_isError(offcodeHeaderSize), dictionary_corrupted, ""); + RETURN_ERROR_IF(offcodeLog > OffFSELog, dictionary_corrupted, ""); + /* fill all offset symbols to avoid garbage at end of table */ + RETURN_ERROR_IF(FSE_isError(FSE_buildCTable_wksp( + bs->entropy.fse.offcodeCTable, + offcodeNCount, MaxOff, offcodeLog, + workspace, HUF_WORKSPACE_SIZE)), + dictionary_corrupted, ""); + /* Defer checking offcodeMaxValue because we need to know the size of the dictionary content */ + dictPtr += offcodeHeaderSize; + } + + { short matchlengthNCount[MaxML+1]; + unsigned matchlengthMaxValue = MaxML, matchlengthLog; + size_t const matchlengthHeaderSize = FSE_readNCount(matchlengthNCount, &matchlengthMaxValue, &matchlengthLog, dictPtr, dictEnd-dictPtr); + RETURN_ERROR_IF(FSE_isError(matchlengthHeaderSize), dictionary_corrupted, ""); + RETURN_ERROR_IF(matchlengthLog > MLFSELog, dictionary_corrupted, ""); + RETURN_ERROR_IF(FSE_isError(FSE_buildCTable_wksp( + bs->entropy.fse.matchlengthCTable, + matchlengthNCount, matchlengthMaxValue, matchlengthLog, + workspace, HUF_WORKSPACE_SIZE)), + dictionary_corrupted, ""); + bs->entropy.fse.matchlength_repeatMode = ZSTD_dictNCountRepeat(matchlengthNCount, matchlengthMaxValue, MaxML); + dictPtr += matchlengthHeaderSize; + } + + { short litlengthNCount[MaxLL+1]; + unsigned litlengthMaxValue = MaxLL, litlengthLog; + size_t const litlengthHeaderSize = FSE_readNCount(litlengthNCount, &litlengthMaxValue, &litlengthLog, dictPtr, dictEnd-dictPtr); + RETURN_ERROR_IF(FSE_isError(litlengthHeaderSize), dictionary_corrupted, ""); + RETURN_ERROR_IF(litlengthLog > LLFSELog, dictionary_corrupted, ""); + RETURN_ERROR_IF(FSE_isError(FSE_buildCTable_wksp( + bs->entropy.fse.litlengthCTable, + litlengthNCount, litlengthMaxValue, litlengthLog, + workspace, HUF_WORKSPACE_SIZE)), + dictionary_corrupted, ""); + bs->entropy.fse.litlength_repeatMode = ZSTD_dictNCountRepeat(litlengthNCount, litlengthMaxValue, MaxLL); + dictPtr += litlengthHeaderSize; + } + + RETURN_ERROR_IF(dictPtr+12 > dictEnd, dictionary_corrupted, ""); + bs->rep[0] = MEM_readLE32(dictPtr+0); + bs->rep[1] = MEM_readLE32(dictPtr+4); + bs->rep[2] = MEM_readLE32(dictPtr+8); + dictPtr += 12; + + { size_t const dictContentSize = (size_t)(dictEnd - dictPtr); + U32 offcodeMax = MaxOff; + if (dictContentSize <= ((U32)-1) - 128 KB) { + U32 const maxOffset = (U32)dictContentSize + 128 KB; /* The maximum offset that must be supported */ + offcodeMax = ZSTD_highbit32(maxOffset); /* Calculate minimum offset code required to represent maxOffset */ + } + /* All offset values <= dictContentSize + 128 KB must be representable for a valid table */ + bs->entropy.fse.offcode_repeatMode = ZSTD_dictNCountRepeat(offcodeNCount, offcodeMaxValue, MIN(offcodeMax, MaxOff)); + + /* All repCodes must be <= dictContentSize and != 0 */ + { U32 u; + for (u=0; u<3; u++) { + RETURN_ERROR_IF(bs->rep[u] == 0, dictionary_corrupted, ""); + RETURN_ERROR_IF(bs->rep[u] > dictContentSize, dictionary_corrupted, ""); + } } } + + return dictPtr - (const BYTE*)dict; +} + +/* Dictionary format : + * See : + * https://github.com/facebook/zstd/blob/release/doc/zstd_compression_format.md#dictionary-format + */ +/*! ZSTD_loadZstdDictionary() : + * @return : dictID, or an error code + * assumptions : magic number supposed already checked + * dictSize supposed >= 8 + */ +static size_t ZSTD_loadZstdDictionary(ZSTD_compressedBlockState_t* bs, + ZSTD_matchState_t* ms, + ZSTD_cwksp* ws, + ZSTD_CCtx_params const* params, + const void* dict, size_t dictSize, + ZSTD_dictTableLoadMethod_e dtlm, + void* workspace) +{ + const BYTE* dictPtr = (const BYTE*)dict; + const BYTE* const dictEnd = dictPtr + dictSize; + size_t dictID; + size_t eSize; + ZSTD_STATIC_ASSERT(HUF_WORKSPACE_SIZE >= (1<= 8); + assert(MEM_readLE32(dictPtr) == ZSTD_MAGIC_DICTIONARY); + + dictID = params->fParams.noDictIDFlag ? 0 : MEM_readLE32(dictPtr + 4 /* skip magic number */ ); + eSize = ZSTD_loadCEntropy(bs, workspace, dict, dictSize); + FORWARD_IF_ERROR(eSize, "ZSTD_loadCEntropy failed"); + dictPtr += eSize; + + { + size_t const dictContentSize = (size_t)(dictEnd - dictPtr); + FORWARD_IF_ERROR(ZSTD_loadDictionaryContent( + ms, NULL, ws, params, dictPtr, dictContentSize, dtlm), ""); + } + return dictID; +} + +/** ZSTD_compress_insertDictionary() : +* @return : dictID, or an error code */ +static size_t +ZSTD_compress_insertDictionary(ZSTD_compressedBlockState_t* bs, + ZSTD_matchState_t* ms, + ldmState_t* ls, + ZSTD_cwksp* ws, + const ZSTD_CCtx_params* params, + const void* dict, size_t dictSize, + ZSTD_dictContentType_e dictContentType, + ZSTD_dictTableLoadMethod_e dtlm, + void* workspace) +{ + DEBUGLOG(4, "ZSTD_compress_insertDictionary (dictSize=%u)", (U32)dictSize); + if ((dict==NULL) || (dictSize<8)) { + RETURN_ERROR_IF(dictContentType == ZSTD_dct_fullDict, dictionary_wrong, ""); + return 0; + } + + ZSTD_reset_compressedBlockState(bs); + + /* dict restricted modes */ + if (dictContentType == ZSTD_dct_rawContent) + return ZSTD_loadDictionaryContent(ms, ls, ws, params, dict, dictSize, dtlm); + + if (MEM_readLE32(dict) != ZSTD_MAGIC_DICTIONARY) { + if (dictContentType == ZSTD_dct_auto) { + DEBUGLOG(4, "raw content dictionary detected"); + return ZSTD_loadDictionaryContent( + ms, ls, ws, params, dict, dictSize, dtlm); + } + RETURN_ERROR_IF(dictContentType == ZSTD_dct_fullDict, dictionary_wrong, ""); + assert(0); /* impossible */ + } + + /* dict as full zstd dictionary */ + return ZSTD_loadZstdDictionary( + bs, ms, ws, params, dict, dictSize, dtlm, workspace); +} + +#define ZSTD_USE_CDICT_PARAMS_SRCSIZE_CUTOFF (128 KB) +#define ZSTD_USE_CDICT_PARAMS_DICTSIZE_MULTIPLIER (6ULL) + +/*! ZSTD_compressBegin_internal() : + * @return : 0, or an error code */ +static size_t ZSTD_compressBegin_internal(ZSTD_CCtx* cctx, + const void* dict, size_t dictSize, + ZSTD_dictContentType_e dictContentType, + ZSTD_dictTableLoadMethod_e dtlm, + const ZSTD_CDict* cdict, + const ZSTD_CCtx_params* params, U64 pledgedSrcSize, + ZSTD_buffered_policy_e zbuff) +{ + size_t const dictContentSize = cdict ? cdict->dictContentSize : dictSize; +#if ZSTD_TRACE + cctx->traceCtx = (ZSTD_trace_compress_begin != NULL) ? ZSTD_trace_compress_begin(cctx) : 0; +#endif + DEBUGLOG(4, "ZSTD_compressBegin_internal: wlog=%u", params->cParams.windowLog); + /* params are supposed to be fully validated at this point */ + assert(!ZSTD_isError(ZSTD_checkCParams(params->cParams))); + assert(!((dict) && (cdict))); /* either dict or cdict, not both */ + if ( (cdict) + && (cdict->dictContentSize > 0) + && ( pledgedSrcSize < ZSTD_USE_CDICT_PARAMS_SRCSIZE_CUTOFF + || pledgedSrcSize < cdict->dictContentSize * ZSTD_USE_CDICT_PARAMS_DICTSIZE_MULTIPLIER + || pledgedSrcSize == ZSTD_CONTENTSIZE_UNKNOWN + || cdict->compressionLevel == 0) + && (params->attachDictPref != ZSTD_dictForceLoad) ) { + return ZSTD_resetCCtx_usingCDict(cctx, cdict, params, pledgedSrcSize, zbuff); + } + + FORWARD_IF_ERROR( ZSTD_resetCCtx_internal(cctx, params, pledgedSrcSize, + dictContentSize, + ZSTDcrp_makeClean, zbuff) , ""); + { size_t const dictID = cdict ? + ZSTD_compress_insertDictionary( + cctx->blockState.prevCBlock, &cctx->blockState.matchState, + &cctx->ldmState, &cctx->workspace, &cctx->appliedParams, cdict->dictContent, + cdict->dictContentSize, cdict->dictContentType, dtlm, + cctx->entropyWorkspace) + : ZSTD_compress_insertDictionary( + cctx->blockState.prevCBlock, &cctx->blockState.matchState, + &cctx->ldmState, &cctx->workspace, &cctx->appliedParams, dict, dictSize, + dictContentType, dtlm, cctx->entropyWorkspace); + FORWARD_IF_ERROR(dictID, "ZSTD_compress_insertDictionary failed"); + assert(dictID <= UINT_MAX); + cctx->dictID = (U32)dictID; + cctx->dictContentSize = dictContentSize; + } + return 0; +} + +size_t ZSTD_compressBegin_advanced_internal(ZSTD_CCtx* cctx, + const void* dict, size_t dictSize, + ZSTD_dictContentType_e dictContentType, + ZSTD_dictTableLoadMethod_e dtlm, + const ZSTD_CDict* cdict, + const ZSTD_CCtx_params* params, + unsigned long long pledgedSrcSize) +{ + DEBUGLOG(4, "ZSTD_compressBegin_advanced_internal: wlog=%u", params->cParams.windowLog); + /* compression parameters verification and optimization */ + FORWARD_IF_ERROR( ZSTD_checkCParams(params->cParams) , ""); + return ZSTD_compressBegin_internal(cctx, + dict, dictSize, dictContentType, dtlm, + cdict, + params, pledgedSrcSize, + ZSTDb_not_buffered); +} + +/*! ZSTD_compressBegin_advanced() : +* @return : 0, or an error code */ +size_t ZSTD_compressBegin_advanced(ZSTD_CCtx* cctx, + const void* dict, size_t dictSize, + ZSTD_parameters params, unsigned long long pledgedSrcSize) +{ + ZSTD_CCtx_params cctxParams; + ZSTD_CCtxParams_init_internal(&cctxParams, ¶ms, ZSTD_NO_CLEVEL); + return ZSTD_compressBegin_advanced_internal(cctx, + dict, dictSize, ZSTD_dct_auto, ZSTD_dtlm_fast, + NULL /*cdict*/, + &cctxParams, pledgedSrcSize); +} + +size_t ZSTD_compressBegin_usingDict(ZSTD_CCtx* cctx, const void* dict, size_t dictSize, int compressionLevel) +{ + ZSTD_CCtx_params cctxParams; + { + ZSTD_parameters const params = ZSTD_getParams_internal(compressionLevel, ZSTD_CONTENTSIZE_UNKNOWN, dictSize, ZSTD_cpm_noAttachDict); + ZSTD_CCtxParams_init_internal(&cctxParams, ¶ms, (compressionLevel == 0) ? ZSTD_CLEVEL_DEFAULT : compressionLevel); + } + DEBUGLOG(4, "ZSTD_compressBegin_usingDict (dictSize=%u)", (unsigned)dictSize); + return ZSTD_compressBegin_internal(cctx, dict, dictSize, ZSTD_dct_auto, ZSTD_dtlm_fast, NULL, + &cctxParams, ZSTD_CONTENTSIZE_UNKNOWN, ZSTDb_not_buffered); +} + +size_t ZSTD_compressBegin(ZSTD_CCtx* cctx, int compressionLevel) +{ + return ZSTD_compressBegin_usingDict(cctx, NULL, 0, compressionLevel); +} + + +/*! ZSTD_writeEpilogue() : +* Ends a frame. +* @return : nb of bytes written into dst (or an error code) */ +static size_t ZSTD_writeEpilogue(ZSTD_CCtx* cctx, void* dst, size_t dstCapacity) +{ + BYTE* const ostart = (BYTE*)dst; + BYTE* op = ostart; + size_t fhSize = 0; + + DEBUGLOG(4, "ZSTD_writeEpilogue"); + RETURN_ERROR_IF(cctx->stage == ZSTDcs_created, stage_wrong, "init missing"); + + /* special case : empty frame */ + if (cctx->stage == ZSTDcs_init) { + fhSize = ZSTD_writeFrameHeader(dst, dstCapacity, &cctx->appliedParams, 0, 0); + FORWARD_IF_ERROR(fhSize, "ZSTD_writeFrameHeader failed"); + dstCapacity -= fhSize; + op += fhSize; + cctx->stage = ZSTDcs_ongoing; + } + + if (cctx->stage != ZSTDcs_ending) { + /* write one last empty block, make it the "last" block */ + U32 const cBlockHeader24 = 1 /* last block */ + (((U32)bt_raw)<<1) + 0; + RETURN_ERROR_IF(dstCapacity<4, dstSize_tooSmall, "no room for epilogue"); + MEM_writeLE32(op, cBlockHeader24); + op += ZSTD_blockHeaderSize; + dstCapacity -= ZSTD_blockHeaderSize; + } + + if (cctx->appliedParams.fParams.checksumFlag) { + U32 const checksum = (U32) XXH64_digest(&cctx->xxhState); + RETURN_ERROR_IF(dstCapacity<4, dstSize_tooSmall, "no room for checksum"); + DEBUGLOG(4, "ZSTD_writeEpilogue: write checksum : %08X", (unsigned)checksum); + MEM_writeLE32(op, checksum); + op += 4; + } + + cctx->stage = ZSTDcs_created; /* return to "created but no init" status */ + return op-ostart; +} + +void ZSTD_CCtx_trace(ZSTD_CCtx* cctx, size_t extraCSize) +{ +#if ZSTD_TRACE + if (cctx->traceCtx && ZSTD_trace_compress_end != NULL) { + int const streaming = cctx->inBuffSize > 0 || cctx->outBuffSize > 0 || cctx->appliedParams.nbWorkers > 0; + ZSTD_Trace trace; + ZSTD_memset(&trace, 0, sizeof(trace)); + trace.version = ZSTD_VERSION_NUMBER; + trace.streaming = streaming; + trace.dictionaryID = cctx->dictID; + trace.dictionarySize = cctx->dictContentSize; + trace.uncompressedSize = cctx->consumedSrcSize; + trace.compressedSize = cctx->producedCSize + extraCSize; + trace.params = &cctx->appliedParams; + trace.cctx = cctx; + ZSTD_trace_compress_end(cctx->traceCtx, &trace); + } + cctx->traceCtx = 0; +#else + (void)cctx; + (void)extraCSize; +#endif +} + +size_t ZSTD_compressEnd (ZSTD_CCtx* cctx, + void* dst, size_t dstCapacity, + const void* src, size_t srcSize) +{ + size_t endResult; + size_t const cSize = ZSTD_compressContinue_internal(cctx, + dst, dstCapacity, src, srcSize, + 1 /* frame mode */, 1 /* last chunk */); + FORWARD_IF_ERROR(cSize, "ZSTD_compressContinue_internal failed"); + endResult = ZSTD_writeEpilogue(cctx, (char*)dst + cSize, dstCapacity-cSize); + FORWARD_IF_ERROR(endResult, "ZSTD_writeEpilogue failed"); + assert(!(cctx->appliedParams.fParams.contentSizeFlag && cctx->pledgedSrcSizePlusOne == 0)); + if (cctx->pledgedSrcSizePlusOne != 0) { /* control src size */ + ZSTD_STATIC_ASSERT(ZSTD_CONTENTSIZE_UNKNOWN == (unsigned long long)-1); + DEBUGLOG(4, "end of frame : controlling src size"); + RETURN_ERROR_IF( + cctx->pledgedSrcSizePlusOne != cctx->consumedSrcSize+1, + srcSize_wrong, + "error : pledgedSrcSize = %u, while realSrcSize = %u", + (unsigned)cctx->pledgedSrcSizePlusOne-1, + (unsigned)cctx->consumedSrcSize); + } + ZSTD_CCtx_trace(cctx, endResult); + return cSize + endResult; +} + +size_t ZSTD_compress_advanced (ZSTD_CCtx* cctx, + void* dst, size_t dstCapacity, + const void* src, size_t srcSize, + const void* dict,size_t dictSize, + ZSTD_parameters params) +{ + DEBUGLOG(4, "ZSTD_compress_advanced"); + FORWARD_IF_ERROR(ZSTD_checkCParams(params.cParams), ""); + ZSTD_CCtxParams_init_internal(&cctx->simpleApiParams, ¶ms, ZSTD_NO_CLEVEL); + return ZSTD_compress_advanced_internal(cctx, + dst, dstCapacity, + src, srcSize, + dict, dictSize, + &cctx->simpleApiParams); +} + +/* Internal */ +size_t ZSTD_compress_advanced_internal( + ZSTD_CCtx* cctx, + void* dst, size_t dstCapacity, + const void* src, size_t srcSize, + const void* dict,size_t dictSize, + const ZSTD_CCtx_params* params) +{ + DEBUGLOG(4, "ZSTD_compress_advanced_internal (srcSize:%u)", (unsigned)srcSize); + FORWARD_IF_ERROR( ZSTD_compressBegin_internal(cctx, + dict, dictSize, ZSTD_dct_auto, ZSTD_dtlm_fast, NULL, + params, srcSize, ZSTDb_not_buffered) , ""); + return ZSTD_compressEnd(cctx, dst, dstCapacity, src, srcSize); +} + +size_t ZSTD_compress_usingDict(ZSTD_CCtx* cctx, + void* dst, size_t dstCapacity, + const void* src, size_t srcSize, + const void* dict, size_t dictSize, + int compressionLevel) +{ + { + ZSTD_parameters const params = ZSTD_getParams_internal(compressionLevel, srcSize, dict ? dictSize : 0, ZSTD_cpm_noAttachDict); + assert(params.fParams.contentSizeFlag == 1); + ZSTD_CCtxParams_init_internal(&cctx->simpleApiParams, ¶ms, (compressionLevel == 0) ? ZSTD_CLEVEL_DEFAULT: compressionLevel); + } + DEBUGLOG(4, "ZSTD_compress_usingDict (srcSize=%u)", (unsigned)srcSize); + return ZSTD_compress_advanced_internal(cctx, dst, dstCapacity, src, srcSize, dict, dictSize, &cctx->simpleApiParams); +} + +size_t ZSTD_compressCCtx(ZSTD_CCtx* cctx, + void* dst, size_t dstCapacity, + const void* src, size_t srcSize, + int compressionLevel) +{ + DEBUGLOG(4, "ZSTD_compressCCtx (srcSize=%u)", (unsigned)srcSize); + assert(cctx != NULL); + return ZSTD_compress_usingDict(cctx, dst, dstCapacity, src, srcSize, NULL, 0, compressionLevel); +} + +size_t ZSTD_compress(void* dst, size_t dstCapacity, + const void* src, size_t srcSize, + int compressionLevel) +{ + size_t result; +#if ZSTD_COMPRESS_HEAPMODE + ZSTD_CCtx* cctx = ZSTD_createCCtx(); + RETURN_ERROR_IF(!cctx, memory_allocation, "ZSTD_createCCtx failed"); + result = ZSTD_compressCCtx(cctx, dst, dstCapacity, src, srcSize, compressionLevel); + ZSTD_freeCCtx(cctx); +#else + ZSTD_CCtx ctxBody; + ZSTD_initCCtx(&ctxBody, ZSTD_defaultCMem); + result = ZSTD_compressCCtx(&ctxBody, dst, dstCapacity, src, srcSize, compressionLevel); + ZSTD_freeCCtxContent(&ctxBody); /* can't free ctxBody itself, as it's on stack; free only heap content */ +#endif + return result; +} + + +/* ===== Dictionary API ===== */ + +/*! ZSTD_estimateCDictSize_advanced() : + * Estimate amount of memory that will be needed to create a dictionary with following arguments */ +size_t ZSTD_estimateCDictSize_advanced( + size_t dictSize, ZSTD_compressionParameters cParams, + ZSTD_dictLoadMethod_e dictLoadMethod) +{ + DEBUGLOG(5, "sizeof(ZSTD_CDict) : %u", (unsigned)sizeof(ZSTD_CDict)); + return ZSTD_cwksp_alloc_size(sizeof(ZSTD_CDict)) + + ZSTD_cwksp_alloc_size(HUF_WORKSPACE_SIZE) + /* enableDedicatedDictSearch == 1 ensures that CDict estimation will not be too small + * in case we are using DDS with row-hash. */ + + ZSTD_sizeof_matchState(&cParams, ZSTD_resolveRowMatchFinderMode(ZSTD_urm_auto, &cParams), + /* enableDedicatedDictSearch */ 1, /* forCCtx */ 0) + + (dictLoadMethod == ZSTD_dlm_byRef ? 0 + : ZSTD_cwksp_alloc_size(ZSTD_cwksp_align(dictSize, sizeof(void *)))); +} + +size_t ZSTD_estimateCDictSize(size_t dictSize, int compressionLevel) +{ + ZSTD_compressionParameters const cParams = ZSTD_getCParams_internal(compressionLevel, ZSTD_CONTENTSIZE_UNKNOWN, dictSize, ZSTD_cpm_createCDict); + return ZSTD_estimateCDictSize_advanced(dictSize, cParams, ZSTD_dlm_byCopy); +} + +size_t ZSTD_sizeof_CDict(const ZSTD_CDict* cdict) +{ + if (cdict==NULL) return 0; /* support sizeof on NULL */ + DEBUGLOG(5, "sizeof(*cdict) : %u", (unsigned)sizeof(*cdict)); + /* cdict may be in the workspace */ + return (cdict->workspace.workspace == cdict ? 0 : sizeof(*cdict)) + + ZSTD_cwksp_sizeof(&cdict->workspace); +} + +static size_t ZSTD_initCDict_internal( + ZSTD_CDict* cdict, + const void* dictBuffer, size_t dictSize, + ZSTD_dictLoadMethod_e dictLoadMethod, + ZSTD_dictContentType_e dictContentType, + ZSTD_CCtx_params params) +{ + DEBUGLOG(3, "ZSTD_initCDict_internal (dictContentType:%u)", (unsigned)dictContentType); + assert(!ZSTD_checkCParams(params.cParams)); + cdict->matchState.cParams = params.cParams; + cdict->matchState.dedicatedDictSearch = params.enableDedicatedDictSearch; + if ((dictLoadMethod == ZSTD_dlm_byRef) || (!dictBuffer) || (!dictSize)) { + cdict->dictContent = dictBuffer; + } else { + void *internalBuffer = ZSTD_cwksp_reserve_object(&cdict->workspace, ZSTD_cwksp_align(dictSize, sizeof(void*))); + RETURN_ERROR_IF(!internalBuffer, memory_allocation, "NULL pointer!"); + cdict->dictContent = internalBuffer; + ZSTD_memcpy(internalBuffer, dictBuffer, dictSize); + } + cdict->dictContentSize = dictSize; + cdict->dictContentType = dictContentType; + + cdict->entropyWorkspace = (U32*)ZSTD_cwksp_reserve_object(&cdict->workspace, HUF_WORKSPACE_SIZE); + + + /* Reset the state to no dictionary */ + ZSTD_reset_compressedBlockState(&cdict->cBlockState); + FORWARD_IF_ERROR(ZSTD_reset_matchState( + &cdict->matchState, + &cdict->workspace, + ¶ms.cParams, + params.useRowMatchFinder, + ZSTDcrp_makeClean, + ZSTDirp_reset, + ZSTD_resetTarget_CDict), ""); + /* (Maybe) load the dictionary + * Skips loading the dictionary if it is < 8 bytes. + */ + { params.compressionLevel = ZSTD_CLEVEL_DEFAULT; + params.fParams.contentSizeFlag = 1; + { size_t const dictID = ZSTD_compress_insertDictionary( + &cdict->cBlockState, &cdict->matchState, NULL, &cdict->workspace, + ¶ms, cdict->dictContent, cdict->dictContentSize, + dictContentType, ZSTD_dtlm_full, cdict->entropyWorkspace); + FORWARD_IF_ERROR(dictID, "ZSTD_compress_insertDictionary failed"); + assert(dictID <= (size_t)(U32)-1); + cdict->dictID = (U32)dictID; + } + } + + return 0; +} + +static ZSTD_CDict* ZSTD_createCDict_advanced_internal(size_t dictSize, + ZSTD_dictLoadMethod_e dictLoadMethod, + ZSTD_compressionParameters cParams, + ZSTD_useRowMatchFinderMode_e useRowMatchFinder, + U32 enableDedicatedDictSearch, + ZSTD_customMem customMem) +{ + if ((!customMem.customAlloc) ^ (!customMem.customFree)) return NULL; + + { size_t const workspaceSize = + ZSTD_cwksp_alloc_size(sizeof(ZSTD_CDict)) + + ZSTD_cwksp_alloc_size(HUF_WORKSPACE_SIZE) + + ZSTD_sizeof_matchState(&cParams, useRowMatchFinder, enableDedicatedDictSearch, /* forCCtx */ 0) + + (dictLoadMethod == ZSTD_dlm_byRef ? 0 + : ZSTD_cwksp_alloc_size(ZSTD_cwksp_align(dictSize, sizeof(void*)))); + void* const workspace = ZSTD_customMalloc(workspaceSize, customMem); + ZSTD_cwksp ws; + ZSTD_CDict* cdict; + + if (!workspace) { + ZSTD_customFree(workspace, customMem); + return NULL; + } + + ZSTD_cwksp_init(&ws, workspace, workspaceSize, ZSTD_cwksp_dynamic_alloc); + + cdict = (ZSTD_CDict*)ZSTD_cwksp_reserve_object(&ws, sizeof(ZSTD_CDict)); + assert(cdict != NULL); + ZSTD_cwksp_move(&cdict->workspace, &ws); + cdict->customMem = customMem; + cdict->compressionLevel = ZSTD_NO_CLEVEL; /* signals advanced API usage */ + cdict->useRowMatchFinder = useRowMatchFinder; + return cdict; + } +} + +ZSTD_CDict* ZSTD_createCDict_advanced(const void* dictBuffer, size_t dictSize, + ZSTD_dictLoadMethod_e dictLoadMethod, + ZSTD_dictContentType_e dictContentType, + ZSTD_compressionParameters cParams, + ZSTD_customMem customMem) +{ + ZSTD_CCtx_params cctxParams; + ZSTD_memset(&cctxParams, 0, sizeof(cctxParams)); + ZSTD_CCtxParams_init(&cctxParams, 0); + cctxParams.cParams = cParams; + cctxParams.customMem = customMem; + return ZSTD_createCDict_advanced2( + dictBuffer, dictSize, + dictLoadMethod, dictContentType, + &cctxParams, customMem); +} + +ZSTDLIB_API ZSTD_CDict* ZSTD_createCDict_advanced2( + const void* dict, size_t dictSize, + ZSTD_dictLoadMethod_e dictLoadMethod, + ZSTD_dictContentType_e dictContentType, + const ZSTD_CCtx_params* originalCctxParams, + ZSTD_customMem customMem) +{ + ZSTD_CCtx_params cctxParams = *originalCctxParams; + ZSTD_compressionParameters cParams; + ZSTD_CDict* cdict; + + DEBUGLOG(3, "ZSTD_createCDict_advanced2, mode %u", (unsigned)dictContentType); + if (!customMem.customAlloc ^ !customMem.customFree) return NULL; + + if (cctxParams.enableDedicatedDictSearch) { + cParams = ZSTD_dedicatedDictSearch_getCParams( + cctxParams.compressionLevel, dictSize); + ZSTD_overrideCParams(&cParams, &cctxParams.cParams); + } else { + cParams = ZSTD_getCParamsFromCCtxParams( + &cctxParams, ZSTD_CONTENTSIZE_UNKNOWN, dictSize, ZSTD_cpm_createCDict); + } + + if (!ZSTD_dedicatedDictSearch_isSupported(&cParams)) { + /* Fall back to non-DDSS params */ + cctxParams.enableDedicatedDictSearch = 0; + cParams = ZSTD_getCParamsFromCCtxParams( + &cctxParams, ZSTD_CONTENTSIZE_UNKNOWN, dictSize, ZSTD_cpm_createCDict); + } + + DEBUGLOG(3, "ZSTD_createCDict_advanced2: DDS: %u", cctxParams.enableDedicatedDictSearch); + cctxParams.cParams = cParams; + cctxParams.useRowMatchFinder = ZSTD_resolveRowMatchFinderMode(cctxParams.useRowMatchFinder, &cParams); + + cdict = ZSTD_createCDict_advanced_internal(dictSize, + dictLoadMethod, cctxParams.cParams, + cctxParams.useRowMatchFinder, cctxParams.enableDedicatedDictSearch, + customMem); + + if (ZSTD_isError( ZSTD_initCDict_internal(cdict, + dict, dictSize, + dictLoadMethod, dictContentType, + cctxParams) )) { + ZSTD_freeCDict(cdict); + return NULL; + } + + return cdict; +} + +ZSTD_CDict* ZSTD_createCDict(const void* dict, size_t dictSize, int compressionLevel) +{ + ZSTD_compressionParameters cParams = ZSTD_getCParams_internal(compressionLevel, ZSTD_CONTENTSIZE_UNKNOWN, dictSize, ZSTD_cpm_createCDict); + ZSTD_CDict* const cdict = ZSTD_createCDict_advanced(dict, dictSize, + ZSTD_dlm_byCopy, ZSTD_dct_auto, + cParams, ZSTD_defaultCMem); + if (cdict) + cdict->compressionLevel = (compressionLevel == 0) ? ZSTD_CLEVEL_DEFAULT : compressionLevel; + return cdict; +} + +ZSTD_CDict* ZSTD_createCDict_byReference(const void* dict, size_t dictSize, int compressionLevel) +{ + ZSTD_compressionParameters cParams = ZSTD_getCParams_internal(compressionLevel, ZSTD_CONTENTSIZE_UNKNOWN, dictSize, ZSTD_cpm_createCDict); + ZSTD_CDict* const cdict = ZSTD_createCDict_advanced(dict, dictSize, + ZSTD_dlm_byRef, ZSTD_dct_auto, + cParams, ZSTD_defaultCMem); + if (cdict) + cdict->compressionLevel = (compressionLevel == 0) ? ZSTD_CLEVEL_DEFAULT : compressionLevel; + return cdict; +} + +size_t ZSTD_freeCDict(ZSTD_CDict* cdict) +{ + if (cdict==NULL) return 0; /* support free on NULL */ + { ZSTD_customMem const cMem = cdict->customMem; + int cdictInWorkspace = ZSTD_cwksp_owns_buffer(&cdict->workspace, cdict); + ZSTD_cwksp_free(&cdict->workspace, cMem); + if (!cdictInWorkspace) { + ZSTD_customFree(cdict, cMem); + } + return 0; + } +} + +/*! ZSTD_initStaticCDict_advanced() : + * Generate a digested dictionary in provided memory area. + * workspace: The memory area to emplace the dictionary into. + * Provided pointer must 8-bytes aligned. + * It must outlive dictionary usage. + * workspaceSize: Use ZSTD_estimateCDictSize() + * to determine how large workspace must be. + * cParams : use ZSTD_getCParams() to transform a compression level + * into its relevants cParams. + * @return : pointer to ZSTD_CDict*, or NULL if error (size too small) + * Note : there is no corresponding "free" function. + * Since workspace was allocated externally, it must be freed externally. + */ +const ZSTD_CDict* ZSTD_initStaticCDict( + void* workspace, size_t workspaceSize, + const void* dict, size_t dictSize, + ZSTD_dictLoadMethod_e dictLoadMethod, + ZSTD_dictContentType_e dictContentType, + ZSTD_compressionParameters cParams) +{ + ZSTD_useRowMatchFinderMode_e const useRowMatchFinder = ZSTD_resolveRowMatchFinderMode(ZSTD_urm_auto, &cParams); + /* enableDedicatedDictSearch == 1 ensures matchstate is not too small in case this CDict will be used for DDS + row hash */ + size_t const matchStateSize = ZSTD_sizeof_matchState(&cParams, useRowMatchFinder, /* enableDedicatedDictSearch */ 1, /* forCCtx */ 0); + size_t const neededSize = ZSTD_cwksp_alloc_size(sizeof(ZSTD_CDict)) + + (dictLoadMethod == ZSTD_dlm_byRef ? 0 + : ZSTD_cwksp_alloc_size(ZSTD_cwksp_align(dictSize, sizeof(void*)))) + + ZSTD_cwksp_alloc_size(HUF_WORKSPACE_SIZE) + + matchStateSize; + ZSTD_CDict* cdict; + ZSTD_CCtx_params params; + + if ((size_t)workspace & 7) return NULL; /* 8-aligned */ + + { + ZSTD_cwksp ws; + ZSTD_cwksp_init(&ws, workspace, workspaceSize, ZSTD_cwksp_static_alloc); + cdict = (ZSTD_CDict*)ZSTD_cwksp_reserve_object(&ws, sizeof(ZSTD_CDict)); + if (cdict == NULL) return NULL; + ZSTD_cwksp_move(&cdict->workspace, &ws); + } + + DEBUGLOG(4, "(workspaceSize < neededSize) : (%u < %u) => %u", + (unsigned)workspaceSize, (unsigned)neededSize, (unsigned)(workspaceSize < neededSize)); + if (workspaceSize < neededSize) return NULL; + + ZSTD_CCtxParams_init(¶ms, 0); + params.cParams = cParams; + params.useRowMatchFinder = useRowMatchFinder; + cdict->useRowMatchFinder = useRowMatchFinder; + + if (ZSTD_isError( ZSTD_initCDict_internal(cdict, + dict, dictSize, + dictLoadMethod, dictContentType, + params) )) + return NULL; + + return cdict; +} + +ZSTD_compressionParameters ZSTD_getCParamsFromCDict(const ZSTD_CDict* cdict) +{ + assert(cdict != NULL); + return cdict->matchState.cParams; +} + +/*! ZSTD_getDictID_fromCDict() : + * Provides the dictID of the dictionary loaded into `cdict`. + * If @return == 0, the dictionary is not conformant to Zstandard specification, or empty. + * Non-conformant dictionaries can still be loaded, but as content-only dictionaries. */ +unsigned ZSTD_getDictID_fromCDict(const ZSTD_CDict* cdict) +{ + if (cdict==NULL) return 0; + return cdict->dictID; +} + +/* ZSTD_compressBegin_usingCDict_internal() : + * Implementation of various ZSTD_compressBegin_usingCDict* functions. + */ +static size_t ZSTD_compressBegin_usingCDict_internal( + ZSTD_CCtx* const cctx, const ZSTD_CDict* const cdict, + ZSTD_frameParameters const fParams, unsigned long long const pledgedSrcSize) +{ + ZSTD_CCtx_params cctxParams; + DEBUGLOG(4, "ZSTD_compressBegin_usingCDict_internal"); + RETURN_ERROR_IF(cdict==NULL, dictionary_wrong, "NULL pointer!"); + /* Initialize the cctxParams from the cdict */ + { + ZSTD_parameters params; + params.fParams = fParams; + params.cParams = ( pledgedSrcSize < ZSTD_USE_CDICT_PARAMS_SRCSIZE_CUTOFF + || pledgedSrcSize < cdict->dictContentSize * ZSTD_USE_CDICT_PARAMS_DICTSIZE_MULTIPLIER + || pledgedSrcSize == ZSTD_CONTENTSIZE_UNKNOWN + || cdict->compressionLevel == 0 ) ? + ZSTD_getCParamsFromCDict(cdict) + : ZSTD_getCParams(cdict->compressionLevel, + pledgedSrcSize, + cdict->dictContentSize); + ZSTD_CCtxParams_init_internal(&cctxParams, ¶ms, cdict->compressionLevel); + } + /* Increase window log to fit the entire dictionary and source if the + * source size is known. Limit the increase to 19, which is the + * window log for compression level 1 with the largest source size. + */ + if (pledgedSrcSize != ZSTD_CONTENTSIZE_UNKNOWN) { + U32 const limitedSrcSize = (U32)MIN(pledgedSrcSize, 1U << 19); + U32 const limitedSrcLog = limitedSrcSize > 1 ? ZSTD_highbit32(limitedSrcSize - 1) + 1 : 1; + cctxParams.cParams.windowLog = MAX(cctxParams.cParams.windowLog, limitedSrcLog); + } + return ZSTD_compressBegin_internal(cctx, + NULL, 0, ZSTD_dct_auto, ZSTD_dtlm_fast, + cdict, + &cctxParams, pledgedSrcSize, + ZSTDb_not_buffered); +} + + +/* ZSTD_compressBegin_usingCDict_advanced() : + * This function is DEPRECATED. + * cdict must be != NULL */ +size_t ZSTD_compressBegin_usingCDict_advanced( + ZSTD_CCtx* const cctx, const ZSTD_CDict* const cdict, + ZSTD_frameParameters const fParams, unsigned long long const pledgedSrcSize) +{ + return ZSTD_compressBegin_usingCDict_internal(cctx, cdict, fParams, pledgedSrcSize); +} + +/* ZSTD_compressBegin_usingCDict() : + * cdict must be != NULL */ +size_t ZSTD_compressBegin_usingCDict(ZSTD_CCtx* cctx, const ZSTD_CDict* cdict) +{ + ZSTD_frameParameters const fParams = { 0 /*content*/, 0 /*checksum*/, 0 /*noDictID*/ }; + return ZSTD_compressBegin_usingCDict_internal(cctx, cdict, fParams, ZSTD_CONTENTSIZE_UNKNOWN); +} + +/*! ZSTD_compress_usingCDict_internal(): + * Implementation of various ZSTD_compress_usingCDict* functions. + */ +static size_t ZSTD_compress_usingCDict_internal(ZSTD_CCtx* cctx, + void* dst, size_t dstCapacity, + const void* src, size_t srcSize, + const ZSTD_CDict* cdict, ZSTD_frameParameters fParams) +{ + FORWARD_IF_ERROR(ZSTD_compressBegin_usingCDict_internal(cctx, cdict, fParams, srcSize), ""); /* will check if cdict != NULL */ + return ZSTD_compressEnd(cctx, dst, dstCapacity, src, srcSize); +} + +/*! ZSTD_compress_usingCDict_advanced(): + * This function is DEPRECATED. + */ +size_t ZSTD_compress_usingCDict_advanced(ZSTD_CCtx* cctx, + void* dst, size_t dstCapacity, + const void* src, size_t srcSize, + const ZSTD_CDict* cdict, ZSTD_frameParameters fParams) +{ + return ZSTD_compress_usingCDict_internal(cctx, dst, dstCapacity, src, srcSize, cdict, fParams); +} + +/*! ZSTD_compress_usingCDict() : + * Compression using a digested Dictionary. + * Faster startup than ZSTD_compress_usingDict(), recommended when same dictionary is used multiple times. + * Note that compression parameters are decided at CDict creation time + * while frame parameters are hardcoded */ +size_t ZSTD_compress_usingCDict(ZSTD_CCtx* cctx, + void* dst, size_t dstCapacity, + const void* src, size_t srcSize, + const ZSTD_CDict* cdict) +{ + ZSTD_frameParameters const fParams = { 1 /*content*/, 0 /*checksum*/, 0 /*noDictID*/ }; + return ZSTD_compress_usingCDict_internal(cctx, dst, dstCapacity, src, srcSize, cdict, fParams); +} + + + +/* ****************************************************************** +* Streaming +********************************************************************/ + +ZSTD_CStream* ZSTD_createCStream(void) +{ + DEBUGLOG(3, "ZSTD_createCStream"); + return ZSTD_createCStream_advanced(ZSTD_defaultCMem); +} + +ZSTD_CStream* ZSTD_initStaticCStream(void *workspace, size_t workspaceSize) +{ + return ZSTD_initStaticCCtx(workspace, workspaceSize); +} + +ZSTD_CStream* ZSTD_createCStream_advanced(ZSTD_customMem customMem) +{ /* CStream and CCtx are now same object */ + return ZSTD_createCCtx_advanced(customMem); +} + +size_t ZSTD_freeCStream(ZSTD_CStream* zcs) +{ + return ZSTD_freeCCtx(zcs); /* same object */ +} + + + +/*====== Initialization ======*/ + +size_t ZSTD_CStreamInSize(void) { return ZSTD_BLOCKSIZE_MAX; } + +size_t ZSTD_CStreamOutSize(void) +{ + return ZSTD_compressBound(ZSTD_BLOCKSIZE_MAX) + ZSTD_blockHeaderSize + 4 /* 32-bits hash */ ; +} + +static ZSTD_cParamMode_e ZSTD_getCParamMode(ZSTD_CDict const* cdict, ZSTD_CCtx_params const* params, U64 pledgedSrcSize) +{ + if (cdict != NULL && ZSTD_shouldAttachDict(cdict, params, pledgedSrcSize)) + return ZSTD_cpm_attachDict; + else + return ZSTD_cpm_noAttachDict; +} + +/* ZSTD_resetCStream(): + * pledgedSrcSize == 0 means "unknown" */ +size_t ZSTD_resetCStream(ZSTD_CStream* zcs, unsigned long long pss) +{ + /* temporary : 0 interpreted as "unknown" during transition period. + * Users willing to specify "unknown" **must** use ZSTD_CONTENTSIZE_UNKNOWN. + * 0 will be interpreted as "empty" in the future. + */ + U64 const pledgedSrcSize = (pss==0) ? ZSTD_CONTENTSIZE_UNKNOWN : pss; + DEBUGLOG(4, "ZSTD_resetCStream: pledgedSrcSize = %u", (unsigned)pledgedSrcSize); + FORWARD_IF_ERROR( ZSTD_CCtx_reset(zcs, ZSTD_reset_session_only) , ""); + FORWARD_IF_ERROR( ZSTD_CCtx_setPledgedSrcSize(zcs, pledgedSrcSize) , ""); + return 0; +} + +/*! ZSTD_initCStream_internal() : + * Note : for lib/compress only. Used by zstdmt_compress.c. + * Assumption 1 : params are valid + * Assumption 2 : either dict, or cdict, is defined, not both */ +size_t ZSTD_initCStream_internal(ZSTD_CStream* zcs, + const void* dict, size_t dictSize, const ZSTD_CDict* cdict, + const ZSTD_CCtx_params* params, + unsigned long long pledgedSrcSize) +{ + DEBUGLOG(4, "ZSTD_initCStream_internal"); + FORWARD_IF_ERROR( ZSTD_CCtx_reset(zcs, ZSTD_reset_session_only) , ""); + FORWARD_IF_ERROR( ZSTD_CCtx_setPledgedSrcSize(zcs, pledgedSrcSize) , ""); + assert(!ZSTD_isError(ZSTD_checkCParams(params->cParams))); + zcs->requestedParams = *params; + assert(!((dict) && (cdict))); /* either dict or cdict, not both */ + if (dict) { + FORWARD_IF_ERROR( ZSTD_CCtx_loadDictionary(zcs, dict, dictSize) , ""); + } else { + /* Dictionary is cleared if !cdict */ + FORWARD_IF_ERROR( ZSTD_CCtx_refCDict(zcs, cdict) , ""); + } + return 0; +} + +/* ZSTD_initCStream_usingCDict_advanced() : + * same as ZSTD_initCStream_usingCDict(), with control over frame parameters */ +size_t ZSTD_initCStream_usingCDict_advanced(ZSTD_CStream* zcs, + const ZSTD_CDict* cdict, + ZSTD_frameParameters fParams, + unsigned long long pledgedSrcSize) +{ + DEBUGLOG(4, "ZSTD_initCStream_usingCDict_advanced"); + FORWARD_IF_ERROR( ZSTD_CCtx_reset(zcs, ZSTD_reset_session_only) , ""); + FORWARD_IF_ERROR( ZSTD_CCtx_setPledgedSrcSize(zcs, pledgedSrcSize) , ""); + zcs->requestedParams.fParams = fParams; + FORWARD_IF_ERROR( ZSTD_CCtx_refCDict(zcs, cdict) , ""); + return 0; +} + +/* note : cdict must outlive compression session */ +size_t ZSTD_initCStream_usingCDict(ZSTD_CStream* zcs, const ZSTD_CDict* cdict) +{ + DEBUGLOG(4, "ZSTD_initCStream_usingCDict"); + FORWARD_IF_ERROR( ZSTD_CCtx_reset(zcs, ZSTD_reset_session_only) , ""); + FORWARD_IF_ERROR( ZSTD_CCtx_refCDict(zcs, cdict) , ""); + return 0; +} + + +/* ZSTD_initCStream_advanced() : + * pledgedSrcSize must be exact. + * if srcSize is not known at init time, use value ZSTD_CONTENTSIZE_UNKNOWN. + * dict is loaded with default parameters ZSTD_dct_auto and ZSTD_dlm_byCopy. */ +size_t ZSTD_initCStream_advanced(ZSTD_CStream* zcs, + const void* dict, size_t dictSize, + ZSTD_parameters params, unsigned long long pss) +{ + /* for compatibility with older programs relying on this behavior. + * Users should now specify ZSTD_CONTENTSIZE_UNKNOWN. + * This line will be removed in the future. + */ + U64 const pledgedSrcSize = (pss==0 && params.fParams.contentSizeFlag==0) ? ZSTD_CONTENTSIZE_UNKNOWN : pss; + DEBUGLOG(4, "ZSTD_initCStream_advanced"); + FORWARD_IF_ERROR( ZSTD_CCtx_reset(zcs, ZSTD_reset_session_only) , ""); + FORWARD_IF_ERROR( ZSTD_CCtx_setPledgedSrcSize(zcs, pledgedSrcSize) , ""); + FORWARD_IF_ERROR( ZSTD_checkCParams(params.cParams) , ""); + ZSTD_CCtxParams_setZstdParams(&zcs->requestedParams, ¶ms); + FORWARD_IF_ERROR( ZSTD_CCtx_loadDictionary(zcs, dict, dictSize) , ""); + return 0; +} + +size_t ZSTD_initCStream_usingDict(ZSTD_CStream* zcs, const void* dict, size_t dictSize, int compressionLevel) +{ + DEBUGLOG(4, "ZSTD_initCStream_usingDict"); + FORWARD_IF_ERROR( ZSTD_CCtx_reset(zcs, ZSTD_reset_session_only) , ""); + FORWARD_IF_ERROR( ZSTD_CCtx_setParameter(zcs, ZSTD_c_compressionLevel, compressionLevel) , ""); + FORWARD_IF_ERROR( ZSTD_CCtx_loadDictionary(zcs, dict, dictSize) , ""); + return 0; +} + +size_t ZSTD_initCStream_srcSize(ZSTD_CStream* zcs, int compressionLevel, unsigned long long pss) +{ + /* temporary : 0 interpreted as "unknown" during transition period. + * Users willing to specify "unknown" **must** use ZSTD_CONTENTSIZE_UNKNOWN. + * 0 will be interpreted as "empty" in the future. + */ + U64 const pledgedSrcSize = (pss==0) ? ZSTD_CONTENTSIZE_UNKNOWN : pss; + DEBUGLOG(4, "ZSTD_initCStream_srcSize"); + FORWARD_IF_ERROR( ZSTD_CCtx_reset(zcs, ZSTD_reset_session_only) , ""); + FORWARD_IF_ERROR( ZSTD_CCtx_refCDict(zcs, NULL) , ""); + FORWARD_IF_ERROR( ZSTD_CCtx_setParameter(zcs, ZSTD_c_compressionLevel, compressionLevel) , ""); + FORWARD_IF_ERROR( ZSTD_CCtx_setPledgedSrcSize(zcs, pledgedSrcSize) , ""); + return 0; +} + +size_t ZSTD_initCStream(ZSTD_CStream* zcs, int compressionLevel) +{ + DEBUGLOG(4, "ZSTD_initCStream"); + FORWARD_IF_ERROR( ZSTD_CCtx_reset(zcs, ZSTD_reset_session_only) , ""); + FORWARD_IF_ERROR( ZSTD_CCtx_refCDict(zcs, NULL) , ""); + FORWARD_IF_ERROR( ZSTD_CCtx_setParameter(zcs, ZSTD_c_compressionLevel, compressionLevel) , ""); + return 0; +} + +/*====== Compression ======*/ + +static size_t ZSTD_nextInputSizeHint(const ZSTD_CCtx* cctx) +{ + size_t hintInSize = cctx->inBuffTarget - cctx->inBuffPos; + if (hintInSize==0) hintInSize = cctx->blockSize; + return hintInSize; +} + +/** ZSTD_compressStream_generic(): + * internal function for all *compressStream*() variants + * non-static, because can be called from zstdmt_compress.c + * @return : hint size for next input */ +static size_t ZSTD_compressStream_generic(ZSTD_CStream* zcs, + ZSTD_outBuffer* output, + ZSTD_inBuffer* input, + ZSTD_EndDirective const flushMode) +{ + const char* const istart = (const char*)input->src; + const char* const iend = input->size != 0 ? istart + input->size : istart; + const char* ip = input->pos != 0 ? istart + input->pos : istart; + char* const ostart = (char*)output->dst; + char* const oend = output->size != 0 ? ostart + output->size : ostart; + char* op = output->pos != 0 ? ostart + output->pos : ostart; + U32 someMoreWork = 1; + + /* check expectations */ + DEBUGLOG(5, "ZSTD_compressStream_generic, flush=%u", (unsigned)flushMode); + if (zcs->appliedParams.inBufferMode == ZSTD_bm_buffered) { + assert(zcs->inBuff != NULL); + assert(zcs->inBuffSize > 0); + } + if (zcs->appliedParams.outBufferMode == ZSTD_bm_buffered) { + assert(zcs->outBuff != NULL); + assert(zcs->outBuffSize > 0); + } + assert(output->pos <= output->size); + assert(input->pos <= input->size); + assert((U32)flushMode <= (U32)ZSTD_e_end); + + while (someMoreWork) { + switch(zcs->streamStage) + { + case zcss_init: + RETURN_ERROR(init_missing, "call ZSTD_initCStream() first!"); + + case zcss_load: + if ( (flushMode == ZSTD_e_end) + && ( (size_t)(oend-op) >= ZSTD_compressBound(iend-ip) /* Enough output space */ + || zcs->appliedParams.outBufferMode == ZSTD_bm_stable) /* OR we are allowed to return dstSizeTooSmall */ + && (zcs->inBuffPos == 0) ) { + /* shortcut to compression pass directly into output buffer */ + size_t const cSize = ZSTD_compressEnd(zcs, + op, oend-op, ip, iend-ip); + DEBUGLOG(4, "ZSTD_compressEnd : cSize=%u", (unsigned)cSize); + FORWARD_IF_ERROR(cSize, "ZSTD_compressEnd failed"); + ip = iend; + op += cSize; + zcs->frameEnded = 1; + ZSTD_CCtx_reset(zcs, ZSTD_reset_session_only); + someMoreWork = 0; break; + } + /* complete loading into inBuffer in buffered mode */ + if (zcs->appliedParams.inBufferMode == ZSTD_bm_buffered) { + size_t const toLoad = zcs->inBuffTarget - zcs->inBuffPos; + size_t const loaded = ZSTD_limitCopy( + zcs->inBuff + zcs->inBuffPos, toLoad, + ip, iend-ip); + zcs->inBuffPos += loaded; + if (loaded != 0) + ip += loaded; + if ( (flushMode == ZSTD_e_continue) + && (zcs->inBuffPos < zcs->inBuffTarget) ) { + /* not enough input to fill full block : stop here */ + someMoreWork = 0; break; + } + if ( (flushMode == ZSTD_e_flush) + && (zcs->inBuffPos == zcs->inToCompress) ) { + /* empty */ + someMoreWork = 0; break; + } + } + /* compress current block (note : this stage cannot be stopped in the middle) */ + DEBUGLOG(5, "stream compression stage (flushMode==%u)", flushMode); + { int const inputBuffered = (zcs->appliedParams.inBufferMode == ZSTD_bm_buffered); + void* cDst; + size_t cSize; + size_t oSize = oend-op; + size_t const iSize = inputBuffered + ? zcs->inBuffPos - zcs->inToCompress + : MIN((size_t)(iend - ip), zcs->blockSize); + if (oSize >= ZSTD_compressBound(iSize) || zcs->appliedParams.outBufferMode == ZSTD_bm_stable) + cDst = op; /* compress into output buffer, to skip flush stage */ + else + cDst = zcs->outBuff, oSize = zcs->outBuffSize; + if (inputBuffered) { + unsigned const lastBlock = (flushMode == ZSTD_e_end) && (ip==iend); + cSize = lastBlock ? + ZSTD_compressEnd(zcs, cDst, oSize, + zcs->inBuff + zcs->inToCompress, iSize) : + ZSTD_compressContinue(zcs, cDst, oSize, + zcs->inBuff + zcs->inToCompress, iSize); + FORWARD_IF_ERROR(cSize, "%s", lastBlock ? "ZSTD_compressEnd failed" : "ZSTD_compressContinue failed"); + zcs->frameEnded = lastBlock; + /* prepare next block */ + zcs->inBuffTarget = zcs->inBuffPos + zcs->blockSize; + if (zcs->inBuffTarget > zcs->inBuffSize) + zcs->inBuffPos = 0, zcs->inBuffTarget = zcs->blockSize; + DEBUGLOG(5, "inBuffTarget:%u / inBuffSize:%u", + (unsigned)zcs->inBuffTarget, (unsigned)zcs->inBuffSize); + if (!lastBlock) + assert(zcs->inBuffTarget <= zcs->inBuffSize); + zcs->inToCompress = zcs->inBuffPos; + } else { + unsigned const lastBlock = (ip + iSize == iend); + assert(flushMode == ZSTD_e_end /* Already validated */); + cSize = lastBlock ? + ZSTD_compressEnd(zcs, cDst, oSize, ip, iSize) : + ZSTD_compressContinue(zcs, cDst, oSize, ip, iSize); + /* Consume the input prior to error checking to mirror buffered mode. */ + if (iSize > 0) + ip += iSize; + FORWARD_IF_ERROR(cSize, "%s", lastBlock ? "ZSTD_compressEnd failed" : "ZSTD_compressContinue failed"); + zcs->frameEnded = lastBlock; + if (lastBlock) + assert(ip == iend); + } + if (cDst == op) { /* no need to flush */ + op += cSize; + if (zcs->frameEnded) { + DEBUGLOG(5, "Frame completed directly in outBuffer"); + someMoreWork = 0; + ZSTD_CCtx_reset(zcs, ZSTD_reset_session_only); + } + break; + } + zcs->outBuffContentSize = cSize; + zcs->outBuffFlushedSize = 0; + zcs->streamStage = zcss_flush; /* pass-through to flush stage */ + } + /* fall-through */ + case zcss_flush: + DEBUGLOG(5, "flush stage"); + assert(zcs->appliedParams.outBufferMode == ZSTD_bm_buffered); + { size_t const toFlush = zcs->outBuffContentSize - zcs->outBuffFlushedSize; + size_t const flushed = ZSTD_limitCopy(op, (size_t)(oend-op), + zcs->outBuff + zcs->outBuffFlushedSize, toFlush); + DEBUGLOG(5, "toFlush: %u into %u ==> flushed: %u", + (unsigned)toFlush, (unsigned)(oend-op), (unsigned)flushed); + if (flushed) + op += flushed; + zcs->outBuffFlushedSize += flushed; + if (toFlush!=flushed) { + /* flush not fully completed, presumably because dst is too small */ + assert(op==oend); + someMoreWork = 0; + break; + } + zcs->outBuffContentSize = zcs->outBuffFlushedSize = 0; + if (zcs->frameEnded) { + DEBUGLOG(5, "Frame completed on flush"); + someMoreWork = 0; + ZSTD_CCtx_reset(zcs, ZSTD_reset_session_only); + break; + } + zcs->streamStage = zcss_load; + break; + } + + default: /* impossible */ + assert(0); + } + } + + input->pos = ip - istart; + output->pos = op - ostart; + if (zcs->frameEnded) return 0; + return ZSTD_nextInputSizeHint(zcs); +} + +static size_t ZSTD_nextInputSizeHint_MTorST(const ZSTD_CCtx* cctx) +{ +#ifdef ZSTD_MULTITHREAD + if (cctx->appliedParams.nbWorkers >= 1) { + assert(cctx->mtctx != NULL); + return ZSTDMT_nextInputSizeHint(cctx->mtctx); + } +#endif + return ZSTD_nextInputSizeHint(cctx); + +} + +size_t ZSTD_compressStream(ZSTD_CStream* zcs, ZSTD_outBuffer* output, ZSTD_inBuffer* input) +{ + FORWARD_IF_ERROR( ZSTD_compressStream2(zcs, output, input, ZSTD_e_continue) , ""); + return ZSTD_nextInputSizeHint_MTorST(zcs); +} + +/* After a compression call set the expected input/output buffer. + * This is validated at the start of the next compression call. + */ +static void ZSTD_setBufferExpectations(ZSTD_CCtx* cctx, ZSTD_outBuffer const* output, ZSTD_inBuffer const* input) +{ + if (cctx->appliedParams.inBufferMode == ZSTD_bm_stable) { + cctx->expectedInBuffer = *input; + } + if (cctx->appliedParams.outBufferMode == ZSTD_bm_stable) { + cctx->expectedOutBufferSize = output->size - output->pos; + } +} + +/* Validate that the input/output buffers match the expectations set by + * ZSTD_setBufferExpectations. + */ +static size_t ZSTD_checkBufferStability(ZSTD_CCtx const* cctx, + ZSTD_outBuffer const* output, + ZSTD_inBuffer const* input, + ZSTD_EndDirective endOp) +{ + if (cctx->appliedParams.inBufferMode == ZSTD_bm_stable) { + ZSTD_inBuffer const expect = cctx->expectedInBuffer; + if (expect.src != input->src || expect.pos != input->pos || expect.size != input->size) + RETURN_ERROR(srcBuffer_wrong, "ZSTD_c_stableInBuffer enabled but input differs!"); + if (endOp != ZSTD_e_end) + RETURN_ERROR(srcBuffer_wrong, "ZSTD_c_stableInBuffer can only be used with ZSTD_e_end!"); + } + if (cctx->appliedParams.outBufferMode == ZSTD_bm_stable) { + size_t const outBufferSize = output->size - output->pos; + if (cctx->expectedOutBufferSize != outBufferSize) + RETURN_ERROR(dstBuffer_wrong, "ZSTD_c_stableOutBuffer enabled but output size differs!"); + } + return 0; +} + +static size_t ZSTD_CCtx_init_compressStream2(ZSTD_CCtx* cctx, + ZSTD_EndDirective endOp, + size_t inSize) { + ZSTD_CCtx_params params = cctx->requestedParams; + ZSTD_prefixDict const prefixDict = cctx->prefixDict; + FORWARD_IF_ERROR( ZSTD_initLocalDict(cctx) , ""); /* Init the local dict if present. */ + ZSTD_memset(&cctx->prefixDict, 0, sizeof(cctx->prefixDict)); /* single usage */ + assert(prefixDict.dict==NULL || cctx->cdict==NULL); /* only one can be set */ + if (cctx->cdict && !cctx->localDict.cdict) { + /* Let the cdict's compression level take priority over the requested params. + * But do not take the cdict's compression level if the "cdict" is actually a localDict + * generated from ZSTD_initLocalDict(). + */ + params.compressionLevel = cctx->cdict->compressionLevel; + } + DEBUGLOG(4, "ZSTD_compressStream2 : transparent init stage"); + if (endOp == ZSTD_e_end) cctx->pledgedSrcSizePlusOne = inSize + 1; /* auto-fix pledgedSrcSize */ + { + size_t const dictSize = prefixDict.dict + ? prefixDict.dictSize + : (cctx->cdict ? cctx->cdict->dictContentSize : 0); + ZSTD_cParamMode_e const mode = ZSTD_getCParamMode(cctx->cdict, ¶ms, cctx->pledgedSrcSizePlusOne - 1); + params.cParams = ZSTD_getCParamsFromCCtxParams( + ¶ms, cctx->pledgedSrcSizePlusOne-1, + dictSize, mode); + } + + if (ZSTD_CParams_shouldEnableLdm(¶ms.cParams)) { + /* Enable LDM by default for optimal parser and window size >= 128MB */ + DEBUGLOG(4, "LDM enabled by default (window size >= 128MB, strategy >= btopt)"); + params.ldmParams.enableLdm = 1; + } + + if (ZSTD_CParams_useBlockSplitter(¶ms.cParams)) { + DEBUGLOG(4, "Block splitter enabled by default (window size >= 128K, strategy >= btopt)"); + params.splitBlocks = 1; + } + + params.useRowMatchFinder = ZSTD_resolveRowMatchFinderMode(params.useRowMatchFinder, ¶ms.cParams); + +#ifdef ZSTD_MULTITHREAD + if ((cctx->pledgedSrcSizePlusOne-1) <= ZSTDMT_JOBSIZE_MIN) { + params.nbWorkers = 0; /* do not invoke multi-threading when src size is too small */ + } + if (params.nbWorkers > 0) { +#if ZSTD_TRACE + cctx->traceCtx = (ZSTD_trace_compress_begin != NULL) ? ZSTD_trace_compress_begin(cctx) : 0; +#endif + /* mt context creation */ + if (cctx->mtctx == NULL) { + DEBUGLOG(4, "ZSTD_compressStream2: creating new mtctx for nbWorkers=%u", + params.nbWorkers); + cctx->mtctx = ZSTDMT_createCCtx_advanced((U32)params.nbWorkers, cctx->customMem, cctx->pool); + RETURN_ERROR_IF(cctx->mtctx == NULL, memory_allocation, "NULL pointer!"); + } + /* mt compression */ + DEBUGLOG(4, "call ZSTDMT_initCStream_internal as nbWorkers=%u", params.nbWorkers); + FORWARD_IF_ERROR( ZSTDMT_initCStream_internal( + cctx->mtctx, + prefixDict.dict, prefixDict.dictSize, prefixDict.dictContentType, + cctx->cdict, params, cctx->pledgedSrcSizePlusOne-1) , ""); + cctx->dictID = cctx->cdict ? cctx->cdict->dictID : 0; + cctx->dictContentSize = cctx->cdict ? cctx->cdict->dictContentSize : prefixDict.dictSize; + cctx->consumedSrcSize = 0; + cctx->producedCSize = 0; + cctx->streamStage = zcss_load; + cctx->appliedParams = params; + } else +#endif + { U64 const pledgedSrcSize = cctx->pledgedSrcSizePlusOne - 1; + assert(!ZSTD_isError(ZSTD_checkCParams(params.cParams))); + FORWARD_IF_ERROR( ZSTD_compressBegin_internal(cctx, + prefixDict.dict, prefixDict.dictSize, prefixDict.dictContentType, ZSTD_dtlm_fast, + cctx->cdict, + ¶ms, pledgedSrcSize, + ZSTDb_buffered) , ""); + assert(cctx->appliedParams.nbWorkers == 0); + cctx->inToCompress = 0; + cctx->inBuffPos = 0; + if (cctx->appliedParams.inBufferMode == ZSTD_bm_buffered) { + /* for small input: avoid automatic flush on reaching end of block, since + * it would require to add a 3-bytes null block to end frame + */ + cctx->inBuffTarget = cctx->blockSize + (cctx->blockSize == pledgedSrcSize); + } else { + cctx->inBuffTarget = 0; + } + cctx->outBuffContentSize = cctx->outBuffFlushedSize = 0; + cctx->streamStage = zcss_load; + cctx->frameEnded = 0; + } + return 0; +} + +size_t ZSTD_compressStream2( ZSTD_CCtx* cctx, + ZSTD_outBuffer* output, + ZSTD_inBuffer* input, + ZSTD_EndDirective endOp) +{ + DEBUGLOG(5, "ZSTD_compressStream2, endOp=%u ", (unsigned)endOp); + /* check conditions */ + RETURN_ERROR_IF(output->pos > output->size, dstSize_tooSmall, "invalid output buffer"); + RETURN_ERROR_IF(input->pos > input->size, srcSize_wrong, "invalid input buffer"); + RETURN_ERROR_IF((U32)endOp > (U32)ZSTD_e_end, parameter_outOfBound, "invalid endDirective"); + assert(cctx != NULL); + + /* transparent initialization stage */ + if (cctx->streamStage == zcss_init) { + FORWARD_IF_ERROR(ZSTD_CCtx_init_compressStream2(cctx, endOp, input->size), "CompressStream2 initialization failed"); + ZSTD_setBufferExpectations(cctx, output, input); /* Set initial buffer expectations now that we've initialized */ + } + /* end of transparent initialization stage */ + + FORWARD_IF_ERROR(ZSTD_checkBufferStability(cctx, output, input, endOp), "invalid buffers"); + /* compression stage */ +#ifdef ZSTD_MULTITHREAD + if (cctx->appliedParams.nbWorkers > 0) { + size_t flushMin; + if (cctx->cParamsChanged) { + ZSTDMT_updateCParams_whileCompressing(cctx->mtctx, &cctx->requestedParams); + cctx->cParamsChanged = 0; + } + for (;;) { + size_t const ipos = input->pos; + size_t const opos = output->pos; + flushMin = ZSTDMT_compressStream_generic(cctx->mtctx, output, input, endOp); + cctx->consumedSrcSize += (U64)(input->pos - ipos); + cctx->producedCSize += (U64)(output->pos - opos); + if ( ZSTD_isError(flushMin) + || (endOp == ZSTD_e_end && flushMin == 0) ) { /* compression completed */ + if (flushMin == 0) + ZSTD_CCtx_trace(cctx, 0); + ZSTD_CCtx_reset(cctx, ZSTD_reset_session_only); + } + FORWARD_IF_ERROR(flushMin, "ZSTDMT_compressStream_generic failed"); + + if (endOp == ZSTD_e_continue) { + /* We only require some progress with ZSTD_e_continue, not maximal progress. + * We're done if we've consumed or produced any bytes, or either buffer is + * full. + */ + if (input->pos != ipos || output->pos != opos || input->pos == input->size || output->pos == output->size) + break; + } else { + assert(endOp == ZSTD_e_flush || endOp == ZSTD_e_end); + /* We require maximal progress. We're done when the flush is complete or the + * output buffer is full. + */ + if (flushMin == 0 || output->pos == output->size) + break; + } + } + DEBUGLOG(5, "completed ZSTD_compressStream2 delegating to ZSTDMT_compressStream_generic"); + /* Either we don't require maximum forward progress, we've finished the + * flush, or we are out of output space. + */ + assert(endOp == ZSTD_e_continue || flushMin == 0 || output->pos == output->size); + ZSTD_setBufferExpectations(cctx, output, input); + return flushMin; + } +#endif + FORWARD_IF_ERROR( ZSTD_compressStream_generic(cctx, output, input, endOp) , ""); + DEBUGLOG(5, "completed ZSTD_compressStream2"); + ZSTD_setBufferExpectations(cctx, output, input); + return cctx->outBuffContentSize - cctx->outBuffFlushedSize; /* remaining to flush */ +} + +size_t ZSTD_compressStream2_simpleArgs ( + ZSTD_CCtx* cctx, + void* dst, size_t dstCapacity, size_t* dstPos, + const void* src, size_t srcSize, size_t* srcPos, + ZSTD_EndDirective endOp) +{ + ZSTD_outBuffer output = { dst, dstCapacity, *dstPos }; + ZSTD_inBuffer input = { src, srcSize, *srcPos }; + /* ZSTD_compressStream2() will check validity of dstPos and srcPos */ + size_t const cErr = ZSTD_compressStream2(cctx, &output, &input, endOp); + *dstPos = output.pos; + *srcPos = input.pos; + return cErr; +} + +size_t ZSTD_compress2(ZSTD_CCtx* cctx, + void* dst, size_t dstCapacity, + const void* src, size_t srcSize) +{ + ZSTD_bufferMode_e const originalInBufferMode = cctx->requestedParams.inBufferMode; + ZSTD_bufferMode_e const originalOutBufferMode = cctx->requestedParams.outBufferMode; + DEBUGLOG(4, "ZSTD_compress2 (srcSize=%u)", (unsigned)srcSize); + ZSTD_CCtx_reset(cctx, ZSTD_reset_session_only); + /* Enable stable input/output buffers. */ + cctx->requestedParams.inBufferMode = ZSTD_bm_stable; + cctx->requestedParams.outBufferMode = ZSTD_bm_stable; + { size_t oPos = 0; + size_t iPos = 0; + size_t const result = ZSTD_compressStream2_simpleArgs(cctx, + dst, dstCapacity, &oPos, + src, srcSize, &iPos, + ZSTD_e_end); + /* Reset to the original values. */ + cctx->requestedParams.inBufferMode = originalInBufferMode; + cctx->requestedParams.outBufferMode = originalOutBufferMode; + FORWARD_IF_ERROR(result, "ZSTD_compressStream2_simpleArgs failed"); + if (result != 0) { /* compression not completed, due to lack of output space */ + assert(oPos == dstCapacity); + RETURN_ERROR(dstSize_tooSmall, ""); + } + assert(iPos == srcSize); /* all input is expected consumed */ + return oPos; + } +} + +typedef struct { + U32 idx; /* Index in array of ZSTD_Sequence */ + U32 posInSequence; /* Position within sequence at idx */ + size_t posInSrc; /* Number of bytes given by sequences provided so far */ +} ZSTD_sequencePosition; + +/* Returns a ZSTD error code if sequence is not valid */ +static size_t ZSTD_validateSequence(U32 offCode, U32 matchLength, + size_t posInSrc, U32 windowLog, size_t dictSize, U32 minMatch) { + size_t offsetBound; + U32 windowSize = 1 << windowLog; + /* posInSrc represents the amount of data the the decoder would decode up to this point. + * As long as the amount of data decoded is less than or equal to window size, offsets may be + * larger than the total length of output decoded in order to reference the dict, even larger than + * window size. After output surpasses windowSize, we're limited to windowSize offsets again. + */ + offsetBound = posInSrc > windowSize ? (size_t)windowSize : posInSrc + (size_t)dictSize; + RETURN_ERROR_IF(offCode > offsetBound + ZSTD_REP_MOVE, corruption_detected, "Offset too large!"); + RETURN_ERROR_IF(matchLength < minMatch, corruption_detected, "Matchlength too small"); + return 0; +} + +/* Returns an offset code, given a sequence's raw offset, the ongoing repcode array, and whether litLength == 0 */ +static U32 ZSTD_finalizeOffCode(U32 rawOffset, const U32 rep[ZSTD_REP_NUM], U32 ll0) { + U32 offCode = rawOffset + ZSTD_REP_MOVE; + U32 repCode = 0; + + if (!ll0 && rawOffset == rep[0]) { + repCode = 1; + } else if (rawOffset == rep[1]) { + repCode = 2 - ll0; + } else if (rawOffset == rep[2]) { + repCode = 3 - ll0; + } else if (ll0 && rawOffset == rep[0] - 1) { + repCode = 3; + } + if (repCode) { + /* ZSTD_storeSeq expects a number in the range [0, 2] to represent a repcode */ + offCode = repCode - 1; + } + return offCode; +} + +/* Returns 0 on success, and a ZSTD_error otherwise. This function scans through an array of + * ZSTD_Sequence, storing the sequences it finds, until it reaches a block delimiter. + */ +static size_t ZSTD_copySequencesToSeqStoreExplicitBlockDelim(ZSTD_CCtx* cctx, ZSTD_sequencePosition* seqPos, + const ZSTD_Sequence* const inSeqs, size_t inSeqsSize, + const void* src, size_t blockSize) { + U32 idx = seqPos->idx; + BYTE const* ip = (BYTE const*)(src); + const BYTE* const iend = ip + blockSize; + repcodes_t updatedRepcodes; + U32 dictSize; + U32 litLength; + U32 matchLength; + U32 ll0; + U32 offCode; + + if (cctx->cdict) { + dictSize = (U32)cctx->cdict->dictContentSize; + } else if (cctx->prefixDict.dict) { + dictSize = (U32)cctx->prefixDict.dictSize; + } else { + dictSize = 0; + } + ZSTD_memcpy(updatedRepcodes.rep, cctx->blockState.prevCBlock->rep, sizeof(repcodes_t)); + for (; (inSeqs[idx].matchLength != 0 || inSeqs[idx].offset != 0) && idx < inSeqsSize; ++idx) { + litLength = inSeqs[idx].litLength; + matchLength = inSeqs[idx].matchLength; + ll0 = litLength == 0; + offCode = ZSTD_finalizeOffCode(inSeqs[idx].offset, updatedRepcodes.rep, ll0); + updatedRepcodes = ZSTD_updateRep(updatedRepcodes.rep, offCode, ll0); + + DEBUGLOG(6, "Storing sequence: (of: %u, ml: %u, ll: %u)", offCode, matchLength, litLength); + if (cctx->appliedParams.validateSequences) { + seqPos->posInSrc += litLength + matchLength; + FORWARD_IF_ERROR(ZSTD_validateSequence(offCode, matchLength, seqPos->posInSrc, + cctx->appliedParams.cParams.windowLog, dictSize, + cctx->appliedParams.cParams.minMatch), + "Sequence validation failed"); + } + RETURN_ERROR_IF(idx - seqPos->idx > cctx->seqStore.maxNbSeq, memory_allocation, + "Not enough memory allocated. Try adjusting ZSTD_c_minMatch."); + ZSTD_storeSeq(&cctx->seqStore, litLength, ip, iend, offCode, matchLength - MINMATCH); + ip += matchLength + litLength; + } + ZSTD_memcpy(cctx->blockState.nextCBlock->rep, updatedRepcodes.rep, sizeof(repcodes_t)); + + if (inSeqs[idx].litLength) { + DEBUGLOG(6, "Storing last literals of size: %u", inSeqs[idx].litLength); + ZSTD_storeLastLiterals(&cctx->seqStore, ip, inSeqs[idx].litLength); + ip += inSeqs[idx].litLength; + seqPos->posInSrc += inSeqs[idx].litLength; + } + RETURN_ERROR_IF(ip != iend, corruption_detected, "Blocksize doesn't agree with block delimiter!"); + seqPos->idx = idx+1; + return 0; +} + +/* Returns the number of bytes to move the current read position back by. Only non-zero + * if we ended up splitting a sequence. Otherwise, it may return a ZSTD error if something + * went wrong. + * + * This function will attempt to scan through blockSize bytes represented by the sequences + * in inSeqs, storing any (partial) sequences. + * + * Occasionally, we may want to change the actual number of bytes we consumed from inSeqs to + * avoid splitting a match, or to avoid splitting a match such that it would produce a match + * smaller than MINMATCH. In this case, we return the number of bytes that we didn't read from this block. + */ +static size_t ZSTD_copySequencesToSeqStoreNoBlockDelim(ZSTD_CCtx* cctx, ZSTD_sequencePosition* seqPos, + const ZSTD_Sequence* const inSeqs, size_t inSeqsSize, + const void* src, size_t blockSize) { + U32 idx = seqPos->idx; + U32 startPosInSequence = seqPos->posInSequence; + U32 endPosInSequence = seqPos->posInSequence + (U32)blockSize; + size_t dictSize; + BYTE const* ip = (BYTE const*)(src); + BYTE const* iend = ip + blockSize; /* May be adjusted if we decide to process fewer than blockSize bytes */ + repcodes_t updatedRepcodes; + U32 bytesAdjustment = 0; + U32 finalMatchSplit = 0; + U32 litLength; + U32 matchLength; + U32 rawOffset; + U32 offCode; + + if (cctx->cdict) { + dictSize = cctx->cdict->dictContentSize; + } else if (cctx->prefixDict.dict) { + dictSize = cctx->prefixDict.dictSize; + } else { + dictSize = 0; + } + DEBUGLOG(5, "ZSTD_copySequencesToSeqStore: idx: %u PIS: %u blockSize: %zu", idx, startPosInSequence, blockSize); + DEBUGLOG(5, "Start seq: idx: %u (of: %u ml: %u ll: %u)", idx, inSeqs[idx].offset, inSeqs[idx].matchLength, inSeqs[idx].litLength); + ZSTD_memcpy(updatedRepcodes.rep, cctx->blockState.prevCBlock->rep, sizeof(repcodes_t)); + while (endPosInSequence && idx < inSeqsSize && !finalMatchSplit) { + const ZSTD_Sequence currSeq = inSeqs[idx]; + litLength = currSeq.litLength; + matchLength = currSeq.matchLength; + rawOffset = currSeq.offset; + + /* Modify the sequence depending on where endPosInSequence lies */ + if (endPosInSequence >= currSeq.litLength + currSeq.matchLength) { + if (startPosInSequence >= litLength) { + startPosInSequence -= litLength; + litLength = 0; + matchLength -= startPosInSequence; + } else { + litLength -= startPosInSequence; + } + /* Move to the next sequence */ + endPosInSequence -= currSeq.litLength + currSeq.matchLength; + startPosInSequence = 0; + idx++; + } else { + /* This is the final (partial) sequence we're adding from inSeqs, and endPosInSequence + does not reach the end of the match. So, we have to split the sequence */ + DEBUGLOG(6, "Require a split: diff: %u, idx: %u PIS: %u", + currSeq.litLength + currSeq.matchLength - endPosInSequence, idx, endPosInSequence); + if (endPosInSequence > litLength) { + U32 firstHalfMatchLength; + litLength = startPosInSequence >= litLength ? 0 : litLength - startPosInSequence; + firstHalfMatchLength = endPosInSequence - startPosInSequence - litLength; + if (matchLength > blockSize && firstHalfMatchLength >= cctx->appliedParams.cParams.minMatch) { + /* Only ever split the match if it is larger than the block size */ + U32 secondHalfMatchLength = currSeq.matchLength + currSeq.litLength - endPosInSequence; + if (secondHalfMatchLength < cctx->appliedParams.cParams.minMatch) { + /* Move the endPosInSequence backward so that it creates match of minMatch length */ + endPosInSequence -= cctx->appliedParams.cParams.minMatch - secondHalfMatchLength; + bytesAdjustment = cctx->appliedParams.cParams.minMatch - secondHalfMatchLength; + firstHalfMatchLength -= bytesAdjustment; + } + matchLength = firstHalfMatchLength; + /* Flag that we split the last match - after storing the sequence, exit the loop, + but keep the value of endPosInSequence */ + finalMatchSplit = 1; + } else { + /* Move the position in sequence backwards so that we don't split match, and break to store + * the last literals. We use the original currSeq.litLength as a marker for where endPosInSequence + * should go. We prefer to do this whenever it is not necessary to split the match, or if doing so + * would cause the first half of the match to be too small + */ + bytesAdjustment = endPosInSequence - currSeq.litLength; + endPosInSequence = currSeq.litLength; + break; + } + } else { + /* This sequence ends inside the literals, break to store the last literals */ + break; + } + } + /* Check if this offset can be represented with a repcode */ + { U32 ll0 = (litLength == 0); + offCode = ZSTD_finalizeOffCode(rawOffset, updatedRepcodes.rep, ll0); + updatedRepcodes = ZSTD_updateRep(updatedRepcodes.rep, offCode, ll0); + } + + if (cctx->appliedParams.validateSequences) { + seqPos->posInSrc += litLength + matchLength; + FORWARD_IF_ERROR(ZSTD_validateSequence(offCode, matchLength, seqPos->posInSrc, + cctx->appliedParams.cParams.windowLog, dictSize, + cctx->appliedParams.cParams.minMatch), + "Sequence validation failed"); + } + DEBUGLOG(6, "Storing sequence: (of: %u, ml: %u, ll: %u)", offCode, matchLength, litLength); + RETURN_ERROR_IF(idx - seqPos->idx > cctx->seqStore.maxNbSeq, memory_allocation, + "Not enough memory allocated. Try adjusting ZSTD_c_minMatch."); + ZSTD_storeSeq(&cctx->seqStore, litLength, ip, iend, offCode, matchLength - MINMATCH); + ip += matchLength + litLength; + } + DEBUGLOG(5, "Ending seq: idx: %u (of: %u ml: %u ll: %u)", idx, inSeqs[idx].offset, inSeqs[idx].matchLength, inSeqs[idx].litLength); + assert(idx == inSeqsSize || endPosInSequence <= inSeqs[idx].litLength + inSeqs[idx].matchLength); + seqPos->idx = idx; + seqPos->posInSequence = endPosInSequence; + ZSTD_memcpy(cctx->blockState.nextCBlock->rep, updatedRepcodes.rep, sizeof(repcodes_t)); + + iend -= bytesAdjustment; + if (ip != iend) { + /* Store any last literals */ + U32 lastLLSize = (U32)(iend - ip); + assert(ip <= iend); + DEBUGLOG(6, "Storing last literals of size: %u", lastLLSize); + ZSTD_storeLastLiterals(&cctx->seqStore, ip, lastLLSize); + seqPos->posInSrc += lastLLSize; + } + + return bytesAdjustment; +} + +typedef size_t (*ZSTD_sequenceCopier) (ZSTD_CCtx* cctx, ZSTD_sequencePosition* seqPos, + const ZSTD_Sequence* const inSeqs, size_t inSeqsSize, + const void* src, size_t blockSize); +static ZSTD_sequenceCopier ZSTD_selectSequenceCopier(ZSTD_sequenceFormat_e mode) { + ZSTD_sequenceCopier sequenceCopier = NULL; + assert(ZSTD_cParam_withinBounds(ZSTD_c_blockDelimiters, mode)); + if (mode == ZSTD_sf_explicitBlockDelimiters) { + return ZSTD_copySequencesToSeqStoreExplicitBlockDelim; + } else if (mode == ZSTD_sf_noBlockDelimiters) { + return ZSTD_copySequencesToSeqStoreNoBlockDelim; + } + assert(sequenceCopier != NULL); + return sequenceCopier; +} + +/* Compress, block-by-block, all of the sequences given. + * + * Returns the cumulative size of all compressed blocks (including their headers), otherwise a ZSTD error. + */ +static size_t ZSTD_compressSequences_internal(ZSTD_CCtx* cctx, + void* dst, size_t dstCapacity, + const ZSTD_Sequence* inSeqs, size_t inSeqsSize, + const void* src, size_t srcSize) { + size_t cSize = 0; + U32 lastBlock; + size_t blockSize; + size_t compressedSeqsSize; + size_t remaining = srcSize; + ZSTD_sequencePosition seqPos = {0, 0, 0}; + + BYTE const* ip = (BYTE const*)src; + BYTE* op = (BYTE*)dst; + ZSTD_sequenceCopier sequenceCopier = ZSTD_selectSequenceCopier(cctx->appliedParams.blockDelimiters); + + DEBUGLOG(4, "ZSTD_compressSequences_internal srcSize: %zu, inSeqsSize: %zu", srcSize, inSeqsSize); + /* Special case: empty frame */ + if (remaining == 0) { + U32 const cBlockHeader24 = 1 /* last block */ + (((U32)bt_raw)<<1); + RETURN_ERROR_IF(dstCapacity<4, dstSize_tooSmall, "No room for empty frame block header"); + MEM_writeLE32(op, cBlockHeader24); + op += ZSTD_blockHeaderSize; + dstCapacity -= ZSTD_blockHeaderSize; + cSize += ZSTD_blockHeaderSize; + } + + while (remaining) { + size_t cBlockSize; + size_t additionalByteAdjustment; + lastBlock = remaining <= cctx->blockSize; + blockSize = lastBlock ? (U32)remaining : (U32)cctx->blockSize; + ZSTD_resetSeqStore(&cctx->seqStore); + DEBUGLOG(4, "Working on new block. Blocksize: %zu", blockSize); + + additionalByteAdjustment = sequenceCopier(cctx, &seqPos, inSeqs, inSeqsSize, ip, blockSize); + FORWARD_IF_ERROR(additionalByteAdjustment, "Bad sequence copy"); + blockSize -= additionalByteAdjustment; + + /* If blocks are too small, emit as a nocompress block */ + if (blockSize < MIN_CBLOCK_SIZE+ZSTD_blockHeaderSize+1) { + cBlockSize = ZSTD_noCompressBlock(op, dstCapacity, ip, blockSize, lastBlock); + FORWARD_IF_ERROR(cBlockSize, "Nocompress block failed"); + DEBUGLOG(4, "Block too small, writing out nocompress block: cSize: %zu", cBlockSize); + cSize += cBlockSize; + ip += blockSize; + op += cBlockSize; + remaining -= blockSize; + dstCapacity -= cBlockSize; + continue; + } + + compressedSeqsSize = ZSTD_entropyCompressSeqStore(&cctx->seqStore, + &cctx->blockState.prevCBlock->entropy, &cctx->blockState.nextCBlock->entropy, + &cctx->appliedParams, + op + ZSTD_blockHeaderSize /* Leave space for block header */, dstCapacity - ZSTD_blockHeaderSize, + blockSize, + cctx->entropyWorkspace, ENTROPY_WORKSPACE_SIZE /* statically allocated in resetCCtx */, + cctx->bmi2); + FORWARD_IF_ERROR(compressedSeqsSize, "Compressing sequences of block failed"); + DEBUGLOG(4, "Compressed sequences size: %zu", compressedSeqsSize); + + if (!cctx->isFirstBlock && + ZSTD_maybeRLE(&cctx->seqStore) && + ZSTD_isRLE((BYTE const*)src, srcSize)) { + /* We don't want to emit our first block as a RLE even if it qualifies because + * doing so will cause the decoder (cli only) to throw a "should consume all input error." + * This is only an issue for zstd <= v1.4.3 + */ + compressedSeqsSize = 1; + } + + if (compressedSeqsSize == 0) { + /* ZSTD_noCompressBlock writes the block header as well */ + cBlockSize = ZSTD_noCompressBlock(op, dstCapacity, ip, blockSize, lastBlock); + FORWARD_IF_ERROR(cBlockSize, "Nocompress block failed"); + DEBUGLOG(4, "Writing out nocompress block, size: %zu", cBlockSize); + } else if (compressedSeqsSize == 1) { + cBlockSize = ZSTD_rleCompressBlock(op, dstCapacity, *ip, blockSize, lastBlock); + FORWARD_IF_ERROR(cBlockSize, "RLE compress block failed"); + DEBUGLOG(4, "Writing out RLE block, size: %zu", cBlockSize); + } else { + U32 cBlockHeader; + /* Error checking and repcodes update */ + ZSTD_blockState_confirmRepcodesAndEntropyTables(&cctx->blockState); + if (cctx->blockState.prevCBlock->entropy.fse.offcode_repeatMode == FSE_repeat_valid) + cctx->blockState.prevCBlock->entropy.fse.offcode_repeatMode = FSE_repeat_check; + + /* Write block header into beginning of block*/ + cBlockHeader = lastBlock + (((U32)bt_compressed)<<1) + (U32)(compressedSeqsSize << 3); + MEM_writeLE24(op, cBlockHeader); + cBlockSize = ZSTD_blockHeaderSize + compressedSeqsSize; + DEBUGLOG(4, "Writing out compressed block, size: %zu", cBlockSize); + } + + cSize += cBlockSize; + DEBUGLOG(4, "cSize running total: %zu", cSize); + + if (lastBlock) { + break; + } else { + ip += blockSize; + op += cBlockSize; + remaining -= blockSize; + dstCapacity -= cBlockSize; + cctx->isFirstBlock = 0; + } + } + + return cSize; +} + +size_t ZSTD_compressSequences(ZSTD_CCtx* const cctx, void* dst, size_t dstCapacity, + const ZSTD_Sequence* inSeqs, size_t inSeqsSize, + const void* src, size_t srcSize) { + BYTE* op = (BYTE*)dst; + size_t cSize = 0; + size_t compressedBlocksSize = 0; + size_t frameHeaderSize = 0; + + /* Transparent initialization stage, same as compressStream2() */ + DEBUGLOG(3, "ZSTD_compressSequences()"); + assert(cctx != NULL); + FORWARD_IF_ERROR(ZSTD_CCtx_init_compressStream2(cctx, ZSTD_e_end, srcSize), "CCtx initialization failed"); + /* Begin writing output, starting with frame header */ + frameHeaderSize = ZSTD_writeFrameHeader(op, dstCapacity, &cctx->appliedParams, srcSize, cctx->dictID); + op += frameHeaderSize; + dstCapacity -= frameHeaderSize; + cSize += frameHeaderSize; + if (cctx->appliedParams.fParams.checksumFlag && srcSize) { + XXH64_update(&cctx->xxhState, src, srcSize); + } + /* cSize includes block header size and compressed sequences size */ + compressedBlocksSize = ZSTD_compressSequences_internal(cctx, + op, dstCapacity, + inSeqs, inSeqsSize, + src, srcSize); + FORWARD_IF_ERROR(compressedBlocksSize, "Compressing blocks failed!"); + cSize += compressedBlocksSize; + dstCapacity -= compressedBlocksSize; + + if (cctx->appliedParams.fParams.checksumFlag) { + U32 const checksum = (U32) XXH64_digest(&cctx->xxhState); + RETURN_ERROR_IF(dstCapacity<4, dstSize_tooSmall, "no room for checksum"); + DEBUGLOG(4, "Write checksum : %08X", (unsigned)checksum); + MEM_writeLE32((char*)dst + cSize, checksum); + cSize += 4; + } + + DEBUGLOG(3, "Final compressed size: %zu", cSize); + return cSize; +} + +/*====== Finalize ======*/ + +/*! ZSTD_flushStream() : + * @return : amount of data remaining to flush */ +size_t ZSTD_flushStream(ZSTD_CStream* zcs, ZSTD_outBuffer* output) +{ + ZSTD_inBuffer input = { NULL, 0, 0 }; + return ZSTD_compressStream2(zcs, output, &input, ZSTD_e_flush); +} + + +size_t ZSTD_endStream(ZSTD_CStream* zcs, ZSTD_outBuffer* output) +{ + ZSTD_inBuffer input = { NULL, 0, 0 }; + size_t const remainingToFlush = ZSTD_compressStream2(zcs, output, &input, ZSTD_e_end); + FORWARD_IF_ERROR( remainingToFlush , "ZSTD_compressStream2 failed"); + if (zcs->appliedParams.nbWorkers > 0) return remainingToFlush; /* minimal estimation */ + /* single thread mode : attempt to calculate remaining to flush more precisely */ + { size_t const lastBlockSize = zcs->frameEnded ? 0 : ZSTD_BLOCKHEADERSIZE; + size_t const checksumSize = (size_t)(zcs->frameEnded ? 0 : zcs->appliedParams.fParams.checksumFlag * 4); + size_t const toFlush = remainingToFlush + lastBlockSize + checksumSize; + DEBUGLOG(4, "ZSTD_endStream : remaining to flush : %u", (unsigned)toFlush); + return toFlush; + } +} + + +/*-===== Pre-defined compression levels =====-*/ + +#define ZSTD_MAX_CLEVEL 22 +int ZSTD_maxCLevel(void) { return ZSTD_MAX_CLEVEL; } +int ZSTD_minCLevel(void) { return (int)-ZSTD_TARGETLENGTH_MAX; } +int ZSTD_defaultCLevel(void) { return ZSTD_CLEVEL_DEFAULT; } + +static const ZSTD_compressionParameters ZSTD_defaultCParameters[4][ZSTD_MAX_CLEVEL+1] = { +{ /* "default" - for any srcSize > 256 KB */ + /* W, C, H, S, L, TL, strat */ + { 19, 12, 13, 1, 6, 1, ZSTD_fast }, /* base for negative levels */ + { 19, 13, 14, 1, 7, 0, ZSTD_fast }, /* level 1 */ + { 20, 15, 16, 1, 6, 0, ZSTD_fast }, /* level 2 */ + { 21, 16, 17, 1, 5, 0, ZSTD_dfast }, /* level 3 */ + { 21, 18, 18, 1, 5, 0, ZSTD_dfast }, /* level 4 */ + { 21, 18, 19, 2, 5, 2, ZSTD_greedy }, /* level 5 */ + { 21, 19, 19, 3, 5, 4, ZSTD_greedy }, /* level 6 */ + { 21, 19, 19, 3, 5, 8, ZSTD_lazy }, /* level 7 */ + { 21, 19, 19, 3, 5, 16, ZSTD_lazy2 }, /* level 8 */ + { 21, 19, 20, 4, 5, 16, ZSTD_lazy2 }, /* level 9 */ + { 22, 20, 21, 4, 5, 16, ZSTD_lazy2 }, /* level 10 */ + { 22, 21, 22, 4, 5, 16, ZSTD_lazy2 }, /* level 11 */ + { 22, 21, 22, 5, 5, 16, ZSTD_lazy2 }, /* level 12 */ + { 22, 21, 22, 5, 5, 32, ZSTD_btlazy2 }, /* level 13 */ + { 22, 22, 23, 5, 5, 32, ZSTD_btlazy2 }, /* level 14 */ + { 22, 23, 23, 6, 5, 32, ZSTD_btlazy2 }, /* level 15 */ + { 22, 22, 22, 5, 5, 48, ZSTD_btopt }, /* level 16 */ + { 23, 23, 22, 5, 4, 64, ZSTD_btopt }, /* level 17 */ + { 23, 23, 22, 6, 3, 64, ZSTD_btultra }, /* level 18 */ + { 23, 24, 22, 7, 3,256, ZSTD_btultra2}, /* level 19 */ + { 25, 25, 23, 7, 3,256, ZSTD_btultra2}, /* level 20 */ + { 26, 26, 24, 7, 3,512, ZSTD_btultra2}, /* level 21 */ + { 27, 27, 25, 9, 3,999, ZSTD_btultra2}, /* level 22 */ +}, +{ /* for srcSize <= 256 KB */ + /* W, C, H, S, L, T, strat */ + { 18, 12, 13, 1, 5, 1, ZSTD_fast }, /* base for negative levels */ + { 18, 13, 14, 1, 6, 0, ZSTD_fast }, /* level 1 */ + { 18, 14, 14, 1, 5, 0, ZSTD_dfast }, /* level 2 */ + { 18, 16, 16, 1, 4, 0, ZSTD_dfast }, /* level 3 */ + { 18, 16, 17, 2, 5, 2, ZSTD_greedy }, /* level 4.*/ + { 18, 18, 18, 3, 5, 2, ZSTD_greedy }, /* level 5.*/ + { 18, 18, 19, 3, 5, 4, ZSTD_lazy }, /* level 6.*/ + { 18, 18, 19, 4, 4, 4, ZSTD_lazy }, /* level 7 */ + { 18, 18, 19, 4, 4, 8, ZSTD_lazy2 }, /* level 8 */ + { 18, 18, 19, 5, 4, 8, ZSTD_lazy2 }, /* level 9 */ + { 18, 18, 19, 6, 4, 8, ZSTD_lazy2 }, /* level 10 */ + { 18, 18, 19, 5, 4, 12, ZSTD_btlazy2 }, /* level 11.*/ + { 18, 19, 19, 7, 4, 12, ZSTD_btlazy2 }, /* level 12.*/ + { 18, 18, 19, 4, 4, 16, ZSTD_btopt }, /* level 13 */ + { 18, 18, 19, 4, 3, 32, ZSTD_btopt }, /* level 14.*/ + { 18, 18, 19, 6, 3,128, ZSTD_btopt }, /* level 15.*/ + { 18, 19, 19, 6, 3,128, ZSTD_btultra }, /* level 16.*/ + { 18, 19, 19, 8, 3,256, ZSTD_btultra }, /* level 17.*/ + { 18, 19, 19, 6, 3,128, ZSTD_btultra2}, /* level 18.*/ + { 18, 19, 19, 8, 3,256, ZSTD_btultra2}, /* level 19.*/ + { 18, 19, 19, 10, 3,512, ZSTD_btultra2}, /* level 20.*/ + { 18, 19, 19, 12, 3,512, ZSTD_btultra2}, /* level 21.*/ + { 18, 19, 19, 13, 3,999, ZSTD_btultra2}, /* level 22.*/ +}, +{ /* for srcSize <= 128 KB */ + /* W, C, H, S, L, T, strat */ + { 17, 12, 12, 1, 5, 1, ZSTD_fast }, /* base for negative levels */ + { 17, 12, 13, 1, 6, 0, ZSTD_fast }, /* level 1 */ + { 17, 13, 15, 1, 5, 0, ZSTD_fast }, /* level 2 */ + { 17, 15, 16, 2, 5, 0, ZSTD_dfast }, /* level 3 */ + { 17, 17, 17, 2, 4, 0, ZSTD_dfast }, /* level 4 */ + { 17, 16, 17, 3, 4, 2, ZSTD_greedy }, /* level 5 */ + { 17, 17, 17, 3, 4, 4, ZSTD_lazy }, /* level 6 */ + { 17, 17, 17, 3, 4, 8, ZSTD_lazy2 }, /* level 7 */ + { 17, 17, 17, 4, 4, 8, ZSTD_lazy2 }, /* level 8 */ + { 17, 17, 17, 5, 4, 8, ZSTD_lazy2 }, /* level 9 */ + { 17, 17, 17, 6, 4, 8, ZSTD_lazy2 }, /* level 10 */ + { 17, 17, 17, 5, 4, 8, ZSTD_btlazy2 }, /* level 11 */ + { 17, 18, 17, 7, 4, 12, ZSTD_btlazy2 }, /* level 12 */ + { 17, 18, 17, 3, 4, 12, ZSTD_btopt }, /* level 13.*/ + { 17, 18, 17, 4, 3, 32, ZSTD_btopt }, /* level 14.*/ + { 17, 18, 17, 6, 3,256, ZSTD_btopt }, /* level 15.*/ + { 17, 18, 17, 6, 3,128, ZSTD_btultra }, /* level 16.*/ + { 17, 18, 17, 8, 3,256, ZSTD_btultra }, /* level 17.*/ + { 17, 18, 17, 10, 3,512, ZSTD_btultra }, /* level 18.*/ + { 17, 18, 17, 5, 3,256, ZSTD_btultra2}, /* level 19.*/ + { 17, 18, 17, 7, 3,512, ZSTD_btultra2}, /* level 20.*/ + { 17, 18, 17, 9, 3,512, ZSTD_btultra2}, /* level 21.*/ + { 17, 18, 17, 11, 3,999, ZSTD_btultra2}, /* level 22.*/ +}, +{ /* for srcSize <= 16 KB */ + /* W, C, H, S, L, T, strat */ + { 14, 12, 13, 1, 5, 1, ZSTD_fast }, /* base for negative levels */ + { 14, 14, 15, 1, 5, 0, ZSTD_fast }, /* level 1 */ + { 14, 14, 15, 1, 4, 0, ZSTD_fast }, /* level 2 */ + { 14, 14, 15, 2, 4, 0, ZSTD_dfast }, /* level 3 */ + { 14, 14, 14, 4, 4, 2, ZSTD_greedy }, /* level 4 */ + { 14, 14, 14, 3, 4, 4, ZSTD_lazy }, /* level 5.*/ + { 14, 14, 14, 4, 4, 8, ZSTD_lazy2 }, /* level 6 */ + { 14, 14, 14, 6, 4, 8, ZSTD_lazy2 }, /* level 7 */ + { 14, 14, 14, 8, 4, 8, ZSTD_lazy2 }, /* level 8.*/ + { 14, 15, 14, 5, 4, 8, ZSTD_btlazy2 }, /* level 9.*/ + { 14, 15, 14, 9, 4, 8, ZSTD_btlazy2 }, /* level 10.*/ + { 14, 15, 14, 3, 4, 12, ZSTD_btopt }, /* level 11.*/ + { 14, 15, 14, 4, 3, 24, ZSTD_btopt }, /* level 12.*/ + { 14, 15, 14, 5, 3, 32, ZSTD_btultra }, /* level 13.*/ + { 14, 15, 15, 6, 3, 64, ZSTD_btultra }, /* level 14.*/ + { 14, 15, 15, 7, 3,256, ZSTD_btultra }, /* level 15.*/ + { 14, 15, 15, 5, 3, 48, ZSTD_btultra2}, /* level 16.*/ + { 14, 15, 15, 6, 3,128, ZSTD_btultra2}, /* level 17.*/ + { 14, 15, 15, 7, 3,256, ZSTD_btultra2}, /* level 18.*/ + { 14, 15, 15, 8, 3,256, ZSTD_btultra2}, /* level 19.*/ + { 14, 15, 15, 8, 3,512, ZSTD_btultra2}, /* level 20.*/ + { 14, 15, 15, 9, 3,512, ZSTD_btultra2}, /* level 21.*/ + { 14, 15, 15, 10, 3,999, ZSTD_btultra2}, /* level 22.*/ +}, +}; + +static ZSTD_compressionParameters ZSTD_dedicatedDictSearch_getCParams(int const compressionLevel, size_t const dictSize) +{ + ZSTD_compressionParameters cParams = ZSTD_getCParams_internal(compressionLevel, 0, dictSize, ZSTD_cpm_createCDict); + switch (cParams.strategy) { + case ZSTD_fast: + case ZSTD_dfast: + break; + case ZSTD_greedy: + case ZSTD_lazy: + case ZSTD_lazy2: + cParams.hashLog += ZSTD_LAZY_DDSS_BUCKET_LOG; + break; + case ZSTD_btlazy2: + case ZSTD_btopt: + case ZSTD_btultra: + case ZSTD_btultra2: + break; + } + return cParams; +} + +static int ZSTD_dedicatedDictSearch_isSupported( + ZSTD_compressionParameters const* cParams) +{ + return (cParams->strategy >= ZSTD_greedy) + && (cParams->strategy <= ZSTD_lazy2) + && (cParams->hashLog > cParams->chainLog) + && (cParams->chainLog <= 24); +} + +/** + * Reverses the adjustment applied to cparams when enabling dedicated dict + * search. This is used to recover the params set to be used in the working + * context. (Otherwise, those tables would also grow.) + */ +static void ZSTD_dedicatedDictSearch_revertCParams( + ZSTD_compressionParameters* cParams) { + switch (cParams->strategy) { + case ZSTD_fast: + case ZSTD_dfast: + break; + case ZSTD_greedy: + case ZSTD_lazy: + case ZSTD_lazy2: + cParams->hashLog -= ZSTD_LAZY_DDSS_BUCKET_LOG; + if (cParams->hashLog < ZSTD_HASHLOG_MIN) { + cParams->hashLog = ZSTD_HASHLOG_MIN; + } + break; + case ZSTD_btlazy2: + case ZSTD_btopt: + case ZSTD_btultra: + case ZSTD_btultra2: + break; + } +} + +static U64 ZSTD_getCParamRowSize(U64 srcSizeHint, size_t dictSize, ZSTD_cParamMode_e mode) +{ + switch (mode) { + case ZSTD_cpm_unknown: + case ZSTD_cpm_noAttachDict: + case ZSTD_cpm_createCDict: + break; + case ZSTD_cpm_attachDict: + dictSize = 0; + break; + default: + assert(0); + break; + } + { int const unknown = srcSizeHint == ZSTD_CONTENTSIZE_UNKNOWN; + size_t const addedSize = unknown && dictSize > 0 ? 500 : 0; + return unknown && dictSize == 0 ? ZSTD_CONTENTSIZE_UNKNOWN : srcSizeHint+dictSize+addedSize; + } +} + +/*! ZSTD_getCParams_internal() : + * @return ZSTD_compressionParameters structure for a selected compression level, srcSize and dictSize. + * Note: srcSizeHint 0 means 0, use ZSTD_CONTENTSIZE_UNKNOWN for unknown. + * Use dictSize == 0 for unknown or unused. + * Note: `mode` controls how we treat the `dictSize`. See docs for `ZSTD_cParamMode_e`. */ +static ZSTD_compressionParameters ZSTD_getCParams_internal(int compressionLevel, unsigned long long srcSizeHint, size_t dictSize, ZSTD_cParamMode_e mode) +{ + U64 const rSize = ZSTD_getCParamRowSize(srcSizeHint, dictSize, mode); + U32 const tableID = (rSize <= 256 KB) + (rSize <= 128 KB) + (rSize <= 16 KB); + int row; + DEBUGLOG(5, "ZSTD_getCParams_internal (cLevel=%i)", compressionLevel); + + /* row */ + if (compressionLevel == 0) row = ZSTD_CLEVEL_DEFAULT; /* 0 == default */ + else if (compressionLevel < 0) row = 0; /* entry 0 is baseline for fast mode */ + else if (compressionLevel > ZSTD_MAX_CLEVEL) row = ZSTD_MAX_CLEVEL; + else row = compressionLevel; + + { ZSTD_compressionParameters cp = ZSTD_defaultCParameters[tableID][row]; + DEBUGLOG(5, "ZSTD_getCParams_internal selected tableID: %u row: %u strat: %u", tableID, row, (U32)cp.strategy); + /* acceleration factor */ + if (compressionLevel < 0) { + int const clampedCompressionLevel = MAX(ZSTD_minCLevel(), compressionLevel); + cp.targetLength = (unsigned)(-clampedCompressionLevel); + } + /* refine parameters based on srcSize & dictSize */ + return ZSTD_adjustCParams_internal(cp, srcSizeHint, dictSize, mode); + } +} + +/*! ZSTD_getCParams() : + * @return ZSTD_compressionParameters structure for a selected compression level, srcSize and dictSize. + * Size values are optional, provide 0 if not known or unused */ +ZSTD_compressionParameters ZSTD_getCParams(int compressionLevel, unsigned long long srcSizeHint, size_t dictSize) +{ + if (srcSizeHint == 0) srcSizeHint = ZSTD_CONTENTSIZE_UNKNOWN; + return ZSTD_getCParams_internal(compressionLevel, srcSizeHint, dictSize, ZSTD_cpm_unknown); +} + +/*! ZSTD_getParams() : + * same idea as ZSTD_getCParams() + * @return a `ZSTD_parameters` structure (instead of `ZSTD_compressionParameters`). + * Fields of `ZSTD_frameParameters` are set to default values */ +static ZSTD_parameters ZSTD_getParams_internal(int compressionLevel, unsigned long long srcSizeHint, size_t dictSize, ZSTD_cParamMode_e mode) { + ZSTD_parameters params; + ZSTD_compressionParameters const cParams = ZSTD_getCParams_internal(compressionLevel, srcSizeHint, dictSize, mode); + DEBUGLOG(5, "ZSTD_getParams (cLevel=%i)", compressionLevel); + ZSTD_memset(¶ms, 0, sizeof(params)); + params.cParams = cParams; + params.fParams.contentSizeFlag = 1; + return params; +} + +/*! ZSTD_getParams() : + * same idea as ZSTD_getCParams() + * @return a `ZSTD_parameters` structure (instead of `ZSTD_compressionParameters`). + * Fields of `ZSTD_frameParameters` are set to default values */ +ZSTD_parameters ZSTD_getParams(int compressionLevel, unsigned long long srcSizeHint, size_t dictSize) { + if (srcSizeHint == 0) srcSizeHint = ZSTD_CONTENTSIZE_UNKNOWN; + return ZSTD_getParams_internal(compressionLevel, srcSizeHint, dictSize, ZSTD_cpm_unknown); +} diff --git a/dependencies/zstd-1.5.0/lib/compress/zstd_compress_internal.h b/dependencies/zstd-1.5.0/lib/compress/zstd_compress_internal.h new file mode 100644 index 0000000..3b04fd0 --- /dev/null +++ b/dependencies/zstd-1.5.0/lib/compress/zstd_compress_internal.h @@ -0,0 +1,1367 @@ +/* + * Copyright (c) Yann Collet, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + +/* This header contains definitions + * that shall **only** be used by modules within lib/compress. + */ + +#ifndef ZSTD_COMPRESS_H +#define ZSTD_COMPRESS_H + +/*-************************************* +* Dependencies +***************************************/ +#include "../common/zstd_internal.h" +#include "zstd_cwksp.h" +#ifdef ZSTD_MULTITHREAD +# include "zstdmt_compress.h" +#endif + +#if defined (__cplusplus) +extern "C" { +#endif + +/*-************************************* +* Constants +***************************************/ +#define kSearchStrength 8 +#define HASH_READ_SIZE 8 +#define ZSTD_DUBT_UNSORTED_MARK 1 /* For btlazy2 strategy, index ZSTD_DUBT_UNSORTED_MARK==1 means "unsorted". + It could be confused for a real successor at index "1", if sorted as larger than its predecessor. + It's not a big deal though : candidate will just be sorted again. + Additionally, candidate position 1 will be lost. + But candidate 1 cannot hide a large tree of candidates, so it's a minimal loss. + The benefit is that ZSTD_DUBT_UNSORTED_MARK cannot be mishandled after table re-use with a different strategy. + This constant is required by ZSTD_compressBlock_btlazy2() and ZSTD_reduceTable_internal() */ + + +/*-************************************* +* Context memory management +***************************************/ +typedef enum { ZSTDcs_created=0, ZSTDcs_init, ZSTDcs_ongoing, ZSTDcs_ending } ZSTD_compressionStage_e; +typedef enum { zcss_init=0, zcss_load, zcss_flush } ZSTD_cStreamStage; + +typedef struct ZSTD_prefixDict_s { + const void* dict; + size_t dictSize; + ZSTD_dictContentType_e dictContentType; +} ZSTD_prefixDict; + +typedef struct { + void* dictBuffer; + void const* dict; + size_t dictSize; + ZSTD_dictContentType_e dictContentType; + ZSTD_CDict* cdict; +} ZSTD_localDict; + +typedef struct { + HUF_CElt CTable[HUF_CTABLE_SIZE_U32(255)]; + HUF_repeat repeatMode; +} ZSTD_hufCTables_t; + +typedef struct { + FSE_CTable offcodeCTable[FSE_CTABLE_SIZE_U32(OffFSELog, MaxOff)]; + FSE_CTable matchlengthCTable[FSE_CTABLE_SIZE_U32(MLFSELog, MaxML)]; + FSE_CTable litlengthCTable[FSE_CTABLE_SIZE_U32(LLFSELog, MaxLL)]; + FSE_repeat offcode_repeatMode; + FSE_repeat matchlength_repeatMode; + FSE_repeat litlength_repeatMode; +} ZSTD_fseCTables_t; + +typedef struct { + ZSTD_hufCTables_t huf; + ZSTD_fseCTables_t fse; +} ZSTD_entropyCTables_t; + +/*********************************************** +* Entropy buffer statistics structs and funcs * +***********************************************/ +/** ZSTD_hufCTablesMetadata_t : + * Stores Literals Block Type for a super-block in hType, and + * huffman tree description in hufDesBuffer. + * hufDesSize refers to the size of huffman tree description in bytes. + * This metadata is populated in ZSTD_buildBlockEntropyStats_literals() */ +typedef struct { + symbolEncodingType_e hType; + BYTE hufDesBuffer[ZSTD_MAX_HUF_HEADER_SIZE]; + size_t hufDesSize; +} ZSTD_hufCTablesMetadata_t; + +/** ZSTD_fseCTablesMetadata_t : + * Stores symbol compression modes for a super-block in {ll, ol, ml}Type, and + * fse tables in fseTablesBuffer. + * fseTablesSize refers to the size of fse tables in bytes. + * This metadata is populated in ZSTD_buildBlockEntropyStats_sequences() */ +typedef struct { + symbolEncodingType_e llType; + symbolEncodingType_e ofType; + symbolEncodingType_e mlType; + BYTE fseTablesBuffer[ZSTD_MAX_FSE_HEADERS_SIZE]; + size_t fseTablesSize; + size_t lastCountSize; /* This is to account for bug in 1.3.4. More detail in ZSTD_entropyCompressSeqStore_internal() */ +} ZSTD_fseCTablesMetadata_t; + +typedef struct { + ZSTD_hufCTablesMetadata_t hufMetadata; + ZSTD_fseCTablesMetadata_t fseMetadata; +} ZSTD_entropyCTablesMetadata_t; + +/** ZSTD_buildBlockEntropyStats() : + * Builds entropy for the block. + * @return : 0 on success or error code */ +size_t ZSTD_buildBlockEntropyStats(seqStore_t* seqStorePtr, + const ZSTD_entropyCTables_t* prevEntropy, + ZSTD_entropyCTables_t* nextEntropy, + const ZSTD_CCtx_params* cctxParams, + ZSTD_entropyCTablesMetadata_t* entropyMetadata, + void* workspace, size_t wkspSize); + +/********************************* +* Compression internals structs * +*********************************/ + +typedef struct { + U32 off; /* Offset code (offset + ZSTD_REP_MOVE) for the match */ + U32 len; /* Raw length of match */ +} ZSTD_match_t; + +typedef struct { + U32 offset; /* Offset of sequence */ + U32 litLength; /* Length of literals prior to match */ + U32 matchLength; /* Raw length of match */ +} rawSeq; + +typedef struct { + rawSeq* seq; /* The start of the sequences */ + size_t pos; /* The index in seq where reading stopped. pos <= size. */ + size_t posInSequence; /* The position within the sequence at seq[pos] where reading + stopped. posInSequence <= seq[pos].litLength + seq[pos].matchLength */ + size_t size; /* The number of sequences. <= capacity. */ + size_t capacity; /* The capacity starting from `seq` pointer */ +} rawSeqStore_t; + +UNUSED_ATTR static const rawSeqStore_t kNullRawSeqStore = {NULL, 0, 0, 0, 0}; + +typedef struct { + int price; + U32 off; + U32 mlen; + U32 litlen; + U32 rep[ZSTD_REP_NUM]; +} ZSTD_optimal_t; + +typedef enum { zop_dynamic=0, zop_predef } ZSTD_OptPrice_e; + +typedef struct { + /* All tables are allocated inside cctx->workspace by ZSTD_resetCCtx_internal() */ + unsigned* litFreq; /* table of literals statistics, of size 256 */ + unsigned* litLengthFreq; /* table of litLength statistics, of size (MaxLL+1) */ + unsigned* matchLengthFreq; /* table of matchLength statistics, of size (MaxML+1) */ + unsigned* offCodeFreq; /* table of offCode statistics, of size (MaxOff+1) */ + ZSTD_match_t* matchTable; /* list of found matches, of size ZSTD_OPT_NUM+1 */ + ZSTD_optimal_t* priceTable; /* All positions tracked by optimal parser, of size ZSTD_OPT_NUM+1 */ + + U32 litSum; /* nb of literals */ + U32 litLengthSum; /* nb of litLength codes */ + U32 matchLengthSum; /* nb of matchLength codes */ + U32 offCodeSum; /* nb of offset codes */ + U32 litSumBasePrice; /* to compare to log2(litfreq) */ + U32 litLengthSumBasePrice; /* to compare to log2(llfreq) */ + U32 matchLengthSumBasePrice;/* to compare to log2(mlfreq) */ + U32 offCodeSumBasePrice; /* to compare to log2(offreq) */ + ZSTD_OptPrice_e priceType; /* prices can be determined dynamically, or follow a pre-defined cost structure */ + const ZSTD_entropyCTables_t* symbolCosts; /* pre-calculated dictionary statistics */ + ZSTD_literalCompressionMode_e literalCompressionMode; +} optState_t; + +typedef struct { + ZSTD_entropyCTables_t entropy; + U32 rep[ZSTD_REP_NUM]; +} ZSTD_compressedBlockState_t; + +typedef struct { + BYTE const* nextSrc; /* next block here to continue on current prefix */ + BYTE const* base; /* All regular indexes relative to this position */ + BYTE const* dictBase; /* extDict indexes relative to this position */ + U32 dictLimit; /* below that point, need extDict */ + U32 lowLimit; /* below that point, no more valid data */ + U32 nbOverflowCorrections; /* Number of times overflow correction has run since + * ZSTD_window_init(). Useful for debugging coredumps + * and for ZSTD_WINDOW_OVERFLOW_CORRECT_FREQUENTLY. + */ +} ZSTD_window_t; + +typedef struct ZSTD_matchState_t ZSTD_matchState_t; + +#define ZSTD_ROW_HASH_CACHE_SIZE 8 /* Size of prefetching hash cache for row-based matchfinder */ + +struct ZSTD_matchState_t { + ZSTD_window_t window; /* State for window round buffer management */ + U32 loadedDictEnd; /* index of end of dictionary, within context's referential. + * When loadedDictEnd != 0, a dictionary is in use, and still valid. + * This relies on a mechanism to set loadedDictEnd=0 when dictionary is no longer within distance. + * Such mechanism is provided within ZSTD_window_enforceMaxDist() and ZSTD_checkDictValidity(). + * When dict referential is copied into active context (i.e. not attached), + * loadedDictEnd == dictSize, since referential starts from zero. + */ + U32 nextToUpdate; /* index from which to continue table update */ + U32 hashLog3; /* dispatch table for matches of len==3 : larger == faster, more memory */ + + U32 rowHashLog; /* For row-based matchfinder: Hashlog based on nb of rows in the hashTable.*/ + U16* tagTable; /* For row-based matchFinder: A row-based table containing the hashes and head index. */ + U32 hashCache[ZSTD_ROW_HASH_CACHE_SIZE]; /* For row-based matchFinder: a cache of hashes to improve speed */ + + U32* hashTable; + U32* hashTable3; + U32* chainTable; + + U32 forceNonContiguous; /* Non-zero if we should force non-contiguous load for the next window update. */ + + int dedicatedDictSearch; /* Indicates whether this matchState is using the + * dedicated dictionary search structure. + */ + optState_t opt; /* optimal parser state */ + const ZSTD_matchState_t* dictMatchState; + ZSTD_compressionParameters cParams; + const rawSeqStore_t* ldmSeqStore; +}; + +typedef struct { + ZSTD_compressedBlockState_t* prevCBlock; + ZSTD_compressedBlockState_t* nextCBlock; + ZSTD_matchState_t matchState; +} ZSTD_blockState_t; + +typedef struct { + U32 offset; + U32 checksum; +} ldmEntry_t; + +typedef struct { + BYTE const* split; + U32 hash; + U32 checksum; + ldmEntry_t* bucket; +} ldmMatchCandidate_t; + +#define LDM_BATCH_SIZE 64 + +typedef struct { + ZSTD_window_t window; /* State for the window round buffer management */ + ldmEntry_t* hashTable; + U32 loadedDictEnd; + BYTE* bucketOffsets; /* Next position in bucket to insert entry */ + size_t splitIndices[LDM_BATCH_SIZE]; + ldmMatchCandidate_t matchCandidates[LDM_BATCH_SIZE]; +} ldmState_t; + +typedef struct { + U32 enableLdm; /* 1 if enable long distance matching */ + U32 hashLog; /* Log size of hashTable */ + U32 bucketSizeLog; /* Log bucket size for collision resolution, at most 8 */ + U32 minMatchLength; /* Minimum match length */ + U32 hashRateLog; /* Log number of entries to skip */ + U32 windowLog; /* Window log for the LDM */ +} ldmParams_t; + +typedef struct { + int collectSequences; + ZSTD_Sequence* seqStart; + size_t seqIndex; + size_t maxSequences; +} SeqCollector; + +struct ZSTD_CCtx_params_s { + ZSTD_format_e format; + ZSTD_compressionParameters cParams; + ZSTD_frameParameters fParams; + + int compressionLevel; + int forceWindow; /* force back-references to respect limit of + * 1< 63) ? ZSTD_highbit32(litLength) + LL_deltaCode : LL_Code[litLength]; +} + +/* ZSTD_MLcode() : + * note : mlBase = matchLength - MINMATCH; + * because it's the format it's stored in seqStore->sequences */ +MEM_STATIC U32 ZSTD_MLcode(U32 mlBase) +{ + static const BYTE ML_Code[128] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 32, 33, 33, 34, 34, 35, 35, 36, 36, 36, 36, 37, 37, 37, 37, + 38, 38, 38, 38, 38, 38, 38, 38, 39, 39, 39, 39, 39, 39, 39, 39, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, + 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42 }; + static const U32 ML_deltaCode = 36; + return (mlBase > 127) ? ZSTD_highbit32(mlBase) + ML_deltaCode : ML_Code[mlBase]; +} + +typedef struct repcodes_s { + U32 rep[3]; +} repcodes_t; + +MEM_STATIC repcodes_t ZSTD_updateRep(U32 const rep[3], U32 const offset, U32 const ll0) +{ + repcodes_t newReps; + if (offset >= ZSTD_REP_NUM) { /* full offset */ + newReps.rep[2] = rep[1]; + newReps.rep[1] = rep[0]; + newReps.rep[0] = offset - ZSTD_REP_MOVE; + } else { /* repcode */ + U32 const repCode = offset + ll0; + if (repCode > 0) { /* note : if repCode==0, no change */ + U32 const currentOffset = (repCode==ZSTD_REP_NUM) ? (rep[0] - 1) : rep[repCode]; + newReps.rep[2] = (repCode >= 2) ? rep[1] : rep[2]; + newReps.rep[1] = rep[0]; + newReps.rep[0] = currentOffset; + } else { /* repCode == 0 */ + ZSTD_memcpy(&newReps, rep, sizeof(newReps)); + } + } + return newReps; +} + +/* ZSTD_cParam_withinBounds: + * @return 1 if value is within cParam bounds, + * 0 otherwise */ +MEM_STATIC int ZSTD_cParam_withinBounds(ZSTD_cParameter cParam, int value) +{ + ZSTD_bounds const bounds = ZSTD_cParam_getBounds(cParam); + if (ZSTD_isError(bounds.error)) return 0; + if (value < bounds.lowerBound) return 0; + if (value > bounds.upperBound) return 0; + return 1; +} + +/* ZSTD_noCompressBlock() : + * Writes uncompressed block to dst buffer from given src. + * Returns the size of the block */ +MEM_STATIC size_t ZSTD_noCompressBlock (void* dst, size_t dstCapacity, const void* src, size_t srcSize, U32 lastBlock) +{ + U32 const cBlockHeader24 = lastBlock + (((U32)bt_raw)<<1) + (U32)(srcSize << 3); + RETURN_ERROR_IF(srcSize + ZSTD_blockHeaderSize > dstCapacity, + dstSize_tooSmall, "dst buf too small for uncompressed block"); + MEM_writeLE24(dst, cBlockHeader24); + ZSTD_memcpy((BYTE*)dst + ZSTD_blockHeaderSize, src, srcSize); + return ZSTD_blockHeaderSize + srcSize; +} + +MEM_STATIC size_t ZSTD_rleCompressBlock (void* dst, size_t dstCapacity, BYTE src, size_t srcSize, U32 lastBlock) +{ + BYTE* const op = (BYTE*)dst; + U32 const cBlockHeader = lastBlock + (((U32)bt_rle)<<1) + (U32)(srcSize << 3); + RETURN_ERROR_IF(dstCapacity < 4, dstSize_tooSmall, ""); + MEM_writeLE24(op, cBlockHeader); + op[3] = src; + return 4; +} + + +/* ZSTD_minGain() : + * minimum compression required + * to generate a compress block or a compressed literals section. + * note : use same formula for both situations */ +MEM_STATIC size_t ZSTD_minGain(size_t srcSize, ZSTD_strategy strat) +{ + U32 const minlog = (strat>=ZSTD_btultra) ? (U32)(strat) - 1 : 6; + ZSTD_STATIC_ASSERT(ZSTD_btultra == 8); + assert(ZSTD_cParam_withinBounds(ZSTD_c_strategy, strat)); + return (srcSize >> minlog) + 2; +} + +MEM_STATIC int ZSTD_disableLiteralsCompression(const ZSTD_CCtx_params* cctxParams) +{ + switch (cctxParams->literalCompressionMode) { + case ZSTD_lcm_huffman: + return 0; + case ZSTD_lcm_uncompressed: + return 1; + default: + assert(0 /* impossible: pre-validated */); + /* fall-through */ + case ZSTD_lcm_auto: + return (cctxParams->cParams.strategy == ZSTD_fast) && (cctxParams->cParams.targetLength > 0); + } +} + +/*! ZSTD_safecopyLiterals() : + * memcpy() function that won't read beyond more than WILDCOPY_OVERLENGTH bytes past ilimit_w. + * Only called when the sequence ends past ilimit_w, so it only needs to be optimized for single + * large copies. + */ +static void ZSTD_safecopyLiterals(BYTE* op, BYTE const* ip, BYTE const* const iend, BYTE const* ilimit_w) { + assert(iend > ilimit_w); + if (ip <= ilimit_w) { + ZSTD_wildcopy(op, ip, ilimit_w - ip, ZSTD_no_overlap); + op += ilimit_w - ip; + ip = ilimit_w; + } + while (ip < iend) *op++ = *ip++; +} + +/*! ZSTD_storeSeq() : + * Store a sequence (litlen, litPtr, offCode and mlBase) into seqStore_t. + * `offCode` : distance to match + ZSTD_REP_MOVE (values <= ZSTD_REP_MOVE are repCodes). + * `mlBase` : matchLength - MINMATCH + * Allowed to overread literals up to litLimit. +*/ +HINT_INLINE UNUSED_ATTR +void ZSTD_storeSeq(seqStore_t* seqStorePtr, size_t litLength, const BYTE* literals, const BYTE* litLimit, U32 offCode, size_t mlBase) +{ + BYTE const* const litLimit_w = litLimit - WILDCOPY_OVERLENGTH; + BYTE const* const litEnd = literals + litLength; +#if defined(DEBUGLEVEL) && (DEBUGLEVEL >= 6) + static const BYTE* g_start = NULL; + if (g_start==NULL) g_start = (const BYTE*)literals; /* note : index only works for compression within a single segment */ + { U32 const pos = (U32)((const BYTE*)literals - g_start); + DEBUGLOG(6, "Cpos%7u :%3u literals, match%4u bytes at offCode%7u", + pos, (U32)litLength, (U32)mlBase+MINMATCH, (U32)offCode); + } +#endif + assert((size_t)(seqStorePtr->sequences - seqStorePtr->sequencesStart) < seqStorePtr->maxNbSeq); + /* copy Literals */ + assert(seqStorePtr->maxNbLit <= 128 KB); + assert(seqStorePtr->lit + litLength <= seqStorePtr->litStart + seqStorePtr->maxNbLit); + assert(literals + litLength <= litLimit); + if (litEnd <= litLimit_w) { + /* Common case we can use wildcopy. + * First copy 16 bytes, because literals are likely short. + */ + assert(WILDCOPY_OVERLENGTH >= 16); + ZSTD_copy16(seqStorePtr->lit, literals); + if (litLength > 16) { + ZSTD_wildcopy(seqStorePtr->lit+16, literals+16, (ptrdiff_t)litLength-16, ZSTD_no_overlap); + } + } else { + ZSTD_safecopyLiterals(seqStorePtr->lit, literals, litEnd, litLimit_w); + } + seqStorePtr->lit += litLength; + + /* literal Length */ + if (litLength>0xFFFF) { + assert(seqStorePtr->longLengthType == ZSTD_llt_none); /* there can only be a single long length */ + seqStorePtr->longLengthType = ZSTD_llt_literalLength; + seqStorePtr->longLengthPos = (U32)(seqStorePtr->sequences - seqStorePtr->sequencesStart); + } + seqStorePtr->sequences[0].litLength = (U16)litLength; + + /* match offset */ + seqStorePtr->sequences[0].offset = offCode + 1; + + /* match Length */ + if (mlBase>0xFFFF) { + assert(seqStorePtr->longLengthType == ZSTD_llt_none); /* there can only be a single long length */ + seqStorePtr->longLengthType = ZSTD_llt_matchLength; + seqStorePtr->longLengthPos = (U32)(seqStorePtr->sequences - seqStorePtr->sequencesStart); + } + seqStorePtr->sequences[0].matchLength = (U16)mlBase; + + seqStorePtr->sequences++; +} + + +/*-************************************* +* Match length counter +***************************************/ +static unsigned ZSTD_NbCommonBytes (size_t val) +{ + if (MEM_isLittleEndian()) { + if (MEM_64bits()) { +# if defined(_MSC_VER) && defined(_WIN64) +# if STATIC_BMI2 + return _tzcnt_u64(val) >> 3; +# else + unsigned long r = 0; + return _BitScanForward64( &r, (U64)val ) ? (unsigned)(r >> 3) : 0; +# endif +# elif defined(__GNUC__) && (__GNUC__ >= 4) + return (__builtin_ctzll((U64)val) >> 3); +# else + static const int DeBruijnBytePos[64] = { 0, 0, 0, 0, 0, 1, 1, 2, + 0, 3, 1, 3, 1, 4, 2, 7, + 0, 2, 3, 6, 1, 5, 3, 5, + 1, 3, 4, 4, 2, 5, 6, 7, + 7, 0, 1, 2, 3, 3, 4, 6, + 2, 6, 5, 5, 3, 4, 5, 6, + 7, 1, 2, 4, 6, 4, 4, 5, + 7, 2, 6, 5, 7, 6, 7, 7 }; + return DeBruijnBytePos[((U64)((val & -(long long)val) * 0x0218A392CDABBD3FULL)) >> 58]; +# endif + } else { /* 32 bits */ +# if defined(_MSC_VER) + unsigned long r=0; + return _BitScanForward( &r, (U32)val ) ? (unsigned)(r >> 3) : 0; +# elif defined(__GNUC__) && (__GNUC__ >= 3) + return (__builtin_ctz((U32)val) >> 3); +# else + static const int DeBruijnBytePos[32] = { 0, 0, 3, 0, 3, 1, 3, 0, + 3, 2, 2, 1, 3, 2, 0, 1, + 3, 3, 1, 2, 2, 2, 2, 0, + 3, 1, 2, 0, 1, 0, 1, 1 }; + return DeBruijnBytePos[((U32)((val & -(S32)val) * 0x077CB531U)) >> 27]; +# endif + } + } else { /* Big Endian CPU */ + if (MEM_64bits()) { +# if defined(_MSC_VER) && defined(_WIN64) +# if STATIC_BMI2 + return _lzcnt_u64(val) >> 3; +# else + unsigned long r = 0; + return _BitScanReverse64(&r, (U64)val) ? (unsigned)(r >> 3) : 0; +# endif +# elif defined(__GNUC__) && (__GNUC__ >= 4) + return (__builtin_clzll(val) >> 3); +# else + unsigned r; + const unsigned n32 = sizeof(size_t)*4; /* calculate this way due to compiler complaining in 32-bits mode */ + if (!(val>>n32)) { r=4; } else { r=0; val>>=n32; } + if (!(val>>16)) { r+=2; val>>=8; } else { val>>=24; } + r += (!val); + return r; +# endif + } else { /* 32 bits */ +# if defined(_MSC_VER) + unsigned long r = 0; + return _BitScanReverse( &r, (unsigned long)val ) ? (unsigned)(r >> 3) : 0; +# elif defined(__GNUC__) && (__GNUC__ >= 3) + return (__builtin_clz((U32)val) >> 3); +# else + unsigned r; + if (!(val>>16)) { r=2; val>>=8; } else { r=0; val>>=24; } + r += (!val); + return r; +# endif + } } +} + + +MEM_STATIC size_t ZSTD_count(const BYTE* pIn, const BYTE* pMatch, const BYTE* const pInLimit) +{ + const BYTE* const pStart = pIn; + const BYTE* const pInLoopLimit = pInLimit - (sizeof(size_t)-1); + + if (pIn < pInLoopLimit) { + { size_t const diff = MEM_readST(pMatch) ^ MEM_readST(pIn); + if (diff) return ZSTD_NbCommonBytes(diff); } + pIn+=sizeof(size_t); pMatch+=sizeof(size_t); + while (pIn < pInLoopLimit) { + size_t const diff = MEM_readST(pMatch) ^ MEM_readST(pIn); + if (!diff) { pIn+=sizeof(size_t); pMatch+=sizeof(size_t); continue; } + pIn += ZSTD_NbCommonBytes(diff); + return (size_t)(pIn - pStart); + } } + if (MEM_64bits() && (pIn<(pInLimit-3)) && (MEM_read32(pMatch) == MEM_read32(pIn))) { pIn+=4; pMatch+=4; } + if ((pIn<(pInLimit-1)) && (MEM_read16(pMatch) == MEM_read16(pIn))) { pIn+=2; pMatch+=2; } + if ((pIn> (32-h) ; } +MEM_STATIC size_t ZSTD_hash3Ptr(const void* ptr, U32 h) { return ZSTD_hash3(MEM_readLE32(ptr), h); } /* only in zstd_opt.h */ + +static const U32 prime4bytes = 2654435761U; +static U32 ZSTD_hash4(U32 u, U32 h) { return (u * prime4bytes) >> (32-h) ; } +static size_t ZSTD_hash4Ptr(const void* ptr, U32 h) { return ZSTD_hash4(MEM_read32(ptr), h); } + +static const U64 prime5bytes = 889523592379ULL; +static size_t ZSTD_hash5(U64 u, U32 h) { return (size_t)(((u << (64-40)) * prime5bytes) >> (64-h)) ; } +static size_t ZSTD_hash5Ptr(const void* p, U32 h) { return ZSTD_hash5(MEM_readLE64(p), h); } + +static const U64 prime6bytes = 227718039650203ULL; +static size_t ZSTD_hash6(U64 u, U32 h) { return (size_t)(((u << (64-48)) * prime6bytes) >> (64-h)) ; } +static size_t ZSTD_hash6Ptr(const void* p, U32 h) { return ZSTD_hash6(MEM_readLE64(p), h); } + +static const U64 prime7bytes = 58295818150454627ULL; +static size_t ZSTD_hash7(U64 u, U32 h) { return (size_t)(((u << (64-56)) * prime7bytes) >> (64-h)) ; } +static size_t ZSTD_hash7Ptr(const void* p, U32 h) { return ZSTD_hash7(MEM_readLE64(p), h); } + +static const U64 prime8bytes = 0xCF1BBCDCB7A56463ULL; +static size_t ZSTD_hash8(U64 u, U32 h) { return (size_t)(((u) * prime8bytes) >> (64-h)) ; } +static size_t ZSTD_hash8Ptr(const void* p, U32 h) { return ZSTD_hash8(MEM_readLE64(p), h); } + +MEM_STATIC FORCE_INLINE_ATTR +size_t ZSTD_hashPtr(const void* p, U32 hBits, U32 mls) +{ + switch(mls) + { + default: + case 4: return ZSTD_hash4Ptr(p, hBits); + case 5: return ZSTD_hash5Ptr(p, hBits); + case 6: return ZSTD_hash6Ptr(p, hBits); + case 7: return ZSTD_hash7Ptr(p, hBits); + case 8: return ZSTD_hash8Ptr(p, hBits); + } +} + +/** ZSTD_ipow() : + * Return base^exponent. + */ +static U64 ZSTD_ipow(U64 base, U64 exponent) +{ + U64 power = 1; + while (exponent) { + if (exponent & 1) power *= base; + exponent >>= 1; + base *= base; + } + return power; +} + +#define ZSTD_ROLL_HASH_CHAR_OFFSET 10 + +/** ZSTD_rollingHash_append() : + * Add the buffer to the hash value. + */ +static U64 ZSTD_rollingHash_append(U64 hash, void const* buf, size_t size) +{ + BYTE const* istart = (BYTE const*)buf; + size_t pos; + for (pos = 0; pos < size; ++pos) { + hash *= prime8bytes; + hash += istart[pos] + ZSTD_ROLL_HASH_CHAR_OFFSET; + } + return hash; +} + +/** ZSTD_rollingHash_compute() : + * Compute the rolling hash value of the buffer. + */ +MEM_STATIC U64 ZSTD_rollingHash_compute(void const* buf, size_t size) +{ + return ZSTD_rollingHash_append(0, buf, size); +} + +/** ZSTD_rollingHash_primePower() : + * Compute the primePower to be passed to ZSTD_rollingHash_rotate() for a hash + * over a window of length bytes. + */ +MEM_STATIC U64 ZSTD_rollingHash_primePower(U32 length) +{ + return ZSTD_ipow(prime8bytes, length - 1); +} + +/** ZSTD_rollingHash_rotate() : + * Rotate the rolling hash by one byte. + */ +MEM_STATIC U64 ZSTD_rollingHash_rotate(U64 hash, BYTE toRemove, BYTE toAdd, U64 primePower) +{ + hash -= (toRemove + ZSTD_ROLL_HASH_CHAR_OFFSET) * primePower; + hash *= prime8bytes; + hash += toAdd + ZSTD_ROLL_HASH_CHAR_OFFSET; + return hash; +} + +/*-************************************* +* Round buffer management +***************************************/ +#if (ZSTD_WINDOWLOG_MAX_64 > 31) +# error "ZSTD_WINDOWLOG_MAX is too large : would overflow ZSTD_CURRENT_MAX" +#endif +/* Max current allowed */ +#define ZSTD_CURRENT_MAX ((3U << 29) + (1U << ZSTD_WINDOWLOG_MAX)) +/* Maximum chunk size before overflow correction needs to be called again */ +#define ZSTD_CHUNKSIZE_MAX \ + ( ((U32)-1) /* Maximum ending current index */ \ + - ZSTD_CURRENT_MAX) /* Maximum beginning lowLimit */ + +/** + * ZSTD_window_clear(): + * Clears the window containing the history by simply setting it to empty. + */ +MEM_STATIC void ZSTD_window_clear(ZSTD_window_t* window) +{ + size_t const endT = (size_t)(window->nextSrc - window->base); + U32 const end = (U32)endT; + + window->lowLimit = end; + window->dictLimit = end; +} + +MEM_STATIC U32 ZSTD_window_isEmpty(ZSTD_window_t const window) +{ + return window.dictLimit == 1 && + window.lowLimit == 1 && + (window.nextSrc - window.base) == 1; +} + +/** + * ZSTD_window_hasExtDict(): + * Returns non-zero if the window has a non-empty extDict. + */ +MEM_STATIC U32 ZSTD_window_hasExtDict(ZSTD_window_t const window) +{ + return window.lowLimit < window.dictLimit; +} + +/** + * ZSTD_matchState_dictMode(): + * Inspects the provided matchState and figures out what dictMode should be + * passed to the compressor. + */ +MEM_STATIC ZSTD_dictMode_e ZSTD_matchState_dictMode(const ZSTD_matchState_t *ms) +{ + return ZSTD_window_hasExtDict(ms->window) ? + ZSTD_extDict : + ms->dictMatchState != NULL ? + (ms->dictMatchState->dedicatedDictSearch ? ZSTD_dedicatedDictSearch : ZSTD_dictMatchState) : + ZSTD_noDict; +} + +/* Defining this macro to non-zero tells zstd to run the overflow correction + * code much more frequently. This is very inefficient, and should only be + * used for tests and fuzzers. + */ +#ifndef ZSTD_WINDOW_OVERFLOW_CORRECT_FREQUENTLY +# ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION +# define ZSTD_WINDOW_OVERFLOW_CORRECT_FREQUENTLY 1 +# else +# define ZSTD_WINDOW_OVERFLOW_CORRECT_FREQUENTLY 0 +# endif +#endif + +/** + * ZSTD_window_canOverflowCorrect(): + * Returns non-zero if the indices are large enough for overflow correction + * to work correctly without impacting compression ratio. + */ +MEM_STATIC U32 ZSTD_window_canOverflowCorrect(ZSTD_window_t const window, + U32 cycleLog, + U32 maxDist, + U32 loadedDictEnd, + void const* src) +{ + U32 const cycleSize = 1u << cycleLog; + U32 const curr = (U32)((BYTE const*)src - window.base); + U32 const minIndexToOverflowCorrect = cycleSize + MAX(maxDist, cycleSize); + + /* Adjust the min index to backoff the overflow correction frequency, + * so we don't waste too much CPU in overflow correction. If this + * computation overflows we don't really care, we just need to make + * sure it is at least minIndexToOverflowCorrect. + */ + U32 const adjustment = window.nbOverflowCorrections + 1; + U32 const adjustedIndex = MAX(minIndexToOverflowCorrect * adjustment, + minIndexToOverflowCorrect); + U32 const indexLargeEnough = curr > adjustedIndex; + + /* Only overflow correct early if the dictionary is invalidated already, + * so we don't hurt compression ratio. + */ + U32 const dictionaryInvalidated = curr > maxDist + loadedDictEnd; + + return indexLargeEnough && dictionaryInvalidated; +} + +/** + * ZSTD_window_needOverflowCorrection(): + * Returns non-zero if the indices are getting too large and need overflow + * protection. + */ +MEM_STATIC U32 ZSTD_window_needOverflowCorrection(ZSTD_window_t const window, + U32 cycleLog, + U32 maxDist, + U32 loadedDictEnd, + void const* src, + void const* srcEnd) +{ + U32 const curr = (U32)((BYTE const*)srcEnd - window.base); + if (ZSTD_WINDOW_OVERFLOW_CORRECT_FREQUENTLY) { + if (ZSTD_window_canOverflowCorrect(window, cycleLog, maxDist, loadedDictEnd, src)) { + return 1; + } + } + return curr > ZSTD_CURRENT_MAX; +} + +/** + * ZSTD_window_correctOverflow(): + * Reduces the indices to protect from index overflow. + * Returns the correction made to the indices, which must be applied to every + * stored index. + * + * The least significant cycleLog bits of the indices must remain the same, + * which may be 0. Every index up to maxDist in the past must be valid. + */ +MEM_STATIC U32 ZSTD_window_correctOverflow(ZSTD_window_t* window, U32 cycleLog, + U32 maxDist, void const* src) +{ + /* preemptive overflow correction: + * 1. correction is large enough: + * lowLimit > (3<<29) ==> current > 3<<29 + 1< (3<<29 + 1< (3<<29) - (1< (3<<29) - (1<<30) (NOTE: chainLog <= 30) + * > 1<<29 + * + * 2. (ip+ZSTD_CHUNKSIZE_MAX - cctx->base) doesn't overflow: + * After correction, current is less than (1<base < 1<<32. + * 3. (cctx->lowLimit + 1< 3<<29 + 1<base); + U32 const currentCycle0 = curr & cycleMask; + /* Exclude zero so that newCurrent - maxDist >= 1. */ + U32 const currentCycle1 = currentCycle0 == 0 ? cycleSize : currentCycle0; + U32 const newCurrent = currentCycle1 + MAX(maxDist, cycleSize); + U32 const correction = curr - newCurrent; + /* maxDist must be a power of two so that: + * (newCurrent & cycleMask) == (curr & cycleMask) + * This is required to not corrupt the chains / binary tree. + */ + assert((maxDist & (maxDist - 1)) == 0); + assert((curr & cycleMask) == (newCurrent & cycleMask)); + assert(curr > newCurrent); + if (!ZSTD_WINDOW_OVERFLOW_CORRECT_FREQUENTLY) { + /* Loose bound, should be around 1<<29 (see above) */ + assert(correction > 1<<28); + } + + window->base += correction; + window->dictBase += correction; + if (window->lowLimit <= correction) window->lowLimit = 1; + else window->lowLimit -= correction; + if (window->dictLimit <= correction) window->dictLimit = 1; + else window->dictLimit -= correction; + + /* Ensure we can still reference the full window. */ + assert(newCurrent >= maxDist); + assert(newCurrent - maxDist >= 1); + /* Ensure that lowLimit and dictLimit didn't underflow. */ + assert(window->lowLimit <= newCurrent); + assert(window->dictLimit <= newCurrent); + + ++window->nbOverflowCorrections; + + DEBUGLOG(4, "Correction of 0x%x bytes to lowLimit=0x%x", correction, + window->lowLimit); + return correction; +} + +/** + * ZSTD_window_enforceMaxDist(): + * Updates lowLimit so that: + * (srcEnd - base) - lowLimit == maxDist + loadedDictEnd + * + * It ensures index is valid as long as index >= lowLimit. + * This must be called before a block compression call. + * + * loadedDictEnd is only defined if a dictionary is in use for current compression. + * As the name implies, loadedDictEnd represents the index at end of dictionary. + * The value lies within context's referential, it can be directly compared to blockEndIdx. + * + * If loadedDictEndPtr is NULL, no dictionary is in use, and we use loadedDictEnd == 0. + * If loadedDictEndPtr is not NULL, we set it to zero after updating lowLimit. + * This is because dictionaries are allowed to be referenced fully + * as long as the last byte of the dictionary is in the window. + * Once input has progressed beyond window size, dictionary cannot be referenced anymore. + * + * In normal dict mode, the dictionary lies between lowLimit and dictLimit. + * In dictMatchState mode, lowLimit and dictLimit are the same, + * and the dictionary is below them. + * forceWindow and dictMatchState are therefore incompatible. + */ +MEM_STATIC void +ZSTD_window_enforceMaxDist(ZSTD_window_t* window, + const void* blockEnd, + U32 maxDist, + U32* loadedDictEndPtr, + const ZSTD_matchState_t** dictMatchStatePtr) +{ + U32 const blockEndIdx = (U32)((BYTE const*)blockEnd - window->base); + U32 const loadedDictEnd = (loadedDictEndPtr != NULL) ? *loadedDictEndPtr : 0; + DEBUGLOG(5, "ZSTD_window_enforceMaxDist: blockEndIdx=%u, maxDist=%u, loadedDictEnd=%u", + (unsigned)blockEndIdx, (unsigned)maxDist, (unsigned)loadedDictEnd); + + /* - When there is no dictionary : loadedDictEnd == 0. + In which case, the test (blockEndIdx > maxDist) is merely to avoid + overflowing next operation `newLowLimit = blockEndIdx - maxDist`. + - When there is a standard dictionary : + Index referential is copied from the dictionary, + which means it starts from 0. + In which case, loadedDictEnd == dictSize, + and it makes sense to compare `blockEndIdx > maxDist + dictSize` + since `blockEndIdx` also starts from zero. + - When there is an attached dictionary : + loadedDictEnd is expressed within the referential of the context, + so it can be directly compared against blockEndIdx. + */ + if (blockEndIdx > maxDist + loadedDictEnd) { + U32 const newLowLimit = blockEndIdx - maxDist; + if (window->lowLimit < newLowLimit) window->lowLimit = newLowLimit; + if (window->dictLimit < window->lowLimit) { + DEBUGLOG(5, "Update dictLimit to match lowLimit, from %u to %u", + (unsigned)window->dictLimit, (unsigned)window->lowLimit); + window->dictLimit = window->lowLimit; + } + /* On reaching window size, dictionaries are invalidated */ + if (loadedDictEndPtr) *loadedDictEndPtr = 0; + if (dictMatchStatePtr) *dictMatchStatePtr = NULL; + } +} + +/* Similar to ZSTD_window_enforceMaxDist(), + * but only invalidates dictionary + * when input progresses beyond window size. + * assumption : loadedDictEndPtr and dictMatchStatePtr are valid (non NULL) + * loadedDictEnd uses same referential as window->base + * maxDist is the window size */ +MEM_STATIC void +ZSTD_checkDictValidity(const ZSTD_window_t* window, + const void* blockEnd, + U32 maxDist, + U32* loadedDictEndPtr, + const ZSTD_matchState_t** dictMatchStatePtr) +{ + assert(loadedDictEndPtr != NULL); + assert(dictMatchStatePtr != NULL); + { U32 const blockEndIdx = (U32)((BYTE const*)blockEnd - window->base); + U32 const loadedDictEnd = *loadedDictEndPtr; + DEBUGLOG(5, "ZSTD_checkDictValidity: blockEndIdx=%u, maxDist=%u, loadedDictEnd=%u", + (unsigned)blockEndIdx, (unsigned)maxDist, (unsigned)loadedDictEnd); + assert(blockEndIdx >= loadedDictEnd); + + if (blockEndIdx > loadedDictEnd + maxDist) { + /* On reaching window size, dictionaries are invalidated. + * For simplification, if window size is reached anywhere within next block, + * the dictionary is invalidated for the full block. + */ + DEBUGLOG(6, "invalidating dictionary for current block (distance > windowSize)"); + *loadedDictEndPtr = 0; + *dictMatchStatePtr = NULL; + } else { + if (*loadedDictEndPtr != 0) { + DEBUGLOG(6, "dictionary considered valid for current block"); + } } } +} + +MEM_STATIC void ZSTD_window_init(ZSTD_window_t* window) { + ZSTD_memset(window, 0, sizeof(*window)); + window->base = (BYTE const*)""; + window->dictBase = (BYTE const*)""; + window->dictLimit = 1; /* start from 1, so that 1st position is valid */ + window->lowLimit = 1; /* it ensures first and later CCtx usages compress the same */ + window->nextSrc = window->base + 1; /* see issue #1241 */ + window->nbOverflowCorrections = 0; +} + +/** + * ZSTD_window_update(): + * Updates the window by appending [src, src + srcSize) to the window. + * If it is not contiguous, the current prefix becomes the extDict, and we + * forget about the extDict. Handles overlap of the prefix and extDict. + * Returns non-zero if the segment is contiguous. + */ +MEM_STATIC U32 ZSTD_window_update(ZSTD_window_t* window, + void const* src, size_t srcSize, + int forceNonContiguous) +{ + BYTE const* const ip = (BYTE const*)src; + U32 contiguous = 1; + DEBUGLOG(5, "ZSTD_window_update"); + if (srcSize == 0) + return contiguous; + assert(window->base != NULL); + assert(window->dictBase != NULL); + /* Check if blocks follow each other */ + if (src != window->nextSrc || forceNonContiguous) { + /* not contiguous */ + size_t const distanceFromBase = (size_t)(window->nextSrc - window->base); + DEBUGLOG(5, "Non contiguous blocks, new segment starts at %u", window->dictLimit); + window->lowLimit = window->dictLimit; + assert(distanceFromBase == (size_t)(U32)distanceFromBase); /* should never overflow */ + window->dictLimit = (U32)distanceFromBase; + window->dictBase = window->base; + window->base = ip - distanceFromBase; + /* ms->nextToUpdate = window->dictLimit; */ + if (window->dictLimit - window->lowLimit < HASH_READ_SIZE) window->lowLimit = window->dictLimit; /* too small extDict */ + contiguous = 0; + } + window->nextSrc = ip + srcSize; + /* if input and dictionary overlap : reduce dictionary (area presumed modified by input) */ + if ( (ip+srcSize > window->dictBase + window->lowLimit) + & (ip < window->dictBase + window->dictLimit)) { + ptrdiff_t const highInputIdx = (ip + srcSize) - window->dictBase; + U32 const lowLimitMax = (highInputIdx > (ptrdiff_t)window->dictLimit) ? window->dictLimit : (U32)highInputIdx; + window->lowLimit = lowLimitMax; + DEBUGLOG(5, "Overlapping extDict and input : new lowLimit = %u", window->lowLimit); + } + return contiguous; +} + +/** + * Returns the lowest allowed match index. It may either be in the ext-dict or the prefix. + */ +MEM_STATIC U32 ZSTD_getLowestMatchIndex(const ZSTD_matchState_t* ms, U32 curr, unsigned windowLog) +{ + U32 const maxDistance = 1U << windowLog; + U32 const lowestValid = ms->window.lowLimit; + U32 const withinWindow = (curr - lowestValid > maxDistance) ? curr - maxDistance : lowestValid; + U32 const isDictionary = (ms->loadedDictEnd != 0); + /* When using a dictionary the entire dictionary is valid if a single byte of the dictionary + * is within the window. We invalidate the dictionary (and set loadedDictEnd to 0) when it isn't + * valid for the entire block. So this check is sufficient to find the lowest valid match index. + */ + U32 const matchLowest = isDictionary ? lowestValid : withinWindow; + return matchLowest; +} + +/** + * Returns the lowest allowed match index in the prefix. + */ +MEM_STATIC U32 ZSTD_getLowestPrefixIndex(const ZSTD_matchState_t* ms, U32 curr, unsigned windowLog) +{ + U32 const maxDistance = 1U << windowLog; + U32 const lowestValid = ms->window.dictLimit; + U32 const withinWindow = (curr - lowestValid > maxDistance) ? curr - maxDistance : lowestValid; + U32 const isDictionary = (ms->loadedDictEnd != 0); + /* When computing the lowest prefix index we need to take the dictionary into account to handle + * the edge case where the dictionary and the source are contiguous in memory. + */ + U32 const matchLowest = isDictionary ? lowestValid : withinWindow; + return matchLowest; +} + + + +/* debug functions */ +#if (DEBUGLEVEL>=2) + +MEM_STATIC double ZSTD_fWeight(U32 rawStat) +{ + U32 const fp_accuracy = 8; + U32 const fp_multiplier = (1 << fp_accuracy); + U32 const newStat = rawStat + 1; + U32 const hb = ZSTD_highbit32(newStat); + U32 const BWeight = hb * fp_multiplier; + U32 const FWeight = (newStat << fp_accuracy) >> hb; + U32 const weight = BWeight + FWeight; + assert(hb + fp_accuracy < 31); + return (double)weight / fp_multiplier; +} + +/* display a table content, + * listing each element, its frequency, and its predicted bit cost */ +MEM_STATIC void ZSTD_debugTable(const U32* table, U32 max) +{ + unsigned u, sum; + for (u=0, sum=0; u<=max; u++) sum += table[u]; + DEBUGLOG(2, "total nb elts: %u", sum); + for (u=0; u<=max; u++) { + DEBUGLOG(2, "%2u: %5u (%.2f)", + u, table[u], ZSTD_fWeight(sum) - ZSTD_fWeight(table[u]) ); + } +} + +#endif + + +#if defined (__cplusplus) +} +#endif + +/* =============================================================== + * Shared internal declarations + * These prototypes may be called from sources not in lib/compress + * =============================================================== */ + +/* ZSTD_loadCEntropy() : + * dict : must point at beginning of a valid zstd dictionary. + * return : size of dictionary header (size of magic number + dict ID + entropy tables) + * assumptions : magic number supposed already checked + * and dictSize >= 8 */ +size_t ZSTD_loadCEntropy(ZSTD_compressedBlockState_t* bs, void* workspace, + const void* const dict, size_t dictSize); + +void ZSTD_reset_compressedBlockState(ZSTD_compressedBlockState_t* bs); + +/* ============================================================== + * Private declarations + * These prototypes shall only be called from within lib/compress + * ============================================================== */ + +/* ZSTD_getCParamsFromCCtxParams() : + * cParams are built depending on compressionLevel, src size hints, + * LDM and manually set compression parameters. + * Note: srcSizeHint == 0 means 0! + */ +ZSTD_compressionParameters ZSTD_getCParamsFromCCtxParams( + const ZSTD_CCtx_params* CCtxParams, U64 srcSizeHint, size_t dictSize, ZSTD_cParamMode_e mode); + +/*! ZSTD_initCStream_internal() : + * Private use only. Init streaming operation. + * expects params to be valid. + * must receive dict, or cdict, or none, but not both. + * @return : 0, or an error code */ +size_t ZSTD_initCStream_internal(ZSTD_CStream* zcs, + const void* dict, size_t dictSize, + const ZSTD_CDict* cdict, + const ZSTD_CCtx_params* params, unsigned long long pledgedSrcSize); + +void ZSTD_resetSeqStore(seqStore_t* ssPtr); + +/*! ZSTD_getCParamsFromCDict() : + * as the name implies */ +ZSTD_compressionParameters ZSTD_getCParamsFromCDict(const ZSTD_CDict* cdict); + +/* ZSTD_compressBegin_advanced_internal() : + * Private use only. To be called from zstdmt_compress.c. */ +size_t ZSTD_compressBegin_advanced_internal(ZSTD_CCtx* cctx, + const void* dict, size_t dictSize, + ZSTD_dictContentType_e dictContentType, + ZSTD_dictTableLoadMethod_e dtlm, + const ZSTD_CDict* cdict, + const ZSTD_CCtx_params* params, + unsigned long long pledgedSrcSize); + +/* ZSTD_compress_advanced_internal() : + * Private use only. To be called from zstdmt_compress.c. */ +size_t ZSTD_compress_advanced_internal(ZSTD_CCtx* cctx, + void* dst, size_t dstCapacity, + const void* src, size_t srcSize, + const void* dict,size_t dictSize, + const ZSTD_CCtx_params* params); + + +/* ZSTD_writeLastEmptyBlock() : + * output an empty Block with end-of-frame mark to complete a frame + * @return : size of data written into `dst` (== ZSTD_blockHeaderSize (defined in zstd_internal.h)) + * or an error code if `dstCapacity` is too small ( 1 */ +U32 ZSTD_cycleLog(U32 hashLog, ZSTD_strategy strat); + +/** ZSTD_CCtx_trace() : + * Trace the end of a compression call. + */ +void ZSTD_CCtx_trace(ZSTD_CCtx* cctx, size_t extraCSize); + +#endif /* ZSTD_COMPRESS_H */ diff --git a/dependencies/zstd-1.5.0/lib/compress/zstd_compress_literals.c b/dependencies/zstd-1.5.0/lib/compress/zstd_compress_literals.c new file mode 100644 index 0000000..008337b --- /dev/null +++ b/dependencies/zstd-1.5.0/lib/compress/zstd_compress_literals.c @@ -0,0 +1,158 @@ +/* + * Copyright (c) Yann Collet, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + + /*-************************************* + * Dependencies + ***************************************/ +#include "zstd_compress_literals.h" + +size_t ZSTD_noCompressLiterals (void* dst, size_t dstCapacity, const void* src, size_t srcSize) +{ + BYTE* const ostart = (BYTE*)dst; + U32 const flSize = 1 + (srcSize>31) + (srcSize>4095); + + RETURN_ERROR_IF(srcSize + flSize > dstCapacity, dstSize_tooSmall, ""); + + switch(flSize) + { + case 1: /* 2 - 1 - 5 */ + ostart[0] = (BYTE)((U32)set_basic + (srcSize<<3)); + break; + case 2: /* 2 - 2 - 12 */ + MEM_writeLE16(ostart, (U16)((U32)set_basic + (1<<2) + (srcSize<<4))); + break; + case 3: /* 2 - 2 - 20 */ + MEM_writeLE32(ostart, (U32)((U32)set_basic + (3<<2) + (srcSize<<4))); + break; + default: /* not necessary : flSize is {1,2,3} */ + assert(0); + } + + ZSTD_memcpy(ostart + flSize, src, srcSize); + DEBUGLOG(5, "Raw literals: %u -> %u", (U32)srcSize, (U32)(srcSize + flSize)); + return srcSize + flSize; +} + +size_t ZSTD_compressRleLiteralsBlock (void* dst, size_t dstCapacity, const void* src, size_t srcSize) +{ + BYTE* const ostart = (BYTE*)dst; + U32 const flSize = 1 + (srcSize>31) + (srcSize>4095); + + (void)dstCapacity; /* dstCapacity already guaranteed to be >=4, hence large enough */ + + switch(flSize) + { + case 1: /* 2 - 1 - 5 */ + ostart[0] = (BYTE)((U32)set_rle + (srcSize<<3)); + break; + case 2: /* 2 - 2 - 12 */ + MEM_writeLE16(ostart, (U16)((U32)set_rle + (1<<2) + (srcSize<<4))); + break; + case 3: /* 2 - 2 - 20 */ + MEM_writeLE32(ostart, (U32)((U32)set_rle + (3<<2) + (srcSize<<4))); + break; + default: /* not necessary : flSize is {1,2,3} */ + assert(0); + } + + ostart[flSize] = *(const BYTE*)src; + DEBUGLOG(5, "RLE literals: %u -> %u", (U32)srcSize, (U32)flSize + 1); + return flSize+1; +} + +size_t ZSTD_compressLiterals (ZSTD_hufCTables_t const* prevHuf, + ZSTD_hufCTables_t* nextHuf, + ZSTD_strategy strategy, int disableLiteralCompression, + void* dst, size_t dstCapacity, + const void* src, size_t srcSize, + void* entropyWorkspace, size_t entropyWorkspaceSize, + const int bmi2) +{ + size_t const minGain = ZSTD_minGain(srcSize, strategy); + size_t const lhSize = 3 + (srcSize >= 1 KB) + (srcSize >= 16 KB); + BYTE* const ostart = (BYTE*)dst; + U32 singleStream = srcSize < 256; + symbolEncodingType_e hType = set_compressed; + size_t cLitSize; + + DEBUGLOG(5,"ZSTD_compressLiterals (disableLiteralCompression=%i srcSize=%u)", + disableLiteralCompression, (U32)srcSize); + + /* Prepare nextEntropy assuming reusing the existing table */ + ZSTD_memcpy(nextHuf, prevHuf, sizeof(*prevHuf)); + + if (disableLiteralCompression) + return ZSTD_noCompressLiterals(dst, dstCapacity, src, srcSize); + + /* small ? don't even attempt compression (speed opt) */ +# define COMPRESS_LITERALS_SIZE_MIN 63 + { size_t const minLitSize = (prevHuf->repeatMode == HUF_repeat_valid) ? 6 : COMPRESS_LITERALS_SIZE_MIN; + if (srcSize <= minLitSize) return ZSTD_noCompressLiterals(dst, dstCapacity, src, srcSize); + } + + RETURN_ERROR_IF(dstCapacity < lhSize+1, dstSize_tooSmall, "not enough space for compression"); + { HUF_repeat repeat = prevHuf->repeatMode; + int const preferRepeat = strategy < ZSTD_lazy ? srcSize <= 1024 : 0; + if (repeat == HUF_repeat_valid && lhSize == 3) singleStream = 1; + cLitSize = singleStream ? + HUF_compress1X_repeat( + ostart+lhSize, dstCapacity-lhSize, src, srcSize, + HUF_SYMBOLVALUE_MAX, HUF_TABLELOG_DEFAULT, entropyWorkspace, entropyWorkspaceSize, + (HUF_CElt*)nextHuf->CTable, &repeat, preferRepeat, bmi2) : + HUF_compress4X_repeat( + ostart+lhSize, dstCapacity-lhSize, src, srcSize, + HUF_SYMBOLVALUE_MAX, HUF_TABLELOG_DEFAULT, entropyWorkspace, entropyWorkspaceSize, + (HUF_CElt*)nextHuf->CTable, &repeat, preferRepeat, bmi2); + if (repeat != HUF_repeat_none) { + /* reused the existing table */ + DEBUGLOG(5, "Reusing previous huffman table"); + hType = set_repeat; + } + } + + if ((cLitSize==0) || (cLitSize >= srcSize - minGain) || ERR_isError(cLitSize)) { + ZSTD_memcpy(nextHuf, prevHuf, sizeof(*prevHuf)); + return ZSTD_noCompressLiterals(dst, dstCapacity, src, srcSize); + } + if (cLitSize==1) { + ZSTD_memcpy(nextHuf, prevHuf, sizeof(*prevHuf)); + return ZSTD_compressRleLiteralsBlock(dst, dstCapacity, src, srcSize); + } + + if (hType == set_compressed) { + /* using a newly constructed table */ + nextHuf->repeatMode = HUF_repeat_check; + } + + /* Build header */ + switch(lhSize) + { + case 3: /* 2 - 2 - 10 - 10 */ + { U32 const lhc = hType + ((!singleStream) << 2) + ((U32)srcSize<<4) + ((U32)cLitSize<<14); + MEM_writeLE24(ostart, lhc); + break; + } + case 4: /* 2 - 2 - 14 - 14 */ + { U32 const lhc = hType + (2 << 2) + ((U32)srcSize<<4) + ((U32)cLitSize<<18); + MEM_writeLE32(ostart, lhc); + break; + } + case 5: /* 2 - 2 - 18 - 18 */ + { U32 const lhc = hType + (3 << 2) + ((U32)srcSize<<4) + ((U32)cLitSize<<22); + MEM_writeLE32(ostart, lhc); + ostart[4] = (BYTE)(cLitSize >> 10); + break; + } + default: /* not possible : lhSize is {3,4,5} */ + assert(0); + } + DEBUGLOG(5, "Compressed literals: %u -> %u", (U32)srcSize, (U32)(lhSize+cLitSize)); + return lhSize+cLitSize; +} diff --git a/dependencies/zstd-1.5.0/lib/compress/zstd_compress_literals.h b/dependencies/zstd-1.5.0/lib/compress/zstd_compress_literals.h new file mode 100644 index 0000000..9904c0c --- /dev/null +++ b/dependencies/zstd-1.5.0/lib/compress/zstd_compress_literals.h @@ -0,0 +1,29 @@ +/* + * Copyright (c) Yann Collet, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + +#ifndef ZSTD_COMPRESS_LITERALS_H +#define ZSTD_COMPRESS_LITERALS_H + +#include "zstd_compress_internal.h" /* ZSTD_hufCTables_t, ZSTD_minGain() */ + + +size_t ZSTD_noCompressLiterals (void* dst, size_t dstCapacity, const void* src, size_t srcSize); + +size_t ZSTD_compressRleLiteralsBlock (void* dst, size_t dstCapacity, const void* src, size_t srcSize); + +size_t ZSTD_compressLiterals (ZSTD_hufCTables_t const* prevHuf, + ZSTD_hufCTables_t* nextHuf, + ZSTD_strategy strategy, int disableLiteralCompression, + void* dst, size_t dstCapacity, + const void* src, size_t srcSize, + void* entropyWorkspace, size_t entropyWorkspaceSize, + const int bmi2); + +#endif /* ZSTD_COMPRESS_LITERALS_H */ diff --git a/dependencies/zstd-1.5.0/lib/compress/zstd_compress_sequences.c b/dependencies/zstd-1.5.0/lib/compress/zstd_compress_sequences.c new file mode 100644 index 0000000..611eabd --- /dev/null +++ b/dependencies/zstd-1.5.0/lib/compress/zstd_compress_sequences.c @@ -0,0 +1,441 @@ +/* + * Copyright (c) Yann Collet, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + + /*-************************************* + * Dependencies + ***************************************/ +#include "zstd_compress_sequences.h" + +/** + * -log2(x / 256) lookup table for x in [0, 256). + * If x == 0: Return 0 + * Else: Return floor(-log2(x / 256) * 256) + */ +static unsigned const kInverseProbabilityLog256[256] = { + 0, 2048, 1792, 1642, 1536, 1453, 1386, 1329, 1280, 1236, 1197, 1162, + 1130, 1100, 1073, 1047, 1024, 1001, 980, 960, 941, 923, 906, 889, + 874, 859, 844, 830, 817, 804, 791, 779, 768, 756, 745, 734, + 724, 714, 704, 694, 685, 676, 667, 658, 650, 642, 633, 626, + 618, 610, 603, 595, 588, 581, 574, 567, 561, 554, 548, 542, + 535, 529, 523, 517, 512, 506, 500, 495, 489, 484, 478, 473, + 468, 463, 458, 453, 448, 443, 438, 434, 429, 424, 420, 415, + 411, 407, 402, 398, 394, 390, 386, 382, 377, 373, 370, 366, + 362, 358, 354, 350, 347, 343, 339, 336, 332, 329, 325, 322, + 318, 315, 311, 308, 305, 302, 298, 295, 292, 289, 286, 282, + 279, 276, 273, 270, 267, 264, 261, 258, 256, 253, 250, 247, + 244, 241, 239, 236, 233, 230, 228, 225, 222, 220, 217, 215, + 212, 209, 207, 204, 202, 199, 197, 194, 192, 190, 187, 185, + 182, 180, 178, 175, 173, 171, 168, 166, 164, 162, 159, 157, + 155, 153, 151, 149, 146, 144, 142, 140, 138, 136, 134, 132, + 130, 128, 126, 123, 121, 119, 117, 115, 114, 112, 110, 108, + 106, 104, 102, 100, 98, 96, 94, 93, 91, 89, 87, 85, + 83, 82, 80, 78, 76, 74, 73, 71, 69, 67, 66, 64, + 62, 61, 59, 57, 55, 54, 52, 50, 49, 47, 46, 44, + 42, 41, 39, 37, 36, 34, 33, 31, 30, 28, 26, 25, + 23, 22, 20, 19, 17, 16, 14, 13, 11, 10, 8, 7, + 5, 4, 2, 1, +}; + +static unsigned ZSTD_getFSEMaxSymbolValue(FSE_CTable const* ctable) { + void const* ptr = ctable; + U16 const* u16ptr = (U16 const*)ptr; + U32 const maxSymbolValue = MEM_read16(u16ptr + 1); + return maxSymbolValue; +} + +/** + * Returns true if we should use ncount=-1 else we should + * use ncount=1 for low probability symbols instead. + */ +static unsigned ZSTD_useLowProbCount(size_t const nbSeq) +{ + /* Heuristic: This should cover most blocks <= 16K and + * start to fade out after 16K to about 32K depending on + * comprssibility. + */ + return nbSeq >= 2048; +} + +/** + * Returns the cost in bytes of encoding the normalized count header. + * Returns an error if any of the helper functions return an error. + */ +static size_t ZSTD_NCountCost(unsigned const* count, unsigned const max, + size_t const nbSeq, unsigned const FSELog) +{ + BYTE wksp[FSE_NCOUNTBOUND]; + S16 norm[MaxSeq + 1]; + const U32 tableLog = FSE_optimalTableLog(FSELog, nbSeq, max); + FORWARD_IF_ERROR(FSE_normalizeCount(norm, tableLog, count, nbSeq, max, ZSTD_useLowProbCount(nbSeq)), ""); + return FSE_writeNCount(wksp, sizeof(wksp), norm, max, tableLog); +} + +/** + * Returns the cost in bits of encoding the distribution described by count + * using the entropy bound. + */ +static size_t ZSTD_entropyCost(unsigned const* count, unsigned const max, size_t const total) +{ + unsigned cost = 0; + unsigned s; + + assert(total > 0); + for (s = 0; s <= max; ++s) { + unsigned norm = (unsigned)((256 * count[s]) / total); + if (count[s] != 0 && norm == 0) + norm = 1; + assert(count[s] < total); + cost += count[s] * kInverseProbabilityLog256[norm]; + } + return cost >> 8; +} + +/** + * Returns the cost in bits of encoding the distribution in count using ctable. + * Returns an error if ctable cannot represent all the symbols in count. + */ +size_t ZSTD_fseBitCost( + FSE_CTable const* ctable, + unsigned const* count, + unsigned const max) +{ + unsigned const kAccuracyLog = 8; + size_t cost = 0; + unsigned s; + FSE_CState_t cstate; + FSE_initCState(&cstate, ctable); + if (ZSTD_getFSEMaxSymbolValue(ctable) < max) { + DEBUGLOG(5, "Repeat FSE_CTable has maxSymbolValue %u < %u", + ZSTD_getFSEMaxSymbolValue(ctable), max); + return ERROR(GENERIC); + } + for (s = 0; s <= max; ++s) { + unsigned const tableLog = cstate.stateLog; + unsigned const badCost = (tableLog + 1) << kAccuracyLog; + unsigned const bitCost = FSE_bitCost(cstate.symbolTT, tableLog, s, kAccuracyLog); + if (count[s] == 0) + continue; + if (bitCost >= badCost) { + DEBUGLOG(5, "Repeat FSE_CTable has Prob[%u] == 0", s); + return ERROR(GENERIC); + } + cost += (size_t)count[s] * bitCost; + } + return cost >> kAccuracyLog; +} + +/** + * Returns the cost in bits of encoding the distribution in count using the + * table described by norm. The max symbol support by norm is assumed >= max. + * norm must be valid for every symbol with non-zero probability in count. + */ +size_t ZSTD_crossEntropyCost(short const* norm, unsigned accuracyLog, + unsigned const* count, unsigned const max) +{ + unsigned const shift = 8 - accuracyLog; + size_t cost = 0; + unsigned s; + assert(accuracyLog <= 8); + for (s = 0; s <= max; ++s) { + unsigned const normAcc = (norm[s] != -1) ? (unsigned)norm[s] : 1; + unsigned const norm256 = normAcc << shift; + assert(norm256 > 0); + assert(norm256 < 256); + cost += count[s] * kInverseProbabilityLog256[norm256]; + } + return cost >> 8; +} + +symbolEncodingType_e +ZSTD_selectEncodingType( + FSE_repeat* repeatMode, unsigned const* count, unsigned const max, + size_t const mostFrequent, size_t nbSeq, unsigned const FSELog, + FSE_CTable const* prevCTable, + short const* defaultNorm, U32 defaultNormLog, + ZSTD_defaultPolicy_e const isDefaultAllowed, + ZSTD_strategy const strategy) +{ + ZSTD_STATIC_ASSERT(ZSTD_defaultDisallowed == 0 && ZSTD_defaultAllowed != 0); + if (mostFrequent == nbSeq) { + *repeatMode = FSE_repeat_none; + if (isDefaultAllowed && nbSeq <= 2) { + /* Prefer set_basic over set_rle when there are 2 or less symbols, + * since RLE uses 1 byte, but set_basic uses 5-6 bits per symbol. + * If basic encoding isn't possible, always choose RLE. + */ + DEBUGLOG(5, "Selected set_basic"); + return set_basic; + } + DEBUGLOG(5, "Selected set_rle"); + return set_rle; + } + if (strategy < ZSTD_lazy) { + if (isDefaultAllowed) { + size_t const staticFse_nbSeq_max = 1000; + size_t const mult = 10 - strategy; + size_t const baseLog = 3; + size_t const dynamicFse_nbSeq_min = (((size_t)1 << defaultNormLog) * mult) >> baseLog; /* 28-36 for offset, 56-72 for lengths */ + assert(defaultNormLog >= 5 && defaultNormLog <= 6); /* xx_DEFAULTNORMLOG */ + assert(mult <= 9 && mult >= 7); + if ( (*repeatMode == FSE_repeat_valid) + && (nbSeq < staticFse_nbSeq_max) ) { + DEBUGLOG(5, "Selected set_repeat"); + return set_repeat; + } + if ( (nbSeq < dynamicFse_nbSeq_min) + || (mostFrequent < (nbSeq >> (defaultNormLog-1))) ) { + DEBUGLOG(5, "Selected set_basic"); + /* The format allows default tables to be repeated, but it isn't useful. + * When using simple heuristics to select encoding type, we don't want + * to confuse these tables with dictionaries. When running more careful + * analysis, we don't need to waste time checking both repeating tables + * and default tables. + */ + *repeatMode = FSE_repeat_none; + return set_basic; + } + } + } else { + size_t const basicCost = isDefaultAllowed ? ZSTD_crossEntropyCost(defaultNorm, defaultNormLog, count, max) : ERROR(GENERIC); + size_t const repeatCost = *repeatMode != FSE_repeat_none ? ZSTD_fseBitCost(prevCTable, count, max) : ERROR(GENERIC); + size_t const NCountCost = ZSTD_NCountCost(count, max, nbSeq, FSELog); + size_t const compressedCost = (NCountCost << 3) + ZSTD_entropyCost(count, max, nbSeq); + + if (isDefaultAllowed) { + assert(!ZSTD_isError(basicCost)); + assert(!(*repeatMode == FSE_repeat_valid && ZSTD_isError(repeatCost))); + } + assert(!ZSTD_isError(NCountCost)); + assert(compressedCost < ERROR(maxCode)); + DEBUGLOG(5, "Estimated bit costs: basic=%u\trepeat=%u\tcompressed=%u", + (unsigned)basicCost, (unsigned)repeatCost, (unsigned)compressedCost); + if (basicCost <= repeatCost && basicCost <= compressedCost) { + DEBUGLOG(5, "Selected set_basic"); + assert(isDefaultAllowed); + *repeatMode = FSE_repeat_none; + return set_basic; + } + if (repeatCost <= compressedCost) { + DEBUGLOG(5, "Selected set_repeat"); + assert(!ZSTD_isError(repeatCost)); + return set_repeat; + } + assert(compressedCost < basicCost && compressedCost < repeatCost); + } + DEBUGLOG(5, "Selected set_compressed"); + *repeatMode = FSE_repeat_check; + return set_compressed; +} + +typedef struct { + S16 norm[MaxSeq + 1]; + U32 wksp[FSE_BUILD_CTABLE_WORKSPACE_SIZE_U32(MaxSeq, MaxFSELog)]; +} ZSTD_BuildCTableWksp; + +size_t +ZSTD_buildCTable(void* dst, size_t dstCapacity, + FSE_CTable* nextCTable, U32 FSELog, symbolEncodingType_e type, + unsigned* count, U32 max, + const BYTE* codeTable, size_t nbSeq, + const S16* defaultNorm, U32 defaultNormLog, U32 defaultMax, + const FSE_CTable* prevCTable, size_t prevCTableSize, + void* entropyWorkspace, size_t entropyWorkspaceSize) +{ + BYTE* op = (BYTE*)dst; + const BYTE* const oend = op + dstCapacity; + DEBUGLOG(6, "ZSTD_buildCTable (dstCapacity=%u)", (unsigned)dstCapacity); + + switch (type) { + case set_rle: + FORWARD_IF_ERROR(FSE_buildCTable_rle(nextCTable, (BYTE)max), ""); + RETURN_ERROR_IF(dstCapacity==0, dstSize_tooSmall, "not enough space"); + *op = codeTable[0]; + return 1; + case set_repeat: + ZSTD_memcpy(nextCTable, prevCTable, prevCTableSize); + return 0; + case set_basic: + FORWARD_IF_ERROR(FSE_buildCTable_wksp(nextCTable, defaultNorm, defaultMax, defaultNormLog, entropyWorkspace, entropyWorkspaceSize), ""); /* note : could be pre-calculated */ + return 0; + case set_compressed: { + ZSTD_BuildCTableWksp* wksp = (ZSTD_BuildCTableWksp*)entropyWorkspace; + size_t nbSeq_1 = nbSeq; + const U32 tableLog = FSE_optimalTableLog(FSELog, nbSeq, max); + if (count[codeTable[nbSeq-1]] > 1) { + count[codeTable[nbSeq-1]]--; + nbSeq_1--; + } + assert(nbSeq_1 > 1); + assert(entropyWorkspaceSize >= sizeof(ZSTD_BuildCTableWksp)); + (void)entropyWorkspaceSize; + FORWARD_IF_ERROR(FSE_normalizeCount(wksp->norm, tableLog, count, nbSeq_1, max, ZSTD_useLowProbCount(nbSeq_1)), ""); + { size_t const NCountSize = FSE_writeNCount(op, oend - op, wksp->norm, max, tableLog); /* overflow protected */ + FORWARD_IF_ERROR(NCountSize, "FSE_writeNCount failed"); + FORWARD_IF_ERROR(FSE_buildCTable_wksp(nextCTable, wksp->norm, max, tableLog, wksp->wksp, sizeof(wksp->wksp)), ""); + return NCountSize; + } + } + default: assert(0); RETURN_ERROR(GENERIC, "impossible to reach"); + } +} + +FORCE_INLINE_TEMPLATE size_t +ZSTD_encodeSequences_body( + void* dst, size_t dstCapacity, + FSE_CTable const* CTable_MatchLength, BYTE const* mlCodeTable, + FSE_CTable const* CTable_OffsetBits, BYTE const* ofCodeTable, + FSE_CTable const* CTable_LitLength, BYTE const* llCodeTable, + seqDef const* sequences, size_t nbSeq, int longOffsets) +{ + BIT_CStream_t blockStream; + FSE_CState_t stateMatchLength; + FSE_CState_t stateOffsetBits; + FSE_CState_t stateLitLength; + + RETURN_ERROR_IF( + ERR_isError(BIT_initCStream(&blockStream, dst, dstCapacity)), + dstSize_tooSmall, "not enough space remaining"); + DEBUGLOG(6, "available space for bitstream : %i (dstCapacity=%u)", + (int)(blockStream.endPtr - blockStream.startPtr), + (unsigned)dstCapacity); + + /* first symbols */ + FSE_initCState2(&stateMatchLength, CTable_MatchLength, mlCodeTable[nbSeq-1]); + FSE_initCState2(&stateOffsetBits, CTable_OffsetBits, ofCodeTable[nbSeq-1]); + FSE_initCState2(&stateLitLength, CTable_LitLength, llCodeTable[nbSeq-1]); + BIT_addBits(&blockStream, sequences[nbSeq-1].litLength, LL_bits[llCodeTable[nbSeq-1]]); + if (MEM_32bits()) BIT_flushBits(&blockStream); + BIT_addBits(&blockStream, sequences[nbSeq-1].matchLength, ML_bits[mlCodeTable[nbSeq-1]]); + if (MEM_32bits()) BIT_flushBits(&blockStream); + if (longOffsets) { + U32 const ofBits = ofCodeTable[nbSeq-1]; + unsigned const extraBits = ofBits - MIN(ofBits, STREAM_ACCUMULATOR_MIN-1); + if (extraBits) { + BIT_addBits(&blockStream, sequences[nbSeq-1].offset, extraBits); + BIT_flushBits(&blockStream); + } + BIT_addBits(&blockStream, sequences[nbSeq-1].offset >> extraBits, + ofBits - extraBits); + } else { + BIT_addBits(&blockStream, sequences[nbSeq-1].offset, ofCodeTable[nbSeq-1]); + } + BIT_flushBits(&blockStream); + + { size_t n; + for (n=nbSeq-2 ; n= 64-7-(LLFSELog+MLFSELog+OffFSELog))) + BIT_flushBits(&blockStream); /* (7)*/ + BIT_addBits(&blockStream, sequences[n].litLength, llBits); + if (MEM_32bits() && ((llBits+mlBits)>24)) BIT_flushBits(&blockStream); + BIT_addBits(&blockStream, sequences[n].matchLength, mlBits); + if (MEM_32bits() || (ofBits+mlBits+llBits > 56)) BIT_flushBits(&blockStream); + if (longOffsets) { + unsigned const extraBits = ofBits - MIN(ofBits, STREAM_ACCUMULATOR_MIN-1); + if (extraBits) { + BIT_addBits(&blockStream, sequences[n].offset, extraBits); + BIT_flushBits(&blockStream); /* (7)*/ + } + BIT_addBits(&blockStream, sequences[n].offset >> extraBits, + ofBits - extraBits); /* 31 */ + } else { + BIT_addBits(&blockStream, sequences[n].offset, ofBits); /* 31 */ + } + BIT_flushBits(&blockStream); /* (7)*/ + DEBUGLOG(7, "remaining space : %i", (int)(blockStream.endPtr - blockStream.ptr)); + } } + + DEBUGLOG(6, "ZSTD_encodeSequences: flushing ML state with %u bits", stateMatchLength.stateLog); + FSE_flushCState(&blockStream, &stateMatchLength); + DEBUGLOG(6, "ZSTD_encodeSequences: flushing Off state with %u bits", stateOffsetBits.stateLog); + FSE_flushCState(&blockStream, &stateOffsetBits); + DEBUGLOG(6, "ZSTD_encodeSequences: flushing LL state with %u bits", stateLitLength.stateLog); + FSE_flushCState(&blockStream, &stateLitLength); + + { size_t const streamSize = BIT_closeCStream(&blockStream); + RETURN_ERROR_IF(streamSize==0, dstSize_tooSmall, "not enough space"); + return streamSize; + } +} + +static size_t +ZSTD_encodeSequences_default( + void* dst, size_t dstCapacity, + FSE_CTable const* CTable_MatchLength, BYTE const* mlCodeTable, + FSE_CTable const* CTable_OffsetBits, BYTE const* ofCodeTable, + FSE_CTable const* CTable_LitLength, BYTE const* llCodeTable, + seqDef const* sequences, size_t nbSeq, int longOffsets) +{ + return ZSTD_encodeSequences_body(dst, dstCapacity, + CTable_MatchLength, mlCodeTable, + CTable_OffsetBits, ofCodeTable, + CTable_LitLength, llCodeTable, + sequences, nbSeq, longOffsets); +} + + +#if DYNAMIC_BMI2 + +static TARGET_ATTRIBUTE("bmi2") size_t +ZSTD_encodeSequences_bmi2( + void* dst, size_t dstCapacity, + FSE_CTable const* CTable_MatchLength, BYTE const* mlCodeTable, + FSE_CTable const* CTable_OffsetBits, BYTE const* ofCodeTable, + FSE_CTable const* CTable_LitLength, BYTE const* llCodeTable, + seqDef const* sequences, size_t nbSeq, int longOffsets) +{ + return ZSTD_encodeSequences_body(dst, dstCapacity, + CTable_MatchLength, mlCodeTable, + CTable_OffsetBits, ofCodeTable, + CTable_LitLength, llCodeTable, + sequences, nbSeq, longOffsets); +} + +#endif + +size_t ZSTD_encodeSequences( + void* dst, size_t dstCapacity, + FSE_CTable const* CTable_MatchLength, BYTE const* mlCodeTable, + FSE_CTable const* CTable_OffsetBits, BYTE const* ofCodeTable, + FSE_CTable const* CTable_LitLength, BYTE const* llCodeTable, + seqDef const* sequences, size_t nbSeq, int longOffsets, int bmi2) +{ + DEBUGLOG(5, "ZSTD_encodeSequences: dstCapacity = %u", (unsigned)dstCapacity); +#if DYNAMIC_BMI2 + if (bmi2) { + return ZSTD_encodeSequences_bmi2(dst, dstCapacity, + CTable_MatchLength, mlCodeTable, + CTable_OffsetBits, ofCodeTable, + CTable_LitLength, llCodeTable, + sequences, nbSeq, longOffsets); + } +#endif + (void)bmi2; + return ZSTD_encodeSequences_default(dst, dstCapacity, + CTable_MatchLength, mlCodeTable, + CTable_OffsetBits, ofCodeTable, + CTable_LitLength, llCodeTable, + sequences, nbSeq, longOffsets); +} diff --git a/dependencies/zstd-1.5.0/lib/compress/zstd_compress_sequences.h b/dependencies/zstd-1.5.0/lib/compress/zstd_compress_sequences.h new file mode 100644 index 0000000..7991364 --- /dev/null +++ b/dependencies/zstd-1.5.0/lib/compress/zstd_compress_sequences.h @@ -0,0 +1,54 @@ +/* + * Copyright (c) Yann Collet, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + +#ifndef ZSTD_COMPRESS_SEQUENCES_H +#define ZSTD_COMPRESS_SEQUENCES_H + +#include "../common/fse.h" /* FSE_repeat, FSE_CTable */ +#include "../common/zstd_internal.h" /* symbolEncodingType_e, ZSTD_strategy */ + +typedef enum { + ZSTD_defaultDisallowed = 0, + ZSTD_defaultAllowed = 1 +} ZSTD_defaultPolicy_e; + +symbolEncodingType_e +ZSTD_selectEncodingType( + FSE_repeat* repeatMode, unsigned const* count, unsigned const max, + size_t const mostFrequent, size_t nbSeq, unsigned const FSELog, + FSE_CTable const* prevCTable, + short const* defaultNorm, U32 defaultNormLog, + ZSTD_defaultPolicy_e const isDefaultAllowed, + ZSTD_strategy const strategy); + +size_t +ZSTD_buildCTable(void* dst, size_t dstCapacity, + FSE_CTable* nextCTable, U32 FSELog, symbolEncodingType_e type, + unsigned* count, U32 max, + const BYTE* codeTable, size_t nbSeq, + const S16* defaultNorm, U32 defaultNormLog, U32 defaultMax, + const FSE_CTable* prevCTable, size_t prevCTableSize, + void* entropyWorkspace, size_t entropyWorkspaceSize); + +size_t ZSTD_encodeSequences( + void* dst, size_t dstCapacity, + FSE_CTable const* CTable_MatchLength, BYTE const* mlCodeTable, + FSE_CTable const* CTable_OffsetBits, BYTE const* ofCodeTable, + FSE_CTable const* CTable_LitLength, BYTE const* llCodeTable, + seqDef const* sequences, size_t nbSeq, int longOffsets, int bmi2); + +size_t ZSTD_fseBitCost( + FSE_CTable const* ctable, + unsigned const* count, + unsigned const max); + +size_t ZSTD_crossEntropyCost(short const* norm, unsigned accuracyLog, + unsigned const* count, unsigned const max); +#endif /* ZSTD_COMPRESS_SEQUENCES_H */ diff --git a/dependencies/zstd-1.5.0/lib/compress/zstd_compress_superblock.c b/dependencies/zstd-1.5.0/lib/compress/zstd_compress_superblock.c new file mode 100644 index 0000000..e4e4506 --- /dev/null +++ b/dependencies/zstd-1.5.0/lib/compress/zstd_compress_superblock.c @@ -0,0 +1,572 @@ +/* + * Copyright (c) Yann Collet, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + + /*-************************************* + * Dependencies + ***************************************/ +#include "zstd_compress_superblock.h" + +#include "../common/zstd_internal.h" /* ZSTD_getSequenceLength */ +#include "hist.h" /* HIST_countFast_wksp */ +#include "zstd_compress_internal.h" /* ZSTD_[huf|fse|entropy]CTablesMetadata_t */ +#include "zstd_compress_sequences.h" +#include "zstd_compress_literals.h" + +/** ZSTD_compressSubBlock_literal() : + * Compresses literals section for a sub-block. + * When we have to write the Huffman table we will sometimes choose a header + * size larger than necessary. This is because we have to pick the header size + * before we know the table size + compressed size, so we have a bound on the + * table size. If we guessed incorrectly, we fall back to uncompressed literals. + * + * We write the header when writeEntropy=1 and set entropyWritten=1 when we succeeded + * in writing the header, otherwise it is set to 0. + * + * hufMetadata->hType has literals block type info. + * If it is set_basic, all sub-blocks literals section will be Raw_Literals_Block. + * If it is set_rle, all sub-blocks literals section will be RLE_Literals_Block. + * If it is set_compressed, first sub-block's literals section will be Compressed_Literals_Block + * If it is set_compressed, first sub-block's literals section will be Treeless_Literals_Block + * and the following sub-blocks' literals sections will be Treeless_Literals_Block. + * @return : compressed size of literals section of a sub-block + * Or 0 if it unable to compress. + * Or error code */ +static size_t ZSTD_compressSubBlock_literal(const HUF_CElt* hufTable, + const ZSTD_hufCTablesMetadata_t* hufMetadata, + const BYTE* literals, size_t litSize, + void* dst, size_t dstSize, + const int bmi2, int writeEntropy, int* entropyWritten) +{ + size_t const header = writeEntropy ? 200 : 0; + size_t const lhSize = 3 + (litSize >= (1 KB - header)) + (litSize >= (16 KB - header)); + BYTE* const ostart = (BYTE*)dst; + BYTE* const oend = ostart + dstSize; + BYTE* op = ostart + lhSize; + U32 const singleStream = lhSize == 3; + symbolEncodingType_e hType = writeEntropy ? hufMetadata->hType : set_repeat; + size_t cLitSize = 0; + + (void)bmi2; /* TODO bmi2... */ + + DEBUGLOG(5, "ZSTD_compressSubBlock_literal (litSize=%zu, lhSize=%zu, writeEntropy=%d)", litSize, lhSize, writeEntropy); + + *entropyWritten = 0; + if (litSize == 0 || hufMetadata->hType == set_basic) { + DEBUGLOG(5, "ZSTD_compressSubBlock_literal using raw literal"); + return ZSTD_noCompressLiterals(dst, dstSize, literals, litSize); + } else if (hufMetadata->hType == set_rle) { + DEBUGLOG(5, "ZSTD_compressSubBlock_literal using rle literal"); + return ZSTD_compressRleLiteralsBlock(dst, dstSize, literals, litSize); + } + + assert(litSize > 0); + assert(hufMetadata->hType == set_compressed || hufMetadata->hType == set_repeat); + + if (writeEntropy && hufMetadata->hType == set_compressed) { + ZSTD_memcpy(op, hufMetadata->hufDesBuffer, hufMetadata->hufDesSize); + op += hufMetadata->hufDesSize; + cLitSize += hufMetadata->hufDesSize; + DEBUGLOG(5, "ZSTD_compressSubBlock_literal (hSize=%zu)", hufMetadata->hufDesSize); + } + + /* TODO bmi2 */ + { const size_t cSize = singleStream ? HUF_compress1X_usingCTable(op, oend-op, literals, litSize, hufTable) + : HUF_compress4X_usingCTable(op, oend-op, literals, litSize, hufTable); + op += cSize; + cLitSize += cSize; + if (cSize == 0 || ERR_isError(cSize)) { + DEBUGLOG(5, "Failed to write entropy tables %s", ZSTD_getErrorName(cSize)); + return 0; + } + /* If we expand and we aren't writing a header then emit uncompressed */ + if (!writeEntropy && cLitSize >= litSize) { + DEBUGLOG(5, "ZSTD_compressSubBlock_literal using raw literal because uncompressible"); + return ZSTD_noCompressLiterals(dst, dstSize, literals, litSize); + } + /* If we are writing headers then allow expansion that doesn't change our header size. */ + if (lhSize < (size_t)(3 + (cLitSize >= 1 KB) + (cLitSize >= 16 KB))) { + assert(cLitSize > litSize); + DEBUGLOG(5, "Literals expanded beyond allowed header size"); + return ZSTD_noCompressLiterals(dst, dstSize, literals, litSize); + } + DEBUGLOG(5, "ZSTD_compressSubBlock_literal (cSize=%zu)", cSize); + } + + /* Build header */ + switch(lhSize) + { + case 3: /* 2 - 2 - 10 - 10 */ + { U32 const lhc = hType + ((!singleStream) << 2) + ((U32)litSize<<4) + ((U32)cLitSize<<14); + MEM_writeLE24(ostart, lhc); + break; + } + case 4: /* 2 - 2 - 14 - 14 */ + { U32 const lhc = hType + (2 << 2) + ((U32)litSize<<4) + ((U32)cLitSize<<18); + MEM_writeLE32(ostart, lhc); + break; + } + case 5: /* 2 - 2 - 18 - 18 */ + { U32 const lhc = hType + (3 << 2) + ((U32)litSize<<4) + ((U32)cLitSize<<22); + MEM_writeLE32(ostart, lhc); + ostart[4] = (BYTE)(cLitSize >> 10); + break; + } + default: /* not possible : lhSize is {3,4,5} */ + assert(0); + } + *entropyWritten = 1; + DEBUGLOG(5, "Compressed literals: %u -> %u", (U32)litSize, (U32)(op-ostart)); + return op-ostart; +} + +static size_t ZSTD_seqDecompressedSize(seqStore_t const* seqStore, const seqDef* sequences, size_t nbSeq, size_t litSize, int lastSequence) { + const seqDef* const sstart = sequences; + const seqDef* const send = sequences + nbSeq; + const seqDef* sp = sstart; + size_t matchLengthSum = 0; + size_t litLengthSum = 0; + while (send-sp > 0) { + ZSTD_sequenceLength const seqLen = ZSTD_getSequenceLength(seqStore, sp); + litLengthSum += seqLen.litLength; + matchLengthSum += seqLen.matchLength; + sp++; + } + assert(litLengthSum <= litSize); + if (!lastSequence) { + assert(litLengthSum == litSize); + } + return matchLengthSum + litSize; +} + +/** ZSTD_compressSubBlock_sequences() : + * Compresses sequences section for a sub-block. + * fseMetadata->llType, fseMetadata->ofType, and fseMetadata->mlType have + * symbol compression modes for the super-block. + * The first successfully compressed block will have these in its header. + * We set entropyWritten=1 when we succeed in compressing the sequences. + * The following sub-blocks will always have repeat mode. + * @return : compressed size of sequences section of a sub-block + * Or 0 if it is unable to compress + * Or error code. */ +static size_t ZSTD_compressSubBlock_sequences(const ZSTD_fseCTables_t* fseTables, + const ZSTD_fseCTablesMetadata_t* fseMetadata, + const seqDef* sequences, size_t nbSeq, + const BYTE* llCode, const BYTE* mlCode, const BYTE* ofCode, + const ZSTD_CCtx_params* cctxParams, + void* dst, size_t dstCapacity, + const int bmi2, int writeEntropy, int* entropyWritten) +{ + const int longOffsets = cctxParams->cParams.windowLog > STREAM_ACCUMULATOR_MIN; + BYTE* const ostart = (BYTE*)dst; + BYTE* const oend = ostart + dstCapacity; + BYTE* op = ostart; + BYTE* seqHead; + + DEBUGLOG(5, "ZSTD_compressSubBlock_sequences (nbSeq=%zu, writeEntropy=%d, longOffsets=%d)", nbSeq, writeEntropy, longOffsets); + + *entropyWritten = 0; + /* Sequences Header */ + RETURN_ERROR_IF((oend-op) < 3 /*max nbSeq Size*/ + 1 /*seqHead*/, + dstSize_tooSmall, ""); + if (nbSeq < 0x7F) + *op++ = (BYTE)nbSeq; + else if (nbSeq < LONGNBSEQ) + op[0] = (BYTE)((nbSeq>>8) + 0x80), op[1] = (BYTE)nbSeq, op+=2; + else + op[0]=0xFF, MEM_writeLE16(op+1, (U16)(nbSeq - LONGNBSEQ)), op+=3; + if (nbSeq==0) { + return op - ostart; + } + + /* seqHead : flags for FSE encoding type */ + seqHead = op++; + + DEBUGLOG(5, "ZSTD_compressSubBlock_sequences (seqHeadSize=%u)", (unsigned)(op-ostart)); + + if (writeEntropy) { + const U32 LLtype = fseMetadata->llType; + const U32 Offtype = fseMetadata->ofType; + const U32 MLtype = fseMetadata->mlType; + DEBUGLOG(5, "ZSTD_compressSubBlock_sequences (fseTablesSize=%zu)", fseMetadata->fseTablesSize); + *seqHead = (BYTE)((LLtype<<6) + (Offtype<<4) + (MLtype<<2)); + ZSTD_memcpy(op, fseMetadata->fseTablesBuffer, fseMetadata->fseTablesSize); + op += fseMetadata->fseTablesSize; + } else { + const U32 repeat = set_repeat; + *seqHead = (BYTE)((repeat<<6) + (repeat<<4) + (repeat<<2)); + } + + { size_t const bitstreamSize = ZSTD_encodeSequences( + op, oend - op, + fseTables->matchlengthCTable, mlCode, + fseTables->offcodeCTable, ofCode, + fseTables->litlengthCTable, llCode, + sequences, nbSeq, + longOffsets, bmi2); + FORWARD_IF_ERROR(bitstreamSize, "ZSTD_encodeSequences failed"); + op += bitstreamSize; + /* zstd versions <= 1.3.4 mistakenly report corruption when + * FSE_readNCount() receives a buffer < 4 bytes. + * Fixed by https://github.com/facebook/zstd/pull/1146. + * This can happen when the last set_compressed table present is 2 + * bytes and the bitstream is only one byte. + * In this exceedingly rare case, we will simply emit an uncompressed + * block, since it isn't worth optimizing. + */ +#ifndef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION + if (writeEntropy && fseMetadata->lastCountSize && fseMetadata->lastCountSize + bitstreamSize < 4) { + /* NCountSize >= 2 && bitstreamSize > 0 ==> lastCountSize == 3 */ + assert(fseMetadata->lastCountSize + bitstreamSize == 3); + DEBUGLOG(5, "Avoiding bug in zstd decoder in versions <= 1.3.4 by " + "emitting an uncompressed block."); + return 0; + } +#endif + DEBUGLOG(5, "ZSTD_compressSubBlock_sequences (bitstreamSize=%zu)", bitstreamSize); + } + + /* zstd versions <= 1.4.0 mistakenly report error when + * sequences section body size is less than 3 bytes. + * Fixed by https://github.com/facebook/zstd/pull/1664. + * This can happen when the previous sequences section block is compressed + * with rle mode and the current block's sequences section is compressed + * with repeat mode where sequences section body size can be 1 byte. + */ +#ifndef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION + if (op-seqHead < 4) { + DEBUGLOG(5, "Avoiding bug in zstd decoder in versions <= 1.4.0 by emitting " + "an uncompressed block when sequences are < 4 bytes"); + return 0; + } +#endif + + *entropyWritten = 1; + return op - ostart; +} + +/** ZSTD_compressSubBlock() : + * Compresses a single sub-block. + * @return : compressed size of the sub-block + * Or 0 if it failed to compress. */ +static size_t ZSTD_compressSubBlock(const ZSTD_entropyCTables_t* entropy, + const ZSTD_entropyCTablesMetadata_t* entropyMetadata, + const seqDef* sequences, size_t nbSeq, + const BYTE* literals, size_t litSize, + const BYTE* llCode, const BYTE* mlCode, const BYTE* ofCode, + const ZSTD_CCtx_params* cctxParams, + void* dst, size_t dstCapacity, + const int bmi2, + int writeLitEntropy, int writeSeqEntropy, + int* litEntropyWritten, int* seqEntropyWritten, + U32 lastBlock) +{ + BYTE* const ostart = (BYTE*)dst; + BYTE* const oend = ostart + dstCapacity; + BYTE* op = ostart + ZSTD_blockHeaderSize; + DEBUGLOG(5, "ZSTD_compressSubBlock (litSize=%zu, nbSeq=%zu, writeLitEntropy=%d, writeSeqEntropy=%d, lastBlock=%d)", + litSize, nbSeq, writeLitEntropy, writeSeqEntropy, lastBlock); + { size_t cLitSize = ZSTD_compressSubBlock_literal((const HUF_CElt*)entropy->huf.CTable, + &entropyMetadata->hufMetadata, literals, litSize, + op, oend-op, bmi2, writeLitEntropy, litEntropyWritten); + FORWARD_IF_ERROR(cLitSize, "ZSTD_compressSubBlock_literal failed"); + if (cLitSize == 0) return 0; + op += cLitSize; + } + { size_t cSeqSize = ZSTD_compressSubBlock_sequences(&entropy->fse, + &entropyMetadata->fseMetadata, + sequences, nbSeq, + llCode, mlCode, ofCode, + cctxParams, + op, oend-op, + bmi2, writeSeqEntropy, seqEntropyWritten); + FORWARD_IF_ERROR(cSeqSize, "ZSTD_compressSubBlock_sequences failed"); + if (cSeqSize == 0) return 0; + op += cSeqSize; + } + /* Write block header */ + { size_t cSize = (op-ostart)-ZSTD_blockHeaderSize; + U32 const cBlockHeader24 = lastBlock + (((U32)bt_compressed)<<1) + (U32)(cSize << 3); + MEM_writeLE24(ostart, cBlockHeader24); + } + return op-ostart; +} + +static size_t ZSTD_estimateSubBlockSize_literal(const BYTE* literals, size_t litSize, + const ZSTD_hufCTables_t* huf, + const ZSTD_hufCTablesMetadata_t* hufMetadata, + void* workspace, size_t wkspSize, + int writeEntropy) +{ + unsigned* const countWksp = (unsigned*)workspace; + unsigned maxSymbolValue = 255; + size_t literalSectionHeaderSize = 3; /* Use hard coded size of 3 bytes */ + + if (hufMetadata->hType == set_basic) return litSize; + else if (hufMetadata->hType == set_rle) return 1; + else if (hufMetadata->hType == set_compressed || hufMetadata->hType == set_repeat) { + size_t const largest = HIST_count_wksp (countWksp, &maxSymbolValue, (const BYTE*)literals, litSize, workspace, wkspSize); + if (ZSTD_isError(largest)) return litSize; + { size_t cLitSizeEstimate = HUF_estimateCompressedSize((const HUF_CElt*)huf->CTable, countWksp, maxSymbolValue); + if (writeEntropy) cLitSizeEstimate += hufMetadata->hufDesSize; + return cLitSizeEstimate + literalSectionHeaderSize; + } } + assert(0); /* impossible */ + return 0; +} + +static size_t ZSTD_estimateSubBlockSize_symbolType(symbolEncodingType_e type, + const BYTE* codeTable, unsigned maxCode, + size_t nbSeq, const FSE_CTable* fseCTable, + const U32* additionalBits, + short const* defaultNorm, U32 defaultNormLog, U32 defaultMax, + void* workspace, size_t wkspSize) +{ + unsigned* const countWksp = (unsigned*)workspace; + const BYTE* ctp = codeTable; + const BYTE* const ctStart = ctp; + const BYTE* const ctEnd = ctStart + nbSeq; + size_t cSymbolTypeSizeEstimateInBits = 0; + unsigned max = maxCode; + + HIST_countFast_wksp(countWksp, &max, codeTable, nbSeq, workspace, wkspSize); /* can't fail */ + if (type == set_basic) { + /* We selected this encoding type, so it must be valid. */ + assert(max <= defaultMax); + cSymbolTypeSizeEstimateInBits = max <= defaultMax + ? ZSTD_crossEntropyCost(defaultNorm, defaultNormLog, countWksp, max) + : ERROR(GENERIC); + } else if (type == set_rle) { + cSymbolTypeSizeEstimateInBits = 0; + } else if (type == set_compressed || type == set_repeat) { + cSymbolTypeSizeEstimateInBits = ZSTD_fseBitCost(fseCTable, countWksp, max); + } + if (ZSTD_isError(cSymbolTypeSizeEstimateInBits)) return nbSeq * 10; + while (ctp < ctEnd) { + if (additionalBits) cSymbolTypeSizeEstimateInBits += additionalBits[*ctp]; + else cSymbolTypeSizeEstimateInBits += *ctp; /* for offset, offset code is also the number of additional bits */ + ctp++; + } + return cSymbolTypeSizeEstimateInBits / 8; +} + +static size_t ZSTD_estimateSubBlockSize_sequences(const BYTE* ofCodeTable, + const BYTE* llCodeTable, + const BYTE* mlCodeTable, + size_t nbSeq, + const ZSTD_fseCTables_t* fseTables, + const ZSTD_fseCTablesMetadata_t* fseMetadata, + void* workspace, size_t wkspSize, + int writeEntropy) +{ + size_t const sequencesSectionHeaderSize = 3; /* Use hard coded size of 3 bytes */ + size_t cSeqSizeEstimate = 0; + if (nbSeq == 0) return sequencesSectionHeaderSize; + cSeqSizeEstimate += ZSTD_estimateSubBlockSize_symbolType(fseMetadata->ofType, ofCodeTable, MaxOff, + nbSeq, fseTables->offcodeCTable, NULL, + OF_defaultNorm, OF_defaultNormLog, DefaultMaxOff, + workspace, wkspSize); + cSeqSizeEstimate += ZSTD_estimateSubBlockSize_symbolType(fseMetadata->llType, llCodeTable, MaxLL, + nbSeq, fseTables->litlengthCTable, LL_bits, + LL_defaultNorm, LL_defaultNormLog, MaxLL, + workspace, wkspSize); + cSeqSizeEstimate += ZSTD_estimateSubBlockSize_symbolType(fseMetadata->mlType, mlCodeTable, MaxML, + nbSeq, fseTables->matchlengthCTable, ML_bits, + ML_defaultNorm, ML_defaultNormLog, MaxML, + workspace, wkspSize); + if (writeEntropy) cSeqSizeEstimate += fseMetadata->fseTablesSize; + return cSeqSizeEstimate + sequencesSectionHeaderSize; +} + +static size_t ZSTD_estimateSubBlockSize(const BYTE* literals, size_t litSize, + const BYTE* ofCodeTable, + const BYTE* llCodeTable, + const BYTE* mlCodeTable, + size_t nbSeq, + const ZSTD_entropyCTables_t* entropy, + const ZSTD_entropyCTablesMetadata_t* entropyMetadata, + void* workspace, size_t wkspSize, + int writeLitEntropy, int writeSeqEntropy) { + size_t cSizeEstimate = 0; + cSizeEstimate += ZSTD_estimateSubBlockSize_literal(literals, litSize, + &entropy->huf, &entropyMetadata->hufMetadata, + workspace, wkspSize, writeLitEntropy); + cSizeEstimate += ZSTD_estimateSubBlockSize_sequences(ofCodeTable, llCodeTable, mlCodeTable, + nbSeq, &entropy->fse, &entropyMetadata->fseMetadata, + workspace, wkspSize, writeSeqEntropy); + return cSizeEstimate + ZSTD_blockHeaderSize; +} + +static int ZSTD_needSequenceEntropyTables(ZSTD_fseCTablesMetadata_t const* fseMetadata) +{ + if (fseMetadata->llType == set_compressed || fseMetadata->llType == set_rle) + return 1; + if (fseMetadata->mlType == set_compressed || fseMetadata->mlType == set_rle) + return 1; + if (fseMetadata->ofType == set_compressed || fseMetadata->ofType == set_rle) + return 1; + return 0; +} + +/** ZSTD_compressSubBlock_multi() : + * Breaks super-block into multiple sub-blocks and compresses them. + * Entropy will be written to the first block. + * The following blocks will use repeat mode to compress. + * All sub-blocks are compressed blocks (no raw or rle blocks). + * @return : compressed size of the super block (which is multiple ZSTD blocks) + * Or 0 if it failed to compress. */ +static size_t ZSTD_compressSubBlock_multi(const seqStore_t* seqStorePtr, + const ZSTD_compressedBlockState_t* prevCBlock, + ZSTD_compressedBlockState_t* nextCBlock, + const ZSTD_entropyCTablesMetadata_t* entropyMetadata, + const ZSTD_CCtx_params* cctxParams, + void* dst, size_t dstCapacity, + const void* src, size_t srcSize, + const int bmi2, U32 lastBlock, + void* workspace, size_t wkspSize) +{ + const seqDef* const sstart = seqStorePtr->sequencesStart; + const seqDef* const send = seqStorePtr->sequences; + const seqDef* sp = sstart; + const BYTE* const lstart = seqStorePtr->litStart; + const BYTE* const lend = seqStorePtr->lit; + const BYTE* lp = lstart; + BYTE const* ip = (BYTE const*)src; + BYTE const* const iend = ip + srcSize; + BYTE* const ostart = (BYTE*)dst; + BYTE* const oend = ostart + dstCapacity; + BYTE* op = ostart; + const BYTE* llCodePtr = seqStorePtr->llCode; + const BYTE* mlCodePtr = seqStorePtr->mlCode; + const BYTE* ofCodePtr = seqStorePtr->ofCode; + size_t targetCBlockSize = cctxParams->targetCBlockSize; + size_t litSize, seqCount; + int writeLitEntropy = entropyMetadata->hufMetadata.hType == set_compressed; + int writeSeqEntropy = 1; + int lastSequence = 0; + + DEBUGLOG(5, "ZSTD_compressSubBlock_multi (litSize=%u, nbSeq=%u)", + (unsigned)(lend-lp), (unsigned)(send-sstart)); + + litSize = 0; + seqCount = 0; + do { + size_t cBlockSizeEstimate = 0; + if (sstart == send) { + lastSequence = 1; + } else { + const seqDef* const sequence = sp + seqCount; + lastSequence = sequence == send - 1; + litSize += ZSTD_getSequenceLength(seqStorePtr, sequence).litLength; + seqCount++; + } + if (lastSequence) { + assert(lp <= lend); + assert(litSize <= (size_t)(lend - lp)); + litSize = (size_t)(lend - lp); + } + /* I think there is an optimization opportunity here. + * Calling ZSTD_estimateSubBlockSize for every sequence can be wasteful + * since it recalculates estimate from scratch. + * For example, it would recount literal distribution and symbol codes everytime. + */ + cBlockSizeEstimate = ZSTD_estimateSubBlockSize(lp, litSize, ofCodePtr, llCodePtr, mlCodePtr, seqCount, + &nextCBlock->entropy, entropyMetadata, + workspace, wkspSize, writeLitEntropy, writeSeqEntropy); + if (cBlockSizeEstimate > targetCBlockSize || lastSequence) { + int litEntropyWritten = 0; + int seqEntropyWritten = 0; + const size_t decompressedSize = ZSTD_seqDecompressedSize(seqStorePtr, sp, seqCount, litSize, lastSequence); + const size_t cSize = ZSTD_compressSubBlock(&nextCBlock->entropy, entropyMetadata, + sp, seqCount, + lp, litSize, + llCodePtr, mlCodePtr, ofCodePtr, + cctxParams, + op, oend-op, + bmi2, writeLitEntropy, writeSeqEntropy, + &litEntropyWritten, &seqEntropyWritten, + lastBlock && lastSequence); + FORWARD_IF_ERROR(cSize, "ZSTD_compressSubBlock failed"); + if (cSize > 0 && cSize < decompressedSize) { + DEBUGLOG(5, "Committed the sub-block"); + assert(ip + decompressedSize <= iend); + ip += decompressedSize; + sp += seqCount; + lp += litSize; + op += cSize; + llCodePtr += seqCount; + mlCodePtr += seqCount; + ofCodePtr += seqCount; + litSize = 0; + seqCount = 0; + /* Entropy only needs to be written once */ + if (litEntropyWritten) { + writeLitEntropy = 0; + } + if (seqEntropyWritten) { + writeSeqEntropy = 0; + } + } + } + } while (!lastSequence); + if (writeLitEntropy) { + DEBUGLOG(5, "ZSTD_compressSubBlock_multi has literal entropy tables unwritten"); + ZSTD_memcpy(&nextCBlock->entropy.huf, &prevCBlock->entropy.huf, sizeof(prevCBlock->entropy.huf)); + } + if (writeSeqEntropy && ZSTD_needSequenceEntropyTables(&entropyMetadata->fseMetadata)) { + /* If we haven't written our entropy tables, then we've violated our contract and + * must emit an uncompressed block. + */ + DEBUGLOG(5, "ZSTD_compressSubBlock_multi has sequence entropy tables unwritten"); + return 0; + } + if (ip < iend) { + size_t const cSize = ZSTD_noCompressBlock(op, oend - op, ip, iend - ip, lastBlock); + DEBUGLOG(5, "ZSTD_compressSubBlock_multi last sub-block uncompressed, %zu bytes", (size_t)(iend - ip)); + FORWARD_IF_ERROR(cSize, "ZSTD_noCompressBlock failed"); + assert(cSize != 0); + op += cSize; + /* We have to regenerate the repcodes because we've skipped some sequences */ + if (sp < send) { + seqDef const* seq; + repcodes_t rep; + ZSTD_memcpy(&rep, prevCBlock->rep, sizeof(rep)); + for (seq = sstart; seq < sp; ++seq) { + rep = ZSTD_updateRep(rep.rep, seq->offset - 1, ZSTD_getSequenceLength(seqStorePtr, seq).litLength == 0); + } + ZSTD_memcpy(nextCBlock->rep, &rep, sizeof(rep)); + } + } + DEBUGLOG(5, "ZSTD_compressSubBlock_multi compressed"); + return op-ostart; +} + +size_t ZSTD_compressSuperBlock(ZSTD_CCtx* zc, + void* dst, size_t dstCapacity, + void const* src, size_t srcSize, + unsigned lastBlock) { + ZSTD_entropyCTablesMetadata_t entropyMetadata; + + FORWARD_IF_ERROR(ZSTD_buildBlockEntropyStats(&zc->seqStore, + &zc->blockState.prevCBlock->entropy, + &zc->blockState.nextCBlock->entropy, + &zc->appliedParams, + &entropyMetadata, + zc->entropyWorkspace, ENTROPY_WORKSPACE_SIZE /* statically allocated in resetCCtx */), ""); + + return ZSTD_compressSubBlock_multi(&zc->seqStore, + zc->blockState.prevCBlock, + zc->blockState.nextCBlock, + &entropyMetadata, + &zc->appliedParams, + dst, dstCapacity, + src, srcSize, + zc->bmi2, lastBlock, + zc->entropyWorkspace, ENTROPY_WORKSPACE_SIZE /* statically allocated in resetCCtx */); +} diff --git a/dependencies/zstd-1.5.0/lib/compress/zstd_compress_superblock.h b/dependencies/zstd-1.5.0/lib/compress/zstd_compress_superblock.h new file mode 100644 index 0000000..176f9b1 --- /dev/null +++ b/dependencies/zstd-1.5.0/lib/compress/zstd_compress_superblock.h @@ -0,0 +1,32 @@ +/* + * Copyright (c) Yann Collet, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + +#ifndef ZSTD_COMPRESS_ADVANCED_H +#define ZSTD_COMPRESS_ADVANCED_H + +/*-************************************* +* Dependencies +***************************************/ + +#include "../zstd.h" /* ZSTD_CCtx */ + +/*-************************************* +* Target Compressed Block Size +***************************************/ + +/* ZSTD_compressSuperBlock() : + * Used to compress a super block when targetCBlockSize is being used. + * The given block will be compressed into multiple sub blocks that are around targetCBlockSize. */ +size_t ZSTD_compressSuperBlock(ZSTD_CCtx* zc, + void* dst, size_t dstCapacity, + void const* src, size_t srcSize, + unsigned lastBlock); + +#endif /* ZSTD_COMPRESS_ADVANCED_H */ diff --git a/dependencies/zstd-1.5.0/lib/compress/zstd_cwksp.h b/dependencies/zstd-1.5.0/lib/compress/zstd_cwksp.h new file mode 100644 index 0000000..2656d26 --- /dev/null +++ b/dependencies/zstd-1.5.0/lib/compress/zstd_cwksp.h @@ -0,0 +1,662 @@ +/* + * Copyright (c) Yann Collet, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + +#ifndef ZSTD_CWKSP_H +#define ZSTD_CWKSP_H + +/*-************************************* +* Dependencies +***************************************/ +#include "../common/zstd_internal.h" + +#if defined (__cplusplus) +extern "C" { +#endif + +/*-************************************* +* Constants +***************************************/ + +/* Since the workspace is effectively its own little malloc implementation / + * arena, when we run under ASAN, we should similarly insert redzones between + * each internal element of the workspace, so ASAN will catch overruns that + * reach outside an object but that stay inside the workspace. + * + * This defines the size of that redzone. + */ +#ifndef ZSTD_CWKSP_ASAN_REDZONE_SIZE +#define ZSTD_CWKSP_ASAN_REDZONE_SIZE 128 +#endif + + +/* Set our tables and aligneds to align by 64 bytes */ +#define ZSTD_CWKSP_ALIGNMENT_BYTES 64 + +/*-************************************* +* Structures +***************************************/ +typedef enum { + ZSTD_cwksp_alloc_objects, + ZSTD_cwksp_alloc_buffers, + ZSTD_cwksp_alloc_aligned +} ZSTD_cwksp_alloc_phase_e; + +/** + * Used to describe whether the workspace is statically allocated (and will not + * necessarily ever be freed), or if it's dynamically allocated and we can + * expect a well-formed caller to free this. + */ +typedef enum { + ZSTD_cwksp_dynamic_alloc, + ZSTD_cwksp_static_alloc +} ZSTD_cwksp_static_alloc_e; + +/** + * Zstd fits all its internal datastructures into a single continuous buffer, + * so that it only needs to perform a single OS allocation (or so that a buffer + * can be provided to it and it can perform no allocations at all). This buffer + * is called the workspace. + * + * Several optimizations complicate that process of allocating memory ranges + * from this workspace for each internal datastructure: + * + * - These different internal datastructures have different setup requirements: + * + * - The static objects need to be cleared once and can then be trivially + * reused for each compression. + * + * - Various buffers don't need to be initialized at all--they are always + * written into before they're read. + * + * - The matchstate tables have a unique requirement that they don't need + * their memory to be totally cleared, but they do need the memory to have + * some bound, i.e., a guarantee that all values in the memory they've been + * allocated is less than some maximum value (which is the starting value + * for the indices that they will then use for compression). When this + * guarantee is provided to them, they can use the memory without any setup + * work. When it can't, they have to clear the area. + * + * - These buffers also have different alignment requirements. + * + * - We would like to reuse the objects in the workspace for multiple + * compressions without having to perform any expensive reallocation or + * reinitialization work. + * + * - We would like to be able to efficiently reuse the workspace across + * multiple compressions **even when the compression parameters change** and + * we need to resize some of the objects (where possible). + * + * To attempt to manage this buffer, given these constraints, the ZSTD_cwksp + * abstraction was created. It works as follows: + * + * Workspace Layout: + * + * [ ... workspace ... ] + * [objects][tables ... ->] free space [<- ... aligned][<- ... buffers] + * + * The various objects that live in the workspace are divided into the + * following categories, and are allocated separately: + * + * - Static objects: this is optionally the enclosing ZSTD_CCtx or ZSTD_CDict, + * so that literally everything fits in a single buffer. Note: if present, + * this must be the first object in the workspace, since ZSTD_customFree{CCtx, + * CDict}() rely on a pointer comparison to see whether one or two frees are + * required. + * + * - Fixed size objects: these are fixed-size, fixed-count objects that are + * nonetheless "dynamically" allocated in the workspace so that we can + * control how they're initialized separately from the broader ZSTD_CCtx. + * Examples: + * - Entropy Workspace + * - 2 x ZSTD_compressedBlockState_t + * - CDict dictionary contents + * + * - Tables: these are any of several different datastructures (hash tables, + * chain tables, binary trees) that all respect a common format: they are + * uint32_t arrays, all of whose values are between 0 and (nextSrc - base). + * Their sizes depend on the cparams. These tables are 64-byte aligned. + * + * - Aligned: these buffers are used for various purposes that require 4 byte + * alignment, but don't require any initialization before they're used. These + * buffers are each aligned to 64 bytes. + * + * - Buffers: these buffers are used for various purposes that don't require + * any alignment or initialization before they're used. This means they can + * be moved around at no cost for a new compression. + * + * Allocating Memory: + * + * The various types of objects must be allocated in order, so they can be + * correctly packed into the workspace buffer. That order is: + * + * 1. Objects + * 2. Buffers + * 3. Aligned/Tables + * + * Attempts to reserve objects of different types out of order will fail. + */ +typedef struct { + void* workspace; + void* workspaceEnd; + + void* objectEnd; + void* tableEnd; + void* tableValidEnd; + void* allocStart; + + BYTE allocFailed; + int workspaceOversizedDuration; + ZSTD_cwksp_alloc_phase_e phase; + ZSTD_cwksp_static_alloc_e isStatic; +} ZSTD_cwksp; + +/*-************************************* +* Functions +***************************************/ + +MEM_STATIC size_t ZSTD_cwksp_available_space(ZSTD_cwksp* ws); + +MEM_STATIC void ZSTD_cwksp_assert_internal_consistency(ZSTD_cwksp* ws) { + (void)ws; + assert(ws->workspace <= ws->objectEnd); + assert(ws->objectEnd <= ws->tableEnd); + assert(ws->objectEnd <= ws->tableValidEnd); + assert(ws->tableEnd <= ws->allocStart); + assert(ws->tableValidEnd <= ws->allocStart); + assert(ws->allocStart <= ws->workspaceEnd); +} + +/** + * Align must be a power of 2. + */ +MEM_STATIC size_t ZSTD_cwksp_align(size_t size, size_t const align) { + size_t const mask = align - 1; + assert((align & mask) == 0); + return (size + mask) & ~mask; +} + +/** + * Use this to determine how much space in the workspace we will consume to + * allocate this object. (Normally it should be exactly the size of the object, + * but under special conditions, like ASAN, where we pad each object, it might + * be larger.) + * + * Since tables aren't currently redzoned, you don't need to call through this + * to figure out how much space you need for the matchState tables. Everything + * else is though. + * + * Do not use for sizing aligned buffers. Instead, use ZSTD_cwksp_aligned_alloc_size(). + */ +MEM_STATIC size_t ZSTD_cwksp_alloc_size(size_t size) { + if (size == 0) + return 0; +#if ZSTD_ADDRESS_SANITIZER && !defined (ZSTD_ASAN_DONT_POISON_WORKSPACE) + return size + 2 * ZSTD_CWKSP_ASAN_REDZONE_SIZE; +#else + return size; +#endif +} + +/** + * Returns an adjusted alloc size that is the nearest larger multiple of 64 bytes. + * Used to determine the number of bytes required for a given "aligned". + */ +MEM_STATIC size_t ZSTD_cwksp_aligned_alloc_size(size_t size) { + return ZSTD_cwksp_alloc_size(ZSTD_cwksp_align(size, ZSTD_CWKSP_ALIGNMENT_BYTES)); +} + +/** + * Returns the amount of additional space the cwksp must allocate + * for internal purposes (currently only alignment). + */ +MEM_STATIC size_t ZSTD_cwksp_slack_space_required(void) { + /* For alignment, the wksp will always allocate an additional n_1=[1, 64] bytes + * to align the beginning of tables section, as well as another n_2=[0, 63] bytes + * to align the beginning of the aligned secion. + * + * n_1 + n_2 == 64 bytes if the cwksp is freshly allocated, due to tables and + * aligneds being sized in multiples of 64 bytes. + */ + size_t const slackSpace = ZSTD_CWKSP_ALIGNMENT_BYTES; + return slackSpace; +} + + +/** + * Return the number of additional bytes required to align a pointer to the given number of bytes. + * alignBytes must be a power of two. + */ +MEM_STATIC size_t ZSTD_cwksp_bytes_to_align_ptr(void* ptr, const size_t alignBytes) { + size_t const alignBytesMask = alignBytes - 1; + size_t const bytes = (alignBytes - ((size_t)ptr & (alignBytesMask))) & alignBytesMask; + assert((alignBytes & alignBytesMask) == 0); + assert(bytes != ZSTD_CWKSP_ALIGNMENT_BYTES); + return bytes; +} + +/** + * Internal function. Do not use directly. + * Reserves the given number of bytes within the aligned/buffer segment of the wksp, which + * counts from the end of the wksp. (as opposed to the object/table segment) + * + * Returns a pointer to the beginning of that space. + */ +MEM_STATIC void* ZSTD_cwksp_reserve_internal_buffer_space(ZSTD_cwksp* ws, size_t const bytes) { + void* const alloc = (BYTE*)ws->allocStart - bytes; + void* const bottom = ws->tableEnd; + DEBUGLOG(5, "cwksp: reserving %p %zd bytes, %zd bytes remaining", + alloc, bytes, ZSTD_cwksp_available_space(ws) - bytes); + ZSTD_cwksp_assert_internal_consistency(ws); + assert(alloc >= bottom); + if (alloc < bottom) { + DEBUGLOG(4, "cwksp: alloc failed!"); + ws->allocFailed = 1; + return NULL; + } + if (alloc < ws->tableValidEnd) { + ws->tableValidEnd = alloc; + } + ws->allocStart = alloc; + return alloc; +} + +/** + * Moves the cwksp to the next phase, and does any necessary allocations. + * Returns a 0 on success, or zstd error + */ +MEM_STATIC size_t ZSTD_cwksp_internal_advance_phase( + ZSTD_cwksp* ws, ZSTD_cwksp_alloc_phase_e phase) { + assert(phase >= ws->phase); + if (phase > ws->phase) { + /* Going from allocating objects to allocating buffers */ + if (ws->phase < ZSTD_cwksp_alloc_buffers && + phase >= ZSTD_cwksp_alloc_buffers) { + ws->tableValidEnd = ws->objectEnd; + } + + /* Going from allocating buffers to allocating aligneds/tables */ + if (ws->phase < ZSTD_cwksp_alloc_aligned && + phase >= ZSTD_cwksp_alloc_aligned) { + { /* Align the start of the "aligned" to 64 bytes. Use [1, 64] bytes. */ + size_t const bytesToAlign = + ZSTD_CWKSP_ALIGNMENT_BYTES - ZSTD_cwksp_bytes_to_align_ptr(ws->allocStart, ZSTD_CWKSP_ALIGNMENT_BYTES); + DEBUGLOG(5, "reserving aligned alignment addtl space: %zu", bytesToAlign); + ZSTD_STATIC_ASSERT((ZSTD_CWKSP_ALIGNMENT_BYTES & (ZSTD_CWKSP_ALIGNMENT_BYTES - 1)) == 0); /* power of 2 */ + RETURN_ERROR_IF(!ZSTD_cwksp_reserve_internal_buffer_space(ws, bytesToAlign), + memory_allocation, "aligned phase - alignment initial allocation failed!"); + } + { /* Align the start of the tables to 64 bytes. Use [0, 63] bytes */ + void* const alloc = ws->objectEnd; + size_t const bytesToAlign = ZSTD_cwksp_bytes_to_align_ptr(alloc, ZSTD_CWKSP_ALIGNMENT_BYTES); + void* const end = (BYTE*)alloc + bytesToAlign; + DEBUGLOG(5, "reserving table alignment addtl space: %zu", bytesToAlign); + RETURN_ERROR_IF(end > ws->workspaceEnd, memory_allocation, + "table phase - alignment initial allocation failed!"); + ws->objectEnd = end; + ws->tableEnd = end; + ws->tableValidEnd = end; + } + } + ws->phase = phase; + ZSTD_cwksp_assert_internal_consistency(ws); + } + return 0; +} + +/** + * Returns whether this object/buffer/etc was allocated in this workspace. + */ +MEM_STATIC int ZSTD_cwksp_owns_buffer(const ZSTD_cwksp* ws, const void* ptr) { + return (ptr != NULL) && (ws->workspace <= ptr) && (ptr <= ws->workspaceEnd); +} + +/** + * Internal function. Do not use directly. + */ +MEM_STATIC void* ZSTD_cwksp_reserve_internal( + ZSTD_cwksp* ws, size_t bytes, ZSTD_cwksp_alloc_phase_e phase) { + void* alloc; + if (ZSTD_isError(ZSTD_cwksp_internal_advance_phase(ws, phase)) || bytes == 0) { + return NULL; + } + +#if ZSTD_ADDRESS_SANITIZER && !defined (ZSTD_ASAN_DONT_POISON_WORKSPACE) + /* over-reserve space */ + bytes += 2 * ZSTD_CWKSP_ASAN_REDZONE_SIZE; +#endif + + alloc = ZSTD_cwksp_reserve_internal_buffer_space(ws, bytes); + +#if ZSTD_ADDRESS_SANITIZER && !defined (ZSTD_ASAN_DONT_POISON_WORKSPACE) + /* Move alloc so there's ZSTD_CWKSP_ASAN_REDZONE_SIZE unused space on + * either size. */ + if (alloc) { + alloc = (BYTE *)alloc + ZSTD_CWKSP_ASAN_REDZONE_SIZE; + if (ws->isStatic == ZSTD_cwksp_dynamic_alloc) { + __asan_unpoison_memory_region(alloc, bytes); + } + } +#endif + + return alloc; +} + +/** + * Reserves and returns unaligned memory. + */ +MEM_STATIC BYTE* ZSTD_cwksp_reserve_buffer(ZSTD_cwksp* ws, size_t bytes) { + return (BYTE*)ZSTD_cwksp_reserve_internal(ws, bytes, ZSTD_cwksp_alloc_buffers); +} + +/** + * Reserves and returns memory sized on and aligned on ZSTD_CWKSP_ALIGNMENT_BYTES (64 bytes). + */ +MEM_STATIC void* ZSTD_cwksp_reserve_aligned(ZSTD_cwksp* ws, size_t bytes) { + void* ptr = ZSTD_cwksp_reserve_internal(ws, ZSTD_cwksp_align(bytes, ZSTD_CWKSP_ALIGNMENT_BYTES), + ZSTD_cwksp_alloc_aligned); + assert(((size_t)ptr & (ZSTD_CWKSP_ALIGNMENT_BYTES-1))== 0); + return ptr; +} + +/** + * Aligned on 64 bytes. These buffers have the special property that + * their values remain constrained, allowing us to re-use them without + * memset()-ing them. + */ +MEM_STATIC void* ZSTD_cwksp_reserve_table(ZSTD_cwksp* ws, size_t bytes) { + const ZSTD_cwksp_alloc_phase_e phase = ZSTD_cwksp_alloc_aligned; + void* alloc; + void* end; + void* top; + + if (ZSTD_isError(ZSTD_cwksp_internal_advance_phase(ws, phase))) { + return NULL; + } + alloc = ws->tableEnd; + end = (BYTE *)alloc + bytes; + top = ws->allocStart; + + DEBUGLOG(5, "cwksp: reserving %p table %zd bytes, %zd bytes remaining", + alloc, bytes, ZSTD_cwksp_available_space(ws) - bytes); + assert((bytes & (sizeof(U32)-1)) == 0); + ZSTD_cwksp_assert_internal_consistency(ws); + assert(end <= top); + if (end > top) { + DEBUGLOG(4, "cwksp: table alloc failed!"); + ws->allocFailed = 1; + return NULL; + } + ws->tableEnd = end; + +#if ZSTD_ADDRESS_SANITIZER && !defined (ZSTD_ASAN_DONT_POISON_WORKSPACE) + if (ws->isStatic == ZSTD_cwksp_dynamic_alloc) { + __asan_unpoison_memory_region(alloc, bytes); + } +#endif + + assert((bytes & (ZSTD_CWKSP_ALIGNMENT_BYTES-1)) == 0); + assert(((size_t)alloc & (ZSTD_CWKSP_ALIGNMENT_BYTES-1))== 0); + return alloc; +} + +/** + * Aligned on sizeof(void*). + */ +MEM_STATIC void* ZSTD_cwksp_reserve_object(ZSTD_cwksp* ws, size_t bytes) { + size_t roundedBytes = ZSTD_cwksp_align(bytes, sizeof(void*)); + void* alloc = ws->objectEnd; + void* end = (BYTE*)alloc + roundedBytes; + +#if ZSTD_ADDRESS_SANITIZER && !defined (ZSTD_ASAN_DONT_POISON_WORKSPACE) + /* over-reserve space */ + end = (BYTE *)end + 2 * ZSTD_CWKSP_ASAN_REDZONE_SIZE; +#endif + + DEBUGLOG(5, + "cwksp: reserving %p object %zd bytes (rounded to %zd), %zd bytes remaining", + alloc, bytes, roundedBytes, ZSTD_cwksp_available_space(ws) - roundedBytes); + assert(((size_t)alloc & (sizeof(void*)-1)) == 0); + assert((bytes & (sizeof(void*)-1)) == 0); + ZSTD_cwksp_assert_internal_consistency(ws); + /* we must be in the first phase, no advance is possible */ + if (ws->phase != ZSTD_cwksp_alloc_objects || end > ws->workspaceEnd) { + DEBUGLOG(4, "cwksp: object alloc failed!"); + ws->allocFailed = 1; + return NULL; + } + ws->objectEnd = end; + ws->tableEnd = end; + ws->tableValidEnd = end; + +#if ZSTD_ADDRESS_SANITIZER && !defined (ZSTD_ASAN_DONT_POISON_WORKSPACE) + /* Move alloc so there's ZSTD_CWKSP_ASAN_REDZONE_SIZE unused space on + * either size. */ + alloc = (BYTE *)alloc + ZSTD_CWKSP_ASAN_REDZONE_SIZE; + if (ws->isStatic == ZSTD_cwksp_dynamic_alloc) { + __asan_unpoison_memory_region(alloc, bytes); + } +#endif + + return alloc; +} + +MEM_STATIC void ZSTD_cwksp_mark_tables_dirty(ZSTD_cwksp* ws) { + DEBUGLOG(4, "cwksp: ZSTD_cwksp_mark_tables_dirty"); + +#if ZSTD_MEMORY_SANITIZER && !defined (ZSTD_MSAN_DONT_POISON_WORKSPACE) + /* To validate that the table re-use logic is sound, and that we don't + * access table space that we haven't cleaned, we re-"poison" the table + * space every time we mark it dirty. */ + { + size_t size = (BYTE*)ws->tableValidEnd - (BYTE*)ws->objectEnd; + assert(__msan_test_shadow(ws->objectEnd, size) == -1); + __msan_poison(ws->objectEnd, size); + } +#endif + + assert(ws->tableValidEnd >= ws->objectEnd); + assert(ws->tableValidEnd <= ws->allocStart); + ws->tableValidEnd = ws->objectEnd; + ZSTD_cwksp_assert_internal_consistency(ws); +} + +MEM_STATIC void ZSTD_cwksp_mark_tables_clean(ZSTD_cwksp* ws) { + DEBUGLOG(4, "cwksp: ZSTD_cwksp_mark_tables_clean"); + assert(ws->tableValidEnd >= ws->objectEnd); + assert(ws->tableValidEnd <= ws->allocStart); + if (ws->tableValidEnd < ws->tableEnd) { + ws->tableValidEnd = ws->tableEnd; + } + ZSTD_cwksp_assert_internal_consistency(ws); +} + +/** + * Zero the part of the allocated tables not already marked clean. + */ +MEM_STATIC void ZSTD_cwksp_clean_tables(ZSTD_cwksp* ws) { + DEBUGLOG(4, "cwksp: ZSTD_cwksp_clean_tables"); + assert(ws->tableValidEnd >= ws->objectEnd); + assert(ws->tableValidEnd <= ws->allocStart); + if (ws->tableValidEnd < ws->tableEnd) { + ZSTD_memset(ws->tableValidEnd, 0, (BYTE*)ws->tableEnd - (BYTE*)ws->tableValidEnd); + } + ZSTD_cwksp_mark_tables_clean(ws); +} + +/** + * Invalidates table allocations. + * All other allocations remain valid. + */ +MEM_STATIC void ZSTD_cwksp_clear_tables(ZSTD_cwksp* ws) { + DEBUGLOG(4, "cwksp: clearing tables!"); + +#if ZSTD_ADDRESS_SANITIZER && !defined (ZSTD_ASAN_DONT_POISON_WORKSPACE) + /* We don't do this when the workspace is statically allocated, because + * when that is the case, we have no capability to hook into the end of the + * workspace's lifecycle to unpoison the memory. + */ + if (ws->isStatic == ZSTD_cwksp_dynamic_alloc) { + size_t size = (BYTE*)ws->tableValidEnd - (BYTE*)ws->objectEnd; + __asan_poison_memory_region(ws->objectEnd, size); + } +#endif + + ws->tableEnd = ws->objectEnd; + ZSTD_cwksp_assert_internal_consistency(ws); +} + +/** + * Invalidates all buffer, aligned, and table allocations. + * Object allocations remain valid. + */ +MEM_STATIC void ZSTD_cwksp_clear(ZSTD_cwksp* ws) { + DEBUGLOG(4, "cwksp: clearing!"); + +#if ZSTD_MEMORY_SANITIZER && !defined (ZSTD_MSAN_DONT_POISON_WORKSPACE) + /* To validate that the context re-use logic is sound, and that we don't + * access stuff that this compression hasn't initialized, we re-"poison" + * the workspace (or at least the non-static, non-table parts of it) + * every time we start a new compression. */ + { + size_t size = (BYTE*)ws->workspaceEnd - (BYTE*)ws->tableValidEnd; + __msan_poison(ws->tableValidEnd, size); + } +#endif + +#if ZSTD_ADDRESS_SANITIZER && !defined (ZSTD_ASAN_DONT_POISON_WORKSPACE) + /* We don't do this when the workspace is statically allocated, because + * when that is the case, we have no capability to hook into the end of the + * workspace's lifecycle to unpoison the memory. + */ + if (ws->isStatic == ZSTD_cwksp_dynamic_alloc) { + size_t size = (BYTE*)ws->workspaceEnd - (BYTE*)ws->objectEnd; + __asan_poison_memory_region(ws->objectEnd, size); + } +#endif + + ws->tableEnd = ws->objectEnd; + ws->allocStart = ws->workspaceEnd; + ws->allocFailed = 0; + if (ws->phase > ZSTD_cwksp_alloc_buffers) { + ws->phase = ZSTD_cwksp_alloc_buffers; + } + ZSTD_cwksp_assert_internal_consistency(ws); +} + +/** + * The provided workspace takes ownership of the buffer [start, start+size). + * Any existing values in the workspace are ignored (the previously managed + * buffer, if present, must be separately freed). + */ +MEM_STATIC void ZSTD_cwksp_init(ZSTD_cwksp* ws, void* start, size_t size, ZSTD_cwksp_static_alloc_e isStatic) { + DEBUGLOG(4, "cwksp: init'ing workspace with %zd bytes", size); + assert(((size_t)start & (sizeof(void*)-1)) == 0); /* ensure correct alignment */ + ws->workspace = start; + ws->workspaceEnd = (BYTE*)start + size; + ws->objectEnd = ws->workspace; + ws->tableValidEnd = ws->objectEnd; + ws->phase = ZSTD_cwksp_alloc_objects; + ws->isStatic = isStatic; + ZSTD_cwksp_clear(ws); + ws->workspaceOversizedDuration = 0; + ZSTD_cwksp_assert_internal_consistency(ws); +} + +MEM_STATIC size_t ZSTD_cwksp_create(ZSTD_cwksp* ws, size_t size, ZSTD_customMem customMem) { + void* workspace = ZSTD_customMalloc(size, customMem); + DEBUGLOG(4, "cwksp: creating new workspace with %zd bytes", size); + RETURN_ERROR_IF(workspace == NULL, memory_allocation, "NULL pointer!"); + ZSTD_cwksp_init(ws, workspace, size, ZSTD_cwksp_dynamic_alloc); + return 0; +} + +MEM_STATIC void ZSTD_cwksp_free(ZSTD_cwksp* ws, ZSTD_customMem customMem) { + void *ptr = ws->workspace; + DEBUGLOG(4, "cwksp: freeing workspace"); + ZSTD_memset(ws, 0, sizeof(ZSTD_cwksp)); + ZSTD_customFree(ptr, customMem); +} + +/** + * Moves the management of a workspace from one cwksp to another. The src cwksp + * is left in an invalid state (src must be re-init()'ed before it's used again). + */ +MEM_STATIC void ZSTD_cwksp_move(ZSTD_cwksp* dst, ZSTD_cwksp* src) { + *dst = *src; + ZSTD_memset(src, 0, sizeof(ZSTD_cwksp)); +} + +MEM_STATIC size_t ZSTD_cwksp_sizeof(const ZSTD_cwksp* ws) { + return (size_t)((BYTE*)ws->workspaceEnd - (BYTE*)ws->workspace); +} + +MEM_STATIC size_t ZSTD_cwksp_used(const ZSTD_cwksp* ws) { + return (size_t)((BYTE*)ws->tableEnd - (BYTE*)ws->workspace) + + (size_t)((BYTE*)ws->workspaceEnd - (BYTE*)ws->allocStart); +} + +MEM_STATIC int ZSTD_cwksp_reserve_failed(const ZSTD_cwksp* ws) { + return ws->allocFailed; +} + +/*-************************************* +* Functions Checking Free Space +***************************************/ + +/* ZSTD_alignmentSpaceWithinBounds() : + * Returns if the estimated space needed for a wksp is within an acceptable limit of the + * actual amount of space used. + */ +MEM_STATIC int ZSTD_cwksp_estimated_space_within_bounds(const ZSTD_cwksp* const ws, + size_t const estimatedSpace, int resizedWorkspace) { + if (resizedWorkspace) { + /* Resized/newly allocated wksp should have exact bounds */ + return ZSTD_cwksp_used(ws) == estimatedSpace; + } else { + /* Due to alignment, when reusing a workspace, we can actually consume 63 fewer or more bytes + * than estimatedSpace. See the comments in zstd_cwksp.h for details. + */ + return (ZSTD_cwksp_used(ws) >= estimatedSpace - 63) && (ZSTD_cwksp_used(ws) <= estimatedSpace + 63); + } +} + + +MEM_STATIC size_t ZSTD_cwksp_available_space(ZSTD_cwksp* ws) { + return (size_t)((BYTE*)ws->allocStart - (BYTE*)ws->tableEnd); +} + +MEM_STATIC int ZSTD_cwksp_check_available(ZSTD_cwksp* ws, size_t additionalNeededSpace) { + return ZSTD_cwksp_available_space(ws) >= additionalNeededSpace; +} + +MEM_STATIC int ZSTD_cwksp_check_too_large(ZSTD_cwksp* ws, size_t additionalNeededSpace) { + return ZSTD_cwksp_check_available( + ws, additionalNeededSpace * ZSTD_WORKSPACETOOLARGE_FACTOR); +} + +MEM_STATIC int ZSTD_cwksp_check_wasteful(ZSTD_cwksp* ws, size_t additionalNeededSpace) { + return ZSTD_cwksp_check_too_large(ws, additionalNeededSpace) + && ws->workspaceOversizedDuration > ZSTD_WORKSPACETOOLARGE_MAXDURATION; +} + +MEM_STATIC void ZSTD_cwksp_bump_oversized_duration( + ZSTD_cwksp* ws, size_t additionalNeededSpace) { + if (ZSTD_cwksp_check_too_large(ws, additionalNeededSpace)) { + ws->workspaceOversizedDuration++; + } else { + ws->workspaceOversizedDuration = 0; + } +} + +#if defined (__cplusplus) +} +#endif + +#endif /* ZSTD_CWKSP_H */ diff --git a/dependencies/zstd-1.5.0/lib/compress/zstd_double_fast.c b/dependencies/zstd-1.5.0/lib/compress/zstd_double_fast.c new file mode 100644 index 0000000..d0d3a78 --- /dev/null +++ b/dependencies/zstd-1.5.0/lib/compress/zstd_double_fast.c @@ -0,0 +1,521 @@ +/* + * Copyright (c) Yann Collet, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + +#include "zstd_compress_internal.h" +#include "zstd_double_fast.h" + + +void ZSTD_fillDoubleHashTable(ZSTD_matchState_t* ms, + void const* end, ZSTD_dictTableLoadMethod_e dtlm) +{ + const ZSTD_compressionParameters* const cParams = &ms->cParams; + U32* const hashLarge = ms->hashTable; + U32 const hBitsL = cParams->hashLog; + U32 const mls = cParams->minMatch; + U32* const hashSmall = ms->chainTable; + U32 const hBitsS = cParams->chainLog; + const BYTE* const base = ms->window.base; + const BYTE* ip = base + ms->nextToUpdate; + const BYTE* const iend = ((const BYTE*)end) - HASH_READ_SIZE; + const U32 fastHashFillStep = 3; + + /* Always insert every fastHashFillStep position into the hash tables. + * Insert the other positions into the large hash table if their entry + * is empty. + */ + for (; ip + fastHashFillStep - 1 <= iend; ip += fastHashFillStep) { + U32 const curr = (U32)(ip - base); + U32 i; + for (i = 0; i < fastHashFillStep; ++i) { + size_t const smHash = ZSTD_hashPtr(ip + i, hBitsS, mls); + size_t const lgHash = ZSTD_hashPtr(ip + i, hBitsL, 8); + if (i == 0) + hashSmall[smHash] = curr + i; + if (i == 0 || hashLarge[lgHash] == 0) + hashLarge[lgHash] = curr + i; + /* Only load extra positions for ZSTD_dtlm_full */ + if (dtlm == ZSTD_dtlm_fast) + break; + } } +} + + +FORCE_INLINE_TEMPLATE +size_t ZSTD_compressBlock_doubleFast_generic( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize, + U32 const mls /* template */, ZSTD_dictMode_e const dictMode) +{ + ZSTD_compressionParameters const* cParams = &ms->cParams; + U32* const hashLong = ms->hashTable; + const U32 hBitsL = cParams->hashLog; + U32* const hashSmall = ms->chainTable; + const U32 hBitsS = cParams->chainLog; + const BYTE* const base = ms->window.base; + const BYTE* const istart = (const BYTE*)src; + const BYTE* ip = istart; + const BYTE* anchor = istart; + const U32 endIndex = (U32)((size_t)(istart - base) + srcSize); + /* presumes that, if there is a dictionary, it must be using Attach mode */ + const U32 prefixLowestIndex = ZSTD_getLowestPrefixIndex(ms, endIndex, cParams->windowLog); + const BYTE* const prefixLowest = base + prefixLowestIndex; + const BYTE* const iend = istart + srcSize; + const BYTE* const ilimit = iend - HASH_READ_SIZE; + U32 offset_1=rep[0], offset_2=rep[1]; + U32 offsetSaved = 0; + + const ZSTD_matchState_t* const dms = ms->dictMatchState; + const ZSTD_compressionParameters* const dictCParams = + dictMode == ZSTD_dictMatchState ? + &dms->cParams : NULL; + const U32* const dictHashLong = dictMode == ZSTD_dictMatchState ? + dms->hashTable : NULL; + const U32* const dictHashSmall = dictMode == ZSTD_dictMatchState ? + dms->chainTable : NULL; + const U32 dictStartIndex = dictMode == ZSTD_dictMatchState ? + dms->window.dictLimit : 0; + const BYTE* const dictBase = dictMode == ZSTD_dictMatchState ? + dms->window.base : NULL; + const BYTE* const dictStart = dictMode == ZSTD_dictMatchState ? + dictBase + dictStartIndex : NULL; + const BYTE* const dictEnd = dictMode == ZSTD_dictMatchState ? + dms->window.nextSrc : NULL; + const U32 dictIndexDelta = dictMode == ZSTD_dictMatchState ? + prefixLowestIndex - (U32)(dictEnd - dictBase) : + 0; + const U32 dictHBitsL = dictMode == ZSTD_dictMatchState ? + dictCParams->hashLog : hBitsL; + const U32 dictHBitsS = dictMode == ZSTD_dictMatchState ? + dictCParams->chainLog : hBitsS; + const U32 dictAndPrefixLength = (U32)((ip - prefixLowest) + (dictEnd - dictStart)); + + DEBUGLOG(5, "ZSTD_compressBlock_doubleFast_generic"); + + assert(dictMode == ZSTD_noDict || dictMode == ZSTD_dictMatchState); + + /* if a dictionary is attached, it must be within window range */ + if (dictMode == ZSTD_dictMatchState) { + assert(ms->window.dictLimit + (1U << cParams->windowLog) >= endIndex); + } + + /* init */ + ip += (dictAndPrefixLength == 0); + if (dictMode == ZSTD_noDict) { + U32 const curr = (U32)(ip - base); + U32 const windowLow = ZSTD_getLowestPrefixIndex(ms, curr, cParams->windowLog); + U32 const maxRep = curr - windowLow; + if (offset_2 > maxRep) offsetSaved = offset_2, offset_2 = 0; + if (offset_1 > maxRep) offsetSaved = offset_1, offset_1 = 0; + } + if (dictMode == ZSTD_dictMatchState) { + /* dictMatchState repCode checks don't currently handle repCode == 0 + * disabling. */ + assert(offset_1 <= dictAndPrefixLength); + assert(offset_2 <= dictAndPrefixLength); + } + + /* Main Search Loop */ + while (ip < ilimit) { /* < instead of <=, because repcode check at (ip+1) */ + size_t mLength; + U32 offset; + size_t const h2 = ZSTD_hashPtr(ip, hBitsL, 8); + size_t const h = ZSTD_hashPtr(ip, hBitsS, mls); + size_t const dictHL = ZSTD_hashPtr(ip, dictHBitsL, 8); + size_t const dictHS = ZSTD_hashPtr(ip, dictHBitsS, mls); + U32 const curr = (U32)(ip-base); + U32 const matchIndexL = hashLong[h2]; + U32 matchIndexS = hashSmall[h]; + const BYTE* matchLong = base + matchIndexL; + const BYTE* match = base + matchIndexS; + const U32 repIndex = curr + 1 - offset_1; + const BYTE* repMatch = (dictMode == ZSTD_dictMatchState + && repIndex < prefixLowestIndex) ? + dictBase + (repIndex - dictIndexDelta) : + base + repIndex; + hashLong[h2] = hashSmall[h] = curr; /* update hash tables */ + + /* check dictMatchState repcode */ + if (dictMode == ZSTD_dictMatchState + && ((U32)((prefixLowestIndex-1) - repIndex) >= 3 /* intentional underflow */) + && (MEM_read32(repMatch) == MEM_read32(ip+1)) ) { + const BYTE* repMatchEnd = repIndex < prefixLowestIndex ? dictEnd : iend; + mLength = ZSTD_count_2segments(ip+1+4, repMatch+4, iend, repMatchEnd, prefixLowest) + 4; + ip++; + ZSTD_storeSeq(seqStore, (size_t)(ip-anchor), anchor, iend, 0, mLength-MINMATCH); + goto _match_stored; + } + + /* check noDict repcode */ + if ( dictMode == ZSTD_noDict + && ((offset_1 > 0) & (MEM_read32(ip+1-offset_1) == MEM_read32(ip+1)))) { + mLength = ZSTD_count(ip+1+4, ip+1+4-offset_1, iend) + 4; + ip++; + ZSTD_storeSeq(seqStore, (size_t)(ip-anchor), anchor, iend, 0, mLength-MINMATCH); + goto _match_stored; + } + + if (matchIndexL > prefixLowestIndex) { + /* check prefix long match */ + if (MEM_read64(matchLong) == MEM_read64(ip)) { + mLength = ZSTD_count(ip+8, matchLong+8, iend) + 8; + offset = (U32)(ip-matchLong); + while (((ip>anchor) & (matchLong>prefixLowest)) && (ip[-1] == matchLong[-1])) { ip--; matchLong--; mLength++; } /* catch up */ + goto _match_found; + } + } else if (dictMode == ZSTD_dictMatchState) { + /* check dictMatchState long match */ + U32 const dictMatchIndexL = dictHashLong[dictHL]; + const BYTE* dictMatchL = dictBase + dictMatchIndexL; + assert(dictMatchL < dictEnd); + + if (dictMatchL > dictStart && MEM_read64(dictMatchL) == MEM_read64(ip)) { + mLength = ZSTD_count_2segments(ip+8, dictMatchL+8, iend, dictEnd, prefixLowest) + 8; + offset = (U32)(curr - dictMatchIndexL - dictIndexDelta); + while (((ip>anchor) & (dictMatchL>dictStart)) && (ip[-1] == dictMatchL[-1])) { ip--; dictMatchL--; mLength++; } /* catch up */ + goto _match_found; + } } + + if (matchIndexS > prefixLowestIndex) { + /* check prefix short match */ + if (MEM_read32(match) == MEM_read32(ip)) { + goto _search_next_long; + } + } else if (dictMode == ZSTD_dictMatchState) { + /* check dictMatchState short match */ + U32 const dictMatchIndexS = dictHashSmall[dictHS]; + match = dictBase + dictMatchIndexS; + matchIndexS = dictMatchIndexS + dictIndexDelta; + + if (match > dictStart && MEM_read32(match) == MEM_read32(ip)) { + goto _search_next_long; + } } + + ip += ((ip-anchor) >> kSearchStrength) + 1; +#if defined(__aarch64__) + PREFETCH_L1(ip+256); +#endif + continue; + +_search_next_long: + + { size_t const hl3 = ZSTD_hashPtr(ip+1, hBitsL, 8); + size_t const dictHLNext = ZSTD_hashPtr(ip+1, dictHBitsL, 8); + U32 const matchIndexL3 = hashLong[hl3]; + const BYTE* matchL3 = base + matchIndexL3; + hashLong[hl3] = curr + 1; + + /* check prefix long +1 match */ + if (matchIndexL3 > prefixLowestIndex) { + if (MEM_read64(matchL3) == MEM_read64(ip+1)) { + mLength = ZSTD_count(ip+9, matchL3+8, iend) + 8; + ip++; + offset = (U32)(ip-matchL3); + while (((ip>anchor) & (matchL3>prefixLowest)) && (ip[-1] == matchL3[-1])) { ip--; matchL3--; mLength++; } /* catch up */ + goto _match_found; + } + } else if (dictMode == ZSTD_dictMatchState) { + /* check dict long +1 match */ + U32 const dictMatchIndexL3 = dictHashLong[dictHLNext]; + const BYTE* dictMatchL3 = dictBase + dictMatchIndexL3; + assert(dictMatchL3 < dictEnd); + if (dictMatchL3 > dictStart && MEM_read64(dictMatchL3) == MEM_read64(ip+1)) { + mLength = ZSTD_count_2segments(ip+1+8, dictMatchL3+8, iend, dictEnd, prefixLowest) + 8; + ip++; + offset = (U32)(curr + 1 - dictMatchIndexL3 - dictIndexDelta); + while (((ip>anchor) & (dictMatchL3>dictStart)) && (ip[-1] == dictMatchL3[-1])) { ip--; dictMatchL3--; mLength++; } /* catch up */ + goto _match_found; + } } } + + /* if no long +1 match, explore the short match we found */ + if (dictMode == ZSTD_dictMatchState && matchIndexS < prefixLowestIndex) { + mLength = ZSTD_count_2segments(ip+4, match+4, iend, dictEnd, prefixLowest) + 4; + offset = (U32)(curr - matchIndexS); + while (((ip>anchor) & (match>dictStart)) && (ip[-1] == match[-1])) { ip--; match--; mLength++; } /* catch up */ + } else { + mLength = ZSTD_count(ip+4, match+4, iend) + 4; + offset = (U32)(ip - match); + while (((ip>anchor) & (match>prefixLowest)) && (ip[-1] == match[-1])) { ip--; match--; mLength++; } /* catch up */ + } + + /* fall-through */ + +_match_found: + offset_2 = offset_1; + offset_1 = offset; + + ZSTD_storeSeq(seqStore, (size_t)(ip-anchor), anchor, iend, offset + ZSTD_REP_MOVE, mLength-MINMATCH); + +_match_stored: + /* match found */ + ip += mLength; + anchor = ip; + + if (ip <= ilimit) { + /* Complementary insertion */ + /* done after iLimit test, as candidates could be > iend-8 */ + { U32 const indexToInsert = curr+2; + hashLong[ZSTD_hashPtr(base+indexToInsert, hBitsL, 8)] = indexToInsert; + hashLong[ZSTD_hashPtr(ip-2, hBitsL, 8)] = (U32)(ip-2-base); + hashSmall[ZSTD_hashPtr(base+indexToInsert, hBitsS, mls)] = indexToInsert; + hashSmall[ZSTD_hashPtr(ip-1, hBitsS, mls)] = (U32)(ip-1-base); + } + + /* check immediate repcode */ + if (dictMode == ZSTD_dictMatchState) { + while (ip <= ilimit) { + U32 const current2 = (U32)(ip-base); + U32 const repIndex2 = current2 - offset_2; + const BYTE* repMatch2 = dictMode == ZSTD_dictMatchState + && repIndex2 < prefixLowestIndex ? + dictBase + repIndex2 - dictIndexDelta : + base + repIndex2; + if ( ((U32)((prefixLowestIndex-1) - (U32)repIndex2) >= 3 /* intentional overflow */) + && (MEM_read32(repMatch2) == MEM_read32(ip)) ) { + const BYTE* const repEnd2 = repIndex2 < prefixLowestIndex ? dictEnd : iend; + size_t const repLength2 = ZSTD_count_2segments(ip+4, repMatch2+4, iend, repEnd2, prefixLowest) + 4; + U32 tmpOffset = offset_2; offset_2 = offset_1; offset_1 = tmpOffset; /* swap offset_2 <=> offset_1 */ + ZSTD_storeSeq(seqStore, 0, anchor, iend, 0, repLength2-MINMATCH); + hashSmall[ZSTD_hashPtr(ip, hBitsS, mls)] = current2; + hashLong[ZSTD_hashPtr(ip, hBitsL, 8)] = current2; + ip += repLength2; + anchor = ip; + continue; + } + break; + } } + + if (dictMode == ZSTD_noDict) { + while ( (ip <= ilimit) + && ( (offset_2>0) + & (MEM_read32(ip) == MEM_read32(ip - offset_2)) )) { + /* store sequence */ + size_t const rLength = ZSTD_count(ip+4, ip+4-offset_2, iend) + 4; + U32 const tmpOff = offset_2; offset_2 = offset_1; offset_1 = tmpOff; /* swap offset_2 <=> offset_1 */ + hashSmall[ZSTD_hashPtr(ip, hBitsS, mls)] = (U32)(ip-base); + hashLong[ZSTD_hashPtr(ip, hBitsL, 8)] = (U32)(ip-base); + ZSTD_storeSeq(seqStore, 0, anchor, iend, 0, rLength-MINMATCH); + ip += rLength; + anchor = ip; + continue; /* faster when present ... (?) */ + } } } + } /* while (ip < ilimit) */ + + /* save reps for next block */ + rep[0] = offset_1 ? offset_1 : offsetSaved; + rep[1] = offset_2 ? offset_2 : offsetSaved; + + /* Return the last literals size */ + return (size_t)(iend - anchor); +} + + +size_t ZSTD_compressBlock_doubleFast( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize) +{ + const U32 mls = ms->cParams.minMatch; + switch(mls) + { + default: /* includes case 3 */ + case 4 : + return ZSTD_compressBlock_doubleFast_generic(ms, seqStore, rep, src, srcSize, 4, ZSTD_noDict); + case 5 : + return ZSTD_compressBlock_doubleFast_generic(ms, seqStore, rep, src, srcSize, 5, ZSTD_noDict); + case 6 : + return ZSTD_compressBlock_doubleFast_generic(ms, seqStore, rep, src, srcSize, 6, ZSTD_noDict); + case 7 : + return ZSTD_compressBlock_doubleFast_generic(ms, seqStore, rep, src, srcSize, 7, ZSTD_noDict); + } +} + + +size_t ZSTD_compressBlock_doubleFast_dictMatchState( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize) +{ + const U32 mls = ms->cParams.minMatch; + switch(mls) + { + default: /* includes case 3 */ + case 4 : + return ZSTD_compressBlock_doubleFast_generic(ms, seqStore, rep, src, srcSize, 4, ZSTD_dictMatchState); + case 5 : + return ZSTD_compressBlock_doubleFast_generic(ms, seqStore, rep, src, srcSize, 5, ZSTD_dictMatchState); + case 6 : + return ZSTD_compressBlock_doubleFast_generic(ms, seqStore, rep, src, srcSize, 6, ZSTD_dictMatchState); + case 7 : + return ZSTD_compressBlock_doubleFast_generic(ms, seqStore, rep, src, srcSize, 7, ZSTD_dictMatchState); + } +} + + +static size_t ZSTD_compressBlock_doubleFast_extDict_generic( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize, + U32 const mls /* template */) +{ + ZSTD_compressionParameters const* cParams = &ms->cParams; + U32* const hashLong = ms->hashTable; + U32 const hBitsL = cParams->hashLog; + U32* const hashSmall = ms->chainTable; + U32 const hBitsS = cParams->chainLog; + const BYTE* const istart = (const BYTE*)src; + const BYTE* ip = istart; + const BYTE* anchor = istart; + const BYTE* const iend = istart + srcSize; + const BYTE* const ilimit = iend - 8; + const BYTE* const base = ms->window.base; + const U32 endIndex = (U32)((size_t)(istart - base) + srcSize); + const U32 lowLimit = ZSTD_getLowestMatchIndex(ms, endIndex, cParams->windowLog); + const U32 dictStartIndex = lowLimit; + const U32 dictLimit = ms->window.dictLimit; + const U32 prefixStartIndex = (dictLimit > lowLimit) ? dictLimit : lowLimit; + const BYTE* const prefixStart = base + prefixStartIndex; + const BYTE* const dictBase = ms->window.dictBase; + const BYTE* const dictStart = dictBase + dictStartIndex; + const BYTE* const dictEnd = dictBase + prefixStartIndex; + U32 offset_1=rep[0], offset_2=rep[1]; + + DEBUGLOG(5, "ZSTD_compressBlock_doubleFast_extDict_generic (srcSize=%zu)", srcSize); + + /* if extDict is invalidated due to maxDistance, switch to "regular" variant */ + if (prefixStartIndex == dictStartIndex) + return ZSTD_compressBlock_doubleFast_generic(ms, seqStore, rep, src, srcSize, mls, ZSTD_noDict); + + /* Search Loop */ + while (ip < ilimit) { /* < instead of <=, because (ip+1) */ + const size_t hSmall = ZSTD_hashPtr(ip, hBitsS, mls); + const U32 matchIndex = hashSmall[hSmall]; + const BYTE* const matchBase = matchIndex < prefixStartIndex ? dictBase : base; + const BYTE* match = matchBase + matchIndex; + + const size_t hLong = ZSTD_hashPtr(ip, hBitsL, 8); + const U32 matchLongIndex = hashLong[hLong]; + const BYTE* const matchLongBase = matchLongIndex < prefixStartIndex ? dictBase : base; + const BYTE* matchLong = matchLongBase + matchLongIndex; + + const U32 curr = (U32)(ip-base); + const U32 repIndex = curr + 1 - offset_1; /* offset_1 expected <= curr +1 */ + const BYTE* const repBase = repIndex < prefixStartIndex ? dictBase : base; + const BYTE* const repMatch = repBase + repIndex; + size_t mLength; + hashSmall[hSmall] = hashLong[hLong] = curr; /* update hash table */ + + if ((((U32)((prefixStartIndex-1) - repIndex) >= 3) /* intentional underflow : ensure repIndex doesn't overlap dict + prefix */ + & (offset_1 < curr+1 - dictStartIndex)) /* note: we are searching at curr+1 */ + && (MEM_read32(repMatch) == MEM_read32(ip+1)) ) { + const BYTE* repMatchEnd = repIndex < prefixStartIndex ? dictEnd : iend; + mLength = ZSTD_count_2segments(ip+1+4, repMatch+4, iend, repMatchEnd, prefixStart) + 4; + ip++; + ZSTD_storeSeq(seqStore, (size_t)(ip-anchor), anchor, iend, 0, mLength-MINMATCH); + } else { + if ((matchLongIndex > dictStartIndex) && (MEM_read64(matchLong) == MEM_read64(ip))) { + const BYTE* const matchEnd = matchLongIndex < prefixStartIndex ? dictEnd : iend; + const BYTE* const lowMatchPtr = matchLongIndex < prefixStartIndex ? dictStart : prefixStart; + U32 offset; + mLength = ZSTD_count_2segments(ip+8, matchLong+8, iend, matchEnd, prefixStart) + 8; + offset = curr - matchLongIndex; + while (((ip>anchor) & (matchLong>lowMatchPtr)) && (ip[-1] == matchLong[-1])) { ip--; matchLong--; mLength++; } /* catch up */ + offset_2 = offset_1; + offset_1 = offset; + ZSTD_storeSeq(seqStore, (size_t)(ip-anchor), anchor, iend, offset + ZSTD_REP_MOVE, mLength-MINMATCH); + + } else if ((matchIndex > dictStartIndex) && (MEM_read32(match) == MEM_read32(ip))) { + size_t const h3 = ZSTD_hashPtr(ip+1, hBitsL, 8); + U32 const matchIndex3 = hashLong[h3]; + const BYTE* const match3Base = matchIndex3 < prefixStartIndex ? dictBase : base; + const BYTE* match3 = match3Base + matchIndex3; + U32 offset; + hashLong[h3] = curr + 1; + if ( (matchIndex3 > dictStartIndex) && (MEM_read64(match3) == MEM_read64(ip+1)) ) { + const BYTE* const matchEnd = matchIndex3 < prefixStartIndex ? dictEnd : iend; + const BYTE* const lowMatchPtr = matchIndex3 < prefixStartIndex ? dictStart : prefixStart; + mLength = ZSTD_count_2segments(ip+9, match3+8, iend, matchEnd, prefixStart) + 8; + ip++; + offset = curr+1 - matchIndex3; + while (((ip>anchor) & (match3>lowMatchPtr)) && (ip[-1] == match3[-1])) { ip--; match3--; mLength++; } /* catch up */ + } else { + const BYTE* const matchEnd = matchIndex < prefixStartIndex ? dictEnd : iend; + const BYTE* const lowMatchPtr = matchIndex < prefixStartIndex ? dictStart : prefixStart; + mLength = ZSTD_count_2segments(ip+4, match+4, iend, matchEnd, prefixStart) + 4; + offset = curr - matchIndex; + while (((ip>anchor) & (match>lowMatchPtr)) && (ip[-1] == match[-1])) { ip--; match--; mLength++; } /* catch up */ + } + offset_2 = offset_1; + offset_1 = offset; + ZSTD_storeSeq(seqStore, (size_t)(ip-anchor), anchor, iend, offset + ZSTD_REP_MOVE, mLength-MINMATCH); + + } else { + ip += ((ip-anchor) >> kSearchStrength) + 1; + continue; + } } + + /* move to next sequence start */ + ip += mLength; + anchor = ip; + + if (ip <= ilimit) { + /* Complementary insertion */ + /* done after iLimit test, as candidates could be > iend-8 */ + { U32 const indexToInsert = curr+2; + hashLong[ZSTD_hashPtr(base+indexToInsert, hBitsL, 8)] = indexToInsert; + hashLong[ZSTD_hashPtr(ip-2, hBitsL, 8)] = (U32)(ip-2-base); + hashSmall[ZSTD_hashPtr(base+indexToInsert, hBitsS, mls)] = indexToInsert; + hashSmall[ZSTD_hashPtr(ip-1, hBitsS, mls)] = (U32)(ip-1-base); + } + + /* check immediate repcode */ + while (ip <= ilimit) { + U32 const current2 = (U32)(ip-base); + U32 const repIndex2 = current2 - offset_2; + const BYTE* repMatch2 = repIndex2 < prefixStartIndex ? dictBase + repIndex2 : base + repIndex2; + if ( (((U32)((prefixStartIndex-1) - repIndex2) >= 3) /* intentional overflow : ensure repIndex2 doesn't overlap dict + prefix */ + & (offset_2 < current2 - dictStartIndex)) + && (MEM_read32(repMatch2) == MEM_read32(ip)) ) { + const BYTE* const repEnd2 = repIndex2 < prefixStartIndex ? dictEnd : iend; + size_t const repLength2 = ZSTD_count_2segments(ip+4, repMatch2+4, iend, repEnd2, prefixStart) + 4; + U32 const tmpOffset = offset_2; offset_2 = offset_1; offset_1 = tmpOffset; /* swap offset_2 <=> offset_1 */ + ZSTD_storeSeq(seqStore, 0, anchor, iend, 0, repLength2-MINMATCH); + hashSmall[ZSTD_hashPtr(ip, hBitsS, mls)] = current2; + hashLong[ZSTD_hashPtr(ip, hBitsL, 8)] = current2; + ip += repLength2; + anchor = ip; + continue; + } + break; + } } } + + /* save reps for next block */ + rep[0] = offset_1; + rep[1] = offset_2; + + /* Return the last literals size */ + return (size_t)(iend - anchor); +} + + +size_t ZSTD_compressBlock_doubleFast_extDict( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize) +{ + U32 const mls = ms->cParams.minMatch; + switch(mls) + { + default: /* includes case 3 */ + case 4 : + return ZSTD_compressBlock_doubleFast_extDict_generic(ms, seqStore, rep, src, srcSize, 4); + case 5 : + return ZSTD_compressBlock_doubleFast_extDict_generic(ms, seqStore, rep, src, srcSize, 5); + case 6 : + return ZSTD_compressBlock_doubleFast_extDict_generic(ms, seqStore, rep, src, srcSize, 6); + case 7 : + return ZSTD_compressBlock_doubleFast_extDict_generic(ms, seqStore, rep, src, srcSize, 7); + } +} diff --git a/dependencies/zstd-1.5.0/lib/compress/zstd_double_fast.h b/dependencies/zstd-1.5.0/lib/compress/zstd_double_fast.h new file mode 100644 index 0000000..e16b7b0 --- /dev/null +++ b/dependencies/zstd-1.5.0/lib/compress/zstd_double_fast.h @@ -0,0 +1,38 @@ +/* + * Copyright (c) Yann Collet, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + +#ifndef ZSTD_DOUBLE_FAST_H +#define ZSTD_DOUBLE_FAST_H + +#if defined (__cplusplus) +extern "C" { +#endif + +#include "../common/mem.h" /* U32 */ +#include "zstd_compress_internal.h" /* ZSTD_CCtx, size_t */ + +void ZSTD_fillDoubleHashTable(ZSTD_matchState_t* ms, + void const* end, ZSTD_dictTableLoadMethod_e dtlm); +size_t ZSTD_compressBlock_doubleFast( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize); +size_t ZSTD_compressBlock_doubleFast_dictMatchState( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize); +size_t ZSTD_compressBlock_doubleFast_extDict( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize); + + +#if defined (__cplusplus) +} +#endif + +#endif /* ZSTD_DOUBLE_FAST_H */ diff --git a/dependencies/zstd-1.5.0/lib/compress/zstd_fast.c b/dependencies/zstd-1.5.0/lib/compress/zstd_fast.c new file mode 100644 index 0000000..4edc04d --- /dev/null +++ b/dependencies/zstd-1.5.0/lib/compress/zstd_fast.c @@ -0,0 +1,496 @@ +/* + * Copyright (c) Yann Collet, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + +#include "zstd_compress_internal.h" /* ZSTD_hashPtr, ZSTD_count, ZSTD_storeSeq */ +#include "zstd_fast.h" + + +void ZSTD_fillHashTable(ZSTD_matchState_t* ms, + const void* const end, + ZSTD_dictTableLoadMethod_e dtlm) +{ + const ZSTD_compressionParameters* const cParams = &ms->cParams; + U32* const hashTable = ms->hashTable; + U32 const hBits = cParams->hashLog; + U32 const mls = cParams->minMatch; + const BYTE* const base = ms->window.base; + const BYTE* ip = base + ms->nextToUpdate; + const BYTE* const iend = ((const BYTE*)end) - HASH_READ_SIZE; + const U32 fastHashFillStep = 3; + + /* Always insert every fastHashFillStep position into the hash table. + * Insert the other positions if their hash entry is empty. + */ + for ( ; ip + fastHashFillStep < iend + 2; ip += fastHashFillStep) { + U32 const curr = (U32)(ip - base); + size_t const hash0 = ZSTD_hashPtr(ip, hBits, mls); + hashTable[hash0] = curr; + if (dtlm == ZSTD_dtlm_fast) continue; + /* Only load extra positions for ZSTD_dtlm_full */ + { U32 p; + for (p = 1; p < fastHashFillStep; ++p) { + size_t const hash = ZSTD_hashPtr(ip + p, hBits, mls); + if (hashTable[hash] == 0) { /* not yet filled */ + hashTable[hash] = curr + p; + } } } } +} + + +FORCE_INLINE_TEMPLATE size_t +ZSTD_compressBlock_fast_generic( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize, + U32 const mls) +{ + const ZSTD_compressionParameters* const cParams = &ms->cParams; + U32* const hashTable = ms->hashTable; + U32 const hlog = cParams->hashLog; + /* support stepSize of 0 */ + size_t const stepSize = cParams->targetLength + !(cParams->targetLength) + 1; + const BYTE* const base = ms->window.base; + const BYTE* const istart = (const BYTE*)src; + /* We check ip0 (ip + 0) and ip1 (ip + 1) each loop */ + const BYTE* ip0 = istart; + const BYTE* ip1; + const BYTE* anchor = istart; + const U32 endIndex = (U32)((size_t)(istart - base) + srcSize); + const U32 prefixStartIndex = ZSTD_getLowestPrefixIndex(ms, endIndex, cParams->windowLog); + const BYTE* const prefixStart = base + prefixStartIndex; + const BYTE* const iend = istart + srcSize; + const BYTE* const ilimit = iend - HASH_READ_SIZE; + U32 offset_1=rep[0], offset_2=rep[1]; + U32 offsetSaved = 0; + + /* init */ + DEBUGLOG(5, "ZSTD_compressBlock_fast_generic"); + ip0 += (ip0 == prefixStart); + ip1 = ip0 + 1; + { U32 const curr = (U32)(ip0 - base); + U32 const windowLow = ZSTD_getLowestPrefixIndex(ms, curr, cParams->windowLog); + U32 const maxRep = curr - windowLow; + if (offset_2 > maxRep) offsetSaved = offset_2, offset_2 = 0; + if (offset_1 > maxRep) offsetSaved = offset_1, offset_1 = 0; + } + + /* Main Search Loop */ +#ifdef __INTEL_COMPILER + /* From intel 'The vector pragma indicates that the loop should be + * vectorized if it is legal to do so'. Can be used together with + * #pragma ivdep (but have opted to exclude that because intel + * warns against using it).*/ + #pragma vector always +#endif + while (ip1 < ilimit) { /* < instead of <=, because check at ip0+2 */ + size_t mLength; + BYTE const* ip2 = ip0 + 2; + size_t const h0 = ZSTD_hashPtr(ip0, hlog, mls); + U32 const val0 = MEM_read32(ip0); + size_t const h1 = ZSTD_hashPtr(ip1, hlog, mls); + U32 const val1 = MEM_read32(ip1); + U32 const current0 = (U32)(ip0-base); + U32 const current1 = (U32)(ip1-base); + U32 const matchIndex0 = hashTable[h0]; + U32 const matchIndex1 = hashTable[h1]; + BYTE const* repMatch = ip2 - offset_1; + const BYTE* match0 = base + matchIndex0; + const BYTE* match1 = base + matchIndex1; + U32 offcode; + +#if defined(__aarch64__) + PREFETCH_L1(ip0+256); +#endif + + hashTable[h0] = current0; /* update hash table */ + hashTable[h1] = current1; /* update hash table */ + + assert(ip0 + 1 == ip1); + + if ((offset_1 > 0) & (MEM_read32(repMatch) == MEM_read32(ip2))) { + mLength = (ip2[-1] == repMatch[-1]) ? 1 : 0; + ip0 = ip2 - mLength; + match0 = repMatch - mLength; + mLength += 4; + offcode = 0; + goto _match; + } + if ((matchIndex0 > prefixStartIndex) && MEM_read32(match0) == val0) { + /* found a regular match */ + goto _offset; + } + if ((matchIndex1 > prefixStartIndex) && MEM_read32(match1) == val1) { + /* found a regular match after one literal */ + ip0 = ip1; + match0 = match1; + goto _offset; + } + { size_t const step = ((size_t)(ip0-anchor) >> (kSearchStrength - 1)) + stepSize; + assert(step >= 2); + ip0 += step; + ip1 += step; + continue; + } +_offset: /* Requires: ip0, match0 */ + /* Compute the offset code */ + offset_2 = offset_1; + offset_1 = (U32)(ip0-match0); + offcode = offset_1 + ZSTD_REP_MOVE; + mLength = 4; + /* Count the backwards match length */ + while (((ip0>anchor) & (match0>prefixStart)) + && (ip0[-1] == match0[-1])) { ip0--; match0--; mLength++; } /* catch up */ + +_match: /* Requires: ip0, match0, offcode */ + /* Count the forward length */ + mLength += ZSTD_count(ip0+mLength, match0+mLength, iend); + ZSTD_storeSeq(seqStore, (size_t)(ip0-anchor), anchor, iend, offcode, mLength-MINMATCH); + /* match found */ + ip0 += mLength; + anchor = ip0; + + if (ip0 <= ilimit) { + /* Fill Table */ + assert(base+current0+2 > istart); /* check base overflow */ + hashTable[ZSTD_hashPtr(base+current0+2, hlog, mls)] = current0+2; /* here because current+2 could be > iend-8 */ + hashTable[ZSTD_hashPtr(ip0-2, hlog, mls)] = (U32)(ip0-2-base); + + if (offset_2 > 0) { /* offset_2==0 means offset_2 is invalidated */ + while ( (ip0 <= ilimit) && (MEM_read32(ip0) == MEM_read32(ip0 - offset_2)) ) { + /* store sequence */ + size_t const rLength = ZSTD_count(ip0+4, ip0+4-offset_2, iend) + 4; + { U32 const tmpOff = offset_2; offset_2 = offset_1; offset_1 = tmpOff; } /* swap offset_2 <=> offset_1 */ + hashTable[ZSTD_hashPtr(ip0, hlog, mls)] = (U32)(ip0-base); + ip0 += rLength; + ZSTD_storeSeq(seqStore, 0 /*litLen*/, anchor, iend, 0 /*offCode*/, rLength-MINMATCH); + anchor = ip0; + continue; /* faster when present (confirmed on gcc-8) ... (?) */ + } } } + ip1 = ip0 + 1; + } + + /* save reps for next block */ + rep[0] = offset_1 ? offset_1 : offsetSaved; + rep[1] = offset_2 ? offset_2 : offsetSaved; + + /* Return the last literals size */ + return (size_t)(iend - anchor); +} + + +size_t ZSTD_compressBlock_fast( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize) +{ + U32 const mls = ms->cParams.minMatch; + assert(ms->dictMatchState == NULL); + switch(mls) + { + default: /* includes case 3 */ + case 4 : + return ZSTD_compressBlock_fast_generic(ms, seqStore, rep, src, srcSize, 4); + case 5 : + return ZSTD_compressBlock_fast_generic(ms, seqStore, rep, src, srcSize, 5); + case 6 : + return ZSTD_compressBlock_fast_generic(ms, seqStore, rep, src, srcSize, 6); + case 7 : + return ZSTD_compressBlock_fast_generic(ms, seqStore, rep, src, srcSize, 7); + } +} + +FORCE_INLINE_TEMPLATE +size_t ZSTD_compressBlock_fast_dictMatchState_generic( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize, U32 const mls) +{ + const ZSTD_compressionParameters* const cParams = &ms->cParams; + U32* const hashTable = ms->hashTable; + U32 const hlog = cParams->hashLog; + /* support stepSize of 0 */ + U32 const stepSize = cParams->targetLength + !(cParams->targetLength); + const BYTE* const base = ms->window.base; + const BYTE* const istart = (const BYTE*)src; + const BYTE* ip = istart; + const BYTE* anchor = istart; + const U32 prefixStartIndex = ms->window.dictLimit; + const BYTE* const prefixStart = base + prefixStartIndex; + const BYTE* const iend = istart + srcSize; + const BYTE* const ilimit = iend - HASH_READ_SIZE; + U32 offset_1=rep[0], offset_2=rep[1]; + U32 offsetSaved = 0; + + const ZSTD_matchState_t* const dms = ms->dictMatchState; + const ZSTD_compressionParameters* const dictCParams = &dms->cParams ; + const U32* const dictHashTable = dms->hashTable; + const U32 dictStartIndex = dms->window.dictLimit; + const BYTE* const dictBase = dms->window.base; + const BYTE* const dictStart = dictBase + dictStartIndex; + const BYTE* const dictEnd = dms->window.nextSrc; + const U32 dictIndexDelta = prefixStartIndex - (U32)(dictEnd - dictBase); + const U32 dictAndPrefixLength = (U32)(ip - prefixStart + dictEnd - dictStart); + const U32 dictHLog = dictCParams->hashLog; + + /* if a dictionary is still attached, it necessarily means that + * it is within window size. So we just check it. */ + const U32 maxDistance = 1U << cParams->windowLog; + const U32 endIndex = (U32)((size_t)(ip - base) + srcSize); + assert(endIndex - prefixStartIndex <= maxDistance); + (void)maxDistance; (void)endIndex; /* these variables are not used when assert() is disabled */ + + /* ensure there will be no underflow + * when translating a dict index into a local index */ + assert(prefixStartIndex >= (U32)(dictEnd - dictBase)); + + /* init */ + DEBUGLOG(5, "ZSTD_compressBlock_fast_dictMatchState_generic"); + ip += (dictAndPrefixLength == 0); + /* dictMatchState repCode checks don't currently handle repCode == 0 + * disabling. */ + assert(offset_1 <= dictAndPrefixLength); + assert(offset_2 <= dictAndPrefixLength); + + /* Main Search Loop */ + while (ip < ilimit) { /* < instead of <=, because repcode check at (ip+1) */ + size_t mLength; + size_t const h = ZSTD_hashPtr(ip, hlog, mls); + U32 const curr = (U32)(ip-base); + U32 const matchIndex = hashTable[h]; + const BYTE* match = base + matchIndex; + const U32 repIndex = curr + 1 - offset_1; + const BYTE* repMatch = (repIndex < prefixStartIndex) ? + dictBase + (repIndex - dictIndexDelta) : + base + repIndex; + hashTable[h] = curr; /* update hash table */ + + if ( ((U32)((prefixStartIndex-1) - repIndex) >= 3) /* intentional underflow : ensure repIndex isn't overlapping dict + prefix */ + && (MEM_read32(repMatch) == MEM_read32(ip+1)) ) { + const BYTE* const repMatchEnd = repIndex < prefixStartIndex ? dictEnd : iend; + mLength = ZSTD_count_2segments(ip+1+4, repMatch+4, iend, repMatchEnd, prefixStart) + 4; + ip++; + ZSTD_storeSeq(seqStore, (size_t)(ip-anchor), anchor, iend, 0, mLength-MINMATCH); + } else if ( (matchIndex <= prefixStartIndex) ) { + size_t const dictHash = ZSTD_hashPtr(ip, dictHLog, mls); + U32 const dictMatchIndex = dictHashTable[dictHash]; + const BYTE* dictMatch = dictBase + dictMatchIndex; + if (dictMatchIndex <= dictStartIndex || + MEM_read32(dictMatch) != MEM_read32(ip)) { + assert(stepSize >= 1); + ip += ((ip-anchor) >> kSearchStrength) + stepSize; + continue; + } else { + /* found a dict match */ + U32 const offset = (U32)(curr-dictMatchIndex-dictIndexDelta); + mLength = ZSTD_count_2segments(ip+4, dictMatch+4, iend, dictEnd, prefixStart) + 4; + while (((ip>anchor) & (dictMatch>dictStart)) + && (ip[-1] == dictMatch[-1])) { + ip--; dictMatch--; mLength++; + } /* catch up */ + offset_2 = offset_1; + offset_1 = offset; + ZSTD_storeSeq(seqStore, (size_t)(ip-anchor), anchor, iend, offset + ZSTD_REP_MOVE, mLength-MINMATCH); + } + } else if (MEM_read32(match) != MEM_read32(ip)) { + /* it's not a match, and we're not going to check the dictionary */ + assert(stepSize >= 1); + ip += ((ip-anchor) >> kSearchStrength) + stepSize; + continue; + } else { + /* found a regular match */ + U32 const offset = (U32)(ip-match); + mLength = ZSTD_count(ip+4, match+4, iend) + 4; + while (((ip>anchor) & (match>prefixStart)) + && (ip[-1] == match[-1])) { ip--; match--; mLength++; } /* catch up */ + offset_2 = offset_1; + offset_1 = offset; + ZSTD_storeSeq(seqStore, (size_t)(ip-anchor), anchor, iend, offset + ZSTD_REP_MOVE, mLength-MINMATCH); + } + + /* match found */ + ip += mLength; + anchor = ip; + + if (ip <= ilimit) { + /* Fill Table */ + assert(base+curr+2 > istart); /* check base overflow */ + hashTable[ZSTD_hashPtr(base+curr+2, hlog, mls)] = curr+2; /* here because curr+2 could be > iend-8 */ + hashTable[ZSTD_hashPtr(ip-2, hlog, mls)] = (U32)(ip-2-base); + + /* check immediate repcode */ + while (ip <= ilimit) { + U32 const current2 = (U32)(ip-base); + U32 const repIndex2 = current2 - offset_2; + const BYTE* repMatch2 = repIndex2 < prefixStartIndex ? + dictBase - dictIndexDelta + repIndex2 : + base + repIndex2; + if ( ((U32)((prefixStartIndex-1) - (U32)repIndex2) >= 3 /* intentional overflow */) + && (MEM_read32(repMatch2) == MEM_read32(ip)) ) { + const BYTE* const repEnd2 = repIndex2 < prefixStartIndex ? dictEnd : iend; + size_t const repLength2 = ZSTD_count_2segments(ip+4, repMatch2+4, iend, repEnd2, prefixStart) + 4; + U32 tmpOffset = offset_2; offset_2 = offset_1; offset_1 = tmpOffset; /* swap offset_2 <=> offset_1 */ + ZSTD_storeSeq(seqStore, 0, anchor, iend, 0, repLength2-MINMATCH); + hashTable[ZSTD_hashPtr(ip, hlog, mls)] = current2; + ip += repLength2; + anchor = ip; + continue; + } + break; + } + } + } + + /* save reps for next block */ + rep[0] = offset_1 ? offset_1 : offsetSaved; + rep[1] = offset_2 ? offset_2 : offsetSaved; + + /* Return the last literals size */ + return (size_t)(iend - anchor); +} + +size_t ZSTD_compressBlock_fast_dictMatchState( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize) +{ + U32 const mls = ms->cParams.minMatch; + assert(ms->dictMatchState != NULL); + switch(mls) + { + default: /* includes case 3 */ + case 4 : + return ZSTD_compressBlock_fast_dictMatchState_generic(ms, seqStore, rep, src, srcSize, 4); + case 5 : + return ZSTD_compressBlock_fast_dictMatchState_generic(ms, seqStore, rep, src, srcSize, 5); + case 6 : + return ZSTD_compressBlock_fast_dictMatchState_generic(ms, seqStore, rep, src, srcSize, 6); + case 7 : + return ZSTD_compressBlock_fast_dictMatchState_generic(ms, seqStore, rep, src, srcSize, 7); + } +} + + +static size_t ZSTD_compressBlock_fast_extDict_generic( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize, U32 const mls) +{ + const ZSTD_compressionParameters* const cParams = &ms->cParams; + U32* const hashTable = ms->hashTable; + U32 const hlog = cParams->hashLog; + /* support stepSize of 0 */ + U32 const stepSize = cParams->targetLength + !(cParams->targetLength); + const BYTE* const base = ms->window.base; + const BYTE* const dictBase = ms->window.dictBase; + const BYTE* const istart = (const BYTE*)src; + const BYTE* ip = istart; + const BYTE* anchor = istart; + const U32 endIndex = (U32)((size_t)(istart - base) + srcSize); + const U32 lowLimit = ZSTD_getLowestMatchIndex(ms, endIndex, cParams->windowLog); + const U32 dictStartIndex = lowLimit; + const BYTE* const dictStart = dictBase + dictStartIndex; + const U32 dictLimit = ms->window.dictLimit; + const U32 prefixStartIndex = dictLimit < lowLimit ? lowLimit : dictLimit; + const BYTE* const prefixStart = base + prefixStartIndex; + const BYTE* const dictEnd = dictBase + prefixStartIndex; + const BYTE* const iend = istart + srcSize; + const BYTE* const ilimit = iend - 8; + U32 offset_1=rep[0], offset_2=rep[1]; + + DEBUGLOG(5, "ZSTD_compressBlock_fast_extDict_generic (offset_1=%u)", offset_1); + + /* switch to "regular" variant if extDict is invalidated due to maxDistance */ + if (prefixStartIndex == dictStartIndex) + return ZSTD_compressBlock_fast_generic(ms, seqStore, rep, src, srcSize, mls); + + /* Search Loop */ + while (ip < ilimit) { /* < instead of <=, because (ip+1) */ + const size_t h = ZSTD_hashPtr(ip, hlog, mls); + const U32 matchIndex = hashTable[h]; + const BYTE* const matchBase = matchIndex < prefixStartIndex ? dictBase : base; + const BYTE* match = matchBase + matchIndex; + const U32 curr = (U32)(ip-base); + const U32 repIndex = curr + 1 - offset_1; + const BYTE* const repBase = repIndex < prefixStartIndex ? dictBase : base; + const BYTE* const repMatch = repBase + repIndex; + hashTable[h] = curr; /* update hash table */ + DEBUGLOG(7, "offset_1 = %u , curr = %u", offset_1, curr); + + if ( ( ((U32)((prefixStartIndex-1) - repIndex) >= 3) /* intentional underflow */ + & (offset_1 < curr+1 - dictStartIndex) ) /* note: we are searching at curr+1 */ + && (MEM_read32(repMatch) == MEM_read32(ip+1)) ) { + const BYTE* const repMatchEnd = repIndex < prefixStartIndex ? dictEnd : iend; + size_t const rLength = ZSTD_count_2segments(ip+1 +4, repMatch +4, iend, repMatchEnd, prefixStart) + 4; + ip++; + ZSTD_storeSeq(seqStore, (size_t)(ip-anchor), anchor, iend, 0, rLength-MINMATCH); + ip += rLength; + anchor = ip; + } else { + if ( (matchIndex < dictStartIndex) || + (MEM_read32(match) != MEM_read32(ip)) ) { + assert(stepSize >= 1); + ip += ((ip-anchor) >> kSearchStrength) + stepSize; + continue; + } + { const BYTE* const matchEnd = matchIndex < prefixStartIndex ? dictEnd : iend; + const BYTE* const lowMatchPtr = matchIndex < prefixStartIndex ? dictStart : prefixStart; + U32 const offset = curr - matchIndex; + size_t mLength = ZSTD_count_2segments(ip+4, match+4, iend, matchEnd, prefixStart) + 4; + while (((ip>anchor) & (match>lowMatchPtr)) && (ip[-1] == match[-1])) { ip--; match--; mLength++; } /* catch up */ + offset_2 = offset_1; offset_1 = offset; /* update offset history */ + ZSTD_storeSeq(seqStore, (size_t)(ip-anchor), anchor, iend, offset + ZSTD_REP_MOVE, mLength-MINMATCH); + ip += mLength; + anchor = ip; + } } + + if (ip <= ilimit) { + /* Fill Table */ + hashTable[ZSTD_hashPtr(base+curr+2, hlog, mls)] = curr+2; + hashTable[ZSTD_hashPtr(ip-2, hlog, mls)] = (U32)(ip-2-base); + /* check immediate repcode */ + while (ip <= ilimit) { + U32 const current2 = (U32)(ip-base); + U32 const repIndex2 = current2 - offset_2; + const BYTE* const repMatch2 = repIndex2 < prefixStartIndex ? dictBase + repIndex2 : base + repIndex2; + if ( (((U32)((prefixStartIndex-1) - repIndex2) >= 3) & (offset_2 < curr - dictStartIndex)) /* intentional overflow */ + && (MEM_read32(repMatch2) == MEM_read32(ip)) ) { + const BYTE* const repEnd2 = repIndex2 < prefixStartIndex ? dictEnd : iend; + size_t const repLength2 = ZSTD_count_2segments(ip+4, repMatch2+4, iend, repEnd2, prefixStart) + 4; + { U32 const tmpOffset = offset_2; offset_2 = offset_1; offset_1 = tmpOffset; } /* swap offset_2 <=> offset_1 */ + ZSTD_storeSeq(seqStore, 0 /*litlen*/, anchor, iend, 0 /*offcode*/, repLength2-MINMATCH); + hashTable[ZSTD_hashPtr(ip, hlog, mls)] = current2; + ip += repLength2; + anchor = ip; + continue; + } + break; + } } } + + /* save reps for next block */ + rep[0] = offset_1; + rep[1] = offset_2; + + /* Return the last literals size */ + return (size_t)(iend - anchor); +} + + +size_t ZSTD_compressBlock_fast_extDict( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize) +{ + U32 const mls = ms->cParams.minMatch; + switch(mls) + { + default: /* includes case 3 */ + case 4 : + return ZSTD_compressBlock_fast_extDict_generic(ms, seqStore, rep, src, srcSize, 4); + case 5 : + return ZSTD_compressBlock_fast_extDict_generic(ms, seqStore, rep, src, srcSize, 5); + case 6 : + return ZSTD_compressBlock_fast_extDict_generic(ms, seqStore, rep, src, srcSize, 6); + case 7 : + return ZSTD_compressBlock_fast_extDict_generic(ms, seqStore, rep, src, srcSize, 7); + } +} diff --git a/dependencies/zstd-1.5.0/lib/compress/zstd_fast.h b/dependencies/zstd-1.5.0/lib/compress/zstd_fast.h new file mode 100644 index 0000000..0d4a0c1 --- /dev/null +++ b/dependencies/zstd-1.5.0/lib/compress/zstd_fast.h @@ -0,0 +1,37 @@ +/* + * Copyright (c) Yann Collet, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + +#ifndef ZSTD_FAST_H +#define ZSTD_FAST_H + +#if defined (__cplusplus) +extern "C" { +#endif + +#include "../common/mem.h" /* U32 */ +#include "zstd_compress_internal.h" + +void ZSTD_fillHashTable(ZSTD_matchState_t* ms, + void const* end, ZSTD_dictTableLoadMethod_e dtlm); +size_t ZSTD_compressBlock_fast( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize); +size_t ZSTD_compressBlock_fast_dictMatchState( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize); +size_t ZSTD_compressBlock_fast_extDict( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize); + +#if defined (__cplusplus) +} +#endif + +#endif /* ZSTD_FAST_H */ diff --git a/dependencies/zstd-1.5.0/lib/compress/zstd_lazy.c b/dependencies/zstd-1.5.0/lib/compress/zstd_lazy.c new file mode 100644 index 0000000..3d523e8 --- /dev/null +++ b/dependencies/zstd-1.5.0/lib/compress/zstd_lazy.c @@ -0,0 +1,2184 @@ +/* + * Copyright (c) Yann Collet, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + +#include "zstd_compress_internal.h" +#include "zstd_lazy.h" + + +/*-************************************* +* Binary Tree search +***************************************/ + +static void +ZSTD_updateDUBT(ZSTD_matchState_t* ms, + const BYTE* ip, const BYTE* iend, + U32 mls) +{ + const ZSTD_compressionParameters* const cParams = &ms->cParams; + U32* const hashTable = ms->hashTable; + U32 const hashLog = cParams->hashLog; + + U32* const bt = ms->chainTable; + U32 const btLog = cParams->chainLog - 1; + U32 const btMask = (1 << btLog) - 1; + + const BYTE* const base = ms->window.base; + U32 const target = (U32)(ip - base); + U32 idx = ms->nextToUpdate; + + if (idx != target) + DEBUGLOG(7, "ZSTD_updateDUBT, from %u to %u (dictLimit:%u)", + idx, target, ms->window.dictLimit); + assert(ip + 8 <= iend); /* condition for ZSTD_hashPtr */ + (void)iend; + + assert(idx >= ms->window.dictLimit); /* condition for valid base+idx */ + for ( ; idx < target ; idx++) { + size_t const h = ZSTD_hashPtr(base + idx, hashLog, mls); /* assumption : ip + 8 <= iend */ + U32 const matchIndex = hashTable[h]; + + U32* const nextCandidatePtr = bt + 2*(idx&btMask); + U32* const sortMarkPtr = nextCandidatePtr + 1; + + DEBUGLOG(8, "ZSTD_updateDUBT: insert %u", idx); + hashTable[h] = idx; /* Update Hash Table */ + *nextCandidatePtr = matchIndex; /* update BT like a chain */ + *sortMarkPtr = ZSTD_DUBT_UNSORTED_MARK; + } + ms->nextToUpdate = target; +} + + +/** ZSTD_insertDUBT1() : + * sort one already inserted but unsorted position + * assumption : curr >= btlow == (curr - btmask) + * doesn't fail */ +static void +ZSTD_insertDUBT1(ZSTD_matchState_t* ms, + U32 curr, const BYTE* inputEnd, + U32 nbCompares, U32 btLow, + const ZSTD_dictMode_e dictMode) +{ + const ZSTD_compressionParameters* const cParams = &ms->cParams; + U32* const bt = ms->chainTable; + U32 const btLog = cParams->chainLog - 1; + U32 const btMask = (1 << btLog) - 1; + size_t commonLengthSmaller=0, commonLengthLarger=0; + const BYTE* const base = ms->window.base; + const BYTE* const dictBase = ms->window.dictBase; + const U32 dictLimit = ms->window.dictLimit; + const BYTE* const ip = (curr>=dictLimit) ? base + curr : dictBase + curr; + const BYTE* const iend = (curr>=dictLimit) ? inputEnd : dictBase + dictLimit; + const BYTE* const dictEnd = dictBase + dictLimit; + const BYTE* const prefixStart = base + dictLimit; + const BYTE* match; + U32* smallerPtr = bt + 2*(curr&btMask); + U32* largerPtr = smallerPtr + 1; + U32 matchIndex = *smallerPtr; /* this candidate is unsorted : next sorted candidate is reached through *smallerPtr, while *largerPtr contains previous unsorted candidate (which is already saved and can be overwritten) */ + U32 dummy32; /* to be nullified at the end */ + U32 const windowValid = ms->window.lowLimit; + U32 const maxDistance = 1U << cParams->windowLog; + U32 const windowLow = (curr - windowValid > maxDistance) ? curr - maxDistance : windowValid; + + + DEBUGLOG(8, "ZSTD_insertDUBT1(%u) (dictLimit=%u, lowLimit=%u)", + curr, dictLimit, windowLow); + assert(curr >= btLow); + assert(ip < iend); /* condition for ZSTD_count */ + + while (nbCompares-- && (matchIndex > windowLow)) { + U32* const nextPtr = bt + 2*(matchIndex & btMask); + size_t matchLength = MIN(commonLengthSmaller, commonLengthLarger); /* guaranteed minimum nb of common bytes */ + assert(matchIndex < curr); + /* note : all candidates are now supposed sorted, + * but it's still possible to have nextPtr[1] == ZSTD_DUBT_UNSORTED_MARK + * when a real index has the same value as ZSTD_DUBT_UNSORTED_MARK */ + + if ( (dictMode != ZSTD_extDict) + || (matchIndex+matchLength >= dictLimit) /* both in current segment*/ + || (curr < dictLimit) /* both in extDict */) { + const BYTE* const mBase = ( (dictMode != ZSTD_extDict) + || (matchIndex+matchLength >= dictLimit)) ? + base : dictBase; + assert( (matchIndex+matchLength >= dictLimit) /* might be wrong if extDict is incorrectly set to 0 */ + || (curr < dictLimit) ); + match = mBase + matchIndex; + matchLength += ZSTD_count(ip+matchLength, match+matchLength, iend); + } else { + match = dictBase + matchIndex; + matchLength += ZSTD_count_2segments(ip+matchLength, match+matchLength, iend, dictEnd, prefixStart); + if (matchIndex+matchLength >= dictLimit) + match = base + matchIndex; /* preparation for next read of match[matchLength] */ + } + + DEBUGLOG(8, "ZSTD_insertDUBT1: comparing %u with %u : found %u common bytes ", + curr, matchIndex, (U32)matchLength); + + if (ip+matchLength == iend) { /* equal : no way to know if inf or sup */ + break; /* drop , to guarantee consistency ; miss a bit of compression, but other solutions can corrupt tree */ + } + + if (match[matchLength] < ip[matchLength]) { /* necessarily within buffer */ + /* match is smaller than current */ + *smallerPtr = matchIndex; /* update smaller idx */ + commonLengthSmaller = matchLength; /* all smaller will now have at least this guaranteed common length */ + if (matchIndex <= btLow) { smallerPtr=&dummy32; break; } /* beyond tree size, stop searching */ + DEBUGLOG(8, "ZSTD_insertDUBT1: %u (>btLow=%u) is smaller : next => %u", + matchIndex, btLow, nextPtr[1]); + smallerPtr = nextPtr+1; /* new "candidate" => larger than match, which was smaller than target */ + matchIndex = nextPtr[1]; /* new matchIndex, larger than previous and closer to current */ + } else { + /* match is larger than current */ + *largerPtr = matchIndex; + commonLengthLarger = matchLength; + if (matchIndex <= btLow) { largerPtr=&dummy32; break; } /* beyond tree size, stop searching */ + DEBUGLOG(8, "ZSTD_insertDUBT1: %u (>btLow=%u) is larger => %u", + matchIndex, btLow, nextPtr[0]); + largerPtr = nextPtr; + matchIndex = nextPtr[0]; + } } + + *smallerPtr = *largerPtr = 0; +} + + +static size_t +ZSTD_DUBT_findBetterDictMatch ( + ZSTD_matchState_t* ms, + const BYTE* const ip, const BYTE* const iend, + size_t* offsetPtr, + size_t bestLength, + U32 nbCompares, + U32 const mls, + const ZSTD_dictMode_e dictMode) +{ + const ZSTD_matchState_t * const dms = ms->dictMatchState; + const ZSTD_compressionParameters* const dmsCParams = &dms->cParams; + const U32 * const dictHashTable = dms->hashTable; + U32 const hashLog = dmsCParams->hashLog; + size_t const h = ZSTD_hashPtr(ip, hashLog, mls); + U32 dictMatchIndex = dictHashTable[h]; + + const BYTE* const base = ms->window.base; + const BYTE* const prefixStart = base + ms->window.dictLimit; + U32 const curr = (U32)(ip-base); + const BYTE* const dictBase = dms->window.base; + const BYTE* const dictEnd = dms->window.nextSrc; + U32 const dictHighLimit = (U32)(dms->window.nextSrc - dms->window.base); + U32 const dictLowLimit = dms->window.lowLimit; + U32 const dictIndexDelta = ms->window.lowLimit - dictHighLimit; + + U32* const dictBt = dms->chainTable; + U32 const btLog = dmsCParams->chainLog - 1; + U32 const btMask = (1 << btLog) - 1; + U32 const btLow = (btMask >= dictHighLimit - dictLowLimit) ? dictLowLimit : dictHighLimit - btMask; + + size_t commonLengthSmaller=0, commonLengthLarger=0; + + (void)dictMode; + assert(dictMode == ZSTD_dictMatchState); + + while (nbCompares-- && (dictMatchIndex > dictLowLimit)) { + U32* const nextPtr = dictBt + 2*(dictMatchIndex & btMask); + size_t matchLength = MIN(commonLengthSmaller, commonLengthLarger); /* guaranteed minimum nb of common bytes */ + const BYTE* match = dictBase + dictMatchIndex; + matchLength += ZSTD_count_2segments(ip+matchLength, match+matchLength, iend, dictEnd, prefixStart); + if (dictMatchIndex+matchLength >= dictHighLimit) + match = base + dictMatchIndex + dictIndexDelta; /* to prepare for next usage of match[matchLength] */ + + if (matchLength > bestLength) { + U32 matchIndex = dictMatchIndex + dictIndexDelta; + if ( (4*(int)(matchLength-bestLength)) > (int)(ZSTD_highbit32(curr-matchIndex+1) - ZSTD_highbit32((U32)offsetPtr[0]+1)) ) { + DEBUGLOG(9, "ZSTD_DUBT_findBetterDictMatch(%u) : found better match length %u -> %u and offsetCode %u -> %u (dictMatchIndex %u, matchIndex %u)", + curr, (U32)bestLength, (U32)matchLength, (U32)*offsetPtr, ZSTD_REP_MOVE + curr - matchIndex, dictMatchIndex, matchIndex); + bestLength = matchLength, *offsetPtr = ZSTD_REP_MOVE + curr - matchIndex; + } + if (ip+matchLength == iend) { /* reached end of input : ip[matchLength] is not valid, no way to know if it's larger or smaller than match */ + break; /* drop, to guarantee consistency (miss a little bit of compression) */ + } + } + + if (match[matchLength] < ip[matchLength]) { + if (dictMatchIndex <= btLow) { break; } /* beyond tree size, stop the search */ + commonLengthSmaller = matchLength; /* all smaller will now have at least this guaranteed common length */ + dictMatchIndex = nextPtr[1]; /* new matchIndex larger than previous (closer to current) */ + } else { + /* match is larger than current */ + if (dictMatchIndex <= btLow) { break; } /* beyond tree size, stop the search */ + commonLengthLarger = matchLength; + dictMatchIndex = nextPtr[0]; + } + } + + if (bestLength >= MINMATCH) { + U32 const mIndex = curr - ((U32)*offsetPtr - ZSTD_REP_MOVE); (void)mIndex; + DEBUGLOG(8, "ZSTD_DUBT_findBetterDictMatch(%u) : found match of length %u and offsetCode %u (pos %u)", + curr, (U32)bestLength, (U32)*offsetPtr, mIndex); + } + return bestLength; + +} + + +static size_t +ZSTD_DUBT_findBestMatch(ZSTD_matchState_t* ms, + const BYTE* const ip, const BYTE* const iend, + size_t* offsetPtr, + U32 const mls, + const ZSTD_dictMode_e dictMode) +{ + const ZSTD_compressionParameters* const cParams = &ms->cParams; + U32* const hashTable = ms->hashTable; + U32 const hashLog = cParams->hashLog; + size_t const h = ZSTD_hashPtr(ip, hashLog, mls); + U32 matchIndex = hashTable[h]; + + const BYTE* const base = ms->window.base; + U32 const curr = (U32)(ip-base); + U32 const windowLow = ZSTD_getLowestMatchIndex(ms, curr, cParams->windowLog); + + U32* const bt = ms->chainTable; + U32 const btLog = cParams->chainLog - 1; + U32 const btMask = (1 << btLog) - 1; + U32 const btLow = (btMask >= curr) ? 0 : curr - btMask; + U32 const unsortLimit = MAX(btLow, windowLow); + + U32* nextCandidate = bt + 2*(matchIndex&btMask); + U32* unsortedMark = bt + 2*(matchIndex&btMask) + 1; + U32 nbCompares = 1U << cParams->searchLog; + U32 nbCandidates = nbCompares; + U32 previousCandidate = 0; + + DEBUGLOG(7, "ZSTD_DUBT_findBestMatch (%u) ", curr); + assert(ip <= iend-8); /* required for h calculation */ + assert(dictMode != ZSTD_dedicatedDictSearch); + + /* reach end of unsorted candidates list */ + while ( (matchIndex > unsortLimit) + && (*unsortedMark == ZSTD_DUBT_UNSORTED_MARK) + && (nbCandidates > 1) ) { + DEBUGLOG(8, "ZSTD_DUBT_findBestMatch: candidate %u is unsorted", + matchIndex); + *unsortedMark = previousCandidate; /* the unsortedMark becomes a reversed chain, to move up back to original position */ + previousCandidate = matchIndex; + matchIndex = *nextCandidate; + nextCandidate = bt + 2*(matchIndex&btMask); + unsortedMark = bt + 2*(matchIndex&btMask) + 1; + nbCandidates --; + } + + /* nullify last candidate if it's still unsorted + * simplification, detrimental to compression ratio, beneficial for speed */ + if ( (matchIndex > unsortLimit) + && (*unsortedMark==ZSTD_DUBT_UNSORTED_MARK) ) { + DEBUGLOG(7, "ZSTD_DUBT_findBestMatch: nullify last unsorted candidate %u", + matchIndex); + *nextCandidate = *unsortedMark = 0; + } + + /* batch sort stacked candidates */ + matchIndex = previousCandidate; + while (matchIndex) { /* will end on matchIndex == 0 */ + U32* const nextCandidateIdxPtr = bt + 2*(matchIndex&btMask) + 1; + U32 const nextCandidateIdx = *nextCandidateIdxPtr; + ZSTD_insertDUBT1(ms, matchIndex, iend, + nbCandidates, unsortLimit, dictMode); + matchIndex = nextCandidateIdx; + nbCandidates++; + } + + /* find longest match */ + { size_t commonLengthSmaller = 0, commonLengthLarger = 0; + const BYTE* const dictBase = ms->window.dictBase; + const U32 dictLimit = ms->window.dictLimit; + const BYTE* const dictEnd = dictBase + dictLimit; + const BYTE* const prefixStart = base + dictLimit; + U32* smallerPtr = bt + 2*(curr&btMask); + U32* largerPtr = bt + 2*(curr&btMask) + 1; + U32 matchEndIdx = curr + 8 + 1; + U32 dummy32; /* to be nullified at the end */ + size_t bestLength = 0; + + matchIndex = hashTable[h]; + hashTable[h] = curr; /* Update Hash Table */ + + while (nbCompares-- && (matchIndex > windowLow)) { + U32* const nextPtr = bt + 2*(matchIndex & btMask); + size_t matchLength = MIN(commonLengthSmaller, commonLengthLarger); /* guaranteed minimum nb of common bytes */ + const BYTE* match; + + if ((dictMode != ZSTD_extDict) || (matchIndex+matchLength >= dictLimit)) { + match = base + matchIndex; + matchLength += ZSTD_count(ip+matchLength, match+matchLength, iend); + } else { + match = dictBase + matchIndex; + matchLength += ZSTD_count_2segments(ip+matchLength, match+matchLength, iend, dictEnd, prefixStart); + if (matchIndex+matchLength >= dictLimit) + match = base + matchIndex; /* to prepare for next usage of match[matchLength] */ + } + + if (matchLength > bestLength) { + if (matchLength > matchEndIdx - matchIndex) + matchEndIdx = matchIndex + (U32)matchLength; + if ( (4*(int)(matchLength-bestLength)) > (int)(ZSTD_highbit32(curr-matchIndex+1) - ZSTD_highbit32((U32)offsetPtr[0]+1)) ) + bestLength = matchLength, *offsetPtr = ZSTD_REP_MOVE + curr - matchIndex; + if (ip+matchLength == iend) { /* equal : no way to know if inf or sup */ + if (dictMode == ZSTD_dictMatchState) { + nbCompares = 0; /* in addition to avoiding checking any + * further in this loop, make sure we + * skip checking in the dictionary. */ + } + break; /* drop, to guarantee consistency (miss a little bit of compression) */ + } + } + + if (match[matchLength] < ip[matchLength]) { + /* match is smaller than current */ + *smallerPtr = matchIndex; /* update smaller idx */ + commonLengthSmaller = matchLength; /* all smaller will now have at least this guaranteed common length */ + if (matchIndex <= btLow) { smallerPtr=&dummy32; break; } /* beyond tree size, stop the search */ + smallerPtr = nextPtr+1; /* new "smaller" => larger of match */ + matchIndex = nextPtr[1]; /* new matchIndex larger than previous (closer to current) */ + } else { + /* match is larger than current */ + *largerPtr = matchIndex; + commonLengthLarger = matchLength; + if (matchIndex <= btLow) { largerPtr=&dummy32; break; } /* beyond tree size, stop the search */ + largerPtr = nextPtr; + matchIndex = nextPtr[0]; + } } + + *smallerPtr = *largerPtr = 0; + + if (dictMode == ZSTD_dictMatchState && nbCompares) { + bestLength = ZSTD_DUBT_findBetterDictMatch( + ms, ip, iend, + offsetPtr, bestLength, nbCompares, + mls, dictMode); + } + + assert(matchEndIdx > curr+8); /* ensure nextToUpdate is increased */ + ms->nextToUpdate = matchEndIdx - 8; /* skip repetitive patterns */ + if (bestLength >= MINMATCH) { + U32 const mIndex = curr - ((U32)*offsetPtr - ZSTD_REP_MOVE); (void)mIndex; + DEBUGLOG(8, "ZSTD_DUBT_findBestMatch(%u) : found match of length %u and offsetCode %u (pos %u)", + curr, (U32)bestLength, (U32)*offsetPtr, mIndex); + } + return bestLength; + } +} + + +/** ZSTD_BtFindBestMatch() : Tree updater, providing best match */ +FORCE_INLINE_TEMPLATE size_t +ZSTD_BtFindBestMatch( ZSTD_matchState_t* ms, + const BYTE* const ip, const BYTE* const iLimit, + size_t* offsetPtr, + const U32 mls /* template */, + const ZSTD_dictMode_e dictMode) +{ + DEBUGLOG(7, "ZSTD_BtFindBestMatch"); + if (ip < ms->window.base + ms->nextToUpdate) return 0; /* skipped area */ + ZSTD_updateDUBT(ms, ip, iLimit, mls); + return ZSTD_DUBT_findBestMatch(ms, ip, iLimit, offsetPtr, mls, dictMode); +} + + +static size_t +ZSTD_BtFindBestMatch_selectMLS ( ZSTD_matchState_t* ms, + const BYTE* ip, const BYTE* const iLimit, + size_t* offsetPtr) +{ + switch(ms->cParams.minMatch) + { + default : /* includes case 3 */ + case 4 : return ZSTD_BtFindBestMatch(ms, ip, iLimit, offsetPtr, 4, ZSTD_noDict); + case 5 : return ZSTD_BtFindBestMatch(ms, ip, iLimit, offsetPtr, 5, ZSTD_noDict); + case 7 : + case 6 : return ZSTD_BtFindBestMatch(ms, ip, iLimit, offsetPtr, 6, ZSTD_noDict); + } +} + + +static size_t ZSTD_BtFindBestMatch_dictMatchState_selectMLS ( + ZSTD_matchState_t* ms, + const BYTE* ip, const BYTE* const iLimit, + size_t* offsetPtr) +{ + switch(ms->cParams.minMatch) + { + default : /* includes case 3 */ + case 4 : return ZSTD_BtFindBestMatch(ms, ip, iLimit, offsetPtr, 4, ZSTD_dictMatchState); + case 5 : return ZSTD_BtFindBestMatch(ms, ip, iLimit, offsetPtr, 5, ZSTD_dictMatchState); + case 7 : + case 6 : return ZSTD_BtFindBestMatch(ms, ip, iLimit, offsetPtr, 6, ZSTD_dictMatchState); + } +} + + +static size_t ZSTD_BtFindBestMatch_extDict_selectMLS ( + ZSTD_matchState_t* ms, + const BYTE* ip, const BYTE* const iLimit, + size_t* offsetPtr) +{ + switch(ms->cParams.minMatch) + { + default : /* includes case 3 */ + case 4 : return ZSTD_BtFindBestMatch(ms, ip, iLimit, offsetPtr, 4, ZSTD_extDict); + case 5 : return ZSTD_BtFindBestMatch(ms, ip, iLimit, offsetPtr, 5, ZSTD_extDict); + case 7 : + case 6 : return ZSTD_BtFindBestMatch(ms, ip, iLimit, offsetPtr, 6, ZSTD_extDict); + } +} + +/*********************************** +* Dedicated dict search +***********************************/ + +void ZSTD_dedicatedDictSearch_lazy_loadDictionary(ZSTD_matchState_t* ms, const BYTE* const ip) +{ + const BYTE* const base = ms->window.base; + U32 const target = (U32)(ip - base); + U32* const hashTable = ms->hashTable; + U32* const chainTable = ms->chainTable; + U32 const chainSize = 1 << ms->cParams.chainLog; + U32 idx = ms->nextToUpdate; + U32 const minChain = chainSize < target ? target - chainSize : idx; + U32 const bucketSize = 1 << ZSTD_LAZY_DDSS_BUCKET_LOG; + U32 const cacheSize = bucketSize - 1; + U32 const chainAttempts = (1 << ms->cParams.searchLog) - cacheSize; + U32 const chainLimit = chainAttempts > 255 ? 255 : chainAttempts; + + /* We know the hashtable is oversized by a factor of `bucketSize`. + * We are going to temporarily pretend `bucketSize == 1`, keeping only a + * single entry. We will use the rest of the space to construct a temporary + * chaintable. + */ + U32 const hashLog = ms->cParams.hashLog - ZSTD_LAZY_DDSS_BUCKET_LOG; + U32* const tmpHashTable = hashTable; + U32* const tmpChainTable = hashTable + ((size_t)1 << hashLog); + U32 const tmpChainSize = ((1 << ZSTD_LAZY_DDSS_BUCKET_LOG) - 1) << hashLog; + U32 const tmpMinChain = tmpChainSize < target ? target - tmpChainSize : idx; + U32 hashIdx; + + assert(ms->cParams.chainLog <= 24); + assert(ms->cParams.hashLog > ms->cParams.chainLog); + assert(idx != 0); + assert(tmpMinChain <= minChain); + + /* fill conventional hash table and conventional chain table */ + for ( ; idx < target; idx++) { + U32 const h = (U32)ZSTD_hashPtr(base + idx, hashLog, ms->cParams.minMatch); + if (idx >= tmpMinChain) { + tmpChainTable[idx - tmpMinChain] = hashTable[h]; + } + tmpHashTable[h] = idx; + } + + /* sort chains into ddss chain table */ + { + U32 chainPos = 0; + for (hashIdx = 0; hashIdx < (1U << hashLog); hashIdx++) { + U32 count; + U32 countBeyondMinChain = 0; + U32 i = tmpHashTable[hashIdx]; + for (count = 0; i >= tmpMinChain && count < cacheSize; count++) { + /* skip through the chain to the first position that won't be + * in the hash cache bucket */ + if (i < minChain) { + countBeyondMinChain++; + } + i = tmpChainTable[i - tmpMinChain]; + } + if (count == cacheSize) { + for (count = 0; count < chainLimit;) { + if (i < minChain) { + if (!i || ++countBeyondMinChain > cacheSize) { + /* only allow pulling `cacheSize` number of entries + * into the cache or chainTable beyond `minChain`, + * to replace the entries pulled out of the + * chainTable into the cache. This lets us reach + * back further without increasing the total number + * of entries in the chainTable, guaranteeing the + * DDSS chain table will fit into the space + * allocated for the regular one. */ + break; + } + } + chainTable[chainPos++] = i; + count++; + if (i < tmpMinChain) { + break; + } + i = tmpChainTable[i - tmpMinChain]; + } + } else { + count = 0; + } + if (count) { + tmpHashTable[hashIdx] = ((chainPos - count) << 8) + count; + } else { + tmpHashTable[hashIdx] = 0; + } + } + assert(chainPos <= chainSize); /* I believe this is guaranteed... */ + } + + /* move chain pointers into the last entry of each hash bucket */ + for (hashIdx = (1 << hashLog); hashIdx; ) { + U32 const bucketIdx = --hashIdx << ZSTD_LAZY_DDSS_BUCKET_LOG; + U32 const chainPackedPointer = tmpHashTable[hashIdx]; + U32 i; + for (i = 0; i < cacheSize; i++) { + hashTable[bucketIdx + i] = 0; + } + hashTable[bucketIdx + bucketSize - 1] = chainPackedPointer; + } + + /* fill the buckets of the hash table */ + for (idx = ms->nextToUpdate; idx < target; idx++) { + U32 const h = (U32)ZSTD_hashPtr(base + idx, hashLog, ms->cParams.minMatch) + << ZSTD_LAZY_DDSS_BUCKET_LOG; + U32 i; + /* Shift hash cache down 1. */ + for (i = cacheSize - 1; i; i--) + hashTable[h + i] = hashTable[h + i - 1]; + hashTable[h] = idx; + } + + ms->nextToUpdate = target; +} + +/* Returns the longest match length found in the dedicated dict search structure. + * If none are longer than the argument ml, then ml will be returned. + */ +FORCE_INLINE_TEMPLATE +size_t ZSTD_dedicatedDictSearch_lazy_search(size_t* offsetPtr, size_t ml, U32 nbAttempts, + const ZSTD_matchState_t* const dms, + const BYTE* const ip, const BYTE* const iLimit, + const BYTE* const prefixStart, const U32 curr, + const U32 dictLimit, const size_t ddsIdx) { + const U32 ddsLowestIndex = dms->window.dictLimit; + const BYTE* const ddsBase = dms->window.base; + const BYTE* const ddsEnd = dms->window.nextSrc; + const U32 ddsSize = (U32)(ddsEnd - ddsBase); + const U32 ddsIndexDelta = dictLimit - ddsSize; + const U32 bucketSize = (1 << ZSTD_LAZY_DDSS_BUCKET_LOG); + const U32 bucketLimit = nbAttempts < bucketSize - 1 ? nbAttempts : bucketSize - 1; + U32 ddsAttempt; + U32 matchIndex; + + for (ddsAttempt = 0; ddsAttempt < bucketSize - 1; ddsAttempt++) { + PREFETCH_L1(ddsBase + dms->hashTable[ddsIdx + ddsAttempt]); + } + + { + U32 const chainPackedPointer = dms->hashTable[ddsIdx + bucketSize - 1]; + U32 const chainIndex = chainPackedPointer >> 8; + + PREFETCH_L1(&dms->chainTable[chainIndex]); + } + + for (ddsAttempt = 0; ddsAttempt < bucketLimit; ddsAttempt++) { + size_t currentMl=0; + const BYTE* match; + matchIndex = dms->hashTable[ddsIdx + ddsAttempt]; + match = ddsBase + matchIndex; + + if (!matchIndex) { + return ml; + } + + /* guaranteed by table construction */ + (void)ddsLowestIndex; + assert(matchIndex >= ddsLowestIndex); + assert(match+4 <= ddsEnd); + if (MEM_read32(match) == MEM_read32(ip)) { + /* assumption : matchIndex <= dictLimit-4 (by table construction) */ + currentMl = ZSTD_count_2segments(ip+4, match+4, iLimit, ddsEnd, prefixStart) + 4; + } + + /* save best solution */ + if (currentMl > ml) { + ml = currentMl; + *offsetPtr = curr - (matchIndex + ddsIndexDelta) + ZSTD_REP_MOVE; + if (ip+currentMl == iLimit) { + /* best possible, avoids read overflow on next attempt */ + return ml; + } + } + } + + { + U32 const chainPackedPointer = dms->hashTable[ddsIdx + bucketSize - 1]; + U32 chainIndex = chainPackedPointer >> 8; + U32 const chainLength = chainPackedPointer & 0xFF; + U32 const chainAttempts = nbAttempts - ddsAttempt; + U32 const chainLimit = chainAttempts > chainLength ? chainLength : chainAttempts; + U32 chainAttempt; + + for (chainAttempt = 0 ; chainAttempt < chainLimit; chainAttempt++) { + PREFETCH_L1(ddsBase + dms->chainTable[chainIndex + chainAttempt]); + } + + for (chainAttempt = 0 ; chainAttempt < chainLimit; chainAttempt++, chainIndex++) { + size_t currentMl=0; + const BYTE* match; + matchIndex = dms->chainTable[chainIndex]; + match = ddsBase + matchIndex; + + /* guaranteed by table construction */ + assert(matchIndex >= ddsLowestIndex); + assert(match+4 <= ddsEnd); + if (MEM_read32(match) == MEM_read32(ip)) { + /* assumption : matchIndex <= dictLimit-4 (by table construction) */ + currentMl = ZSTD_count_2segments(ip+4, match+4, iLimit, ddsEnd, prefixStart) + 4; + } + + /* save best solution */ + if (currentMl > ml) { + ml = currentMl; + *offsetPtr = curr - (matchIndex + ddsIndexDelta) + ZSTD_REP_MOVE; + if (ip+currentMl == iLimit) break; /* best possible, avoids read overflow on next attempt */ + } + } + } + return ml; +} + + +/* ********************************* +* Hash Chain +***********************************/ +#define NEXT_IN_CHAIN(d, mask) chainTable[(d) & (mask)] + +/* Update chains up to ip (excluded) + Assumption : always within prefix (i.e. not within extDict) */ +FORCE_INLINE_TEMPLATE U32 ZSTD_insertAndFindFirstIndex_internal( + ZSTD_matchState_t* ms, + const ZSTD_compressionParameters* const cParams, + const BYTE* ip, U32 const mls) +{ + U32* const hashTable = ms->hashTable; + const U32 hashLog = cParams->hashLog; + U32* const chainTable = ms->chainTable; + const U32 chainMask = (1 << cParams->chainLog) - 1; + const BYTE* const base = ms->window.base; + const U32 target = (U32)(ip - base); + U32 idx = ms->nextToUpdate; + + while(idx < target) { /* catch up */ + size_t const h = ZSTD_hashPtr(base+idx, hashLog, mls); + NEXT_IN_CHAIN(idx, chainMask) = hashTable[h]; + hashTable[h] = idx; + idx++; + } + + ms->nextToUpdate = target; + return hashTable[ZSTD_hashPtr(ip, hashLog, mls)]; +} + +U32 ZSTD_insertAndFindFirstIndex(ZSTD_matchState_t* ms, const BYTE* ip) { + const ZSTD_compressionParameters* const cParams = &ms->cParams; + return ZSTD_insertAndFindFirstIndex_internal(ms, cParams, ip, ms->cParams.minMatch); +} + +/* inlining is important to hardwire a hot branch (template emulation) */ +FORCE_INLINE_TEMPLATE +size_t ZSTD_HcFindBestMatch_generic ( + ZSTD_matchState_t* ms, + const BYTE* const ip, const BYTE* const iLimit, + size_t* offsetPtr, + const U32 mls, const ZSTD_dictMode_e dictMode) +{ + const ZSTD_compressionParameters* const cParams = &ms->cParams; + U32* const chainTable = ms->chainTable; + const U32 chainSize = (1 << cParams->chainLog); + const U32 chainMask = chainSize-1; + const BYTE* const base = ms->window.base; + const BYTE* const dictBase = ms->window.dictBase; + const U32 dictLimit = ms->window.dictLimit; + const BYTE* const prefixStart = base + dictLimit; + const BYTE* const dictEnd = dictBase + dictLimit; + const U32 curr = (U32)(ip-base); + const U32 maxDistance = 1U << cParams->windowLog; + const U32 lowestValid = ms->window.lowLimit; + const U32 withinMaxDistance = (curr - lowestValid > maxDistance) ? curr - maxDistance : lowestValid; + const U32 isDictionary = (ms->loadedDictEnd != 0); + const U32 lowLimit = isDictionary ? lowestValid : withinMaxDistance; + const U32 minChain = curr > chainSize ? curr - chainSize : 0; + U32 nbAttempts = 1U << cParams->searchLog; + size_t ml=4-1; + + const ZSTD_matchState_t* const dms = ms->dictMatchState; + const U32 ddsHashLog = dictMode == ZSTD_dedicatedDictSearch + ? dms->cParams.hashLog - ZSTD_LAZY_DDSS_BUCKET_LOG : 0; + const size_t ddsIdx = dictMode == ZSTD_dedicatedDictSearch + ? ZSTD_hashPtr(ip, ddsHashLog, mls) << ZSTD_LAZY_DDSS_BUCKET_LOG : 0; + + U32 matchIndex; + + if (dictMode == ZSTD_dedicatedDictSearch) { + const U32* entry = &dms->hashTable[ddsIdx]; + PREFETCH_L1(entry); + } + + /* HC4 match finder */ + matchIndex = ZSTD_insertAndFindFirstIndex_internal(ms, cParams, ip, mls); + + for ( ; (matchIndex>=lowLimit) & (nbAttempts>0) ; nbAttempts--) { + size_t currentMl=0; + if ((dictMode != ZSTD_extDict) || matchIndex >= dictLimit) { + const BYTE* const match = base + matchIndex; + assert(matchIndex >= dictLimit); /* ensures this is true if dictMode != ZSTD_extDict */ + if (match[ml] == ip[ml]) /* potentially better */ + currentMl = ZSTD_count(ip, match, iLimit); + } else { + const BYTE* const match = dictBase + matchIndex; + assert(match+4 <= dictEnd); + if (MEM_read32(match) == MEM_read32(ip)) /* assumption : matchIndex <= dictLimit-4 (by table construction) */ + currentMl = ZSTD_count_2segments(ip+4, match+4, iLimit, dictEnd, prefixStart) + 4; + } + + /* save best solution */ + if (currentMl > ml) { + ml = currentMl; + *offsetPtr = curr - matchIndex + ZSTD_REP_MOVE; + if (ip+currentMl == iLimit) break; /* best possible, avoids read overflow on next attempt */ + } + + if (matchIndex <= minChain) break; + matchIndex = NEXT_IN_CHAIN(matchIndex, chainMask); + } + + if (dictMode == ZSTD_dedicatedDictSearch) { + ml = ZSTD_dedicatedDictSearch_lazy_search(offsetPtr, ml, nbAttempts, dms, + ip, iLimit, prefixStart, curr, dictLimit, ddsIdx); + } else if (dictMode == ZSTD_dictMatchState) { + const U32* const dmsChainTable = dms->chainTable; + const U32 dmsChainSize = (1 << dms->cParams.chainLog); + const U32 dmsChainMask = dmsChainSize - 1; + const U32 dmsLowestIndex = dms->window.dictLimit; + const BYTE* const dmsBase = dms->window.base; + const BYTE* const dmsEnd = dms->window.nextSrc; + const U32 dmsSize = (U32)(dmsEnd - dmsBase); + const U32 dmsIndexDelta = dictLimit - dmsSize; + const U32 dmsMinChain = dmsSize > dmsChainSize ? dmsSize - dmsChainSize : 0; + + matchIndex = dms->hashTable[ZSTD_hashPtr(ip, dms->cParams.hashLog, mls)]; + + for ( ; (matchIndex>=dmsLowestIndex) & (nbAttempts>0) ; nbAttempts--) { + size_t currentMl=0; + const BYTE* const match = dmsBase + matchIndex; + assert(match+4 <= dmsEnd); + if (MEM_read32(match) == MEM_read32(ip)) /* assumption : matchIndex <= dictLimit-4 (by table construction) */ + currentMl = ZSTD_count_2segments(ip+4, match+4, iLimit, dmsEnd, prefixStart) + 4; + + /* save best solution */ + if (currentMl > ml) { + ml = currentMl; + *offsetPtr = curr - (matchIndex + dmsIndexDelta) + ZSTD_REP_MOVE; + if (ip+currentMl == iLimit) break; /* best possible, avoids read overflow on next attempt */ + } + + if (matchIndex <= dmsMinChain) break; + + matchIndex = dmsChainTable[matchIndex & dmsChainMask]; + } + } + + return ml; +} + + +FORCE_INLINE_TEMPLATE size_t ZSTD_HcFindBestMatch_selectMLS ( + ZSTD_matchState_t* ms, + const BYTE* ip, const BYTE* const iLimit, + size_t* offsetPtr) +{ + switch(ms->cParams.minMatch) + { + default : /* includes case 3 */ + case 4 : return ZSTD_HcFindBestMatch_generic(ms, ip, iLimit, offsetPtr, 4, ZSTD_noDict); + case 5 : return ZSTD_HcFindBestMatch_generic(ms, ip, iLimit, offsetPtr, 5, ZSTD_noDict); + case 7 : + case 6 : return ZSTD_HcFindBestMatch_generic(ms, ip, iLimit, offsetPtr, 6, ZSTD_noDict); + } +} + + +static size_t ZSTD_HcFindBestMatch_dictMatchState_selectMLS ( + ZSTD_matchState_t* ms, + const BYTE* ip, const BYTE* const iLimit, + size_t* offsetPtr) +{ + switch(ms->cParams.minMatch) + { + default : /* includes case 3 */ + case 4 : return ZSTD_HcFindBestMatch_generic(ms, ip, iLimit, offsetPtr, 4, ZSTD_dictMatchState); + case 5 : return ZSTD_HcFindBestMatch_generic(ms, ip, iLimit, offsetPtr, 5, ZSTD_dictMatchState); + case 7 : + case 6 : return ZSTD_HcFindBestMatch_generic(ms, ip, iLimit, offsetPtr, 6, ZSTD_dictMatchState); + } +} + + +static size_t ZSTD_HcFindBestMatch_dedicatedDictSearch_selectMLS ( + ZSTD_matchState_t* ms, + const BYTE* ip, const BYTE* const iLimit, + size_t* offsetPtr) +{ + switch(ms->cParams.minMatch) + { + default : /* includes case 3 */ + case 4 : return ZSTD_HcFindBestMatch_generic(ms, ip, iLimit, offsetPtr, 4, ZSTD_dedicatedDictSearch); + case 5 : return ZSTD_HcFindBestMatch_generic(ms, ip, iLimit, offsetPtr, 5, ZSTD_dedicatedDictSearch); + case 7 : + case 6 : return ZSTD_HcFindBestMatch_generic(ms, ip, iLimit, offsetPtr, 6, ZSTD_dedicatedDictSearch); + } +} + + +FORCE_INLINE_TEMPLATE size_t ZSTD_HcFindBestMatch_extDict_selectMLS ( + ZSTD_matchState_t* ms, + const BYTE* ip, const BYTE* const iLimit, + size_t* offsetPtr) +{ + switch(ms->cParams.minMatch) + { + default : /* includes case 3 */ + case 4 : return ZSTD_HcFindBestMatch_generic(ms, ip, iLimit, offsetPtr, 4, ZSTD_extDict); + case 5 : return ZSTD_HcFindBestMatch_generic(ms, ip, iLimit, offsetPtr, 5, ZSTD_extDict); + case 7 : + case 6 : return ZSTD_HcFindBestMatch_generic(ms, ip, iLimit, offsetPtr, 6, ZSTD_extDict); + } +} + +/* ********************************* +* (SIMD) Row-based matchfinder +***********************************/ +/* Constants for row-based hash */ +#define ZSTD_ROW_HASH_TAG_OFFSET 1 /* byte offset of hashes in the match state's tagTable from the beginning of a row */ +#define ZSTD_ROW_HASH_TAG_BITS 8 /* nb bits to use for the tag */ +#define ZSTD_ROW_HASH_TAG_MASK ((1u << ZSTD_ROW_HASH_TAG_BITS) - 1) + +#define ZSTD_ROW_HASH_CACHE_MASK (ZSTD_ROW_HASH_CACHE_SIZE - 1) + +typedef U32 ZSTD_VecMask; /* Clarifies when we are interacting with a U32 representing a mask of matches */ + +#if !defined(ZSTD_NO_INTRINSICS) && defined(__SSE2__) /* SIMD SSE version */ + +#include +typedef __m128i ZSTD_Vec128; + +/* Returns a 128-bit container with 128-bits from src */ +static ZSTD_Vec128 ZSTD_Vec128_read(const void* const src) { + return _mm_loadu_si128((ZSTD_Vec128 const*)src); +} + +/* Returns a ZSTD_Vec128 with the byte "val" packed 16 times */ +static ZSTD_Vec128 ZSTD_Vec128_set8(BYTE val) { + return _mm_set1_epi8((char)val); +} + +/* Do byte-by-byte comparison result of x and y. Then collapse 128-bit resultant mask + * into a 32-bit mask that is the MSB of each byte. + * */ +static ZSTD_VecMask ZSTD_Vec128_cmpMask8(ZSTD_Vec128 x, ZSTD_Vec128 y) { + return (ZSTD_VecMask)_mm_movemask_epi8(_mm_cmpeq_epi8(x, y)); +} + +typedef struct { + __m128i fst; + __m128i snd; +} ZSTD_Vec256; + +static ZSTD_Vec256 ZSTD_Vec256_read(const void* const ptr) { + ZSTD_Vec256 v; + v.fst = ZSTD_Vec128_read(ptr); + v.snd = ZSTD_Vec128_read((ZSTD_Vec128 const*)ptr + 1); + return v; +} + +static ZSTD_Vec256 ZSTD_Vec256_set8(BYTE val) { + ZSTD_Vec256 v; + v.fst = ZSTD_Vec128_set8(val); + v.snd = ZSTD_Vec128_set8(val); + return v; +} + +static ZSTD_VecMask ZSTD_Vec256_cmpMask8(ZSTD_Vec256 x, ZSTD_Vec256 y) { + ZSTD_VecMask fstMask; + ZSTD_VecMask sndMask; + fstMask = ZSTD_Vec128_cmpMask8(x.fst, y.fst); + sndMask = ZSTD_Vec128_cmpMask8(x.snd, y.snd); + return fstMask | (sndMask << 16); +} + +#elif !defined(ZSTD_NO_INTRINSICS) && defined(__ARM_NEON) /* SIMD ARM NEON Version */ + +#include +typedef uint8x16_t ZSTD_Vec128; + +static ZSTD_Vec128 ZSTD_Vec128_read(const void* const src) { + return vld1q_u8((const BYTE* const)src); +} + +static ZSTD_Vec128 ZSTD_Vec128_set8(BYTE val) { + return vdupq_n_u8(val); +} + +/* Mimics '_mm_movemask_epi8()' from SSE */ +static U32 ZSTD_vmovmaskq_u8(ZSTD_Vec128 val) { + /* Shift out everything but the MSB bits in each byte */ + uint16x8_t highBits = vreinterpretq_u16_u8(vshrq_n_u8(val, 7)); + /* Merge the even lanes together with vsra (right shift and add) */ + uint32x4_t paired16 = vreinterpretq_u32_u16(vsraq_n_u16(highBits, highBits, 7)); + uint64x2_t paired32 = vreinterpretq_u64_u32(vsraq_n_u32(paired16, paired16, 14)); + uint8x16_t paired64 = vreinterpretq_u8_u64(vsraq_n_u64(paired32, paired32, 28)); + /* Extract the low 8 bits from each lane, merge */ + return vgetq_lane_u8(paired64, 0) | ((U32)vgetq_lane_u8(paired64, 8) << 8); +} + +static ZSTD_VecMask ZSTD_Vec128_cmpMask8(ZSTD_Vec128 x, ZSTD_Vec128 y) { + return (ZSTD_VecMask)ZSTD_vmovmaskq_u8(vceqq_u8(x, y)); +} + +typedef struct { + uint8x16_t fst; + uint8x16_t snd; +} ZSTD_Vec256; + +static ZSTD_Vec256 ZSTD_Vec256_read(const void* const ptr) { + ZSTD_Vec256 v; + v.fst = ZSTD_Vec128_read(ptr); + v.snd = ZSTD_Vec128_read((ZSTD_Vec128 const*)ptr + 1); + return v; +} + +static ZSTD_Vec256 ZSTD_Vec256_set8(BYTE val) { + ZSTD_Vec256 v; + v.fst = ZSTD_Vec128_set8(val); + v.snd = ZSTD_Vec128_set8(val); + return v; +} + +static ZSTD_VecMask ZSTD_Vec256_cmpMask8(ZSTD_Vec256 x, ZSTD_Vec256 y) { + ZSTD_VecMask fstMask; + ZSTD_VecMask sndMask; + fstMask = ZSTD_Vec128_cmpMask8(x.fst, y.fst); + sndMask = ZSTD_Vec128_cmpMask8(x.snd, y.snd); + return fstMask | (sndMask << 16); +} + +#else /* Scalar fallback version */ + +#define VEC128_NB_SIZE_T (16 / sizeof(size_t)) +typedef struct { + size_t vec[VEC128_NB_SIZE_T]; +} ZSTD_Vec128; + +static ZSTD_Vec128 ZSTD_Vec128_read(const void* const src) { + ZSTD_Vec128 ret; + ZSTD_memcpy(ret.vec, src, VEC128_NB_SIZE_T*sizeof(size_t)); + return ret; +} + +static ZSTD_Vec128 ZSTD_Vec128_set8(BYTE val) { + ZSTD_Vec128 ret = { {0} }; + int startBit = sizeof(size_t) * 8 - 8; + for (;startBit >= 0; startBit -= 8) { + unsigned j = 0; + for (;j < VEC128_NB_SIZE_T; ++j) { + ret.vec[j] |= ((size_t)val << startBit); + } + } + return ret; +} + +/* Compare x to y, byte by byte, generating a "matches" bitfield */ +static ZSTD_VecMask ZSTD_Vec128_cmpMask8(ZSTD_Vec128 x, ZSTD_Vec128 y) { + ZSTD_VecMask res = 0; + unsigned i = 0; + unsigned l = 0; + for (; i < VEC128_NB_SIZE_T; ++i) { + const size_t cmp1 = x.vec[i]; + const size_t cmp2 = y.vec[i]; + unsigned j = 0; + for (; j < sizeof(size_t); ++j, ++l) { + if (((cmp1 >> j*8) & 0xFF) == ((cmp2 >> j*8) & 0xFF)) { + res |= ((U32)1 << (j+i*sizeof(size_t))); + } + } + } + return res; +} + +#define VEC256_NB_SIZE_T 2*VEC128_NB_SIZE_T +typedef struct { + size_t vec[VEC256_NB_SIZE_T]; +} ZSTD_Vec256; + +static ZSTD_Vec256 ZSTD_Vec256_read(const void* const src) { + ZSTD_Vec256 ret; + ZSTD_memcpy(ret.vec, src, VEC256_NB_SIZE_T*sizeof(size_t)); + return ret; +} + +static ZSTD_Vec256 ZSTD_Vec256_set8(BYTE val) { + ZSTD_Vec256 ret = { {0} }; + int startBit = sizeof(size_t) * 8 - 8; + for (;startBit >= 0; startBit -= 8) { + unsigned j = 0; + for (;j < VEC256_NB_SIZE_T; ++j) { + ret.vec[j] |= ((size_t)val << startBit); + } + } + return ret; +} + +/* Compare x to y, byte by byte, generating a "matches" bitfield */ +static ZSTD_VecMask ZSTD_Vec256_cmpMask8(ZSTD_Vec256 x, ZSTD_Vec256 y) { + ZSTD_VecMask res = 0; + unsigned i = 0; + unsigned l = 0; + for (; i < VEC256_NB_SIZE_T; ++i) { + const size_t cmp1 = x.vec[i]; + const size_t cmp2 = y.vec[i]; + unsigned j = 0; + for (; j < sizeof(size_t); ++j, ++l) { + if (((cmp1 >> j*8) & 0xFF) == ((cmp2 >> j*8) & 0xFF)) { + res |= ((U32)1 << (j+i*sizeof(size_t))); + } + } + } + return res; +} + +#endif /* !defined(ZSTD_NO_INTRINSICS) && defined(__SSE2__) */ + +/* ZSTD_VecMask_next(): + * Starting from the LSB, returns the idx of the next non-zero bit. + * Basically counting the nb of trailing zeroes. + */ +static U32 ZSTD_VecMask_next(ZSTD_VecMask val) { +# if defined(_MSC_VER) /* Visual */ + unsigned long r=0; + return _BitScanForward(&r, val) ? (U32)r : 0; +# elif defined(__GNUC__) && (__GNUC__ >= 3) + return (U32)__builtin_ctz(val); +# else + /* Software ctz version: http://graphics.stanford.edu/~seander/bithacks.html#ZerosOnRightMultLookup */ + static const U32 multiplyDeBruijnBitPosition[32] = + { + 0, 1, 28, 2, 29, 14, 24, 3, 30, 22, 20, 15, 25, 17, 4, 8, + 31, 27, 13, 23, 21, 19, 16, 7, 26, 12, 18, 6, 11, 5, 10, 9 + }; + return multiplyDeBruijnBitPosition[((U32)((v & -(int)v) * 0x077CB531U)) >> 27]; +# endif +} + +/* ZSTD_VecMask_rotateRight(): + * Rotates a bitfield to the right by "rotation" bits. + * If the rotation is greater than totalBits, the returned mask is 0. + */ +FORCE_INLINE_TEMPLATE ZSTD_VecMask +ZSTD_VecMask_rotateRight(ZSTD_VecMask mask, U32 const rotation, U32 const totalBits) { + if (rotation == 0) + return mask; + switch (totalBits) { + default: + assert(0); + case 16: + return (mask >> rotation) | (U16)(mask << (16 - rotation)); + case 32: + return (mask >> rotation) | (U32)(mask << (32 - rotation)); + } +} + +/* ZSTD_row_nextIndex(): + * Returns the next index to insert at within a tagTable row, and updates the "head" + * value to reflect the update. Essentially cycles backwards from [0, {entries per row}) + */ +FORCE_INLINE_TEMPLATE U32 ZSTD_row_nextIndex(BYTE* const tagRow, U32 const rowMask) { + U32 const next = (*tagRow - 1) & rowMask; + *tagRow = (BYTE)next; + return next; +} + +/* ZSTD_isAligned(): + * Checks that a pointer is aligned to "align" bytes which must be a power of 2. + */ +MEM_STATIC int ZSTD_isAligned(void const* ptr, size_t align) { + assert((align & (align - 1)) == 0); + return (((size_t)ptr) & (align - 1)) == 0; +} + +/* ZSTD_row_prefetch(): + * Performs prefetching for the hashTable and tagTable at a given row. + */ +FORCE_INLINE_TEMPLATE void ZSTD_row_prefetch(U32 const* hashTable, U16 const* tagTable, U32 const relRow, U32 const rowLog) { + PREFETCH_L1(hashTable + relRow); + if (rowLog == 5) { + PREFETCH_L1(hashTable + relRow + 16); + } + PREFETCH_L1(tagTable + relRow); + assert(rowLog == 4 || rowLog == 5); + assert(ZSTD_isAligned(hashTable + relRow, 64)); /* prefetched hash row always 64-byte aligned */ + assert(ZSTD_isAligned(tagTable + relRow, (size_t)1 << rowLog)); /* prefetched tagRow sits on a multiple of 32 or 64 bytes */ +} + +/* ZSTD_row_fillHashCache(): + * Fill up the hash cache starting at idx, prefetching up to ZSTD_ROW_HASH_CACHE_SIZE entries, + * but not beyond iLimit. + */ +static void ZSTD_row_fillHashCache(ZSTD_matchState_t* ms, const BYTE* base, + U32 const rowLog, U32 const mls, + U32 idx, const BYTE* const iLimit) +{ + U32 const* const hashTable = ms->hashTable; + U16 const* const tagTable = ms->tagTable; + U32 const hashLog = ms->rowHashLog; + U32 const maxElemsToPrefetch = (base + idx) > iLimit ? 0 : (U32)(iLimit - (base + idx) + 1); + U32 const lim = idx + MIN(ZSTD_ROW_HASH_CACHE_SIZE, maxElemsToPrefetch); + + for (; idx < lim; ++idx) { + U32 const hash = (U32)ZSTD_hashPtr(base + idx, hashLog + ZSTD_ROW_HASH_TAG_BITS, mls); + U32 const row = (hash >> ZSTD_ROW_HASH_TAG_BITS) << rowLog; + ZSTD_row_prefetch(hashTable, tagTable, row, rowLog); + ms->hashCache[idx & ZSTD_ROW_HASH_CACHE_MASK] = hash; + } + + DEBUGLOG(6, "ZSTD_row_fillHashCache(): [%u %u %u %u %u %u %u %u]", ms->hashCache[0], ms->hashCache[1], + ms->hashCache[2], ms->hashCache[3], ms->hashCache[4], + ms->hashCache[5], ms->hashCache[6], ms->hashCache[7]); +} + +/* ZSTD_row_nextCachedHash(): + * Returns the hash of base + idx, and replaces the hash in the hash cache with the byte at + * base + idx + ZSTD_ROW_HASH_CACHE_SIZE. Also prefetches the appropriate rows from hashTable and tagTable. + */ +FORCE_INLINE_TEMPLATE U32 ZSTD_row_nextCachedHash(U32* cache, U32 const* hashTable, + U16 const* tagTable, BYTE const* base, + U32 idx, U32 const hashLog, + U32 const rowLog, U32 const mls) +{ + U32 const newHash = (U32)ZSTD_hashPtr(base+idx+ZSTD_ROW_HASH_CACHE_SIZE, hashLog + ZSTD_ROW_HASH_TAG_BITS, mls); + U32 const row = (newHash >> ZSTD_ROW_HASH_TAG_BITS) << rowLog; + ZSTD_row_prefetch(hashTable, tagTable, row, rowLog); + { U32 const hash = cache[idx & ZSTD_ROW_HASH_CACHE_MASK]; + cache[idx & ZSTD_ROW_HASH_CACHE_MASK] = newHash; + return hash; + } +} + +/* ZSTD_row_update_internal(): + * Inserts the byte at ip into the appropriate position in the hash table. + * Determines the relative row, and the position within the {16, 32} entry row to insert at. + */ +FORCE_INLINE_TEMPLATE void ZSTD_row_update_internal(ZSTD_matchState_t* ms, const BYTE* ip, + U32 const mls, U32 const rowLog, + U32 const rowMask, U32 const useCache) +{ + U32* const hashTable = ms->hashTable; + U16* const tagTable = ms->tagTable; + U32 const hashLog = ms->rowHashLog; + const BYTE* const base = ms->window.base; + const U32 target = (U32)(ip - base); + U32 idx = ms->nextToUpdate; + + DEBUGLOG(6, "ZSTD_row_update_internal(): nextToUpdate=%u, current=%u", idx, target); + for (; idx < target; ++idx) { + U32 const hash = useCache ? ZSTD_row_nextCachedHash(ms->hashCache, hashTable, tagTable, base, idx, hashLog, rowLog, mls) + : (U32)ZSTD_hashPtr(base + idx, hashLog + ZSTD_ROW_HASH_TAG_BITS, mls); + U32 const relRow = (hash >> ZSTD_ROW_HASH_TAG_BITS) << rowLog; + U32* const row = hashTable + relRow; + BYTE* tagRow = (BYTE*)(tagTable + relRow); /* Though tagTable is laid out as a table of U16, each tag is only 1 byte. + Explicit cast allows us to get exact desired position within each row */ + U32 const pos = ZSTD_row_nextIndex(tagRow, rowMask); + + assert(hash == ZSTD_hashPtr(base + idx, hashLog + ZSTD_ROW_HASH_TAG_BITS, mls)); + ((BYTE*)tagRow)[pos + ZSTD_ROW_HASH_TAG_OFFSET] = hash & ZSTD_ROW_HASH_TAG_MASK; + row[pos] = idx; + } + ms->nextToUpdate = target; +} + +/* ZSTD_row_update(): + * External wrapper for ZSTD_row_update_internal(). Used for filling the hashtable during dictionary + * processing. + */ +void ZSTD_row_update(ZSTD_matchState_t* const ms, const BYTE* ip) { + const U32 rowLog = ms->cParams.searchLog < 5 ? 4 : 5; + const U32 rowMask = (1u << rowLog) - 1; + const U32 mls = MIN(ms->cParams.minMatch, 6 /* mls caps out at 6 */); + + DEBUGLOG(5, "ZSTD_row_update(), rowLog=%u", rowLog); + ZSTD_row_update_internal(ms, ip, mls, rowLog, rowMask, 0 /* dont use cache */); +} + +/* Returns a ZSTD_VecMask (U32) that has the nth bit set to 1 if the newly-computed "tag" matches + * the hash at the nth position in a row of the tagTable. + */ +FORCE_INLINE_TEMPLATE +ZSTD_VecMask ZSTD_row_getMatchMask(const BYTE* const tagRow, const BYTE tag, const U32 head, const U32 rowEntries) { + ZSTD_VecMask matches = 0; + if (rowEntries == 16) { + ZSTD_Vec128 hashes = ZSTD_Vec128_read(tagRow + ZSTD_ROW_HASH_TAG_OFFSET); + ZSTD_Vec128 expandedTags = ZSTD_Vec128_set8(tag); + matches = ZSTD_Vec128_cmpMask8(hashes, expandedTags); + } else if (rowEntries == 32) { + ZSTD_Vec256 hashes = ZSTD_Vec256_read(tagRow + ZSTD_ROW_HASH_TAG_OFFSET); + ZSTD_Vec256 expandedTags = ZSTD_Vec256_set8(tag); + matches = ZSTD_Vec256_cmpMask8(hashes, expandedTags); + } else { + assert(0); + } + /* Each row is a circular buffer beginning at the value of "head". So we must rotate the "matches" bitfield + to match up with the actual layout of the entries within the hashTable */ + return ZSTD_VecMask_rotateRight(matches, head, rowEntries); +} + +/* The high-level approach of the SIMD row based match finder is as follows: + * - Figure out where to insert the new entry: + * - Generate a hash from a byte along with an additional 1-byte "short hash". The additional byte is our "tag" + * - The hashTable is effectively split into groups or "rows" of 16 or 32 entries of U32, and the hash determines + * which row to insert into. + * - Determine the correct position within the row to insert the entry into. Each row of 16 or 32 can + * be considered as a circular buffer with a "head" index that resides in the tagTable. + * - Also insert the "tag" into the equivalent row and position in the tagTable. + * - Note: The tagTable has 17 or 33 1-byte entries per row, due to 16 or 32 tags, and 1 "head" entry. + * The 17 or 33 entry rows are spaced out to occur every 32 or 64 bytes, respectively, + * for alignment/performance reasons, leaving some bytes unused. + * - Use SIMD to efficiently compare the tags in the tagTable to the 1-byte "short hash" and + * generate a bitfield that we can cycle through to check the collisions in the hash table. + * - Pick the longest match. + */ +FORCE_INLINE_TEMPLATE +size_t ZSTD_RowFindBestMatch_generic ( + ZSTD_matchState_t* ms, + const BYTE* const ip, const BYTE* const iLimit, + size_t* offsetPtr, + const U32 mls, const ZSTD_dictMode_e dictMode, + const U32 rowLog) +{ + U32* const hashTable = ms->hashTable; + U16* const tagTable = ms->tagTable; + U32* const hashCache = ms->hashCache; + const U32 hashLog = ms->rowHashLog; + const ZSTD_compressionParameters* const cParams = &ms->cParams; + const BYTE* const base = ms->window.base; + const BYTE* const dictBase = ms->window.dictBase; + const U32 dictLimit = ms->window.dictLimit; + const BYTE* const prefixStart = base + dictLimit; + const BYTE* const dictEnd = dictBase + dictLimit; + const U32 curr = (U32)(ip-base); + const U32 maxDistance = 1U << cParams->windowLog; + const U32 lowestValid = ms->window.lowLimit; + const U32 withinMaxDistance = (curr - lowestValid > maxDistance) ? curr - maxDistance : lowestValid; + const U32 isDictionary = (ms->loadedDictEnd != 0); + const U32 lowLimit = isDictionary ? lowestValid : withinMaxDistance; + const U32 rowEntries = (1U << rowLog); + const U32 rowMask = rowEntries - 1; + const U32 cappedSearchLog = MIN(cParams->searchLog, rowLog); /* nb of searches is capped at nb entries per row */ + U32 nbAttempts = 1U << cappedSearchLog; + size_t ml=4-1; + + /* DMS/DDS variables that may be referenced laster */ + const ZSTD_matchState_t* const dms = ms->dictMatchState; + size_t ddsIdx; + U32 ddsExtraAttempts; /* cctx hash tables are limited in searches, but allow extra searches into DDS */ + U32 dmsTag; + U32* dmsRow; + BYTE* dmsTagRow; + + if (dictMode == ZSTD_dedicatedDictSearch) { + const U32 ddsHashLog = dms->cParams.hashLog - ZSTD_LAZY_DDSS_BUCKET_LOG; + { /* Prefetch DDS hashtable entry */ + ddsIdx = ZSTD_hashPtr(ip, ddsHashLog, mls) << ZSTD_LAZY_DDSS_BUCKET_LOG; + PREFETCH_L1(&dms->hashTable[ddsIdx]); + } + ddsExtraAttempts = cParams->searchLog > rowLog ? 1U << (cParams->searchLog - rowLog) : 0; + } + + if (dictMode == ZSTD_dictMatchState) { + /* Prefetch DMS rows */ + U32* const dmsHashTable = dms->hashTable; + U16* const dmsTagTable = dms->tagTable; + U32 const dmsHash = (U32)ZSTD_hashPtr(ip, dms->rowHashLog + ZSTD_ROW_HASH_TAG_BITS, mls); + U32 const dmsRelRow = (dmsHash >> ZSTD_ROW_HASH_TAG_BITS) << rowLog; + dmsTag = dmsHash & ZSTD_ROW_HASH_TAG_MASK; + dmsTagRow = (BYTE*)(dmsTagTable + dmsRelRow); + dmsRow = dmsHashTable + dmsRelRow; + ZSTD_row_prefetch(dmsHashTable, dmsTagTable, dmsRelRow, rowLog); + } + + /* Update the hashTable and tagTable up to (but not including) ip */ + ZSTD_row_update_internal(ms, ip, mls, rowLog, rowMask, 1 /* useCache */); + { /* Get the hash for ip, compute the appropriate row */ + U32 const hash = ZSTD_row_nextCachedHash(hashCache, hashTable, tagTable, base, curr, hashLog, rowLog, mls); + U32 const relRow = (hash >> ZSTD_ROW_HASH_TAG_BITS) << rowLog; + U32 const tag = hash & ZSTD_ROW_HASH_TAG_MASK; + U32* const row = hashTable + relRow; + BYTE* tagRow = (BYTE*)(tagTable + relRow); + U32 const head = *tagRow & rowMask; + U32 matchBuffer[32 /* maximum nb entries per row */]; + size_t numMatches = 0; + size_t currMatch = 0; + ZSTD_VecMask matches = ZSTD_row_getMatchMask(tagRow, (BYTE)tag, head, rowEntries); + + /* Cycle through the matches and prefetch */ + for (; (matches > 0) && (nbAttempts > 0); --nbAttempts, matches &= (matches - 1)) { + U32 const matchPos = (head + ZSTD_VecMask_next(matches)) & rowMask; + U32 const matchIndex = row[matchPos]; + assert(numMatches < rowEntries); + if (matchIndex < lowLimit) + break; + if ((dictMode != ZSTD_extDict) || matchIndex >= dictLimit) { + PREFETCH_L1(base + matchIndex); + } else { + PREFETCH_L1(dictBase + matchIndex); + } + matchBuffer[numMatches++] = matchIndex; + } + + /* Speed opt: insert current byte into hashtable too. This allows us to avoid one iteration of the loop + in ZSTD_row_update_internal() at the next search. */ + { + U32 const pos = ZSTD_row_nextIndex(tagRow, rowMask); + tagRow[pos + ZSTD_ROW_HASH_TAG_OFFSET] = (BYTE)tag; + row[pos] = ms->nextToUpdate++; + } + + /* Return the longest match */ + for (; currMatch < numMatches; ++currMatch) { + U32 const matchIndex = matchBuffer[currMatch]; + size_t currentMl=0; + assert(matchIndex < curr); + assert(matchIndex >= lowLimit); + + if ((dictMode != ZSTD_extDict) || matchIndex >= dictLimit) { + const BYTE* const match = base + matchIndex; + assert(matchIndex >= dictLimit); /* ensures this is true if dictMode != ZSTD_extDict */ + if (match[ml] == ip[ml]) /* potentially better */ + currentMl = ZSTD_count(ip, match, iLimit); + } else { + const BYTE* const match = dictBase + matchIndex; + assert(match+4 <= dictEnd); + if (MEM_read32(match) == MEM_read32(ip)) /* assumption : matchIndex <= dictLimit-4 (by table construction) */ + currentMl = ZSTD_count_2segments(ip+4, match+4, iLimit, dictEnd, prefixStart) + 4; + } + + /* Save best solution */ + if (currentMl > ml) { + ml = currentMl; + *offsetPtr = curr - matchIndex + ZSTD_REP_MOVE; + if (ip+currentMl == iLimit) break; /* best possible, avoids read overflow on next attempt */ + } + } + } + + if (dictMode == ZSTD_dedicatedDictSearch) { + ml = ZSTD_dedicatedDictSearch_lazy_search(offsetPtr, ml, nbAttempts + ddsExtraAttempts, dms, + ip, iLimit, prefixStart, curr, dictLimit, ddsIdx); + } else if (dictMode == ZSTD_dictMatchState) { + /* TODO: Measure and potentially add prefetching to DMS */ + const U32 dmsLowestIndex = dms->window.dictLimit; + const BYTE* const dmsBase = dms->window.base; + const BYTE* const dmsEnd = dms->window.nextSrc; + const U32 dmsSize = (U32)(dmsEnd - dmsBase); + const U32 dmsIndexDelta = dictLimit - dmsSize; + + { U32 const head = *dmsTagRow & rowMask; + U32 matchBuffer[32 /* maximum nb row entries */]; + size_t numMatches = 0; + size_t currMatch = 0; + ZSTD_VecMask matches = ZSTD_row_getMatchMask(dmsTagRow, (BYTE)dmsTag, head, rowEntries); + + for (; (matches > 0) && (nbAttempts > 0); --nbAttempts, matches &= (matches - 1)) { + U32 const matchPos = (head + ZSTD_VecMask_next(matches)) & rowMask; + U32 const matchIndex = dmsRow[matchPos]; + if (matchIndex < dmsLowestIndex) + break; + PREFETCH_L1(dmsBase + matchIndex); + matchBuffer[numMatches++] = matchIndex; + } + + /* Return the longest match */ + for (; currMatch < numMatches; ++currMatch) { + U32 const matchIndex = matchBuffer[currMatch]; + size_t currentMl=0; + assert(matchIndex >= dmsLowestIndex); + assert(matchIndex < curr); + + { const BYTE* const match = dmsBase + matchIndex; + assert(match+4 <= dmsEnd); + if (MEM_read32(match) == MEM_read32(ip)) + currentMl = ZSTD_count_2segments(ip+4, match+4, iLimit, dmsEnd, prefixStart) + 4; + } + + if (currentMl > ml) { + ml = currentMl; + *offsetPtr = curr - (matchIndex + dmsIndexDelta) + ZSTD_REP_MOVE; + if (ip+currentMl == iLimit) break; + } + } + } + } + return ml; +} + +/* Inlining is important to hardwire a hot branch (template emulation) */ +FORCE_INLINE_TEMPLATE size_t ZSTD_RowFindBestMatch_selectMLS ( + ZSTD_matchState_t* ms, + const BYTE* ip, const BYTE* const iLimit, + const ZSTD_dictMode_e dictMode, size_t* offsetPtr, const U32 rowLog) +{ + switch(ms->cParams.minMatch) + { + default : /* includes case 3 */ + case 4 : return ZSTD_RowFindBestMatch_generic(ms, ip, iLimit, offsetPtr, 4, dictMode, rowLog); + case 5 : return ZSTD_RowFindBestMatch_generic(ms, ip, iLimit, offsetPtr, 5, dictMode, rowLog); + case 7 : + case 6 : return ZSTD_RowFindBestMatch_generic(ms, ip, iLimit, offsetPtr, 6, dictMode, rowLog); + } +} + +FORCE_INLINE_TEMPLATE size_t ZSTD_RowFindBestMatch_selectRowLog ( + ZSTD_matchState_t* ms, + const BYTE* ip, const BYTE* const iLimit, + size_t* offsetPtr) +{ + const U32 cappedSearchLog = MIN(ms->cParams.searchLog, 5); + switch(cappedSearchLog) + { + default : + case 4 : return ZSTD_RowFindBestMatch_selectMLS(ms, ip, iLimit, ZSTD_noDict, offsetPtr, 4); + case 5 : return ZSTD_RowFindBestMatch_selectMLS(ms, ip, iLimit, ZSTD_noDict, offsetPtr, 5); + } +} + +FORCE_INLINE_TEMPLATE size_t ZSTD_RowFindBestMatch_dictMatchState_selectRowLog( + ZSTD_matchState_t* ms, + const BYTE* ip, const BYTE* const iLimit, + size_t* offsetPtr) +{ + const U32 cappedSearchLog = MIN(ms->cParams.searchLog, 5); + switch(cappedSearchLog) + { + default : + case 4 : return ZSTD_RowFindBestMatch_selectMLS(ms, ip, iLimit, ZSTD_dictMatchState, offsetPtr, 4); + case 5 : return ZSTD_RowFindBestMatch_selectMLS(ms, ip, iLimit, ZSTD_dictMatchState, offsetPtr, 5); + } +} + +FORCE_INLINE_TEMPLATE size_t ZSTD_RowFindBestMatch_dedicatedDictSearch_selectRowLog( + ZSTD_matchState_t* ms, + const BYTE* ip, const BYTE* const iLimit, + size_t* offsetPtr) +{ + const U32 cappedSearchLog = MIN(ms->cParams.searchLog, 5); + switch(cappedSearchLog) + { + default : + case 4 : return ZSTD_RowFindBestMatch_selectMLS(ms, ip, iLimit, ZSTD_dedicatedDictSearch, offsetPtr, 4); + case 5 : return ZSTD_RowFindBestMatch_selectMLS(ms, ip, iLimit, ZSTD_dedicatedDictSearch, offsetPtr, 5); + } +} + +FORCE_INLINE_TEMPLATE size_t ZSTD_RowFindBestMatch_extDict_selectRowLog ( + ZSTD_matchState_t* ms, + const BYTE* ip, const BYTE* const iLimit, + size_t* offsetPtr) +{ + const U32 cappedSearchLog = MIN(ms->cParams.searchLog, 5); + switch(cappedSearchLog) + { + default : + case 4 : return ZSTD_RowFindBestMatch_selectMLS(ms, ip, iLimit, ZSTD_extDict, offsetPtr, 4); + case 5 : return ZSTD_RowFindBestMatch_selectMLS(ms, ip, iLimit, ZSTD_extDict, offsetPtr, 5); + } +} + + +/* ******************************* +* Common parser - lazy strategy +*********************************/ +typedef enum { search_hashChain=0, search_binaryTree=1, search_rowHash=2 } searchMethod_e; + +FORCE_INLINE_TEMPLATE size_t +ZSTD_compressBlock_lazy_generic( + ZSTD_matchState_t* ms, seqStore_t* seqStore, + U32 rep[ZSTD_REP_NUM], + const void* src, size_t srcSize, + const searchMethod_e searchMethod, const U32 depth, + ZSTD_dictMode_e const dictMode) +{ + const BYTE* const istart = (const BYTE*)src; + const BYTE* ip = istart; + const BYTE* anchor = istart; + const BYTE* const iend = istart + srcSize; + const BYTE* const ilimit = searchMethod == search_rowHash ? iend - 8 - ZSTD_ROW_HASH_CACHE_SIZE : iend - 8; + const BYTE* const base = ms->window.base; + const U32 prefixLowestIndex = ms->window.dictLimit; + const BYTE* const prefixLowest = base + prefixLowestIndex; + const U32 rowLog = ms->cParams.searchLog < 5 ? 4 : 5; + + typedef size_t (*searchMax_f)( + ZSTD_matchState_t* ms, + const BYTE* ip, const BYTE* iLimit, size_t* offsetPtr); + + /** + * This table is indexed first by the four ZSTD_dictMode_e values, and then + * by the two searchMethod_e values. NULLs are placed for configurations + * that should never occur (extDict modes go to the other implementation + * below and there is no DDSS for binary tree search yet). + */ + const searchMax_f searchFuncs[4][3] = { + { + ZSTD_HcFindBestMatch_selectMLS, + ZSTD_BtFindBestMatch_selectMLS, + ZSTD_RowFindBestMatch_selectRowLog + }, + { + NULL, + NULL, + NULL + }, + { + ZSTD_HcFindBestMatch_dictMatchState_selectMLS, + ZSTD_BtFindBestMatch_dictMatchState_selectMLS, + ZSTD_RowFindBestMatch_dictMatchState_selectRowLog + }, + { + ZSTD_HcFindBestMatch_dedicatedDictSearch_selectMLS, + NULL, + ZSTD_RowFindBestMatch_dedicatedDictSearch_selectRowLog + } + }; + + searchMax_f const searchMax = searchFuncs[dictMode][(int)searchMethod]; + U32 offset_1 = rep[0], offset_2 = rep[1], savedOffset=0; + + const int isDMS = dictMode == ZSTD_dictMatchState; + const int isDDS = dictMode == ZSTD_dedicatedDictSearch; + const int isDxS = isDMS || isDDS; + const ZSTD_matchState_t* const dms = ms->dictMatchState; + const U32 dictLowestIndex = isDxS ? dms->window.dictLimit : 0; + const BYTE* const dictBase = isDxS ? dms->window.base : NULL; + const BYTE* const dictLowest = isDxS ? dictBase + dictLowestIndex : NULL; + const BYTE* const dictEnd = isDxS ? dms->window.nextSrc : NULL; + const U32 dictIndexDelta = isDxS ? + prefixLowestIndex - (U32)(dictEnd - dictBase) : + 0; + const U32 dictAndPrefixLength = (U32)((ip - prefixLowest) + (dictEnd - dictLowest)); + + assert(searchMax != NULL); + + DEBUGLOG(5, "ZSTD_compressBlock_lazy_generic (dictMode=%u) (searchFunc=%u)", (U32)dictMode, (U32)searchMethod); + ip += (dictAndPrefixLength == 0); + if (dictMode == ZSTD_noDict) { + U32 const curr = (U32)(ip - base); + U32 const windowLow = ZSTD_getLowestPrefixIndex(ms, curr, ms->cParams.windowLog); + U32 const maxRep = curr - windowLow; + if (offset_2 > maxRep) savedOffset = offset_2, offset_2 = 0; + if (offset_1 > maxRep) savedOffset = offset_1, offset_1 = 0; + } + if (isDxS) { + /* dictMatchState repCode checks don't currently handle repCode == 0 + * disabling. */ + assert(offset_1 <= dictAndPrefixLength); + assert(offset_2 <= dictAndPrefixLength); + } + + if (searchMethod == search_rowHash) { + ZSTD_row_fillHashCache(ms, base, rowLog, + MIN(ms->cParams.minMatch, 6 /* mls caps out at 6 */), + ms->nextToUpdate, ilimit); + } + + /* Match Loop */ +#if defined(__GNUC__) && defined(__x86_64__) + /* I've measured random a 5% speed loss on levels 5 & 6 (greedy) when the + * code alignment is perturbed. To fix the instability align the loop on 32-bytes. + */ + __asm__(".p2align 5"); +#endif + while (ip < ilimit) { + size_t matchLength=0; + size_t offset=0; + const BYTE* start=ip+1; + + /* check repCode */ + if (isDxS) { + const U32 repIndex = (U32)(ip - base) + 1 - offset_1; + const BYTE* repMatch = ((dictMode == ZSTD_dictMatchState || dictMode == ZSTD_dedicatedDictSearch) + && repIndex < prefixLowestIndex) ? + dictBase + (repIndex - dictIndexDelta) : + base + repIndex; + if (((U32)((prefixLowestIndex-1) - repIndex) >= 3 /* intentional underflow */) + && (MEM_read32(repMatch) == MEM_read32(ip+1)) ) { + const BYTE* repMatchEnd = repIndex < prefixLowestIndex ? dictEnd : iend; + matchLength = ZSTD_count_2segments(ip+1+4, repMatch+4, iend, repMatchEnd, prefixLowest) + 4; + if (depth==0) goto _storeSequence; + } + } + if ( dictMode == ZSTD_noDict + && ((offset_1 > 0) & (MEM_read32(ip+1-offset_1) == MEM_read32(ip+1)))) { + matchLength = ZSTD_count(ip+1+4, ip+1+4-offset_1, iend) + 4; + if (depth==0) goto _storeSequence; + } + + /* first search (depth 0) */ + { size_t offsetFound = 999999999; + size_t const ml2 = searchMax(ms, ip, iend, &offsetFound); + if (ml2 > matchLength) + matchLength = ml2, start = ip, offset=offsetFound; + } + + if (matchLength < 4) { + ip += ((ip-anchor) >> kSearchStrength) + 1; /* jump faster over incompressible sections */ + continue; + } + + /* let's try to find a better solution */ + if (depth>=1) + while (ip0) & (MEM_read32(ip) == MEM_read32(ip - offset_1)))) { + size_t const mlRep = ZSTD_count(ip+4, ip+4-offset_1, iend) + 4; + int const gain2 = (int)(mlRep * 3); + int const gain1 = (int)(matchLength*3 - ZSTD_highbit32((U32)offset+1) + 1); + if ((mlRep >= 4) && (gain2 > gain1)) + matchLength = mlRep, offset = 0, start = ip; + } + if (isDxS) { + const U32 repIndex = (U32)(ip - base) - offset_1; + const BYTE* repMatch = repIndex < prefixLowestIndex ? + dictBase + (repIndex - dictIndexDelta) : + base + repIndex; + if (((U32)((prefixLowestIndex-1) - repIndex) >= 3 /* intentional underflow */) + && (MEM_read32(repMatch) == MEM_read32(ip)) ) { + const BYTE* repMatchEnd = repIndex < prefixLowestIndex ? dictEnd : iend; + size_t const mlRep = ZSTD_count_2segments(ip+4, repMatch+4, iend, repMatchEnd, prefixLowest) + 4; + int const gain2 = (int)(mlRep * 3); + int const gain1 = (int)(matchLength*3 - ZSTD_highbit32((U32)offset+1) + 1); + if ((mlRep >= 4) && (gain2 > gain1)) + matchLength = mlRep, offset = 0, start = ip; + } + } + { size_t offset2=999999999; + size_t const ml2 = searchMax(ms, ip, iend, &offset2); + int const gain2 = (int)(ml2*4 - ZSTD_highbit32((U32)offset2+1)); /* raw approx */ + int const gain1 = (int)(matchLength*4 - ZSTD_highbit32((U32)offset+1) + 4); + if ((ml2 >= 4) && (gain2 > gain1)) { + matchLength = ml2, offset = offset2, start = ip; + continue; /* search a better one */ + } } + + /* let's find an even better one */ + if ((depth==2) && (ip0) & (MEM_read32(ip) == MEM_read32(ip - offset_1)))) { + size_t const mlRep = ZSTD_count(ip+4, ip+4-offset_1, iend) + 4; + int const gain2 = (int)(mlRep * 4); + int const gain1 = (int)(matchLength*4 - ZSTD_highbit32((U32)offset+1) + 1); + if ((mlRep >= 4) && (gain2 > gain1)) + matchLength = mlRep, offset = 0, start = ip; + } + if (isDxS) { + const U32 repIndex = (U32)(ip - base) - offset_1; + const BYTE* repMatch = repIndex < prefixLowestIndex ? + dictBase + (repIndex - dictIndexDelta) : + base + repIndex; + if (((U32)((prefixLowestIndex-1) - repIndex) >= 3 /* intentional underflow */) + && (MEM_read32(repMatch) == MEM_read32(ip)) ) { + const BYTE* repMatchEnd = repIndex < prefixLowestIndex ? dictEnd : iend; + size_t const mlRep = ZSTD_count_2segments(ip+4, repMatch+4, iend, repMatchEnd, prefixLowest) + 4; + int const gain2 = (int)(mlRep * 4); + int const gain1 = (int)(matchLength*4 - ZSTD_highbit32((U32)offset+1) + 1); + if ((mlRep >= 4) && (gain2 > gain1)) + matchLength = mlRep, offset = 0, start = ip; + } + } + { size_t offset2=999999999; + size_t const ml2 = searchMax(ms, ip, iend, &offset2); + int const gain2 = (int)(ml2*4 - ZSTD_highbit32((U32)offset2+1)); /* raw approx */ + int const gain1 = (int)(matchLength*4 - ZSTD_highbit32((U32)offset+1) + 7); + if ((ml2 >= 4) && (gain2 > gain1)) { + matchLength = ml2, offset = offset2, start = ip; + continue; + } } } + break; /* nothing found : store previous solution */ + } + + /* NOTE: + * start[-offset+ZSTD_REP_MOVE-1] is undefined behavior. + * (-offset+ZSTD_REP_MOVE-1) is unsigned, and is added to start, which + * overflows the pointer, which is undefined behavior. + */ + /* catch up */ + if (offset) { + if (dictMode == ZSTD_noDict) { + while ( ((start > anchor) & (start - (offset-ZSTD_REP_MOVE) > prefixLowest)) + && (start[-1] == (start-(offset-ZSTD_REP_MOVE))[-1]) ) /* only search for offset within prefix */ + { start--; matchLength++; } + } + if (isDxS) { + U32 const matchIndex = (U32)((start-base) - (offset - ZSTD_REP_MOVE)); + const BYTE* match = (matchIndex < prefixLowestIndex) ? dictBase + matchIndex - dictIndexDelta : base + matchIndex; + const BYTE* const mStart = (matchIndex < prefixLowestIndex) ? dictLowest : prefixLowest; + while ((start>anchor) && (match>mStart) && (start[-1] == match[-1])) { start--; match--; matchLength++; } /* catch up */ + } + offset_2 = offset_1; offset_1 = (U32)(offset - ZSTD_REP_MOVE); + } + /* store sequence */ +_storeSequence: + { size_t const litLength = start - anchor; + ZSTD_storeSeq(seqStore, litLength, anchor, iend, (U32)offset, matchLength-MINMATCH); + anchor = ip = start + matchLength; + } + + /* check immediate repcode */ + if (isDxS) { + while (ip <= ilimit) { + U32 const current2 = (U32)(ip-base); + U32 const repIndex = current2 - offset_2; + const BYTE* repMatch = repIndex < prefixLowestIndex ? + dictBase - dictIndexDelta + repIndex : + base + repIndex; + if ( ((U32)((prefixLowestIndex-1) - (U32)repIndex) >= 3 /* intentional overflow */) + && (MEM_read32(repMatch) == MEM_read32(ip)) ) { + const BYTE* const repEnd2 = repIndex < prefixLowestIndex ? dictEnd : iend; + matchLength = ZSTD_count_2segments(ip+4, repMatch+4, iend, repEnd2, prefixLowest) + 4; + offset = offset_2; offset_2 = offset_1; offset_1 = (U32)offset; /* swap offset_2 <=> offset_1 */ + ZSTD_storeSeq(seqStore, 0, anchor, iend, 0, matchLength-MINMATCH); + ip += matchLength; + anchor = ip; + continue; + } + break; + } + } + + if (dictMode == ZSTD_noDict) { + while ( ((ip <= ilimit) & (offset_2>0)) + && (MEM_read32(ip) == MEM_read32(ip - offset_2)) ) { + /* store sequence */ + matchLength = ZSTD_count(ip+4, ip+4-offset_2, iend) + 4; + offset = offset_2; offset_2 = offset_1; offset_1 = (U32)offset; /* swap repcodes */ + ZSTD_storeSeq(seqStore, 0, anchor, iend, 0, matchLength-MINMATCH); + ip += matchLength; + anchor = ip; + continue; /* faster when present ... (?) */ + } } } + + /* Save reps for next block */ + rep[0] = offset_1 ? offset_1 : savedOffset; + rep[1] = offset_2 ? offset_2 : savedOffset; + + /* Return the last literals size */ + return (size_t)(iend - anchor); +} + + +size_t ZSTD_compressBlock_btlazy2( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize) +{ + return ZSTD_compressBlock_lazy_generic(ms, seqStore, rep, src, srcSize, search_binaryTree, 2, ZSTD_noDict); +} + +size_t ZSTD_compressBlock_lazy2( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize) +{ + return ZSTD_compressBlock_lazy_generic(ms, seqStore, rep, src, srcSize, search_hashChain, 2, ZSTD_noDict); +} + +size_t ZSTD_compressBlock_lazy( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize) +{ + return ZSTD_compressBlock_lazy_generic(ms, seqStore, rep, src, srcSize, search_hashChain, 1, ZSTD_noDict); +} + +size_t ZSTD_compressBlock_greedy( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize) +{ + return ZSTD_compressBlock_lazy_generic(ms, seqStore, rep, src, srcSize, search_hashChain, 0, ZSTD_noDict); +} + +size_t ZSTD_compressBlock_btlazy2_dictMatchState( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize) +{ + return ZSTD_compressBlock_lazy_generic(ms, seqStore, rep, src, srcSize, search_binaryTree, 2, ZSTD_dictMatchState); +} + +size_t ZSTD_compressBlock_lazy2_dictMatchState( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize) +{ + return ZSTD_compressBlock_lazy_generic(ms, seqStore, rep, src, srcSize, search_hashChain, 2, ZSTD_dictMatchState); +} + +size_t ZSTD_compressBlock_lazy_dictMatchState( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize) +{ + return ZSTD_compressBlock_lazy_generic(ms, seqStore, rep, src, srcSize, search_hashChain, 1, ZSTD_dictMatchState); +} + +size_t ZSTD_compressBlock_greedy_dictMatchState( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize) +{ + return ZSTD_compressBlock_lazy_generic(ms, seqStore, rep, src, srcSize, search_hashChain, 0, ZSTD_dictMatchState); +} + + +size_t ZSTD_compressBlock_lazy2_dedicatedDictSearch( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize) +{ + return ZSTD_compressBlock_lazy_generic(ms, seqStore, rep, src, srcSize, search_hashChain, 2, ZSTD_dedicatedDictSearch); +} + +size_t ZSTD_compressBlock_lazy_dedicatedDictSearch( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize) +{ + return ZSTD_compressBlock_lazy_generic(ms, seqStore, rep, src, srcSize, search_hashChain, 1, ZSTD_dedicatedDictSearch); +} + +size_t ZSTD_compressBlock_greedy_dedicatedDictSearch( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize) +{ + return ZSTD_compressBlock_lazy_generic(ms, seqStore, rep, src, srcSize, search_hashChain, 0, ZSTD_dedicatedDictSearch); +} + +/* Row-based matchfinder */ +size_t ZSTD_compressBlock_lazy2_row( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize) +{ + return ZSTD_compressBlock_lazy_generic(ms, seqStore, rep, src, srcSize, search_rowHash, 2, ZSTD_noDict); +} + +size_t ZSTD_compressBlock_lazy_row( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize) +{ + return ZSTD_compressBlock_lazy_generic(ms, seqStore, rep, src, srcSize, search_rowHash, 1, ZSTD_noDict); +} + +size_t ZSTD_compressBlock_greedy_row( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize) +{ + return ZSTD_compressBlock_lazy_generic(ms, seqStore, rep, src, srcSize, search_rowHash, 0, ZSTD_noDict); +} + +size_t ZSTD_compressBlock_lazy2_dictMatchState_row( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize) +{ + return ZSTD_compressBlock_lazy_generic(ms, seqStore, rep, src, srcSize, search_rowHash, 2, ZSTD_dictMatchState); +} + +size_t ZSTD_compressBlock_lazy_dictMatchState_row( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize) +{ + return ZSTD_compressBlock_lazy_generic(ms, seqStore, rep, src, srcSize, search_rowHash, 1, ZSTD_dictMatchState); +} + +size_t ZSTD_compressBlock_greedy_dictMatchState_row( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize) +{ + return ZSTD_compressBlock_lazy_generic(ms, seqStore, rep, src, srcSize, search_rowHash, 0, ZSTD_dictMatchState); +} + + +size_t ZSTD_compressBlock_lazy2_dedicatedDictSearch_row( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize) +{ + return ZSTD_compressBlock_lazy_generic(ms, seqStore, rep, src, srcSize, search_rowHash, 2, ZSTD_dedicatedDictSearch); +} + +size_t ZSTD_compressBlock_lazy_dedicatedDictSearch_row( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize) +{ + return ZSTD_compressBlock_lazy_generic(ms, seqStore, rep, src, srcSize, search_rowHash, 1, ZSTD_dedicatedDictSearch); +} + +size_t ZSTD_compressBlock_greedy_dedicatedDictSearch_row( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize) +{ + return ZSTD_compressBlock_lazy_generic(ms, seqStore, rep, src, srcSize, search_rowHash, 0, ZSTD_dedicatedDictSearch); +} + +FORCE_INLINE_TEMPLATE +size_t ZSTD_compressBlock_lazy_extDict_generic( + ZSTD_matchState_t* ms, seqStore_t* seqStore, + U32 rep[ZSTD_REP_NUM], + const void* src, size_t srcSize, + const searchMethod_e searchMethod, const U32 depth) +{ + const BYTE* const istart = (const BYTE*)src; + const BYTE* ip = istart; + const BYTE* anchor = istart; + const BYTE* const iend = istart + srcSize; + const BYTE* const ilimit = searchMethod == search_rowHash ? iend - 8 - ZSTD_ROW_HASH_CACHE_SIZE : iend - 8; + const BYTE* const base = ms->window.base; + const U32 dictLimit = ms->window.dictLimit; + const BYTE* const prefixStart = base + dictLimit; + const BYTE* const dictBase = ms->window.dictBase; + const BYTE* const dictEnd = dictBase + dictLimit; + const BYTE* const dictStart = dictBase + ms->window.lowLimit; + const U32 windowLog = ms->cParams.windowLog; + const U32 rowLog = ms->cParams.searchLog < 5 ? 4 : 5; + + typedef size_t (*searchMax_f)( + ZSTD_matchState_t* ms, + const BYTE* ip, const BYTE* iLimit, size_t* offsetPtr); + const searchMax_f searchFuncs[3] = { + ZSTD_HcFindBestMatch_extDict_selectMLS, + ZSTD_BtFindBestMatch_extDict_selectMLS, + ZSTD_RowFindBestMatch_extDict_selectRowLog + }; + searchMax_f searchMax = searchFuncs[(int)searchMethod]; + U32 offset_1 = rep[0], offset_2 = rep[1]; + + DEBUGLOG(5, "ZSTD_compressBlock_lazy_extDict_generic (searchFunc=%u)", (U32)searchMethod); + + /* init */ + ip += (ip == prefixStart); + if (searchMethod == search_rowHash) { + ZSTD_row_fillHashCache(ms, base, rowLog, + MIN(ms->cParams.minMatch, 6 /* mls caps out at 6 */), + ms->nextToUpdate, ilimit); + } + + /* Match Loop */ +#if defined(__GNUC__) && defined(__x86_64__) + /* I've measured random a 5% speed loss on levels 5 & 6 (greedy) when the + * code alignment is perturbed. To fix the instability align the loop on 32-bytes. + */ + __asm__(".p2align 5"); +#endif + while (ip < ilimit) { + size_t matchLength=0; + size_t offset=0; + const BYTE* start=ip+1; + U32 curr = (U32)(ip-base); + + /* check repCode */ + { const U32 windowLow = ZSTD_getLowestMatchIndex(ms, curr+1, windowLog); + const U32 repIndex = (U32)(curr+1 - offset_1); + const BYTE* const repBase = repIndex < dictLimit ? dictBase : base; + const BYTE* const repMatch = repBase + repIndex; + if ( ((U32)((dictLimit-1) - repIndex) >= 3) /* intentional overflow */ + & (offset_1 < curr+1 - windowLow) ) /* note: we are searching at curr+1 */ + if (MEM_read32(ip+1) == MEM_read32(repMatch)) { + /* repcode detected we should take it */ + const BYTE* const repEnd = repIndex < dictLimit ? dictEnd : iend; + matchLength = ZSTD_count_2segments(ip+1+4, repMatch+4, iend, repEnd, prefixStart) + 4; + if (depth==0) goto _storeSequence; + } } + + /* first search (depth 0) */ + { size_t offsetFound = 999999999; + size_t const ml2 = searchMax(ms, ip, iend, &offsetFound); + if (ml2 > matchLength) + matchLength = ml2, start = ip, offset=offsetFound; + } + + if (matchLength < 4) { + ip += ((ip-anchor) >> kSearchStrength) + 1; /* jump faster over incompressible sections */ + continue; + } + + /* let's try to find a better solution */ + if (depth>=1) + while (ip= 3) /* intentional overflow : do not test positions overlapping 2 memory segments */ + & (offset_1 < curr - windowLow) ) /* equivalent to `curr > repIndex >= windowLow` */ + if (MEM_read32(ip) == MEM_read32(repMatch)) { + /* repcode detected */ + const BYTE* const repEnd = repIndex < dictLimit ? dictEnd : iend; + size_t const repLength = ZSTD_count_2segments(ip+4, repMatch+4, iend, repEnd, prefixStart) + 4; + int const gain2 = (int)(repLength * 3); + int const gain1 = (int)(matchLength*3 - ZSTD_highbit32((U32)offset+1) + 1); + if ((repLength >= 4) && (gain2 > gain1)) + matchLength = repLength, offset = 0, start = ip; + } } + + /* search match, depth 1 */ + { size_t offset2=999999999; + size_t const ml2 = searchMax(ms, ip, iend, &offset2); + int const gain2 = (int)(ml2*4 - ZSTD_highbit32((U32)offset2+1)); /* raw approx */ + int const gain1 = (int)(matchLength*4 - ZSTD_highbit32((U32)offset+1) + 4); + if ((ml2 >= 4) && (gain2 > gain1)) { + matchLength = ml2, offset = offset2, start = ip; + continue; /* search a better one */ + } } + + /* let's find an even better one */ + if ((depth==2) && (ip= 3) /* intentional overflow : do not test positions overlapping 2 memory segments */ + & (offset_1 < curr - windowLow) ) /* equivalent to `curr > repIndex >= windowLow` */ + if (MEM_read32(ip) == MEM_read32(repMatch)) { + /* repcode detected */ + const BYTE* const repEnd = repIndex < dictLimit ? dictEnd : iend; + size_t const repLength = ZSTD_count_2segments(ip+4, repMatch+4, iend, repEnd, prefixStart) + 4; + int const gain2 = (int)(repLength * 4); + int const gain1 = (int)(matchLength*4 - ZSTD_highbit32((U32)offset+1) + 1); + if ((repLength >= 4) && (gain2 > gain1)) + matchLength = repLength, offset = 0, start = ip; + } } + + /* search match, depth 2 */ + { size_t offset2=999999999; + size_t const ml2 = searchMax(ms, ip, iend, &offset2); + int const gain2 = (int)(ml2*4 - ZSTD_highbit32((U32)offset2+1)); /* raw approx */ + int const gain1 = (int)(matchLength*4 - ZSTD_highbit32((U32)offset+1) + 7); + if ((ml2 >= 4) && (gain2 > gain1)) { + matchLength = ml2, offset = offset2, start = ip; + continue; + } } } + break; /* nothing found : store previous solution */ + } + + /* catch up */ + if (offset) { + U32 const matchIndex = (U32)((start-base) - (offset - ZSTD_REP_MOVE)); + const BYTE* match = (matchIndex < dictLimit) ? dictBase + matchIndex : base + matchIndex; + const BYTE* const mStart = (matchIndex < dictLimit) ? dictStart : prefixStart; + while ((start>anchor) && (match>mStart) && (start[-1] == match[-1])) { start--; match--; matchLength++; } /* catch up */ + offset_2 = offset_1; offset_1 = (U32)(offset - ZSTD_REP_MOVE); + } + + /* store sequence */ +_storeSequence: + { size_t const litLength = start - anchor; + ZSTD_storeSeq(seqStore, litLength, anchor, iend, (U32)offset, matchLength-MINMATCH); + anchor = ip = start + matchLength; + } + + /* check immediate repcode */ + while (ip <= ilimit) { + const U32 repCurrent = (U32)(ip-base); + const U32 windowLow = ZSTD_getLowestMatchIndex(ms, repCurrent, windowLog); + const U32 repIndex = repCurrent - offset_2; + const BYTE* const repBase = repIndex < dictLimit ? dictBase : base; + const BYTE* const repMatch = repBase + repIndex; + if ( ((U32)((dictLimit-1) - repIndex) >= 3) /* intentional overflow : do not test positions overlapping 2 memory segments */ + & (offset_2 < repCurrent - windowLow) ) /* equivalent to `curr > repIndex >= windowLow` */ + if (MEM_read32(ip) == MEM_read32(repMatch)) { + /* repcode detected we should take it */ + const BYTE* const repEnd = repIndex < dictLimit ? dictEnd : iend; + matchLength = ZSTD_count_2segments(ip+4, repMatch+4, iend, repEnd, prefixStart) + 4; + offset = offset_2; offset_2 = offset_1; offset_1 = (U32)offset; /* swap offset history */ + ZSTD_storeSeq(seqStore, 0, anchor, iend, 0, matchLength-MINMATCH); + ip += matchLength; + anchor = ip; + continue; /* faster when present ... (?) */ + } + break; + } } + + /* Save reps for next block */ + rep[0] = offset_1; + rep[1] = offset_2; + + /* Return the last literals size */ + return (size_t)(iend - anchor); +} + + +size_t ZSTD_compressBlock_greedy_extDict( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize) +{ + return ZSTD_compressBlock_lazy_extDict_generic(ms, seqStore, rep, src, srcSize, search_hashChain, 0); +} + +size_t ZSTD_compressBlock_lazy_extDict( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize) + +{ + return ZSTD_compressBlock_lazy_extDict_generic(ms, seqStore, rep, src, srcSize, search_hashChain, 1); +} + +size_t ZSTD_compressBlock_lazy2_extDict( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize) + +{ + return ZSTD_compressBlock_lazy_extDict_generic(ms, seqStore, rep, src, srcSize, search_hashChain, 2); +} + +size_t ZSTD_compressBlock_btlazy2_extDict( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize) + +{ + return ZSTD_compressBlock_lazy_extDict_generic(ms, seqStore, rep, src, srcSize, search_binaryTree, 2); +} + +size_t ZSTD_compressBlock_greedy_extDict_row( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize) +{ + return ZSTD_compressBlock_lazy_extDict_generic(ms, seqStore, rep, src, srcSize, search_rowHash, 0); +} + +size_t ZSTD_compressBlock_lazy_extDict_row( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize) + +{ + return ZSTD_compressBlock_lazy_extDict_generic(ms, seqStore, rep, src, srcSize, search_rowHash, 1); +} + +size_t ZSTD_compressBlock_lazy2_extDict_row( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize) + +{ + return ZSTD_compressBlock_lazy_extDict_generic(ms, seqStore, rep, src, srcSize, search_rowHash, 2); +} diff --git a/dependencies/zstd-1.5.0/lib/compress/zstd_lazy.h b/dependencies/zstd-1.5.0/lib/compress/zstd_lazy.h new file mode 100644 index 0000000..150f7b3 --- /dev/null +++ b/dependencies/zstd-1.5.0/lib/compress/zstd_lazy.h @@ -0,0 +1,125 @@ +/* + * Copyright (c) Yann Collet, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + +#ifndef ZSTD_LAZY_H +#define ZSTD_LAZY_H + +#if defined (__cplusplus) +extern "C" { +#endif + +#include "zstd_compress_internal.h" + +/** + * Dedicated Dictionary Search Structure bucket log. In the + * ZSTD_dedicatedDictSearch mode, the hashTable has + * 2 ** ZSTD_LAZY_DDSS_BUCKET_LOG entries in each bucket, rather than just + * one. + */ +#define ZSTD_LAZY_DDSS_BUCKET_LOG 2 + +U32 ZSTD_insertAndFindFirstIndex(ZSTD_matchState_t* ms, const BYTE* ip); +void ZSTD_row_update(ZSTD_matchState_t* const ms, const BYTE* ip); + +void ZSTD_dedicatedDictSearch_lazy_loadDictionary(ZSTD_matchState_t* ms, const BYTE* const ip); + +void ZSTD_preserveUnsortedMark (U32* const table, U32 const size, U32 const reducerValue); /*! used in ZSTD_reduceIndex(). preemptively increase value of ZSTD_DUBT_UNSORTED_MARK */ + +size_t ZSTD_compressBlock_btlazy2( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize); +size_t ZSTD_compressBlock_lazy2( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize); +size_t ZSTD_compressBlock_lazy( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize); +size_t ZSTD_compressBlock_greedy( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize); +size_t ZSTD_compressBlock_lazy2_row( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize); +size_t ZSTD_compressBlock_lazy_row( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize); +size_t ZSTD_compressBlock_greedy_row( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize); + +size_t ZSTD_compressBlock_btlazy2_dictMatchState( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize); +size_t ZSTD_compressBlock_lazy2_dictMatchState( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize); +size_t ZSTD_compressBlock_lazy_dictMatchState( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize); +size_t ZSTD_compressBlock_greedy_dictMatchState( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize); +size_t ZSTD_compressBlock_lazy2_dictMatchState_row( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize); +size_t ZSTD_compressBlock_lazy_dictMatchState_row( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize); +size_t ZSTD_compressBlock_greedy_dictMatchState_row( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize); + +size_t ZSTD_compressBlock_lazy2_dedicatedDictSearch( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize); +size_t ZSTD_compressBlock_lazy_dedicatedDictSearch( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize); +size_t ZSTD_compressBlock_greedy_dedicatedDictSearch( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize); +size_t ZSTD_compressBlock_lazy2_dedicatedDictSearch_row( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize); +size_t ZSTD_compressBlock_lazy_dedicatedDictSearch_row( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize); +size_t ZSTD_compressBlock_greedy_dedicatedDictSearch_row( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize); + +size_t ZSTD_compressBlock_greedy_extDict( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize); +size_t ZSTD_compressBlock_lazy_extDict( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize); +size_t ZSTD_compressBlock_lazy2_extDict( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize); +size_t ZSTD_compressBlock_greedy_extDict_row( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize); +size_t ZSTD_compressBlock_lazy_extDict_row( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize); +size_t ZSTD_compressBlock_lazy2_extDict_row( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize); +size_t ZSTD_compressBlock_btlazy2_extDict( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize); + + +#if defined (__cplusplus) +} +#endif + +#endif /* ZSTD_LAZY_H */ diff --git a/dependencies/zstd-1.5.0/lib/compress/zstd_ldm.c b/dependencies/zstd-1.5.0/lib/compress/zstd_ldm.c new file mode 100644 index 0000000..fa4ebea --- /dev/null +++ b/dependencies/zstd-1.5.0/lib/compress/zstd_ldm.c @@ -0,0 +1,722 @@ +/* + * Copyright (c) Yann Collet, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + +#include "zstd_ldm.h" + +#include "../common/debug.h" +#include "../common/xxhash.h" +#include "zstd_fast.h" /* ZSTD_fillHashTable() */ +#include "zstd_double_fast.h" /* ZSTD_fillDoubleHashTable() */ +#include "zstd_ldm_geartab.h" + +#define LDM_BUCKET_SIZE_LOG 3 +#define LDM_MIN_MATCH_LENGTH 64 +#define LDM_HASH_RLOG 7 + +typedef struct { + U64 rolling; + U64 stopMask; +} ldmRollingHashState_t; + +/** ZSTD_ldm_gear_init(): + * + * Initializes the rolling hash state such that it will honor the + * settings in params. */ +static void ZSTD_ldm_gear_init(ldmRollingHashState_t* state, ldmParams_t const* params) +{ + unsigned maxBitsInMask = MIN(params->minMatchLength, 64); + unsigned hashRateLog = params->hashRateLog; + + state->rolling = ~(U32)0; + + /* The choice of the splitting criterion is subject to two conditions: + * 1. it has to trigger on average every 2^(hashRateLog) bytes; + * 2. ideally, it has to depend on a window of minMatchLength bytes. + * + * In the gear hash algorithm, bit n depends on the last n bytes; + * so in order to obtain a good quality splitting criterion it is + * preferable to use bits with high weight. + * + * To match condition 1 we use a mask with hashRateLog bits set + * and, because of the previous remark, we make sure these bits + * have the highest possible weight while still respecting + * condition 2. + */ + if (hashRateLog > 0 && hashRateLog <= maxBitsInMask) { + state->stopMask = (((U64)1 << hashRateLog) - 1) << (maxBitsInMask - hashRateLog); + } else { + /* In this degenerate case we simply honor the hash rate. */ + state->stopMask = ((U64)1 << hashRateLog) - 1; + } +} + +/** ZSTD_ldm_gear_reset() + * Feeds [data, data + minMatchLength) into the hash without registering any + * splits. This effectively resets the hash state. This is used when skipping + * over data, either at the beginning of a block, or skipping sections. + */ +static void ZSTD_ldm_gear_reset(ldmRollingHashState_t* state, + BYTE const* data, size_t minMatchLength) +{ + U64 hash = state->rolling; + size_t n = 0; + +#define GEAR_ITER_ONCE() do { \ + hash = (hash << 1) + ZSTD_ldm_gearTab[data[n] & 0xff]; \ + n += 1; \ + } while (0) + while (n + 3 < minMatchLength) { + GEAR_ITER_ONCE(); + GEAR_ITER_ONCE(); + GEAR_ITER_ONCE(); + GEAR_ITER_ONCE(); + } + while (n < minMatchLength) { + GEAR_ITER_ONCE(); + } +#undef GEAR_ITER_ONCE +} + +/** ZSTD_ldm_gear_feed(): + * + * Registers in the splits array all the split points found in the first + * size bytes following the data pointer. This function terminates when + * either all the data has been processed or LDM_BATCH_SIZE splits are + * present in the splits array. + * + * Precondition: The splits array must not be full. + * Returns: The number of bytes processed. */ +static size_t ZSTD_ldm_gear_feed(ldmRollingHashState_t* state, + BYTE const* data, size_t size, + size_t* splits, unsigned* numSplits) +{ + size_t n; + U64 hash, mask; + + hash = state->rolling; + mask = state->stopMask; + n = 0; + +#define GEAR_ITER_ONCE() do { \ + hash = (hash << 1) + ZSTD_ldm_gearTab[data[n] & 0xff]; \ + n += 1; \ + if (UNLIKELY((hash & mask) == 0)) { \ + splits[*numSplits] = n; \ + *numSplits += 1; \ + if (*numSplits == LDM_BATCH_SIZE) \ + goto done; \ + } \ + } while (0) + + while (n + 3 < size) { + GEAR_ITER_ONCE(); + GEAR_ITER_ONCE(); + GEAR_ITER_ONCE(); + GEAR_ITER_ONCE(); + } + while (n < size) { + GEAR_ITER_ONCE(); + } + +#undef GEAR_ITER_ONCE + +done: + state->rolling = hash; + return n; +} + +void ZSTD_ldm_adjustParameters(ldmParams_t* params, + ZSTD_compressionParameters const* cParams) +{ + params->windowLog = cParams->windowLog; + ZSTD_STATIC_ASSERT(LDM_BUCKET_SIZE_LOG <= ZSTD_LDM_BUCKETSIZELOG_MAX); + DEBUGLOG(4, "ZSTD_ldm_adjustParameters"); + if (!params->bucketSizeLog) params->bucketSizeLog = LDM_BUCKET_SIZE_LOG; + if (!params->minMatchLength) params->minMatchLength = LDM_MIN_MATCH_LENGTH; + if (params->hashLog == 0) { + params->hashLog = MAX(ZSTD_HASHLOG_MIN, params->windowLog - LDM_HASH_RLOG); + assert(params->hashLog <= ZSTD_HASHLOG_MAX); + } + if (params->hashRateLog == 0) { + params->hashRateLog = params->windowLog < params->hashLog + ? 0 + : params->windowLog - params->hashLog; + } + params->bucketSizeLog = MIN(params->bucketSizeLog, params->hashLog); +} + +size_t ZSTD_ldm_getTableSize(ldmParams_t params) +{ + size_t const ldmHSize = ((size_t)1) << params.hashLog; + size_t const ldmBucketSizeLog = MIN(params.bucketSizeLog, params.hashLog); + size_t const ldmBucketSize = ((size_t)1) << (params.hashLog - ldmBucketSizeLog); + size_t const totalSize = ZSTD_cwksp_alloc_size(ldmBucketSize) + + ZSTD_cwksp_alloc_size(ldmHSize * sizeof(ldmEntry_t)); + return params.enableLdm ? totalSize : 0; +} + +size_t ZSTD_ldm_getMaxNbSeq(ldmParams_t params, size_t maxChunkSize) +{ + return params.enableLdm ? (maxChunkSize / params.minMatchLength) : 0; +} + +/** ZSTD_ldm_getBucket() : + * Returns a pointer to the start of the bucket associated with hash. */ +static ldmEntry_t* ZSTD_ldm_getBucket( + ldmState_t* ldmState, size_t hash, ldmParams_t const ldmParams) +{ + return ldmState->hashTable + (hash << ldmParams.bucketSizeLog); +} + +/** ZSTD_ldm_insertEntry() : + * Insert the entry with corresponding hash into the hash table */ +static void ZSTD_ldm_insertEntry(ldmState_t* ldmState, + size_t const hash, const ldmEntry_t entry, + ldmParams_t const ldmParams) +{ + BYTE* const pOffset = ldmState->bucketOffsets + hash; + unsigned const offset = *pOffset; + + *(ZSTD_ldm_getBucket(ldmState, hash, ldmParams) + offset) = entry; + *pOffset = (BYTE)((offset + 1) & ((1u << ldmParams.bucketSizeLog) - 1)); + +} + +/** ZSTD_ldm_countBackwardsMatch() : + * Returns the number of bytes that match backwards before pIn and pMatch. + * + * We count only bytes where pMatch >= pBase and pIn >= pAnchor. */ +static size_t ZSTD_ldm_countBackwardsMatch( + const BYTE* pIn, const BYTE* pAnchor, + const BYTE* pMatch, const BYTE* pMatchBase) +{ + size_t matchLength = 0; + while (pIn > pAnchor && pMatch > pMatchBase && pIn[-1] == pMatch[-1]) { + pIn--; + pMatch--; + matchLength++; + } + return matchLength; +} + +/** ZSTD_ldm_countBackwardsMatch_2segments() : + * Returns the number of bytes that match backwards from pMatch, + * even with the backwards match spanning 2 different segments. + * + * On reaching `pMatchBase`, start counting from mEnd */ +static size_t ZSTD_ldm_countBackwardsMatch_2segments( + const BYTE* pIn, const BYTE* pAnchor, + const BYTE* pMatch, const BYTE* pMatchBase, + const BYTE* pExtDictStart, const BYTE* pExtDictEnd) +{ + size_t matchLength = ZSTD_ldm_countBackwardsMatch(pIn, pAnchor, pMatch, pMatchBase); + if (pMatch - matchLength != pMatchBase || pMatchBase == pExtDictStart) { + /* If backwards match is entirely in the extDict or prefix, immediately return */ + return matchLength; + } + DEBUGLOG(7, "ZSTD_ldm_countBackwardsMatch_2segments: found 2-parts backwards match (length in prefix==%zu)", matchLength); + matchLength += ZSTD_ldm_countBackwardsMatch(pIn - matchLength, pAnchor, pExtDictEnd, pExtDictStart); + DEBUGLOG(7, "final backwards match length = %zu", matchLength); + return matchLength; +} + +/** ZSTD_ldm_fillFastTables() : + * + * Fills the relevant tables for the ZSTD_fast and ZSTD_dfast strategies. + * This is similar to ZSTD_loadDictionaryContent. + * + * The tables for the other strategies are filled within their + * block compressors. */ +static size_t ZSTD_ldm_fillFastTables(ZSTD_matchState_t* ms, + void const* end) +{ + const BYTE* const iend = (const BYTE*)end; + + switch(ms->cParams.strategy) + { + case ZSTD_fast: + ZSTD_fillHashTable(ms, iend, ZSTD_dtlm_fast); + break; + + case ZSTD_dfast: + ZSTD_fillDoubleHashTable(ms, iend, ZSTD_dtlm_fast); + break; + + case ZSTD_greedy: + case ZSTD_lazy: + case ZSTD_lazy2: + case ZSTD_btlazy2: + case ZSTD_btopt: + case ZSTD_btultra: + case ZSTD_btultra2: + break; + default: + assert(0); /* not possible : not a valid strategy id */ + } + + return 0; +} + +void ZSTD_ldm_fillHashTable( + ldmState_t* ldmState, const BYTE* ip, + const BYTE* iend, ldmParams_t const* params) +{ + U32 const minMatchLength = params->minMatchLength; + U32 const hBits = params->hashLog - params->bucketSizeLog; + BYTE const* const base = ldmState->window.base; + BYTE const* const istart = ip; + ldmRollingHashState_t hashState; + size_t* const splits = ldmState->splitIndices; + unsigned numSplits; + + DEBUGLOG(5, "ZSTD_ldm_fillHashTable"); + + ZSTD_ldm_gear_init(&hashState, params); + while (ip < iend) { + size_t hashed; + unsigned n; + + numSplits = 0; + hashed = ZSTD_ldm_gear_feed(&hashState, ip, iend - ip, splits, &numSplits); + + for (n = 0; n < numSplits; n++) { + if (ip + splits[n] >= istart + minMatchLength) { + BYTE const* const split = ip + splits[n] - minMatchLength; + U64 const xxhash = XXH64(split, minMatchLength, 0); + U32 const hash = (U32)(xxhash & (((U32)1 << hBits) - 1)); + ldmEntry_t entry; + + entry.offset = (U32)(split - base); + entry.checksum = (U32)(xxhash >> 32); + ZSTD_ldm_insertEntry(ldmState, hash, entry, *params); + } + } + + ip += hashed; + } +} + + +/** ZSTD_ldm_limitTableUpdate() : + * + * Sets cctx->nextToUpdate to a position corresponding closer to anchor + * if it is far way + * (after a long match, only update tables a limited amount). */ +static void ZSTD_ldm_limitTableUpdate(ZSTD_matchState_t* ms, const BYTE* anchor) +{ + U32 const curr = (U32)(anchor - ms->window.base); + if (curr > ms->nextToUpdate + 1024) { + ms->nextToUpdate = + curr - MIN(512, curr - ms->nextToUpdate - 1024); + } +} + +static size_t ZSTD_ldm_generateSequences_internal( + ldmState_t* ldmState, rawSeqStore_t* rawSeqStore, + ldmParams_t const* params, void const* src, size_t srcSize) +{ + /* LDM parameters */ + int const extDict = ZSTD_window_hasExtDict(ldmState->window); + U32 const minMatchLength = params->minMatchLength; + U32 const entsPerBucket = 1U << params->bucketSizeLog; + U32 const hBits = params->hashLog - params->bucketSizeLog; + /* Prefix and extDict parameters */ + U32 const dictLimit = ldmState->window.dictLimit; + U32 const lowestIndex = extDict ? ldmState->window.lowLimit : dictLimit; + BYTE const* const base = ldmState->window.base; + BYTE const* const dictBase = extDict ? ldmState->window.dictBase : NULL; + BYTE const* const dictStart = extDict ? dictBase + lowestIndex : NULL; + BYTE const* const dictEnd = extDict ? dictBase + dictLimit : NULL; + BYTE const* const lowPrefixPtr = base + dictLimit; + /* Input bounds */ + BYTE const* const istart = (BYTE const*)src; + BYTE const* const iend = istart + srcSize; + BYTE const* const ilimit = iend - HASH_READ_SIZE; + /* Input positions */ + BYTE const* anchor = istart; + BYTE const* ip = istart; + /* Rolling hash state */ + ldmRollingHashState_t hashState; + /* Arrays for staged-processing */ + size_t* const splits = ldmState->splitIndices; + ldmMatchCandidate_t* const candidates = ldmState->matchCandidates; + unsigned numSplits; + + if (srcSize < minMatchLength) + return iend - anchor; + + /* Initialize the rolling hash state with the first minMatchLength bytes */ + ZSTD_ldm_gear_init(&hashState, params); + ZSTD_ldm_gear_reset(&hashState, ip, minMatchLength); + ip += minMatchLength; + + while (ip < ilimit) { + size_t hashed; + unsigned n; + + numSplits = 0; + hashed = ZSTD_ldm_gear_feed(&hashState, ip, ilimit - ip, + splits, &numSplits); + + for (n = 0; n < numSplits; n++) { + BYTE const* const split = ip + splits[n] - minMatchLength; + U64 const xxhash = XXH64(split, minMatchLength, 0); + U32 const hash = (U32)(xxhash & (((U32)1 << hBits) - 1)); + + candidates[n].split = split; + candidates[n].hash = hash; + candidates[n].checksum = (U32)(xxhash >> 32); + candidates[n].bucket = ZSTD_ldm_getBucket(ldmState, hash, *params); + PREFETCH_L1(candidates[n].bucket); + } + + for (n = 0; n < numSplits; n++) { + size_t forwardMatchLength = 0, backwardMatchLength = 0, + bestMatchLength = 0, mLength; + U32 offset; + BYTE const* const split = candidates[n].split; + U32 const checksum = candidates[n].checksum; + U32 const hash = candidates[n].hash; + ldmEntry_t* const bucket = candidates[n].bucket; + ldmEntry_t const* cur; + ldmEntry_t const* bestEntry = NULL; + ldmEntry_t newEntry; + + newEntry.offset = (U32)(split - base); + newEntry.checksum = checksum; + + /* If a split point would generate a sequence overlapping with + * the previous one, we merely register it in the hash table and + * move on */ + if (split < anchor) { + ZSTD_ldm_insertEntry(ldmState, hash, newEntry, *params); + continue; + } + + for (cur = bucket; cur < bucket + entsPerBucket; cur++) { + size_t curForwardMatchLength, curBackwardMatchLength, + curTotalMatchLength; + if (cur->checksum != checksum || cur->offset <= lowestIndex) { + continue; + } + if (extDict) { + BYTE const* const curMatchBase = + cur->offset < dictLimit ? dictBase : base; + BYTE const* const pMatch = curMatchBase + cur->offset; + BYTE const* const matchEnd = + cur->offset < dictLimit ? dictEnd : iend; + BYTE const* const lowMatchPtr = + cur->offset < dictLimit ? dictStart : lowPrefixPtr; + curForwardMatchLength = + ZSTD_count_2segments(split, pMatch, iend, matchEnd, lowPrefixPtr); + if (curForwardMatchLength < minMatchLength) { + continue; + } + curBackwardMatchLength = ZSTD_ldm_countBackwardsMatch_2segments( + split, anchor, pMatch, lowMatchPtr, dictStart, dictEnd); + } else { /* !extDict */ + BYTE const* const pMatch = base + cur->offset; + curForwardMatchLength = ZSTD_count(split, pMatch, iend); + if (curForwardMatchLength < minMatchLength) { + continue; + } + curBackwardMatchLength = + ZSTD_ldm_countBackwardsMatch(split, anchor, pMatch, lowPrefixPtr); + } + curTotalMatchLength = curForwardMatchLength + curBackwardMatchLength; + + if (curTotalMatchLength > bestMatchLength) { + bestMatchLength = curTotalMatchLength; + forwardMatchLength = curForwardMatchLength; + backwardMatchLength = curBackwardMatchLength; + bestEntry = cur; + } + } + + /* No match found -- insert an entry into the hash table + * and process the next candidate match */ + if (bestEntry == NULL) { + ZSTD_ldm_insertEntry(ldmState, hash, newEntry, *params); + continue; + } + + /* Match found */ + offset = (U32)(split - base) - bestEntry->offset; + mLength = forwardMatchLength + backwardMatchLength; + { + rawSeq* const seq = rawSeqStore->seq + rawSeqStore->size; + + /* Out of sequence storage */ + if (rawSeqStore->size == rawSeqStore->capacity) + return ERROR(dstSize_tooSmall); + seq->litLength = (U32)(split - backwardMatchLength - anchor); + seq->matchLength = (U32)mLength; + seq->offset = offset; + rawSeqStore->size++; + } + + /* Insert the current entry into the hash table --- it must be + * done after the previous block to avoid clobbering bestEntry */ + ZSTD_ldm_insertEntry(ldmState, hash, newEntry, *params); + + anchor = split + forwardMatchLength; + + /* If we find a match that ends after the data that we've hashed + * then we have a repeating, overlapping, pattern. E.g. all zeros. + * If one repetition of the pattern matches our `stopMask` then all + * repetitions will. We don't need to insert them all into out table, + * only the first one. So skip over overlapping matches. + * This is a major speed boost (20x) for compressing a single byte + * repeated, when that byte ends up in the table. + */ + if (anchor > ip + hashed) { + ZSTD_ldm_gear_reset(&hashState, anchor - minMatchLength, minMatchLength); + /* Continue the outter loop at anchor (ip + hashed == anchor). */ + ip = anchor - hashed; + break; + } + } + + ip += hashed; + } + + return iend - anchor; +} + +/*! ZSTD_ldm_reduceTable() : + * reduce table indexes by `reducerValue` */ +static void ZSTD_ldm_reduceTable(ldmEntry_t* const table, U32 const size, + U32 const reducerValue) +{ + U32 u; + for (u = 0; u < size; u++) { + if (table[u].offset < reducerValue) table[u].offset = 0; + else table[u].offset -= reducerValue; + } +} + +size_t ZSTD_ldm_generateSequences( + ldmState_t* ldmState, rawSeqStore_t* sequences, + ldmParams_t const* params, void const* src, size_t srcSize) +{ + U32 const maxDist = 1U << params->windowLog; + BYTE const* const istart = (BYTE const*)src; + BYTE const* const iend = istart + srcSize; + size_t const kMaxChunkSize = 1 << 20; + size_t const nbChunks = (srcSize / kMaxChunkSize) + ((srcSize % kMaxChunkSize) != 0); + size_t chunk; + size_t leftoverSize = 0; + + assert(ZSTD_CHUNKSIZE_MAX >= kMaxChunkSize); + /* Check that ZSTD_window_update() has been called for this chunk prior + * to passing it to this function. + */ + assert(ldmState->window.nextSrc >= (BYTE const*)src + srcSize); + /* The input could be very large (in zstdmt), so it must be broken up into + * chunks to enforce the maximum distance and handle overflow correction. + */ + assert(sequences->pos <= sequences->size); + assert(sequences->size <= sequences->capacity); + for (chunk = 0; chunk < nbChunks && sequences->size < sequences->capacity; ++chunk) { + BYTE const* const chunkStart = istart + chunk * kMaxChunkSize; + size_t const remaining = (size_t)(iend - chunkStart); + BYTE const *const chunkEnd = + (remaining < kMaxChunkSize) ? iend : chunkStart + kMaxChunkSize; + size_t const chunkSize = chunkEnd - chunkStart; + size_t newLeftoverSize; + size_t const prevSize = sequences->size; + + assert(chunkStart < iend); + /* 1. Perform overflow correction if necessary. */ + if (ZSTD_window_needOverflowCorrection(ldmState->window, 0, maxDist, ldmState->loadedDictEnd, chunkStart, chunkEnd)) { + U32 const ldmHSize = 1U << params->hashLog; + U32 const correction = ZSTD_window_correctOverflow( + &ldmState->window, /* cycleLog */ 0, maxDist, chunkStart); + ZSTD_ldm_reduceTable(ldmState->hashTable, ldmHSize, correction); + /* invalidate dictionaries on overflow correction */ + ldmState->loadedDictEnd = 0; + } + /* 2. We enforce the maximum offset allowed. + * + * kMaxChunkSize should be small enough that we don't lose too much of + * the window through early invalidation. + * TODO: * Test the chunk size. + * * Try invalidation after the sequence generation and test the + * the offset against maxDist directly. + * + * NOTE: Because of dictionaries + sequence splitting we MUST make sure + * that any offset used is valid at the END of the sequence, since it may + * be split into two sequences. This condition holds when using + * ZSTD_window_enforceMaxDist(), but if we move to checking offsets + * against maxDist directly, we'll have to carefully handle that case. + */ + ZSTD_window_enforceMaxDist(&ldmState->window, chunkEnd, maxDist, &ldmState->loadedDictEnd, NULL); + /* 3. Generate the sequences for the chunk, and get newLeftoverSize. */ + newLeftoverSize = ZSTD_ldm_generateSequences_internal( + ldmState, sequences, params, chunkStart, chunkSize); + if (ZSTD_isError(newLeftoverSize)) + return newLeftoverSize; + /* 4. We add the leftover literals from previous iterations to the first + * newly generated sequence, or add the `newLeftoverSize` if none are + * generated. + */ + /* Prepend the leftover literals from the last call */ + if (prevSize < sequences->size) { + sequences->seq[prevSize].litLength += (U32)leftoverSize; + leftoverSize = newLeftoverSize; + } else { + assert(newLeftoverSize == chunkSize); + leftoverSize += chunkSize; + } + } + return 0; +} + +void ZSTD_ldm_skipSequences(rawSeqStore_t* rawSeqStore, size_t srcSize, U32 const minMatch) { + while (srcSize > 0 && rawSeqStore->pos < rawSeqStore->size) { + rawSeq* seq = rawSeqStore->seq + rawSeqStore->pos; + if (srcSize <= seq->litLength) { + /* Skip past srcSize literals */ + seq->litLength -= (U32)srcSize; + return; + } + srcSize -= seq->litLength; + seq->litLength = 0; + if (srcSize < seq->matchLength) { + /* Skip past the first srcSize of the match */ + seq->matchLength -= (U32)srcSize; + if (seq->matchLength < minMatch) { + /* The match is too short, omit it */ + if (rawSeqStore->pos + 1 < rawSeqStore->size) { + seq[1].litLength += seq[0].matchLength; + } + rawSeqStore->pos++; + } + return; + } + srcSize -= seq->matchLength; + seq->matchLength = 0; + rawSeqStore->pos++; + } +} + +/** + * If the sequence length is longer than remaining then the sequence is split + * between this block and the next. + * + * Returns the current sequence to handle, or if the rest of the block should + * be literals, it returns a sequence with offset == 0. + */ +static rawSeq maybeSplitSequence(rawSeqStore_t* rawSeqStore, + U32 const remaining, U32 const minMatch) +{ + rawSeq sequence = rawSeqStore->seq[rawSeqStore->pos]; + assert(sequence.offset > 0); + /* Likely: No partial sequence */ + if (remaining >= sequence.litLength + sequence.matchLength) { + rawSeqStore->pos++; + return sequence; + } + /* Cut the sequence short (offset == 0 ==> rest is literals). */ + if (remaining <= sequence.litLength) { + sequence.offset = 0; + } else if (remaining < sequence.litLength + sequence.matchLength) { + sequence.matchLength = remaining - sequence.litLength; + if (sequence.matchLength < minMatch) { + sequence.offset = 0; + } + } + /* Skip past `remaining` bytes for the future sequences. */ + ZSTD_ldm_skipSequences(rawSeqStore, remaining, minMatch); + return sequence; +} + +void ZSTD_ldm_skipRawSeqStoreBytes(rawSeqStore_t* rawSeqStore, size_t nbBytes) { + U32 currPos = (U32)(rawSeqStore->posInSequence + nbBytes); + while (currPos && rawSeqStore->pos < rawSeqStore->size) { + rawSeq currSeq = rawSeqStore->seq[rawSeqStore->pos]; + if (currPos >= currSeq.litLength + currSeq.matchLength) { + currPos -= currSeq.litLength + currSeq.matchLength; + rawSeqStore->pos++; + } else { + rawSeqStore->posInSequence = currPos; + break; + } + } + if (currPos == 0 || rawSeqStore->pos == rawSeqStore->size) { + rawSeqStore->posInSequence = 0; + } +} + +size_t ZSTD_ldm_blockCompress(rawSeqStore_t* rawSeqStore, + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + ZSTD_useRowMatchFinderMode_e useRowMatchFinder, + void const* src, size_t srcSize) +{ + const ZSTD_compressionParameters* const cParams = &ms->cParams; + unsigned const minMatch = cParams->minMatch; + ZSTD_blockCompressor const blockCompressor = + ZSTD_selectBlockCompressor(cParams->strategy, useRowMatchFinder, ZSTD_matchState_dictMode(ms)); + /* Input bounds */ + BYTE const* const istart = (BYTE const*)src; + BYTE const* const iend = istart + srcSize; + /* Input positions */ + BYTE const* ip = istart; + + DEBUGLOG(5, "ZSTD_ldm_blockCompress: srcSize=%zu", srcSize); + /* If using opt parser, use LDMs only as candidates rather than always accepting them */ + if (cParams->strategy >= ZSTD_btopt) { + size_t lastLLSize; + ms->ldmSeqStore = rawSeqStore; + lastLLSize = blockCompressor(ms, seqStore, rep, src, srcSize); + ZSTD_ldm_skipRawSeqStoreBytes(rawSeqStore, srcSize); + return lastLLSize; + } + + assert(rawSeqStore->pos <= rawSeqStore->size); + assert(rawSeqStore->size <= rawSeqStore->capacity); + /* Loop through each sequence and apply the block compressor to the literals */ + while (rawSeqStore->pos < rawSeqStore->size && ip < iend) { + /* maybeSplitSequence updates rawSeqStore->pos */ + rawSeq const sequence = maybeSplitSequence(rawSeqStore, + (U32)(iend - ip), minMatch); + int i; + /* End signal */ + if (sequence.offset == 0) + break; + + assert(ip + sequence.litLength + sequence.matchLength <= iend); + + /* Fill tables for block compressor */ + ZSTD_ldm_limitTableUpdate(ms, ip); + ZSTD_ldm_fillFastTables(ms, ip); + /* Run the block compressor */ + DEBUGLOG(5, "pos %u : calling block compressor on segment of size %u", (unsigned)(ip-istart), sequence.litLength); + { + size_t const newLitLength = + blockCompressor(ms, seqStore, rep, ip, sequence.litLength); + ip += sequence.litLength; + /* Update the repcodes */ + for (i = ZSTD_REP_NUM - 1; i > 0; i--) + rep[i] = rep[i-1]; + rep[0] = sequence.offset; + /* Store the sequence */ + ZSTD_storeSeq(seqStore, newLitLength, ip - newLitLength, iend, + sequence.offset + ZSTD_REP_MOVE, + sequence.matchLength - MINMATCH); + ip += sequence.matchLength; + } + } + /* Fill the tables for the block compressor */ + ZSTD_ldm_limitTableUpdate(ms, ip); + ZSTD_ldm_fillFastTables(ms, ip); + /* Compress the last literals */ + return blockCompressor(ms, seqStore, rep, ip, iend - ip); +} diff --git a/dependencies/zstd-1.5.0/lib/compress/zstd_ldm.h b/dependencies/zstd-1.5.0/lib/compress/zstd_ldm.h new file mode 100644 index 0000000..393466f --- /dev/null +++ b/dependencies/zstd-1.5.0/lib/compress/zstd_ldm.h @@ -0,0 +1,117 @@ +/* + * Copyright (c) Yann Collet, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + +#ifndef ZSTD_LDM_H +#define ZSTD_LDM_H + +#if defined (__cplusplus) +extern "C" { +#endif + +#include "zstd_compress_internal.h" /* ldmParams_t, U32 */ +#include "../zstd.h" /* ZSTD_CCtx, size_t */ + +/*-************************************* +* Long distance matching +***************************************/ + +#define ZSTD_LDM_DEFAULT_WINDOW_LOG ZSTD_WINDOWLOG_LIMIT_DEFAULT + +void ZSTD_ldm_fillHashTable( + ldmState_t* state, const BYTE* ip, + const BYTE* iend, ldmParams_t const* params); + +/** + * ZSTD_ldm_generateSequences(): + * + * Generates the sequences using the long distance match finder. + * Generates long range matching sequences in `sequences`, which parse a prefix + * of the source. `sequences` must be large enough to store every sequence, + * which can be checked with `ZSTD_ldm_getMaxNbSeq()`. + * @returns 0 or an error code. + * + * NOTE: The user must have called ZSTD_window_update() for all of the input + * they have, even if they pass it to ZSTD_ldm_generateSequences() in chunks. + * NOTE: This function returns an error if it runs out of space to store + * sequences. + */ +size_t ZSTD_ldm_generateSequences( + ldmState_t* ldms, rawSeqStore_t* sequences, + ldmParams_t const* params, void const* src, size_t srcSize); + +/** + * ZSTD_ldm_blockCompress(): + * + * Compresses a block using the predefined sequences, along with a secondary + * block compressor. The literals section of every sequence is passed to the + * secondary block compressor, and those sequences are interspersed with the + * predefined sequences. Returns the length of the last literals. + * Updates `rawSeqStore.pos` to indicate how many sequences have been consumed. + * `rawSeqStore.seq` may also be updated to split the last sequence between two + * blocks. + * @return The length of the last literals. + * + * NOTE: The source must be at most the maximum block size, but the predefined + * sequences can be any size, and may be longer than the block. In the case that + * they are longer than the block, the last sequences may need to be split into + * two. We handle that case correctly, and update `rawSeqStore` appropriately. + * NOTE: This function does not return any errors. + */ +size_t ZSTD_ldm_blockCompress(rawSeqStore_t* rawSeqStore, + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + ZSTD_useRowMatchFinderMode_e useRowMatchFinder, + void const* src, size_t srcSize); + +/** + * ZSTD_ldm_skipSequences(): + * + * Skip past `srcSize` bytes worth of sequences in `rawSeqStore`. + * Avoids emitting matches less than `minMatch` bytes. + * Must be called for data that is not passed to ZSTD_ldm_blockCompress(). + */ +void ZSTD_ldm_skipSequences(rawSeqStore_t* rawSeqStore, size_t srcSize, + U32 const minMatch); + +/* ZSTD_ldm_skipRawSeqStoreBytes(): + * Moves forward in rawSeqStore by nbBytes, updating fields 'pos' and 'posInSequence'. + * Not to be used in conjunction with ZSTD_ldm_skipSequences(). + * Must be called for data with is not passed to ZSTD_ldm_blockCompress(). + */ +void ZSTD_ldm_skipRawSeqStoreBytes(rawSeqStore_t* rawSeqStore, size_t nbBytes); + +/** ZSTD_ldm_getTableSize() : + * Estimate the space needed for long distance matching tables or 0 if LDM is + * disabled. + */ +size_t ZSTD_ldm_getTableSize(ldmParams_t params); + +/** ZSTD_ldm_getSeqSpace() : + * Return an upper bound on the number of sequences that can be produced by + * the long distance matcher, or 0 if LDM is disabled. + */ +size_t ZSTD_ldm_getMaxNbSeq(ldmParams_t params, size_t maxChunkSize); + +/** ZSTD_ldm_adjustParameters() : + * If the params->hashRateLog is not set, set it to its default value based on + * windowLog and params->hashLog. + * + * Ensures that params->bucketSizeLog is <= params->hashLog (setting it to + * params->hashLog if it is not). + * + * Ensures that the minMatchLength >= targetLength during optimal parsing. + */ +void ZSTD_ldm_adjustParameters(ldmParams_t* params, + ZSTD_compressionParameters const* cParams); + +#if defined (__cplusplus) +} +#endif + +#endif /* ZSTD_FAST_H */ diff --git a/dependencies/zstd-1.5.0/lib/compress/zstd_ldm_geartab.h b/dependencies/zstd-1.5.0/lib/compress/zstd_ldm_geartab.h new file mode 100644 index 0000000..e5c24d8 --- /dev/null +++ b/dependencies/zstd-1.5.0/lib/compress/zstd_ldm_geartab.h @@ -0,0 +1,103 @@ +/* + * Copyright (c) Yann Collet, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + +#ifndef ZSTD_LDM_GEARTAB_H +#define ZSTD_LDM_GEARTAB_H + +static U64 ZSTD_ldm_gearTab[256] = { + 0xf5b8f72c5f77775c, 0x84935f266b7ac412, 0xb647ada9ca730ccc, + 0xb065bb4b114fb1de, 0x34584e7e8c3a9fd0, 0x4e97e17c6ae26b05, + 0x3a03d743bc99a604, 0xcecd042422c4044f, 0x76de76c58524259e, + 0x9c8528f65badeaca, 0x86563706e2097529, 0x2902475fa375d889, + 0xafb32a9739a5ebe6, 0xce2714da3883e639, 0x21eaf821722e69e, + 0x37b628620b628, 0x49a8d455d88caf5, 0x8556d711e6958140, + 0x4f7ae74fc605c1f, 0x829f0c3468bd3a20, 0x4ffdc885c625179e, + 0x8473de048a3daf1b, 0x51008822b05646b2, 0x69d75d12b2d1cc5f, + 0x8c9d4a19159154bc, 0xc3cc10f4abbd4003, 0xd06ddc1cecb97391, + 0xbe48e6e7ed80302e, 0x3481db31cee03547, 0xacc3f67cdaa1d210, + 0x65cb771d8c7f96cc, 0x8eb27177055723dd, 0xc789950d44cd94be, + 0x934feadc3700b12b, 0x5e485f11edbdf182, 0x1e2e2a46fd64767a, + 0x2969ca71d82efa7c, 0x9d46e9935ebbba2e, 0xe056b67e05e6822b, + 0x94d73f55739d03a0, 0xcd7010bdb69b5a03, 0x455ef9fcd79b82f4, + 0x869cb54a8749c161, 0x38d1a4fa6185d225, 0xb475166f94bbe9bb, + 0xa4143548720959f1, 0x7aed4780ba6b26ba, 0xd0ce264439e02312, + 0x84366d746078d508, 0xa8ce973c72ed17be, 0x21c323a29a430b01, + 0x9962d617e3af80ee, 0xab0ce91d9c8cf75b, 0x530e8ee6d19a4dbc, + 0x2ef68c0cf53f5d72, 0xc03a681640a85506, 0x496e4e9f9c310967, + 0x78580472b59b14a0, 0x273824c23b388577, 0x66bf923ad45cb553, + 0x47ae1a5a2492ba86, 0x35e304569e229659, 0x4765182a46870b6f, + 0x6cbab625e9099412, 0xddac9a2e598522c1, 0x7172086e666624f2, + 0xdf5003ca503b7837, 0x88c0c1db78563d09, 0x58d51865acfc289d, + 0x177671aec65224f1, 0xfb79d8a241e967d7, 0x2be1e101cad9a49a, + 0x6625682f6e29186b, 0x399553457ac06e50, 0x35dffb4c23abb74, + 0x429db2591f54aade, 0xc52802a8037d1009, 0x6acb27381f0b25f3, + 0xf45e2551ee4f823b, 0x8b0ea2d99580c2f7, 0x3bed519cbcb4e1e1, + 0xff452823dbb010a, 0x9d42ed614f3dd267, 0x5b9313c06257c57b, + 0xa114b8008b5e1442, 0xc1fe311c11c13d4b, 0x66e8763ea34c5568, + 0x8b982af1c262f05d, 0xee8876faaa75fbb7, 0x8a62a4d0d172bb2a, + 0xc13d94a3b7449a97, 0x6dbbba9dc15d037c, 0xc786101f1d92e0f1, + 0xd78681a907a0b79b, 0xf61aaf2962c9abb9, 0x2cfd16fcd3cb7ad9, + 0x868c5b6744624d21, 0x25e650899c74ddd7, 0xba042af4a7c37463, + 0x4eb1a539465a3eca, 0xbe09dbf03b05d5ca, 0x774e5a362b5472ba, + 0x47a1221229d183cd, 0x504b0ca18ef5a2df, 0xdffbdfbde2456eb9, + 0x46cd2b2fbee34634, 0xf2aef8fe819d98c3, 0x357f5276d4599d61, + 0x24a5483879c453e3, 0x88026889192b4b9, 0x28da96671782dbec, + 0x4ef37c40588e9aaa, 0x8837b90651bc9fb3, 0xc164f741d3f0e5d6, + 0xbc135a0a704b70ba, 0x69cd868f7622ada, 0xbc37ba89e0b9c0ab, + 0x47c14a01323552f6, 0x4f00794bacee98bb, 0x7107de7d637a69d5, + 0x88af793bb6f2255e, 0xf3c6466b8799b598, 0xc288c616aa7f3b59, + 0x81ca63cf42fca3fd, 0x88d85ace36a2674b, 0xd056bd3792389e7, + 0xe55c396c4e9dd32d, 0xbefb504571e6c0a6, 0x96ab32115e91e8cc, + 0xbf8acb18de8f38d1, 0x66dae58801672606, 0x833b6017872317fb, + 0xb87c16f2d1c92864, 0xdb766a74e58b669c, 0x89659f85c61417be, + 0xc8daad856011ea0c, 0x76a4b565b6fe7eae, 0xa469d085f6237312, + 0xaaf0365683a3e96c, 0x4dbb746f8424f7b8, 0x638755af4e4acc1, + 0x3d7807f5bde64486, 0x17be6d8f5bbb7639, 0x903f0cd44dc35dc, + 0x67b672eafdf1196c, 0xa676ff93ed4c82f1, 0x521d1004c5053d9d, + 0x37ba9ad09ccc9202, 0x84e54d297aacfb51, 0xa0b4b776a143445, + 0x820d471e20b348e, 0x1874383cb83d46dc, 0x97edeec7a1efe11c, + 0xb330e50b1bdc42aa, 0x1dd91955ce70e032, 0xa514cdb88f2939d5, + 0x2791233fd90db9d3, 0x7b670a4cc50f7a9b, 0x77c07d2a05c6dfa5, + 0xe3778b6646d0a6fa, 0xb39c8eda47b56749, 0x933ed448addbef28, + 0xaf846af6ab7d0bf4, 0xe5af208eb666e49, 0x5e6622f73534cd6a, + 0x297daeca42ef5b6e, 0x862daef3d35539a6, 0xe68722498f8e1ea9, + 0x981c53093dc0d572, 0xfa09b0bfbf86fbf5, 0x30b1e96166219f15, + 0x70e7d466bdc4fb83, 0x5a66736e35f2a8e9, 0xcddb59d2b7c1baef, + 0xd6c7d247d26d8996, 0xea4e39eac8de1ba3, 0x539c8bb19fa3aff2, + 0x9f90e4c5fd508d8, 0xa34e5956fbaf3385, 0x2e2f8e151d3ef375, + 0x173691e9b83faec1, 0xb85a8d56bf016379, 0x8382381267408ae3, + 0xb90f901bbdc0096d, 0x7c6ad32933bcec65, 0x76bb5e2f2c8ad595, + 0x390f851a6cf46d28, 0xc3e6064da1c2da72, 0xc52a0c101cfa5389, + 0xd78eaf84a3fbc530, 0x3781b9e2288b997e, 0x73c2f6dea83d05c4, + 0x4228e364c5b5ed7, 0x9d7a3edf0da43911, 0x8edcfeda24686756, + 0x5e7667a7b7a9b3a1, 0x4c4f389fa143791d, 0xb08bc1023da7cddc, + 0x7ab4be3ae529b1cc, 0x754e6132dbe74ff9, 0x71635442a839df45, + 0x2f6fb1643fbe52de, 0x961e0a42cf7a8177, 0xf3b45d83d89ef2ea, + 0xee3de4cf4a6e3e9b, 0xcd6848542c3295e7, 0xe4cee1664c78662f, + 0x9947548b474c68c4, 0x25d73777a5ed8b0b, 0xc915b1d636b7fc, + 0x21c2ba75d9b0d2da, 0x5f6b5dcf608a64a1, 0xdcf333255ff9570c, + 0x633b922418ced4ee, 0xc136dde0b004b34a, 0x58cc83b05d4b2f5a, + 0x5eb424dda28e42d2, 0x62df47369739cd98, 0xb4e0b42485e4ce17, + 0x16e1f0c1f9a8d1e7, 0x8ec3916707560ebf, 0x62ba6e2df2cc9db3, + 0xcbf9f4ff77d83a16, 0x78d9d7d07d2bbcc4, 0xef554ce1e02c41f4, + 0x8d7581127eccf94d, 0xa9b53336cb3c8a05, 0x38c42c0bf45c4f91, + 0x640893cdf4488863, 0x80ec34bc575ea568, 0x39f324f5b48eaa40, + 0xe9d9ed1f8eff527f, 0x9224fc058cc5a214, 0xbaba00b04cfe7741, + 0x309a9f120fcf52af, 0xa558f3ec65626212, 0x424bec8b7adabe2f, + 0x41622513a6aea433, 0xb88da2d5324ca798, 0xd287733b245528a4, + 0x9a44697e6d68aec3, 0x7b1093be2f49bb28, 0x50bbec632e3d8aad, + 0x6cd90723e1ea8283, 0x897b9e7431b02bf3, 0x219efdcb338a7047, + 0x3b0311f0a27c0656, 0xdb17bf91c0db96e7, 0x8cd4fd6b4e85a5b2, + 0xfab071054ba6409d, 0x40d6fe831fa9dfd9, 0xaf358debad7d791e, + 0xeb8d0e25a65e3e58, 0xbbcbd3df14e08580, 0xcf751f27ecdab2b, + 0x2b4da14f2613d8f4 +}; + +#endif /* ZSTD_LDM_GEARTAB_H */ diff --git a/dependencies/zstd-1.5.0/lib/compress/zstd_opt.c b/dependencies/zstd-1.5.0/lib/compress/zstd_opt.c new file mode 100644 index 0000000..402a7e5 --- /dev/null +++ b/dependencies/zstd-1.5.0/lib/compress/zstd_opt.c @@ -0,0 +1,1345 @@ +/* + * Copyright (c) Przemyslaw Skibinski, Yann Collet, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + +#include "zstd_compress_internal.h" +#include "hist.h" +#include "zstd_opt.h" + + +#define ZSTD_LITFREQ_ADD 2 /* scaling factor for litFreq, so that frequencies adapt faster to new stats */ +#define ZSTD_FREQ_DIV 4 /* log factor when using previous stats to init next stats */ +#define ZSTD_MAX_PRICE (1<<30) + +#define ZSTD_PREDEF_THRESHOLD 1024 /* if srcSize < ZSTD_PREDEF_THRESHOLD, symbols' cost is assumed static, directly determined by pre-defined distributions */ + + +/*-************************************* +* Price functions for optimal parser +***************************************/ + +#if 0 /* approximation at bit level */ +# define BITCOST_ACCURACY 0 +# define BITCOST_MULTIPLIER (1 << BITCOST_ACCURACY) +# define WEIGHT(stat) ((void)opt, ZSTD_bitWeight(stat)) +#elif 0 /* fractional bit accuracy */ +# define BITCOST_ACCURACY 8 +# define BITCOST_MULTIPLIER (1 << BITCOST_ACCURACY) +# define WEIGHT(stat,opt) ((void)opt, ZSTD_fracWeight(stat)) +#else /* opt==approx, ultra==accurate */ +# define BITCOST_ACCURACY 8 +# define BITCOST_MULTIPLIER (1 << BITCOST_ACCURACY) +# define WEIGHT(stat,opt) (opt ? ZSTD_fracWeight(stat) : ZSTD_bitWeight(stat)) +#endif + +MEM_STATIC U32 ZSTD_bitWeight(U32 stat) +{ + return (ZSTD_highbit32(stat+1) * BITCOST_MULTIPLIER); +} + +MEM_STATIC U32 ZSTD_fracWeight(U32 rawStat) +{ + U32 const stat = rawStat + 1; + U32 const hb = ZSTD_highbit32(stat); + U32 const BWeight = hb * BITCOST_MULTIPLIER; + U32 const FWeight = (stat << BITCOST_ACCURACY) >> hb; + U32 const weight = BWeight + FWeight; + assert(hb + BITCOST_ACCURACY < 31); + return weight; +} + +#if (DEBUGLEVEL>=2) +/* debugging function, + * @return price in bytes as fractional value + * for debug messages only */ +MEM_STATIC double ZSTD_fCost(U32 price) +{ + return (double)price / (BITCOST_MULTIPLIER*8); +} +#endif + +static int ZSTD_compressedLiterals(optState_t const* const optPtr) +{ + return optPtr->literalCompressionMode != ZSTD_lcm_uncompressed; +} + +static void ZSTD_setBasePrices(optState_t* optPtr, int optLevel) +{ + if (ZSTD_compressedLiterals(optPtr)) + optPtr->litSumBasePrice = WEIGHT(optPtr->litSum, optLevel); + optPtr->litLengthSumBasePrice = WEIGHT(optPtr->litLengthSum, optLevel); + optPtr->matchLengthSumBasePrice = WEIGHT(optPtr->matchLengthSum, optLevel); + optPtr->offCodeSumBasePrice = WEIGHT(optPtr->offCodeSum, optLevel); +} + + +/* ZSTD_downscaleStat() : + * reduce all elements in table by a factor 2^(ZSTD_FREQ_DIV+malus) + * return the resulting sum of elements */ +static U32 ZSTD_downscaleStat(unsigned* table, U32 lastEltIndex, int malus) +{ + U32 s, sum=0; + DEBUGLOG(5, "ZSTD_downscaleStat (nbElts=%u)", (unsigned)lastEltIndex+1); + assert(ZSTD_FREQ_DIV+malus > 0 && ZSTD_FREQ_DIV+malus < 31); + for (s=0; s> (ZSTD_FREQ_DIV+malus)); + sum += table[s]; + } + return sum; +} + +/* ZSTD_rescaleFreqs() : + * if first block (detected by optPtr->litLengthSum == 0) : init statistics + * take hints from dictionary if there is one + * or init from zero, using src for literals stats, or flat 1 for match symbols + * otherwise downscale existing stats, to be used as seed for next block. + */ +static void +ZSTD_rescaleFreqs(optState_t* const optPtr, + const BYTE* const src, size_t const srcSize, + int const optLevel) +{ + int const compressedLiterals = ZSTD_compressedLiterals(optPtr); + DEBUGLOG(5, "ZSTD_rescaleFreqs (srcSize=%u)", (unsigned)srcSize); + optPtr->priceType = zop_dynamic; + + if (optPtr->litLengthSum == 0) { /* first block : init */ + if (srcSize <= ZSTD_PREDEF_THRESHOLD) { /* heuristic */ + DEBUGLOG(5, "(srcSize <= ZSTD_PREDEF_THRESHOLD) => zop_predef"); + optPtr->priceType = zop_predef; + } + + assert(optPtr->symbolCosts != NULL); + if (optPtr->symbolCosts->huf.repeatMode == HUF_repeat_valid) { + /* huffman table presumed generated by dictionary */ + optPtr->priceType = zop_dynamic; + + if (compressedLiterals) { + unsigned lit; + assert(optPtr->litFreq != NULL); + optPtr->litSum = 0; + for (lit=0; lit<=MaxLit; lit++) { + U32 const scaleLog = 11; /* scale to 2K */ + U32 const bitCost = HUF_getNbBits(optPtr->symbolCosts->huf.CTable, lit); + assert(bitCost <= scaleLog); + optPtr->litFreq[lit] = bitCost ? 1 << (scaleLog-bitCost) : 1 /*minimum to calculate cost*/; + optPtr->litSum += optPtr->litFreq[lit]; + } } + + { unsigned ll; + FSE_CState_t llstate; + FSE_initCState(&llstate, optPtr->symbolCosts->fse.litlengthCTable); + optPtr->litLengthSum = 0; + for (ll=0; ll<=MaxLL; ll++) { + U32 const scaleLog = 10; /* scale to 1K */ + U32 const bitCost = FSE_getMaxNbBits(llstate.symbolTT, ll); + assert(bitCost < scaleLog); + optPtr->litLengthFreq[ll] = bitCost ? 1 << (scaleLog-bitCost) : 1 /*minimum to calculate cost*/; + optPtr->litLengthSum += optPtr->litLengthFreq[ll]; + } } + + { unsigned ml; + FSE_CState_t mlstate; + FSE_initCState(&mlstate, optPtr->symbolCosts->fse.matchlengthCTable); + optPtr->matchLengthSum = 0; + for (ml=0; ml<=MaxML; ml++) { + U32 const scaleLog = 10; + U32 const bitCost = FSE_getMaxNbBits(mlstate.symbolTT, ml); + assert(bitCost < scaleLog); + optPtr->matchLengthFreq[ml] = bitCost ? 1 << (scaleLog-bitCost) : 1 /*minimum to calculate cost*/; + optPtr->matchLengthSum += optPtr->matchLengthFreq[ml]; + } } + + { unsigned of; + FSE_CState_t ofstate; + FSE_initCState(&ofstate, optPtr->symbolCosts->fse.offcodeCTable); + optPtr->offCodeSum = 0; + for (of=0; of<=MaxOff; of++) { + U32 const scaleLog = 10; + U32 const bitCost = FSE_getMaxNbBits(ofstate.symbolTT, of); + assert(bitCost < scaleLog); + optPtr->offCodeFreq[of] = bitCost ? 1 << (scaleLog-bitCost) : 1 /*minimum to calculate cost*/; + optPtr->offCodeSum += optPtr->offCodeFreq[of]; + } } + + } else { /* not a dictionary */ + + assert(optPtr->litFreq != NULL); + if (compressedLiterals) { + unsigned lit = MaxLit; + HIST_count_simple(optPtr->litFreq, &lit, src, srcSize); /* use raw first block to init statistics */ + optPtr->litSum = ZSTD_downscaleStat(optPtr->litFreq, MaxLit, 1); + } + + { unsigned ll; + for (ll=0; ll<=MaxLL; ll++) + optPtr->litLengthFreq[ll] = 1; + } + optPtr->litLengthSum = MaxLL+1; + + { unsigned ml; + for (ml=0; ml<=MaxML; ml++) + optPtr->matchLengthFreq[ml] = 1; + } + optPtr->matchLengthSum = MaxML+1; + + { unsigned of; + for (of=0; of<=MaxOff; of++) + optPtr->offCodeFreq[of] = 1; + } + optPtr->offCodeSum = MaxOff+1; + + } + + } else { /* new block : re-use previous statistics, scaled down */ + + if (compressedLiterals) + optPtr->litSum = ZSTD_downscaleStat(optPtr->litFreq, MaxLit, 1); + optPtr->litLengthSum = ZSTD_downscaleStat(optPtr->litLengthFreq, MaxLL, 0); + optPtr->matchLengthSum = ZSTD_downscaleStat(optPtr->matchLengthFreq, MaxML, 0); + optPtr->offCodeSum = ZSTD_downscaleStat(optPtr->offCodeFreq, MaxOff, 0); + } + + ZSTD_setBasePrices(optPtr, optLevel); +} + +/* ZSTD_rawLiteralsCost() : + * price of literals (only) in specified segment (which length can be 0). + * does not include price of literalLength symbol */ +static U32 ZSTD_rawLiteralsCost(const BYTE* const literals, U32 const litLength, + const optState_t* const optPtr, + int optLevel) +{ + if (litLength == 0) return 0; + + if (!ZSTD_compressedLiterals(optPtr)) + return (litLength << 3) * BITCOST_MULTIPLIER; /* Uncompressed - 8 bytes per literal. */ + + if (optPtr->priceType == zop_predef) + return (litLength*6) * BITCOST_MULTIPLIER; /* 6 bit per literal - no statistic used */ + + /* dynamic statistics */ + { U32 price = litLength * optPtr->litSumBasePrice; + U32 u; + for (u=0; u < litLength; u++) { + assert(WEIGHT(optPtr->litFreq[literals[u]], optLevel) <= optPtr->litSumBasePrice); /* literal cost should never be negative */ + price -= WEIGHT(optPtr->litFreq[literals[u]], optLevel); + } + return price; + } +} + +/* ZSTD_litLengthPrice() : + * cost of literalLength symbol */ +static U32 ZSTD_litLengthPrice(U32 const litLength, const optState_t* const optPtr, int optLevel) +{ + if (optPtr->priceType == zop_predef) return WEIGHT(litLength, optLevel); + + /* dynamic statistics */ + { U32 const llCode = ZSTD_LLcode(litLength); + return (LL_bits[llCode] * BITCOST_MULTIPLIER) + + optPtr->litLengthSumBasePrice + - WEIGHT(optPtr->litLengthFreq[llCode], optLevel); + } +} + +/* ZSTD_getMatchPrice() : + * Provides the cost of the match part (offset + matchLength) of a sequence + * Must be combined with ZSTD_fullLiteralsCost() to get the full cost of a sequence. + * optLevel: when <2, favors small offset for decompression speed (improved cache efficiency) */ +FORCE_INLINE_TEMPLATE U32 +ZSTD_getMatchPrice(U32 const offset, + U32 const matchLength, + const optState_t* const optPtr, + int const optLevel) +{ + U32 price; + U32 const offCode = ZSTD_highbit32(offset+1); + U32 const mlBase = matchLength - MINMATCH; + assert(matchLength >= MINMATCH); + + if (optPtr->priceType == zop_predef) /* fixed scheme, do not use statistics */ + return WEIGHT(mlBase, optLevel) + ((16 + offCode) * BITCOST_MULTIPLIER); + + /* dynamic statistics */ + price = (offCode * BITCOST_MULTIPLIER) + (optPtr->offCodeSumBasePrice - WEIGHT(optPtr->offCodeFreq[offCode], optLevel)); + if ((optLevel<2) /*static*/ && offCode >= 20) + price += (offCode-19)*2 * BITCOST_MULTIPLIER; /* handicap for long distance offsets, favor decompression speed */ + + /* match Length */ + { U32 const mlCode = ZSTD_MLcode(mlBase); + price += (ML_bits[mlCode] * BITCOST_MULTIPLIER) + (optPtr->matchLengthSumBasePrice - WEIGHT(optPtr->matchLengthFreq[mlCode], optLevel)); + } + + price += BITCOST_MULTIPLIER / 5; /* heuristic : make matches a bit more costly to favor less sequences -> faster decompression speed */ + + DEBUGLOG(8, "ZSTD_getMatchPrice(ml:%u) = %u", matchLength, price); + return price; +} + +/* ZSTD_updateStats() : + * assumption : literals + litLengtn <= iend */ +static void ZSTD_updateStats(optState_t* const optPtr, + U32 litLength, const BYTE* literals, + U32 offsetCode, U32 matchLength) +{ + /* literals */ + if (ZSTD_compressedLiterals(optPtr)) { + U32 u; + for (u=0; u < litLength; u++) + optPtr->litFreq[literals[u]] += ZSTD_LITFREQ_ADD; + optPtr->litSum += litLength*ZSTD_LITFREQ_ADD; + } + + /* literal Length */ + { U32 const llCode = ZSTD_LLcode(litLength); + optPtr->litLengthFreq[llCode]++; + optPtr->litLengthSum++; + } + + /* match offset code (0-2=>repCode; 3+=>offset+2) */ + { U32 const offCode = ZSTD_highbit32(offsetCode+1); + assert(offCode <= MaxOff); + optPtr->offCodeFreq[offCode]++; + optPtr->offCodeSum++; + } + + /* match Length */ + { U32 const mlBase = matchLength - MINMATCH; + U32 const mlCode = ZSTD_MLcode(mlBase); + optPtr->matchLengthFreq[mlCode]++; + optPtr->matchLengthSum++; + } +} + + +/* ZSTD_readMINMATCH() : + * function safe only for comparisons + * assumption : memPtr must be at least 4 bytes before end of buffer */ +MEM_STATIC U32 ZSTD_readMINMATCH(const void* memPtr, U32 length) +{ + switch (length) + { + default : + case 4 : return MEM_read32(memPtr); + case 3 : if (MEM_isLittleEndian()) + return MEM_read32(memPtr)<<8; + else + return MEM_read32(memPtr)>>8; + } +} + + +/* Update hashTable3 up to ip (excluded) + Assumption : always within prefix (i.e. not within extDict) */ +static U32 ZSTD_insertAndFindFirstIndexHash3 (ZSTD_matchState_t* ms, + U32* nextToUpdate3, + const BYTE* const ip) +{ + U32* const hashTable3 = ms->hashTable3; + U32 const hashLog3 = ms->hashLog3; + const BYTE* const base = ms->window.base; + U32 idx = *nextToUpdate3; + U32 const target = (U32)(ip - base); + size_t const hash3 = ZSTD_hash3Ptr(ip, hashLog3); + assert(hashLog3 > 0); + + while(idx < target) { + hashTable3[ZSTD_hash3Ptr(base+idx, hashLog3)] = idx; + idx++; + } + + *nextToUpdate3 = target; + return hashTable3[hash3]; +} + + +/*-************************************* +* Binary Tree search +***************************************/ +/** ZSTD_insertBt1() : add one or multiple positions to tree. + * ip : assumed <= iend-8 . + * @return : nb of positions added */ +static U32 ZSTD_insertBt1( + ZSTD_matchState_t* ms, + const BYTE* const ip, const BYTE* const iend, + U32 const mls, const int extDict) +{ + const ZSTD_compressionParameters* const cParams = &ms->cParams; + U32* const hashTable = ms->hashTable; + U32 const hashLog = cParams->hashLog; + size_t const h = ZSTD_hashPtr(ip, hashLog, mls); + U32* const bt = ms->chainTable; + U32 const btLog = cParams->chainLog - 1; + U32 const btMask = (1 << btLog) - 1; + U32 matchIndex = hashTable[h]; + size_t commonLengthSmaller=0, commonLengthLarger=0; + const BYTE* const base = ms->window.base; + const BYTE* const dictBase = ms->window.dictBase; + const U32 dictLimit = ms->window.dictLimit; + const BYTE* const dictEnd = dictBase + dictLimit; + const BYTE* const prefixStart = base + dictLimit; + const BYTE* match; + const U32 curr = (U32)(ip-base); + const U32 btLow = btMask >= curr ? 0 : curr - btMask; + U32* smallerPtr = bt + 2*(curr&btMask); + U32* largerPtr = smallerPtr + 1; + U32 dummy32; /* to be nullified at the end */ + U32 const windowLow = ms->window.lowLimit; + U32 matchEndIdx = curr+8+1; + size_t bestLength = 8; + U32 nbCompares = 1U << cParams->searchLog; +#ifdef ZSTD_C_PREDICT + U32 predictedSmall = *(bt + 2*((curr-1)&btMask) + 0); + U32 predictedLarge = *(bt + 2*((curr-1)&btMask) + 1); + predictedSmall += (predictedSmall>0); + predictedLarge += (predictedLarge>0); +#endif /* ZSTD_C_PREDICT */ + + DEBUGLOG(8, "ZSTD_insertBt1 (%u)", curr); + + assert(ip <= iend-8); /* required for h calculation */ + hashTable[h] = curr; /* Update Hash Table */ + + assert(windowLow > 0); + while (nbCompares-- && (matchIndex >= windowLow)) { + U32* const nextPtr = bt + 2*(matchIndex & btMask); + size_t matchLength = MIN(commonLengthSmaller, commonLengthLarger); /* guaranteed minimum nb of common bytes */ + assert(matchIndex < curr); + +#ifdef ZSTD_C_PREDICT /* note : can create issues when hlog small <= 11 */ + const U32* predictPtr = bt + 2*((matchIndex-1) & btMask); /* written this way, as bt is a roll buffer */ + if (matchIndex == predictedSmall) { + /* no need to check length, result known */ + *smallerPtr = matchIndex; + if (matchIndex <= btLow) { smallerPtr=&dummy32; break; } /* beyond tree size, stop the search */ + smallerPtr = nextPtr+1; /* new "smaller" => larger of match */ + matchIndex = nextPtr[1]; /* new matchIndex larger than previous (closer to current) */ + predictedSmall = predictPtr[1] + (predictPtr[1]>0); + continue; + } + if (matchIndex == predictedLarge) { + *largerPtr = matchIndex; + if (matchIndex <= btLow) { largerPtr=&dummy32; break; } /* beyond tree size, stop the search */ + largerPtr = nextPtr; + matchIndex = nextPtr[0]; + predictedLarge = predictPtr[0] + (predictPtr[0]>0); + continue; + } +#endif + + if (!extDict || (matchIndex+matchLength >= dictLimit)) { + assert(matchIndex+matchLength >= dictLimit); /* might be wrong if actually extDict */ + match = base + matchIndex; + matchLength += ZSTD_count(ip+matchLength, match+matchLength, iend); + } else { + match = dictBase + matchIndex; + matchLength += ZSTD_count_2segments(ip+matchLength, match+matchLength, iend, dictEnd, prefixStart); + if (matchIndex+matchLength >= dictLimit) + match = base + matchIndex; /* to prepare for next usage of match[matchLength] */ + } + + if (matchLength > bestLength) { + bestLength = matchLength; + if (matchLength > matchEndIdx - matchIndex) + matchEndIdx = matchIndex + (U32)matchLength; + } + + if (ip+matchLength == iend) { /* equal : no way to know if inf or sup */ + break; /* drop , to guarantee consistency ; miss a bit of compression, but other solutions can corrupt tree */ + } + + if (match[matchLength] < ip[matchLength]) { /* necessarily within buffer */ + /* match is smaller than current */ + *smallerPtr = matchIndex; /* update smaller idx */ + commonLengthSmaller = matchLength; /* all smaller will now have at least this guaranteed common length */ + if (matchIndex <= btLow) { smallerPtr=&dummy32; break; } /* beyond tree size, stop searching */ + smallerPtr = nextPtr+1; /* new "candidate" => larger than match, which was smaller than target */ + matchIndex = nextPtr[1]; /* new matchIndex, larger than previous and closer to current */ + } else { + /* match is larger than current */ + *largerPtr = matchIndex; + commonLengthLarger = matchLength; + if (matchIndex <= btLow) { largerPtr=&dummy32; break; } /* beyond tree size, stop searching */ + largerPtr = nextPtr; + matchIndex = nextPtr[0]; + } } + + *smallerPtr = *largerPtr = 0; + { U32 positions = 0; + if (bestLength > 384) positions = MIN(192, (U32)(bestLength - 384)); /* speed optimization */ + assert(matchEndIdx > curr + 8); + return MAX(positions, matchEndIdx - (curr + 8)); + } +} + +FORCE_INLINE_TEMPLATE +void ZSTD_updateTree_internal( + ZSTD_matchState_t* ms, + const BYTE* const ip, const BYTE* const iend, + const U32 mls, const ZSTD_dictMode_e dictMode) +{ + const BYTE* const base = ms->window.base; + U32 const target = (U32)(ip - base); + U32 idx = ms->nextToUpdate; + DEBUGLOG(6, "ZSTD_updateTree_internal, from %u to %u (dictMode:%u)", + idx, target, dictMode); + + while(idx < target) { + U32 const forward = ZSTD_insertBt1(ms, base+idx, iend, mls, dictMode == ZSTD_extDict); + assert(idx < (U32)(idx + forward)); + idx += forward; + } + assert((size_t)(ip - base) <= (size_t)(U32)(-1)); + assert((size_t)(iend - base) <= (size_t)(U32)(-1)); + ms->nextToUpdate = target; +} + +void ZSTD_updateTree(ZSTD_matchState_t* ms, const BYTE* ip, const BYTE* iend) { + ZSTD_updateTree_internal(ms, ip, iend, ms->cParams.minMatch, ZSTD_noDict); +} + +FORCE_INLINE_TEMPLATE +U32 ZSTD_insertBtAndGetAllMatches ( + ZSTD_match_t* matches, /* store result (found matches) in this table (presumed large enough) */ + ZSTD_matchState_t* ms, + U32* nextToUpdate3, + const BYTE* const ip, const BYTE* const iLimit, const ZSTD_dictMode_e dictMode, + const U32 rep[ZSTD_REP_NUM], + U32 const ll0, /* tells if associated literal length is 0 or not. This value must be 0 or 1 */ + const U32 lengthToBeat, + U32 const mls /* template */) +{ + const ZSTD_compressionParameters* const cParams = &ms->cParams; + U32 const sufficient_len = MIN(cParams->targetLength, ZSTD_OPT_NUM -1); + const BYTE* const base = ms->window.base; + U32 const curr = (U32)(ip-base); + U32 const hashLog = cParams->hashLog; + U32 const minMatch = (mls==3) ? 3 : 4; + U32* const hashTable = ms->hashTable; + size_t const h = ZSTD_hashPtr(ip, hashLog, mls); + U32 matchIndex = hashTable[h]; + U32* const bt = ms->chainTable; + U32 const btLog = cParams->chainLog - 1; + U32 const btMask= (1U << btLog) - 1; + size_t commonLengthSmaller=0, commonLengthLarger=0; + const BYTE* const dictBase = ms->window.dictBase; + U32 const dictLimit = ms->window.dictLimit; + const BYTE* const dictEnd = dictBase + dictLimit; + const BYTE* const prefixStart = base + dictLimit; + U32 const btLow = (btMask >= curr) ? 0 : curr - btMask; + U32 const windowLow = ZSTD_getLowestMatchIndex(ms, curr, cParams->windowLog); + U32 const matchLow = windowLow ? windowLow : 1; + U32* smallerPtr = bt + 2*(curr&btMask); + U32* largerPtr = bt + 2*(curr&btMask) + 1; + U32 matchEndIdx = curr+8+1; /* farthest referenced position of any match => detects repetitive patterns */ + U32 dummy32; /* to be nullified at the end */ + U32 mnum = 0; + U32 nbCompares = 1U << cParams->searchLog; + + const ZSTD_matchState_t* dms = dictMode == ZSTD_dictMatchState ? ms->dictMatchState : NULL; + const ZSTD_compressionParameters* const dmsCParams = + dictMode == ZSTD_dictMatchState ? &dms->cParams : NULL; + const BYTE* const dmsBase = dictMode == ZSTD_dictMatchState ? dms->window.base : NULL; + const BYTE* const dmsEnd = dictMode == ZSTD_dictMatchState ? dms->window.nextSrc : NULL; + U32 const dmsHighLimit = dictMode == ZSTD_dictMatchState ? (U32)(dmsEnd - dmsBase) : 0; + U32 const dmsLowLimit = dictMode == ZSTD_dictMatchState ? dms->window.lowLimit : 0; + U32 const dmsIndexDelta = dictMode == ZSTD_dictMatchState ? windowLow - dmsHighLimit : 0; + U32 const dmsHashLog = dictMode == ZSTD_dictMatchState ? dmsCParams->hashLog : hashLog; + U32 const dmsBtLog = dictMode == ZSTD_dictMatchState ? dmsCParams->chainLog - 1 : btLog; + U32 const dmsBtMask = dictMode == ZSTD_dictMatchState ? (1U << dmsBtLog) - 1 : 0; + U32 const dmsBtLow = dictMode == ZSTD_dictMatchState && dmsBtMask < dmsHighLimit - dmsLowLimit ? dmsHighLimit - dmsBtMask : dmsLowLimit; + + size_t bestLength = lengthToBeat-1; + DEBUGLOG(8, "ZSTD_insertBtAndGetAllMatches: current=%u", curr); + + /* check repCode */ + assert(ll0 <= 1); /* necessarily 1 or 0 */ + { U32 const lastR = ZSTD_REP_NUM + ll0; + U32 repCode; + for (repCode = ll0; repCode < lastR; repCode++) { + U32 const repOffset = (repCode==ZSTD_REP_NUM) ? (rep[0] - 1) : rep[repCode]; + U32 const repIndex = curr - repOffset; + U32 repLen = 0; + assert(curr >= dictLimit); + if (repOffset-1 /* intentional overflow, discards 0 and -1 */ < curr-dictLimit) { /* equivalent to `curr > repIndex >= dictLimit` */ + /* We must validate the repcode offset because when we're using a dictionary the + * valid offset range shrinks when the dictionary goes out of bounds. + */ + if ((repIndex >= windowLow) & (ZSTD_readMINMATCH(ip, minMatch) == ZSTD_readMINMATCH(ip - repOffset, minMatch))) { + repLen = (U32)ZSTD_count(ip+minMatch, ip+minMatch-repOffset, iLimit) + minMatch; + } + } else { /* repIndex < dictLimit || repIndex >= curr */ + const BYTE* const repMatch = dictMode == ZSTD_dictMatchState ? + dmsBase + repIndex - dmsIndexDelta : + dictBase + repIndex; + assert(curr >= windowLow); + if ( dictMode == ZSTD_extDict + && ( ((repOffset-1) /*intentional overflow*/ < curr - windowLow) /* equivalent to `curr > repIndex >= windowLow` */ + & (((U32)((dictLimit-1) - repIndex) >= 3) ) /* intentional overflow : do not test positions overlapping 2 memory segments */) + && (ZSTD_readMINMATCH(ip, minMatch) == ZSTD_readMINMATCH(repMatch, minMatch)) ) { + repLen = (U32)ZSTD_count_2segments(ip+minMatch, repMatch+minMatch, iLimit, dictEnd, prefixStart) + minMatch; + } + if (dictMode == ZSTD_dictMatchState + && ( ((repOffset-1) /*intentional overflow*/ < curr - (dmsLowLimit + dmsIndexDelta)) /* equivalent to `curr > repIndex >= dmsLowLimit` */ + & ((U32)((dictLimit-1) - repIndex) >= 3) ) /* intentional overflow : do not test positions overlapping 2 memory segments */ + && (ZSTD_readMINMATCH(ip, minMatch) == ZSTD_readMINMATCH(repMatch, minMatch)) ) { + repLen = (U32)ZSTD_count_2segments(ip+minMatch, repMatch+minMatch, iLimit, dmsEnd, prefixStart) + minMatch; + } } + /* save longer solution */ + if (repLen > bestLength) { + DEBUGLOG(8, "found repCode %u (ll0:%u, offset:%u) of length %u", + repCode, ll0, repOffset, repLen); + bestLength = repLen; + matches[mnum].off = repCode - ll0; + matches[mnum].len = (U32)repLen; + mnum++; + if ( (repLen > sufficient_len) + | (ip+repLen == iLimit) ) { /* best possible */ + return mnum; + } } } } + + /* HC3 match finder */ + if ((mls == 3) /*static*/ && (bestLength < mls)) { + U32 const matchIndex3 = ZSTD_insertAndFindFirstIndexHash3(ms, nextToUpdate3, ip); + if ((matchIndex3 >= matchLow) + & (curr - matchIndex3 < (1<<18)) /*heuristic : longer distance likely too expensive*/ ) { + size_t mlen; + if ((dictMode == ZSTD_noDict) /*static*/ || (dictMode == ZSTD_dictMatchState) /*static*/ || (matchIndex3 >= dictLimit)) { + const BYTE* const match = base + matchIndex3; + mlen = ZSTD_count(ip, match, iLimit); + } else { + const BYTE* const match = dictBase + matchIndex3; + mlen = ZSTD_count_2segments(ip, match, iLimit, dictEnd, prefixStart); + } + + /* save best solution */ + if (mlen >= mls /* == 3 > bestLength */) { + DEBUGLOG(8, "found small match with hlog3, of length %u", + (U32)mlen); + bestLength = mlen; + assert(curr > matchIndex3); + assert(mnum==0); /* no prior solution */ + matches[0].off = (curr - matchIndex3) + ZSTD_REP_MOVE; + matches[0].len = (U32)mlen; + mnum = 1; + if ( (mlen > sufficient_len) | + (ip+mlen == iLimit) ) { /* best possible length */ + ms->nextToUpdate = curr+1; /* skip insertion */ + return 1; + } } } + /* no dictMatchState lookup: dicts don't have a populated HC3 table */ + } + + hashTable[h] = curr; /* Update Hash Table */ + + while (nbCompares-- && (matchIndex >= matchLow)) { + U32* const nextPtr = bt + 2*(matchIndex & btMask); + const BYTE* match; + size_t matchLength = MIN(commonLengthSmaller, commonLengthLarger); /* guaranteed minimum nb of common bytes */ + assert(curr > matchIndex); + + if ((dictMode == ZSTD_noDict) || (dictMode == ZSTD_dictMatchState) || (matchIndex+matchLength >= dictLimit)) { + assert(matchIndex+matchLength >= dictLimit); /* ensure the condition is correct when !extDict */ + match = base + matchIndex; + if (matchIndex >= dictLimit) assert(memcmp(match, ip, matchLength) == 0); /* ensure early section of match is equal as expected */ + matchLength += ZSTD_count(ip+matchLength, match+matchLength, iLimit); + } else { + match = dictBase + matchIndex; + assert(memcmp(match, ip, matchLength) == 0); /* ensure early section of match is equal as expected */ + matchLength += ZSTD_count_2segments(ip+matchLength, match+matchLength, iLimit, dictEnd, prefixStart); + if (matchIndex+matchLength >= dictLimit) + match = base + matchIndex; /* prepare for match[matchLength] read */ + } + + if (matchLength > bestLength) { + DEBUGLOG(8, "found match of length %u at distance %u (offCode=%u)", + (U32)matchLength, curr - matchIndex, curr - matchIndex + ZSTD_REP_MOVE); + assert(matchEndIdx > matchIndex); + if (matchLength > matchEndIdx - matchIndex) + matchEndIdx = matchIndex + (U32)matchLength; + bestLength = matchLength; + matches[mnum].off = (curr - matchIndex) + ZSTD_REP_MOVE; + matches[mnum].len = (U32)matchLength; + mnum++; + if ( (matchLength > ZSTD_OPT_NUM) + | (ip+matchLength == iLimit) /* equal : no way to know if inf or sup */) { + if (dictMode == ZSTD_dictMatchState) nbCompares = 0; /* break should also skip searching dms */ + break; /* drop, to preserve bt consistency (miss a little bit of compression) */ + } + } + + if (match[matchLength] < ip[matchLength]) { + /* match smaller than current */ + *smallerPtr = matchIndex; /* update smaller idx */ + commonLengthSmaller = matchLength; /* all smaller will now have at least this guaranteed common length */ + if (matchIndex <= btLow) { smallerPtr=&dummy32; break; } /* beyond tree size, stop the search */ + smallerPtr = nextPtr+1; /* new candidate => larger than match, which was smaller than current */ + matchIndex = nextPtr[1]; /* new matchIndex, larger than previous, closer to current */ + } else { + *largerPtr = matchIndex; + commonLengthLarger = matchLength; + if (matchIndex <= btLow) { largerPtr=&dummy32; break; } /* beyond tree size, stop the search */ + largerPtr = nextPtr; + matchIndex = nextPtr[0]; + } } + + *smallerPtr = *largerPtr = 0; + + if (dictMode == ZSTD_dictMatchState && nbCompares) { + size_t const dmsH = ZSTD_hashPtr(ip, dmsHashLog, mls); + U32 dictMatchIndex = dms->hashTable[dmsH]; + const U32* const dmsBt = dms->chainTable; + commonLengthSmaller = commonLengthLarger = 0; + while (nbCompares-- && (dictMatchIndex > dmsLowLimit)) { + const U32* const nextPtr = dmsBt + 2*(dictMatchIndex & dmsBtMask); + size_t matchLength = MIN(commonLengthSmaller, commonLengthLarger); /* guaranteed minimum nb of common bytes */ + const BYTE* match = dmsBase + dictMatchIndex; + matchLength += ZSTD_count_2segments(ip+matchLength, match+matchLength, iLimit, dmsEnd, prefixStart); + if (dictMatchIndex+matchLength >= dmsHighLimit) + match = base + dictMatchIndex + dmsIndexDelta; /* to prepare for next usage of match[matchLength] */ + + if (matchLength > bestLength) { + matchIndex = dictMatchIndex + dmsIndexDelta; + DEBUGLOG(8, "found dms match of length %u at distance %u (offCode=%u)", + (U32)matchLength, curr - matchIndex, curr - matchIndex + ZSTD_REP_MOVE); + if (matchLength > matchEndIdx - matchIndex) + matchEndIdx = matchIndex + (U32)matchLength; + bestLength = matchLength; + matches[mnum].off = (curr - matchIndex) + ZSTD_REP_MOVE; + matches[mnum].len = (U32)matchLength; + mnum++; + if ( (matchLength > ZSTD_OPT_NUM) + | (ip+matchLength == iLimit) /* equal : no way to know if inf or sup */) { + break; /* drop, to guarantee consistency (miss a little bit of compression) */ + } + } + + if (dictMatchIndex <= dmsBtLow) { break; } /* beyond tree size, stop the search */ + if (match[matchLength] < ip[matchLength]) { + commonLengthSmaller = matchLength; /* all smaller will now have at least this guaranteed common length */ + dictMatchIndex = nextPtr[1]; /* new matchIndex larger than previous (closer to current) */ + } else { + /* match is larger than current */ + commonLengthLarger = matchLength; + dictMatchIndex = nextPtr[0]; + } + } + } + + assert(matchEndIdx > curr+8); + ms->nextToUpdate = matchEndIdx - 8; /* skip repetitive patterns */ + return mnum; +} + + +FORCE_INLINE_TEMPLATE U32 ZSTD_BtGetAllMatches ( + ZSTD_match_t* matches, /* store result (match found, increasing size) in this table */ + ZSTD_matchState_t* ms, + U32* nextToUpdate3, + const BYTE* ip, const BYTE* const iHighLimit, const ZSTD_dictMode_e dictMode, + const U32 rep[ZSTD_REP_NUM], + U32 const ll0, + U32 const lengthToBeat) +{ + const ZSTD_compressionParameters* const cParams = &ms->cParams; + U32 const matchLengthSearch = cParams->minMatch; + DEBUGLOG(8, "ZSTD_BtGetAllMatches"); + if (ip < ms->window.base + ms->nextToUpdate) return 0; /* skipped area */ + ZSTD_updateTree_internal(ms, ip, iHighLimit, matchLengthSearch, dictMode); + switch(matchLengthSearch) + { + case 3 : return ZSTD_insertBtAndGetAllMatches(matches, ms, nextToUpdate3, ip, iHighLimit, dictMode, rep, ll0, lengthToBeat, 3); + default : + case 4 : return ZSTD_insertBtAndGetAllMatches(matches, ms, nextToUpdate3, ip, iHighLimit, dictMode, rep, ll0, lengthToBeat, 4); + case 5 : return ZSTD_insertBtAndGetAllMatches(matches, ms, nextToUpdate3, ip, iHighLimit, dictMode, rep, ll0, lengthToBeat, 5); + case 7 : + case 6 : return ZSTD_insertBtAndGetAllMatches(matches, ms, nextToUpdate3, ip, iHighLimit, dictMode, rep, ll0, lengthToBeat, 6); + } +} + +/************************* +* LDM helper functions * +*************************/ + +/* Struct containing info needed to make decision about ldm inclusion */ +typedef struct { + rawSeqStore_t seqStore; /* External match candidates store for this block */ + U32 startPosInBlock; /* Start position of the current match candidate */ + U32 endPosInBlock; /* End position of the current match candidate */ + U32 offset; /* Offset of the match candidate */ +} ZSTD_optLdm_t; + +/* ZSTD_optLdm_skipRawSeqStoreBytes(): + * Moves forward in rawSeqStore by nbBytes, which will update the fields 'pos' and 'posInSequence'. + */ +static void ZSTD_optLdm_skipRawSeqStoreBytes(rawSeqStore_t* rawSeqStore, size_t nbBytes) { + U32 currPos = (U32)(rawSeqStore->posInSequence + nbBytes); + while (currPos && rawSeqStore->pos < rawSeqStore->size) { + rawSeq currSeq = rawSeqStore->seq[rawSeqStore->pos]; + if (currPos >= currSeq.litLength + currSeq.matchLength) { + currPos -= currSeq.litLength + currSeq.matchLength; + rawSeqStore->pos++; + } else { + rawSeqStore->posInSequence = currPos; + break; + } + } + if (currPos == 0 || rawSeqStore->pos == rawSeqStore->size) { + rawSeqStore->posInSequence = 0; + } +} + +/* ZSTD_opt_getNextMatchAndUpdateSeqStore(): + * Calculates the beginning and end of the next match in the current block. + * Updates 'pos' and 'posInSequence' of the ldmSeqStore. + */ +static void ZSTD_opt_getNextMatchAndUpdateSeqStore(ZSTD_optLdm_t* optLdm, U32 currPosInBlock, + U32 blockBytesRemaining) { + rawSeq currSeq; + U32 currBlockEndPos; + U32 literalsBytesRemaining; + U32 matchBytesRemaining; + + /* Setting match end position to MAX to ensure we never use an LDM during this block */ + if (optLdm->seqStore.size == 0 || optLdm->seqStore.pos >= optLdm->seqStore.size) { + optLdm->startPosInBlock = UINT_MAX; + optLdm->endPosInBlock = UINT_MAX; + return; + } + /* Calculate appropriate bytes left in matchLength and litLength after adjusting + based on ldmSeqStore->posInSequence */ + currSeq = optLdm->seqStore.seq[optLdm->seqStore.pos]; + assert(optLdm->seqStore.posInSequence <= currSeq.litLength + currSeq.matchLength); + currBlockEndPos = currPosInBlock + blockBytesRemaining; + literalsBytesRemaining = (optLdm->seqStore.posInSequence < currSeq.litLength) ? + currSeq.litLength - (U32)optLdm->seqStore.posInSequence : + 0; + matchBytesRemaining = (literalsBytesRemaining == 0) ? + currSeq.matchLength - ((U32)optLdm->seqStore.posInSequence - currSeq.litLength) : + currSeq.matchLength; + + /* If there are more literal bytes than bytes remaining in block, no ldm is possible */ + if (literalsBytesRemaining >= blockBytesRemaining) { + optLdm->startPosInBlock = UINT_MAX; + optLdm->endPosInBlock = UINT_MAX; + ZSTD_optLdm_skipRawSeqStoreBytes(&optLdm->seqStore, blockBytesRemaining); + return; + } + + /* Matches may be < MINMATCH by this process. In that case, we will reject them + when we are deciding whether or not to add the ldm */ + optLdm->startPosInBlock = currPosInBlock + literalsBytesRemaining; + optLdm->endPosInBlock = optLdm->startPosInBlock + matchBytesRemaining; + optLdm->offset = currSeq.offset; + + if (optLdm->endPosInBlock > currBlockEndPos) { + /* Match ends after the block ends, we can't use the whole match */ + optLdm->endPosInBlock = currBlockEndPos; + ZSTD_optLdm_skipRawSeqStoreBytes(&optLdm->seqStore, currBlockEndPos - currPosInBlock); + } else { + /* Consume nb of bytes equal to size of sequence left */ + ZSTD_optLdm_skipRawSeqStoreBytes(&optLdm->seqStore, literalsBytesRemaining + matchBytesRemaining); + } +} + +/* ZSTD_optLdm_maybeAddMatch(): + * Adds a match if it's long enough, based on it's 'matchStartPosInBlock' + * and 'matchEndPosInBlock', into 'matches'. Maintains the correct ordering of 'matches' + */ +static void ZSTD_optLdm_maybeAddMatch(ZSTD_match_t* matches, U32* nbMatches, + ZSTD_optLdm_t* optLdm, U32 currPosInBlock) { + U32 posDiff = currPosInBlock - optLdm->startPosInBlock; + /* Note: ZSTD_match_t actually contains offCode and matchLength (before subtracting MINMATCH) */ + U32 candidateMatchLength = optLdm->endPosInBlock - optLdm->startPosInBlock - posDiff; + U32 candidateOffCode = optLdm->offset + ZSTD_REP_MOVE; + + /* Ensure that current block position is not outside of the match */ + if (currPosInBlock < optLdm->startPosInBlock + || currPosInBlock >= optLdm->endPosInBlock + || candidateMatchLength < MINMATCH) { + return; + } + + if (*nbMatches == 0 || ((candidateMatchLength > matches[*nbMatches-1].len) && *nbMatches < ZSTD_OPT_NUM)) { + DEBUGLOG(6, "ZSTD_optLdm_maybeAddMatch(): Adding ldm candidate match (offCode: %u matchLength %u) at block position=%u", + candidateOffCode, candidateMatchLength, currPosInBlock); + matches[*nbMatches].len = candidateMatchLength; + matches[*nbMatches].off = candidateOffCode; + (*nbMatches)++; + } +} + +/* ZSTD_optLdm_processMatchCandidate(): + * Wrapper function to update ldm seq store and call ldm functions as necessary. + */ +static void ZSTD_optLdm_processMatchCandidate(ZSTD_optLdm_t* optLdm, ZSTD_match_t* matches, U32* nbMatches, + U32 currPosInBlock, U32 remainingBytes) { + if (optLdm->seqStore.size == 0 || optLdm->seqStore.pos >= optLdm->seqStore.size) { + return; + } + + if (currPosInBlock >= optLdm->endPosInBlock) { + if (currPosInBlock > optLdm->endPosInBlock) { + /* The position at which ZSTD_optLdm_processMatchCandidate() is called is not necessarily + * at the end of a match from the ldm seq store, and will often be some bytes + * over beyond matchEndPosInBlock. As such, we need to correct for these "overshoots" + */ + U32 posOvershoot = currPosInBlock - optLdm->endPosInBlock; + ZSTD_optLdm_skipRawSeqStoreBytes(&optLdm->seqStore, posOvershoot); + } + ZSTD_opt_getNextMatchAndUpdateSeqStore(optLdm, currPosInBlock, remainingBytes); + } + ZSTD_optLdm_maybeAddMatch(matches, nbMatches, optLdm, currPosInBlock); +} + +/*-******************************* +* Optimal parser +*********************************/ + + +static U32 ZSTD_totalLen(ZSTD_optimal_t sol) +{ + return sol.litlen + sol.mlen; +} + +#if 0 /* debug */ + +static void +listStats(const U32* table, int lastEltID) +{ + int const nbElts = lastEltID + 1; + int enb; + for (enb=0; enb < nbElts; enb++) { + (void)table; + /* RAWLOG(2, "%3i:%3i, ", enb, table[enb]); */ + RAWLOG(2, "%4i,", table[enb]); + } + RAWLOG(2, " \n"); +} + +#endif + +FORCE_INLINE_TEMPLATE size_t +ZSTD_compressBlock_opt_generic(ZSTD_matchState_t* ms, + seqStore_t* seqStore, + U32 rep[ZSTD_REP_NUM], + const void* src, size_t srcSize, + const int optLevel, + const ZSTD_dictMode_e dictMode) +{ + optState_t* const optStatePtr = &ms->opt; + const BYTE* const istart = (const BYTE*)src; + const BYTE* ip = istart; + const BYTE* anchor = istart; + const BYTE* const iend = istart + srcSize; + const BYTE* const ilimit = iend - 8; + const BYTE* const base = ms->window.base; + const BYTE* const prefixStart = base + ms->window.dictLimit; + const ZSTD_compressionParameters* const cParams = &ms->cParams; + + U32 const sufficient_len = MIN(cParams->targetLength, ZSTD_OPT_NUM -1); + U32 const minMatch = (cParams->minMatch == 3) ? 3 : 4; + U32 nextToUpdate3 = ms->nextToUpdate; + + ZSTD_optimal_t* const opt = optStatePtr->priceTable; + ZSTD_match_t* const matches = optStatePtr->matchTable; + ZSTD_optimal_t lastSequence; + ZSTD_optLdm_t optLdm; + + optLdm.seqStore = ms->ldmSeqStore ? *ms->ldmSeqStore : kNullRawSeqStore; + optLdm.endPosInBlock = optLdm.startPosInBlock = optLdm.offset = 0; + ZSTD_opt_getNextMatchAndUpdateSeqStore(&optLdm, (U32)(ip-istart), (U32)(iend-ip)); + + /* init */ + DEBUGLOG(5, "ZSTD_compressBlock_opt_generic: current=%u, prefix=%u, nextToUpdate=%u", + (U32)(ip - base), ms->window.dictLimit, ms->nextToUpdate); + assert(optLevel <= 2); + ZSTD_rescaleFreqs(optStatePtr, (const BYTE*)src, srcSize, optLevel); + ip += (ip==prefixStart); + + /* Match Loop */ + while (ip < ilimit) { + U32 cur, last_pos = 0; + + /* find first match */ + { U32 const litlen = (U32)(ip - anchor); + U32 const ll0 = !litlen; + U32 nbMatches = ZSTD_BtGetAllMatches(matches, ms, &nextToUpdate3, ip, iend, dictMode, rep, ll0, minMatch); + ZSTD_optLdm_processMatchCandidate(&optLdm, matches, &nbMatches, + (U32)(ip-istart), (U32)(iend - ip)); + if (!nbMatches) { ip++; continue; } + + /* initialize opt[0] */ + { U32 i ; for (i=0; i immediate encoding */ + { U32 const maxML = matches[nbMatches-1].len; + U32 const maxOffset = matches[nbMatches-1].off; + DEBUGLOG(6, "found %u matches of maxLength=%u and maxOffCode=%u at cPos=%u => start new series", + nbMatches, maxML, maxOffset, (U32)(ip-prefixStart)); + + if (maxML > sufficient_len) { + lastSequence.litlen = litlen; + lastSequence.mlen = maxML; + lastSequence.off = maxOffset; + DEBUGLOG(6, "large match (%u>%u), immediate encoding", + maxML, sufficient_len); + cur = 0; + last_pos = ZSTD_totalLen(lastSequence); + goto _shortestPath; + } } + + /* set prices for first matches starting position == 0 */ + { U32 const literalsPrice = opt[0].price + ZSTD_litLengthPrice(0, optStatePtr, optLevel); + U32 pos; + U32 matchNb; + for (pos = 1; pos < minMatch; pos++) { + opt[pos].price = ZSTD_MAX_PRICE; /* mlen, litlen and price will be fixed during forward scanning */ + } + for (matchNb = 0; matchNb < nbMatches; matchNb++) { + U32 const offset = matches[matchNb].off; + U32 const end = matches[matchNb].len; + for ( ; pos <= end ; pos++ ) { + U32 const matchPrice = ZSTD_getMatchPrice(offset, pos, optStatePtr, optLevel); + U32 const sequencePrice = literalsPrice + matchPrice; + DEBUGLOG(7, "rPos:%u => set initial price : %.2f", + pos, ZSTD_fCost(sequencePrice)); + opt[pos].mlen = pos; + opt[pos].off = offset; + opt[pos].litlen = litlen; + opt[pos].price = sequencePrice; + } } + last_pos = pos-1; + } + } + + /* check further positions */ + for (cur = 1; cur <= last_pos; cur++) { + const BYTE* const inr = ip + cur; + assert(cur < ZSTD_OPT_NUM); + DEBUGLOG(7, "cPos:%zi==rPos:%u", inr-istart, cur) + + /* Fix current position with one literal if cheaper */ + { U32 const litlen = (opt[cur-1].mlen == 0) ? opt[cur-1].litlen + 1 : 1; + int const price = opt[cur-1].price + + ZSTD_rawLiteralsCost(ip+cur-1, 1, optStatePtr, optLevel) + + ZSTD_litLengthPrice(litlen, optStatePtr, optLevel) + - ZSTD_litLengthPrice(litlen-1, optStatePtr, optLevel); + assert(price < 1000000000); /* overflow check */ + if (price <= opt[cur].price) { + DEBUGLOG(7, "cPos:%zi==rPos:%u : better price (%.2f<=%.2f) using literal (ll==%u) (hist:%u,%u,%u)", + inr-istart, cur, ZSTD_fCost(price), ZSTD_fCost(opt[cur].price), litlen, + opt[cur-1].rep[0], opt[cur-1].rep[1], opt[cur-1].rep[2]); + opt[cur].mlen = 0; + opt[cur].off = 0; + opt[cur].litlen = litlen; + opt[cur].price = price; + } else { + DEBUGLOG(7, "cPos:%zi==rPos:%u : literal would cost more (%.2f>%.2f) (hist:%u,%u,%u)", + inr-istart, cur, ZSTD_fCost(price), ZSTD_fCost(opt[cur].price), + opt[cur].rep[0], opt[cur].rep[1], opt[cur].rep[2]); + } + } + + /* Set the repcodes of the current position. We must do it here + * because we rely on the repcodes of the 2nd to last sequence being + * correct to set the next chunks repcodes during the backward + * traversal. + */ + ZSTD_STATIC_ASSERT(sizeof(opt[cur].rep) == sizeof(repcodes_t)); + assert(cur >= opt[cur].mlen); + if (opt[cur].mlen != 0) { + U32 const prev = cur - opt[cur].mlen; + repcodes_t newReps = ZSTD_updateRep(opt[prev].rep, opt[cur].off, opt[cur].litlen==0); + ZSTD_memcpy(opt[cur].rep, &newReps, sizeof(repcodes_t)); + } else { + ZSTD_memcpy(opt[cur].rep, opt[cur - 1].rep, sizeof(repcodes_t)); + } + + /* last match must start at a minimum distance of 8 from oend */ + if (inr > ilimit) continue; + + if (cur == last_pos) break; + + if ( (optLevel==0) /*static_test*/ + && (opt[cur+1].price <= opt[cur].price + (BITCOST_MULTIPLIER/2)) ) { + DEBUGLOG(7, "move to next rPos:%u : price is <=", cur+1); + continue; /* skip unpromising positions; about ~+6% speed, -0.01 ratio */ + } + + { U32 const ll0 = (opt[cur].mlen != 0); + U32 const litlen = (opt[cur].mlen == 0) ? opt[cur].litlen : 0; + U32 const previousPrice = opt[cur].price; + U32 const basePrice = previousPrice + ZSTD_litLengthPrice(0, optStatePtr, optLevel); + U32 nbMatches = ZSTD_BtGetAllMatches(matches, ms, &nextToUpdate3, inr, iend, dictMode, opt[cur].rep, ll0, minMatch); + U32 matchNb; + + ZSTD_optLdm_processMatchCandidate(&optLdm, matches, &nbMatches, + (U32)(inr-istart), (U32)(iend-inr)); + + if (!nbMatches) { + DEBUGLOG(7, "rPos:%u : no match found", cur); + continue; + } + + { U32 const maxML = matches[nbMatches-1].len; + DEBUGLOG(7, "cPos:%zi==rPos:%u, found %u matches, of maxLength=%u", + inr-istart, cur, nbMatches, maxML); + + if ( (maxML > sufficient_len) + || (cur + maxML >= ZSTD_OPT_NUM) ) { + lastSequence.mlen = maxML; + lastSequence.off = matches[nbMatches-1].off; + lastSequence.litlen = litlen; + cur -= (opt[cur].mlen==0) ? opt[cur].litlen : 0; /* last sequence is actually only literals, fix cur to last match - note : may underflow, in which case, it's first sequence, and it's okay */ + last_pos = cur + ZSTD_totalLen(lastSequence); + if (cur > ZSTD_OPT_NUM) cur = 0; /* underflow => first match */ + goto _shortestPath; + } } + + /* set prices using matches found at position == cur */ + for (matchNb = 0; matchNb < nbMatches; matchNb++) { + U32 const offset = matches[matchNb].off; + U32 const lastML = matches[matchNb].len; + U32 const startML = (matchNb>0) ? matches[matchNb-1].len+1 : minMatch; + U32 mlen; + + DEBUGLOG(7, "testing match %u => offCode=%4u, mlen=%2u, llen=%2u", + matchNb, matches[matchNb].off, lastML, litlen); + + for (mlen = lastML; mlen >= startML; mlen--) { /* scan downward */ + U32 const pos = cur + mlen; + int const price = basePrice + ZSTD_getMatchPrice(offset, mlen, optStatePtr, optLevel); + + if ((pos > last_pos) || (price < opt[pos].price)) { + DEBUGLOG(7, "rPos:%u (ml=%2u) => new better price (%.2f<%.2f)", + pos, mlen, ZSTD_fCost(price), ZSTD_fCost(opt[pos].price)); + while (last_pos < pos) { opt[last_pos+1].price = ZSTD_MAX_PRICE; last_pos++; } /* fill empty positions */ + opt[pos].mlen = mlen; + opt[pos].off = offset; + opt[pos].litlen = litlen; + opt[pos].price = price; + } else { + DEBUGLOG(7, "rPos:%u (ml=%2u) => new price is worse (%.2f>=%.2f)", + pos, mlen, ZSTD_fCost(price), ZSTD_fCost(opt[pos].price)); + if (optLevel==0) break; /* early update abort; gets ~+10% speed for about -0.01 ratio loss */ + } + } } } + } /* for (cur = 1; cur <= last_pos; cur++) */ + + lastSequence = opt[last_pos]; + cur = last_pos > ZSTD_totalLen(lastSequence) ? last_pos - ZSTD_totalLen(lastSequence) : 0; /* single sequence, and it starts before `ip` */ + assert(cur < ZSTD_OPT_NUM); /* control overflow*/ + +_shortestPath: /* cur, last_pos, best_mlen, best_off have to be set */ + assert(opt[0].mlen == 0); + + /* Set the next chunk's repcodes based on the repcodes of the beginning + * of the last match, and the last sequence. This avoids us having to + * update them while traversing the sequences. + */ + if (lastSequence.mlen != 0) { + repcodes_t reps = ZSTD_updateRep(opt[cur].rep, lastSequence.off, lastSequence.litlen==0); + ZSTD_memcpy(rep, &reps, sizeof(reps)); + } else { + ZSTD_memcpy(rep, opt[cur].rep, sizeof(repcodes_t)); + } + + { U32 const storeEnd = cur + 1; + U32 storeStart = storeEnd; + U32 seqPos = cur; + + DEBUGLOG(6, "start reverse traversal (last_pos:%u, cur:%u)", + last_pos, cur); (void)last_pos; + assert(storeEnd < ZSTD_OPT_NUM); + DEBUGLOG(6, "last sequence copied into pos=%u (llen=%u,mlen=%u,ofc=%u)", + storeEnd, lastSequence.litlen, lastSequence.mlen, lastSequence.off); + opt[storeEnd] = lastSequence; + while (seqPos > 0) { + U32 const backDist = ZSTD_totalLen(opt[seqPos]); + storeStart--; + DEBUGLOG(6, "sequence from rPos=%u copied into pos=%u (llen=%u,mlen=%u,ofc=%u)", + seqPos, storeStart, opt[seqPos].litlen, opt[seqPos].mlen, opt[seqPos].off); + opt[storeStart] = opt[seqPos]; + seqPos = (seqPos > backDist) ? seqPos - backDist : 0; + } + + /* save sequences */ + DEBUGLOG(6, "sending selected sequences into seqStore") + { U32 storePos; + for (storePos=storeStart; storePos <= storeEnd; storePos++) { + U32 const llen = opt[storePos].litlen; + U32 const mlen = opt[storePos].mlen; + U32 const offCode = opt[storePos].off; + U32 const advance = llen + mlen; + DEBUGLOG(6, "considering seq starting at %zi, llen=%u, mlen=%u", + anchor - istart, (unsigned)llen, (unsigned)mlen); + + if (mlen==0) { /* only literals => must be last "sequence", actually starting a new stream of sequences */ + assert(storePos == storeEnd); /* must be last sequence */ + ip = anchor + llen; /* last "sequence" is a bunch of literals => don't progress anchor */ + continue; /* will finish */ + } + + assert(anchor + llen <= iend); + ZSTD_updateStats(optStatePtr, llen, anchor, offCode, mlen); + ZSTD_storeSeq(seqStore, llen, anchor, iend, offCode, mlen-MINMATCH); + anchor += advance; + ip = anchor; + } } + ZSTD_setBasePrices(optStatePtr, optLevel); + } + } /* while (ip < ilimit) */ + + /* Return the last literals size */ + return (size_t)(iend - anchor); +} + + +size_t ZSTD_compressBlock_btopt( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + const void* src, size_t srcSize) +{ + DEBUGLOG(5, "ZSTD_compressBlock_btopt"); + return ZSTD_compressBlock_opt_generic(ms, seqStore, rep, src, srcSize, 0 /*optLevel*/, ZSTD_noDict); +} + + +/* used in 2-pass strategy */ +static U32 ZSTD_upscaleStat(unsigned* table, U32 lastEltIndex, int bonus) +{ + U32 s, sum=0; + assert(ZSTD_FREQ_DIV+bonus >= 0); + for (s=0; slitSum = ZSTD_upscaleStat(optPtr->litFreq, MaxLit, 0); + optPtr->litLengthSum = ZSTD_upscaleStat(optPtr->litLengthFreq, MaxLL, 0); + optPtr->matchLengthSum = ZSTD_upscaleStat(optPtr->matchLengthFreq, MaxML, 0); + optPtr->offCodeSum = ZSTD_upscaleStat(optPtr->offCodeFreq, MaxOff, 0); +} + +/* ZSTD_initStats_ultra(): + * make a first compression pass, just to seed stats with more accurate starting values. + * only works on first block, with no dictionary and no ldm. + * this function cannot error, hence its contract must be respected. + */ +static void +ZSTD_initStats_ultra(ZSTD_matchState_t* ms, + seqStore_t* seqStore, + U32 rep[ZSTD_REP_NUM], + const void* src, size_t srcSize) +{ + U32 tmpRep[ZSTD_REP_NUM]; /* updated rep codes will sink here */ + ZSTD_memcpy(tmpRep, rep, sizeof(tmpRep)); + + DEBUGLOG(4, "ZSTD_initStats_ultra (srcSize=%zu)", srcSize); + assert(ms->opt.litLengthSum == 0); /* first block */ + assert(seqStore->sequences == seqStore->sequencesStart); /* no ldm */ + assert(ms->window.dictLimit == ms->window.lowLimit); /* no dictionary */ + assert(ms->window.dictLimit - ms->nextToUpdate <= 1); /* no prefix (note: intentional overflow, defined as 2-complement) */ + + ZSTD_compressBlock_opt_generic(ms, seqStore, tmpRep, src, srcSize, 2 /*optLevel*/, ZSTD_noDict); /* generate stats into ms->opt*/ + + /* invalidate first scan from history */ + ZSTD_resetSeqStore(seqStore); + ms->window.base -= srcSize; + ms->window.dictLimit += (U32)srcSize; + ms->window.lowLimit = ms->window.dictLimit; + ms->nextToUpdate = ms->window.dictLimit; + + /* re-inforce weight of collected statistics */ + ZSTD_upscaleStats(&ms->opt); +} + +size_t ZSTD_compressBlock_btultra( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + const void* src, size_t srcSize) +{ + DEBUGLOG(5, "ZSTD_compressBlock_btultra (srcSize=%zu)", srcSize); + return ZSTD_compressBlock_opt_generic(ms, seqStore, rep, src, srcSize, 2 /*optLevel*/, ZSTD_noDict); +} + +size_t ZSTD_compressBlock_btultra2( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + const void* src, size_t srcSize) +{ + U32 const curr = (U32)((const BYTE*)src - ms->window.base); + DEBUGLOG(5, "ZSTD_compressBlock_btultra2 (srcSize=%zu)", srcSize); + + /* 2-pass strategy: + * this strategy makes a first pass over first block to collect statistics + * and seed next round's statistics with it. + * After 1st pass, function forgets everything, and starts a new block. + * Consequently, this can only work if no data has been previously loaded in tables, + * aka, no dictionary, no prefix, no ldm preprocessing. + * The compression ratio gain is generally small (~0.5% on first block), + * the cost is 2x cpu time on first block. */ + assert(srcSize <= ZSTD_BLOCKSIZE_MAX); + if ( (ms->opt.litLengthSum==0) /* first block */ + && (seqStore->sequences == seqStore->sequencesStart) /* no ldm */ + && (ms->window.dictLimit == ms->window.lowLimit) /* no dictionary */ + && (curr == ms->window.dictLimit) /* start of frame, nothing already loaded nor skipped */ + && (srcSize > ZSTD_PREDEF_THRESHOLD) + ) { + ZSTD_initStats_ultra(ms, seqStore, rep, src, srcSize); + } + + return ZSTD_compressBlock_opt_generic(ms, seqStore, rep, src, srcSize, 2 /*optLevel*/, ZSTD_noDict); +} + +size_t ZSTD_compressBlock_btopt_dictMatchState( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + const void* src, size_t srcSize) +{ + return ZSTD_compressBlock_opt_generic(ms, seqStore, rep, src, srcSize, 0 /*optLevel*/, ZSTD_dictMatchState); +} + +size_t ZSTD_compressBlock_btultra_dictMatchState( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + const void* src, size_t srcSize) +{ + return ZSTD_compressBlock_opt_generic(ms, seqStore, rep, src, srcSize, 2 /*optLevel*/, ZSTD_dictMatchState); +} + +size_t ZSTD_compressBlock_btopt_extDict( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + const void* src, size_t srcSize) +{ + return ZSTD_compressBlock_opt_generic(ms, seqStore, rep, src, srcSize, 0 /*optLevel*/, ZSTD_extDict); +} + +size_t ZSTD_compressBlock_btultra_extDict( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + const void* src, size_t srcSize) +{ + return ZSTD_compressBlock_opt_generic(ms, seqStore, rep, src, srcSize, 2 /*optLevel*/, ZSTD_extDict); +} + +/* note : no btultra2 variant for extDict nor dictMatchState, + * because btultra2 is not meant to work with dictionaries + * and is only specific for the first block (no prefix) */ diff --git a/dependencies/zstd-1.5.0/lib/compress/zstd_opt.h b/dependencies/zstd-1.5.0/lib/compress/zstd_opt.h new file mode 100644 index 0000000..627255f --- /dev/null +++ b/dependencies/zstd-1.5.0/lib/compress/zstd_opt.h @@ -0,0 +1,56 @@ +/* + * Copyright (c) Yann Collet, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + +#ifndef ZSTD_OPT_H +#define ZSTD_OPT_H + +#if defined (__cplusplus) +extern "C" { +#endif + +#include "zstd_compress_internal.h" + +/* used in ZSTD_loadDictionaryContent() */ +void ZSTD_updateTree(ZSTD_matchState_t* ms, const BYTE* ip, const BYTE* iend); + +size_t ZSTD_compressBlock_btopt( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize); +size_t ZSTD_compressBlock_btultra( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize); +size_t ZSTD_compressBlock_btultra2( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize); + + +size_t ZSTD_compressBlock_btopt_dictMatchState( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize); +size_t ZSTD_compressBlock_btultra_dictMatchState( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize); + +size_t ZSTD_compressBlock_btopt_extDict( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize); +size_t ZSTD_compressBlock_btultra_extDict( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize); + + /* note : no btultra2 variant for extDict nor dictMatchState, + * because btultra2 is not meant to work with dictionaries + * and is only specific for the first block (no prefix) */ + +#if defined (__cplusplus) +} +#endif + +#endif /* ZSTD_OPT_H */ diff --git a/dependencies/zstd-1.5.0/lib/compress/zstdmt_compress.c b/dependencies/zstd-1.5.0/lib/compress/zstdmt_compress.c new file mode 100644 index 0000000..22aa3e1 --- /dev/null +++ b/dependencies/zstd-1.5.0/lib/compress/zstdmt_compress.c @@ -0,0 +1,1821 @@ +/* + * Copyright (c) Yann Collet, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + + +/* ====== Compiler specifics ====== */ +#if defined(_MSC_VER) +# pragma warning(disable : 4204) /* disable: C4204: non-constant aggregate initializer */ +#endif + + +/* ====== Constants ====== */ +#define ZSTDMT_OVERLAPLOG_DEFAULT 0 + + +/* ====== Dependencies ====== */ +#include "../common/zstd_deps.h" /* ZSTD_memcpy, ZSTD_memset, INT_MAX, UINT_MAX */ +#include "../common/mem.h" /* MEM_STATIC */ +#include "../common/pool.h" /* threadpool */ +#include "../common/threading.h" /* mutex */ +#include "zstd_compress_internal.h" /* MIN, ERROR, ZSTD_*, ZSTD_highbit32 */ +#include "zstd_ldm.h" +#include "zstdmt_compress.h" + +/* Guards code to support resizing the SeqPool. + * We will want to resize the SeqPool to save memory in the future. + * Until then, comment the code out since it is unused. + */ +#define ZSTD_RESIZE_SEQPOOL 0 + +/* ====== Debug ====== */ +#if defined(DEBUGLEVEL) && (DEBUGLEVEL>=2) \ + && !defined(_MSC_VER) \ + && !defined(__MINGW32__) + +# include +# include +# include + +# define DEBUG_PRINTHEX(l,p,n) { \ + unsigned debug_u; \ + for (debug_u=0; debug_u<(n); debug_u++) \ + RAWLOG(l, "%02X ", ((const unsigned char*)(p))[debug_u]); \ + RAWLOG(l, " \n"); \ +} + +static unsigned long long GetCurrentClockTimeMicroseconds(void) +{ + static clock_t _ticksPerSecond = 0; + if (_ticksPerSecond <= 0) _ticksPerSecond = sysconf(_SC_CLK_TCK); + + { struct tms junk; clock_t newTicks = (clock_t) times(&junk); + return ((((unsigned long long)newTicks)*(1000000))/_ticksPerSecond); +} } + +#define MUTEX_WAIT_TIME_DLEVEL 6 +#define ZSTD_PTHREAD_MUTEX_LOCK(mutex) { \ + if (DEBUGLEVEL >= MUTEX_WAIT_TIME_DLEVEL) { \ + unsigned long long const beforeTime = GetCurrentClockTimeMicroseconds(); \ + ZSTD_pthread_mutex_lock(mutex); \ + { unsigned long long const afterTime = GetCurrentClockTimeMicroseconds(); \ + unsigned long long const elapsedTime = (afterTime-beforeTime); \ + if (elapsedTime > 1000) { /* or whatever threshold you like; I'm using 1 millisecond here */ \ + DEBUGLOG(MUTEX_WAIT_TIME_DLEVEL, "Thread took %llu microseconds to acquire mutex %s \n", \ + elapsedTime, #mutex); \ + } } \ + } else { \ + ZSTD_pthread_mutex_lock(mutex); \ + } \ +} + +#else + +# define ZSTD_PTHREAD_MUTEX_LOCK(m) ZSTD_pthread_mutex_lock(m) +# define DEBUG_PRINTHEX(l,p,n) {} + +#endif + + +/* ===== Buffer Pool ===== */ +/* a single Buffer Pool can be invoked from multiple threads in parallel */ + +typedef struct buffer_s { + void* start; + size_t capacity; +} buffer_t; + +static const buffer_t g_nullBuffer = { NULL, 0 }; + +typedef struct ZSTDMT_bufferPool_s { + ZSTD_pthread_mutex_t poolMutex; + size_t bufferSize; + unsigned totalBuffers; + unsigned nbBuffers; + ZSTD_customMem cMem; + buffer_t bTable[1]; /* variable size */ +} ZSTDMT_bufferPool; + +static ZSTDMT_bufferPool* ZSTDMT_createBufferPool(unsigned nbWorkers, ZSTD_customMem cMem) +{ + unsigned const maxNbBuffers = 2*nbWorkers + 3; + ZSTDMT_bufferPool* const bufPool = (ZSTDMT_bufferPool*)ZSTD_customCalloc( + sizeof(ZSTDMT_bufferPool) + (maxNbBuffers-1) * sizeof(buffer_t), cMem); + if (bufPool==NULL) return NULL; + if (ZSTD_pthread_mutex_init(&bufPool->poolMutex, NULL)) { + ZSTD_customFree(bufPool, cMem); + return NULL; + } + bufPool->bufferSize = 64 KB; + bufPool->totalBuffers = maxNbBuffers; + bufPool->nbBuffers = 0; + bufPool->cMem = cMem; + return bufPool; +} + +static void ZSTDMT_freeBufferPool(ZSTDMT_bufferPool* bufPool) +{ + unsigned u; + DEBUGLOG(3, "ZSTDMT_freeBufferPool (address:%08X)", (U32)(size_t)bufPool); + if (!bufPool) return; /* compatibility with free on NULL */ + for (u=0; utotalBuffers; u++) { + DEBUGLOG(4, "free buffer %2u (address:%08X)", u, (U32)(size_t)bufPool->bTable[u].start); + ZSTD_customFree(bufPool->bTable[u].start, bufPool->cMem); + } + ZSTD_pthread_mutex_destroy(&bufPool->poolMutex); + ZSTD_customFree(bufPool, bufPool->cMem); +} + +/* only works at initialization, not during compression */ +static size_t ZSTDMT_sizeof_bufferPool(ZSTDMT_bufferPool* bufPool) +{ + size_t const poolSize = sizeof(*bufPool) + + (bufPool->totalBuffers - 1) * sizeof(buffer_t); + unsigned u; + size_t totalBufferSize = 0; + ZSTD_pthread_mutex_lock(&bufPool->poolMutex); + for (u=0; utotalBuffers; u++) + totalBufferSize += bufPool->bTable[u].capacity; + ZSTD_pthread_mutex_unlock(&bufPool->poolMutex); + + return poolSize + totalBufferSize; +} + +/* ZSTDMT_setBufferSize() : + * all future buffers provided by this buffer pool will have _at least_ this size + * note : it's better for all buffers to have same size, + * as they become freely interchangeable, reducing malloc/free usages and memory fragmentation */ +static void ZSTDMT_setBufferSize(ZSTDMT_bufferPool* const bufPool, size_t const bSize) +{ + ZSTD_pthread_mutex_lock(&bufPool->poolMutex); + DEBUGLOG(4, "ZSTDMT_setBufferSize: bSize = %u", (U32)bSize); + bufPool->bufferSize = bSize; + ZSTD_pthread_mutex_unlock(&bufPool->poolMutex); +} + + +static ZSTDMT_bufferPool* ZSTDMT_expandBufferPool(ZSTDMT_bufferPool* srcBufPool, U32 nbWorkers) +{ + unsigned const maxNbBuffers = 2*nbWorkers + 3; + if (srcBufPool==NULL) return NULL; + if (srcBufPool->totalBuffers >= maxNbBuffers) /* good enough */ + return srcBufPool; + /* need a larger buffer pool */ + { ZSTD_customMem const cMem = srcBufPool->cMem; + size_t const bSize = srcBufPool->bufferSize; /* forward parameters */ + ZSTDMT_bufferPool* newBufPool; + ZSTDMT_freeBufferPool(srcBufPool); + newBufPool = ZSTDMT_createBufferPool(nbWorkers, cMem); + if (newBufPool==NULL) return newBufPool; + ZSTDMT_setBufferSize(newBufPool, bSize); + return newBufPool; + } +} + +/** ZSTDMT_getBuffer() : + * assumption : bufPool must be valid + * @return : a buffer, with start pointer and size + * note: allocation may fail, in this case, start==NULL and size==0 */ +static buffer_t ZSTDMT_getBuffer(ZSTDMT_bufferPool* bufPool) +{ + size_t const bSize = bufPool->bufferSize; + DEBUGLOG(5, "ZSTDMT_getBuffer: bSize = %u", (U32)bufPool->bufferSize); + ZSTD_pthread_mutex_lock(&bufPool->poolMutex); + if (bufPool->nbBuffers) { /* try to use an existing buffer */ + buffer_t const buf = bufPool->bTable[--(bufPool->nbBuffers)]; + size_t const availBufferSize = buf.capacity; + bufPool->bTable[bufPool->nbBuffers] = g_nullBuffer; + if ((availBufferSize >= bSize) & ((availBufferSize>>3) <= bSize)) { + /* large enough, but not too much */ + DEBUGLOG(5, "ZSTDMT_getBuffer: provide buffer %u of size %u", + bufPool->nbBuffers, (U32)buf.capacity); + ZSTD_pthread_mutex_unlock(&bufPool->poolMutex); + return buf; + } + /* size conditions not respected : scratch this buffer, create new one */ + DEBUGLOG(5, "ZSTDMT_getBuffer: existing buffer does not meet size conditions => freeing"); + ZSTD_customFree(buf.start, bufPool->cMem); + } + ZSTD_pthread_mutex_unlock(&bufPool->poolMutex); + /* create new buffer */ + DEBUGLOG(5, "ZSTDMT_getBuffer: create a new buffer"); + { buffer_t buffer; + void* const start = ZSTD_customMalloc(bSize, bufPool->cMem); + buffer.start = start; /* note : start can be NULL if malloc fails ! */ + buffer.capacity = (start==NULL) ? 0 : bSize; + if (start==NULL) { + DEBUGLOG(5, "ZSTDMT_getBuffer: buffer allocation failure !!"); + } else { + DEBUGLOG(5, "ZSTDMT_getBuffer: created buffer of size %u", (U32)bSize); + } + return buffer; + } +} + +#if ZSTD_RESIZE_SEQPOOL +/** ZSTDMT_resizeBuffer() : + * assumption : bufPool must be valid + * @return : a buffer that is at least the buffer pool buffer size. + * If a reallocation happens, the data in the input buffer is copied. + */ +static buffer_t ZSTDMT_resizeBuffer(ZSTDMT_bufferPool* bufPool, buffer_t buffer) +{ + size_t const bSize = bufPool->bufferSize; + if (buffer.capacity < bSize) { + void* const start = ZSTD_customMalloc(bSize, bufPool->cMem); + buffer_t newBuffer; + newBuffer.start = start; + newBuffer.capacity = start == NULL ? 0 : bSize; + if (start != NULL) { + assert(newBuffer.capacity >= buffer.capacity); + ZSTD_memcpy(newBuffer.start, buffer.start, buffer.capacity); + DEBUGLOG(5, "ZSTDMT_resizeBuffer: created buffer of size %u", (U32)bSize); + return newBuffer; + } + DEBUGLOG(5, "ZSTDMT_resizeBuffer: buffer allocation failure !!"); + } + return buffer; +} +#endif + +/* store buffer for later re-use, up to pool capacity */ +static void ZSTDMT_releaseBuffer(ZSTDMT_bufferPool* bufPool, buffer_t buf) +{ + DEBUGLOG(5, "ZSTDMT_releaseBuffer"); + if (buf.start == NULL) return; /* compatible with release on NULL */ + ZSTD_pthread_mutex_lock(&bufPool->poolMutex); + if (bufPool->nbBuffers < bufPool->totalBuffers) { + bufPool->bTable[bufPool->nbBuffers++] = buf; /* stored for later use */ + DEBUGLOG(5, "ZSTDMT_releaseBuffer: stored buffer of size %u in slot %u", + (U32)buf.capacity, (U32)(bufPool->nbBuffers-1)); + ZSTD_pthread_mutex_unlock(&bufPool->poolMutex); + return; + } + ZSTD_pthread_mutex_unlock(&bufPool->poolMutex); + /* Reached bufferPool capacity (should not happen) */ + DEBUGLOG(5, "ZSTDMT_releaseBuffer: pool capacity reached => freeing "); + ZSTD_customFree(buf.start, bufPool->cMem); +} + + +/* ===== Seq Pool Wrapper ====== */ + +typedef ZSTDMT_bufferPool ZSTDMT_seqPool; + +static size_t ZSTDMT_sizeof_seqPool(ZSTDMT_seqPool* seqPool) +{ + return ZSTDMT_sizeof_bufferPool(seqPool); +} + +static rawSeqStore_t bufferToSeq(buffer_t buffer) +{ + rawSeqStore_t seq = kNullRawSeqStore; + seq.seq = (rawSeq*)buffer.start; + seq.capacity = buffer.capacity / sizeof(rawSeq); + return seq; +} + +static buffer_t seqToBuffer(rawSeqStore_t seq) +{ + buffer_t buffer; + buffer.start = seq.seq; + buffer.capacity = seq.capacity * sizeof(rawSeq); + return buffer; +} + +static rawSeqStore_t ZSTDMT_getSeq(ZSTDMT_seqPool* seqPool) +{ + if (seqPool->bufferSize == 0) { + return kNullRawSeqStore; + } + return bufferToSeq(ZSTDMT_getBuffer(seqPool)); +} + +#if ZSTD_RESIZE_SEQPOOL +static rawSeqStore_t ZSTDMT_resizeSeq(ZSTDMT_seqPool* seqPool, rawSeqStore_t seq) +{ + return bufferToSeq(ZSTDMT_resizeBuffer(seqPool, seqToBuffer(seq))); +} +#endif + +static void ZSTDMT_releaseSeq(ZSTDMT_seqPool* seqPool, rawSeqStore_t seq) +{ + ZSTDMT_releaseBuffer(seqPool, seqToBuffer(seq)); +} + +static void ZSTDMT_setNbSeq(ZSTDMT_seqPool* const seqPool, size_t const nbSeq) +{ + ZSTDMT_setBufferSize(seqPool, nbSeq * sizeof(rawSeq)); +} + +static ZSTDMT_seqPool* ZSTDMT_createSeqPool(unsigned nbWorkers, ZSTD_customMem cMem) +{ + ZSTDMT_seqPool* const seqPool = ZSTDMT_createBufferPool(nbWorkers, cMem); + if (seqPool == NULL) return NULL; + ZSTDMT_setNbSeq(seqPool, 0); + return seqPool; +} + +static void ZSTDMT_freeSeqPool(ZSTDMT_seqPool* seqPool) +{ + ZSTDMT_freeBufferPool(seqPool); +} + +static ZSTDMT_seqPool* ZSTDMT_expandSeqPool(ZSTDMT_seqPool* pool, U32 nbWorkers) +{ + return ZSTDMT_expandBufferPool(pool, nbWorkers); +} + + +/* ===== CCtx Pool ===== */ +/* a single CCtx Pool can be invoked from multiple threads in parallel */ + +typedef struct { + ZSTD_pthread_mutex_t poolMutex; + int totalCCtx; + int availCCtx; + ZSTD_customMem cMem; + ZSTD_CCtx* cctx[1]; /* variable size */ +} ZSTDMT_CCtxPool; + +/* note : all CCtx borrowed from the pool should be released back to the pool _before_ freeing the pool */ +static void ZSTDMT_freeCCtxPool(ZSTDMT_CCtxPool* pool) +{ + int cid; + for (cid=0; cidtotalCCtx; cid++) + ZSTD_freeCCtx(pool->cctx[cid]); /* note : compatible with free on NULL */ + ZSTD_pthread_mutex_destroy(&pool->poolMutex); + ZSTD_customFree(pool, pool->cMem); +} + +/* ZSTDMT_createCCtxPool() : + * implies nbWorkers >= 1 , checked by caller ZSTDMT_createCCtx() */ +static ZSTDMT_CCtxPool* ZSTDMT_createCCtxPool(int nbWorkers, + ZSTD_customMem cMem) +{ + ZSTDMT_CCtxPool* const cctxPool = (ZSTDMT_CCtxPool*) ZSTD_customCalloc( + sizeof(ZSTDMT_CCtxPool) + (nbWorkers-1)*sizeof(ZSTD_CCtx*), cMem); + assert(nbWorkers > 0); + if (!cctxPool) return NULL; + if (ZSTD_pthread_mutex_init(&cctxPool->poolMutex, NULL)) { + ZSTD_customFree(cctxPool, cMem); + return NULL; + } + cctxPool->cMem = cMem; + cctxPool->totalCCtx = nbWorkers; + cctxPool->availCCtx = 1; /* at least one cctx for single-thread mode */ + cctxPool->cctx[0] = ZSTD_createCCtx_advanced(cMem); + if (!cctxPool->cctx[0]) { ZSTDMT_freeCCtxPool(cctxPool); return NULL; } + DEBUGLOG(3, "cctxPool created, with %u workers", nbWorkers); + return cctxPool; +} + +static ZSTDMT_CCtxPool* ZSTDMT_expandCCtxPool(ZSTDMT_CCtxPool* srcPool, + int nbWorkers) +{ + if (srcPool==NULL) return NULL; + if (nbWorkers <= srcPool->totalCCtx) return srcPool; /* good enough */ + /* need a larger cctx pool */ + { ZSTD_customMem const cMem = srcPool->cMem; + ZSTDMT_freeCCtxPool(srcPool); + return ZSTDMT_createCCtxPool(nbWorkers, cMem); + } +} + +/* only works during initialization phase, not during compression */ +static size_t ZSTDMT_sizeof_CCtxPool(ZSTDMT_CCtxPool* cctxPool) +{ + ZSTD_pthread_mutex_lock(&cctxPool->poolMutex); + { unsigned const nbWorkers = cctxPool->totalCCtx; + size_t const poolSize = sizeof(*cctxPool) + + (nbWorkers-1) * sizeof(ZSTD_CCtx*); + unsigned u; + size_t totalCCtxSize = 0; + for (u=0; ucctx[u]); + } + ZSTD_pthread_mutex_unlock(&cctxPool->poolMutex); + assert(nbWorkers > 0); + return poolSize + totalCCtxSize; + } +} + +static ZSTD_CCtx* ZSTDMT_getCCtx(ZSTDMT_CCtxPool* cctxPool) +{ + DEBUGLOG(5, "ZSTDMT_getCCtx"); + ZSTD_pthread_mutex_lock(&cctxPool->poolMutex); + if (cctxPool->availCCtx) { + cctxPool->availCCtx--; + { ZSTD_CCtx* const cctx = cctxPool->cctx[cctxPool->availCCtx]; + ZSTD_pthread_mutex_unlock(&cctxPool->poolMutex); + return cctx; + } } + ZSTD_pthread_mutex_unlock(&cctxPool->poolMutex); + DEBUGLOG(5, "create one more CCtx"); + return ZSTD_createCCtx_advanced(cctxPool->cMem); /* note : can be NULL, when creation fails ! */ +} + +static void ZSTDMT_releaseCCtx(ZSTDMT_CCtxPool* pool, ZSTD_CCtx* cctx) +{ + if (cctx==NULL) return; /* compatibility with release on NULL */ + ZSTD_pthread_mutex_lock(&pool->poolMutex); + if (pool->availCCtx < pool->totalCCtx) + pool->cctx[pool->availCCtx++] = cctx; + else { + /* pool overflow : should not happen, since totalCCtx==nbWorkers */ + DEBUGLOG(4, "CCtx pool overflow : free cctx"); + ZSTD_freeCCtx(cctx); + } + ZSTD_pthread_mutex_unlock(&pool->poolMutex); +} + +/* ==== Serial State ==== */ + +typedef struct { + void const* start; + size_t size; +} range_t; + +typedef struct { + /* All variables in the struct are protected by mutex. */ + ZSTD_pthread_mutex_t mutex; + ZSTD_pthread_cond_t cond; + ZSTD_CCtx_params params; + ldmState_t ldmState; + XXH64_state_t xxhState; + unsigned nextJobID; + /* Protects ldmWindow. + * Must be acquired after the main mutex when acquiring both. + */ + ZSTD_pthread_mutex_t ldmWindowMutex; + ZSTD_pthread_cond_t ldmWindowCond; /* Signaled when ldmWindow is updated */ + ZSTD_window_t ldmWindow; /* A thread-safe copy of ldmState.window */ +} serialState_t; + +static int +ZSTDMT_serialState_reset(serialState_t* serialState, + ZSTDMT_seqPool* seqPool, + ZSTD_CCtx_params params, + size_t jobSize, + const void* dict, size_t const dictSize, + ZSTD_dictContentType_e dictContentType) +{ + /* Adjust parameters */ + if (params.ldmParams.enableLdm) { + DEBUGLOG(4, "LDM window size = %u KB", (1U << params.cParams.windowLog) >> 10); + ZSTD_ldm_adjustParameters(¶ms.ldmParams, ¶ms.cParams); + assert(params.ldmParams.hashLog >= params.ldmParams.bucketSizeLog); + assert(params.ldmParams.hashRateLog < 32); + } else { + ZSTD_memset(¶ms.ldmParams, 0, sizeof(params.ldmParams)); + } + serialState->nextJobID = 0; + if (params.fParams.checksumFlag) + XXH64_reset(&serialState->xxhState, 0); + if (params.ldmParams.enableLdm) { + ZSTD_customMem cMem = params.customMem; + unsigned const hashLog = params.ldmParams.hashLog; + size_t const hashSize = ((size_t)1 << hashLog) * sizeof(ldmEntry_t); + unsigned const bucketLog = + params.ldmParams.hashLog - params.ldmParams.bucketSizeLog; + unsigned const prevBucketLog = + serialState->params.ldmParams.hashLog - + serialState->params.ldmParams.bucketSizeLog; + size_t const numBuckets = (size_t)1 << bucketLog; + /* Size the seq pool tables */ + ZSTDMT_setNbSeq(seqPool, ZSTD_ldm_getMaxNbSeq(params.ldmParams, jobSize)); + /* Reset the window */ + ZSTD_window_init(&serialState->ldmState.window); + /* Resize tables and output space if necessary. */ + if (serialState->ldmState.hashTable == NULL || serialState->params.ldmParams.hashLog < hashLog) { + ZSTD_customFree(serialState->ldmState.hashTable, cMem); + serialState->ldmState.hashTable = (ldmEntry_t*)ZSTD_customMalloc(hashSize, cMem); + } + if (serialState->ldmState.bucketOffsets == NULL || prevBucketLog < bucketLog) { + ZSTD_customFree(serialState->ldmState.bucketOffsets, cMem); + serialState->ldmState.bucketOffsets = (BYTE*)ZSTD_customMalloc(numBuckets, cMem); + } + if (!serialState->ldmState.hashTable || !serialState->ldmState.bucketOffsets) + return 1; + /* Zero the tables */ + ZSTD_memset(serialState->ldmState.hashTable, 0, hashSize); + ZSTD_memset(serialState->ldmState.bucketOffsets, 0, numBuckets); + + /* Update window state and fill hash table with dict */ + serialState->ldmState.loadedDictEnd = 0; + if (dictSize > 0) { + if (dictContentType == ZSTD_dct_rawContent) { + BYTE const* const dictEnd = (const BYTE*)dict + dictSize; + ZSTD_window_update(&serialState->ldmState.window, dict, dictSize, /* forceNonContiguous */ 0); + ZSTD_ldm_fillHashTable(&serialState->ldmState, (const BYTE*)dict, dictEnd, ¶ms.ldmParams); + serialState->ldmState.loadedDictEnd = params.forceWindow ? 0 : (U32)(dictEnd - serialState->ldmState.window.base); + } else { + /* don't even load anything */ + } + } + + /* Initialize serialState's copy of ldmWindow. */ + serialState->ldmWindow = serialState->ldmState.window; + } + + serialState->params = params; + serialState->params.jobSize = (U32)jobSize; + return 0; +} + +static int ZSTDMT_serialState_init(serialState_t* serialState) +{ + int initError = 0; + ZSTD_memset(serialState, 0, sizeof(*serialState)); + initError |= ZSTD_pthread_mutex_init(&serialState->mutex, NULL); + initError |= ZSTD_pthread_cond_init(&serialState->cond, NULL); + initError |= ZSTD_pthread_mutex_init(&serialState->ldmWindowMutex, NULL); + initError |= ZSTD_pthread_cond_init(&serialState->ldmWindowCond, NULL); + return initError; +} + +static void ZSTDMT_serialState_free(serialState_t* serialState) +{ + ZSTD_customMem cMem = serialState->params.customMem; + ZSTD_pthread_mutex_destroy(&serialState->mutex); + ZSTD_pthread_cond_destroy(&serialState->cond); + ZSTD_pthread_mutex_destroy(&serialState->ldmWindowMutex); + ZSTD_pthread_cond_destroy(&serialState->ldmWindowCond); + ZSTD_customFree(serialState->ldmState.hashTable, cMem); + ZSTD_customFree(serialState->ldmState.bucketOffsets, cMem); +} + +static void ZSTDMT_serialState_update(serialState_t* serialState, + ZSTD_CCtx* jobCCtx, rawSeqStore_t seqStore, + range_t src, unsigned jobID) +{ + /* Wait for our turn */ + ZSTD_PTHREAD_MUTEX_LOCK(&serialState->mutex); + while (serialState->nextJobID < jobID) { + DEBUGLOG(5, "wait for serialState->cond"); + ZSTD_pthread_cond_wait(&serialState->cond, &serialState->mutex); + } + /* A future job may error and skip our job */ + if (serialState->nextJobID == jobID) { + /* It is now our turn, do any processing necessary */ + if (serialState->params.ldmParams.enableLdm) { + size_t error; + assert(seqStore.seq != NULL && seqStore.pos == 0 && + seqStore.size == 0 && seqStore.capacity > 0); + assert(src.size <= serialState->params.jobSize); + ZSTD_window_update(&serialState->ldmState.window, src.start, src.size, /* forceNonContiguous */ 0); + error = ZSTD_ldm_generateSequences( + &serialState->ldmState, &seqStore, + &serialState->params.ldmParams, src.start, src.size); + /* We provide a large enough buffer to never fail. */ + assert(!ZSTD_isError(error)); (void)error; + /* Update ldmWindow to match the ldmState.window and signal the main + * thread if it is waiting for a buffer. + */ + ZSTD_PTHREAD_MUTEX_LOCK(&serialState->ldmWindowMutex); + serialState->ldmWindow = serialState->ldmState.window; + ZSTD_pthread_cond_signal(&serialState->ldmWindowCond); + ZSTD_pthread_mutex_unlock(&serialState->ldmWindowMutex); + } + if (serialState->params.fParams.checksumFlag && src.size > 0) + XXH64_update(&serialState->xxhState, src.start, src.size); + } + /* Now it is the next jobs turn */ + serialState->nextJobID++; + ZSTD_pthread_cond_broadcast(&serialState->cond); + ZSTD_pthread_mutex_unlock(&serialState->mutex); + + if (seqStore.size > 0) { + size_t const err = ZSTD_referenceExternalSequences( + jobCCtx, seqStore.seq, seqStore.size); + assert(serialState->params.ldmParams.enableLdm); + assert(!ZSTD_isError(err)); + (void)err; + } +} + +static void ZSTDMT_serialState_ensureFinished(serialState_t* serialState, + unsigned jobID, size_t cSize) +{ + ZSTD_PTHREAD_MUTEX_LOCK(&serialState->mutex); + if (serialState->nextJobID <= jobID) { + assert(ZSTD_isError(cSize)); (void)cSize; + DEBUGLOG(5, "Skipping past job %u because of error", jobID); + serialState->nextJobID = jobID + 1; + ZSTD_pthread_cond_broadcast(&serialState->cond); + + ZSTD_PTHREAD_MUTEX_LOCK(&serialState->ldmWindowMutex); + ZSTD_window_clear(&serialState->ldmWindow); + ZSTD_pthread_cond_signal(&serialState->ldmWindowCond); + ZSTD_pthread_mutex_unlock(&serialState->ldmWindowMutex); + } + ZSTD_pthread_mutex_unlock(&serialState->mutex); + +} + + +/* ------------------------------------------ */ +/* ===== Worker thread ===== */ +/* ------------------------------------------ */ + +static const range_t kNullRange = { NULL, 0 }; + +typedef struct { + size_t consumed; /* SHARED - set0 by mtctx, then modified by worker AND read by mtctx */ + size_t cSize; /* SHARED - set0 by mtctx, then modified by worker AND read by mtctx, then set0 by mtctx */ + ZSTD_pthread_mutex_t job_mutex; /* Thread-safe - used by mtctx and worker */ + ZSTD_pthread_cond_t job_cond; /* Thread-safe - used by mtctx and worker */ + ZSTDMT_CCtxPool* cctxPool; /* Thread-safe - used by mtctx and (all) workers */ + ZSTDMT_bufferPool* bufPool; /* Thread-safe - used by mtctx and (all) workers */ + ZSTDMT_seqPool* seqPool; /* Thread-safe - used by mtctx and (all) workers */ + serialState_t* serial; /* Thread-safe - used by mtctx and (all) workers */ + buffer_t dstBuff; /* set by worker (or mtctx), then read by worker & mtctx, then modified by mtctx => no barrier */ + range_t prefix; /* set by mtctx, then read by worker & mtctx => no barrier */ + range_t src; /* set by mtctx, then read by worker & mtctx => no barrier */ + unsigned jobID; /* set by mtctx, then read by worker => no barrier */ + unsigned firstJob; /* set by mtctx, then read by worker => no barrier */ + unsigned lastJob; /* set by mtctx, then read by worker => no barrier */ + ZSTD_CCtx_params params; /* set by mtctx, then read by worker => no barrier */ + const ZSTD_CDict* cdict; /* set by mtctx, then read by worker => no barrier */ + unsigned long long fullFrameSize; /* set by mtctx, then read by worker => no barrier */ + size_t dstFlushed; /* used only by mtctx */ + unsigned frameChecksumNeeded; /* used only by mtctx */ +} ZSTDMT_jobDescription; + +#define JOB_ERROR(e) { \ + ZSTD_PTHREAD_MUTEX_LOCK(&job->job_mutex); \ + job->cSize = e; \ + ZSTD_pthread_mutex_unlock(&job->job_mutex); \ + goto _endJob; \ +} + +/* ZSTDMT_compressionJob() is a POOL_function type */ +static void ZSTDMT_compressionJob(void* jobDescription) +{ + ZSTDMT_jobDescription* const job = (ZSTDMT_jobDescription*)jobDescription; + ZSTD_CCtx_params jobParams = job->params; /* do not modify job->params ! copy it, modify the copy */ + ZSTD_CCtx* const cctx = ZSTDMT_getCCtx(job->cctxPool); + rawSeqStore_t rawSeqStore = ZSTDMT_getSeq(job->seqPool); + buffer_t dstBuff = job->dstBuff; + size_t lastCBlockSize = 0; + + /* resources */ + if (cctx==NULL) JOB_ERROR(ERROR(memory_allocation)); + if (dstBuff.start == NULL) { /* streaming job : doesn't provide a dstBuffer */ + dstBuff = ZSTDMT_getBuffer(job->bufPool); + if (dstBuff.start==NULL) JOB_ERROR(ERROR(memory_allocation)); + job->dstBuff = dstBuff; /* this value can be read in ZSTDMT_flush, when it copies the whole job */ + } + if (jobParams.ldmParams.enableLdm && rawSeqStore.seq == NULL) + JOB_ERROR(ERROR(memory_allocation)); + + /* Don't compute the checksum for chunks, since we compute it externally, + * but write it in the header. + */ + if (job->jobID != 0) jobParams.fParams.checksumFlag = 0; + /* Don't run LDM for the chunks, since we handle it externally */ + jobParams.ldmParams.enableLdm = 0; + /* Correct nbWorkers to 0. */ + jobParams.nbWorkers = 0; + + + /* init */ + if (job->cdict) { + size_t const initError = ZSTD_compressBegin_advanced_internal(cctx, NULL, 0, ZSTD_dct_auto, ZSTD_dtlm_fast, job->cdict, &jobParams, job->fullFrameSize); + assert(job->firstJob); /* only allowed for first job */ + if (ZSTD_isError(initError)) JOB_ERROR(initError); + } else { /* srcStart points at reloaded section */ + U64 const pledgedSrcSize = job->firstJob ? job->fullFrameSize : job->src.size; + { size_t const forceWindowError = ZSTD_CCtxParams_setParameter(&jobParams, ZSTD_c_forceMaxWindow, !job->firstJob); + if (ZSTD_isError(forceWindowError)) JOB_ERROR(forceWindowError); + } + if (!job->firstJob) { + size_t const err = ZSTD_CCtxParams_setParameter(&jobParams, ZSTD_c_deterministicRefPrefix, 0); + if (ZSTD_isError(err)) JOB_ERROR(err); + } + { size_t const initError = ZSTD_compressBegin_advanced_internal(cctx, + job->prefix.start, job->prefix.size, ZSTD_dct_rawContent, /* load dictionary in "content-only" mode (no header analysis) */ + ZSTD_dtlm_fast, + NULL, /*cdict*/ + &jobParams, pledgedSrcSize); + if (ZSTD_isError(initError)) JOB_ERROR(initError); + } } + + /* Perform serial step as early as possible, but after CCtx initialization */ + ZSTDMT_serialState_update(job->serial, cctx, rawSeqStore, job->src, job->jobID); + + if (!job->firstJob) { /* flush and overwrite frame header when it's not first job */ + size_t const hSize = ZSTD_compressContinue(cctx, dstBuff.start, dstBuff.capacity, job->src.start, 0); + if (ZSTD_isError(hSize)) JOB_ERROR(hSize); + DEBUGLOG(5, "ZSTDMT_compressionJob: flush and overwrite %u bytes of frame header (not first job)", (U32)hSize); + ZSTD_invalidateRepCodes(cctx); + } + + /* compress */ + { size_t const chunkSize = 4*ZSTD_BLOCKSIZE_MAX; + int const nbChunks = (int)((job->src.size + (chunkSize-1)) / chunkSize); + const BYTE* ip = (const BYTE*) job->src.start; + BYTE* const ostart = (BYTE*)dstBuff.start; + BYTE* op = ostart; + BYTE* oend = op + dstBuff.capacity; + int chunkNb; + if (sizeof(size_t) > sizeof(int)) assert(job->src.size < ((size_t)INT_MAX) * chunkSize); /* check overflow */ + DEBUGLOG(5, "ZSTDMT_compressionJob: compress %u bytes in %i blocks", (U32)job->src.size, nbChunks); + assert(job->cSize == 0); + for (chunkNb = 1; chunkNb < nbChunks; chunkNb++) { + size_t const cSize = ZSTD_compressContinue(cctx, op, oend-op, ip, chunkSize); + if (ZSTD_isError(cSize)) JOB_ERROR(cSize); + ip += chunkSize; + op += cSize; assert(op < oend); + /* stats */ + ZSTD_PTHREAD_MUTEX_LOCK(&job->job_mutex); + job->cSize += cSize; + job->consumed = chunkSize * chunkNb; + DEBUGLOG(5, "ZSTDMT_compressionJob: compress new block : cSize==%u bytes (total: %u)", + (U32)cSize, (U32)job->cSize); + ZSTD_pthread_cond_signal(&job->job_cond); /* warns some more data is ready to be flushed */ + ZSTD_pthread_mutex_unlock(&job->job_mutex); + } + /* last block */ + assert(chunkSize > 0); + assert((chunkSize & (chunkSize - 1)) == 0); /* chunkSize must be power of 2 for mask==(chunkSize-1) to work */ + if ((nbChunks > 0) | job->lastJob /*must output a "last block" flag*/ ) { + size_t const lastBlockSize1 = job->src.size & (chunkSize-1); + size_t const lastBlockSize = ((lastBlockSize1==0) & (job->src.size>=chunkSize)) ? chunkSize : lastBlockSize1; + size_t const cSize = (job->lastJob) ? + ZSTD_compressEnd (cctx, op, oend-op, ip, lastBlockSize) : + ZSTD_compressContinue(cctx, op, oend-op, ip, lastBlockSize); + if (ZSTD_isError(cSize)) JOB_ERROR(cSize); + lastCBlockSize = cSize; + } } + if (!job->firstJob) { + /* Double check that we don't have an ext-dict, because then our + * repcode invalidation doesn't work. + */ + assert(!ZSTD_window_hasExtDict(cctx->blockState.matchState.window)); + } + ZSTD_CCtx_trace(cctx, 0); + +_endJob: + ZSTDMT_serialState_ensureFinished(job->serial, job->jobID, job->cSize); + if (job->prefix.size > 0) + DEBUGLOG(5, "Finished with prefix: %zx", (size_t)job->prefix.start); + DEBUGLOG(5, "Finished with source: %zx", (size_t)job->src.start); + /* release resources */ + ZSTDMT_releaseSeq(job->seqPool, rawSeqStore); + ZSTDMT_releaseCCtx(job->cctxPool, cctx); + /* report */ + ZSTD_PTHREAD_MUTEX_LOCK(&job->job_mutex); + if (ZSTD_isError(job->cSize)) assert(lastCBlockSize == 0); + job->cSize += lastCBlockSize; + job->consumed = job->src.size; /* when job->consumed == job->src.size , compression job is presumed completed */ + ZSTD_pthread_cond_signal(&job->job_cond); + ZSTD_pthread_mutex_unlock(&job->job_mutex); +} + + +/* ------------------------------------------ */ +/* ===== Multi-threaded compression ===== */ +/* ------------------------------------------ */ + +typedef struct { + range_t prefix; /* read-only non-owned prefix buffer */ + buffer_t buffer; + size_t filled; +} inBuff_t; + +typedef struct { + BYTE* buffer; /* The round input buffer. All jobs get references + * to pieces of the buffer. ZSTDMT_tryGetInputRange() + * handles handing out job input buffers, and makes + * sure it doesn't overlap with any pieces still in use. + */ + size_t capacity; /* The capacity of buffer. */ + size_t pos; /* The position of the current inBuff in the round + * buffer. Updated past the end if the inBuff once + * the inBuff is sent to the worker thread. + * pos <= capacity. + */ +} roundBuff_t; + +static const roundBuff_t kNullRoundBuff = {NULL, 0, 0}; + +#define RSYNC_LENGTH 32 + +typedef struct { + U64 hash; + U64 hitMask; + U64 primePower; +} rsyncState_t; + +struct ZSTDMT_CCtx_s { + POOL_ctx* factory; + ZSTDMT_jobDescription* jobs; + ZSTDMT_bufferPool* bufPool; + ZSTDMT_CCtxPool* cctxPool; + ZSTDMT_seqPool* seqPool; + ZSTD_CCtx_params params; + size_t targetSectionSize; + size_t targetPrefixSize; + int jobReady; /* 1 => one job is already prepared, but pool has shortage of workers. Don't create a new job. */ + inBuff_t inBuff; + roundBuff_t roundBuff; + serialState_t serial; + rsyncState_t rsync; + unsigned jobIDMask; + unsigned doneJobID; + unsigned nextJobID; + unsigned frameEnded; + unsigned allJobsCompleted; + unsigned long long frameContentSize; + unsigned long long consumed; + unsigned long long produced; + ZSTD_customMem cMem; + ZSTD_CDict* cdictLocal; + const ZSTD_CDict* cdict; + unsigned providedFactory: 1; +}; + +static void ZSTDMT_freeJobsTable(ZSTDMT_jobDescription* jobTable, U32 nbJobs, ZSTD_customMem cMem) +{ + U32 jobNb; + if (jobTable == NULL) return; + for (jobNb=0; jobNb mtctx->jobIDMask+1) { /* need more job capacity */ + ZSTDMT_freeJobsTable(mtctx->jobs, mtctx->jobIDMask+1, mtctx->cMem); + mtctx->jobIDMask = 0; + mtctx->jobs = ZSTDMT_createJobsTable(&nbJobs, mtctx->cMem); + if (mtctx->jobs==NULL) return ERROR(memory_allocation); + assert((nbJobs != 0) && ((nbJobs & (nbJobs - 1)) == 0)); /* ensure nbJobs is a power of 2 */ + mtctx->jobIDMask = nbJobs - 1; + } + return 0; +} + + +/* ZSTDMT_CCtxParam_setNbWorkers(): + * Internal use only */ +static size_t ZSTDMT_CCtxParam_setNbWorkers(ZSTD_CCtx_params* params, unsigned nbWorkers) +{ + return ZSTD_CCtxParams_setParameter(params, ZSTD_c_nbWorkers, (int)nbWorkers); +} + +MEM_STATIC ZSTDMT_CCtx* ZSTDMT_createCCtx_advanced_internal(unsigned nbWorkers, ZSTD_customMem cMem, ZSTD_threadPool* pool) +{ + ZSTDMT_CCtx* mtctx; + U32 nbJobs = nbWorkers + 2; + int initError; + DEBUGLOG(3, "ZSTDMT_createCCtx_advanced (nbWorkers = %u)", nbWorkers); + + if (nbWorkers < 1) return NULL; + nbWorkers = MIN(nbWorkers , ZSTDMT_NBWORKERS_MAX); + if ((cMem.customAlloc!=NULL) ^ (cMem.customFree!=NULL)) + /* invalid custom allocator */ + return NULL; + + mtctx = (ZSTDMT_CCtx*) ZSTD_customCalloc(sizeof(ZSTDMT_CCtx), cMem); + if (!mtctx) return NULL; + ZSTDMT_CCtxParam_setNbWorkers(&mtctx->params, nbWorkers); + mtctx->cMem = cMem; + mtctx->allJobsCompleted = 1; + if (pool != NULL) { + mtctx->factory = pool; + mtctx->providedFactory = 1; + } + else { + mtctx->factory = POOL_create_advanced(nbWorkers, 0, cMem); + mtctx->providedFactory = 0; + } + mtctx->jobs = ZSTDMT_createJobsTable(&nbJobs, cMem); + assert(nbJobs > 0); assert((nbJobs & (nbJobs - 1)) == 0); /* ensure nbJobs is a power of 2 */ + mtctx->jobIDMask = nbJobs - 1; + mtctx->bufPool = ZSTDMT_createBufferPool(nbWorkers, cMem); + mtctx->cctxPool = ZSTDMT_createCCtxPool(nbWorkers, cMem); + mtctx->seqPool = ZSTDMT_createSeqPool(nbWorkers, cMem); + initError = ZSTDMT_serialState_init(&mtctx->serial); + mtctx->roundBuff = kNullRoundBuff; + if (!mtctx->factory | !mtctx->jobs | !mtctx->bufPool | !mtctx->cctxPool | !mtctx->seqPool | initError) { + ZSTDMT_freeCCtx(mtctx); + return NULL; + } + DEBUGLOG(3, "mt_cctx created, for %u threads", nbWorkers); + return mtctx; +} + +ZSTDMT_CCtx* ZSTDMT_createCCtx_advanced(unsigned nbWorkers, ZSTD_customMem cMem, ZSTD_threadPool* pool) +{ +#ifdef ZSTD_MULTITHREAD + return ZSTDMT_createCCtx_advanced_internal(nbWorkers, cMem, pool); +#else + (void)nbWorkers; + (void)cMem; + (void)pool; + return NULL; +#endif +} + + +/* ZSTDMT_releaseAllJobResources() : + * note : ensure all workers are killed first ! */ +static void ZSTDMT_releaseAllJobResources(ZSTDMT_CCtx* mtctx) +{ + unsigned jobID; + DEBUGLOG(3, "ZSTDMT_releaseAllJobResources"); + for (jobID=0; jobID <= mtctx->jobIDMask; jobID++) { + /* Copy the mutex/cond out */ + ZSTD_pthread_mutex_t const mutex = mtctx->jobs[jobID].job_mutex; + ZSTD_pthread_cond_t const cond = mtctx->jobs[jobID].job_cond; + + DEBUGLOG(4, "job%02u: release dst address %08X", jobID, (U32)(size_t)mtctx->jobs[jobID].dstBuff.start); + ZSTDMT_releaseBuffer(mtctx->bufPool, mtctx->jobs[jobID].dstBuff); + + /* Clear the job description, but keep the mutex/cond */ + ZSTD_memset(&mtctx->jobs[jobID], 0, sizeof(mtctx->jobs[jobID])); + mtctx->jobs[jobID].job_mutex = mutex; + mtctx->jobs[jobID].job_cond = cond; + } + mtctx->inBuff.buffer = g_nullBuffer; + mtctx->inBuff.filled = 0; + mtctx->allJobsCompleted = 1; +} + +static void ZSTDMT_waitForAllJobsCompleted(ZSTDMT_CCtx* mtctx) +{ + DEBUGLOG(4, "ZSTDMT_waitForAllJobsCompleted"); + while (mtctx->doneJobID < mtctx->nextJobID) { + unsigned const jobID = mtctx->doneJobID & mtctx->jobIDMask; + ZSTD_PTHREAD_MUTEX_LOCK(&mtctx->jobs[jobID].job_mutex); + while (mtctx->jobs[jobID].consumed < mtctx->jobs[jobID].src.size) { + DEBUGLOG(4, "waiting for jobCompleted signal from job %u", mtctx->doneJobID); /* we want to block when waiting for data to flush */ + ZSTD_pthread_cond_wait(&mtctx->jobs[jobID].job_cond, &mtctx->jobs[jobID].job_mutex); + } + ZSTD_pthread_mutex_unlock(&mtctx->jobs[jobID].job_mutex); + mtctx->doneJobID++; + } +} + +size_t ZSTDMT_freeCCtx(ZSTDMT_CCtx* mtctx) +{ + if (mtctx==NULL) return 0; /* compatible with free on NULL */ + if (!mtctx->providedFactory) + POOL_free(mtctx->factory); /* stop and free worker threads */ + ZSTDMT_releaseAllJobResources(mtctx); /* release job resources into pools first */ + ZSTDMT_freeJobsTable(mtctx->jobs, mtctx->jobIDMask+1, mtctx->cMem); + ZSTDMT_freeBufferPool(mtctx->bufPool); + ZSTDMT_freeCCtxPool(mtctx->cctxPool); + ZSTDMT_freeSeqPool(mtctx->seqPool); + ZSTDMT_serialState_free(&mtctx->serial); + ZSTD_freeCDict(mtctx->cdictLocal); + if (mtctx->roundBuff.buffer) + ZSTD_customFree(mtctx->roundBuff.buffer, mtctx->cMem); + ZSTD_customFree(mtctx, mtctx->cMem); + return 0; +} + +size_t ZSTDMT_sizeof_CCtx(ZSTDMT_CCtx* mtctx) +{ + if (mtctx == NULL) return 0; /* supports sizeof NULL */ + return sizeof(*mtctx) + + POOL_sizeof(mtctx->factory) + + ZSTDMT_sizeof_bufferPool(mtctx->bufPool) + + (mtctx->jobIDMask+1) * sizeof(ZSTDMT_jobDescription) + + ZSTDMT_sizeof_CCtxPool(mtctx->cctxPool) + + ZSTDMT_sizeof_seqPool(mtctx->seqPool) + + ZSTD_sizeof_CDict(mtctx->cdictLocal) + + mtctx->roundBuff.capacity; +} + + +/* ZSTDMT_resize() : + * @return : error code if fails, 0 on success */ +static size_t ZSTDMT_resize(ZSTDMT_CCtx* mtctx, unsigned nbWorkers) +{ + if (POOL_resize(mtctx->factory, nbWorkers)) return ERROR(memory_allocation); + FORWARD_IF_ERROR( ZSTDMT_expandJobsTable(mtctx, nbWorkers) , ""); + mtctx->bufPool = ZSTDMT_expandBufferPool(mtctx->bufPool, nbWorkers); + if (mtctx->bufPool == NULL) return ERROR(memory_allocation); + mtctx->cctxPool = ZSTDMT_expandCCtxPool(mtctx->cctxPool, nbWorkers); + if (mtctx->cctxPool == NULL) return ERROR(memory_allocation); + mtctx->seqPool = ZSTDMT_expandSeqPool(mtctx->seqPool, nbWorkers); + if (mtctx->seqPool == NULL) return ERROR(memory_allocation); + ZSTDMT_CCtxParam_setNbWorkers(&mtctx->params, nbWorkers); + return 0; +} + + +/*! ZSTDMT_updateCParams_whileCompressing() : + * Updates a selected set of compression parameters, remaining compatible with currently active frame. + * New parameters will be applied to next compression job. */ +void ZSTDMT_updateCParams_whileCompressing(ZSTDMT_CCtx* mtctx, const ZSTD_CCtx_params* cctxParams) +{ + U32 const saved_wlog = mtctx->params.cParams.windowLog; /* Do not modify windowLog while compressing */ + int const compressionLevel = cctxParams->compressionLevel; + DEBUGLOG(5, "ZSTDMT_updateCParams_whileCompressing (level:%i)", + compressionLevel); + mtctx->params.compressionLevel = compressionLevel; + { ZSTD_compressionParameters cParams = ZSTD_getCParamsFromCCtxParams(cctxParams, ZSTD_CONTENTSIZE_UNKNOWN, 0, ZSTD_cpm_noAttachDict); + cParams.windowLog = saved_wlog; + mtctx->params.cParams = cParams; + } +} + +/* ZSTDMT_getFrameProgression(): + * tells how much data has been consumed (input) and produced (output) for current frame. + * able to count progression inside worker threads. + * Note : mutex will be acquired during statistics collection inside workers. */ +ZSTD_frameProgression ZSTDMT_getFrameProgression(ZSTDMT_CCtx* mtctx) +{ + ZSTD_frameProgression fps; + DEBUGLOG(5, "ZSTDMT_getFrameProgression"); + fps.ingested = mtctx->consumed + mtctx->inBuff.filled; + fps.consumed = mtctx->consumed; + fps.produced = fps.flushed = mtctx->produced; + fps.currentJobID = mtctx->nextJobID; + fps.nbActiveWorkers = 0; + { unsigned jobNb; + unsigned lastJobNb = mtctx->nextJobID + mtctx->jobReady; assert(mtctx->jobReady <= 1); + DEBUGLOG(6, "ZSTDMT_getFrameProgression: jobs: from %u to <%u (jobReady:%u)", + mtctx->doneJobID, lastJobNb, mtctx->jobReady) + for (jobNb = mtctx->doneJobID ; jobNb < lastJobNb ; jobNb++) { + unsigned const wJobID = jobNb & mtctx->jobIDMask; + ZSTDMT_jobDescription* jobPtr = &mtctx->jobs[wJobID]; + ZSTD_pthread_mutex_lock(&jobPtr->job_mutex); + { size_t const cResult = jobPtr->cSize; + size_t const produced = ZSTD_isError(cResult) ? 0 : cResult; + size_t const flushed = ZSTD_isError(cResult) ? 0 : jobPtr->dstFlushed; + assert(flushed <= produced); + fps.ingested += jobPtr->src.size; + fps.consumed += jobPtr->consumed; + fps.produced += produced; + fps.flushed += flushed; + fps.nbActiveWorkers += (jobPtr->consumed < jobPtr->src.size); + } + ZSTD_pthread_mutex_unlock(&mtctx->jobs[wJobID].job_mutex); + } + } + return fps; +} + + +size_t ZSTDMT_toFlushNow(ZSTDMT_CCtx* mtctx) +{ + size_t toFlush; + unsigned const jobID = mtctx->doneJobID; + assert(jobID <= mtctx->nextJobID); + if (jobID == mtctx->nextJobID) return 0; /* no active job => nothing to flush */ + + /* look into oldest non-fully-flushed job */ + { unsigned const wJobID = jobID & mtctx->jobIDMask; + ZSTDMT_jobDescription* const jobPtr = &mtctx->jobs[wJobID]; + ZSTD_pthread_mutex_lock(&jobPtr->job_mutex); + { size_t const cResult = jobPtr->cSize; + size_t const produced = ZSTD_isError(cResult) ? 0 : cResult; + size_t const flushed = ZSTD_isError(cResult) ? 0 : jobPtr->dstFlushed; + assert(flushed <= produced); + assert(jobPtr->consumed <= jobPtr->src.size); + toFlush = produced - flushed; + /* if toFlush==0, nothing is available to flush. + * However, jobID is expected to still be active: + * if jobID was already completed and fully flushed, + * ZSTDMT_flushProduced() should have already moved onto next job. + * Therefore, some input has not yet been consumed. */ + if (toFlush==0) { + assert(jobPtr->consumed < jobPtr->src.size); + } + } + ZSTD_pthread_mutex_unlock(&mtctx->jobs[wJobID].job_mutex); + } + + return toFlush; +} + + +/* ------------------------------------------ */ +/* ===== Multi-threaded compression ===== */ +/* ------------------------------------------ */ + +static unsigned ZSTDMT_computeTargetJobLog(const ZSTD_CCtx_params* params) +{ + unsigned jobLog; + if (params->ldmParams.enableLdm) { + /* In Long Range Mode, the windowLog is typically oversized. + * In which case, it's preferable to determine the jobSize + * based on cycleLog instead. */ + jobLog = MAX(21, ZSTD_cycleLog(params->cParams.chainLog, params->cParams.strategy) + 3); + } else { + jobLog = MAX(20, params->cParams.windowLog + 2); + } + return MIN(jobLog, (unsigned)ZSTDMT_JOBLOG_MAX); +} + +static int ZSTDMT_overlapLog_default(ZSTD_strategy strat) +{ + switch(strat) + { + case ZSTD_btultra2: + return 9; + case ZSTD_btultra: + case ZSTD_btopt: + return 8; + case ZSTD_btlazy2: + case ZSTD_lazy2: + return 7; + case ZSTD_lazy: + case ZSTD_greedy: + case ZSTD_dfast: + case ZSTD_fast: + default:; + } + return 6; +} + +static int ZSTDMT_overlapLog(int ovlog, ZSTD_strategy strat) +{ + assert(0 <= ovlog && ovlog <= 9); + if (ovlog == 0) return ZSTDMT_overlapLog_default(strat); + return ovlog; +} + +static size_t ZSTDMT_computeOverlapSize(const ZSTD_CCtx_params* params) +{ + int const overlapRLog = 9 - ZSTDMT_overlapLog(params->overlapLog, params->cParams.strategy); + int ovLog = (overlapRLog >= 8) ? 0 : (params->cParams.windowLog - overlapRLog); + assert(0 <= overlapRLog && overlapRLog <= 8); + if (params->ldmParams.enableLdm) { + /* In Long Range Mode, the windowLog is typically oversized. + * In which case, it's preferable to determine the jobSize + * based on chainLog instead. + * Then, ovLog becomes a fraction of the jobSize, rather than windowSize */ + ovLog = MIN(params->cParams.windowLog, ZSTDMT_computeTargetJobLog(params) - 2) + - overlapRLog; + } + assert(0 <= ovLog && ovLog <= ZSTD_WINDOWLOG_MAX); + DEBUGLOG(4, "overlapLog : %i", params->overlapLog); + DEBUGLOG(4, "overlap size : %i", 1 << ovLog); + return (ovLog==0) ? 0 : (size_t)1 << ovLog; +} + +/* ====================================== */ +/* ======= Streaming API ======= */ +/* ====================================== */ + +size_t ZSTDMT_initCStream_internal( + ZSTDMT_CCtx* mtctx, + const void* dict, size_t dictSize, ZSTD_dictContentType_e dictContentType, + const ZSTD_CDict* cdict, ZSTD_CCtx_params params, + unsigned long long pledgedSrcSize) +{ + DEBUGLOG(4, "ZSTDMT_initCStream_internal (pledgedSrcSize=%u, nbWorkers=%u, cctxPool=%u)", + (U32)pledgedSrcSize, params.nbWorkers, mtctx->cctxPool->totalCCtx); + + /* params supposed partially fully validated at this point */ + assert(!ZSTD_isError(ZSTD_checkCParams(params.cParams))); + assert(!((dict) && (cdict))); /* either dict or cdict, not both */ + + /* init */ + if (params.nbWorkers != mtctx->params.nbWorkers) + FORWARD_IF_ERROR( ZSTDMT_resize(mtctx, params.nbWorkers) , ""); + + if (params.jobSize != 0 && params.jobSize < ZSTDMT_JOBSIZE_MIN) params.jobSize = ZSTDMT_JOBSIZE_MIN; + if (params.jobSize > (size_t)ZSTDMT_JOBSIZE_MAX) params.jobSize = (size_t)ZSTDMT_JOBSIZE_MAX; + + DEBUGLOG(4, "ZSTDMT_initCStream_internal: %u workers", params.nbWorkers); + + if (mtctx->allJobsCompleted == 0) { /* previous compression not correctly finished */ + ZSTDMT_waitForAllJobsCompleted(mtctx); + ZSTDMT_releaseAllJobResources(mtctx); + mtctx->allJobsCompleted = 1; + } + + mtctx->params = params; + mtctx->frameContentSize = pledgedSrcSize; + if (dict) { + ZSTD_freeCDict(mtctx->cdictLocal); + mtctx->cdictLocal = ZSTD_createCDict_advanced(dict, dictSize, + ZSTD_dlm_byCopy, dictContentType, /* note : a loadPrefix becomes an internal CDict */ + params.cParams, mtctx->cMem); + mtctx->cdict = mtctx->cdictLocal; + if (mtctx->cdictLocal == NULL) return ERROR(memory_allocation); + } else { + ZSTD_freeCDict(mtctx->cdictLocal); + mtctx->cdictLocal = NULL; + mtctx->cdict = cdict; + } + + mtctx->targetPrefixSize = ZSTDMT_computeOverlapSize(¶ms); + DEBUGLOG(4, "overlapLog=%i => %u KB", params.overlapLog, (U32)(mtctx->targetPrefixSize>>10)); + mtctx->targetSectionSize = params.jobSize; + if (mtctx->targetSectionSize == 0) { + mtctx->targetSectionSize = 1ULL << ZSTDMT_computeTargetJobLog(¶ms); + } + assert(mtctx->targetSectionSize <= (size_t)ZSTDMT_JOBSIZE_MAX); + + if (params.rsyncable) { + /* Aim for the targetsectionSize as the average job size. */ + U32 const jobSizeKB = (U32)(mtctx->targetSectionSize >> 10); + U32 const rsyncBits = (assert(jobSizeKB >= 1), ZSTD_highbit32(jobSizeKB) + 10); + DEBUGLOG(4, "rsyncLog = %u", rsyncBits); + mtctx->rsync.hash = 0; + mtctx->rsync.hitMask = (1ULL << rsyncBits) - 1; + mtctx->rsync.primePower = ZSTD_rollingHash_primePower(RSYNC_LENGTH); + } + if (mtctx->targetSectionSize < mtctx->targetPrefixSize) mtctx->targetSectionSize = mtctx->targetPrefixSize; /* job size must be >= overlap size */ + DEBUGLOG(4, "Job Size : %u KB (note : set to %u)", (U32)(mtctx->targetSectionSize>>10), (U32)params.jobSize); + DEBUGLOG(4, "inBuff Size : %u KB", (U32)(mtctx->targetSectionSize>>10)); + ZSTDMT_setBufferSize(mtctx->bufPool, ZSTD_compressBound(mtctx->targetSectionSize)); + { + /* If ldm is enabled we need windowSize space. */ + size_t const windowSize = mtctx->params.ldmParams.enableLdm ? (1U << mtctx->params.cParams.windowLog) : 0; + /* Two buffers of slack, plus extra space for the overlap + * This is the minimum slack that LDM works with. One extra because + * flush might waste up to targetSectionSize-1 bytes. Another extra + * for the overlap (if > 0), then one to fill which doesn't overlap + * with the LDM window. + */ + size_t const nbSlackBuffers = 2 + (mtctx->targetPrefixSize > 0); + size_t const slackSize = mtctx->targetSectionSize * nbSlackBuffers; + /* Compute the total size, and always have enough slack */ + size_t const nbWorkers = MAX(mtctx->params.nbWorkers, 1); + size_t const sectionsSize = mtctx->targetSectionSize * nbWorkers; + size_t const capacity = MAX(windowSize, sectionsSize) + slackSize; + if (mtctx->roundBuff.capacity < capacity) { + if (mtctx->roundBuff.buffer) + ZSTD_customFree(mtctx->roundBuff.buffer, mtctx->cMem); + mtctx->roundBuff.buffer = (BYTE*)ZSTD_customMalloc(capacity, mtctx->cMem); + if (mtctx->roundBuff.buffer == NULL) { + mtctx->roundBuff.capacity = 0; + return ERROR(memory_allocation); + } + mtctx->roundBuff.capacity = capacity; + } + } + DEBUGLOG(4, "roundBuff capacity : %u KB", (U32)(mtctx->roundBuff.capacity>>10)); + mtctx->roundBuff.pos = 0; + mtctx->inBuff.buffer = g_nullBuffer; + mtctx->inBuff.filled = 0; + mtctx->inBuff.prefix = kNullRange; + mtctx->doneJobID = 0; + mtctx->nextJobID = 0; + mtctx->frameEnded = 0; + mtctx->allJobsCompleted = 0; + mtctx->consumed = 0; + mtctx->produced = 0; + if (ZSTDMT_serialState_reset(&mtctx->serial, mtctx->seqPool, params, mtctx->targetSectionSize, + dict, dictSize, dictContentType)) + return ERROR(memory_allocation); + return 0; +} + + +/* ZSTDMT_writeLastEmptyBlock() + * Write a single empty block with an end-of-frame to finish a frame. + * Job must be created from streaming variant. + * This function is always successful if expected conditions are fulfilled. + */ +static void ZSTDMT_writeLastEmptyBlock(ZSTDMT_jobDescription* job) +{ + assert(job->lastJob == 1); + assert(job->src.size == 0); /* last job is empty -> will be simplified into a last empty block */ + assert(job->firstJob == 0); /* cannot be first job, as it also needs to create frame header */ + assert(job->dstBuff.start == NULL); /* invoked from streaming variant only (otherwise, dstBuff might be user's output) */ + job->dstBuff = ZSTDMT_getBuffer(job->bufPool); + if (job->dstBuff.start == NULL) { + job->cSize = ERROR(memory_allocation); + return; + } + assert(job->dstBuff.capacity >= ZSTD_blockHeaderSize); /* no buffer should ever be that small */ + job->src = kNullRange; + job->cSize = ZSTD_writeLastEmptyBlock(job->dstBuff.start, job->dstBuff.capacity); + assert(!ZSTD_isError(job->cSize)); + assert(job->consumed == 0); +} + +static size_t ZSTDMT_createCompressionJob(ZSTDMT_CCtx* mtctx, size_t srcSize, ZSTD_EndDirective endOp) +{ + unsigned const jobID = mtctx->nextJobID & mtctx->jobIDMask; + int const endFrame = (endOp == ZSTD_e_end); + + if (mtctx->nextJobID > mtctx->doneJobID + mtctx->jobIDMask) { + DEBUGLOG(5, "ZSTDMT_createCompressionJob: will not create new job : table is full"); + assert((mtctx->nextJobID & mtctx->jobIDMask) == (mtctx->doneJobID & mtctx->jobIDMask)); + return 0; + } + + if (!mtctx->jobReady) { + BYTE const* src = (BYTE const*)mtctx->inBuff.buffer.start; + DEBUGLOG(5, "ZSTDMT_createCompressionJob: preparing job %u to compress %u bytes with %u preload ", + mtctx->nextJobID, (U32)srcSize, (U32)mtctx->inBuff.prefix.size); + mtctx->jobs[jobID].src.start = src; + mtctx->jobs[jobID].src.size = srcSize; + assert(mtctx->inBuff.filled >= srcSize); + mtctx->jobs[jobID].prefix = mtctx->inBuff.prefix; + mtctx->jobs[jobID].consumed = 0; + mtctx->jobs[jobID].cSize = 0; + mtctx->jobs[jobID].params = mtctx->params; + mtctx->jobs[jobID].cdict = mtctx->nextJobID==0 ? mtctx->cdict : NULL; + mtctx->jobs[jobID].fullFrameSize = mtctx->frameContentSize; + mtctx->jobs[jobID].dstBuff = g_nullBuffer; + mtctx->jobs[jobID].cctxPool = mtctx->cctxPool; + mtctx->jobs[jobID].bufPool = mtctx->bufPool; + mtctx->jobs[jobID].seqPool = mtctx->seqPool; + mtctx->jobs[jobID].serial = &mtctx->serial; + mtctx->jobs[jobID].jobID = mtctx->nextJobID; + mtctx->jobs[jobID].firstJob = (mtctx->nextJobID==0); + mtctx->jobs[jobID].lastJob = endFrame; + mtctx->jobs[jobID].frameChecksumNeeded = mtctx->params.fParams.checksumFlag && endFrame && (mtctx->nextJobID>0); + mtctx->jobs[jobID].dstFlushed = 0; + + /* Update the round buffer pos and clear the input buffer to be reset */ + mtctx->roundBuff.pos += srcSize; + mtctx->inBuff.buffer = g_nullBuffer; + mtctx->inBuff.filled = 0; + /* Set the prefix */ + if (!endFrame) { + size_t const newPrefixSize = MIN(srcSize, mtctx->targetPrefixSize); + mtctx->inBuff.prefix.start = src + srcSize - newPrefixSize; + mtctx->inBuff.prefix.size = newPrefixSize; + } else { /* endFrame==1 => no need for another input buffer */ + mtctx->inBuff.prefix = kNullRange; + mtctx->frameEnded = endFrame; + if (mtctx->nextJobID == 0) { + /* single job exception : checksum is already calculated directly within worker thread */ + mtctx->params.fParams.checksumFlag = 0; + } } + + if ( (srcSize == 0) + && (mtctx->nextJobID>0)/*single job must also write frame header*/ ) { + DEBUGLOG(5, "ZSTDMT_createCompressionJob: creating a last empty block to end frame"); + assert(endOp == ZSTD_e_end); /* only possible case : need to end the frame with an empty last block */ + ZSTDMT_writeLastEmptyBlock(mtctx->jobs + jobID); + mtctx->nextJobID++; + return 0; + } + } + + DEBUGLOG(5, "ZSTDMT_createCompressionJob: posting job %u : %u bytes (end:%u, jobNb == %u (mod:%u))", + mtctx->nextJobID, + (U32)mtctx->jobs[jobID].src.size, + mtctx->jobs[jobID].lastJob, + mtctx->nextJobID, + jobID); + if (POOL_tryAdd(mtctx->factory, ZSTDMT_compressionJob, &mtctx->jobs[jobID])) { + mtctx->nextJobID++; + mtctx->jobReady = 0; + } else { + DEBUGLOG(5, "ZSTDMT_createCompressionJob: no worker available for job %u", mtctx->nextJobID); + mtctx->jobReady = 1; + } + return 0; +} + + +/*! ZSTDMT_flushProduced() : + * flush whatever data has been produced but not yet flushed in current job. + * move to next job if current one is fully flushed. + * `output` : `pos` will be updated with amount of data flushed . + * `blockToFlush` : if >0, the function will block and wait if there is no data available to flush . + * @return : amount of data remaining within internal buffer, 0 if no more, 1 if unknown but > 0, or an error code */ +static size_t ZSTDMT_flushProduced(ZSTDMT_CCtx* mtctx, ZSTD_outBuffer* output, unsigned blockToFlush, ZSTD_EndDirective end) +{ + unsigned const wJobID = mtctx->doneJobID & mtctx->jobIDMask; + DEBUGLOG(5, "ZSTDMT_flushProduced (blocking:%u , job %u <= %u)", + blockToFlush, mtctx->doneJobID, mtctx->nextJobID); + assert(output->size >= output->pos); + + ZSTD_PTHREAD_MUTEX_LOCK(&mtctx->jobs[wJobID].job_mutex); + if ( blockToFlush + && (mtctx->doneJobID < mtctx->nextJobID) ) { + assert(mtctx->jobs[wJobID].dstFlushed <= mtctx->jobs[wJobID].cSize); + while (mtctx->jobs[wJobID].dstFlushed == mtctx->jobs[wJobID].cSize) { /* nothing to flush */ + if (mtctx->jobs[wJobID].consumed == mtctx->jobs[wJobID].src.size) { + DEBUGLOG(5, "job %u is completely consumed (%u == %u) => don't wait for cond, there will be none", + mtctx->doneJobID, (U32)mtctx->jobs[wJobID].consumed, (U32)mtctx->jobs[wJobID].src.size); + break; + } + DEBUGLOG(5, "waiting for something to flush from job %u (currently flushed: %u bytes)", + mtctx->doneJobID, (U32)mtctx->jobs[wJobID].dstFlushed); + ZSTD_pthread_cond_wait(&mtctx->jobs[wJobID].job_cond, &mtctx->jobs[wJobID].job_mutex); /* block when nothing to flush but some to come */ + } } + + /* try to flush something */ + { size_t cSize = mtctx->jobs[wJobID].cSize; /* shared */ + size_t const srcConsumed = mtctx->jobs[wJobID].consumed; /* shared */ + size_t const srcSize = mtctx->jobs[wJobID].src.size; /* read-only, could be done after mutex lock, but no-declaration-after-statement */ + ZSTD_pthread_mutex_unlock(&mtctx->jobs[wJobID].job_mutex); + if (ZSTD_isError(cSize)) { + DEBUGLOG(5, "ZSTDMT_flushProduced: job %u : compression error detected : %s", + mtctx->doneJobID, ZSTD_getErrorName(cSize)); + ZSTDMT_waitForAllJobsCompleted(mtctx); + ZSTDMT_releaseAllJobResources(mtctx); + return cSize; + } + /* add frame checksum if necessary (can only happen once) */ + assert(srcConsumed <= srcSize); + if ( (srcConsumed == srcSize) /* job completed -> worker no longer active */ + && mtctx->jobs[wJobID].frameChecksumNeeded ) { + U32 const checksum = (U32)XXH64_digest(&mtctx->serial.xxhState); + DEBUGLOG(4, "ZSTDMT_flushProduced: writing checksum : %08X \n", checksum); + MEM_writeLE32((char*)mtctx->jobs[wJobID].dstBuff.start + mtctx->jobs[wJobID].cSize, checksum); + cSize += 4; + mtctx->jobs[wJobID].cSize += 4; /* can write this shared value, as worker is no longer active */ + mtctx->jobs[wJobID].frameChecksumNeeded = 0; + } + + if (cSize > 0) { /* compression is ongoing or completed */ + size_t const toFlush = MIN(cSize - mtctx->jobs[wJobID].dstFlushed, output->size - output->pos); + DEBUGLOG(5, "ZSTDMT_flushProduced: Flushing %u bytes from job %u (completion:%u/%u, generated:%u)", + (U32)toFlush, mtctx->doneJobID, (U32)srcConsumed, (U32)srcSize, (U32)cSize); + assert(mtctx->doneJobID < mtctx->nextJobID); + assert(cSize >= mtctx->jobs[wJobID].dstFlushed); + assert(mtctx->jobs[wJobID].dstBuff.start != NULL); + if (toFlush > 0) { + ZSTD_memcpy((char*)output->dst + output->pos, + (const char*)mtctx->jobs[wJobID].dstBuff.start + mtctx->jobs[wJobID].dstFlushed, + toFlush); + } + output->pos += toFlush; + mtctx->jobs[wJobID].dstFlushed += toFlush; /* can write : this value is only used by mtctx */ + + if ( (srcConsumed == srcSize) /* job is completed */ + && (mtctx->jobs[wJobID].dstFlushed == cSize) ) { /* output buffer fully flushed => free this job position */ + DEBUGLOG(5, "Job %u completed (%u bytes), moving to next one", + mtctx->doneJobID, (U32)mtctx->jobs[wJobID].dstFlushed); + ZSTDMT_releaseBuffer(mtctx->bufPool, mtctx->jobs[wJobID].dstBuff); + DEBUGLOG(5, "dstBuffer released"); + mtctx->jobs[wJobID].dstBuff = g_nullBuffer; + mtctx->jobs[wJobID].cSize = 0; /* ensure this job slot is considered "not started" in future check */ + mtctx->consumed += srcSize; + mtctx->produced += cSize; + mtctx->doneJobID++; + } } + + /* return value : how many bytes left in buffer ; fake it to 1 when unknown but >0 */ + if (cSize > mtctx->jobs[wJobID].dstFlushed) return (cSize - mtctx->jobs[wJobID].dstFlushed); + if (srcSize > srcConsumed) return 1; /* current job not completely compressed */ + } + if (mtctx->doneJobID < mtctx->nextJobID) return 1; /* some more jobs ongoing */ + if (mtctx->jobReady) return 1; /* one job is ready to push, just not yet in the list */ + if (mtctx->inBuff.filled > 0) return 1; /* input is not empty, and still needs to be converted into a job */ + mtctx->allJobsCompleted = mtctx->frameEnded; /* all jobs are entirely flushed => if this one is last one, frame is completed */ + if (end == ZSTD_e_end) return !mtctx->frameEnded; /* for ZSTD_e_end, question becomes : is frame completed ? instead of : are internal buffers fully flushed ? */ + return 0; /* internal buffers fully flushed */ +} + +/** + * Returns the range of data used by the earliest job that is not yet complete. + * If the data of the first job is broken up into two segments, we cover both + * sections. + */ +static range_t ZSTDMT_getInputDataInUse(ZSTDMT_CCtx* mtctx) +{ + unsigned const firstJobID = mtctx->doneJobID; + unsigned const lastJobID = mtctx->nextJobID; + unsigned jobID; + + for (jobID = firstJobID; jobID < lastJobID; ++jobID) { + unsigned const wJobID = jobID & mtctx->jobIDMask; + size_t consumed; + + ZSTD_PTHREAD_MUTEX_LOCK(&mtctx->jobs[wJobID].job_mutex); + consumed = mtctx->jobs[wJobID].consumed; + ZSTD_pthread_mutex_unlock(&mtctx->jobs[wJobID].job_mutex); + + if (consumed < mtctx->jobs[wJobID].src.size) { + range_t range = mtctx->jobs[wJobID].prefix; + if (range.size == 0) { + /* Empty prefix */ + range = mtctx->jobs[wJobID].src; + } + /* Job source in multiple segments not supported yet */ + assert(range.start <= mtctx->jobs[wJobID].src.start); + return range; + } + } + return kNullRange; +} + +/** + * Returns non-zero iff buffer and range overlap. + */ +static int ZSTDMT_isOverlapped(buffer_t buffer, range_t range) +{ + BYTE const* const bufferStart = (BYTE const*)buffer.start; + BYTE const* const bufferEnd = bufferStart + buffer.capacity; + BYTE const* const rangeStart = (BYTE const*)range.start; + BYTE const* const rangeEnd = range.size != 0 ? rangeStart + range.size : rangeStart; + + if (rangeStart == NULL || bufferStart == NULL) + return 0; + /* Empty ranges cannot overlap */ + if (bufferStart == bufferEnd || rangeStart == rangeEnd) + return 0; + + return bufferStart < rangeEnd && rangeStart < bufferEnd; +} + +static int ZSTDMT_doesOverlapWindow(buffer_t buffer, ZSTD_window_t window) +{ + range_t extDict; + range_t prefix; + + DEBUGLOG(5, "ZSTDMT_doesOverlapWindow"); + extDict.start = window.dictBase + window.lowLimit; + extDict.size = window.dictLimit - window.lowLimit; + + prefix.start = window.base + window.dictLimit; + prefix.size = window.nextSrc - (window.base + window.dictLimit); + DEBUGLOG(5, "extDict [0x%zx, 0x%zx)", + (size_t)extDict.start, + (size_t)extDict.start + extDict.size); + DEBUGLOG(5, "prefix [0x%zx, 0x%zx)", + (size_t)prefix.start, + (size_t)prefix.start + prefix.size); + + return ZSTDMT_isOverlapped(buffer, extDict) + || ZSTDMT_isOverlapped(buffer, prefix); +} + +static void ZSTDMT_waitForLdmComplete(ZSTDMT_CCtx* mtctx, buffer_t buffer) +{ + if (mtctx->params.ldmParams.enableLdm) { + ZSTD_pthread_mutex_t* mutex = &mtctx->serial.ldmWindowMutex; + DEBUGLOG(5, "ZSTDMT_waitForLdmComplete"); + DEBUGLOG(5, "source [0x%zx, 0x%zx)", + (size_t)buffer.start, + (size_t)buffer.start + buffer.capacity); + ZSTD_PTHREAD_MUTEX_LOCK(mutex); + while (ZSTDMT_doesOverlapWindow(buffer, mtctx->serial.ldmWindow)) { + DEBUGLOG(5, "Waiting for LDM to finish..."); + ZSTD_pthread_cond_wait(&mtctx->serial.ldmWindowCond, mutex); + } + DEBUGLOG(6, "Done waiting for LDM to finish"); + ZSTD_pthread_mutex_unlock(mutex); + } +} + +/** + * Attempts to set the inBuff to the next section to fill. + * If any part of the new section is still in use we give up. + * Returns non-zero if the buffer is filled. + */ +static int ZSTDMT_tryGetInputRange(ZSTDMT_CCtx* mtctx) +{ + range_t const inUse = ZSTDMT_getInputDataInUse(mtctx); + size_t const spaceLeft = mtctx->roundBuff.capacity - mtctx->roundBuff.pos; + size_t const target = mtctx->targetSectionSize; + buffer_t buffer; + + DEBUGLOG(5, "ZSTDMT_tryGetInputRange"); + assert(mtctx->inBuff.buffer.start == NULL); + assert(mtctx->roundBuff.capacity >= target); + + if (spaceLeft < target) { + /* ZSTD_invalidateRepCodes() doesn't work for extDict variants. + * Simply copy the prefix to the beginning in that case. + */ + BYTE* const start = (BYTE*)mtctx->roundBuff.buffer; + size_t const prefixSize = mtctx->inBuff.prefix.size; + + buffer.start = start; + buffer.capacity = prefixSize; + if (ZSTDMT_isOverlapped(buffer, inUse)) { + DEBUGLOG(5, "Waiting for buffer..."); + return 0; + } + ZSTDMT_waitForLdmComplete(mtctx, buffer); + ZSTD_memmove(start, mtctx->inBuff.prefix.start, prefixSize); + mtctx->inBuff.prefix.start = start; + mtctx->roundBuff.pos = prefixSize; + } + buffer.start = mtctx->roundBuff.buffer + mtctx->roundBuff.pos; + buffer.capacity = target; + + if (ZSTDMT_isOverlapped(buffer, inUse)) { + DEBUGLOG(5, "Waiting for buffer..."); + return 0; + } + assert(!ZSTDMT_isOverlapped(buffer, mtctx->inBuff.prefix)); + + ZSTDMT_waitForLdmComplete(mtctx, buffer); + + DEBUGLOG(5, "Using prefix range [%zx, %zx)", + (size_t)mtctx->inBuff.prefix.start, + (size_t)mtctx->inBuff.prefix.start + mtctx->inBuff.prefix.size); + DEBUGLOG(5, "Using source range [%zx, %zx)", + (size_t)buffer.start, + (size_t)buffer.start + buffer.capacity); + + + mtctx->inBuff.buffer = buffer; + mtctx->inBuff.filled = 0; + assert(mtctx->roundBuff.pos + buffer.capacity <= mtctx->roundBuff.capacity); + return 1; +} + +typedef struct { + size_t toLoad; /* The number of bytes to load from the input. */ + int flush; /* Boolean declaring if we must flush because we found a synchronization point. */ +} syncPoint_t; + +/** + * Searches through the input for a synchronization point. If one is found, we + * will instruct the caller to flush, and return the number of bytes to load. + * Otherwise, we will load as many bytes as possible and instruct the caller + * to continue as normal. + */ +static syncPoint_t +findSynchronizationPoint(ZSTDMT_CCtx const* mtctx, ZSTD_inBuffer const input) +{ + BYTE const* const istart = (BYTE const*)input.src + input.pos; + U64 const primePower = mtctx->rsync.primePower; + U64 const hitMask = mtctx->rsync.hitMask; + + syncPoint_t syncPoint; + U64 hash; + BYTE const* prev; + size_t pos; + + syncPoint.toLoad = MIN(input.size - input.pos, mtctx->targetSectionSize - mtctx->inBuff.filled); + syncPoint.flush = 0; + if (!mtctx->params.rsyncable) + /* Rsync is disabled. */ + return syncPoint; + if (mtctx->inBuff.filled + syncPoint.toLoad < RSYNC_LENGTH) + /* Not enough to compute the hash. + * We will miss any synchronization points in this RSYNC_LENGTH byte + * window. However, since it depends only in the internal buffers, if the + * state is already synchronized, we will remain synchronized. + * Additionally, the probability that we miss a synchronization point is + * low: RSYNC_LENGTH / targetSectionSize. + */ + return syncPoint; + /* Initialize the loop variables. */ + if (mtctx->inBuff.filled >= RSYNC_LENGTH) { + /* We have enough bytes buffered to initialize the hash. + * Start scanning at the beginning of the input. + */ + pos = 0; + prev = (BYTE const*)mtctx->inBuff.buffer.start + mtctx->inBuff.filled - RSYNC_LENGTH; + hash = ZSTD_rollingHash_compute(prev, RSYNC_LENGTH); + if ((hash & hitMask) == hitMask) { + /* We're already at a sync point so don't load any more until + * we're able to flush this sync point. + * This likely happened because the job table was full so we + * couldn't add our job. + */ + syncPoint.toLoad = 0; + syncPoint.flush = 1; + return syncPoint; + } + } else { + /* We don't have enough bytes buffered to initialize the hash, but + * we know we have at least RSYNC_LENGTH bytes total. + * Start scanning after the first RSYNC_LENGTH bytes less the bytes + * already buffered. + */ + pos = RSYNC_LENGTH - mtctx->inBuff.filled; + prev = (BYTE const*)mtctx->inBuff.buffer.start - pos; + hash = ZSTD_rollingHash_compute(mtctx->inBuff.buffer.start, mtctx->inBuff.filled); + hash = ZSTD_rollingHash_append(hash, istart, pos); + } + /* Starting with the hash of the previous RSYNC_LENGTH bytes, roll + * through the input. If we hit a synchronization point, then cut the + * job off, and tell the compressor to flush the job. Otherwise, load + * all the bytes and continue as normal. + * If we go too long without a synchronization point (targetSectionSize) + * then a block will be emitted anyways, but this is okay, since if we + * are already synchronized we will remain synchronized. + */ + for (; pos < syncPoint.toLoad; ++pos) { + BYTE const toRemove = pos < RSYNC_LENGTH ? prev[pos] : istart[pos - RSYNC_LENGTH]; + /* if (pos >= RSYNC_LENGTH) assert(ZSTD_rollingHash_compute(istart + pos - RSYNC_LENGTH, RSYNC_LENGTH) == hash); */ + hash = ZSTD_rollingHash_rotate(hash, toRemove, istart[pos], primePower); + if ((hash & hitMask) == hitMask) { + syncPoint.toLoad = pos + 1; + syncPoint.flush = 1; + break; + } + } + return syncPoint; +} + +size_t ZSTDMT_nextInputSizeHint(const ZSTDMT_CCtx* mtctx) +{ + size_t hintInSize = mtctx->targetSectionSize - mtctx->inBuff.filled; + if (hintInSize==0) hintInSize = mtctx->targetSectionSize; + return hintInSize; +} + +/** ZSTDMT_compressStream_generic() : + * internal use only - exposed to be invoked from zstd_compress.c + * assumption : output and input are valid (pos <= size) + * @return : minimum amount of data remaining to flush, 0 if none */ +size_t ZSTDMT_compressStream_generic(ZSTDMT_CCtx* mtctx, + ZSTD_outBuffer* output, + ZSTD_inBuffer* input, + ZSTD_EndDirective endOp) +{ + unsigned forwardInputProgress = 0; + DEBUGLOG(5, "ZSTDMT_compressStream_generic (endOp=%u, srcSize=%u)", + (U32)endOp, (U32)(input->size - input->pos)); + assert(output->pos <= output->size); + assert(input->pos <= input->size); + + if ((mtctx->frameEnded) && (endOp==ZSTD_e_continue)) { + /* current frame being ended. Only flush/end are allowed */ + return ERROR(stage_wrong); + } + + /* fill input buffer */ + if ( (!mtctx->jobReady) + && (input->size > input->pos) ) { /* support NULL input */ + if (mtctx->inBuff.buffer.start == NULL) { + assert(mtctx->inBuff.filled == 0); /* Can't fill an empty buffer */ + if (!ZSTDMT_tryGetInputRange(mtctx)) { + /* It is only possible for this operation to fail if there are + * still compression jobs ongoing. + */ + DEBUGLOG(5, "ZSTDMT_tryGetInputRange failed"); + assert(mtctx->doneJobID != mtctx->nextJobID); + } else + DEBUGLOG(5, "ZSTDMT_tryGetInputRange completed successfully : mtctx->inBuff.buffer.start = %p", mtctx->inBuff.buffer.start); + } + if (mtctx->inBuff.buffer.start != NULL) { + syncPoint_t const syncPoint = findSynchronizationPoint(mtctx, *input); + if (syncPoint.flush && endOp == ZSTD_e_continue) { + endOp = ZSTD_e_flush; + } + assert(mtctx->inBuff.buffer.capacity >= mtctx->targetSectionSize); + DEBUGLOG(5, "ZSTDMT_compressStream_generic: adding %u bytes on top of %u to buffer of size %u", + (U32)syncPoint.toLoad, (U32)mtctx->inBuff.filled, (U32)mtctx->targetSectionSize); + ZSTD_memcpy((char*)mtctx->inBuff.buffer.start + mtctx->inBuff.filled, (const char*)input->src + input->pos, syncPoint.toLoad); + input->pos += syncPoint.toLoad; + mtctx->inBuff.filled += syncPoint.toLoad; + forwardInputProgress = syncPoint.toLoad>0; + } + } + if ((input->pos < input->size) && (endOp == ZSTD_e_end)) { + /* Can't end yet because the input is not fully consumed. + * We are in one of these cases: + * - mtctx->inBuff is NULL & empty: we couldn't get an input buffer so don't create a new job. + * - We filled the input buffer: flush this job but don't end the frame. + * - We hit a synchronization point: flush this job but don't end the frame. + */ + assert(mtctx->inBuff.filled == 0 || mtctx->inBuff.filled == mtctx->targetSectionSize || mtctx->params.rsyncable); + endOp = ZSTD_e_flush; + } + + if ( (mtctx->jobReady) + || (mtctx->inBuff.filled >= mtctx->targetSectionSize) /* filled enough : let's compress */ + || ((endOp != ZSTD_e_continue) && (mtctx->inBuff.filled > 0)) /* something to flush : let's go */ + || ((endOp == ZSTD_e_end) && (!mtctx->frameEnded)) ) { /* must finish the frame with a zero-size block */ + size_t const jobSize = mtctx->inBuff.filled; + assert(mtctx->inBuff.filled <= mtctx->targetSectionSize); + FORWARD_IF_ERROR( ZSTDMT_createCompressionJob(mtctx, jobSize, endOp) , ""); + } + + /* check for potential compressed data ready to be flushed */ + { size_t const remainingToFlush = ZSTDMT_flushProduced(mtctx, output, !forwardInputProgress, endOp); /* block if there was no forward input progress */ + if (input->pos < input->size) return MAX(remainingToFlush, 1); /* input not consumed : do not end flush yet */ + DEBUGLOG(5, "end of ZSTDMT_compressStream_generic: remainingToFlush = %u", (U32)remainingToFlush); + return remainingToFlush; + } +} diff --git a/dependencies/zstd-1.5.0/lib/compress/zstdmt_compress.h b/dependencies/zstd-1.5.0/lib/compress/zstdmt_compress.h new file mode 100644 index 0000000..2fee2ec --- /dev/null +++ b/dependencies/zstd-1.5.0/lib/compress/zstdmt_compress.h @@ -0,0 +1,110 @@ +/* + * Copyright (c) Yann Collet, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + + #ifndef ZSTDMT_COMPRESS_H + #define ZSTDMT_COMPRESS_H + + #if defined (__cplusplus) + extern "C" { + #endif + + +/* Note : This is an internal API. + * These APIs used to be exposed with ZSTDLIB_API, + * because it used to be the only way to invoke MT compression. + * Now, you must use ZSTD_compress2 and ZSTD_compressStream2() instead. + * + * This API requires ZSTD_MULTITHREAD to be defined during compilation, + * otherwise ZSTDMT_createCCtx*() will fail. + */ + +/* === Dependencies === */ +#include "../common/zstd_deps.h" /* size_t */ +#define ZSTD_STATIC_LINKING_ONLY /* ZSTD_parameters */ +#include "../zstd.h" /* ZSTD_inBuffer, ZSTD_outBuffer, ZSTDLIB_API */ + + +/* === Constants === */ +#ifndef ZSTDMT_NBWORKERS_MAX /* a different value can be selected at compile time */ +# define ZSTDMT_NBWORKERS_MAX ((sizeof(void*)==4) /*32-bit*/ ? 64 : 256) +#endif +#ifndef ZSTDMT_JOBSIZE_MIN /* a different value can be selected at compile time */ +# define ZSTDMT_JOBSIZE_MIN (512 KB) +#endif +#define ZSTDMT_JOBLOG_MAX (MEM_32bits() ? 29 : 30) +#define ZSTDMT_JOBSIZE_MAX (MEM_32bits() ? (512 MB) : (1024 MB)) + + +/* ======================================================== + * === Private interface, for use by ZSTD_compress.c === + * === Not exposed in libzstd. Never invoke directly === + * ======================================================== */ + +/* === Memory management === */ +typedef struct ZSTDMT_CCtx_s ZSTDMT_CCtx; +/* Requires ZSTD_MULTITHREAD to be defined during compilation, otherwise it will return NULL. */ +ZSTDMT_CCtx* ZSTDMT_createCCtx_advanced(unsigned nbWorkers, + ZSTD_customMem cMem, + ZSTD_threadPool *pool); +size_t ZSTDMT_freeCCtx(ZSTDMT_CCtx* mtctx); + +size_t ZSTDMT_sizeof_CCtx(ZSTDMT_CCtx* mtctx); + +/* === Streaming functions === */ + +size_t ZSTDMT_nextInputSizeHint(const ZSTDMT_CCtx* mtctx); + +/*! ZSTDMT_initCStream_internal() : + * Private use only. Init streaming operation. + * expects params to be valid. + * must receive dict, or cdict, or none, but not both. + * @return : 0, or an error code */ +size_t ZSTDMT_initCStream_internal(ZSTDMT_CCtx* zcs, + const void* dict, size_t dictSize, ZSTD_dictContentType_e dictContentType, + const ZSTD_CDict* cdict, + ZSTD_CCtx_params params, unsigned long long pledgedSrcSize); + +/*! ZSTDMT_compressStream_generic() : + * Combines ZSTDMT_compressStream() with optional ZSTDMT_flushStream() or ZSTDMT_endStream() + * depending on flush directive. + * @return : minimum amount of data still to be flushed + * 0 if fully flushed + * or an error code + * note : needs to be init using any ZSTD_initCStream*() variant */ +size_t ZSTDMT_compressStream_generic(ZSTDMT_CCtx* mtctx, + ZSTD_outBuffer* output, + ZSTD_inBuffer* input, + ZSTD_EndDirective endOp); + + /*! ZSTDMT_toFlushNow() + * Tell how many bytes are ready to be flushed immediately. + * Probe the oldest active job (not yet entirely flushed) and check its output buffer. + * If return 0, it means there is no active job, + * or, it means oldest job is still active, but everything produced has been flushed so far, + * therefore flushing is limited by speed of oldest job. */ +size_t ZSTDMT_toFlushNow(ZSTDMT_CCtx* mtctx); + +/*! ZSTDMT_updateCParams_whileCompressing() : + * Updates only a selected set of compression parameters, to remain compatible with current frame. + * New parameters will be applied to next compression job. */ +void ZSTDMT_updateCParams_whileCompressing(ZSTDMT_CCtx* mtctx, const ZSTD_CCtx_params* cctxParams); + +/*! ZSTDMT_getFrameProgression(): + * tells how much data has been consumed (input) and produced (output) for current frame. + * able to count progression inside worker threads. + */ +ZSTD_frameProgression ZSTDMT_getFrameProgression(ZSTDMT_CCtx* mtctx); + + +#if defined (__cplusplus) +} +#endif + +#endif /* ZSTDMT_COMPRESS_H */ diff --git a/dependencies/zstd-1.5.0/lib/decompress/huf_decompress.c b/dependencies/zstd-1.5.0/lib/decompress/huf_decompress.c new file mode 100644 index 0000000..b93c9a0 --- /dev/null +++ b/dependencies/zstd-1.5.0/lib/decompress/huf_decompress.c @@ -0,0 +1,1351 @@ +/* ****************************************************************** + * huff0 huffman decoder, + * part of Finite State Entropy library + * Copyright (c) Yann Collet, Facebook, Inc. + * + * You can contact the author at : + * - FSE+HUF source repository : https://github.com/Cyan4973/FiniteStateEntropy + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. +****************************************************************** */ + +/* ************************************************************** +* Dependencies +****************************************************************/ +#include "../common/zstd_deps.h" /* ZSTD_memcpy, ZSTD_memset */ +#include "../common/compiler.h" +#include "../common/bitstream.h" /* BIT_* */ +#include "../common/fse.h" /* to compress headers */ +#define HUF_STATIC_LINKING_ONLY +#include "../common/huf.h" +#include "../common/error_private.h" + +/* ************************************************************** +* Macros +****************************************************************/ + +/* These two optional macros force the use one way or another of the two + * Huffman decompression implementations. You can't force in both directions + * at the same time. + */ +#if defined(HUF_FORCE_DECOMPRESS_X1) && \ + defined(HUF_FORCE_DECOMPRESS_X2) +#error "Cannot force the use of the X1 and X2 decoders at the same time!" +#endif + + +/* ************************************************************** +* Error Management +****************************************************************/ +#define HUF_isError ERR_isError + + +/* ************************************************************** +* Byte alignment for workSpace management +****************************************************************/ +#define HUF_ALIGN(x, a) HUF_ALIGN_MASK((x), (a) - 1) +#define HUF_ALIGN_MASK(x, mask) (((x) + (mask)) & ~(mask)) + + +/* ************************************************************** +* BMI2 Variant Wrappers +****************************************************************/ +#if DYNAMIC_BMI2 + +#define HUF_DGEN(fn) \ + \ + static size_t fn##_default( \ + void* dst, size_t dstSize, \ + const void* cSrc, size_t cSrcSize, \ + const HUF_DTable* DTable) \ + { \ + return fn##_body(dst, dstSize, cSrc, cSrcSize, DTable); \ + } \ + \ + static TARGET_ATTRIBUTE("bmi2") size_t fn##_bmi2( \ + void* dst, size_t dstSize, \ + const void* cSrc, size_t cSrcSize, \ + const HUF_DTable* DTable) \ + { \ + return fn##_body(dst, dstSize, cSrc, cSrcSize, DTable); \ + } \ + \ + static size_t fn(void* dst, size_t dstSize, void const* cSrc, \ + size_t cSrcSize, HUF_DTable const* DTable, int bmi2) \ + { \ + if (bmi2) { \ + return fn##_bmi2(dst, dstSize, cSrc, cSrcSize, DTable); \ + } \ + return fn##_default(dst, dstSize, cSrc, cSrcSize, DTable); \ + } + +#else + +#define HUF_DGEN(fn) \ + static size_t fn(void* dst, size_t dstSize, void const* cSrc, \ + size_t cSrcSize, HUF_DTable const* DTable, int bmi2) \ + { \ + (void)bmi2; \ + return fn##_body(dst, dstSize, cSrc, cSrcSize, DTable); \ + } + +#endif + + +/*-***************************/ +/* generic DTableDesc */ +/*-***************************/ +typedef struct { BYTE maxTableLog; BYTE tableType; BYTE tableLog; BYTE reserved; } DTableDesc; + +static DTableDesc HUF_getDTableDesc(const HUF_DTable* table) +{ + DTableDesc dtd; + ZSTD_memcpy(&dtd, table, sizeof(dtd)); + return dtd; +} + + +#ifndef HUF_FORCE_DECOMPRESS_X2 + +/*-***************************/ +/* single-symbol decoding */ +/*-***************************/ +typedef struct { BYTE byte; BYTE nbBits; } HUF_DEltX1; /* single-symbol decoding */ + +/** + * Packs 4 HUF_DEltX1 structs into a U64. This is used to lay down 4 entries at + * a time. + */ +static U64 HUF_DEltX1_set4(BYTE symbol, BYTE nbBits) { + U64 D4; + if (MEM_isLittleEndian()) { + D4 = symbol + (nbBits << 8); + } else { + D4 = (symbol << 8) + nbBits; + } + D4 *= 0x0001000100010001ULL; + return D4; +} + +typedef struct { + U32 rankVal[HUF_TABLELOG_ABSOLUTEMAX + 1]; + U32 rankStart[HUF_TABLELOG_ABSOLUTEMAX + 1]; + U32 statsWksp[HUF_READ_STATS_WORKSPACE_SIZE_U32]; + BYTE symbols[HUF_SYMBOLVALUE_MAX + 1]; + BYTE huffWeight[HUF_SYMBOLVALUE_MAX + 1]; +} HUF_ReadDTableX1_Workspace; + + +size_t HUF_readDTableX1_wksp(HUF_DTable* DTable, const void* src, size_t srcSize, void* workSpace, size_t wkspSize) +{ + return HUF_readDTableX1_wksp_bmi2(DTable, src, srcSize, workSpace, wkspSize, /* bmi2 */ 0); +} + +size_t HUF_readDTableX1_wksp_bmi2(HUF_DTable* DTable, const void* src, size_t srcSize, void* workSpace, size_t wkspSize, int bmi2) +{ + U32 tableLog = 0; + U32 nbSymbols = 0; + size_t iSize; + void* const dtPtr = DTable + 1; + HUF_DEltX1* const dt = (HUF_DEltX1*)dtPtr; + HUF_ReadDTableX1_Workspace* wksp = (HUF_ReadDTableX1_Workspace*)workSpace; + + DEBUG_STATIC_ASSERT(HUF_DECOMPRESS_WORKSPACE_SIZE >= sizeof(*wksp)); + if (sizeof(*wksp) > wkspSize) return ERROR(tableLog_tooLarge); + + DEBUG_STATIC_ASSERT(sizeof(DTableDesc) == sizeof(HUF_DTable)); + /* ZSTD_memset(huffWeight, 0, sizeof(huffWeight)); */ /* is not necessary, even though some analyzer complain ... */ + + iSize = HUF_readStats_wksp(wksp->huffWeight, HUF_SYMBOLVALUE_MAX + 1, wksp->rankVal, &nbSymbols, &tableLog, src, srcSize, wksp->statsWksp, sizeof(wksp->statsWksp), bmi2); + if (HUF_isError(iSize)) return iSize; + + /* Table header */ + { DTableDesc dtd = HUF_getDTableDesc(DTable); + if (tableLog > (U32)(dtd.maxTableLog+1)) return ERROR(tableLog_tooLarge); /* DTable too small, Huffman tree cannot fit in */ + dtd.tableType = 0; + dtd.tableLog = (BYTE)tableLog; + ZSTD_memcpy(DTable, &dtd, sizeof(dtd)); + } + + /* Compute symbols and rankStart given rankVal: + * + * rankVal already contains the number of values of each weight. + * + * symbols contains the symbols ordered by weight. First are the rankVal[0] + * weight 0 symbols, followed by the rankVal[1] weight 1 symbols, and so on. + * symbols[0] is filled (but unused) to avoid a branch. + * + * rankStart contains the offset where each rank belongs in the DTable. + * rankStart[0] is not filled because there are no entries in the table for + * weight 0. + */ + { + int n; + int nextRankStart = 0; + int const unroll = 4; + int const nLimit = (int)nbSymbols - unroll + 1; + for (n=0; n<(int)tableLog+1; n++) { + U32 const curr = nextRankStart; + nextRankStart += wksp->rankVal[n]; + wksp->rankStart[n] = curr; + } + for (n=0; n < nLimit; n += unroll) { + int u; + for (u=0; u < unroll; ++u) { + size_t const w = wksp->huffWeight[n+u]; + wksp->symbols[wksp->rankStart[w]++] = (BYTE)(n+u); + } + } + for (; n < (int)nbSymbols; ++n) { + size_t const w = wksp->huffWeight[n]; + wksp->symbols[wksp->rankStart[w]++] = (BYTE)n; + } + } + + /* fill DTable + * We fill all entries of each weight in order. + * That way length is a constant for each iteration of the outter loop. + * We can switch based on the length to a different inner loop which is + * optimized for that particular case. + */ + { + U32 w; + int symbol=wksp->rankVal[0]; + int rankStart=0; + for (w=1; wrankVal[w]; + int const length = (1 << w) >> 1; + int uStart = rankStart; + BYTE const nbBits = (BYTE)(tableLog + 1 - w); + int s; + int u; + switch (length) { + case 1: + for (s=0; ssymbols[symbol + s]; + D.nbBits = nbBits; + dt[uStart] = D; + uStart += 1; + } + break; + case 2: + for (s=0; ssymbols[symbol + s]; + D.nbBits = nbBits; + dt[uStart+0] = D; + dt[uStart+1] = D; + uStart += 2; + } + break; + case 4: + for (s=0; ssymbols[symbol + s], nbBits); + MEM_write64(dt + uStart, D4); + uStart += 4; + } + break; + case 8: + for (s=0; ssymbols[symbol + s], nbBits); + MEM_write64(dt + uStart, D4); + MEM_write64(dt + uStart + 4, D4); + uStart += 8; + } + break; + default: + for (s=0; ssymbols[symbol + s], nbBits); + for (u=0; u < length; u += 16) { + MEM_write64(dt + uStart + u + 0, D4); + MEM_write64(dt + uStart + u + 4, D4); + MEM_write64(dt + uStart + u + 8, D4); + MEM_write64(dt + uStart + u + 12, D4); + } + assert(u == length); + uStart += length; + } + break; + } + symbol += symbolCount; + rankStart += symbolCount * length; + } + } + return iSize; +} + +FORCE_INLINE_TEMPLATE BYTE +HUF_decodeSymbolX1(BIT_DStream_t* Dstream, const HUF_DEltX1* dt, const U32 dtLog) +{ + size_t const val = BIT_lookBitsFast(Dstream, dtLog); /* note : dtLog >= 1 */ + BYTE const c = dt[val].byte; + BIT_skipBits(Dstream, dt[val].nbBits); + return c; +} + +#define HUF_DECODE_SYMBOLX1_0(ptr, DStreamPtr) \ + *ptr++ = HUF_decodeSymbolX1(DStreamPtr, dt, dtLog) + +#define HUF_DECODE_SYMBOLX1_1(ptr, DStreamPtr) \ + if (MEM_64bits() || (HUF_TABLELOG_MAX<=12)) \ + HUF_DECODE_SYMBOLX1_0(ptr, DStreamPtr) + +#define HUF_DECODE_SYMBOLX1_2(ptr, DStreamPtr) \ + if (MEM_64bits()) \ + HUF_DECODE_SYMBOLX1_0(ptr, DStreamPtr) + +HINT_INLINE size_t +HUF_decodeStreamX1(BYTE* p, BIT_DStream_t* const bitDPtr, BYTE* const pEnd, const HUF_DEltX1* const dt, const U32 dtLog) +{ + BYTE* const pStart = p; + + /* up to 4 symbols at a time */ + while ((BIT_reloadDStream(bitDPtr) == BIT_DStream_unfinished) & (p < pEnd-3)) { + HUF_DECODE_SYMBOLX1_2(p, bitDPtr); + HUF_DECODE_SYMBOLX1_1(p, bitDPtr); + HUF_DECODE_SYMBOLX1_2(p, bitDPtr); + HUF_DECODE_SYMBOLX1_0(p, bitDPtr); + } + + /* [0-3] symbols remaining */ + if (MEM_32bits()) + while ((BIT_reloadDStream(bitDPtr) == BIT_DStream_unfinished) & (p < pEnd)) + HUF_DECODE_SYMBOLX1_0(p, bitDPtr); + + /* no more data to retrieve from bitstream, no need to reload */ + while (p < pEnd) + HUF_DECODE_SYMBOLX1_0(p, bitDPtr); + + return pEnd-pStart; +} + +FORCE_INLINE_TEMPLATE size_t +HUF_decompress1X1_usingDTable_internal_body( + void* dst, size_t dstSize, + const void* cSrc, size_t cSrcSize, + const HUF_DTable* DTable) +{ + BYTE* op = (BYTE*)dst; + BYTE* const oend = op + dstSize; + const void* dtPtr = DTable + 1; + const HUF_DEltX1* const dt = (const HUF_DEltX1*)dtPtr; + BIT_DStream_t bitD; + DTableDesc const dtd = HUF_getDTableDesc(DTable); + U32 const dtLog = dtd.tableLog; + + CHECK_F( BIT_initDStream(&bitD, cSrc, cSrcSize) ); + + HUF_decodeStreamX1(op, &bitD, oend, dt, dtLog); + + if (!BIT_endOfDStream(&bitD)) return ERROR(corruption_detected); + + return dstSize; +} + +FORCE_INLINE_TEMPLATE size_t +HUF_decompress4X1_usingDTable_internal_body( + void* dst, size_t dstSize, + const void* cSrc, size_t cSrcSize, + const HUF_DTable* DTable) +{ + /* Check */ + if (cSrcSize < 10) return ERROR(corruption_detected); /* strict minimum : jump table + 1 byte per stream */ + + { const BYTE* const istart = (const BYTE*) cSrc; + BYTE* const ostart = (BYTE*) dst; + BYTE* const oend = ostart + dstSize; + BYTE* const olimit = oend - 3; + const void* const dtPtr = DTable + 1; + const HUF_DEltX1* const dt = (const HUF_DEltX1*)dtPtr; + + /* Init */ + BIT_DStream_t bitD1; + BIT_DStream_t bitD2; + BIT_DStream_t bitD3; + BIT_DStream_t bitD4; + size_t const length1 = MEM_readLE16(istart); + size_t const length2 = MEM_readLE16(istart+2); + size_t const length3 = MEM_readLE16(istart+4); + size_t const length4 = cSrcSize - (length1 + length2 + length3 + 6); + const BYTE* const istart1 = istart + 6; /* jumpTable */ + const BYTE* const istart2 = istart1 + length1; + const BYTE* const istart3 = istart2 + length2; + const BYTE* const istart4 = istart3 + length3; + const size_t segmentSize = (dstSize+3) / 4; + BYTE* const opStart2 = ostart + segmentSize; + BYTE* const opStart3 = opStart2 + segmentSize; + BYTE* const opStart4 = opStart3 + segmentSize; + BYTE* op1 = ostart; + BYTE* op2 = opStart2; + BYTE* op3 = opStart3; + BYTE* op4 = opStart4; + DTableDesc const dtd = HUF_getDTableDesc(DTable); + U32 const dtLog = dtd.tableLog; + U32 endSignal = 1; + + if (length4 > cSrcSize) return ERROR(corruption_detected); /* overflow */ + CHECK_F( BIT_initDStream(&bitD1, istart1, length1) ); + CHECK_F( BIT_initDStream(&bitD2, istart2, length2) ); + CHECK_F( BIT_initDStream(&bitD3, istart3, length3) ); + CHECK_F( BIT_initDStream(&bitD4, istart4, length4) ); + + /* up to 16 symbols per loop (4 symbols per stream) in 64-bit mode */ + for ( ; (endSignal) & (op4 < olimit) ; ) { + HUF_DECODE_SYMBOLX1_2(op1, &bitD1); + HUF_DECODE_SYMBOLX1_2(op2, &bitD2); + HUF_DECODE_SYMBOLX1_2(op3, &bitD3); + HUF_DECODE_SYMBOLX1_2(op4, &bitD4); + HUF_DECODE_SYMBOLX1_1(op1, &bitD1); + HUF_DECODE_SYMBOLX1_1(op2, &bitD2); + HUF_DECODE_SYMBOLX1_1(op3, &bitD3); + HUF_DECODE_SYMBOLX1_1(op4, &bitD4); + HUF_DECODE_SYMBOLX1_2(op1, &bitD1); + HUF_DECODE_SYMBOLX1_2(op2, &bitD2); + HUF_DECODE_SYMBOLX1_2(op3, &bitD3); + HUF_DECODE_SYMBOLX1_2(op4, &bitD4); + HUF_DECODE_SYMBOLX1_0(op1, &bitD1); + HUF_DECODE_SYMBOLX1_0(op2, &bitD2); + HUF_DECODE_SYMBOLX1_0(op3, &bitD3); + HUF_DECODE_SYMBOLX1_0(op4, &bitD4); + endSignal &= BIT_reloadDStreamFast(&bitD1) == BIT_DStream_unfinished; + endSignal &= BIT_reloadDStreamFast(&bitD2) == BIT_DStream_unfinished; + endSignal &= BIT_reloadDStreamFast(&bitD3) == BIT_DStream_unfinished; + endSignal &= BIT_reloadDStreamFast(&bitD4) == BIT_DStream_unfinished; + } + + /* check corruption */ + /* note : should not be necessary : op# advance in lock step, and we control op4. + * but curiously, binary generated by gcc 7.2 & 7.3 with -mbmi2 runs faster when >=1 test is present */ + if (op1 > opStart2) return ERROR(corruption_detected); + if (op2 > opStart3) return ERROR(corruption_detected); + if (op3 > opStart4) return ERROR(corruption_detected); + /* note : op4 supposed already verified within main loop */ + + /* finish bitStreams one by one */ + HUF_decodeStreamX1(op1, &bitD1, opStart2, dt, dtLog); + HUF_decodeStreamX1(op2, &bitD2, opStart3, dt, dtLog); + HUF_decodeStreamX1(op3, &bitD3, opStart4, dt, dtLog); + HUF_decodeStreamX1(op4, &bitD4, oend, dt, dtLog); + + /* check */ + { U32 const endCheck = BIT_endOfDStream(&bitD1) & BIT_endOfDStream(&bitD2) & BIT_endOfDStream(&bitD3) & BIT_endOfDStream(&bitD4); + if (!endCheck) return ERROR(corruption_detected); } + + /* decoded size */ + return dstSize; + } +} + + +typedef size_t (*HUF_decompress_usingDTable_t)(void *dst, size_t dstSize, + const void *cSrc, + size_t cSrcSize, + const HUF_DTable *DTable); + +HUF_DGEN(HUF_decompress1X1_usingDTable_internal) +HUF_DGEN(HUF_decompress4X1_usingDTable_internal) + + + +size_t HUF_decompress1X1_usingDTable( + void* dst, size_t dstSize, + const void* cSrc, size_t cSrcSize, + const HUF_DTable* DTable) +{ + DTableDesc dtd = HUF_getDTableDesc(DTable); + if (dtd.tableType != 0) return ERROR(GENERIC); + return HUF_decompress1X1_usingDTable_internal(dst, dstSize, cSrc, cSrcSize, DTable, /* bmi2 */ 0); +} + +size_t HUF_decompress1X1_DCtx_wksp(HUF_DTable* DCtx, void* dst, size_t dstSize, + const void* cSrc, size_t cSrcSize, + void* workSpace, size_t wkspSize) +{ + const BYTE* ip = (const BYTE*) cSrc; + + size_t const hSize = HUF_readDTableX1_wksp(DCtx, cSrc, cSrcSize, workSpace, wkspSize); + if (HUF_isError(hSize)) return hSize; + if (hSize >= cSrcSize) return ERROR(srcSize_wrong); + ip += hSize; cSrcSize -= hSize; + + return HUF_decompress1X1_usingDTable_internal(dst, dstSize, ip, cSrcSize, DCtx, /* bmi2 */ 0); +} + + +size_t HUF_decompress4X1_usingDTable( + void* dst, size_t dstSize, + const void* cSrc, size_t cSrcSize, + const HUF_DTable* DTable) +{ + DTableDesc dtd = HUF_getDTableDesc(DTable); + if (dtd.tableType != 0) return ERROR(GENERIC); + return HUF_decompress4X1_usingDTable_internal(dst, dstSize, cSrc, cSrcSize, DTable, /* bmi2 */ 0); +} + +static size_t HUF_decompress4X1_DCtx_wksp_bmi2(HUF_DTable* dctx, void* dst, size_t dstSize, + const void* cSrc, size_t cSrcSize, + void* workSpace, size_t wkspSize, int bmi2) +{ + const BYTE* ip = (const BYTE*) cSrc; + + size_t const hSize = HUF_readDTableX1_wksp_bmi2(dctx, cSrc, cSrcSize, workSpace, wkspSize, bmi2); + if (HUF_isError(hSize)) return hSize; + if (hSize >= cSrcSize) return ERROR(srcSize_wrong); + ip += hSize; cSrcSize -= hSize; + + return HUF_decompress4X1_usingDTable_internal(dst, dstSize, ip, cSrcSize, dctx, bmi2); +} + +size_t HUF_decompress4X1_DCtx_wksp(HUF_DTable* dctx, void* dst, size_t dstSize, + const void* cSrc, size_t cSrcSize, + void* workSpace, size_t wkspSize) +{ + return HUF_decompress4X1_DCtx_wksp_bmi2(dctx, dst, dstSize, cSrc, cSrcSize, workSpace, wkspSize, 0); +} + + +#endif /* HUF_FORCE_DECOMPRESS_X2 */ + + +#ifndef HUF_FORCE_DECOMPRESS_X1 + +/* *************************/ +/* double-symbols decoding */ +/* *************************/ + +typedef struct { U16 sequence; BYTE nbBits; BYTE length; } HUF_DEltX2; /* double-symbols decoding */ +typedef struct { BYTE symbol; BYTE weight; } sortedSymbol_t; +typedef U32 rankValCol_t[HUF_TABLELOG_MAX + 1]; +typedef rankValCol_t rankVal_t[HUF_TABLELOG_MAX]; + + +/* HUF_fillDTableX2Level2() : + * `rankValOrigin` must be a table of at least (HUF_TABLELOG_MAX + 1) U32 */ +static void HUF_fillDTableX2Level2(HUF_DEltX2* DTable, U32 sizeLog, const U32 consumed, + const U32* rankValOrigin, const int minWeight, + const sortedSymbol_t* sortedSymbols, const U32 sortedListSize, + U32 nbBitsBaseline, U16 baseSeq, U32* wksp, size_t wkspSize) +{ + HUF_DEltX2 DElt; + U32* rankVal = wksp; + + assert(wkspSize >= HUF_TABLELOG_MAX + 1); + (void)wkspSize; + /* get pre-calculated rankVal */ + ZSTD_memcpy(rankVal, rankValOrigin, sizeof(U32) * (HUF_TABLELOG_MAX + 1)); + + /* fill skipped values */ + if (minWeight>1) { + U32 i, skipSize = rankVal[minWeight]; + MEM_writeLE16(&(DElt.sequence), baseSeq); + DElt.nbBits = (BYTE)(consumed); + DElt.length = 1; + for (i = 0; i < skipSize; i++) + DTable[i] = DElt; + } + + /* fill DTable */ + { U32 s; for (s=0; s= 1 */ + + rankVal[weight] += length; + } } +} + + +static void HUF_fillDTableX2(HUF_DEltX2* DTable, const U32 targetLog, + const sortedSymbol_t* sortedList, const U32 sortedListSize, + const U32* rankStart, rankVal_t rankValOrigin, const U32 maxWeight, + const U32 nbBitsBaseline, U32* wksp, size_t wkspSize) +{ + U32* rankVal = wksp; + const int scaleLog = nbBitsBaseline - targetLog; /* note : targetLog >= srcLog, hence scaleLog <= 1 */ + const U32 minBits = nbBitsBaseline - maxWeight; + U32 s; + + assert(wkspSize >= HUF_TABLELOG_MAX + 1); + wksp += HUF_TABLELOG_MAX + 1; + wkspSize -= HUF_TABLELOG_MAX + 1; + + ZSTD_memcpy(rankVal, rankValOrigin, sizeof(U32) * (HUF_TABLELOG_MAX + 1)); + + /* fill DTable */ + for (s=0; s= minBits) { /* enough room for a second symbol */ + U32 sortedRank; + int minWeight = nbBits + scaleLog; + if (minWeight < 1) minWeight = 1; + sortedRank = rankStart[minWeight]; + HUF_fillDTableX2Level2(DTable+start, targetLog-nbBits, nbBits, + rankValOrigin[nbBits], minWeight, + sortedList+sortedRank, sortedListSize-sortedRank, + nbBitsBaseline, symbol, wksp, wkspSize); + } else { + HUF_DEltX2 DElt; + MEM_writeLE16(&(DElt.sequence), symbol); + DElt.nbBits = (BYTE)(nbBits); + DElt.length = 1; + { U32 const end = start + length; + U32 u; + for (u = start; u < end; u++) DTable[u] = DElt; + } } + rankVal[weight] += length; + } +} + +typedef struct { + rankValCol_t rankVal[HUF_TABLELOG_MAX]; + U32 rankStats[HUF_TABLELOG_MAX + 1]; + U32 rankStart0[HUF_TABLELOG_MAX + 2]; + sortedSymbol_t sortedSymbol[HUF_SYMBOLVALUE_MAX + 1]; + BYTE weightList[HUF_SYMBOLVALUE_MAX + 1]; + U32 calleeWksp[HUF_READ_STATS_WORKSPACE_SIZE_U32]; +} HUF_ReadDTableX2_Workspace; + +size_t HUF_readDTableX2_wksp(HUF_DTable* DTable, + const void* src, size_t srcSize, + void* workSpace, size_t wkspSize) +{ + U32 tableLog, maxW, sizeOfSort, nbSymbols; + DTableDesc dtd = HUF_getDTableDesc(DTable); + U32 const maxTableLog = dtd.maxTableLog; + size_t iSize; + void* dtPtr = DTable+1; /* force compiler to avoid strict-aliasing */ + HUF_DEltX2* const dt = (HUF_DEltX2*)dtPtr; + U32 *rankStart; + + HUF_ReadDTableX2_Workspace* const wksp = (HUF_ReadDTableX2_Workspace*)workSpace; + + if (sizeof(*wksp) > wkspSize) return ERROR(GENERIC); + + rankStart = wksp->rankStart0 + 1; + ZSTD_memset(wksp->rankStats, 0, sizeof(wksp->rankStats)); + ZSTD_memset(wksp->rankStart0, 0, sizeof(wksp->rankStart0)); + + DEBUG_STATIC_ASSERT(sizeof(HUF_DEltX2) == sizeof(HUF_DTable)); /* if compiler fails here, assertion is wrong */ + if (maxTableLog > HUF_TABLELOG_MAX) return ERROR(tableLog_tooLarge); + /* ZSTD_memset(weightList, 0, sizeof(weightList)); */ /* is not necessary, even though some analyzer complain ... */ + + iSize = HUF_readStats_wksp(wksp->weightList, HUF_SYMBOLVALUE_MAX + 1, wksp->rankStats, &nbSymbols, &tableLog, src, srcSize, wksp->calleeWksp, sizeof(wksp->calleeWksp), /* bmi2 */ 0); + if (HUF_isError(iSize)) return iSize; + + /* check result */ + if (tableLog > maxTableLog) return ERROR(tableLog_tooLarge); /* DTable can't fit code depth */ + + /* find maxWeight */ + for (maxW = tableLog; wksp->rankStats[maxW]==0; maxW--) {} /* necessarily finds a solution before 0 */ + + /* Get start index of each weight */ + { U32 w, nextRankStart = 0; + for (w=1; wrankStats[w]; + rankStart[w] = curr; + } + rankStart[0] = nextRankStart; /* put all 0w symbols at the end of sorted list*/ + sizeOfSort = nextRankStart; + } + + /* sort symbols by weight */ + { U32 s; + for (s=0; sweightList[s]; + U32 const r = rankStart[w]++; + wksp->sortedSymbol[r].symbol = (BYTE)s; + wksp->sortedSymbol[r].weight = (BYTE)w; + } + rankStart[0] = 0; /* forget 0w symbols; this is beginning of weight(1) */ + } + + /* Build rankVal */ + { U32* const rankVal0 = wksp->rankVal[0]; + { int const rescale = (maxTableLog-tableLog) - 1; /* tableLog <= maxTableLog */ + U32 nextRankVal = 0; + U32 w; + for (w=1; wrankStats[w] << (w+rescale); + rankVal0[w] = curr; + } } + { U32 const minBits = tableLog+1 - maxW; + U32 consumed; + for (consumed = minBits; consumed < maxTableLog - minBits + 1; consumed++) { + U32* const rankValPtr = wksp->rankVal[consumed]; + U32 w; + for (w = 1; w < maxW+1; w++) { + rankValPtr[w] = rankVal0[w] >> consumed; + } } } } + + HUF_fillDTableX2(dt, maxTableLog, + wksp->sortedSymbol, sizeOfSort, + wksp->rankStart0, wksp->rankVal, maxW, + tableLog+1, + wksp->calleeWksp, sizeof(wksp->calleeWksp) / sizeof(U32)); + + dtd.tableLog = (BYTE)maxTableLog; + dtd.tableType = 1; + ZSTD_memcpy(DTable, &dtd, sizeof(dtd)); + return iSize; +} + + +FORCE_INLINE_TEMPLATE U32 +HUF_decodeSymbolX2(void* op, BIT_DStream_t* DStream, const HUF_DEltX2* dt, const U32 dtLog) +{ + size_t const val = BIT_lookBitsFast(DStream, dtLog); /* note : dtLog >= 1 */ + ZSTD_memcpy(op, dt+val, 2); + BIT_skipBits(DStream, dt[val].nbBits); + return dt[val].length; +} + +FORCE_INLINE_TEMPLATE U32 +HUF_decodeLastSymbolX2(void* op, BIT_DStream_t* DStream, const HUF_DEltX2* dt, const U32 dtLog) +{ + size_t const val = BIT_lookBitsFast(DStream, dtLog); /* note : dtLog >= 1 */ + ZSTD_memcpy(op, dt+val, 1); + if (dt[val].length==1) BIT_skipBits(DStream, dt[val].nbBits); + else { + if (DStream->bitsConsumed < (sizeof(DStream->bitContainer)*8)) { + BIT_skipBits(DStream, dt[val].nbBits); + if (DStream->bitsConsumed > (sizeof(DStream->bitContainer)*8)) + /* ugly hack; works only because it's the last symbol. Note : can't easily extract nbBits from just this symbol */ + DStream->bitsConsumed = (sizeof(DStream->bitContainer)*8); + } } + return 1; +} + +#define HUF_DECODE_SYMBOLX2_0(ptr, DStreamPtr) \ + ptr += HUF_decodeSymbolX2(ptr, DStreamPtr, dt, dtLog) + +#define HUF_DECODE_SYMBOLX2_1(ptr, DStreamPtr) \ + if (MEM_64bits() || (HUF_TABLELOG_MAX<=12)) \ + ptr += HUF_decodeSymbolX2(ptr, DStreamPtr, dt, dtLog) + +#define HUF_DECODE_SYMBOLX2_2(ptr, DStreamPtr) \ + if (MEM_64bits()) \ + ptr += HUF_decodeSymbolX2(ptr, DStreamPtr, dt, dtLog) + +HINT_INLINE size_t +HUF_decodeStreamX2(BYTE* p, BIT_DStream_t* bitDPtr, BYTE* const pEnd, + const HUF_DEltX2* const dt, const U32 dtLog) +{ + BYTE* const pStart = p; + + /* up to 8 symbols at a time */ + while ((BIT_reloadDStream(bitDPtr) == BIT_DStream_unfinished) & (p < pEnd-(sizeof(bitDPtr->bitContainer)-1))) { + HUF_DECODE_SYMBOLX2_2(p, bitDPtr); + HUF_DECODE_SYMBOLX2_1(p, bitDPtr); + HUF_DECODE_SYMBOLX2_2(p, bitDPtr); + HUF_DECODE_SYMBOLX2_0(p, bitDPtr); + } + + /* closer to end : up to 2 symbols at a time */ + while ((BIT_reloadDStream(bitDPtr) == BIT_DStream_unfinished) & (p <= pEnd-2)) + HUF_DECODE_SYMBOLX2_0(p, bitDPtr); + + while (p <= pEnd-2) + HUF_DECODE_SYMBOLX2_0(p, bitDPtr); /* no need to reload : reached the end of DStream */ + + if (p < pEnd) + p += HUF_decodeLastSymbolX2(p, bitDPtr, dt, dtLog); + + return p-pStart; +} + +FORCE_INLINE_TEMPLATE size_t +HUF_decompress1X2_usingDTable_internal_body( + void* dst, size_t dstSize, + const void* cSrc, size_t cSrcSize, + const HUF_DTable* DTable) +{ + BIT_DStream_t bitD; + + /* Init */ + CHECK_F( BIT_initDStream(&bitD, cSrc, cSrcSize) ); + + /* decode */ + { BYTE* const ostart = (BYTE*) dst; + BYTE* const oend = ostart + dstSize; + const void* const dtPtr = DTable+1; /* force compiler to not use strict-aliasing */ + const HUF_DEltX2* const dt = (const HUF_DEltX2*)dtPtr; + DTableDesc const dtd = HUF_getDTableDesc(DTable); + HUF_decodeStreamX2(ostart, &bitD, oend, dt, dtd.tableLog); + } + + /* check */ + if (!BIT_endOfDStream(&bitD)) return ERROR(corruption_detected); + + /* decoded size */ + return dstSize; +} + +FORCE_INLINE_TEMPLATE size_t +HUF_decompress4X2_usingDTable_internal_body( + void* dst, size_t dstSize, + const void* cSrc, size_t cSrcSize, + const HUF_DTable* DTable) +{ + if (cSrcSize < 10) return ERROR(corruption_detected); /* strict minimum : jump table + 1 byte per stream */ + + { const BYTE* const istart = (const BYTE*) cSrc; + BYTE* const ostart = (BYTE*) dst; + BYTE* const oend = ostart + dstSize; + BYTE* const olimit = oend - (sizeof(size_t)-1); + const void* const dtPtr = DTable+1; + const HUF_DEltX2* const dt = (const HUF_DEltX2*)dtPtr; + + /* Init */ + BIT_DStream_t bitD1; + BIT_DStream_t bitD2; + BIT_DStream_t bitD3; + BIT_DStream_t bitD4; + size_t const length1 = MEM_readLE16(istart); + size_t const length2 = MEM_readLE16(istart+2); + size_t const length3 = MEM_readLE16(istart+4); + size_t const length4 = cSrcSize - (length1 + length2 + length3 + 6); + const BYTE* const istart1 = istart + 6; /* jumpTable */ + const BYTE* const istart2 = istart1 + length1; + const BYTE* const istart3 = istart2 + length2; + const BYTE* const istart4 = istart3 + length3; + size_t const segmentSize = (dstSize+3) / 4; + BYTE* const opStart2 = ostart + segmentSize; + BYTE* const opStart3 = opStart2 + segmentSize; + BYTE* const opStart4 = opStart3 + segmentSize; + BYTE* op1 = ostart; + BYTE* op2 = opStart2; + BYTE* op3 = opStart3; + BYTE* op4 = opStart4; + U32 endSignal = 1; + DTableDesc const dtd = HUF_getDTableDesc(DTable); + U32 const dtLog = dtd.tableLog; + + if (length4 > cSrcSize) return ERROR(corruption_detected); /* overflow */ + CHECK_F( BIT_initDStream(&bitD1, istart1, length1) ); + CHECK_F( BIT_initDStream(&bitD2, istart2, length2) ); + CHECK_F( BIT_initDStream(&bitD3, istart3, length3) ); + CHECK_F( BIT_initDStream(&bitD4, istart4, length4) ); + + /* 16-32 symbols per loop (4-8 symbols per stream) */ + for ( ; (endSignal) & (op4 < olimit); ) { +#if defined(__clang__) && (defined(__x86_64__) || defined(__i386__)) + HUF_DECODE_SYMBOLX2_2(op1, &bitD1); + HUF_DECODE_SYMBOLX2_1(op1, &bitD1); + HUF_DECODE_SYMBOLX2_2(op1, &bitD1); + HUF_DECODE_SYMBOLX2_0(op1, &bitD1); + HUF_DECODE_SYMBOLX2_2(op2, &bitD2); + HUF_DECODE_SYMBOLX2_1(op2, &bitD2); + HUF_DECODE_SYMBOLX2_2(op2, &bitD2); + HUF_DECODE_SYMBOLX2_0(op2, &bitD2); + endSignal &= BIT_reloadDStreamFast(&bitD1) == BIT_DStream_unfinished; + endSignal &= BIT_reloadDStreamFast(&bitD2) == BIT_DStream_unfinished; + HUF_DECODE_SYMBOLX2_2(op3, &bitD3); + HUF_DECODE_SYMBOLX2_1(op3, &bitD3); + HUF_DECODE_SYMBOLX2_2(op3, &bitD3); + HUF_DECODE_SYMBOLX2_0(op3, &bitD3); + HUF_DECODE_SYMBOLX2_2(op4, &bitD4); + HUF_DECODE_SYMBOLX2_1(op4, &bitD4); + HUF_DECODE_SYMBOLX2_2(op4, &bitD4); + HUF_DECODE_SYMBOLX2_0(op4, &bitD4); + endSignal &= BIT_reloadDStreamFast(&bitD3) == BIT_DStream_unfinished; + endSignal &= BIT_reloadDStreamFast(&bitD4) == BIT_DStream_unfinished; +#else + HUF_DECODE_SYMBOLX2_2(op1, &bitD1); + HUF_DECODE_SYMBOLX2_2(op2, &bitD2); + HUF_DECODE_SYMBOLX2_2(op3, &bitD3); + HUF_DECODE_SYMBOLX2_2(op4, &bitD4); + HUF_DECODE_SYMBOLX2_1(op1, &bitD1); + HUF_DECODE_SYMBOLX2_1(op2, &bitD2); + HUF_DECODE_SYMBOLX2_1(op3, &bitD3); + HUF_DECODE_SYMBOLX2_1(op4, &bitD4); + HUF_DECODE_SYMBOLX2_2(op1, &bitD1); + HUF_DECODE_SYMBOLX2_2(op2, &bitD2); + HUF_DECODE_SYMBOLX2_2(op3, &bitD3); + HUF_DECODE_SYMBOLX2_2(op4, &bitD4); + HUF_DECODE_SYMBOLX2_0(op1, &bitD1); + HUF_DECODE_SYMBOLX2_0(op2, &bitD2); + HUF_DECODE_SYMBOLX2_0(op3, &bitD3); + HUF_DECODE_SYMBOLX2_0(op4, &bitD4); + endSignal = (U32)LIKELY( + (BIT_reloadDStreamFast(&bitD1) == BIT_DStream_unfinished) + & (BIT_reloadDStreamFast(&bitD2) == BIT_DStream_unfinished) + & (BIT_reloadDStreamFast(&bitD3) == BIT_DStream_unfinished) + & (BIT_reloadDStreamFast(&bitD4) == BIT_DStream_unfinished)); +#endif + } + + /* check corruption */ + if (op1 > opStart2) return ERROR(corruption_detected); + if (op2 > opStart3) return ERROR(corruption_detected); + if (op3 > opStart4) return ERROR(corruption_detected); + /* note : op4 already verified within main loop */ + + /* finish bitStreams one by one */ + HUF_decodeStreamX2(op1, &bitD1, opStart2, dt, dtLog); + HUF_decodeStreamX2(op2, &bitD2, opStart3, dt, dtLog); + HUF_decodeStreamX2(op3, &bitD3, opStart4, dt, dtLog); + HUF_decodeStreamX2(op4, &bitD4, oend, dt, dtLog); + + /* check */ + { U32 const endCheck = BIT_endOfDStream(&bitD1) & BIT_endOfDStream(&bitD2) & BIT_endOfDStream(&bitD3) & BIT_endOfDStream(&bitD4); + if (!endCheck) return ERROR(corruption_detected); } + + /* decoded size */ + return dstSize; + } +} + +HUF_DGEN(HUF_decompress1X2_usingDTable_internal) +HUF_DGEN(HUF_decompress4X2_usingDTable_internal) + +size_t HUF_decompress1X2_usingDTable( + void* dst, size_t dstSize, + const void* cSrc, size_t cSrcSize, + const HUF_DTable* DTable) +{ + DTableDesc dtd = HUF_getDTableDesc(DTable); + if (dtd.tableType != 1) return ERROR(GENERIC); + return HUF_decompress1X2_usingDTable_internal(dst, dstSize, cSrc, cSrcSize, DTable, /* bmi2 */ 0); +} + +size_t HUF_decompress1X2_DCtx_wksp(HUF_DTable* DCtx, void* dst, size_t dstSize, + const void* cSrc, size_t cSrcSize, + void* workSpace, size_t wkspSize) +{ + const BYTE* ip = (const BYTE*) cSrc; + + size_t const hSize = HUF_readDTableX2_wksp(DCtx, cSrc, cSrcSize, + workSpace, wkspSize); + if (HUF_isError(hSize)) return hSize; + if (hSize >= cSrcSize) return ERROR(srcSize_wrong); + ip += hSize; cSrcSize -= hSize; + + return HUF_decompress1X2_usingDTable_internal(dst, dstSize, ip, cSrcSize, DCtx, /* bmi2 */ 0); +} + + +size_t HUF_decompress4X2_usingDTable( + void* dst, size_t dstSize, + const void* cSrc, size_t cSrcSize, + const HUF_DTable* DTable) +{ + DTableDesc dtd = HUF_getDTableDesc(DTable); + if (dtd.tableType != 1) return ERROR(GENERIC); + return HUF_decompress4X2_usingDTable_internal(dst, dstSize, cSrc, cSrcSize, DTable, /* bmi2 */ 0); +} + +static size_t HUF_decompress4X2_DCtx_wksp_bmi2(HUF_DTable* dctx, void* dst, size_t dstSize, + const void* cSrc, size_t cSrcSize, + void* workSpace, size_t wkspSize, int bmi2) +{ + const BYTE* ip = (const BYTE*) cSrc; + + size_t hSize = HUF_readDTableX2_wksp(dctx, cSrc, cSrcSize, + workSpace, wkspSize); + if (HUF_isError(hSize)) return hSize; + if (hSize >= cSrcSize) return ERROR(srcSize_wrong); + ip += hSize; cSrcSize -= hSize; + + return HUF_decompress4X2_usingDTable_internal(dst, dstSize, ip, cSrcSize, dctx, bmi2); +} + +size_t HUF_decompress4X2_DCtx_wksp(HUF_DTable* dctx, void* dst, size_t dstSize, + const void* cSrc, size_t cSrcSize, + void* workSpace, size_t wkspSize) +{ + return HUF_decompress4X2_DCtx_wksp_bmi2(dctx, dst, dstSize, cSrc, cSrcSize, workSpace, wkspSize, /* bmi2 */ 0); +} + + +#endif /* HUF_FORCE_DECOMPRESS_X1 */ + + +/* ***********************************/ +/* Universal decompression selectors */ +/* ***********************************/ + +size_t HUF_decompress1X_usingDTable(void* dst, size_t maxDstSize, + const void* cSrc, size_t cSrcSize, + const HUF_DTable* DTable) +{ + DTableDesc const dtd = HUF_getDTableDesc(DTable); +#if defined(HUF_FORCE_DECOMPRESS_X1) + (void)dtd; + assert(dtd.tableType == 0); + return HUF_decompress1X1_usingDTable_internal(dst, maxDstSize, cSrc, cSrcSize, DTable, /* bmi2 */ 0); +#elif defined(HUF_FORCE_DECOMPRESS_X2) + (void)dtd; + assert(dtd.tableType == 1); + return HUF_decompress1X2_usingDTable_internal(dst, maxDstSize, cSrc, cSrcSize, DTable, /* bmi2 */ 0); +#else + return dtd.tableType ? HUF_decompress1X2_usingDTable_internal(dst, maxDstSize, cSrc, cSrcSize, DTable, /* bmi2 */ 0) : + HUF_decompress1X1_usingDTable_internal(dst, maxDstSize, cSrc, cSrcSize, DTable, /* bmi2 */ 0); +#endif +} + +size_t HUF_decompress4X_usingDTable(void* dst, size_t maxDstSize, + const void* cSrc, size_t cSrcSize, + const HUF_DTable* DTable) +{ + DTableDesc const dtd = HUF_getDTableDesc(DTable); +#if defined(HUF_FORCE_DECOMPRESS_X1) + (void)dtd; + assert(dtd.tableType == 0); + return HUF_decompress4X1_usingDTable_internal(dst, maxDstSize, cSrc, cSrcSize, DTable, /* bmi2 */ 0); +#elif defined(HUF_FORCE_DECOMPRESS_X2) + (void)dtd; + assert(dtd.tableType == 1); + return HUF_decompress4X2_usingDTable_internal(dst, maxDstSize, cSrc, cSrcSize, DTable, /* bmi2 */ 0); +#else + return dtd.tableType ? HUF_decompress4X2_usingDTable_internal(dst, maxDstSize, cSrc, cSrcSize, DTable, /* bmi2 */ 0) : + HUF_decompress4X1_usingDTable_internal(dst, maxDstSize, cSrc, cSrcSize, DTable, /* bmi2 */ 0); +#endif +} + + +#if !defined(HUF_FORCE_DECOMPRESS_X1) && !defined(HUF_FORCE_DECOMPRESS_X2) +typedef struct { U32 tableTime; U32 decode256Time; } algo_time_t; +static const algo_time_t algoTime[16 /* Quantization */][3 /* single, double, quad */] = +{ + /* single, double, quad */ + {{0,0}, {1,1}, {2,2}}, /* Q==0 : impossible */ + {{0,0}, {1,1}, {2,2}}, /* Q==1 : impossible */ + {{ 38,130}, {1313, 74}, {2151, 38}}, /* Q == 2 : 12-18% */ + {{ 448,128}, {1353, 74}, {2238, 41}}, /* Q == 3 : 18-25% */ + {{ 556,128}, {1353, 74}, {2238, 47}}, /* Q == 4 : 25-32% */ + {{ 714,128}, {1418, 74}, {2436, 53}}, /* Q == 5 : 32-38% */ + {{ 883,128}, {1437, 74}, {2464, 61}}, /* Q == 6 : 38-44% */ + {{ 897,128}, {1515, 75}, {2622, 68}}, /* Q == 7 : 44-50% */ + {{ 926,128}, {1613, 75}, {2730, 75}}, /* Q == 8 : 50-56% */ + {{ 947,128}, {1729, 77}, {3359, 77}}, /* Q == 9 : 56-62% */ + {{1107,128}, {2083, 81}, {4006, 84}}, /* Q ==10 : 62-69% */ + {{1177,128}, {2379, 87}, {4785, 88}}, /* Q ==11 : 69-75% */ + {{1242,128}, {2415, 93}, {5155, 84}}, /* Q ==12 : 75-81% */ + {{1349,128}, {2644,106}, {5260,106}}, /* Q ==13 : 81-87% */ + {{1455,128}, {2422,124}, {4174,124}}, /* Q ==14 : 87-93% */ + {{ 722,128}, {1891,145}, {1936,146}}, /* Q ==15 : 93-99% */ +}; +#endif + +/** HUF_selectDecoder() : + * Tells which decoder is likely to decode faster, + * based on a set of pre-computed metrics. + * @return : 0==HUF_decompress4X1, 1==HUF_decompress4X2 . + * Assumption : 0 < dstSize <= 128 KB */ +U32 HUF_selectDecoder (size_t dstSize, size_t cSrcSize) +{ + assert(dstSize > 0); + assert(dstSize <= 128*1024); +#if defined(HUF_FORCE_DECOMPRESS_X1) + (void)dstSize; + (void)cSrcSize; + return 0; +#elif defined(HUF_FORCE_DECOMPRESS_X2) + (void)dstSize; + (void)cSrcSize; + return 1; +#else + /* decoder timing evaluation */ + { U32 const Q = (cSrcSize >= dstSize) ? 15 : (U32)(cSrcSize * 16 / dstSize); /* Q < 16 */ + U32 const D256 = (U32)(dstSize >> 8); + U32 const DTime0 = algoTime[Q][0].tableTime + (algoTime[Q][0].decode256Time * D256); + U32 DTime1 = algoTime[Q][1].tableTime + (algoTime[Q][1].decode256Time * D256); + DTime1 += DTime1 >> 3; /* advantage to algorithm using less memory, to reduce cache eviction */ + return DTime1 < DTime0; + } +#endif +} + + +size_t HUF_decompress4X_hufOnly_wksp(HUF_DTable* dctx, void* dst, + size_t dstSize, const void* cSrc, + size_t cSrcSize, void* workSpace, + size_t wkspSize) +{ + /* validation checks */ + if (dstSize == 0) return ERROR(dstSize_tooSmall); + if (cSrcSize == 0) return ERROR(corruption_detected); + + { U32 const algoNb = HUF_selectDecoder(dstSize, cSrcSize); +#if defined(HUF_FORCE_DECOMPRESS_X1) + (void)algoNb; + assert(algoNb == 0); + return HUF_decompress4X1_DCtx_wksp(dctx, dst, dstSize, cSrc, cSrcSize, workSpace, wkspSize); +#elif defined(HUF_FORCE_DECOMPRESS_X2) + (void)algoNb; + assert(algoNb == 1); + return HUF_decompress4X2_DCtx_wksp(dctx, dst, dstSize, cSrc, cSrcSize, workSpace, wkspSize); +#else + return algoNb ? HUF_decompress4X2_DCtx_wksp(dctx, dst, dstSize, cSrc, + cSrcSize, workSpace, wkspSize): + HUF_decompress4X1_DCtx_wksp(dctx, dst, dstSize, cSrc, cSrcSize, workSpace, wkspSize); +#endif + } +} + +size_t HUF_decompress1X_DCtx_wksp(HUF_DTable* dctx, void* dst, size_t dstSize, + const void* cSrc, size_t cSrcSize, + void* workSpace, size_t wkspSize) +{ + /* validation checks */ + if (dstSize == 0) return ERROR(dstSize_tooSmall); + if (cSrcSize > dstSize) return ERROR(corruption_detected); /* invalid */ + if (cSrcSize == dstSize) { ZSTD_memcpy(dst, cSrc, dstSize); return dstSize; } /* not compressed */ + if (cSrcSize == 1) { ZSTD_memset(dst, *(const BYTE*)cSrc, dstSize); return dstSize; } /* RLE */ + + { U32 const algoNb = HUF_selectDecoder(dstSize, cSrcSize); +#if defined(HUF_FORCE_DECOMPRESS_X1) + (void)algoNb; + assert(algoNb == 0); + return HUF_decompress1X1_DCtx_wksp(dctx, dst, dstSize, cSrc, + cSrcSize, workSpace, wkspSize); +#elif defined(HUF_FORCE_DECOMPRESS_X2) + (void)algoNb; + assert(algoNb == 1); + return HUF_decompress1X2_DCtx_wksp(dctx, dst, dstSize, cSrc, + cSrcSize, workSpace, wkspSize); +#else + return algoNb ? HUF_decompress1X2_DCtx_wksp(dctx, dst, dstSize, cSrc, + cSrcSize, workSpace, wkspSize): + HUF_decompress1X1_DCtx_wksp(dctx, dst, dstSize, cSrc, + cSrcSize, workSpace, wkspSize); +#endif + } +} + + +size_t HUF_decompress1X_usingDTable_bmi2(void* dst, size_t maxDstSize, const void* cSrc, size_t cSrcSize, const HUF_DTable* DTable, int bmi2) +{ + DTableDesc const dtd = HUF_getDTableDesc(DTable); +#if defined(HUF_FORCE_DECOMPRESS_X1) + (void)dtd; + assert(dtd.tableType == 0); + return HUF_decompress1X1_usingDTable_internal(dst, maxDstSize, cSrc, cSrcSize, DTable, bmi2); +#elif defined(HUF_FORCE_DECOMPRESS_X2) + (void)dtd; + assert(dtd.tableType == 1); + return HUF_decompress1X2_usingDTable_internal(dst, maxDstSize, cSrc, cSrcSize, DTable, bmi2); +#else + return dtd.tableType ? HUF_decompress1X2_usingDTable_internal(dst, maxDstSize, cSrc, cSrcSize, DTable, bmi2) : + HUF_decompress1X1_usingDTable_internal(dst, maxDstSize, cSrc, cSrcSize, DTable, bmi2); +#endif +} + +#ifndef HUF_FORCE_DECOMPRESS_X2 +size_t HUF_decompress1X1_DCtx_wksp_bmi2(HUF_DTable* dctx, void* dst, size_t dstSize, const void* cSrc, size_t cSrcSize, void* workSpace, size_t wkspSize, int bmi2) +{ + const BYTE* ip = (const BYTE*) cSrc; + + size_t const hSize = HUF_readDTableX1_wksp_bmi2(dctx, cSrc, cSrcSize, workSpace, wkspSize, bmi2); + if (HUF_isError(hSize)) return hSize; + if (hSize >= cSrcSize) return ERROR(srcSize_wrong); + ip += hSize; cSrcSize -= hSize; + + return HUF_decompress1X1_usingDTable_internal(dst, dstSize, ip, cSrcSize, dctx, bmi2); +} +#endif + +size_t HUF_decompress4X_usingDTable_bmi2(void* dst, size_t maxDstSize, const void* cSrc, size_t cSrcSize, const HUF_DTable* DTable, int bmi2) +{ + DTableDesc const dtd = HUF_getDTableDesc(DTable); +#if defined(HUF_FORCE_DECOMPRESS_X1) + (void)dtd; + assert(dtd.tableType == 0); + return HUF_decompress4X1_usingDTable_internal(dst, maxDstSize, cSrc, cSrcSize, DTable, bmi2); +#elif defined(HUF_FORCE_DECOMPRESS_X2) + (void)dtd; + assert(dtd.tableType == 1); + return HUF_decompress4X2_usingDTable_internal(dst, maxDstSize, cSrc, cSrcSize, DTable, bmi2); +#else + return dtd.tableType ? HUF_decompress4X2_usingDTable_internal(dst, maxDstSize, cSrc, cSrcSize, DTable, bmi2) : + HUF_decompress4X1_usingDTable_internal(dst, maxDstSize, cSrc, cSrcSize, DTable, bmi2); +#endif +} + +size_t HUF_decompress4X_hufOnly_wksp_bmi2(HUF_DTable* dctx, void* dst, size_t dstSize, const void* cSrc, size_t cSrcSize, void* workSpace, size_t wkspSize, int bmi2) +{ + /* validation checks */ + if (dstSize == 0) return ERROR(dstSize_tooSmall); + if (cSrcSize == 0) return ERROR(corruption_detected); + + { U32 const algoNb = HUF_selectDecoder(dstSize, cSrcSize); +#if defined(HUF_FORCE_DECOMPRESS_X1) + (void)algoNb; + assert(algoNb == 0); + return HUF_decompress4X1_DCtx_wksp_bmi2(dctx, dst, dstSize, cSrc, cSrcSize, workSpace, wkspSize, bmi2); +#elif defined(HUF_FORCE_DECOMPRESS_X2) + (void)algoNb; + assert(algoNb == 1); + return HUF_decompress4X2_DCtx_wksp_bmi2(dctx, dst, dstSize, cSrc, cSrcSize, workSpace, wkspSize, bmi2); +#else + return algoNb ? HUF_decompress4X2_DCtx_wksp_bmi2(dctx, dst, dstSize, cSrc, cSrcSize, workSpace, wkspSize, bmi2) : + HUF_decompress4X1_DCtx_wksp_bmi2(dctx, dst, dstSize, cSrc, cSrcSize, workSpace, wkspSize, bmi2); +#endif + } +} + +#ifndef ZSTD_NO_UNUSED_FUNCTIONS +#ifndef HUF_FORCE_DECOMPRESS_X2 +size_t HUF_readDTableX1(HUF_DTable* DTable, const void* src, size_t srcSize) +{ + U32 workSpace[HUF_DECOMPRESS_WORKSPACE_SIZE_U32]; + return HUF_readDTableX1_wksp(DTable, src, srcSize, + workSpace, sizeof(workSpace)); +} + +size_t HUF_decompress1X1_DCtx(HUF_DTable* DCtx, void* dst, size_t dstSize, + const void* cSrc, size_t cSrcSize) +{ + U32 workSpace[HUF_DECOMPRESS_WORKSPACE_SIZE_U32]; + return HUF_decompress1X1_DCtx_wksp(DCtx, dst, dstSize, cSrc, cSrcSize, + workSpace, sizeof(workSpace)); +} + +size_t HUF_decompress1X1 (void* dst, size_t dstSize, const void* cSrc, size_t cSrcSize) +{ + HUF_CREATE_STATIC_DTABLEX1(DTable, HUF_TABLELOG_MAX); + return HUF_decompress1X1_DCtx (DTable, dst, dstSize, cSrc, cSrcSize); +} +#endif + +#ifndef HUF_FORCE_DECOMPRESS_X1 +size_t HUF_readDTableX2(HUF_DTable* DTable, const void* src, size_t srcSize) +{ + U32 workSpace[HUF_DECOMPRESS_WORKSPACE_SIZE_U32]; + return HUF_readDTableX2_wksp(DTable, src, srcSize, + workSpace, sizeof(workSpace)); +} + +size_t HUF_decompress1X2_DCtx(HUF_DTable* DCtx, void* dst, size_t dstSize, + const void* cSrc, size_t cSrcSize) +{ + U32 workSpace[HUF_DECOMPRESS_WORKSPACE_SIZE_U32]; + return HUF_decompress1X2_DCtx_wksp(DCtx, dst, dstSize, cSrc, cSrcSize, + workSpace, sizeof(workSpace)); +} + +size_t HUF_decompress1X2 (void* dst, size_t dstSize, const void* cSrc, size_t cSrcSize) +{ + HUF_CREATE_STATIC_DTABLEX2(DTable, HUF_TABLELOG_MAX); + return HUF_decompress1X2_DCtx(DTable, dst, dstSize, cSrc, cSrcSize); +} +#endif + +#ifndef HUF_FORCE_DECOMPRESS_X2 +size_t HUF_decompress4X1_DCtx (HUF_DTable* dctx, void* dst, size_t dstSize, const void* cSrc, size_t cSrcSize) +{ + U32 workSpace[HUF_DECOMPRESS_WORKSPACE_SIZE_U32]; + return HUF_decompress4X1_DCtx_wksp(dctx, dst, dstSize, cSrc, cSrcSize, + workSpace, sizeof(workSpace)); +} +size_t HUF_decompress4X1 (void* dst, size_t dstSize, const void* cSrc, size_t cSrcSize) +{ + HUF_CREATE_STATIC_DTABLEX1(DTable, HUF_TABLELOG_MAX); + return HUF_decompress4X1_DCtx(DTable, dst, dstSize, cSrc, cSrcSize); +} +#endif + +#ifndef HUF_FORCE_DECOMPRESS_X1 +size_t HUF_decompress4X2_DCtx(HUF_DTable* dctx, void* dst, size_t dstSize, + const void* cSrc, size_t cSrcSize) +{ + U32 workSpace[HUF_DECOMPRESS_WORKSPACE_SIZE_U32]; + return HUF_decompress4X2_DCtx_wksp(dctx, dst, dstSize, cSrc, cSrcSize, + workSpace, sizeof(workSpace)); +} + +size_t HUF_decompress4X2 (void* dst, size_t dstSize, const void* cSrc, size_t cSrcSize) +{ + HUF_CREATE_STATIC_DTABLEX2(DTable, HUF_TABLELOG_MAX); + return HUF_decompress4X2_DCtx(DTable, dst, dstSize, cSrc, cSrcSize); +} +#endif + +typedef size_t (*decompressionAlgo)(void* dst, size_t dstSize, const void* cSrc, size_t cSrcSize); + +size_t HUF_decompress (void* dst, size_t dstSize, const void* cSrc, size_t cSrcSize) +{ +#if !defined(HUF_FORCE_DECOMPRESS_X1) && !defined(HUF_FORCE_DECOMPRESS_X2) + static const decompressionAlgo decompress[2] = { HUF_decompress4X1, HUF_decompress4X2 }; +#endif + + /* validation checks */ + if (dstSize == 0) return ERROR(dstSize_tooSmall); + if (cSrcSize > dstSize) return ERROR(corruption_detected); /* invalid */ + if (cSrcSize == dstSize) { ZSTD_memcpy(dst, cSrc, dstSize); return dstSize; } /* not compressed */ + if (cSrcSize == 1) { ZSTD_memset(dst, *(const BYTE*)cSrc, dstSize); return dstSize; } /* RLE */ + + { U32 const algoNb = HUF_selectDecoder(dstSize, cSrcSize); +#if defined(HUF_FORCE_DECOMPRESS_X1) + (void)algoNb; + assert(algoNb == 0); + return HUF_decompress4X1(dst, dstSize, cSrc, cSrcSize); +#elif defined(HUF_FORCE_DECOMPRESS_X2) + (void)algoNb; + assert(algoNb == 1); + return HUF_decompress4X2(dst, dstSize, cSrc, cSrcSize); +#else + return decompress[algoNb](dst, dstSize, cSrc, cSrcSize); +#endif + } +} + +size_t HUF_decompress4X_DCtx (HUF_DTable* dctx, void* dst, size_t dstSize, const void* cSrc, size_t cSrcSize) +{ + /* validation checks */ + if (dstSize == 0) return ERROR(dstSize_tooSmall); + if (cSrcSize > dstSize) return ERROR(corruption_detected); /* invalid */ + if (cSrcSize == dstSize) { ZSTD_memcpy(dst, cSrc, dstSize); return dstSize; } /* not compressed */ + if (cSrcSize == 1) { ZSTD_memset(dst, *(const BYTE*)cSrc, dstSize); return dstSize; } /* RLE */ + + { U32 const algoNb = HUF_selectDecoder(dstSize, cSrcSize); +#if defined(HUF_FORCE_DECOMPRESS_X1) + (void)algoNb; + assert(algoNb == 0); + return HUF_decompress4X1_DCtx(dctx, dst, dstSize, cSrc, cSrcSize); +#elif defined(HUF_FORCE_DECOMPRESS_X2) + (void)algoNb; + assert(algoNb == 1); + return HUF_decompress4X2_DCtx(dctx, dst, dstSize, cSrc, cSrcSize); +#else + return algoNb ? HUF_decompress4X2_DCtx(dctx, dst, dstSize, cSrc, cSrcSize) : + HUF_decompress4X1_DCtx(dctx, dst, dstSize, cSrc, cSrcSize) ; +#endif + } +} + +size_t HUF_decompress4X_hufOnly(HUF_DTable* dctx, void* dst, size_t dstSize, const void* cSrc, size_t cSrcSize) +{ + U32 workSpace[HUF_DECOMPRESS_WORKSPACE_SIZE_U32]; + return HUF_decompress4X_hufOnly_wksp(dctx, dst, dstSize, cSrc, cSrcSize, + workSpace, sizeof(workSpace)); +} + +size_t HUF_decompress1X_DCtx(HUF_DTable* dctx, void* dst, size_t dstSize, + const void* cSrc, size_t cSrcSize) +{ + U32 workSpace[HUF_DECOMPRESS_WORKSPACE_SIZE_U32]; + return HUF_decompress1X_DCtx_wksp(dctx, dst, dstSize, cSrc, cSrcSize, + workSpace, sizeof(workSpace)); +} +#endif diff --git a/dependencies/zstd-1.5.0/lib/decompress/zstd_ddict.c b/dependencies/zstd-1.5.0/lib/decompress/zstd_ddict.c new file mode 100644 index 0000000..ce33547 --- /dev/null +++ b/dependencies/zstd-1.5.0/lib/decompress/zstd_ddict.c @@ -0,0 +1,244 @@ +/* + * Copyright (c) Yann Collet, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + +/* zstd_ddict.c : + * concentrates all logic that needs to know the internals of ZSTD_DDict object */ + +/*-******************************************************* +* Dependencies +*********************************************************/ +#include "../common/zstd_deps.h" /* ZSTD_memcpy, ZSTD_memmove, ZSTD_memset */ +#include "../common/cpu.h" /* bmi2 */ +#include "../common/mem.h" /* low level memory routines */ +#define FSE_STATIC_LINKING_ONLY +#include "../common/fse.h" +#define HUF_STATIC_LINKING_ONLY +#include "../common/huf.h" +#include "zstd_decompress_internal.h" +#include "zstd_ddict.h" + +#if defined(ZSTD_LEGACY_SUPPORT) && (ZSTD_LEGACY_SUPPORT>=1) +# include "../legacy/zstd_legacy.h" +#endif + + + +/*-******************************************************* +* Types +*********************************************************/ +struct ZSTD_DDict_s { + void* dictBuffer; + const void* dictContent; + size_t dictSize; + ZSTD_entropyDTables_t entropy; + U32 dictID; + U32 entropyPresent; + ZSTD_customMem cMem; +}; /* typedef'd to ZSTD_DDict within "zstd.h" */ + +const void* ZSTD_DDict_dictContent(const ZSTD_DDict* ddict) +{ + assert(ddict != NULL); + return ddict->dictContent; +} + +size_t ZSTD_DDict_dictSize(const ZSTD_DDict* ddict) +{ + assert(ddict != NULL); + return ddict->dictSize; +} + +void ZSTD_copyDDictParameters(ZSTD_DCtx* dctx, const ZSTD_DDict* ddict) +{ + DEBUGLOG(4, "ZSTD_copyDDictParameters"); + assert(dctx != NULL); + assert(ddict != NULL); + dctx->dictID = ddict->dictID; + dctx->prefixStart = ddict->dictContent; + dctx->virtualStart = ddict->dictContent; + dctx->dictEnd = (const BYTE*)ddict->dictContent + ddict->dictSize; + dctx->previousDstEnd = dctx->dictEnd; +#ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION + dctx->dictContentBeginForFuzzing = dctx->prefixStart; + dctx->dictContentEndForFuzzing = dctx->previousDstEnd; +#endif + if (ddict->entropyPresent) { + dctx->litEntropy = 1; + dctx->fseEntropy = 1; + dctx->LLTptr = ddict->entropy.LLTable; + dctx->MLTptr = ddict->entropy.MLTable; + dctx->OFTptr = ddict->entropy.OFTable; + dctx->HUFptr = ddict->entropy.hufTable; + dctx->entropy.rep[0] = ddict->entropy.rep[0]; + dctx->entropy.rep[1] = ddict->entropy.rep[1]; + dctx->entropy.rep[2] = ddict->entropy.rep[2]; + } else { + dctx->litEntropy = 0; + dctx->fseEntropy = 0; + } +} + + +static size_t +ZSTD_loadEntropy_intoDDict(ZSTD_DDict* ddict, + ZSTD_dictContentType_e dictContentType) +{ + ddict->dictID = 0; + ddict->entropyPresent = 0; + if (dictContentType == ZSTD_dct_rawContent) return 0; + + if (ddict->dictSize < 8) { + if (dictContentType == ZSTD_dct_fullDict) + return ERROR(dictionary_corrupted); /* only accept specified dictionaries */ + return 0; /* pure content mode */ + } + { U32 const magic = MEM_readLE32(ddict->dictContent); + if (magic != ZSTD_MAGIC_DICTIONARY) { + if (dictContentType == ZSTD_dct_fullDict) + return ERROR(dictionary_corrupted); /* only accept specified dictionaries */ + return 0; /* pure content mode */ + } + } + ddict->dictID = MEM_readLE32((const char*)ddict->dictContent + ZSTD_FRAMEIDSIZE); + + /* load entropy tables */ + RETURN_ERROR_IF(ZSTD_isError(ZSTD_loadDEntropy( + &ddict->entropy, ddict->dictContent, ddict->dictSize)), + dictionary_corrupted, ""); + ddict->entropyPresent = 1; + return 0; +} + + +static size_t ZSTD_initDDict_internal(ZSTD_DDict* ddict, + const void* dict, size_t dictSize, + ZSTD_dictLoadMethod_e dictLoadMethod, + ZSTD_dictContentType_e dictContentType) +{ + if ((dictLoadMethod == ZSTD_dlm_byRef) || (!dict) || (!dictSize)) { + ddict->dictBuffer = NULL; + ddict->dictContent = dict; + if (!dict) dictSize = 0; + } else { + void* const internalBuffer = ZSTD_customMalloc(dictSize, ddict->cMem); + ddict->dictBuffer = internalBuffer; + ddict->dictContent = internalBuffer; + if (!internalBuffer) return ERROR(memory_allocation); + ZSTD_memcpy(internalBuffer, dict, dictSize); + } + ddict->dictSize = dictSize; + ddict->entropy.hufTable[0] = (HUF_DTable)((HufLog)*0x1000001); /* cover both little and big endian */ + + /* parse dictionary content */ + FORWARD_IF_ERROR( ZSTD_loadEntropy_intoDDict(ddict, dictContentType) , ""); + + return 0; +} + +ZSTD_DDict* ZSTD_createDDict_advanced(const void* dict, size_t dictSize, + ZSTD_dictLoadMethod_e dictLoadMethod, + ZSTD_dictContentType_e dictContentType, + ZSTD_customMem customMem) +{ + if ((!customMem.customAlloc) ^ (!customMem.customFree)) return NULL; + + { ZSTD_DDict* const ddict = (ZSTD_DDict*) ZSTD_customMalloc(sizeof(ZSTD_DDict), customMem); + if (ddict == NULL) return NULL; + ddict->cMem = customMem; + { size_t const initResult = ZSTD_initDDict_internal(ddict, + dict, dictSize, + dictLoadMethod, dictContentType); + if (ZSTD_isError(initResult)) { + ZSTD_freeDDict(ddict); + return NULL; + } } + return ddict; + } +} + +/*! ZSTD_createDDict() : +* Create a digested dictionary, to start decompression without startup delay. +* `dict` content is copied inside DDict. +* Consequently, `dict` can be released after `ZSTD_DDict` creation */ +ZSTD_DDict* ZSTD_createDDict(const void* dict, size_t dictSize) +{ + ZSTD_customMem const allocator = { NULL, NULL, NULL }; + return ZSTD_createDDict_advanced(dict, dictSize, ZSTD_dlm_byCopy, ZSTD_dct_auto, allocator); +} + +/*! ZSTD_createDDict_byReference() : + * Create a digested dictionary, to start decompression without startup delay. + * Dictionary content is simply referenced, it will be accessed during decompression. + * Warning : dictBuffer must outlive DDict (DDict must be freed before dictBuffer) */ +ZSTD_DDict* ZSTD_createDDict_byReference(const void* dictBuffer, size_t dictSize) +{ + ZSTD_customMem const allocator = { NULL, NULL, NULL }; + return ZSTD_createDDict_advanced(dictBuffer, dictSize, ZSTD_dlm_byRef, ZSTD_dct_auto, allocator); +} + + +const ZSTD_DDict* ZSTD_initStaticDDict( + void* sBuffer, size_t sBufferSize, + const void* dict, size_t dictSize, + ZSTD_dictLoadMethod_e dictLoadMethod, + ZSTD_dictContentType_e dictContentType) +{ + size_t const neededSpace = sizeof(ZSTD_DDict) + + (dictLoadMethod == ZSTD_dlm_byRef ? 0 : dictSize); + ZSTD_DDict* const ddict = (ZSTD_DDict*)sBuffer; + assert(sBuffer != NULL); + assert(dict != NULL); + if ((size_t)sBuffer & 7) return NULL; /* 8-aligned */ + if (sBufferSize < neededSpace) return NULL; + if (dictLoadMethod == ZSTD_dlm_byCopy) { + ZSTD_memcpy(ddict+1, dict, dictSize); /* local copy */ + dict = ddict+1; + } + if (ZSTD_isError( ZSTD_initDDict_internal(ddict, + dict, dictSize, + ZSTD_dlm_byRef, dictContentType) )) + return NULL; + return ddict; +} + + +size_t ZSTD_freeDDict(ZSTD_DDict* ddict) +{ + if (ddict==NULL) return 0; /* support free on NULL */ + { ZSTD_customMem const cMem = ddict->cMem; + ZSTD_customFree(ddict->dictBuffer, cMem); + ZSTD_customFree(ddict, cMem); + return 0; + } +} + +/*! ZSTD_estimateDDictSize() : + * Estimate amount of memory that will be needed to create a dictionary for decompression. + * Note : dictionary created by reference using ZSTD_dlm_byRef are smaller */ +size_t ZSTD_estimateDDictSize(size_t dictSize, ZSTD_dictLoadMethod_e dictLoadMethod) +{ + return sizeof(ZSTD_DDict) + (dictLoadMethod == ZSTD_dlm_byRef ? 0 : dictSize); +} + +size_t ZSTD_sizeof_DDict(const ZSTD_DDict* ddict) +{ + if (ddict==NULL) return 0; /* support sizeof on NULL */ + return sizeof(*ddict) + (ddict->dictBuffer ? ddict->dictSize : 0) ; +} + +/*! ZSTD_getDictID_fromDDict() : + * Provides the dictID of the dictionary loaded into `ddict`. + * If @return == 0, the dictionary is not conformant to Zstandard specification, or empty. + * Non-conformant dictionaries can still be loaded, but as content-only dictionaries. */ +unsigned ZSTD_getDictID_fromDDict(const ZSTD_DDict* ddict) +{ + if (ddict==NULL) return 0; + return ZSTD_getDictID_fromDict(ddict->dictContent, ddict->dictSize); +} diff --git a/dependencies/zstd-1.5.0/lib/decompress/zstd_ddict.h b/dependencies/zstd-1.5.0/lib/decompress/zstd_ddict.h new file mode 100644 index 0000000..bd03268 --- /dev/null +++ b/dependencies/zstd-1.5.0/lib/decompress/zstd_ddict.h @@ -0,0 +1,44 @@ +/* + * Copyright (c) Yann Collet, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + + +#ifndef ZSTD_DDICT_H +#define ZSTD_DDICT_H + +/*-******************************************************* + * Dependencies + *********************************************************/ +#include "../common/zstd_deps.h" /* size_t */ +#include "../zstd.h" /* ZSTD_DDict, and several public functions */ + + +/*-******************************************************* + * Interface + *********************************************************/ + +/* note: several prototypes are already published in `zstd.h` : + * ZSTD_createDDict() + * ZSTD_createDDict_byReference() + * ZSTD_createDDict_advanced() + * ZSTD_freeDDict() + * ZSTD_initStaticDDict() + * ZSTD_sizeof_DDict() + * ZSTD_estimateDDictSize() + * ZSTD_getDictID_fromDict() + */ + +const void* ZSTD_DDict_dictContent(const ZSTD_DDict* ddict); +size_t ZSTD_DDict_dictSize(const ZSTD_DDict* ddict); + +void ZSTD_copyDDictParameters(ZSTD_DCtx* dctx, const ZSTD_DDict* ddict); + + + +#endif /* ZSTD_DDICT_H */ diff --git a/dependencies/zstd-1.5.0/lib/decompress/zstd_decompress.c b/dependencies/zstd-1.5.0/lib/decompress/zstd_decompress.c new file mode 100644 index 0000000..910bc03 --- /dev/null +++ b/dependencies/zstd-1.5.0/lib/decompress/zstd_decompress.c @@ -0,0 +1,2167 @@ +/* + * Copyright (c) Yann Collet, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + + +/* *************************************************************** +* Tuning parameters +*****************************************************************/ +/*! + * HEAPMODE : + * Select how default decompression function ZSTD_decompress() allocates its context, + * on stack (0), or into heap (1, default; requires malloc()). + * Note that functions with explicit context such as ZSTD_decompressDCtx() are unaffected. + */ +#ifndef ZSTD_HEAPMODE +# define ZSTD_HEAPMODE 1 +#endif + +/*! +* LEGACY_SUPPORT : +* if set to 1+, ZSTD_decompress() can decode older formats (v0.1+) +*/ +#ifndef ZSTD_LEGACY_SUPPORT +# define ZSTD_LEGACY_SUPPORT 0 +#endif + +/*! + * MAXWINDOWSIZE_DEFAULT : + * maximum window size accepted by DStream __by default__. + * Frames requiring more memory will be rejected. + * It's possible to set a different limit using ZSTD_DCtx_setMaxWindowSize(). + */ +#ifndef ZSTD_MAXWINDOWSIZE_DEFAULT +# define ZSTD_MAXWINDOWSIZE_DEFAULT (((U32)1 << ZSTD_WINDOWLOG_LIMIT_DEFAULT) + 1) +#endif + +/*! + * NO_FORWARD_PROGRESS_MAX : + * maximum allowed nb of calls to ZSTD_decompressStream() + * without any forward progress + * (defined as: no byte read from input, and no byte flushed to output) + * before triggering an error. + */ +#ifndef ZSTD_NO_FORWARD_PROGRESS_MAX +# define ZSTD_NO_FORWARD_PROGRESS_MAX 16 +#endif + + +/*-******************************************************* +* Dependencies +*********************************************************/ +#include "../common/zstd_deps.h" /* ZSTD_memcpy, ZSTD_memmove, ZSTD_memset */ +#include "../common/cpu.h" /* bmi2 */ +#include "../common/mem.h" /* low level memory routines */ +#define FSE_STATIC_LINKING_ONLY +#include "../common/fse.h" +#define HUF_STATIC_LINKING_ONLY +#include "../common/huf.h" +#include "../common/xxhash.h" /* XXH64_reset, XXH64_update, XXH64_digest, XXH64 */ +#include "../common/zstd_internal.h" /* blockProperties_t */ +#include "zstd_decompress_internal.h" /* ZSTD_DCtx */ +#include "zstd_ddict.h" /* ZSTD_DDictDictContent */ +#include "zstd_decompress_block.h" /* ZSTD_decompressBlock_internal */ + +#if defined(ZSTD_LEGACY_SUPPORT) && (ZSTD_LEGACY_SUPPORT>=1) +# include "../legacy/zstd_legacy.h" +#endif + + + +/************************************* + * Multiple DDicts Hashset internals * + *************************************/ + +#define DDICT_HASHSET_MAX_LOAD_FACTOR_COUNT_MULT 4 +#define DDICT_HASHSET_MAX_LOAD_FACTOR_SIZE_MULT 3 /* These two constants represent SIZE_MULT/COUNT_MULT load factor without using a float. + * Currently, that means a 0.75 load factor. + * So, if count * COUNT_MULT / size * SIZE_MULT != 0, then we've exceeded + * the load factor of the ddict hash set. + */ + +#define DDICT_HASHSET_TABLE_BASE_SIZE 64 +#define DDICT_HASHSET_RESIZE_FACTOR 2 + +/* Hash function to determine starting position of dict insertion within the table + * Returns an index between [0, hashSet->ddictPtrTableSize] + */ +static size_t ZSTD_DDictHashSet_getIndex(const ZSTD_DDictHashSet* hashSet, U32 dictID) { + const U64 hash = XXH64(&dictID, sizeof(U32), 0); + /* DDict ptr table size is a multiple of 2, use size - 1 as mask to get index within [0, hashSet->ddictPtrTableSize) */ + return hash & (hashSet->ddictPtrTableSize - 1); +} + +/* Adds DDict to a hashset without resizing it. + * If inserting a DDict with a dictID that already exists in the set, replaces the one in the set. + * Returns 0 if successful, or a zstd error code if something went wrong. + */ +static size_t ZSTD_DDictHashSet_emplaceDDict(ZSTD_DDictHashSet* hashSet, const ZSTD_DDict* ddict) { + const U32 dictID = ZSTD_getDictID_fromDDict(ddict); + size_t idx = ZSTD_DDictHashSet_getIndex(hashSet, dictID); + const size_t idxRangeMask = hashSet->ddictPtrTableSize - 1; + RETURN_ERROR_IF(hashSet->ddictPtrCount == hashSet->ddictPtrTableSize, GENERIC, "Hash set is full!"); + DEBUGLOG(4, "Hashed index: for dictID: %u is %zu", dictID, idx); + while (hashSet->ddictPtrTable[idx] != NULL) { + /* Replace existing ddict if inserting ddict with same dictID */ + if (ZSTD_getDictID_fromDDict(hashSet->ddictPtrTable[idx]) == dictID) { + DEBUGLOG(4, "DictID already exists, replacing rather than adding"); + hashSet->ddictPtrTable[idx] = ddict; + return 0; + } + idx &= idxRangeMask; + idx++; + } + DEBUGLOG(4, "Final idx after probing for dictID %u is: %zu", dictID, idx); + hashSet->ddictPtrTable[idx] = ddict; + hashSet->ddictPtrCount++; + return 0; +} + +/* Expands hash table by factor of DDICT_HASHSET_RESIZE_FACTOR and + * rehashes all values, allocates new table, frees old table. + * Returns 0 on success, otherwise a zstd error code. + */ +static size_t ZSTD_DDictHashSet_expand(ZSTD_DDictHashSet* hashSet, ZSTD_customMem customMem) { + size_t newTableSize = hashSet->ddictPtrTableSize * DDICT_HASHSET_RESIZE_FACTOR; + const ZSTD_DDict** newTable = (const ZSTD_DDict**)ZSTD_customCalloc(sizeof(ZSTD_DDict*) * newTableSize, customMem); + const ZSTD_DDict** oldTable = hashSet->ddictPtrTable; + size_t oldTableSize = hashSet->ddictPtrTableSize; + size_t i; + + DEBUGLOG(4, "Expanding DDict hash table! Old size: %zu new size: %zu", oldTableSize, newTableSize); + RETURN_ERROR_IF(!newTable, memory_allocation, "Expanded hashset allocation failed!"); + hashSet->ddictPtrTable = newTable; + hashSet->ddictPtrTableSize = newTableSize; + hashSet->ddictPtrCount = 0; + for (i = 0; i < oldTableSize; ++i) { + if (oldTable[i] != NULL) { + FORWARD_IF_ERROR(ZSTD_DDictHashSet_emplaceDDict(hashSet, oldTable[i]), ""); + } + } + ZSTD_customFree((void*)oldTable, customMem); + DEBUGLOG(4, "Finished re-hash"); + return 0; +} + +/* Fetches a DDict with the given dictID + * Returns the ZSTD_DDict* with the requested dictID. If it doesn't exist, then returns NULL. + */ +static const ZSTD_DDict* ZSTD_DDictHashSet_getDDict(ZSTD_DDictHashSet* hashSet, U32 dictID) { + size_t idx = ZSTD_DDictHashSet_getIndex(hashSet, dictID); + const size_t idxRangeMask = hashSet->ddictPtrTableSize - 1; + DEBUGLOG(4, "Hashed index: for dictID: %u is %zu", dictID, idx); + for (;;) { + size_t currDictID = ZSTD_getDictID_fromDDict(hashSet->ddictPtrTable[idx]); + if (currDictID == dictID || currDictID == 0) { + /* currDictID == 0 implies a NULL ddict entry */ + break; + } else { + idx &= idxRangeMask; /* Goes to start of table when we reach the end */ + idx++; + } + } + DEBUGLOG(4, "Final idx after probing for dictID %u is: %zu", dictID, idx); + return hashSet->ddictPtrTable[idx]; +} + +/* Allocates space for and returns a ddict hash set + * The hash set's ZSTD_DDict* table has all values automatically set to NULL to begin with. + * Returns NULL if allocation failed. + */ +static ZSTD_DDictHashSet* ZSTD_createDDictHashSet(ZSTD_customMem customMem) { + ZSTD_DDictHashSet* ret = (ZSTD_DDictHashSet*)ZSTD_customMalloc(sizeof(ZSTD_DDictHashSet), customMem); + DEBUGLOG(4, "Allocating new hash set"); + ret->ddictPtrTable = (const ZSTD_DDict**)ZSTD_customCalloc(DDICT_HASHSET_TABLE_BASE_SIZE * sizeof(ZSTD_DDict*), customMem); + ret->ddictPtrTableSize = DDICT_HASHSET_TABLE_BASE_SIZE; + ret->ddictPtrCount = 0; + if (!ret || !ret->ddictPtrTable) { + return NULL; + } + return ret; +} + +/* Frees the table of ZSTD_DDict* within a hashset, then frees the hashset itself. + * Note: The ZSTD_DDict* within the table are NOT freed. + */ +static void ZSTD_freeDDictHashSet(ZSTD_DDictHashSet* hashSet, ZSTD_customMem customMem) { + DEBUGLOG(4, "Freeing ddict hash set"); + if (hashSet && hashSet->ddictPtrTable) { + ZSTD_customFree((void*)hashSet->ddictPtrTable, customMem); + } + if (hashSet) { + ZSTD_customFree(hashSet, customMem); + } +} + +/* Public function: Adds a DDict into the ZSTD_DDictHashSet, possibly triggering a resize of the hash set. + * Returns 0 on success, or a ZSTD error. + */ +static size_t ZSTD_DDictHashSet_addDDict(ZSTD_DDictHashSet* hashSet, const ZSTD_DDict* ddict, ZSTD_customMem customMem) { + DEBUGLOG(4, "Adding dict ID: %u to hashset with - Count: %zu Tablesize: %zu", ZSTD_getDictID_fromDDict(ddict), hashSet->ddictPtrCount, hashSet->ddictPtrTableSize); + if (hashSet->ddictPtrCount * DDICT_HASHSET_MAX_LOAD_FACTOR_COUNT_MULT / hashSet->ddictPtrTableSize * DDICT_HASHSET_MAX_LOAD_FACTOR_SIZE_MULT != 0) { + FORWARD_IF_ERROR(ZSTD_DDictHashSet_expand(hashSet, customMem), ""); + } + FORWARD_IF_ERROR(ZSTD_DDictHashSet_emplaceDDict(hashSet, ddict), ""); + return 0; +} + +/*-************************************************************* +* Context management +***************************************************************/ +size_t ZSTD_sizeof_DCtx (const ZSTD_DCtx* dctx) +{ + if (dctx==NULL) return 0; /* support sizeof NULL */ + return sizeof(*dctx) + + ZSTD_sizeof_DDict(dctx->ddictLocal) + + dctx->inBuffSize + dctx->outBuffSize; +} + +size_t ZSTD_estimateDCtxSize(void) { return sizeof(ZSTD_DCtx); } + + +static size_t ZSTD_startingInputLength(ZSTD_format_e format) +{ + size_t const startingInputLength = ZSTD_FRAMEHEADERSIZE_PREFIX(format); + /* only supports formats ZSTD_f_zstd1 and ZSTD_f_zstd1_magicless */ + assert( (format == ZSTD_f_zstd1) || (format == ZSTD_f_zstd1_magicless) ); + return startingInputLength; +} + +static void ZSTD_DCtx_resetParameters(ZSTD_DCtx* dctx) +{ + assert(dctx->streamStage == zdss_init); + dctx->format = ZSTD_f_zstd1; + dctx->maxWindowSize = ZSTD_MAXWINDOWSIZE_DEFAULT; + dctx->outBufferMode = ZSTD_bm_buffered; + dctx->forceIgnoreChecksum = ZSTD_d_validateChecksum; + dctx->refMultipleDDicts = ZSTD_rmd_refSingleDDict; +} + +static void ZSTD_initDCtx_internal(ZSTD_DCtx* dctx) +{ + dctx->staticSize = 0; + dctx->ddict = NULL; + dctx->ddictLocal = NULL; + dctx->dictEnd = NULL; + dctx->ddictIsCold = 0; + dctx->dictUses = ZSTD_dont_use; + dctx->inBuff = NULL; + dctx->inBuffSize = 0; + dctx->outBuffSize = 0; + dctx->streamStage = zdss_init; + dctx->legacyContext = NULL; + dctx->previousLegacyVersion = 0; + dctx->noForwardProgress = 0; + dctx->oversizedDuration = 0; + dctx->bmi2 = ZSTD_cpuid_bmi2(ZSTD_cpuid()); + dctx->ddictSet = NULL; + ZSTD_DCtx_resetParameters(dctx); +#ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION + dctx->dictContentEndForFuzzing = NULL; +#endif +} + +ZSTD_DCtx* ZSTD_initStaticDCtx(void *workspace, size_t workspaceSize) +{ + ZSTD_DCtx* const dctx = (ZSTD_DCtx*) workspace; + + if ((size_t)workspace & 7) return NULL; /* 8-aligned */ + if (workspaceSize < sizeof(ZSTD_DCtx)) return NULL; /* minimum size */ + + ZSTD_initDCtx_internal(dctx); + dctx->staticSize = workspaceSize; + dctx->inBuff = (char*)(dctx+1); + return dctx; +} + +ZSTD_DCtx* ZSTD_createDCtx_advanced(ZSTD_customMem customMem) +{ + if ((!customMem.customAlloc) ^ (!customMem.customFree)) return NULL; + + { ZSTD_DCtx* const dctx = (ZSTD_DCtx*)ZSTD_customMalloc(sizeof(*dctx), customMem); + if (!dctx) return NULL; + dctx->customMem = customMem; + ZSTD_initDCtx_internal(dctx); + return dctx; + } +} + +ZSTD_DCtx* ZSTD_createDCtx(void) +{ + DEBUGLOG(3, "ZSTD_createDCtx"); + return ZSTD_createDCtx_advanced(ZSTD_defaultCMem); +} + +static void ZSTD_clearDict(ZSTD_DCtx* dctx) +{ + ZSTD_freeDDict(dctx->ddictLocal); + dctx->ddictLocal = NULL; + dctx->ddict = NULL; + dctx->dictUses = ZSTD_dont_use; +} + +size_t ZSTD_freeDCtx(ZSTD_DCtx* dctx) +{ + if (dctx==NULL) return 0; /* support free on NULL */ + RETURN_ERROR_IF(dctx->staticSize, memory_allocation, "not compatible with static DCtx"); + { ZSTD_customMem const cMem = dctx->customMem; + ZSTD_clearDict(dctx); + ZSTD_customFree(dctx->inBuff, cMem); + dctx->inBuff = NULL; +#if defined(ZSTD_LEGACY_SUPPORT) && (ZSTD_LEGACY_SUPPORT >= 1) + if (dctx->legacyContext) + ZSTD_freeLegacyStreamContext(dctx->legacyContext, dctx->previousLegacyVersion); +#endif + if (dctx->ddictSet) { + ZSTD_freeDDictHashSet(dctx->ddictSet, cMem); + dctx->ddictSet = NULL; + } + ZSTD_customFree(dctx, cMem); + return 0; + } +} + +/* no longer useful */ +void ZSTD_copyDCtx(ZSTD_DCtx* dstDCtx, const ZSTD_DCtx* srcDCtx) +{ + size_t const toCopy = (size_t)((char*)(&dstDCtx->inBuff) - (char*)dstDCtx); + ZSTD_memcpy(dstDCtx, srcDCtx, toCopy); /* no need to copy workspace */ +} + +/* Given a dctx with a digested frame params, re-selects the correct ZSTD_DDict based on + * the requested dict ID from the frame. If there exists a reference to the correct ZSTD_DDict, then + * accordingly sets the ddict to be used to decompress the frame. + * + * If no DDict is found, then no action is taken, and the ZSTD_DCtx::ddict remains as-is. + * + * ZSTD_d_refMultipleDDicts must be enabled for this function to be called. + */ +static void ZSTD_DCtx_selectFrameDDict(ZSTD_DCtx* dctx) { + assert(dctx->refMultipleDDicts && dctx->ddictSet); + DEBUGLOG(4, "Adjusting DDict based on requested dict ID from frame"); + if (dctx->ddict) { + const ZSTD_DDict* frameDDict = ZSTD_DDictHashSet_getDDict(dctx->ddictSet, dctx->fParams.dictID); + if (frameDDict) { + DEBUGLOG(4, "DDict found!"); + ZSTD_clearDict(dctx); + dctx->dictID = dctx->fParams.dictID; + dctx->ddict = frameDDict; + dctx->dictUses = ZSTD_use_indefinitely; + } + } +} + + +/*-************************************************************* + * Frame header decoding + ***************************************************************/ + +/*! ZSTD_isFrame() : + * Tells if the content of `buffer` starts with a valid Frame Identifier. + * Note : Frame Identifier is 4 bytes. If `size < 4`, @return will always be 0. + * Note 2 : Legacy Frame Identifiers are considered valid only if Legacy Support is enabled. + * Note 3 : Skippable Frame Identifiers are considered valid. */ +unsigned ZSTD_isFrame(const void* buffer, size_t size) +{ + if (size < ZSTD_FRAMEIDSIZE) return 0; + { U32 const magic = MEM_readLE32(buffer); + if (magic == ZSTD_MAGICNUMBER) return 1; + if ((magic & ZSTD_MAGIC_SKIPPABLE_MASK) == ZSTD_MAGIC_SKIPPABLE_START) return 1; + } +#if defined(ZSTD_LEGACY_SUPPORT) && (ZSTD_LEGACY_SUPPORT >= 1) + if (ZSTD_isLegacy(buffer, size)) return 1; +#endif + return 0; +} + +/** ZSTD_frameHeaderSize_internal() : + * srcSize must be large enough to reach header size fields. + * note : only works for formats ZSTD_f_zstd1 and ZSTD_f_zstd1_magicless. + * @return : size of the Frame Header + * or an error code, which can be tested with ZSTD_isError() */ +static size_t ZSTD_frameHeaderSize_internal(const void* src, size_t srcSize, ZSTD_format_e format) +{ + size_t const minInputSize = ZSTD_startingInputLength(format); + RETURN_ERROR_IF(srcSize < minInputSize, srcSize_wrong, ""); + + { BYTE const fhd = ((const BYTE*)src)[minInputSize-1]; + U32 const dictID= fhd & 3; + U32 const singleSegment = (fhd >> 5) & 1; + U32 const fcsId = fhd >> 6; + return minInputSize + !singleSegment + + ZSTD_did_fieldSize[dictID] + ZSTD_fcs_fieldSize[fcsId] + + (singleSegment && !fcsId); + } +} + +/** ZSTD_frameHeaderSize() : + * srcSize must be >= ZSTD_frameHeaderSize_prefix. + * @return : size of the Frame Header, + * or an error code (if srcSize is too small) */ +size_t ZSTD_frameHeaderSize(const void* src, size_t srcSize) +{ + return ZSTD_frameHeaderSize_internal(src, srcSize, ZSTD_f_zstd1); +} + + +/** ZSTD_getFrameHeader_advanced() : + * decode Frame Header, or require larger `srcSize`. + * note : only works for formats ZSTD_f_zstd1 and ZSTD_f_zstd1_magicless + * @return : 0, `zfhPtr` is correctly filled, + * >0, `srcSize` is too small, value is wanted `srcSize` amount, + * or an error code, which can be tested using ZSTD_isError() */ +size_t ZSTD_getFrameHeader_advanced(ZSTD_frameHeader* zfhPtr, const void* src, size_t srcSize, ZSTD_format_e format) +{ + const BYTE* ip = (const BYTE*)src; + size_t const minInputSize = ZSTD_startingInputLength(format); + + ZSTD_memset(zfhPtr, 0, sizeof(*zfhPtr)); /* not strictly necessary, but static analyzer do not understand that zfhPtr is only going to be read only if return value is zero, since they are 2 different signals */ + if (srcSize < minInputSize) return minInputSize; + RETURN_ERROR_IF(src==NULL, GENERIC, "invalid parameter"); + + if ( (format != ZSTD_f_zstd1_magicless) + && (MEM_readLE32(src) != ZSTD_MAGICNUMBER) ) { + if ((MEM_readLE32(src) & ZSTD_MAGIC_SKIPPABLE_MASK) == ZSTD_MAGIC_SKIPPABLE_START) { + /* skippable frame */ + if (srcSize < ZSTD_SKIPPABLEHEADERSIZE) + return ZSTD_SKIPPABLEHEADERSIZE; /* magic number + frame length */ + ZSTD_memset(zfhPtr, 0, sizeof(*zfhPtr)); + zfhPtr->frameContentSize = MEM_readLE32((const char *)src + ZSTD_FRAMEIDSIZE); + zfhPtr->frameType = ZSTD_skippableFrame; + return 0; + } + RETURN_ERROR(prefix_unknown, ""); + } + + /* ensure there is enough `srcSize` to fully read/decode frame header */ + { size_t const fhsize = ZSTD_frameHeaderSize_internal(src, srcSize, format); + if (srcSize < fhsize) return fhsize; + zfhPtr->headerSize = (U32)fhsize; + } + + { BYTE const fhdByte = ip[minInputSize-1]; + size_t pos = minInputSize; + U32 const dictIDSizeCode = fhdByte&3; + U32 const checksumFlag = (fhdByte>>2)&1; + U32 const singleSegment = (fhdByte>>5)&1; + U32 const fcsID = fhdByte>>6; + U64 windowSize = 0; + U32 dictID = 0; + U64 frameContentSize = ZSTD_CONTENTSIZE_UNKNOWN; + RETURN_ERROR_IF((fhdByte & 0x08) != 0, frameParameter_unsupported, + "reserved bits, must be zero"); + + if (!singleSegment) { + BYTE const wlByte = ip[pos++]; + U32 const windowLog = (wlByte >> 3) + ZSTD_WINDOWLOG_ABSOLUTEMIN; + RETURN_ERROR_IF(windowLog > ZSTD_WINDOWLOG_MAX, frameParameter_windowTooLarge, ""); + windowSize = (1ULL << windowLog); + windowSize += (windowSize >> 3) * (wlByte&7); + } + switch(dictIDSizeCode) + { + default: assert(0); /* impossible */ + case 0 : break; + case 1 : dictID = ip[pos]; pos++; break; + case 2 : dictID = MEM_readLE16(ip+pos); pos+=2; break; + case 3 : dictID = MEM_readLE32(ip+pos); pos+=4; break; + } + switch(fcsID) + { + default: assert(0); /* impossible */ + case 0 : if (singleSegment) frameContentSize = ip[pos]; break; + case 1 : frameContentSize = MEM_readLE16(ip+pos)+256; break; + case 2 : frameContentSize = MEM_readLE32(ip+pos); break; + case 3 : frameContentSize = MEM_readLE64(ip+pos); break; + } + if (singleSegment) windowSize = frameContentSize; + + zfhPtr->frameType = ZSTD_frame; + zfhPtr->frameContentSize = frameContentSize; + zfhPtr->windowSize = windowSize; + zfhPtr->blockSizeMax = (unsigned) MIN(windowSize, ZSTD_BLOCKSIZE_MAX); + zfhPtr->dictID = dictID; + zfhPtr->checksumFlag = checksumFlag; + } + return 0; +} + +/** ZSTD_getFrameHeader() : + * decode Frame Header, or require larger `srcSize`. + * note : this function does not consume input, it only reads it. + * @return : 0, `zfhPtr` is correctly filled, + * >0, `srcSize` is too small, value is wanted `srcSize` amount, + * or an error code, which can be tested using ZSTD_isError() */ +size_t ZSTD_getFrameHeader(ZSTD_frameHeader* zfhPtr, const void* src, size_t srcSize) +{ + return ZSTD_getFrameHeader_advanced(zfhPtr, src, srcSize, ZSTD_f_zstd1); +} + + +/** ZSTD_getFrameContentSize() : + * compatible with legacy mode + * @return : decompressed size of the single frame pointed to be `src` if known, otherwise + * - ZSTD_CONTENTSIZE_UNKNOWN if the size cannot be determined + * - ZSTD_CONTENTSIZE_ERROR if an error occurred (e.g. invalid magic number, srcSize too small) */ +unsigned long long ZSTD_getFrameContentSize(const void *src, size_t srcSize) +{ +#if defined(ZSTD_LEGACY_SUPPORT) && (ZSTD_LEGACY_SUPPORT >= 1) + if (ZSTD_isLegacy(src, srcSize)) { + unsigned long long const ret = ZSTD_getDecompressedSize_legacy(src, srcSize); + return ret == 0 ? ZSTD_CONTENTSIZE_UNKNOWN : ret; + } +#endif + { ZSTD_frameHeader zfh; + if (ZSTD_getFrameHeader(&zfh, src, srcSize) != 0) + return ZSTD_CONTENTSIZE_ERROR; + if (zfh.frameType == ZSTD_skippableFrame) { + return 0; + } else { + return zfh.frameContentSize; + } } +} + +static size_t readSkippableFrameSize(void const* src, size_t srcSize) +{ + size_t const skippableHeaderSize = ZSTD_SKIPPABLEHEADERSIZE; + U32 sizeU32; + + RETURN_ERROR_IF(srcSize < ZSTD_SKIPPABLEHEADERSIZE, srcSize_wrong, ""); + + sizeU32 = MEM_readLE32((BYTE const*)src + ZSTD_FRAMEIDSIZE); + RETURN_ERROR_IF((U32)(sizeU32 + ZSTD_SKIPPABLEHEADERSIZE) < sizeU32, + frameParameter_unsupported, ""); + { + size_t const skippableSize = skippableHeaderSize + sizeU32; + RETURN_ERROR_IF(skippableSize > srcSize, srcSize_wrong, ""); + return skippableSize; + } +} + +/** ZSTD_findDecompressedSize() : + * compatible with legacy mode + * `srcSize` must be the exact length of some number of ZSTD compressed and/or + * skippable frames + * @return : decompressed size of the frames contained */ +unsigned long long ZSTD_findDecompressedSize(const void* src, size_t srcSize) +{ + unsigned long long totalDstSize = 0; + + while (srcSize >= ZSTD_startingInputLength(ZSTD_f_zstd1)) { + U32 const magicNumber = MEM_readLE32(src); + + if ((magicNumber & ZSTD_MAGIC_SKIPPABLE_MASK) == ZSTD_MAGIC_SKIPPABLE_START) { + size_t const skippableSize = readSkippableFrameSize(src, srcSize); + if (ZSTD_isError(skippableSize)) { + return ZSTD_CONTENTSIZE_ERROR; + } + assert(skippableSize <= srcSize); + + src = (const BYTE *)src + skippableSize; + srcSize -= skippableSize; + continue; + } + + { unsigned long long const ret = ZSTD_getFrameContentSize(src, srcSize); + if (ret >= ZSTD_CONTENTSIZE_ERROR) return ret; + + /* check for overflow */ + if (totalDstSize + ret < totalDstSize) return ZSTD_CONTENTSIZE_ERROR; + totalDstSize += ret; + } + { size_t const frameSrcSize = ZSTD_findFrameCompressedSize(src, srcSize); + if (ZSTD_isError(frameSrcSize)) { + return ZSTD_CONTENTSIZE_ERROR; + } + + src = (const BYTE *)src + frameSrcSize; + srcSize -= frameSrcSize; + } + } /* while (srcSize >= ZSTD_frameHeaderSize_prefix) */ + + if (srcSize) return ZSTD_CONTENTSIZE_ERROR; + + return totalDstSize; +} + +/** ZSTD_getDecompressedSize() : + * compatible with legacy mode + * @return : decompressed size if known, 0 otherwise + note : 0 can mean any of the following : + - frame content is empty + - decompressed size field is not present in frame header + - frame header unknown / not supported + - frame header not complete (`srcSize` too small) */ +unsigned long long ZSTD_getDecompressedSize(const void* src, size_t srcSize) +{ + unsigned long long const ret = ZSTD_getFrameContentSize(src, srcSize); + ZSTD_STATIC_ASSERT(ZSTD_CONTENTSIZE_ERROR < ZSTD_CONTENTSIZE_UNKNOWN); + return (ret >= ZSTD_CONTENTSIZE_ERROR) ? 0 : ret; +} + + +/** ZSTD_decodeFrameHeader() : + * `headerSize` must be the size provided by ZSTD_frameHeaderSize(). + * If multiple DDict references are enabled, also will choose the correct DDict to use. + * @return : 0 if success, or an error code, which can be tested using ZSTD_isError() */ +static size_t ZSTD_decodeFrameHeader(ZSTD_DCtx* dctx, const void* src, size_t headerSize) +{ + size_t const result = ZSTD_getFrameHeader_advanced(&(dctx->fParams), src, headerSize, dctx->format); + if (ZSTD_isError(result)) return result; /* invalid header */ + RETURN_ERROR_IF(result>0, srcSize_wrong, "headerSize too small"); + + /* Reference DDict requested by frame if dctx references multiple ddicts */ + if (dctx->refMultipleDDicts == ZSTD_rmd_refMultipleDDicts && dctx->ddictSet) { + ZSTD_DCtx_selectFrameDDict(dctx); + } + +#ifndef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION + /* Skip the dictID check in fuzzing mode, because it makes the search + * harder. + */ + RETURN_ERROR_IF(dctx->fParams.dictID && (dctx->dictID != dctx->fParams.dictID), + dictionary_wrong, ""); +#endif + dctx->validateChecksum = (dctx->fParams.checksumFlag && !dctx->forceIgnoreChecksum) ? 1 : 0; + if (dctx->validateChecksum) XXH64_reset(&dctx->xxhState, 0); + dctx->processedCSize += headerSize; + return 0; +} + +static ZSTD_frameSizeInfo ZSTD_errorFrameSizeInfo(size_t ret) +{ + ZSTD_frameSizeInfo frameSizeInfo; + frameSizeInfo.compressedSize = ret; + frameSizeInfo.decompressedBound = ZSTD_CONTENTSIZE_ERROR; + return frameSizeInfo; +} + +static ZSTD_frameSizeInfo ZSTD_findFrameSizeInfo(const void* src, size_t srcSize) +{ + ZSTD_frameSizeInfo frameSizeInfo; + ZSTD_memset(&frameSizeInfo, 0, sizeof(ZSTD_frameSizeInfo)); + +#if defined(ZSTD_LEGACY_SUPPORT) && (ZSTD_LEGACY_SUPPORT >= 1) + if (ZSTD_isLegacy(src, srcSize)) + return ZSTD_findFrameSizeInfoLegacy(src, srcSize); +#endif + + if ((srcSize >= ZSTD_SKIPPABLEHEADERSIZE) + && (MEM_readLE32(src) & ZSTD_MAGIC_SKIPPABLE_MASK) == ZSTD_MAGIC_SKIPPABLE_START) { + frameSizeInfo.compressedSize = readSkippableFrameSize(src, srcSize); + assert(ZSTD_isError(frameSizeInfo.compressedSize) || + frameSizeInfo.compressedSize <= srcSize); + return frameSizeInfo; + } else { + const BYTE* ip = (const BYTE*)src; + const BYTE* const ipstart = ip; + size_t remainingSize = srcSize; + size_t nbBlocks = 0; + ZSTD_frameHeader zfh; + + /* Extract Frame Header */ + { size_t const ret = ZSTD_getFrameHeader(&zfh, src, srcSize); + if (ZSTD_isError(ret)) + return ZSTD_errorFrameSizeInfo(ret); + if (ret > 0) + return ZSTD_errorFrameSizeInfo(ERROR(srcSize_wrong)); + } + + ip += zfh.headerSize; + remainingSize -= zfh.headerSize; + + /* Iterate over each block */ + while (1) { + blockProperties_t blockProperties; + size_t const cBlockSize = ZSTD_getcBlockSize(ip, remainingSize, &blockProperties); + if (ZSTD_isError(cBlockSize)) + return ZSTD_errorFrameSizeInfo(cBlockSize); + + if (ZSTD_blockHeaderSize + cBlockSize > remainingSize) + return ZSTD_errorFrameSizeInfo(ERROR(srcSize_wrong)); + + ip += ZSTD_blockHeaderSize + cBlockSize; + remainingSize -= ZSTD_blockHeaderSize + cBlockSize; + nbBlocks++; + + if (blockProperties.lastBlock) break; + } + + /* Final frame content checksum */ + if (zfh.checksumFlag) { + if (remainingSize < 4) + return ZSTD_errorFrameSizeInfo(ERROR(srcSize_wrong)); + ip += 4; + } + + frameSizeInfo.compressedSize = (size_t)(ip - ipstart); + frameSizeInfo.decompressedBound = (zfh.frameContentSize != ZSTD_CONTENTSIZE_UNKNOWN) + ? zfh.frameContentSize + : nbBlocks * zfh.blockSizeMax; + return frameSizeInfo; + } +} + +/** ZSTD_findFrameCompressedSize() : + * compatible with legacy mode + * `src` must point to the start of a ZSTD frame, ZSTD legacy frame, or skippable frame + * `srcSize` must be at least as large as the frame contained + * @return : the compressed size of the frame starting at `src` */ +size_t ZSTD_findFrameCompressedSize(const void *src, size_t srcSize) +{ + ZSTD_frameSizeInfo const frameSizeInfo = ZSTD_findFrameSizeInfo(src, srcSize); + return frameSizeInfo.compressedSize; +} + +/** ZSTD_decompressBound() : + * compatible with legacy mode + * `src` must point to the start of a ZSTD frame or a skippeable frame + * `srcSize` must be at least as large as the frame contained + * @return : the maximum decompressed size of the compressed source + */ +unsigned long long ZSTD_decompressBound(const void* src, size_t srcSize) +{ + unsigned long long bound = 0; + /* Iterate over each frame */ + while (srcSize > 0) { + ZSTD_frameSizeInfo const frameSizeInfo = ZSTD_findFrameSizeInfo(src, srcSize); + size_t const compressedSize = frameSizeInfo.compressedSize; + unsigned long long const decompressedBound = frameSizeInfo.decompressedBound; + if (ZSTD_isError(compressedSize) || decompressedBound == ZSTD_CONTENTSIZE_ERROR) + return ZSTD_CONTENTSIZE_ERROR; + assert(srcSize >= compressedSize); + src = (const BYTE*)src + compressedSize; + srcSize -= compressedSize; + bound += decompressedBound; + } + return bound; +} + + +/*-************************************************************* + * Frame decoding + ***************************************************************/ + +/** ZSTD_insertBlock() : + * insert `src` block into `dctx` history. Useful to track uncompressed blocks. */ +size_t ZSTD_insertBlock(ZSTD_DCtx* dctx, const void* blockStart, size_t blockSize) +{ + DEBUGLOG(5, "ZSTD_insertBlock: %u bytes", (unsigned)blockSize); + ZSTD_checkContinuity(dctx, blockStart, blockSize); + dctx->previousDstEnd = (const char*)blockStart + blockSize; + return blockSize; +} + + +static size_t ZSTD_copyRawBlock(void* dst, size_t dstCapacity, + const void* src, size_t srcSize) +{ + DEBUGLOG(5, "ZSTD_copyRawBlock"); + RETURN_ERROR_IF(srcSize > dstCapacity, dstSize_tooSmall, ""); + if (dst == NULL) { + if (srcSize == 0) return 0; + RETURN_ERROR(dstBuffer_null, ""); + } + ZSTD_memcpy(dst, src, srcSize); + return srcSize; +} + +static size_t ZSTD_setRleBlock(void* dst, size_t dstCapacity, + BYTE b, + size_t regenSize) +{ + RETURN_ERROR_IF(regenSize > dstCapacity, dstSize_tooSmall, ""); + if (dst == NULL) { + if (regenSize == 0) return 0; + RETURN_ERROR(dstBuffer_null, ""); + } + ZSTD_memset(dst, b, regenSize); + return regenSize; +} + +static void ZSTD_DCtx_trace_end(ZSTD_DCtx const* dctx, U64 uncompressedSize, U64 compressedSize, unsigned streaming) +{ +#if ZSTD_TRACE + if (dctx->traceCtx && ZSTD_trace_decompress_end != NULL) { + ZSTD_Trace trace; + ZSTD_memset(&trace, 0, sizeof(trace)); + trace.version = ZSTD_VERSION_NUMBER; + trace.streaming = streaming; + if (dctx->ddict) { + trace.dictionaryID = ZSTD_getDictID_fromDDict(dctx->ddict); + trace.dictionarySize = ZSTD_DDict_dictSize(dctx->ddict); + trace.dictionaryIsCold = dctx->ddictIsCold; + } + trace.uncompressedSize = (size_t)uncompressedSize; + trace.compressedSize = (size_t)compressedSize; + trace.dctx = dctx; + ZSTD_trace_decompress_end(dctx->traceCtx, &trace); + } +#else + (void)dctx; + (void)uncompressedSize; + (void)compressedSize; + (void)streaming; +#endif +} + + +/*! ZSTD_decompressFrame() : + * @dctx must be properly initialized + * will update *srcPtr and *srcSizePtr, + * to make *srcPtr progress by one frame. */ +static size_t ZSTD_decompressFrame(ZSTD_DCtx* dctx, + void* dst, size_t dstCapacity, + const void** srcPtr, size_t *srcSizePtr) +{ + const BYTE* const istart = (const BYTE*)(*srcPtr); + const BYTE* ip = istart; + BYTE* const ostart = (BYTE*)dst; + BYTE* const oend = dstCapacity != 0 ? ostart + dstCapacity : ostart; + BYTE* op = ostart; + size_t remainingSrcSize = *srcSizePtr; + + DEBUGLOG(4, "ZSTD_decompressFrame (srcSize:%i)", (int)*srcSizePtr); + + /* check */ + RETURN_ERROR_IF( + remainingSrcSize < ZSTD_FRAMEHEADERSIZE_MIN(dctx->format)+ZSTD_blockHeaderSize, + srcSize_wrong, ""); + + /* Frame Header */ + { size_t const frameHeaderSize = ZSTD_frameHeaderSize_internal( + ip, ZSTD_FRAMEHEADERSIZE_PREFIX(dctx->format), dctx->format); + if (ZSTD_isError(frameHeaderSize)) return frameHeaderSize; + RETURN_ERROR_IF(remainingSrcSize < frameHeaderSize+ZSTD_blockHeaderSize, + srcSize_wrong, ""); + FORWARD_IF_ERROR( ZSTD_decodeFrameHeader(dctx, ip, frameHeaderSize) , ""); + ip += frameHeaderSize; remainingSrcSize -= frameHeaderSize; + } + + /* Loop on each block */ + while (1) { + size_t decodedSize; + blockProperties_t blockProperties; + size_t const cBlockSize = ZSTD_getcBlockSize(ip, remainingSrcSize, &blockProperties); + if (ZSTD_isError(cBlockSize)) return cBlockSize; + + ip += ZSTD_blockHeaderSize; + remainingSrcSize -= ZSTD_blockHeaderSize; + RETURN_ERROR_IF(cBlockSize > remainingSrcSize, srcSize_wrong, ""); + + switch(blockProperties.blockType) + { + case bt_compressed: + decodedSize = ZSTD_decompressBlock_internal(dctx, op, (size_t)(oend-op), ip, cBlockSize, /* frame */ 1); + break; + case bt_raw : + decodedSize = ZSTD_copyRawBlock(op, (size_t)(oend-op), ip, cBlockSize); + break; + case bt_rle : + decodedSize = ZSTD_setRleBlock(op, (size_t)(oend-op), *ip, blockProperties.origSize); + break; + case bt_reserved : + default: + RETURN_ERROR(corruption_detected, "invalid block type"); + } + + if (ZSTD_isError(decodedSize)) return decodedSize; + if (dctx->validateChecksum) + XXH64_update(&dctx->xxhState, op, decodedSize); + if (decodedSize != 0) + op += decodedSize; + assert(ip != NULL); + ip += cBlockSize; + remainingSrcSize -= cBlockSize; + if (blockProperties.lastBlock) break; + } + + if (dctx->fParams.frameContentSize != ZSTD_CONTENTSIZE_UNKNOWN) { + RETURN_ERROR_IF((U64)(op-ostart) != dctx->fParams.frameContentSize, + corruption_detected, ""); + } + if (dctx->fParams.checksumFlag) { /* Frame content checksum verification */ + RETURN_ERROR_IF(remainingSrcSize<4, checksum_wrong, ""); + if (!dctx->forceIgnoreChecksum) { + U32 const checkCalc = (U32)XXH64_digest(&dctx->xxhState); + U32 checkRead; + checkRead = MEM_readLE32(ip); + RETURN_ERROR_IF(checkRead != checkCalc, checksum_wrong, ""); + } + ip += 4; + remainingSrcSize -= 4; + } + ZSTD_DCtx_trace_end(dctx, (U64)(op-ostart), (U64)(ip-istart), /* streaming */ 0); + /* Allow caller to get size read */ + *srcPtr = ip; + *srcSizePtr = remainingSrcSize; + return (size_t)(op-ostart); +} + +static size_t ZSTD_decompressMultiFrame(ZSTD_DCtx* dctx, + void* dst, size_t dstCapacity, + const void* src, size_t srcSize, + const void* dict, size_t dictSize, + const ZSTD_DDict* ddict) +{ + void* const dststart = dst; + int moreThan1Frame = 0; + + DEBUGLOG(5, "ZSTD_decompressMultiFrame"); + assert(dict==NULL || ddict==NULL); /* either dict or ddict set, not both */ + + if (ddict) { + dict = ZSTD_DDict_dictContent(ddict); + dictSize = ZSTD_DDict_dictSize(ddict); + } + + while (srcSize >= ZSTD_startingInputLength(dctx->format)) { + +#if defined(ZSTD_LEGACY_SUPPORT) && (ZSTD_LEGACY_SUPPORT >= 1) + if (ZSTD_isLegacy(src, srcSize)) { + size_t decodedSize; + size_t const frameSize = ZSTD_findFrameCompressedSizeLegacy(src, srcSize); + if (ZSTD_isError(frameSize)) return frameSize; + RETURN_ERROR_IF(dctx->staticSize, memory_allocation, + "legacy support is not compatible with static dctx"); + + decodedSize = ZSTD_decompressLegacy(dst, dstCapacity, src, frameSize, dict, dictSize); + if (ZSTD_isError(decodedSize)) return decodedSize; + + assert(decodedSize <= dstCapacity); + dst = (BYTE*)dst + decodedSize; + dstCapacity -= decodedSize; + + src = (const BYTE*)src + frameSize; + srcSize -= frameSize; + + continue; + } +#endif + + { U32 const magicNumber = MEM_readLE32(src); + DEBUGLOG(4, "reading magic number %08X (expecting %08X)", + (unsigned)magicNumber, ZSTD_MAGICNUMBER); + if ((magicNumber & ZSTD_MAGIC_SKIPPABLE_MASK) == ZSTD_MAGIC_SKIPPABLE_START) { + size_t const skippableSize = readSkippableFrameSize(src, srcSize); + FORWARD_IF_ERROR(skippableSize, "readSkippableFrameSize failed"); + assert(skippableSize <= srcSize); + + src = (const BYTE *)src + skippableSize; + srcSize -= skippableSize; + continue; + } } + + if (ddict) { + /* we were called from ZSTD_decompress_usingDDict */ + FORWARD_IF_ERROR(ZSTD_decompressBegin_usingDDict(dctx, ddict), ""); + } else { + /* this will initialize correctly with no dict if dict == NULL, so + * use this in all cases but ddict */ + FORWARD_IF_ERROR(ZSTD_decompressBegin_usingDict(dctx, dict, dictSize), ""); + } + ZSTD_checkContinuity(dctx, dst, dstCapacity); + + { const size_t res = ZSTD_decompressFrame(dctx, dst, dstCapacity, + &src, &srcSize); + RETURN_ERROR_IF( + (ZSTD_getErrorCode(res) == ZSTD_error_prefix_unknown) + && (moreThan1Frame==1), + srcSize_wrong, + "At least one frame successfully completed, " + "but following bytes are garbage: " + "it's more likely to be a srcSize error, " + "specifying more input bytes than size of frame(s). " + "Note: one could be unlucky, it might be a corruption error instead, " + "happening right at the place where we expect zstd magic bytes. " + "But this is _much_ less likely than a srcSize field error."); + if (ZSTD_isError(res)) return res; + assert(res <= dstCapacity); + if (res != 0) + dst = (BYTE*)dst + res; + dstCapacity -= res; + } + moreThan1Frame = 1; + } /* while (srcSize >= ZSTD_frameHeaderSize_prefix) */ + + RETURN_ERROR_IF(srcSize, srcSize_wrong, "input not entirely consumed"); + + return (size_t)((BYTE*)dst - (BYTE*)dststart); +} + +size_t ZSTD_decompress_usingDict(ZSTD_DCtx* dctx, + void* dst, size_t dstCapacity, + const void* src, size_t srcSize, + const void* dict, size_t dictSize) +{ + return ZSTD_decompressMultiFrame(dctx, dst, dstCapacity, src, srcSize, dict, dictSize, NULL); +} + + +static ZSTD_DDict const* ZSTD_getDDict(ZSTD_DCtx* dctx) +{ + switch (dctx->dictUses) { + default: + assert(0 /* Impossible */); + /* fall-through */ + case ZSTD_dont_use: + ZSTD_clearDict(dctx); + return NULL; + case ZSTD_use_indefinitely: + return dctx->ddict; + case ZSTD_use_once: + dctx->dictUses = ZSTD_dont_use; + return dctx->ddict; + } +} + +size_t ZSTD_decompressDCtx(ZSTD_DCtx* dctx, void* dst, size_t dstCapacity, const void* src, size_t srcSize) +{ + return ZSTD_decompress_usingDDict(dctx, dst, dstCapacity, src, srcSize, ZSTD_getDDict(dctx)); +} + + +size_t ZSTD_decompress(void* dst, size_t dstCapacity, const void* src, size_t srcSize) +{ +#if defined(ZSTD_HEAPMODE) && (ZSTD_HEAPMODE>=1) + size_t regenSize; + ZSTD_DCtx* const dctx = ZSTD_createDCtx(); + RETURN_ERROR_IF(dctx==NULL, memory_allocation, "NULL pointer!"); + regenSize = ZSTD_decompressDCtx(dctx, dst, dstCapacity, src, srcSize); + ZSTD_freeDCtx(dctx); + return regenSize; +#else /* stack mode */ + ZSTD_DCtx dctx; + ZSTD_initDCtx_internal(&dctx); + return ZSTD_decompressDCtx(&dctx, dst, dstCapacity, src, srcSize); +#endif +} + + +/*-************************************** +* Advanced Streaming Decompression API +* Bufferless and synchronous +****************************************/ +size_t ZSTD_nextSrcSizeToDecompress(ZSTD_DCtx* dctx) { return dctx->expected; } + +/** + * Similar to ZSTD_nextSrcSizeToDecompress(), but when when a block input can be streamed, + * we allow taking a partial block as the input. Currently only raw uncompressed blocks can + * be streamed. + * + * For blocks that can be streamed, this allows us to reduce the latency until we produce + * output, and avoid copying the input. + * + * @param inputSize - The total amount of input that the caller currently has. + */ +static size_t ZSTD_nextSrcSizeToDecompressWithInputSize(ZSTD_DCtx* dctx, size_t inputSize) { + if (!(dctx->stage == ZSTDds_decompressBlock || dctx->stage == ZSTDds_decompressLastBlock)) + return dctx->expected; + if (dctx->bType != bt_raw) + return dctx->expected; + return MIN(MAX(inputSize, 1), dctx->expected); +} + +ZSTD_nextInputType_e ZSTD_nextInputType(ZSTD_DCtx* dctx) { + switch(dctx->stage) + { + default: /* should not happen */ + assert(0); + case ZSTDds_getFrameHeaderSize: + case ZSTDds_decodeFrameHeader: + return ZSTDnit_frameHeader; + case ZSTDds_decodeBlockHeader: + return ZSTDnit_blockHeader; + case ZSTDds_decompressBlock: + return ZSTDnit_block; + case ZSTDds_decompressLastBlock: + return ZSTDnit_lastBlock; + case ZSTDds_checkChecksum: + return ZSTDnit_checksum; + case ZSTDds_decodeSkippableHeader: + case ZSTDds_skipFrame: + return ZSTDnit_skippableFrame; + } +} + +static int ZSTD_isSkipFrame(ZSTD_DCtx* dctx) { return dctx->stage == ZSTDds_skipFrame; } + +/** ZSTD_decompressContinue() : + * srcSize : must be the exact nb of bytes expected (see ZSTD_nextSrcSizeToDecompress()) + * @return : nb of bytes generated into `dst` (necessarily <= `dstCapacity) + * or an error code, which can be tested using ZSTD_isError() */ +size_t ZSTD_decompressContinue(ZSTD_DCtx* dctx, void* dst, size_t dstCapacity, const void* src, size_t srcSize) +{ + DEBUGLOG(5, "ZSTD_decompressContinue (srcSize:%u)", (unsigned)srcSize); + /* Sanity check */ + RETURN_ERROR_IF(srcSize != ZSTD_nextSrcSizeToDecompressWithInputSize(dctx, srcSize), srcSize_wrong, "not allowed"); + ZSTD_checkContinuity(dctx, dst, dstCapacity); + + dctx->processedCSize += srcSize; + + switch (dctx->stage) + { + case ZSTDds_getFrameHeaderSize : + assert(src != NULL); + if (dctx->format == ZSTD_f_zstd1) { /* allows header */ + assert(srcSize >= ZSTD_FRAMEIDSIZE); /* to read skippable magic number */ + if ((MEM_readLE32(src) & ZSTD_MAGIC_SKIPPABLE_MASK) == ZSTD_MAGIC_SKIPPABLE_START) { /* skippable frame */ + ZSTD_memcpy(dctx->headerBuffer, src, srcSize); + dctx->expected = ZSTD_SKIPPABLEHEADERSIZE - srcSize; /* remaining to load to get full skippable frame header */ + dctx->stage = ZSTDds_decodeSkippableHeader; + return 0; + } } + dctx->headerSize = ZSTD_frameHeaderSize_internal(src, srcSize, dctx->format); + if (ZSTD_isError(dctx->headerSize)) return dctx->headerSize; + ZSTD_memcpy(dctx->headerBuffer, src, srcSize); + dctx->expected = dctx->headerSize - srcSize; + dctx->stage = ZSTDds_decodeFrameHeader; + return 0; + + case ZSTDds_decodeFrameHeader: + assert(src != NULL); + ZSTD_memcpy(dctx->headerBuffer + (dctx->headerSize - srcSize), src, srcSize); + FORWARD_IF_ERROR(ZSTD_decodeFrameHeader(dctx, dctx->headerBuffer, dctx->headerSize), ""); + dctx->expected = ZSTD_blockHeaderSize; + dctx->stage = ZSTDds_decodeBlockHeader; + return 0; + + case ZSTDds_decodeBlockHeader: + { blockProperties_t bp; + size_t const cBlockSize = ZSTD_getcBlockSize(src, ZSTD_blockHeaderSize, &bp); + if (ZSTD_isError(cBlockSize)) return cBlockSize; + RETURN_ERROR_IF(cBlockSize > dctx->fParams.blockSizeMax, corruption_detected, "Block Size Exceeds Maximum"); + dctx->expected = cBlockSize; + dctx->bType = bp.blockType; + dctx->rleSize = bp.origSize; + if (cBlockSize) { + dctx->stage = bp.lastBlock ? ZSTDds_decompressLastBlock : ZSTDds_decompressBlock; + return 0; + } + /* empty block */ + if (bp.lastBlock) { + if (dctx->fParams.checksumFlag) { + dctx->expected = 4; + dctx->stage = ZSTDds_checkChecksum; + } else { + dctx->expected = 0; /* end of frame */ + dctx->stage = ZSTDds_getFrameHeaderSize; + } + } else { + dctx->expected = ZSTD_blockHeaderSize; /* jump to next header */ + dctx->stage = ZSTDds_decodeBlockHeader; + } + return 0; + } + + case ZSTDds_decompressLastBlock: + case ZSTDds_decompressBlock: + DEBUGLOG(5, "ZSTD_decompressContinue: case ZSTDds_decompressBlock"); + { size_t rSize; + switch(dctx->bType) + { + case bt_compressed: + DEBUGLOG(5, "ZSTD_decompressContinue: case bt_compressed"); + rSize = ZSTD_decompressBlock_internal(dctx, dst, dstCapacity, src, srcSize, /* frame */ 1); + dctx->expected = 0; /* Streaming not supported */ + break; + case bt_raw : + assert(srcSize <= dctx->expected); + rSize = ZSTD_copyRawBlock(dst, dstCapacity, src, srcSize); + FORWARD_IF_ERROR(rSize, "ZSTD_copyRawBlock failed"); + assert(rSize == srcSize); + dctx->expected -= rSize; + break; + case bt_rle : + rSize = ZSTD_setRleBlock(dst, dstCapacity, *(const BYTE*)src, dctx->rleSize); + dctx->expected = 0; /* Streaming not supported */ + break; + case bt_reserved : /* should never happen */ + default: + RETURN_ERROR(corruption_detected, "invalid block type"); + } + FORWARD_IF_ERROR(rSize, ""); + RETURN_ERROR_IF(rSize > dctx->fParams.blockSizeMax, corruption_detected, "Decompressed Block Size Exceeds Maximum"); + DEBUGLOG(5, "ZSTD_decompressContinue: decoded size from block : %u", (unsigned)rSize); + dctx->decodedSize += rSize; + if (dctx->validateChecksum) XXH64_update(&dctx->xxhState, dst, rSize); + dctx->previousDstEnd = (char*)dst + rSize; + + /* Stay on the same stage until we are finished streaming the block. */ + if (dctx->expected > 0) { + return rSize; + } + + if (dctx->stage == ZSTDds_decompressLastBlock) { /* end of frame */ + DEBUGLOG(4, "ZSTD_decompressContinue: decoded size from frame : %u", (unsigned)dctx->decodedSize); + RETURN_ERROR_IF( + dctx->fParams.frameContentSize != ZSTD_CONTENTSIZE_UNKNOWN + && dctx->decodedSize != dctx->fParams.frameContentSize, + corruption_detected, ""); + if (dctx->fParams.checksumFlag) { /* another round for frame checksum */ + dctx->expected = 4; + dctx->stage = ZSTDds_checkChecksum; + } else { + ZSTD_DCtx_trace_end(dctx, dctx->decodedSize, dctx->processedCSize, /* streaming */ 1); + dctx->expected = 0; /* ends here */ + dctx->stage = ZSTDds_getFrameHeaderSize; + } + } else { + dctx->stage = ZSTDds_decodeBlockHeader; + dctx->expected = ZSTD_blockHeaderSize; + } + return rSize; + } + + case ZSTDds_checkChecksum: + assert(srcSize == 4); /* guaranteed by dctx->expected */ + { + if (dctx->validateChecksum) { + U32 const h32 = (U32)XXH64_digest(&dctx->xxhState); + U32 const check32 = MEM_readLE32(src); + DEBUGLOG(4, "ZSTD_decompressContinue: checksum : calculated %08X :: %08X read", (unsigned)h32, (unsigned)check32); + RETURN_ERROR_IF(check32 != h32, checksum_wrong, ""); + } + ZSTD_DCtx_trace_end(dctx, dctx->decodedSize, dctx->processedCSize, /* streaming */ 1); + dctx->expected = 0; + dctx->stage = ZSTDds_getFrameHeaderSize; + return 0; + } + + case ZSTDds_decodeSkippableHeader: + assert(src != NULL); + assert(srcSize <= ZSTD_SKIPPABLEHEADERSIZE); + ZSTD_memcpy(dctx->headerBuffer + (ZSTD_SKIPPABLEHEADERSIZE - srcSize), src, srcSize); /* complete skippable header */ + dctx->expected = MEM_readLE32(dctx->headerBuffer + ZSTD_FRAMEIDSIZE); /* note : dctx->expected can grow seriously large, beyond local buffer size */ + dctx->stage = ZSTDds_skipFrame; + return 0; + + case ZSTDds_skipFrame: + dctx->expected = 0; + dctx->stage = ZSTDds_getFrameHeaderSize; + return 0; + + default: + assert(0); /* impossible */ + RETURN_ERROR(GENERIC, "impossible to reach"); /* some compiler require default to do something */ + } +} + + +static size_t ZSTD_refDictContent(ZSTD_DCtx* dctx, const void* dict, size_t dictSize) +{ + dctx->dictEnd = dctx->previousDstEnd; + dctx->virtualStart = (const char*)dict - ((const char*)(dctx->previousDstEnd) - (const char*)(dctx->prefixStart)); + dctx->prefixStart = dict; + dctx->previousDstEnd = (const char*)dict + dictSize; +#ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION + dctx->dictContentBeginForFuzzing = dctx->prefixStart; + dctx->dictContentEndForFuzzing = dctx->previousDstEnd; +#endif + return 0; +} + +/*! ZSTD_loadDEntropy() : + * dict : must point at beginning of a valid zstd dictionary. + * @return : size of entropy tables read */ +size_t +ZSTD_loadDEntropy(ZSTD_entropyDTables_t* entropy, + const void* const dict, size_t const dictSize) +{ + const BYTE* dictPtr = (const BYTE*)dict; + const BYTE* const dictEnd = dictPtr + dictSize; + + RETURN_ERROR_IF(dictSize <= 8, dictionary_corrupted, "dict is too small"); + assert(MEM_readLE32(dict) == ZSTD_MAGIC_DICTIONARY); /* dict must be valid */ + dictPtr += 8; /* skip header = magic + dictID */ + + ZSTD_STATIC_ASSERT(offsetof(ZSTD_entropyDTables_t, OFTable) == offsetof(ZSTD_entropyDTables_t, LLTable) + sizeof(entropy->LLTable)); + ZSTD_STATIC_ASSERT(offsetof(ZSTD_entropyDTables_t, MLTable) == offsetof(ZSTD_entropyDTables_t, OFTable) + sizeof(entropy->OFTable)); + ZSTD_STATIC_ASSERT(sizeof(entropy->LLTable) + sizeof(entropy->OFTable) + sizeof(entropy->MLTable) >= HUF_DECOMPRESS_WORKSPACE_SIZE); + { void* const workspace = &entropy->LLTable; /* use fse tables as temporary workspace; implies fse tables are grouped together */ + size_t const workspaceSize = sizeof(entropy->LLTable) + sizeof(entropy->OFTable) + sizeof(entropy->MLTable); +#ifdef HUF_FORCE_DECOMPRESS_X1 + /* in minimal huffman, we always use X1 variants */ + size_t const hSize = HUF_readDTableX1_wksp(entropy->hufTable, + dictPtr, dictEnd - dictPtr, + workspace, workspaceSize); +#else + size_t const hSize = HUF_readDTableX2_wksp(entropy->hufTable, + dictPtr, (size_t)(dictEnd - dictPtr), + workspace, workspaceSize); +#endif + RETURN_ERROR_IF(HUF_isError(hSize), dictionary_corrupted, ""); + dictPtr += hSize; + } + + { short offcodeNCount[MaxOff+1]; + unsigned offcodeMaxValue = MaxOff, offcodeLog; + size_t const offcodeHeaderSize = FSE_readNCount(offcodeNCount, &offcodeMaxValue, &offcodeLog, dictPtr, (size_t)(dictEnd-dictPtr)); + RETURN_ERROR_IF(FSE_isError(offcodeHeaderSize), dictionary_corrupted, ""); + RETURN_ERROR_IF(offcodeMaxValue > MaxOff, dictionary_corrupted, ""); + RETURN_ERROR_IF(offcodeLog > OffFSELog, dictionary_corrupted, ""); + ZSTD_buildFSETable( entropy->OFTable, + offcodeNCount, offcodeMaxValue, + OF_base, OF_bits, + offcodeLog, + entropy->workspace, sizeof(entropy->workspace), + /* bmi2 */0); + dictPtr += offcodeHeaderSize; + } + + { short matchlengthNCount[MaxML+1]; + unsigned matchlengthMaxValue = MaxML, matchlengthLog; + size_t const matchlengthHeaderSize = FSE_readNCount(matchlengthNCount, &matchlengthMaxValue, &matchlengthLog, dictPtr, (size_t)(dictEnd-dictPtr)); + RETURN_ERROR_IF(FSE_isError(matchlengthHeaderSize), dictionary_corrupted, ""); + RETURN_ERROR_IF(matchlengthMaxValue > MaxML, dictionary_corrupted, ""); + RETURN_ERROR_IF(matchlengthLog > MLFSELog, dictionary_corrupted, ""); + ZSTD_buildFSETable( entropy->MLTable, + matchlengthNCount, matchlengthMaxValue, + ML_base, ML_bits, + matchlengthLog, + entropy->workspace, sizeof(entropy->workspace), + /* bmi2 */ 0); + dictPtr += matchlengthHeaderSize; + } + + { short litlengthNCount[MaxLL+1]; + unsigned litlengthMaxValue = MaxLL, litlengthLog; + size_t const litlengthHeaderSize = FSE_readNCount(litlengthNCount, &litlengthMaxValue, &litlengthLog, dictPtr, (size_t)(dictEnd-dictPtr)); + RETURN_ERROR_IF(FSE_isError(litlengthHeaderSize), dictionary_corrupted, ""); + RETURN_ERROR_IF(litlengthMaxValue > MaxLL, dictionary_corrupted, ""); + RETURN_ERROR_IF(litlengthLog > LLFSELog, dictionary_corrupted, ""); + ZSTD_buildFSETable( entropy->LLTable, + litlengthNCount, litlengthMaxValue, + LL_base, LL_bits, + litlengthLog, + entropy->workspace, sizeof(entropy->workspace), + /* bmi2 */ 0); + dictPtr += litlengthHeaderSize; + } + + RETURN_ERROR_IF(dictPtr+12 > dictEnd, dictionary_corrupted, ""); + { int i; + size_t const dictContentSize = (size_t)(dictEnd - (dictPtr+12)); + for (i=0; i<3; i++) { + U32 const rep = MEM_readLE32(dictPtr); dictPtr += 4; + RETURN_ERROR_IF(rep==0 || rep > dictContentSize, + dictionary_corrupted, ""); + entropy->rep[i] = rep; + } } + + return (size_t)(dictPtr - (const BYTE*)dict); +} + +static size_t ZSTD_decompress_insertDictionary(ZSTD_DCtx* dctx, const void* dict, size_t dictSize) +{ + if (dictSize < 8) return ZSTD_refDictContent(dctx, dict, dictSize); + { U32 const magic = MEM_readLE32(dict); + if (magic != ZSTD_MAGIC_DICTIONARY) { + return ZSTD_refDictContent(dctx, dict, dictSize); /* pure content mode */ + } } + dctx->dictID = MEM_readLE32((const char*)dict + ZSTD_FRAMEIDSIZE); + + /* load entropy tables */ + { size_t const eSize = ZSTD_loadDEntropy(&dctx->entropy, dict, dictSize); + RETURN_ERROR_IF(ZSTD_isError(eSize), dictionary_corrupted, ""); + dict = (const char*)dict + eSize; + dictSize -= eSize; + } + dctx->litEntropy = dctx->fseEntropy = 1; + + /* reference dictionary content */ + return ZSTD_refDictContent(dctx, dict, dictSize); +} + +size_t ZSTD_decompressBegin(ZSTD_DCtx* dctx) +{ + assert(dctx != NULL); +#if ZSTD_TRACE + dctx->traceCtx = (ZSTD_trace_decompress_begin != NULL) ? ZSTD_trace_decompress_begin(dctx) : 0; +#endif + dctx->expected = ZSTD_startingInputLength(dctx->format); /* dctx->format must be properly set */ + dctx->stage = ZSTDds_getFrameHeaderSize; + dctx->processedCSize = 0; + dctx->decodedSize = 0; + dctx->previousDstEnd = NULL; + dctx->prefixStart = NULL; + dctx->virtualStart = NULL; + dctx->dictEnd = NULL; + dctx->entropy.hufTable[0] = (HUF_DTable)((HufLog)*0x1000001); /* cover both little and big endian */ + dctx->litEntropy = dctx->fseEntropy = 0; + dctx->dictID = 0; + dctx->bType = bt_reserved; + ZSTD_STATIC_ASSERT(sizeof(dctx->entropy.rep) == sizeof(repStartValue)); + ZSTD_memcpy(dctx->entropy.rep, repStartValue, sizeof(repStartValue)); /* initial repcodes */ + dctx->LLTptr = dctx->entropy.LLTable; + dctx->MLTptr = dctx->entropy.MLTable; + dctx->OFTptr = dctx->entropy.OFTable; + dctx->HUFptr = dctx->entropy.hufTable; + return 0; +} + +size_t ZSTD_decompressBegin_usingDict(ZSTD_DCtx* dctx, const void* dict, size_t dictSize) +{ + FORWARD_IF_ERROR( ZSTD_decompressBegin(dctx) , ""); + if (dict && dictSize) + RETURN_ERROR_IF( + ZSTD_isError(ZSTD_decompress_insertDictionary(dctx, dict, dictSize)), + dictionary_corrupted, ""); + return 0; +} + + +/* ====== ZSTD_DDict ====== */ + +size_t ZSTD_decompressBegin_usingDDict(ZSTD_DCtx* dctx, const ZSTD_DDict* ddict) +{ + DEBUGLOG(4, "ZSTD_decompressBegin_usingDDict"); + assert(dctx != NULL); + if (ddict) { + const char* const dictStart = (const char*)ZSTD_DDict_dictContent(ddict); + size_t const dictSize = ZSTD_DDict_dictSize(ddict); + const void* const dictEnd = dictStart + dictSize; + dctx->ddictIsCold = (dctx->dictEnd != dictEnd); + DEBUGLOG(4, "DDict is %s", + dctx->ddictIsCold ? "~cold~" : "hot!"); + } + FORWARD_IF_ERROR( ZSTD_decompressBegin(dctx) , ""); + if (ddict) { /* NULL ddict is equivalent to no dictionary */ + ZSTD_copyDDictParameters(dctx, ddict); + } + return 0; +} + +/*! ZSTD_getDictID_fromDict() : + * Provides the dictID stored within dictionary. + * if @return == 0, the dictionary is not conformant with Zstandard specification. + * It can still be loaded, but as a content-only dictionary. */ +unsigned ZSTD_getDictID_fromDict(const void* dict, size_t dictSize) +{ + if (dictSize < 8) return 0; + if (MEM_readLE32(dict) != ZSTD_MAGIC_DICTIONARY) return 0; + return MEM_readLE32((const char*)dict + ZSTD_FRAMEIDSIZE); +} + +/*! ZSTD_getDictID_fromFrame() : + * Provides the dictID required to decompress frame stored within `src`. + * If @return == 0, the dictID could not be decoded. + * This could for one of the following reasons : + * - The frame does not require a dictionary (most common case). + * - The frame was built with dictID intentionally removed. + * Needed dictionary is a hidden information. + * Note : this use case also happens when using a non-conformant dictionary. + * - `srcSize` is too small, and as a result, frame header could not be decoded. + * Note : possible if `srcSize < ZSTD_FRAMEHEADERSIZE_MAX`. + * - This is not a Zstandard frame. + * When identifying the exact failure cause, it's possible to use + * ZSTD_getFrameHeader(), which will provide a more precise error code. */ +unsigned ZSTD_getDictID_fromFrame(const void* src, size_t srcSize) +{ + ZSTD_frameHeader zfp = { 0, 0, 0, ZSTD_frame, 0, 0, 0 }; + size_t const hError = ZSTD_getFrameHeader(&zfp, src, srcSize); + if (ZSTD_isError(hError)) return 0; + return zfp.dictID; +} + + +/*! ZSTD_decompress_usingDDict() : +* Decompression using a pre-digested Dictionary +* Use dictionary without significant overhead. */ +size_t ZSTD_decompress_usingDDict(ZSTD_DCtx* dctx, + void* dst, size_t dstCapacity, + const void* src, size_t srcSize, + const ZSTD_DDict* ddict) +{ + /* pass content and size in case legacy frames are encountered */ + return ZSTD_decompressMultiFrame(dctx, dst, dstCapacity, src, srcSize, + NULL, 0, + ddict); +} + + +/*===================================== +* Streaming decompression +*====================================*/ + +ZSTD_DStream* ZSTD_createDStream(void) +{ + DEBUGLOG(3, "ZSTD_createDStream"); + return ZSTD_createDStream_advanced(ZSTD_defaultCMem); +} + +ZSTD_DStream* ZSTD_initStaticDStream(void *workspace, size_t workspaceSize) +{ + return ZSTD_initStaticDCtx(workspace, workspaceSize); +} + +ZSTD_DStream* ZSTD_createDStream_advanced(ZSTD_customMem customMem) +{ + return ZSTD_createDCtx_advanced(customMem); +} + +size_t ZSTD_freeDStream(ZSTD_DStream* zds) +{ + return ZSTD_freeDCtx(zds); +} + + +/* *** Initialization *** */ + +size_t ZSTD_DStreamInSize(void) { return ZSTD_BLOCKSIZE_MAX + ZSTD_blockHeaderSize; } +size_t ZSTD_DStreamOutSize(void) { return ZSTD_BLOCKSIZE_MAX; } + +size_t ZSTD_DCtx_loadDictionary_advanced(ZSTD_DCtx* dctx, + const void* dict, size_t dictSize, + ZSTD_dictLoadMethod_e dictLoadMethod, + ZSTD_dictContentType_e dictContentType) +{ + RETURN_ERROR_IF(dctx->streamStage != zdss_init, stage_wrong, ""); + ZSTD_clearDict(dctx); + if (dict && dictSize != 0) { + dctx->ddictLocal = ZSTD_createDDict_advanced(dict, dictSize, dictLoadMethod, dictContentType, dctx->customMem); + RETURN_ERROR_IF(dctx->ddictLocal == NULL, memory_allocation, "NULL pointer!"); + dctx->ddict = dctx->ddictLocal; + dctx->dictUses = ZSTD_use_indefinitely; + } + return 0; +} + +size_t ZSTD_DCtx_loadDictionary_byReference(ZSTD_DCtx* dctx, const void* dict, size_t dictSize) +{ + return ZSTD_DCtx_loadDictionary_advanced(dctx, dict, dictSize, ZSTD_dlm_byRef, ZSTD_dct_auto); +} + +size_t ZSTD_DCtx_loadDictionary(ZSTD_DCtx* dctx, const void* dict, size_t dictSize) +{ + return ZSTD_DCtx_loadDictionary_advanced(dctx, dict, dictSize, ZSTD_dlm_byCopy, ZSTD_dct_auto); +} + +size_t ZSTD_DCtx_refPrefix_advanced(ZSTD_DCtx* dctx, const void* prefix, size_t prefixSize, ZSTD_dictContentType_e dictContentType) +{ + FORWARD_IF_ERROR(ZSTD_DCtx_loadDictionary_advanced(dctx, prefix, prefixSize, ZSTD_dlm_byRef, dictContentType), ""); + dctx->dictUses = ZSTD_use_once; + return 0; +} + +size_t ZSTD_DCtx_refPrefix(ZSTD_DCtx* dctx, const void* prefix, size_t prefixSize) +{ + return ZSTD_DCtx_refPrefix_advanced(dctx, prefix, prefixSize, ZSTD_dct_rawContent); +} + + +/* ZSTD_initDStream_usingDict() : + * return : expected size, aka ZSTD_startingInputLength(). + * this function cannot fail */ +size_t ZSTD_initDStream_usingDict(ZSTD_DStream* zds, const void* dict, size_t dictSize) +{ + DEBUGLOG(4, "ZSTD_initDStream_usingDict"); + FORWARD_IF_ERROR( ZSTD_DCtx_reset(zds, ZSTD_reset_session_only) , ""); + FORWARD_IF_ERROR( ZSTD_DCtx_loadDictionary(zds, dict, dictSize) , ""); + return ZSTD_startingInputLength(zds->format); +} + +/* note : this variant can't fail */ +size_t ZSTD_initDStream(ZSTD_DStream* zds) +{ + DEBUGLOG(4, "ZSTD_initDStream"); + return ZSTD_initDStream_usingDDict(zds, NULL); +} + +/* ZSTD_initDStream_usingDDict() : + * ddict will just be referenced, and must outlive decompression session + * this function cannot fail */ +size_t ZSTD_initDStream_usingDDict(ZSTD_DStream* dctx, const ZSTD_DDict* ddict) +{ + FORWARD_IF_ERROR( ZSTD_DCtx_reset(dctx, ZSTD_reset_session_only) , ""); + FORWARD_IF_ERROR( ZSTD_DCtx_refDDict(dctx, ddict) , ""); + return ZSTD_startingInputLength(dctx->format); +} + +/* ZSTD_resetDStream() : + * return : expected size, aka ZSTD_startingInputLength(). + * this function cannot fail */ +size_t ZSTD_resetDStream(ZSTD_DStream* dctx) +{ + FORWARD_IF_ERROR(ZSTD_DCtx_reset(dctx, ZSTD_reset_session_only), ""); + return ZSTD_startingInputLength(dctx->format); +} + + +size_t ZSTD_DCtx_refDDict(ZSTD_DCtx* dctx, const ZSTD_DDict* ddict) +{ + RETURN_ERROR_IF(dctx->streamStage != zdss_init, stage_wrong, ""); + ZSTD_clearDict(dctx); + if (ddict) { + dctx->ddict = ddict; + dctx->dictUses = ZSTD_use_indefinitely; + if (dctx->refMultipleDDicts == ZSTD_rmd_refMultipleDDicts) { + if (dctx->ddictSet == NULL) { + dctx->ddictSet = ZSTD_createDDictHashSet(dctx->customMem); + if (!dctx->ddictSet) { + RETURN_ERROR(memory_allocation, "Failed to allocate memory for hash set!"); + } + } + assert(!dctx->staticSize); /* Impossible: ddictSet cannot have been allocated if static dctx */ + FORWARD_IF_ERROR(ZSTD_DDictHashSet_addDDict(dctx->ddictSet, ddict, dctx->customMem), ""); + } + } + return 0; +} + +/* ZSTD_DCtx_setMaxWindowSize() : + * note : no direct equivalence in ZSTD_DCtx_setParameter, + * since this version sets windowSize, and the other sets windowLog */ +size_t ZSTD_DCtx_setMaxWindowSize(ZSTD_DCtx* dctx, size_t maxWindowSize) +{ + ZSTD_bounds const bounds = ZSTD_dParam_getBounds(ZSTD_d_windowLogMax); + size_t const min = (size_t)1 << bounds.lowerBound; + size_t const max = (size_t)1 << bounds.upperBound; + RETURN_ERROR_IF(dctx->streamStage != zdss_init, stage_wrong, ""); + RETURN_ERROR_IF(maxWindowSize < min, parameter_outOfBound, ""); + RETURN_ERROR_IF(maxWindowSize > max, parameter_outOfBound, ""); + dctx->maxWindowSize = maxWindowSize; + return 0; +} + +size_t ZSTD_DCtx_setFormat(ZSTD_DCtx* dctx, ZSTD_format_e format) +{ + return ZSTD_DCtx_setParameter(dctx, ZSTD_d_format, (int)format); +} + +ZSTD_bounds ZSTD_dParam_getBounds(ZSTD_dParameter dParam) +{ + ZSTD_bounds bounds = { 0, 0, 0 }; + switch(dParam) { + case ZSTD_d_windowLogMax: + bounds.lowerBound = ZSTD_WINDOWLOG_ABSOLUTEMIN; + bounds.upperBound = ZSTD_WINDOWLOG_MAX; + return bounds; + case ZSTD_d_format: + bounds.lowerBound = (int)ZSTD_f_zstd1; + bounds.upperBound = (int)ZSTD_f_zstd1_magicless; + ZSTD_STATIC_ASSERT(ZSTD_f_zstd1 < ZSTD_f_zstd1_magicless); + return bounds; + case ZSTD_d_stableOutBuffer: + bounds.lowerBound = (int)ZSTD_bm_buffered; + bounds.upperBound = (int)ZSTD_bm_stable; + return bounds; + case ZSTD_d_forceIgnoreChecksum: + bounds.lowerBound = (int)ZSTD_d_validateChecksum; + bounds.upperBound = (int)ZSTD_d_ignoreChecksum; + return bounds; + case ZSTD_d_refMultipleDDicts: + bounds.lowerBound = (int)ZSTD_rmd_refSingleDDict; + bounds.upperBound = (int)ZSTD_rmd_refMultipleDDicts; + return bounds; + default:; + } + bounds.error = ERROR(parameter_unsupported); + return bounds; +} + +/* ZSTD_dParam_withinBounds: + * @return 1 if value is within dParam bounds, + * 0 otherwise */ +static int ZSTD_dParam_withinBounds(ZSTD_dParameter dParam, int value) +{ + ZSTD_bounds const bounds = ZSTD_dParam_getBounds(dParam); + if (ZSTD_isError(bounds.error)) return 0; + if (value < bounds.lowerBound) return 0; + if (value > bounds.upperBound) return 0; + return 1; +} + +#define CHECK_DBOUNDS(p,v) { \ + RETURN_ERROR_IF(!ZSTD_dParam_withinBounds(p, v), parameter_outOfBound, ""); \ +} + +size_t ZSTD_DCtx_getParameter(ZSTD_DCtx* dctx, ZSTD_dParameter param, int* value) +{ + switch (param) { + case ZSTD_d_windowLogMax: + *value = (int)ZSTD_highbit32((U32)dctx->maxWindowSize); + return 0; + case ZSTD_d_format: + *value = (int)dctx->format; + return 0; + case ZSTD_d_stableOutBuffer: + *value = (int)dctx->outBufferMode; + return 0; + case ZSTD_d_forceIgnoreChecksum: + *value = (int)dctx->forceIgnoreChecksum; + return 0; + case ZSTD_d_refMultipleDDicts: + *value = (int)dctx->refMultipleDDicts; + return 0; + default:; + } + RETURN_ERROR(parameter_unsupported, ""); +} + +size_t ZSTD_DCtx_setParameter(ZSTD_DCtx* dctx, ZSTD_dParameter dParam, int value) +{ + RETURN_ERROR_IF(dctx->streamStage != zdss_init, stage_wrong, ""); + switch(dParam) { + case ZSTD_d_windowLogMax: + if (value == 0) value = ZSTD_WINDOWLOG_LIMIT_DEFAULT; + CHECK_DBOUNDS(ZSTD_d_windowLogMax, value); + dctx->maxWindowSize = ((size_t)1) << value; + return 0; + case ZSTD_d_format: + CHECK_DBOUNDS(ZSTD_d_format, value); + dctx->format = (ZSTD_format_e)value; + return 0; + case ZSTD_d_stableOutBuffer: + CHECK_DBOUNDS(ZSTD_d_stableOutBuffer, value); + dctx->outBufferMode = (ZSTD_bufferMode_e)value; + return 0; + case ZSTD_d_forceIgnoreChecksum: + CHECK_DBOUNDS(ZSTD_d_forceIgnoreChecksum, value); + dctx->forceIgnoreChecksum = (ZSTD_forceIgnoreChecksum_e)value; + return 0; + case ZSTD_d_refMultipleDDicts: + CHECK_DBOUNDS(ZSTD_d_refMultipleDDicts, value); + if (dctx->staticSize != 0) { + RETURN_ERROR(parameter_unsupported, "Static dctx does not support multiple DDicts!"); + } + dctx->refMultipleDDicts = (ZSTD_refMultipleDDicts_e)value; + return 0; + default:; + } + RETURN_ERROR(parameter_unsupported, ""); +} + +size_t ZSTD_DCtx_reset(ZSTD_DCtx* dctx, ZSTD_ResetDirective reset) +{ + if ( (reset == ZSTD_reset_session_only) + || (reset == ZSTD_reset_session_and_parameters) ) { + dctx->streamStage = zdss_init; + dctx->noForwardProgress = 0; + } + if ( (reset == ZSTD_reset_parameters) + || (reset == ZSTD_reset_session_and_parameters) ) { + RETURN_ERROR_IF(dctx->streamStage != zdss_init, stage_wrong, ""); + ZSTD_clearDict(dctx); + ZSTD_DCtx_resetParameters(dctx); + } + return 0; +} + + +size_t ZSTD_sizeof_DStream(const ZSTD_DStream* dctx) +{ + return ZSTD_sizeof_DCtx(dctx); +} + +size_t ZSTD_decodingBufferSize_min(unsigned long long windowSize, unsigned long long frameContentSize) +{ + size_t const blockSize = (size_t) MIN(windowSize, ZSTD_BLOCKSIZE_MAX); + unsigned long long const neededRBSize = windowSize + blockSize + (WILDCOPY_OVERLENGTH * 2); + unsigned long long const neededSize = MIN(frameContentSize, neededRBSize); + size_t const minRBSize = (size_t) neededSize; + RETURN_ERROR_IF((unsigned long long)minRBSize != neededSize, + frameParameter_windowTooLarge, ""); + return minRBSize; +} + +size_t ZSTD_estimateDStreamSize(size_t windowSize) +{ + size_t const blockSize = MIN(windowSize, ZSTD_BLOCKSIZE_MAX); + size_t const inBuffSize = blockSize; /* no block can be larger */ + size_t const outBuffSize = ZSTD_decodingBufferSize_min(windowSize, ZSTD_CONTENTSIZE_UNKNOWN); + return ZSTD_estimateDCtxSize() + inBuffSize + outBuffSize; +} + +size_t ZSTD_estimateDStreamSize_fromFrame(const void* src, size_t srcSize) +{ + U32 const windowSizeMax = 1U << ZSTD_WINDOWLOG_MAX; /* note : should be user-selectable, but requires an additional parameter (or a dctx) */ + ZSTD_frameHeader zfh; + size_t const err = ZSTD_getFrameHeader(&zfh, src, srcSize); + if (ZSTD_isError(err)) return err; + RETURN_ERROR_IF(err>0, srcSize_wrong, ""); + RETURN_ERROR_IF(zfh.windowSize > windowSizeMax, + frameParameter_windowTooLarge, ""); + return ZSTD_estimateDStreamSize((size_t)zfh.windowSize); +} + + +/* ***** Decompression ***** */ + +static int ZSTD_DCtx_isOverflow(ZSTD_DStream* zds, size_t const neededInBuffSize, size_t const neededOutBuffSize) +{ + return (zds->inBuffSize + zds->outBuffSize) >= (neededInBuffSize + neededOutBuffSize) * ZSTD_WORKSPACETOOLARGE_FACTOR; +} + +static void ZSTD_DCtx_updateOversizedDuration(ZSTD_DStream* zds, size_t const neededInBuffSize, size_t const neededOutBuffSize) +{ + if (ZSTD_DCtx_isOverflow(zds, neededInBuffSize, neededOutBuffSize)) + zds->oversizedDuration++; + else + zds->oversizedDuration = 0; +} + +static int ZSTD_DCtx_isOversizedTooLong(ZSTD_DStream* zds) +{ + return zds->oversizedDuration >= ZSTD_WORKSPACETOOLARGE_MAXDURATION; +} + +/* Checks that the output buffer hasn't changed if ZSTD_obm_stable is used. */ +static size_t ZSTD_checkOutBuffer(ZSTD_DStream const* zds, ZSTD_outBuffer const* output) +{ + ZSTD_outBuffer const expect = zds->expectedOutBuffer; + /* No requirement when ZSTD_obm_stable is not enabled. */ + if (zds->outBufferMode != ZSTD_bm_stable) + return 0; + /* Any buffer is allowed in zdss_init, this must be the same for every other call until + * the context is reset. + */ + if (zds->streamStage == zdss_init) + return 0; + /* The buffer must match our expectation exactly. */ + if (expect.dst == output->dst && expect.pos == output->pos && expect.size == output->size) + return 0; + RETURN_ERROR(dstBuffer_wrong, "ZSTD_d_stableOutBuffer enabled but output differs!"); +} + +/* Calls ZSTD_decompressContinue() with the right parameters for ZSTD_decompressStream() + * and updates the stage and the output buffer state. This call is extracted so it can be + * used both when reading directly from the ZSTD_inBuffer, and in buffered input mode. + * NOTE: You must break after calling this function since the streamStage is modified. + */ +static size_t ZSTD_decompressContinueStream( + ZSTD_DStream* zds, char** op, char* oend, + void const* src, size_t srcSize) { + int const isSkipFrame = ZSTD_isSkipFrame(zds); + if (zds->outBufferMode == ZSTD_bm_buffered) { + size_t const dstSize = isSkipFrame ? 0 : zds->outBuffSize - zds->outStart; + size_t const decodedSize = ZSTD_decompressContinue(zds, + zds->outBuff + zds->outStart, dstSize, src, srcSize); + FORWARD_IF_ERROR(decodedSize, ""); + if (!decodedSize && !isSkipFrame) { + zds->streamStage = zdss_read; + } else { + zds->outEnd = zds->outStart + decodedSize; + zds->streamStage = zdss_flush; + } + } else { + /* Write directly into the output buffer */ + size_t const dstSize = isSkipFrame ? 0 : (size_t)(oend - *op); + size_t const decodedSize = ZSTD_decompressContinue(zds, *op, dstSize, src, srcSize); + FORWARD_IF_ERROR(decodedSize, ""); + *op += decodedSize; + /* Flushing is not needed. */ + zds->streamStage = zdss_read; + assert(*op <= oend); + assert(zds->outBufferMode == ZSTD_bm_stable); + } + return 0; +} + +size_t ZSTD_decompressStream(ZSTD_DStream* zds, ZSTD_outBuffer* output, ZSTD_inBuffer* input) +{ + const char* const src = (const char*)input->src; + const char* const istart = input->pos != 0 ? src + input->pos : src; + const char* const iend = input->size != 0 ? src + input->size : src; + const char* ip = istart; + char* const dst = (char*)output->dst; + char* const ostart = output->pos != 0 ? dst + output->pos : dst; + char* const oend = output->size != 0 ? dst + output->size : dst; + char* op = ostart; + U32 someMoreWork = 1; + + DEBUGLOG(5, "ZSTD_decompressStream"); + RETURN_ERROR_IF( + input->pos > input->size, + srcSize_wrong, + "forbidden. in: pos: %u vs size: %u", + (U32)input->pos, (U32)input->size); + RETURN_ERROR_IF( + output->pos > output->size, + dstSize_tooSmall, + "forbidden. out: pos: %u vs size: %u", + (U32)output->pos, (U32)output->size); + DEBUGLOG(5, "input size : %u", (U32)(input->size - input->pos)); + FORWARD_IF_ERROR(ZSTD_checkOutBuffer(zds, output), ""); + + while (someMoreWork) { + switch(zds->streamStage) + { + case zdss_init : + DEBUGLOG(5, "stage zdss_init => transparent reset "); + zds->streamStage = zdss_loadHeader; + zds->lhSize = zds->inPos = zds->outStart = zds->outEnd = 0; + zds->legacyVersion = 0; + zds->hostageByte = 0; + zds->expectedOutBuffer = *output; + /* fall-through */ + + case zdss_loadHeader : + DEBUGLOG(5, "stage zdss_loadHeader (srcSize : %u)", (U32)(iend - ip)); +#if defined(ZSTD_LEGACY_SUPPORT) && (ZSTD_LEGACY_SUPPORT>=1) + if (zds->legacyVersion) { + RETURN_ERROR_IF(zds->staticSize, memory_allocation, + "legacy support is incompatible with static dctx"); + { size_t const hint = ZSTD_decompressLegacyStream(zds->legacyContext, zds->legacyVersion, output, input); + if (hint==0) zds->streamStage = zdss_init; + return hint; + } } +#endif + { size_t const hSize = ZSTD_getFrameHeader_advanced(&zds->fParams, zds->headerBuffer, zds->lhSize, zds->format); + if (zds->refMultipleDDicts && zds->ddictSet) { + ZSTD_DCtx_selectFrameDDict(zds); + } + DEBUGLOG(5, "header size : %u", (U32)hSize); + if (ZSTD_isError(hSize)) { +#if defined(ZSTD_LEGACY_SUPPORT) && (ZSTD_LEGACY_SUPPORT>=1) + U32 const legacyVersion = ZSTD_isLegacy(istart, iend-istart); + if (legacyVersion) { + ZSTD_DDict const* const ddict = ZSTD_getDDict(zds); + const void* const dict = ddict ? ZSTD_DDict_dictContent(ddict) : NULL; + size_t const dictSize = ddict ? ZSTD_DDict_dictSize(ddict) : 0; + DEBUGLOG(5, "ZSTD_decompressStream: detected legacy version v0.%u", legacyVersion); + RETURN_ERROR_IF(zds->staticSize, memory_allocation, + "legacy support is incompatible with static dctx"); + FORWARD_IF_ERROR(ZSTD_initLegacyStream(&zds->legacyContext, + zds->previousLegacyVersion, legacyVersion, + dict, dictSize), ""); + zds->legacyVersion = zds->previousLegacyVersion = legacyVersion; + { size_t const hint = ZSTD_decompressLegacyStream(zds->legacyContext, legacyVersion, output, input); + if (hint==0) zds->streamStage = zdss_init; /* or stay in stage zdss_loadHeader */ + return hint; + } } +#endif + return hSize; /* error */ + } + if (hSize != 0) { /* need more input */ + size_t const toLoad = hSize - zds->lhSize; /* if hSize!=0, hSize > zds->lhSize */ + size_t const remainingInput = (size_t)(iend-ip); + assert(iend >= ip); + if (toLoad > remainingInput) { /* not enough input to load full header */ + if (remainingInput > 0) { + ZSTD_memcpy(zds->headerBuffer + zds->lhSize, ip, remainingInput); + zds->lhSize += remainingInput; + } + input->pos = input->size; + return (MAX((size_t)ZSTD_FRAMEHEADERSIZE_MIN(zds->format), hSize) - zds->lhSize) + ZSTD_blockHeaderSize; /* remaining header bytes + next block header */ + } + assert(ip != NULL); + ZSTD_memcpy(zds->headerBuffer + zds->lhSize, ip, toLoad); zds->lhSize = hSize; ip += toLoad; + break; + } } + + /* check for single-pass mode opportunity */ + if (zds->fParams.frameContentSize != ZSTD_CONTENTSIZE_UNKNOWN + && zds->fParams.frameType != ZSTD_skippableFrame + && (U64)(size_t)(oend-op) >= zds->fParams.frameContentSize) { + size_t const cSize = ZSTD_findFrameCompressedSize(istart, (size_t)(iend-istart)); + if (cSize <= (size_t)(iend-istart)) { + /* shortcut : using single-pass mode */ + size_t const decompressedSize = ZSTD_decompress_usingDDict(zds, op, (size_t)(oend-op), istart, cSize, ZSTD_getDDict(zds)); + if (ZSTD_isError(decompressedSize)) return decompressedSize; + DEBUGLOG(4, "shortcut to single-pass ZSTD_decompress_usingDDict()") + ip = istart + cSize; + op += decompressedSize; + zds->expected = 0; + zds->streamStage = zdss_init; + someMoreWork = 0; + break; + } } + + /* Check output buffer is large enough for ZSTD_odm_stable. */ + if (zds->outBufferMode == ZSTD_bm_stable + && zds->fParams.frameType != ZSTD_skippableFrame + && zds->fParams.frameContentSize != ZSTD_CONTENTSIZE_UNKNOWN + && (U64)(size_t)(oend-op) < zds->fParams.frameContentSize) { + RETURN_ERROR(dstSize_tooSmall, "ZSTD_obm_stable passed but ZSTD_outBuffer is too small"); + } + + /* Consume header (see ZSTDds_decodeFrameHeader) */ + DEBUGLOG(4, "Consume header"); + FORWARD_IF_ERROR(ZSTD_decompressBegin_usingDDict(zds, ZSTD_getDDict(zds)), ""); + + if ((MEM_readLE32(zds->headerBuffer) & ZSTD_MAGIC_SKIPPABLE_MASK) == ZSTD_MAGIC_SKIPPABLE_START) { /* skippable frame */ + zds->expected = MEM_readLE32(zds->headerBuffer + ZSTD_FRAMEIDSIZE); + zds->stage = ZSTDds_skipFrame; + } else { + FORWARD_IF_ERROR(ZSTD_decodeFrameHeader(zds, zds->headerBuffer, zds->lhSize), ""); + zds->expected = ZSTD_blockHeaderSize; + zds->stage = ZSTDds_decodeBlockHeader; + } + + /* control buffer memory usage */ + DEBUGLOG(4, "Control max memory usage (%u KB <= max %u KB)", + (U32)(zds->fParams.windowSize >>10), + (U32)(zds->maxWindowSize >> 10) ); + zds->fParams.windowSize = MAX(zds->fParams.windowSize, 1U << ZSTD_WINDOWLOG_ABSOLUTEMIN); + RETURN_ERROR_IF(zds->fParams.windowSize > zds->maxWindowSize, + frameParameter_windowTooLarge, ""); + + /* Adapt buffer sizes to frame header instructions */ + { size_t const neededInBuffSize = MAX(zds->fParams.blockSizeMax, 4 /* frame checksum */); + size_t const neededOutBuffSize = zds->outBufferMode == ZSTD_bm_buffered + ? ZSTD_decodingBufferSize_min(zds->fParams.windowSize, zds->fParams.frameContentSize) + : 0; + + ZSTD_DCtx_updateOversizedDuration(zds, neededInBuffSize, neededOutBuffSize); + + { int const tooSmall = (zds->inBuffSize < neededInBuffSize) || (zds->outBuffSize < neededOutBuffSize); + int const tooLarge = ZSTD_DCtx_isOversizedTooLong(zds); + + if (tooSmall || tooLarge) { + size_t const bufferSize = neededInBuffSize + neededOutBuffSize; + DEBUGLOG(4, "inBuff : from %u to %u", + (U32)zds->inBuffSize, (U32)neededInBuffSize); + DEBUGLOG(4, "outBuff : from %u to %u", + (U32)zds->outBuffSize, (U32)neededOutBuffSize); + if (zds->staticSize) { /* static DCtx */ + DEBUGLOG(4, "staticSize : %u", (U32)zds->staticSize); + assert(zds->staticSize >= sizeof(ZSTD_DCtx)); /* controlled at init */ + RETURN_ERROR_IF( + bufferSize > zds->staticSize - sizeof(ZSTD_DCtx), + memory_allocation, ""); + } else { + ZSTD_customFree(zds->inBuff, zds->customMem); + zds->inBuffSize = 0; + zds->outBuffSize = 0; + zds->inBuff = (char*)ZSTD_customMalloc(bufferSize, zds->customMem); + RETURN_ERROR_IF(zds->inBuff == NULL, memory_allocation, ""); + } + zds->inBuffSize = neededInBuffSize; + zds->outBuff = zds->inBuff + zds->inBuffSize; + zds->outBuffSize = neededOutBuffSize; + } } } + zds->streamStage = zdss_read; + /* fall-through */ + + case zdss_read: + DEBUGLOG(5, "stage zdss_read"); + { size_t const neededInSize = ZSTD_nextSrcSizeToDecompressWithInputSize(zds, (size_t)(iend - ip)); + DEBUGLOG(5, "neededInSize = %u", (U32)neededInSize); + if (neededInSize==0) { /* end of frame */ + zds->streamStage = zdss_init; + someMoreWork = 0; + break; + } + if ((size_t)(iend-ip) >= neededInSize) { /* decode directly from src */ + FORWARD_IF_ERROR(ZSTD_decompressContinueStream(zds, &op, oend, ip, neededInSize), ""); + ip += neededInSize; + /* Function modifies the stage so we must break */ + break; + } } + if (ip==iend) { someMoreWork = 0; break; } /* no more input */ + zds->streamStage = zdss_load; + /* fall-through */ + + case zdss_load: + { size_t const neededInSize = ZSTD_nextSrcSizeToDecompress(zds); + size_t const toLoad = neededInSize - zds->inPos; + int const isSkipFrame = ZSTD_isSkipFrame(zds); + size_t loadedSize; + /* At this point we shouldn't be decompressing a block that we can stream. */ + assert(neededInSize == ZSTD_nextSrcSizeToDecompressWithInputSize(zds, iend - ip)); + if (isSkipFrame) { + loadedSize = MIN(toLoad, (size_t)(iend-ip)); + } else { + RETURN_ERROR_IF(toLoad > zds->inBuffSize - zds->inPos, + corruption_detected, + "should never happen"); + loadedSize = ZSTD_limitCopy(zds->inBuff + zds->inPos, toLoad, ip, (size_t)(iend-ip)); + } + ip += loadedSize; + zds->inPos += loadedSize; + if (loadedSize < toLoad) { someMoreWork = 0; break; } /* not enough input, wait for more */ + + /* decode loaded input */ + zds->inPos = 0; /* input is consumed */ + FORWARD_IF_ERROR(ZSTD_decompressContinueStream(zds, &op, oend, zds->inBuff, neededInSize), ""); + /* Function modifies the stage so we must break */ + break; + } + case zdss_flush: + { size_t const toFlushSize = zds->outEnd - zds->outStart; + size_t const flushedSize = ZSTD_limitCopy(op, (size_t)(oend-op), zds->outBuff + zds->outStart, toFlushSize); + op += flushedSize; + zds->outStart += flushedSize; + if (flushedSize == toFlushSize) { /* flush completed */ + zds->streamStage = zdss_read; + if ( (zds->outBuffSize < zds->fParams.frameContentSize) + && (zds->outStart + zds->fParams.blockSizeMax > zds->outBuffSize) ) { + DEBUGLOG(5, "restart filling outBuff from beginning (left:%i, needed:%u)", + (int)(zds->outBuffSize - zds->outStart), + (U32)zds->fParams.blockSizeMax); + zds->outStart = zds->outEnd = 0; + } + break; + } } + /* cannot complete flush */ + someMoreWork = 0; + break; + + default: + assert(0); /* impossible */ + RETURN_ERROR(GENERIC, "impossible to reach"); /* some compiler require default to do something */ + } } + + /* result */ + input->pos = (size_t)(ip - (const char*)(input->src)); + output->pos = (size_t)(op - (char*)(output->dst)); + + /* Update the expected output buffer for ZSTD_obm_stable. */ + zds->expectedOutBuffer = *output; + + if ((ip==istart) && (op==ostart)) { /* no forward progress */ + zds->noForwardProgress ++; + if (zds->noForwardProgress >= ZSTD_NO_FORWARD_PROGRESS_MAX) { + RETURN_ERROR_IF(op==oend, dstSize_tooSmall, ""); + RETURN_ERROR_IF(ip==iend, srcSize_wrong, ""); + assert(0); + } + } else { + zds->noForwardProgress = 0; + } + { size_t nextSrcSizeHint = ZSTD_nextSrcSizeToDecompress(zds); + if (!nextSrcSizeHint) { /* frame fully decoded */ + if (zds->outEnd == zds->outStart) { /* output fully flushed */ + if (zds->hostageByte) { + if (input->pos >= input->size) { + /* can't release hostage (not present) */ + zds->streamStage = zdss_read; + return 1; + } + input->pos++; /* release hostage */ + } /* zds->hostageByte */ + return 0; + } /* zds->outEnd == zds->outStart */ + if (!zds->hostageByte) { /* output not fully flushed; keep last byte as hostage; will be released when all output is flushed */ + input->pos--; /* note : pos > 0, otherwise, impossible to finish reading last block */ + zds->hostageByte=1; + } + return 1; + } /* nextSrcSizeHint==0 */ + nextSrcSizeHint += ZSTD_blockHeaderSize * (ZSTD_nextInputType(zds) == ZSTDnit_block); /* preload header of next block */ + assert(zds->inPos <= nextSrcSizeHint); + nextSrcSizeHint -= zds->inPos; /* part already loaded*/ + return nextSrcSizeHint; + } +} + +size_t ZSTD_decompressStream_simpleArgs ( + ZSTD_DCtx* dctx, + void* dst, size_t dstCapacity, size_t* dstPos, + const void* src, size_t srcSize, size_t* srcPos) +{ + ZSTD_outBuffer output = { dst, dstCapacity, *dstPos }; + ZSTD_inBuffer input = { src, srcSize, *srcPos }; + /* ZSTD_compress_generic() will check validity of dstPos and srcPos */ + size_t const cErr = ZSTD_decompressStream(dctx, &output, &input); + *dstPos = output.pos; + *srcPos = input.pos; + return cErr; +} diff --git a/dependencies/zstd-1.5.0/lib/decompress/zstd_decompress_block.c b/dependencies/zstd-1.5.0/lib/decompress/zstd_decompress_block.c new file mode 100644 index 0000000..349dcdc --- /dev/null +++ b/dependencies/zstd-1.5.0/lib/decompress/zstd_decompress_block.c @@ -0,0 +1,1548 @@ +/* + * Copyright (c) Yann Collet, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + +/* zstd_decompress_block : + * this module takes care of decompressing _compressed_ block */ + +/*-******************************************************* +* Dependencies +*********************************************************/ +#include "../common/zstd_deps.h" /* ZSTD_memcpy, ZSTD_memmove, ZSTD_memset */ +#include "../common/compiler.h" /* prefetch */ +#include "../common/cpu.h" /* bmi2 */ +#include "../common/mem.h" /* low level memory routines */ +#define FSE_STATIC_LINKING_ONLY +#include "../common/fse.h" +#define HUF_STATIC_LINKING_ONLY +#include "../common/huf.h" +#include "../common/zstd_internal.h" +#include "zstd_decompress_internal.h" /* ZSTD_DCtx */ +#include "zstd_ddict.h" /* ZSTD_DDictDictContent */ +#include "zstd_decompress_block.h" + +/*_******************************************************* +* Macros +**********************************************************/ + +/* These two optional macros force the use one way or another of the two + * ZSTD_decompressSequences implementations. You can't force in both directions + * at the same time. + */ +#if defined(ZSTD_FORCE_DECOMPRESS_SEQUENCES_SHORT) && \ + defined(ZSTD_FORCE_DECOMPRESS_SEQUENCES_LONG) +#error "Cannot force the use of the short and the long ZSTD_decompressSequences variants!" +#endif + + +/*_******************************************************* +* Memory operations +**********************************************************/ +static void ZSTD_copy4(void* dst, const void* src) { ZSTD_memcpy(dst, src, 4); } + + +/*-************************************************************* + * Block decoding + ***************************************************************/ + +/*! ZSTD_getcBlockSize() : + * Provides the size of compressed block from block header `src` */ +size_t ZSTD_getcBlockSize(const void* src, size_t srcSize, + blockProperties_t* bpPtr) +{ + RETURN_ERROR_IF(srcSize < ZSTD_blockHeaderSize, srcSize_wrong, ""); + + { U32 const cBlockHeader = MEM_readLE24(src); + U32 const cSize = cBlockHeader >> 3; + bpPtr->lastBlock = cBlockHeader & 1; + bpPtr->blockType = (blockType_e)((cBlockHeader >> 1) & 3); + bpPtr->origSize = cSize; /* only useful for RLE */ + if (bpPtr->blockType == bt_rle) return 1; + RETURN_ERROR_IF(bpPtr->blockType == bt_reserved, corruption_detected, ""); + return cSize; + } +} + + +/* Hidden declaration for fullbench */ +size_t ZSTD_decodeLiteralsBlock(ZSTD_DCtx* dctx, + const void* src, size_t srcSize); +/*! ZSTD_decodeLiteralsBlock() : + * @return : nb of bytes read from src (< srcSize ) + * note : symbol not declared but exposed for fullbench */ +size_t ZSTD_decodeLiteralsBlock(ZSTD_DCtx* dctx, + const void* src, size_t srcSize) /* note : srcSize < BLOCKSIZE */ +{ + DEBUGLOG(5, "ZSTD_decodeLiteralsBlock"); + RETURN_ERROR_IF(srcSize < MIN_CBLOCK_SIZE, corruption_detected, ""); + + { const BYTE* const istart = (const BYTE*) src; + symbolEncodingType_e const litEncType = (symbolEncodingType_e)(istart[0] & 3); + + switch(litEncType) + { + case set_repeat: + DEBUGLOG(5, "set_repeat flag : re-using stats from previous compressed literals block"); + RETURN_ERROR_IF(dctx->litEntropy==0, dictionary_corrupted, ""); + /* fall-through */ + + case set_compressed: + RETURN_ERROR_IF(srcSize < 5, corruption_detected, "srcSize >= MIN_CBLOCK_SIZE == 3; here we need up to 5 for case 3"); + { size_t lhSize, litSize, litCSize; + U32 singleStream=0; + U32 const lhlCode = (istart[0] >> 2) & 3; + U32 const lhc = MEM_readLE32(istart); + size_t hufSuccess; + switch(lhlCode) + { + case 0: case 1: default: /* note : default is impossible, since lhlCode into [0..3] */ + /* 2 - 2 - 10 - 10 */ + singleStream = !lhlCode; + lhSize = 3; + litSize = (lhc >> 4) & 0x3FF; + litCSize = (lhc >> 14) & 0x3FF; + break; + case 2: + /* 2 - 2 - 14 - 14 */ + lhSize = 4; + litSize = (lhc >> 4) & 0x3FFF; + litCSize = lhc >> 18; + break; + case 3: + /* 2 - 2 - 18 - 18 */ + lhSize = 5; + litSize = (lhc >> 4) & 0x3FFFF; + litCSize = (lhc >> 22) + ((size_t)istart[4] << 10); + break; + } + RETURN_ERROR_IF(litSize > ZSTD_BLOCKSIZE_MAX, corruption_detected, ""); + RETURN_ERROR_IF(litCSize + lhSize > srcSize, corruption_detected, ""); + + /* prefetch huffman table if cold */ + if (dctx->ddictIsCold && (litSize > 768 /* heuristic */)) { + PREFETCH_AREA(dctx->HUFptr, sizeof(dctx->entropy.hufTable)); + } + + if (litEncType==set_repeat) { + if (singleStream) { + hufSuccess = HUF_decompress1X_usingDTable_bmi2( + dctx->litBuffer, litSize, istart+lhSize, litCSize, + dctx->HUFptr, dctx->bmi2); + } else { + hufSuccess = HUF_decompress4X_usingDTable_bmi2( + dctx->litBuffer, litSize, istart+lhSize, litCSize, + dctx->HUFptr, dctx->bmi2); + } + } else { + if (singleStream) { +#if defined(HUF_FORCE_DECOMPRESS_X2) + hufSuccess = HUF_decompress1X_DCtx_wksp( + dctx->entropy.hufTable, dctx->litBuffer, litSize, + istart+lhSize, litCSize, dctx->workspace, + sizeof(dctx->workspace)); +#else + hufSuccess = HUF_decompress1X1_DCtx_wksp_bmi2( + dctx->entropy.hufTable, dctx->litBuffer, litSize, + istart+lhSize, litCSize, dctx->workspace, + sizeof(dctx->workspace), dctx->bmi2); +#endif + } else { + hufSuccess = HUF_decompress4X_hufOnly_wksp_bmi2( + dctx->entropy.hufTable, dctx->litBuffer, litSize, + istart+lhSize, litCSize, dctx->workspace, + sizeof(dctx->workspace), dctx->bmi2); + } + } + + RETURN_ERROR_IF(HUF_isError(hufSuccess), corruption_detected, ""); + + dctx->litPtr = dctx->litBuffer; + dctx->litSize = litSize; + dctx->litEntropy = 1; + if (litEncType==set_compressed) dctx->HUFptr = dctx->entropy.hufTable; + ZSTD_memset(dctx->litBuffer + dctx->litSize, 0, WILDCOPY_OVERLENGTH); + return litCSize + lhSize; + } + + case set_basic: + { size_t litSize, lhSize; + U32 const lhlCode = ((istart[0]) >> 2) & 3; + switch(lhlCode) + { + case 0: case 2: default: /* note : default is impossible, since lhlCode into [0..3] */ + lhSize = 1; + litSize = istart[0] >> 3; + break; + case 1: + lhSize = 2; + litSize = MEM_readLE16(istart) >> 4; + break; + case 3: + lhSize = 3; + litSize = MEM_readLE24(istart) >> 4; + break; + } + + if (lhSize+litSize+WILDCOPY_OVERLENGTH > srcSize) { /* risk reading beyond src buffer with wildcopy */ + RETURN_ERROR_IF(litSize+lhSize > srcSize, corruption_detected, ""); + ZSTD_memcpy(dctx->litBuffer, istart+lhSize, litSize); + dctx->litPtr = dctx->litBuffer; + dctx->litSize = litSize; + ZSTD_memset(dctx->litBuffer + dctx->litSize, 0, WILDCOPY_OVERLENGTH); + return lhSize+litSize; + } + /* direct reference into compressed stream */ + dctx->litPtr = istart+lhSize; + dctx->litSize = litSize; + return lhSize+litSize; + } + + case set_rle: + { U32 const lhlCode = ((istart[0]) >> 2) & 3; + size_t litSize, lhSize; + switch(lhlCode) + { + case 0: case 2: default: /* note : default is impossible, since lhlCode into [0..3] */ + lhSize = 1; + litSize = istart[0] >> 3; + break; + case 1: + lhSize = 2; + litSize = MEM_readLE16(istart) >> 4; + break; + case 3: + lhSize = 3; + litSize = MEM_readLE24(istart) >> 4; + RETURN_ERROR_IF(srcSize<4, corruption_detected, "srcSize >= MIN_CBLOCK_SIZE == 3; here we need lhSize+1 = 4"); + break; + } + RETURN_ERROR_IF(litSize > ZSTD_BLOCKSIZE_MAX, corruption_detected, ""); + ZSTD_memset(dctx->litBuffer, istart[lhSize], litSize + WILDCOPY_OVERLENGTH); + dctx->litPtr = dctx->litBuffer; + dctx->litSize = litSize; + return lhSize+1; + } + default: + RETURN_ERROR(corruption_detected, "impossible"); + } + } +} + +/* Default FSE distribution tables. + * These are pre-calculated FSE decoding tables using default distributions as defined in specification : + * https://github.com/facebook/zstd/blob/release/doc/zstd_compression_format.md#default-distributions + * They were generated programmatically with following method : + * - start from default distributions, present in /lib/common/zstd_internal.h + * - generate tables normally, using ZSTD_buildFSETable() + * - printout the content of tables + * - pretify output, report below, test with fuzzer to ensure it's correct */ + +/* Default FSE distribution table for Literal Lengths */ +static const ZSTD_seqSymbol LL_defaultDTable[(1<tableLog = 0; + DTableH->fastMode = 0; + + cell->nbBits = 0; + cell->nextState = 0; + assert(nbAddBits < 255); + cell->nbAdditionalBits = (BYTE)nbAddBits; + cell->baseValue = baseValue; +} + + +/* ZSTD_buildFSETable() : + * generate FSE decoding table for one symbol (ll, ml or off) + * cannot fail if input is valid => + * all inputs are presumed validated at this stage */ +FORCE_INLINE_TEMPLATE +void ZSTD_buildFSETable_body(ZSTD_seqSymbol* dt, + const short* normalizedCounter, unsigned maxSymbolValue, + const U32* baseValue, const U32* nbAdditionalBits, + unsigned tableLog, void* wksp, size_t wkspSize) +{ + ZSTD_seqSymbol* const tableDecode = dt+1; + U32 const maxSV1 = maxSymbolValue + 1; + U32 const tableSize = 1 << tableLog; + + U16* symbolNext = (U16*)wksp; + BYTE* spread = (BYTE*)(symbolNext + MaxSeq + 1); + U32 highThreshold = tableSize - 1; + + + /* Sanity Checks */ + assert(maxSymbolValue <= MaxSeq); + assert(tableLog <= MaxFSELog); + assert(wkspSize >= ZSTD_BUILD_FSE_TABLE_WKSP_SIZE); + (void)wkspSize; + /* Init, lay down lowprob symbols */ + { ZSTD_seqSymbol_header DTableH; + DTableH.tableLog = tableLog; + DTableH.fastMode = 1; + { S16 const largeLimit= (S16)(1 << (tableLog-1)); + U32 s; + for (s=0; s= largeLimit) DTableH.fastMode=0; + assert(normalizedCounter[s]>=0); + symbolNext[s] = (U16)normalizedCounter[s]; + } } } + ZSTD_memcpy(dt, &DTableH, sizeof(DTableH)); + } + + /* Spread symbols */ + assert(tableSize <= 512); + /* Specialized symbol spreading for the case when there are + * no low probability (-1 count) symbols. When compressing + * small blocks we avoid low probability symbols to hit this + * case, since header decoding speed matters more. + */ + if (highThreshold == tableSize - 1) { + size_t const tableMask = tableSize-1; + size_t const step = FSE_TABLESTEP(tableSize); + /* First lay down the symbols in order. + * We use a uint64_t to lay down 8 bytes at a time. This reduces branch + * misses since small blocks generally have small table logs, so nearly + * all symbols have counts <= 8. We ensure we have 8 bytes at the end of + * our buffer to handle the over-write. + */ + { + U64 const add = 0x0101010101010101ull; + size_t pos = 0; + U64 sv = 0; + U32 s; + for (s=0; s highThreshold) position = (position + step) & tableMask; /* lowprob area */ + } } + assert(position == 0); /* position must reach all cells once, otherwise normalizedCounter is incorrect */ + } + + /* Build Decoding table */ + { + U32 u; + for (u=0; u max, corruption_detected, ""); + { U32 const symbol = *(const BYTE*)src; + U32 const baseline = baseValue[symbol]; + U32 const nbBits = nbAdditionalBits[symbol]; + ZSTD_buildSeqTable_rle(DTableSpace, baseline, nbBits); + } + *DTablePtr = DTableSpace; + return 1; + case set_basic : + *DTablePtr = defaultTable; + return 0; + case set_repeat: + RETURN_ERROR_IF(!flagRepeatTable, corruption_detected, ""); + /* prefetch FSE table if used */ + if (ddictIsCold && (nbSeq > 24 /* heuristic */)) { + const void* const pStart = *DTablePtr; + size_t const pSize = sizeof(ZSTD_seqSymbol) * (SEQSYMBOL_TABLE_SIZE(maxLog)); + PREFETCH_AREA(pStart, pSize); + } + return 0; + case set_compressed : + { unsigned tableLog; + S16 norm[MaxSeq+1]; + size_t const headerSize = FSE_readNCount(norm, &max, &tableLog, src, srcSize); + RETURN_ERROR_IF(FSE_isError(headerSize), corruption_detected, ""); + RETURN_ERROR_IF(tableLog > maxLog, corruption_detected, ""); + ZSTD_buildFSETable(DTableSpace, norm, max, baseValue, nbAdditionalBits, tableLog, wksp, wkspSize, bmi2); + *DTablePtr = DTableSpace; + return headerSize; + } + default : + assert(0); + RETURN_ERROR(GENERIC, "impossible"); + } +} + +size_t ZSTD_decodeSeqHeaders(ZSTD_DCtx* dctx, int* nbSeqPtr, + const void* src, size_t srcSize) +{ + const BYTE* const istart = (const BYTE*)src; + const BYTE* const iend = istart + srcSize; + const BYTE* ip = istart; + int nbSeq; + DEBUGLOG(5, "ZSTD_decodeSeqHeaders"); + + /* check */ + RETURN_ERROR_IF(srcSize < MIN_SEQUENCES_SIZE, srcSize_wrong, ""); + + /* SeqHead */ + nbSeq = *ip++; + if (!nbSeq) { + *nbSeqPtr=0; + RETURN_ERROR_IF(srcSize != 1, srcSize_wrong, ""); + return 1; + } + if (nbSeq > 0x7F) { + if (nbSeq == 0xFF) { + RETURN_ERROR_IF(ip+2 > iend, srcSize_wrong, ""); + nbSeq = MEM_readLE16(ip) + LONGNBSEQ; + ip+=2; + } else { + RETURN_ERROR_IF(ip >= iend, srcSize_wrong, ""); + nbSeq = ((nbSeq-0x80)<<8) + *ip++; + } + } + *nbSeqPtr = nbSeq; + + /* FSE table descriptors */ + RETURN_ERROR_IF(ip+1 > iend, srcSize_wrong, ""); /* minimum possible size: 1 byte for symbol encoding types */ + { symbolEncodingType_e const LLtype = (symbolEncodingType_e)(*ip >> 6); + symbolEncodingType_e const OFtype = (symbolEncodingType_e)((*ip >> 4) & 3); + symbolEncodingType_e const MLtype = (symbolEncodingType_e)((*ip >> 2) & 3); + ip++; + + /* Build DTables */ + { size_t const llhSize = ZSTD_buildSeqTable(dctx->entropy.LLTable, &dctx->LLTptr, + LLtype, MaxLL, LLFSELog, + ip, iend-ip, + LL_base, LL_bits, + LL_defaultDTable, dctx->fseEntropy, + dctx->ddictIsCold, nbSeq, + dctx->workspace, sizeof(dctx->workspace), + dctx->bmi2); + RETURN_ERROR_IF(ZSTD_isError(llhSize), corruption_detected, "ZSTD_buildSeqTable failed"); + ip += llhSize; + } + + { size_t const ofhSize = ZSTD_buildSeqTable(dctx->entropy.OFTable, &dctx->OFTptr, + OFtype, MaxOff, OffFSELog, + ip, iend-ip, + OF_base, OF_bits, + OF_defaultDTable, dctx->fseEntropy, + dctx->ddictIsCold, nbSeq, + dctx->workspace, sizeof(dctx->workspace), + dctx->bmi2); + RETURN_ERROR_IF(ZSTD_isError(ofhSize), corruption_detected, "ZSTD_buildSeqTable failed"); + ip += ofhSize; + } + + { size_t const mlhSize = ZSTD_buildSeqTable(dctx->entropy.MLTable, &dctx->MLTptr, + MLtype, MaxML, MLFSELog, + ip, iend-ip, + ML_base, ML_bits, + ML_defaultDTable, dctx->fseEntropy, + dctx->ddictIsCold, nbSeq, + dctx->workspace, sizeof(dctx->workspace), + dctx->bmi2); + RETURN_ERROR_IF(ZSTD_isError(mlhSize), corruption_detected, "ZSTD_buildSeqTable failed"); + ip += mlhSize; + } + } + + return ip-istart; +} + + +typedef struct { + size_t litLength; + size_t matchLength; + size_t offset; +} seq_t; + +typedef struct { + size_t state; + const ZSTD_seqSymbol* table; +} ZSTD_fseState; + +typedef struct { + BIT_DStream_t DStream; + ZSTD_fseState stateLL; + ZSTD_fseState stateOffb; + ZSTD_fseState stateML; + size_t prevOffset[ZSTD_REP_NUM]; +} seqState_t; + +/*! ZSTD_overlapCopy8() : + * Copies 8 bytes from ip to op and updates op and ip where ip <= op. + * If the offset is < 8 then the offset is spread to at least 8 bytes. + * + * Precondition: *ip <= *op + * Postcondition: *op - *op >= 8 + */ +HINT_INLINE void ZSTD_overlapCopy8(BYTE** op, BYTE const** ip, size_t offset) { + assert(*ip <= *op); + if (offset < 8) { + /* close range match, overlap */ + static const U32 dec32table[] = { 0, 1, 2, 1, 4, 4, 4, 4 }; /* added */ + static const int dec64table[] = { 8, 8, 8, 7, 8, 9,10,11 }; /* subtracted */ + int const sub2 = dec64table[offset]; + (*op)[0] = (*ip)[0]; + (*op)[1] = (*ip)[1]; + (*op)[2] = (*ip)[2]; + (*op)[3] = (*ip)[3]; + *ip += dec32table[offset]; + ZSTD_copy4(*op+4, *ip); + *ip -= sub2; + } else { + ZSTD_copy8(*op, *ip); + } + *ip += 8; + *op += 8; + assert(*op - *ip >= 8); +} + +/*! ZSTD_safecopy() : + * Specialized version of memcpy() that is allowed to READ up to WILDCOPY_OVERLENGTH past the input buffer + * and write up to 16 bytes past oend_w (op >= oend_w is allowed). + * This function is only called in the uncommon case where the sequence is near the end of the block. It + * should be fast for a single long sequence, but can be slow for several short sequences. + * + * @param ovtype controls the overlap detection + * - ZSTD_no_overlap: The source and destination are guaranteed to be at least WILDCOPY_VECLEN bytes apart. + * - ZSTD_overlap_src_before_dst: The src and dst may overlap and may be any distance apart. + * The src buffer must be before the dst buffer. + */ +static void ZSTD_safecopy(BYTE* op, BYTE* const oend_w, BYTE const* ip, ptrdiff_t length, ZSTD_overlap_e ovtype) { + ptrdiff_t const diff = op - ip; + BYTE* const oend = op + length; + + assert((ovtype == ZSTD_no_overlap && (diff <= -8 || diff >= 8 || op >= oend_w)) || + (ovtype == ZSTD_overlap_src_before_dst && diff >= 0)); + + if (length < 8) { + /* Handle short lengths. */ + while (op < oend) *op++ = *ip++; + return; + } + if (ovtype == ZSTD_overlap_src_before_dst) { + /* Copy 8 bytes and ensure the offset >= 8 when there can be overlap. */ + assert(length >= 8); + ZSTD_overlapCopy8(&op, &ip, diff); + assert(op - ip >= 8); + assert(op <= oend); + } + + if (oend <= oend_w) { + /* No risk of overwrite. */ + ZSTD_wildcopy(op, ip, length, ovtype); + return; + } + if (op <= oend_w) { + /* Wildcopy until we get close to the end. */ + assert(oend > oend_w); + ZSTD_wildcopy(op, ip, oend_w - op, ovtype); + ip += oend_w - op; + op = oend_w; + } + /* Handle the leftovers. */ + while (op < oend) *op++ = *ip++; +} + +/* ZSTD_execSequenceEnd(): + * This version handles cases that are near the end of the output buffer. It requires + * more careful checks to make sure there is no overflow. By separating out these hard + * and unlikely cases, we can speed up the common cases. + * + * NOTE: This function needs to be fast for a single long sequence, but doesn't need + * to be optimized for many small sequences, since those fall into ZSTD_execSequence(). + */ +FORCE_NOINLINE +size_t ZSTD_execSequenceEnd(BYTE* op, + BYTE* const oend, seq_t sequence, + const BYTE** litPtr, const BYTE* const litLimit, + const BYTE* const prefixStart, const BYTE* const virtualStart, const BYTE* const dictEnd) +{ + BYTE* const oLitEnd = op + sequence.litLength; + size_t const sequenceLength = sequence.litLength + sequence.matchLength; + const BYTE* const iLitEnd = *litPtr + sequence.litLength; + const BYTE* match = oLitEnd - sequence.offset; + BYTE* const oend_w = oend - WILDCOPY_OVERLENGTH; + + /* bounds checks : careful of address space overflow in 32-bit mode */ + RETURN_ERROR_IF(sequenceLength > (size_t)(oend - op), dstSize_tooSmall, "last match must fit within dstBuffer"); + RETURN_ERROR_IF(sequence.litLength > (size_t)(litLimit - *litPtr), corruption_detected, "try to read beyond literal buffer"); + assert(op < op + sequenceLength); + assert(oLitEnd < op + sequenceLength); + + /* copy literals */ + ZSTD_safecopy(op, oend_w, *litPtr, sequence.litLength, ZSTD_no_overlap); + op = oLitEnd; + *litPtr = iLitEnd; + + /* copy Match */ + if (sequence.offset > (size_t)(oLitEnd - prefixStart)) { + /* offset beyond prefix */ + RETURN_ERROR_IF(sequence.offset > (size_t)(oLitEnd - virtualStart), corruption_detected, ""); + match = dictEnd - (prefixStart-match); + if (match + sequence.matchLength <= dictEnd) { + ZSTD_memmove(oLitEnd, match, sequence.matchLength); + return sequenceLength; + } + /* span extDict & currentPrefixSegment */ + { size_t const length1 = dictEnd - match; + ZSTD_memmove(oLitEnd, match, length1); + op = oLitEnd + length1; + sequence.matchLength -= length1; + match = prefixStart; + } } + ZSTD_safecopy(op, oend_w, match, sequence.matchLength, ZSTD_overlap_src_before_dst); + return sequenceLength; +} + +HINT_INLINE +size_t ZSTD_execSequence(BYTE* op, + BYTE* const oend, seq_t sequence, + const BYTE** litPtr, const BYTE* const litLimit, + const BYTE* const prefixStart, const BYTE* const virtualStart, const BYTE* const dictEnd) +{ + BYTE* const oLitEnd = op + sequence.litLength; + size_t const sequenceLength = sequence.litLength + sequence.matchLength; + BYTE* const oMatchEnd = op + sequenceLength; /* risk : address space overflow (32-bits) */ + BYTE* const oend_w = oend - WILDCOPY_OVERLENGTH; /* risk : address space underflow on oend=NULL */ + const BYTE* const iLitEnd = *litPtr + sequence.litLength; + const BYTE* match = oLitEnd - sequence.offset; + + assert(op != NULL /* Precondition */); + assert(oend_w < oend /* No underflow */); + /* Handle edge cases in a slow path: + * - Read beyond end of literals + * - Match end is within WILDCOPY_OVERLIMIT of oend + * - 32-bit mode and the match length overflows + */ + if (UNLIKELY( + iLitEnd > litLimit || + oMatchEnd > oend_w || + (MEM_32bits() && (size_t)(oend - op) < sequenceLength + WILDCOPY_OVERLENGTH))) + return ZSTD_execSequenceEnd(op, oend, sequence, litPtr, litLimit, prefixStart, virtualStart, dictEnd); + + /* Assumptions (everything else goes into ZSTD_execSequenceEnd()) */ + assert(op <= oLitEnd /* No overflow */); + assert(oLitEnd < oMatchEnd /* Non-zero match & no overflow */); + assert(oMatchEnd <= oend /* No underflow */); + assert(iLitEnd <= litLimit /* Literal length is in bounds */); + assert(oLitEnd <= oend_w /* Can wildcopy literals */); + assert(oMatchEnd <= oend_w /* Can wildcopy matches */); + + /* Copy Literals: + * Split out litLength <= 16 since it is nearly always true. +1.6% on gcc-9. + * We likely don't need the full 32-byte wildcopy. + */ + assert(WILDCOPY_OVERLENGTH >= 16); + ZSTD_copy16(op, (*litPtr)); + if (UNLIKELY(sequence.litLength > 16)) { + ZSTD_wildcopy(op+16, (*litPtr)+16, sequence.litLength-16, ZSTD_no_overlap); + } + op = oLitEnd; + *litPtr = iLitEnd; /* update for next sequence */ + + /* Copy Match */ + if (sequence.offset > (size_t)(oLitEnd - prefixStart)) { + /* offset beyond prefix -> go into extDict */ + RETURN_ERROR_IF(UNLIKELY(sequence.offset > (size_t)(oLitEnd - virtualStart)), corruption_detected, ""); + match = dictEnd + (match - prefixStart); + if (match + sequence.matchLength <= dictEnd) { + ZSTD_memmove(oLitEnd, match, sequence.matchLength); + return sequenceLength; + } + /* span extDict & currentPrefixSegment */ + { size_t const length1 = dictEnd - match; + ZSTD_memmove(oLitEnd, match, length1); + op = oLitEnd + length1; + sequence.matchLength -= length1; + match = prefixStart; + } } + /* Match within prefix of 1 or more bytes */ + assert(op <= oMatchEnd); + assert(oMatchEnd <= oend_w); + assert(match >= prefixStart); + assert(sequence.matchLength >= 1); + + /* Nearly all offsets are >= WILDCOPY_VECLEN bytes, which means we can use wildcopy + * without overlap checking. + */ + if (LIKELY(sequence.offset >= WILDCOPY_VECLEN)) { + /* We bet on a full wildcopy for matches, since we expect matches to be + * longer than literals (in general). In silesia, ~10% of matches are longer + * than 16 bytes. + */ + ZSTD_wildcopy(op, match, (ptrdiff_t)sequence.matchLength, ZSTD_no_overlap); + return sequenceLength; + } + assert(sequence.offset < WILDCOPY_VECLEN); + + /* Copy 8 bytes and spread the offset to be >= 8. */ + ZSTD_overlapCopy8(&op, &match, sequence.offset); + + /* If the match length is > 8 bytes, then continue with the wildcopy. */ + if (sequence.matchLength > 8) { + assert(op < oMatchEnd); + ZSTD_wildcopy(op, match, (ptrdiff_t)sequence.matchLength-8, ZSTD_overlap_src_before_dst); + } + return sequenceLength; +} + +static void +ZSTD_initFseState(ZSTD_fseState* DStatePtr, BIT_DStream_t* bitD, const ZSTD_seqSymbol* dt) +{ + const void* ptr = dt; + const ZSTD_seqSymbol_header* const DTableH = (const ZSTD_seqSymbol_header*)ptr; + DStatePtr->state = BIT_readBits(bitD, DTableH->tableLog); + DEBUGLOG(6, "ZSTD_initFseState : val=%u using %u bits", + (U32)DStatePtr->state, DTableH->tableLog); + BIT_reloadDStream(bitD); + DStatePtr->table = dt + 1; +} + +FORCE_INLINE_TEMPLATE void +ZSTD_updateFseState(ZSTD_fseState* DStatePtr, BIT_DStream_t* bitD) +{ + ZSTD_seqSymbol const DInfo = DStatePtr->table[DStatePtr->state]; + U32 const nbBits = DInfo.nbBits; + size_t const lowBits = BIT_readBits(bitD, nbBits); + DStatePtr->state = DInfo.nextState + lowBits; +} + +FORCE_INLINE_TEMPLATE void +ZSTD_updateFseStateWithDInfo(ZSTD_fseState* DStatePtr, BIT_DStream_t* bitD, ZSTD_seqSymbol const DInfo) +{ + U32 const nbBits = DInfo.nbBits; + size_t const lowBits = BIT_readBits(bitD, nbBits); + DStatePtr->state = DInfo.nextState + lowBits; +} + +/* We need to add at most (ZSTD_WINDOWLOG_MAX_32 - 1) bits to read the maximum + * offset bits. But we can only read at most (STREAM_ACCUMULATOR_MIN_32 - 1) + * bits before reloading. This value is the maximum number of bytes we read + * after reloading when we are decoding long offsets. + */ +#define LONG_OFFSETS_MAX_EXTRA_BITS_32 \ + (ZSTD_WINDOWLOG_MAX_32 > STREAM_ACCUMULATOR_MIN_32 \ + ? ZSTD_WINDOWLOG_MAX_32 - STREAM_ACCUMULATOR_MIN_32 \ + : 0) + +typedef enum { ZSTD_lo_isRegularOffset, ZSTD_lo_isLongOffset=1 } ZSTD_longOffset_e; + +FORCE_INLINE_TEMPLATE seq_t +ZSTD_decodeSequence(seqState_t* seqState, const ZSTD_longOffset_e longOffsets) +{ + seq_t seq; + ZSTD_seqSymbol const llDInfo = seqState->stateLL.table[seqState->stateLL.state]; + ZSTD_seqSymbol const mlDInfo = seqState->stateML.table[seqState->stateML.state]; + ZSTD_seqSymbol const ofDInfo = seqState->stateOffb.table[seqState->stateOffb.state]; + U32 const llBase = llDInfo.baseValue; + U32 const mlBase = mlDInfo.baseValue; + U32 const ofBase = ofDInfo.baseValue; + BYTE const llBits = llDInfo.nbAdditionalBits; + BYTE const mlBits = mlDInfo.nbAdditionalBits; + BYTE const ofBits = ofDInfo.nbAdditionalBits; + BYTE const totalBits = llBits+mlBits+ofBits; + + /* sequence */ + { size_t offset; + if (ofBits > 1) { + ZSTD_STATIC_ASSERT(ZSTD_lo_isLongOffset == 1); + ZSTD_STATIC_ASSERT(LONG_OFFSETS_MAX_EXTRA_BITS_32 == 5); + assert(ofBits <= MaxOff); + if (MEM_32bits() && longOffsets && (ofBits >= STREAM_ACCUMULATOR_MIN_32)) { + U32 const extraBits = ofBits - MIN(ofBits, 32 - seqState->DStream.bitsConsumed); + offset = ofBase + (BIT_readBitsFast(&seqState->DStream, ofBits - extraBits) << extraBits); + BIT_reloadDStream(&seqState->DStream); + if (extraBits) offset += BIT_readBitsFast(&seqState->DStream, extraBits); + assert(extraBits <= LONG_OFFSETS_MAX_EXTRA_BITS_32); /* to avoid another reload */ + } else { + offset = ofBase + BIT_readBitsFast(&seqState->DStream, ofBits/*>0*/); /* <= (ZSTD_WINDOWLOG_MAX-1) bits */ + if (MEM_32bits()) BIT_reloadDStream(&seqState->DStream); + } + seqState->prevOffset[2] = seqState->prevOffset[1]; + seqState->prevOffset[1] = seqState->prevOffset[0]; + seqState->prevOffset[0] = offset; + } else { + U32 const ll0 = (llBase == 0); + if (LIKELY((ofBits == 0))) { + if (LIKELY(!ll0)) + offset = seqState->prevOffset[0]; + else { + offset = seqState->prevOffset[1]; + seqState->prevOffset[1] = seqState->prevOffset[0]; + seqState->prevOffset[0] = offset; + } + } else { + offset = ofBase + ll0 + BIT_readBitsFast(&seqState->DStream, 1); + { size_t temp = (offset==3) ? seqState->prevOffset[0] - 1 : seqState->prevOffset[offset]; + temp += !temp; /* 0 is not valid; input is corrupted; force offset to 1 */ + if (offset != 1) seqState->prevOffset[2] = seqState->prevOffset[1]; + seqState->prevOffset[1] = seqState->prevOffset[0]; + seqState->prevOffset[0] = offset = temp; + } } } + seq.offset = offset; + } + + seq.matchLength = mlBase; + if (mlBits > 0) + seq.matchLength += BIT_readBitsFast(&seqState->DStream, mlBits/*>0*/); + + if (MEM_32bits() && (mlBits+llBits >= STREAM_ACCUMULATOR_MIN_32-LONG_OFFSETS_MAX_EXTRA_BITS_32)) + BIT_reloadDStream(&seqState->DStream); + if (MEM_64bits() && UNLIKELY(totalBits >= STREAM_ACCUMULATOR_MIN_64-(LLFSELog+MLFSELog+OffFSELog))) + BIT_reloadDStream(&seqState->DStream); + /* Ensure there are enough bits to read the rest of data in 64-bit mode. */ + ZSTD_STATIC_ASSERT(16+LLFSELog+MLFSELog+OffFSELog < STREAM_ACCUMULATOR_MIN_64); + + seq.litLength = llBase; + if (llBits > 0) + seq.litLength += BIT_readBitsFast(&seqState->DStream, llBits/*>0*/); + + if (MEM_32bits()) + BIT_reloadDStream(&seqState->DStream); + + DEBUGLOG(6, "seq: litL=%u, matchL=%u, offset=%u", + (U32)seq.litLength, (U32)seq.matchLength, (U32)seq.offset); + + /* ANS state update + * gcc-9.0.0 does 2.5% worse with ZSTD_updateFseStateWithDInfo(). + * clang-9.2.0 does 7% worse with ZSTD_updateFseState(). + * Naturally it seems like ZSTD_updateFseStateWithDInfo() should be the + * better option, so it is the default for other compilers. But, if you + * measure that it is worse, please put up a pull request. + */ + { +#if defined(__GNUC__) && !defined(__clang__) + const int kUseUpdateFseState = 1; +#else + const int kUseUpdateFseState = 0; +#endif + if (kUseUpdateFseState) { + ZSTD_updateFseState(&seqState->stateLL, &seqState->DStream); /* <= 9 bits */ + ZSTD_updateFseState(&seqState->stateML, &seqState->DStream); /* <= 9 bits */ + if (MEM_32bits()) BIT_reloadDStream(&seqState->DStream); /* <= 18 bits */ + ZSTD_updateFseState(&seqState->stateOffb, &seqState->DStream); /* <= 8 bits */ + } else { + ZSTD_updateFseStateWithDInfo(&seqState->stateLL, &seqState->DStream, llDInfo); /* <= 9 bits */ + ZSTD_updateFseStateWithDInfo(&seqState->stateML, &seqState->DStream, mlDInfo); /* <= 9 bits */ + if (MEM_32bits()) BIT_reloadDStream(&seqState->DStream); /* <= 18 bits */ + ZSTD_updateFseStateWithDInfo(&seqState->stateOffb, &seqState->DStream, ofDInfo); /* <= 8 bits */ + } + } + + return seq; +} + +#ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION +MEM_STATIC int ZSTD_dictionaryIsActive(ZSTD_DCtx const* dctx, BYTE const* prefixStart, BYTE const* oLitEnd) +{ + size_t const windowSize = dctx->fParams.windowSize; + /* No dictionary used. */ + if (dctx->dictContentEndForFuzzing == NULL) return 0; + /* Dictionary is our prefix. */ + if (prefixStart == dctx->dictContentBeginForFuzzing) return 1; + /* Dictionary is not our ext-dict. */ + if (dctx->dictEnd != dctx->dictContentEndForFuzzing) return 0; + /* Dictionary is not within our window size. */ + if ((size_t)(oLitEnd - prefixStart) >= windowSize) return 0; + /* Dictionary is active. */ + return 1; +} + +MEM_STATIC void ZSTD_assertValidSequence( + ZSTD_DCtx const* dctx, + BYTE const* op, BYTE const* oend, + seq_t const seq, + BYTE const* prefixStart, BYTE const* virtualStart) +{ +#if DEBUGLEVEL >= 1 + size_t const windowSize = dctx->fParams.windowSize; + size_t const sequenceSize = seq.litLength + seq.matchLength; + BYTE const* const oLitEnd = op + seq.litLength; + DEBUGLOG(6, "Checking sequence: litL=%u matchL=%u offset=%u", + (U32)seq.litLength, (U32)seq.matchLength, (U32)seq.offset); + assert(op <= oend); + assert((size_t)(oend - op) >= sequenceSize); + assert(sequenceSize <= ZSTD_BLOCKSIZE_MAX); + if (ZSTD_dictionaryIsActive(dctx, prefixStart, oLitEnd)) { + size_t const dictSize = (size_t)((char const*)dctx->dictContentEndForFuzzing - (char const*)dctx->dictContentBeginForFuzzing); + /* Offset must be within the dictionary. */ + assert(seq.offset <= (size_t)(oLitEnd - virtualStart)); + assert(seq.offset <= windowSize + dictSize); + } else { + /* Offset must be within our window. */ + assert(seq.offset <= windowSize); + } +#else + (void)dctx, (void)op, (void)oend, (void)seq, (void)prefixStart, (void)virtualStart; +#endif +} +#endif + +#ifndef ZSTD_FORCE_DECOMPRESS_SEQUENCES_LONG +FORCE_INLINE_TEMPLATE size_t +DONT_VECTORIZE +ZSTD_decompressSequences_body( ZSTD_DCtx* dctx, + void* dst, size_t maxDstSize, + const void* seqStart, size_t seqSize, int nbSeq, + const ZSTD_longOffset_e isLongOffset, + const int frame) +{ + const BYTE* ip = (const BYTE*)seqStart; + const BYTE* const iend = ip + seqSize; + BYTE* const ostart = (BYTE*)dst; + BYTE* const oend = ostart + maxDstSize; + BYTE* op = ostart; + const BYTE* litPtr = dctx->litPtr; + const BYTE* const litEnd = litPtr + dctx->litSize; + const BYTE* const prefixStart = (const BYTE*) (dctx->prefixStart); + const BYTE* const vBase = (const BYTE*) (dctx->virtualStart); + const BYTE* const dictEnd = (const BYTE*) (dctx->dictEnd); + DEBUGLOG(5, "ZSTD_decompressSequences_body"); + (void)frame; + + /* Regen sequences */ + if (nbSeq) { + seqState_t seqState; + dctx->fseEntropy = 1; + { U32 i; for (i=0; ientropy.rep[i]; } + RETURN_ERROR_IF( + ERR_isError(BIT_initDStream(&seqState.DStream, ip, iend-ip)), + corruption_detected, ""); + ZSTD_initFseState(&seqState.stateLL, &seqState.DStream, dctx->LLTptr); + ZSTD_initFseState(&seqState.stateOffb, &seqState.DStream, dctx->OFTptr); + ZSTD_initFseState(&seqState.stateML, &seqState.DStream, dctx->MLTptr); + assert(dst != NULL); + + ZSTD_STATIC_ASSERT( + BIT_DStream_unfinished < BIT_DStream_completed && + BIT_DStream_endOfBuffer < BIT_DStream_completed && + BIT_DStream_completed < BIT_DStream_overflow); + +#if defined(__GNUC__) && defined(__x86_64__) + /* Align the decompression loop to 32 + 16 bytes. + * + * zstd compiled with gcc-9 on an Intel i9-9900k shows 10% decompression + * speed swings based on the alignment of the decompression loop. This + * performance swing is caused by parts of the decompression loop falling + * out of the DSB. The entire decompression loop should fit in the DSB, + * when it can't we get much worse performance. You can measure if you've + * hit the good case or the bad case with this perf command for some + * compressed file test.zst: + * + * perf stat -e cycles -e instructions -e idq.all_dsb_cycles_any_uops \ + * -e idq.all_mite_cycles_any_uops -- ./zstd -tq test.zst + * + * If you see most cycles served out of the MITE you've hit the bad case. + * If you see most cycles served out of the DSB you've hit the good case. + * If it is pretty even then you may be in an okay case. + * + * This issue has been reproduced on the following CPUs: + * - Kabylake: Macbook Pro (15-inch, 2019) 2.4 GHz Intel Core i9 + * Use Instruments->Counters to get DSB/MITE cycles. + * I never got performance swings, but I was able to + * go from the good case of mostly DSB to half of the + * cycles served from MITE. + * - Coffeelake: Intel i9-9900k + * - Coffeelake: Intel i7-9700k + * + * I haven't been able to reproduce the instability or DSB misses on any + * of the following CPUS: + * - Haswell + * - Broadwell: Intel(R) Xeon(R) CPU E5-2680 v4 @ 2.40GH + * - Skylake + * + * If you are seeing performance stability this script can help test. + * It tests on 4 commits in zstd where I saw performance change. + * + * https://gist.github.com/terrelln/9889fc06a423fd5ca6e99351564473f4 + */ + __asm__(".p2align 6"); + __asm__("nop"); + __asm__(".p2align 5"); + __asm__("nop"); +# if __GNUC__ >= 9 + /* better for gcc-9 and gcc-10, worse for clang and gcc-8 */ + __asm__(".p2align 3"); +# else + __asm__(".p2align 4"); +# endif +#endif + for ( ; ; ) { + seq_t const sequence = ZSTD_decodeSequence(&seqState, isLongOffset); + size_t const oneSeqSize = ZSTD_execSequence(op, oend, sequence, &litPtr, litEnd, prefixStart, vBase, dictEnd); +#if defined(FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION) && defined(FUZZING_ASSERT_VALID_SEQUENCE) + assert(!ZSTD_isError(oneSeqSize)); + if (frame) ZSTD_assertValidSequence(dctx, op, oend, sequence, prefixStart, vBase); +#endif + if (UNLIKELY(ZSTD_isError(oneSeqSize))) + return oneSeqSize; + DEBUGLOG(6, "regenerated sequence size : %u", (U32)oneSeqSize); + op += oneSeqSize; + if (UNLIKELY(!--nbSeq)) + break; + BIT_reloadDStream(&(seqState.DStream)); + } + + /* check if reached exact end */ + DEBUGLOG(5, "ZSTD_decompressSequences_body: after decode loop, remaining nbSeq : %i", nbSeq); + RETURN_ERROR_IF(nbSeq, corruption_detected, ""); + RETURN_ERROR_IF(BIT_reloadDStream(&seqState.DStream) < BIT_DStream_completed, corruption_detected, ""); + /* save reps for next block */ + { U32 i; for (i=0; ientropy.rep[i] = (U32)(seqState.prevOffset[i]); } + } + + /* last literal segment */ + { size_t const lastLLSize = litEnd - litPtr; + RETURN_ERROR_IF(lastLLSize > (size_t)(oend-op), dstSize_tooSmall, ""); + if (op != NULL) { + ZSTD_memcpy(op, litPtr, lastLLSize); + op += lastLLSize; + } + } + + return op-ostart; +} + +static size_t +ZSTD_decompressSequences_default(ZSTD_DCtx* dctx, + void* dst, size_t maxDstSize, + const void* seqStart, size_t seqSize, int nbSeq, + const ZSTD_longOffset_e isLongOffset, + const int frame) +{ + return ZSTD_decompressSequences_body(dctx, dst, maxDstSize, seqStart, seqSize, nbSeq, isLongOffset, frame); +} +#endif /* ZSTD_FORCE_DECOMPRESS_SEQUENCES_LONG */ + +#ifndef ZSTD_FORCE_DECOMPRESS_SEQUENCES_SHORT + +FORCE_INLINE_TEMPLATE size_t +ZSTD_prefetchMatch(size_t prefetchPos, seq_t const sequence, + const BYTE* const prefixStart, const BYTE* const dictEnd) +{ + prefetchPos += sequence.litLength; + { const BYTE* const matchBase = (sequence.offset > prefetchPos) ? dictEnd : prefixStart; + const BYTE* const match = matchBase + prefetchPos - sequence.offset; /* note : this operation can overflow when seq.offset is really too large, which can only happen when input is corrupted. + * No consequence though : memory address is only used for prefetching, not for dereferencing */ + PREFETCH_L1(match); PREFETCH_L1(match+CACHELINE_SIZE); /* note : it's safe to invoke PREFETCH() on any memory address, including invalid ones */ + } + return prefetchPos + sequence.matchLength; +} + +/* This decoding function employs prefetching + * to reduce latency impact of cache misses. + * It's generally employed when block contains a significant portion of long-distance matches + * or when coupled with a "cold" dictionary */ +FORCE_INLINE_TEMPLATE size_t +ZSTD_decompressSequencesLong_body( + ZSTD_DCtx* dctx, + void* dst, size_t maxDstSize, + const void* seqStart, size_t seqSize, int nbSeq, + const ZSTD_longOffset_e isLongOffset, + const int frame) +{ + const BYTE* ip = (const BYTE*)seqStart; + const BYTE* const iend = ip + seqSize; + BYTE* const ostart = (BYTE*)dst; + BYTE* const oend = ostart + maxDstSize; + BYTE* op = ostart; + const BYTE* litPtr = dctx->litPtr; + const BYTE* const litEnd = litPtr + dctx->litSize; + const BYTE* const prefixStart = (const BYTE*) (dctx->prefixStart); + const BYTE* const dictStart = (const BYTE*) (dctx->virtualStart); + const BYTE* const dictEnd = (const BYTE*) (dctx->dictEnd); + (void)frame; + + /* Regen sequences */ + if (nbSeq) { +#define STORED_SEQS 8 +#define STORED_SEQS_MASK (STORED_SEQS-1) +#define ADVANCED_SEQS STORED_SEQS + seq_t sequences[STORED_SEQS]; + int const seqAdvance = MIN(nbSeq, ADVANCED_SEQS); + seqState_t seqState; + int seqNb; + size_t prefetchPos = (size_t)(op-prefixStart); /* track position relative to prefixStart */ + + dctx->fseEntropy = 1; + { int i; for (i=0; ientropy.rep[i]; } + assert(dst != NULL); + assert(iend >= ip); + RETURN_ERROR_IF( + ERR_isError(BIT_initDStream(&seqState.DStream, ip, iend-ip)), + corruption_detected, ""); + ZSTD_initFseState(&seqState.stateLL, &seqState.DStream, dctx->LLTptr); + ZSTD_initFseState(&seqState.stateOffb, &seqState.DStream, dctx->OFTptr); + ZSTD_initFseState(&seqState.stateML, &seqState.DStream, dctx->MLTptr); + + /* prepare in advance */ + for (seqNb=0; (BIT_reloadDStream(&seqState.DStream) <= BIT_DStream_completed) && (seqNbentropy.rep[i] = (U32)(seqState.prevOffset[i]); } + } + + /* last literal segment */ + { size_t const lastLLSize = litEnd - litPtr; + RETURN_ERROR_IF(lastLLSize > (size_t)(oend-op), dstSize_tooSmall, ""); + if (op != NULL) { + ZSTD_memcpy(op, litPtr, lastLLSize); + op += lastLLSize; + } + } + + return op-ostart; +} + +static size_t +ZSTD_decompressSequencesLong_default(ZSTD_DCtx* dctx, + void* dst, size_t maxDstSize, + const void* seqStart, size_t seqSize, int nbSeq, + const ZSTD_longOffset_e isLongOffset, + const int frame) +{ + return ZSTD_decompressSequencesLong_body(dctx, dst, maxDstSize, seqStart, seqSize, nbSeq, isLongOffset, frame); +} +#endif /* ZSTD_FORCE_DECOMPRESS_SEQUENCES_SHORT */ + + + +#if DYNAMIC_BMI2 + +#ifndef ZSTD_FORCE_DECOMPRESS_SEQUENCES_LONG +static TARGET_ATTRIBUTE("bmi2") size_t +DONT_VECTORIZE +ZSTD_decompressSequences_bmi2(ZSTD_DCtx* dctx, + void* dst, size_t maxDstSize, + const void* seqStart, size_t seqSize, int nbSeq, + const ZSTD_longOffset_e isLongOffset, + const int frame) +{ + return ZSTD_decompressSequences_body(dctx, dst, maxDstSize, seqStart, seqSize, nbSeq, isLongOffset, frame); +} +#endif /* ZSTD_FORCE_DECOMPRESS_SEQUENCES_LONG */ + +#ifndef ZSTD_FORCE_DECOMPRESS_SEQUENCES_SHORT +static TARGET_ATTRIBUTE("bmi2") size_t +ZSTD_decompressSequencesLong_bmi2(ZSTD_DCtx* dctx, + void* dst, size_t maxDstSize, + const void* seqStart, size_t seqSize, int nbSeq, + const ZSTD_longOffset_e isLongOffset, + const int frame) +{ + return ZSTD_decompressSequencesLong_body(dctx, dst, maxDstSize, seqStart, seqSize, nbSeq, isLongOffset, frame); +} +#endif /* ZSTD_FORCE_DECOMPRESS_SEQUENCES_SHORT */ + +#endif /* DYNAMIC_BMI2 */ + +typedef size_t (*ZSTD_decompressSequences_t)( + ZSTD_DCtx* dctx, + void* dst, size_t maxDstSize, + const void* seqStart, size_t seqSize, int nbSeq, + const ZSTD_longOffset_e isLongOffset, + const int frame); + +#ifndef ZSTD_FORCE_DECOMPRESS_SEQUENCES_LONG +static size_t +ZSTD_decompressSequences(ZSTD_DCtx* dctx, void* dst, size_t maxDstSize, + const void* seqStart, size_t seqSize, int nbSeq, + const ZSTD_longOffset_e isLongOffset, + const int frame) +{ + DEBUGLOG(5, "ZSTD_decompressSequences"); +#if DYNAMIC_BMI2 + if (dctx->bmi2) { + return ZSTD_decompressSequences_bmi2(dctx, dst, maxDstSize, seqStart, seqSize, nbSeq, isLongOffset, frame); + } +#endif + return ZSTD_decompressSequences_default(dctx, dst, maxDstSize, seqStart, seqSize, nbSeq, isLongOffset, frame); +} +#endif /* ZSTD_FORCE_DECOMPRESS_SEQUENCES_LONG */ + + +#ifndef ZSTD_FORCE_DECOMPRESS_SEQUENCES_SHORT +/* ZSTD_decompressSequencesLong() : + * decompression function triggered when a minimum share of offsets is considered "long", + * aka out of cache. + * note : "long" definition seems overloaded here, sometimes meaning "wider than bitstream register", and sometimes meaning "farther than memory cache distance". + * This function will try to mitigate main memory latency through the use of prefetching */ +static size_t +ZSTD_decompressSequencesLong(ZSTD_DCtx* dctx, + void* dst, size_t maxDstSize, + const void* seqStart, size_t seqSize, int nbSeq, + const ZSTD_longOffset_e isLongOffset, + const int frame) +{ + DEBUGLOG(5, "ZSTD_decompressSequencesLong"); +#if DYNAMIC_BMI2 + if (dctx->bmi2) { + return ZSTD_decompressSequencesLong_bmi2(dctx, dst, maxDstSize, seqStart, seqSize, nbSeq, isLongOffset, frame); + } +#endif + return ZSTD_decompressSequencesLong_default(dctx, dst, maxDstSize, seqStart, seqSize, nbSeq, isLongOffset, frame); +} +#endif /* ZSTD_FORCE_DECOMPRESS_SEQUENCES_SHORT */ + + + +#if !defined(ZSTD_FORCE_DECOMPRESS_SEQUENCES_SHORT) && \ + !defined(ZSTD_FORCE_DECOMPRESS_SEQUENCES_LONG) +/* ZSTD_getLongOffsetsShare() : + * condition : offTable must be valid + * @return : "share" of long offsets (arbitrarily defined as > (1<<23)) + * compared to maximum possible of (1< 22) total += 1; + } + + assert(tableLog <= OffFSELog); + total <<= (OffFSELog - tableLog); /* scale to OffFSELog */ + + return total; +} +#endif + +size_t +ZSTD_decompressBlock_internal(ZSTD_DCtx* dctx, + void* dst, size_t dstCapacity, + const void* src, size_t srcSize, const int frame) +{ /* blockType == blockCompressed */ + const BYTE* ip = (const BYTE*)src; + /* isLongOffset must be true if there are long offsets. + * Offsets are long if they are larger than 2^STREAM_ACCUMULATOR_MIN. + * We don't expect that to be the case in 64-bit mode. + * In block mode, window size is not known, so we have to be conservative. + * (note: but it could be evaluated from current-lowLimit) + */ + ZSTD_longOffset_e const isLongOffset = (ZSTD_longOffset_e)(MEM_32bits() && (!frame || (dctx->fParams.windowSize > (1ULL << STREAM_ACCUMULATOR_MIN)))); + DEBUGLOG(5, "ZSTD_decompressBlock_internal (size : %u)", (U32)srcSize); + + RETURN_ERROR_IF(srcSize >= ZSTD_BLOCKSIZE_MAX, srcSize_wrong, ""); + + /* Decode literals section */ + { size_t const litCSize = ZSTD_decodeLiteralsBlock(dctx, src, srcSize); + DEBUGLOG(5, "ZSTD_decodeLiteralsBlock : %u", (U32)litCSize); + if (ZSTD_isError(litCSize)) return litCSize; + ip += litCSize; + srcSize -= litCSize; + } + + /* Build Decoding Tables */ + { + /* These macros control at build-time which decompressor implementation + * we use. If neither is defined, we do some inspection and dispatch at + * runtime. + */ +#if !defined(ZSTD_FORCE_DECOMPRESS_SEQUENCES_SHORT) && \ + !defined(ZSTD_FORCE_DECOMPRESS_SEQUENCES_LONG) + int usePrefetchDecoder = dctx->ddictIsCold; +#endif + int nbSeq; + size_t const seqHSize = ZSTD_decodeSeqHeaders(dctx, &nbSeq, ip, srcSize); + if (ZSTD_isError(seqHSize)) return seqHSize; + ip += seqHSize; + srcSize -= seqHSize; + + RETURN_ERROR_IF(dst == NULL && nbSeq > 0, dstSize_tooSmall, "NULL not handled"); + +#if !defined(ZSTD_FORCE_DECOMPRESS_SEQUENCES_SHORT) && \ + !defined(ZSTD_FORCE_DECOMPRESS_SEQUENCES_LONG) + if ( !usePrefetchDecoder + && (!frame || (dctx->fParams.windowSize > (1<<24))) + && (nbSeq>ADVANCED_SEQS) ) { /* could probably use a larger nbSeq limit */ + U32 const shareLongOffsets = ZSTD_getLongOffsetsShare(dctx->OFTptr); + U32 const minShare = MEM_64bits() ? 7 : 20; /* heuristic values, correspond to 2.73% and 7.81% */ + usePrefetchDecoder = (shareLongOffsets >= minShare); + } +#endif + + dctx->ddictIsCold = 0; + +#if !defined(ZSTD_FORCE_DECOMPRESS_SEQUENCES_SHORT) && \ + !defined(ZSTD_FORCE_DECOMPRESS_SEQUENCES_LONG) + if (usePrefetchDecoder) +#endif +#ifndef ZSTD_FORCE_DECOMPRESS_SEQUENCES_SHORT + return ZSTD_decompressSequencesLong(dctx, dst, dstCapacity, ip, srcSize, nbSeq, isLongOffset, frame); +#endif + +#ifndef ZSTD_FORCE_DECOMPRESS_SEQUENCES_LONG + /* else */ + return ZSTD_decompressSequences(dctx, dst, dstCapacity, ip, srcSize, nbSeq, isLongOffset, frame); +#endif + } +} + + +void ZSTD_checkContinuity(ZSTD_DCtx* dctx, const void* dst, size_t dstSize) +{ + if (dst != dctx->previousDstEnd && dstSize > 0) { /* not contiguous */ + dctx->dictEnd = dctx->previousDstEnd; + dctx->virtualStart = (const char*)dst - ((const char*)(dctx->previousDstEnd) - (const char*)(dctx->prefixStart)); + dctx->prefixStart = dst; + dctx->previousDstEnd = dst; + } +} + + +size_t ZSTD_decompressBlock(ZSTD_DCtx* dctx, + void* dst, size_t dstCapacity, + const void* src, size_t srcSize) +{ + size_t dSize; + ZSTD_checkContinuity(dctx, dst, dstCapacity); + dSize = ZSTD_decompressBlock_internal(dctx, dst, dstCapacity, src, srcSize, /* frame */ 0); + dctx->previousDstEnd = (char*)dst + dSize; + return dSize; +} diff --git a/dependencies/zstd-1.5.0/lib/decompress/zstd_decompress_block.h b/dependencies/zstd-1.5.0/lib/decompress/zstd_decompress_block.h new file mode 100644 index 0000000..049a0cd --- /dev/null +++ b/dependencies/zstd-1.5.0/lib/decompress/zstd_decompress_block.h @@ -0,0 +1,62 @@ +/* + * Copyright (c) Yann Collet, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + + +#ifndef ZSTD_DEC_BLOCK_H +#define ZSTD_DEC_BLOCK_H + +/*-******************************************************* + * Dependencies + *********************************************************/ +#include "../common/zstd_deps.h" /* size_t */ +#include "../zstd.h" /* DCtx, and some public functions */ +#include "../common/zstd_internal.h" /* blockProperties_t, and some public functions */ +#include "zstd_decompress_internal.h" /* ZSTD_seqSymbol */ + + +/* === Prototypes === */ + +/* note: prototypes already published within `zstd.h` : + * ZSTD_decompressBlock() + */ + +/* note: prototypes already published within `zstd_internal.h` : + * ZSTD_getcBlockSize() + * ZSTD_decodeSeqHeaders() + */ + + +/* ZSTD_decompressBlock_internal() : + * decompress block, starting at `src`, + * into destination buffer `dst`. + * @return : decompressed block size, + * or an error code (which can be tested using ZSTD_isError()) + */ +size_t ZSTD_decompressBlock_internal(ZSTD_DCtx* dctx, + void* dst, size_t dstCapacity, + const void* src, size_t srcSize, const int frame); + +/* ZSTD_buildFSETable() : + * generate FSE decoding table for one symbol (ll, ml or off) + * this function must be called with valid parameters only + * (dt is large enough, normalizedCounter distribution total is a power of 2, max is within range, etc.) + * in which case it cannot fail. + * The workspace must be 4-byte aligned and at least ZSTD_BUILD_FSE_TABLE_WKSP_SIZE bytes, which is + * defined in zstd_decompress_internal.h. + * Internal use only. + */ +void ZSTD_buildFSETable(ZSTD_seqSymbol* dt, + const short* normalizedCounter, unsigned maxSymbolValue, + const U32* baseValue, const U32* nbAdditionalBits, + unsigned tableLog, void* wksp, size_t wkspSize, + int bmi2); + + +#endif /* ZSTD_DEC_BLOCK_H */ diff --git a/dependencies/zstd-1.5.0/lib/decompress/zstd_decompress_internal.h b/dependencies/zstd-1.5.0/lib/decompress/zstd_decompress_internal.h new file mode 100644 index 0000000..ebda0c9 --- /dev/null +++ b/dependencies/zstd-1.5.0/lib/decompress/zstd_decompress_internal.h @@ -0,0 +1,205 @@ +/* + * Copyright (c) Yann Collet, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + + +/* zstd_decompress_internal: + * objects and definitions shared within lib/decompress modules */ + + #ifndef ZSTD_DECOMPRESS_INTERNAL_H + #define ZSTD_DECOMPRESS_INTERNAL_H + + +/*-******************************************************* + * Dependencies + *********************************************************/ +#include "../common/mem.h" /* BYTE, U16, U32 */ +#include "../common/zstd_internal.h" /* ZSTD_seqSymbol */ + + + +/*-******************************************************* + * Constants + *********************************************************/ +static UNUSED_ATTR const U32 LL_base[MaxLL+1] = { + 0, 1, 2, 3, 4, 5, 6, 7, + 8, 9, 10, 11, 12, 13, 14, 15, + 16, 18, 20, 22, 24, 28, 32, 40, + 48, 64, 0x80, 0x100, 0x200, 0x400, 0x800, 0x1000, + 0x2000, 0x4000, 0x8000, 0x10000 }; + +static UNUSED_ATTR const U32 OF_base[MaxOff+1] = { + 0, 1, 1, 5, 0xD, 0x1D, 0x3D, 0x7D, + 0xFD, 0x1FD, 0x3FD, 0x7FD, 0xFFD, 0x1FFD, 0x3FFD, 0x7FFD, + 0xFFFD, 0x1FFFD, 0x3FFFD, 0x7FFFD, 0xFFFFD, 0x1FFFFD, 0x3FFFFD, 0x7FFFFD, + 0xFFFFFD, 0x1FFFFFD, 0x3FFFFFD, 0x7FFFFFD, 0xFFFFFFD, 0x1FFFFFFD, 0x3FFFFFFD, 0x7FFFFFFD }; + +static UNUSED_ATTR const U32 OF_bits[MaxOff+1] = { + 0, 1, 2, 3, 4, 5, 6, 7, + 8, 9, 10, 11, 12, 13, 14, 15, + 16, 17, 18, 19, 20, 21, 22, 23, + 24, 25, 26, 27, 28, 29, 30, 31 }; + +static UNUSED_ATTR const U32 ML_base[MaxML+1] = { + 3, 4, 5, 6, 7, 8, 9, 10, + 11, 12, 13, 14, 15, 16, 17, 18, + 19, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 29, 30, 31, 32, 33, 34, + 35, 37, 39, 41, 43, 47, 51, 59, + 67, 83, 99, 0x83, 0x103, 0x203, 0x403, 0x803, + 0x1003, 0x2003, 0x4003, 0x8003, 0x10003 }; + + +/*-******************************************************* + * Decompression types + *********************************************************/ + typedef struct { + U32 fastMode; + U32 tableLog; + } ZSTD_seqSymbol_header; + + typedef struct { + U16 nextState; + BYTE nbAdditionalBits; + BYTE nbBits; + U32 baseValue; + } ZSTD_seqSymbol; + + #define SEQSYMBOL_TABLE_SIZE(log) (1 + (1 << (log))) + +#define ZSTD_BUILD_FSE_TABLE_WKSP_SIZE (sizeof(S16) * (MaxSeq + 1) + (1u << MaxFSELog) + sizeof(U64)) +#define ZSTD_BUILD_FSE_TABLE_WKSP_SIZE_U32 ((ZSTD_BUILD_FSE_TABLE_WKSP_SIZE + sizeof(U32) - 1) / sizeof(U32)) + +typedef struct { + ZSTD_seqSymbol LLTable[SEQSYMBOL_TABLE_SIZE(LLFSELog)]; /* Note : Space reserved for FSE Tables */ + ZSTD_seqSymbol OFTable[SEQSYMBOL_TABLE_SIZE(OffFSELog)]; /* is also used as temporary workspace while building hufTable during DDict creation */ + ZSTD_seqSymbol MLTable[SEQSYMBOL_TABLE_SIZE(MLFSELog)]; /* and therefore must be at least HUF_DECOMPRESS_WORKSPACE_SIZE large */ + HUF_DTable hufTable[HUF_DTABLE_SIZE(HufLog)]; /* can accommodate HUF_decompress4X */ + U32 rep[ZSTD_REP_NUM]; + U32 workspace[ZSTD_BUILD_FSE_TABLE_WKSP_SIZE_U32]; +} ZSTD_entropyDTables_t; + +typedef enum { ZSTDds_getFrameHeaderSize, ZSTDds_decodeFrameHeader, + ZSTDds_decodeBlockHeader, ZSTDds_decompressBlock, + ZSTDds_decompressLastBlock, ZSTDds_checkChecksum, + ZSTDds_decodeSkippableHeader, ZSTDds_skipFrame } ZSTD_dStage; + +typedef enum { zdss_init=0, zdss_loadHeader, + zdss_read, zdss_load, zdss_flush } ZSTD_dStreamStage; + +typedef enum { + ZSTD_use_indefinitely = -1, /* Use the dictionary indefinitely */ + ZSTD_dont_use = 0, /* Do not use the dictionary (if one exists free it) */ + ZSTD_use_once = 1 /* Use the dictionary once and set to ZSTD_dont_use */ +} ZSTD_dictUses_e; + +/* Hashset for storing references to multiple ZSTD_DDict within ZSTD_DCtx */ +typedef struct { + const ZSTD_DDict** ddictPtrTable; + size_t ddictPtrTableSize; + size_t ddictPtrCount; +} ZSTD_DDictHashSet; + +struct ZSTD_DCtx_s +{ + const ZSTD_seqSymbol* LLTptr; + const ZSTD_seqSymbol* MLTptr; + const ZSTD_seqSymbol* OFTptr; + const HUF_DTable* HUFptr; + ZSTD_entropyDTables_t entropy; + U32 workspace[HUF_DECOMPRESS_WORKSPACE_SIZE_U32]; /* space needed when building huffman tables */ + const void* previousDstEnd; /* detect continuity */ + const void* prefixStart; /* start of current segment */ + const void* virtualStart; /* virtual start of previous segment if it was just before current one */ + const void* dictEnd; /* end of previous segment */ + size_t expected; + ZSTD_frameHeader fParams; + U64 processedCSize; + U64 decodedSize; + blockType_e bType; /* used in ZSTD_decompressContinue(), store blockType between block header decoding and block decompression stages */ + ZSTD_dStage stage; + U32 litEntropy; + U32 fseEntropy; + XXH64_state_t xxhState; + size_t headerSize; + ZSTD_format_e format; + ZSTD_forceIgnoreChecksum_e forceIgnoreChecksum; /* User specified: if == 1, will ignore checksums in compressed frame. Default == 0 */ + U32 validateChecksum; /* if == 1, will validate checksum. Is == 1 if (fParams.checksumFlag == 1) and (forceIgnoreChecksum == 0). */ + const BYTE* litPtr; + ZSTD_customMem customMem; + size_t litSize; + size_t rleSize; + size_t staticSize; + int bmi2; /* == 1 if the CPU supports BMI2 and 0 otherwise. CPU support is determined dynamically once per context lifetime. */ + + /* dictionary */ + ZSTD_DDict* ddictLocal; + const ZSTD_DDict* ddict; /* set by ZSTD_initDStream_usingDDict(), or ZSTD_DCtx_refDDict() */ + U32 dictID; + int ddictIsCold; /* if == 1 : dictionary is "new" for working context, and presumed "cold" (not in cpu cache) */ + ZSTD_dictUses_e dictUses; + ZSTD_DDictHashSet* ddictSet; /* Hash set for multiple ddicts */ + ZSTD_refMultipleDDicts_e refMultipleDDicts; /* User specified: if == 1, will allow references to multiple DDicts. Default == 0 (disabled) */ + + /* streaming */ + ZSTD_dStreamStage streamStage; + char* inBuff; + size_t inBuffSize; + size_t inPos; + size_t maxWindowSize; + char* outBuff; + size_t outBuffSize; + size_t outStart; + size_t outEnd; + size_t lhSize; + void* legacyContext; + U32 previousLegacyVersion; + U32 legacyVersion; + U32 hostageByte; + int noForwardProgress; + ZSTD_bufferMode_e outBufferMode; + ZSTD_outBuffer expectedOutBuffer; + + /* workspace */ + BYTE litBuffer[ZSTD_BLOCKSIZE_MAX + WILDCOPY_OVERLENGTH]; + BYTE headerBuffer[ZSTD_FRAMEHEADERSIZE_MAX]; + + size_t oversizedDuration; + +#ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION + void const* dictContentBeginForFuzzing; + void const* dictContentEndForFuzzing; +#endif + + /* Tracing */ +#if ZSTD_TRACE + ZSTD_TraceCtx traceCtx; +#endif +}; /* typedef'd to ZSTD_DCtx within "zstd.h" */ + + +/*-******************************************************* + * Shared internal functions + *********************************************************/ + +/*! ZSTD_loadDEntropy() : + * dict : must point at beginning of a valid zstd dictionary. + * @return : size of dictionary header (size of magic number + dict ID + entropy tables) */ +size_t ZSTD_loadDEntropy(ZSTD_entropyDTables_t* entropy, + const void* const dict, size_t const dictSize); + +/*! ZSTD_checkContinuity() : + * check if next `dst` follows previous position, where decompression ended. + * If yes, do nothing (continue on current segment). + * If not, classify previous segment as "external dictionary", and start a new segment. + * This function cannot fail. */ +void ZSTD_checkContinuity(ZSTD_DCtx* dctx, const void* dst, size_t dstSize); + + +#endif /* ZSTD_DECOMPRESS_INTERNAL_H */ diff --git a/dependencies/zstd-1.5.0/lib/deprecated/zbuff.h b/dependencies/zstd-1.5.0/lib/deprecated/zbuff.h new file mode 100644 index 0000000..b83ea0f --- /dev/null +++ b/dependencies/zstd-1.5.0/lib/deprecated/zbuff.h @@ -0,0 +1,214 @@ +/* + * Copyright (c) Yann Collet, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + +/* *************************************************************** +* NOTES/WARNINGS +******************************************************************/ +/* The streaming API defined here is deprecated. + * Consider migrating towards ZSTD_compressStream() API in `zstd.h` + * See 'lib/README.md'. + *****************************************************************/ + + +#if defined (__cplusplus) +extern "C" { +#endif + +#ifndef ZSTD_BUFFERED_H_23987 +#define ZSTD_BUFFERED_H_23987 + +/* ************************************* +* Dependencies +***************************************/ +#include /* size_t */ +#include "../zstd.h" /* ZSTD_CStream, ZSTD_DStream, ZSTDLIB_API */ + + +/* *************************************************************** +* Compiler specifics +*****************************************************************/ +/* Deprecation warnings */ +/* Should these warnings be a problem, + * it is generally possible to disable them, + * typically with -Wno-deprecated-declarations for gcc + * or _CRT_SECURE_NO_WARNINGS in Visual. + * Otherwise, it's also possible to define ZBUFF_DISABLE_DEPRECATE_WARNINGS + */ +#ifdef ZBUFF_DISABLE_DEPRECATE_WARNINGS +# define ZBUFF_DEPRECATED(message) ZSTDLIB_API /* disable deprecation warnings */ +#else +# if defined (__cplusplus) && (__cplusplus >= 201402) /* C++14 or greater */ +# define ZBUFF_DEPRECATED(message) [[deprecated(message)]] ZSTDLIB_API +# elif (defined(GNUC) && (GNUC > 4 || (GNUC == 4 && GNUC_MINOR >= 5))) || defined(__clang__) +# define ZBUFF_DEPRECATED(message) ZSTDLIB_API __attribute__((deprecated(message))) +# elif defined(__GNUC__) && (__GNUC__ >= 3) +# define ZBUFF_DEPRECATED(message) ZSTDLIB_API __attribute__((deprecated)) +# elif defined(_MSC_VER) +# define ZBUFF_DEPRECATED(message) ZSTDLIB_API __declspec(deprecated(message)) +# else +# pragma message("WARNING: You need to implement ZBUFF_DEPRECATED for this compiler") +# define ZBUFF_DEPRECATED(message) ZSTDLIB_API +# endif +#endif /* ZBUFF_DISABLE_DEPRECATE_WARNINGS */ + + +/* ************************************* +* Streaming functions +***************************************/ +/* This is the easier "buffered" streaming API, +* using an internal buffer to lift all restrictions on user-provided buffers +* which can be any size, any place, for both input and output. +* ZBUFF and ZSTD are 100% interoperable, +* frames created by one can be decoded by the other one */ + +typedef ZSTD_CStream ZBUFF_CCtx; +ZBUFF_DEPRECATED("use ZSTD_createCStream") ZBUFF_CCtx* ZBUFF_createCCtx(void); +ZBUFF_DEPRECATED("use ZSTD_freeCStream") size_t ZBUFF_freeCCtx(ZBUFF_CCtx* cctx); + +ZBUFF_DEPRECATED("use ZSTD_initCStream") size_t ZBUFF_compressInit(ZBUFF_CCtx* cctx, int compressionLevel); +ZBUFF_DEPRECATED("use ZSTD_initCStream_usingDict") size_t ZBUFF_compressInitDictionary(ZBUFF_CCtx* cctx, const void* dict, size_t dictSize, int compressionLevel); + +ZBUFF_DEPRECATED("use ZSTD_compressStream") size_t ZBUFF_compressContinue(ZBUFF_CCtx* cctx, void* dst, size_t* dstCapacityPtr, const void* src, size_t* srcSizePtr); +ZBUFF_DEPRECATED("use ZSTD_flushStream") size_t ZBUFF_compressFlush(ZBUFF_CCtx* cctx, void* dst, size_t* dstCapacityPtr); +ZBUFF_DEPRECATED("use ZSTD_endStream") size_t ZBUFF_compressEnd(ZBUFF_CCtx* cctx, void* dst, size_t* dstCapacityPtr); + +/*-************************************************* +* Streaming compression - howto +* +* A ZBUFF_CCtx object is required to track streaming operation. +* Use ZBUFF_createCCtx() and ZBUFF_freeCCtx() to create/release resources. +* ZBUFF_CCtx objects can be reused multiple times. +* +* Start by initializing ZBUF_CCtx. +* Use ZBUFF_compressInit() to start a new compression operation. +* Use ZBUFF_compressInitDictionary() for a compression which requires a dictionary. +* +* Use ZBUFF_compressContinue() repetitively to consume input stream. +* *srcSizePtr and *dstCapacityPtr can be any size. +* The function will report how many bytes were read or written within *srcSizePtr and *dstCapacityPtr. +* Note that it may not consume the entire input, in which case it's up to the caller to present again remaining data. +* The content of `dst` will be overwritten (up to *dstCapacityPtr) at each call, so save its content if it matters or change @dst . +* @return : a hint to preferred nb of bytes to use as input for next function call (it's just a hint, to improve latency) +* or an error code, which can be tested using ZBUFF_isError(). +* +* At any moment, it's possible to flush whatever data remains within buffer, using ZBUFF_compressFlush(). +* The nb of bytes written into `dst` will be reported into *dstCapacityPtr. +* Note that the function cannot output more than *dstCapacityPtr, +* therefore, some content might still be left into internal buffer if *dstCapacityPtr is too small. +* @return : nb of bytes still present into internal buffer (0 if it's empty) +* or an error code, which can be tested using ZBUFF_isError(). +* +* ZBUFF_compressEnd() instructs to finish a frame. +* It will perform a flush and write frame epilogue. +* The epilogue is required for decoders to consider a frame completed. +* Similar to ZBUFF_compressFlush(), it may not be able to output the entire internal buffer content if *dstCapacityPtr is too small. +* In which case, call again ZBUFF_compressFlush() to complete the flush. +* @return : nb of bytes still present into internal buffer (0 if it's empty) +* or an error code, which can be tested using ZBUFF_isError(). +* +* Hint : _recommended buffer_ sizes (not compulsory) : ZBUFF_recommendedCInSize() / ZBUFF_recommendedCOutSize() +* input : ZBUFF_recommendedCInSize==128 KB block size is the internal unit, use this value to reduce intermediate stages (better latency) +* output : ZBUFF_recommendedCOutSize==ZSTD_compressBound(128 KB) + 3 + 3 : ensures it's always possible to write/flush/end a full block. Skip some buffering. +* By using both, it ensures that input will be entirely consumed, and output will always contain the result, reducing intermediate buffering. +* **************************************************/ + + +typedef ZSTD_DStream ZBUFF_DCtx; +ZBUFF_DEPRECATED("use ZSTD_createDStream") ZBUFF_DCtx* ZBUFF_createDCtx(void); +ZBUFF_DEPRECATED("use ZSTD_freeDStream") size_t ZBUFF_freeDCtx(ZBUFF_DCtx* dctx); + +ZBUFF_DEPRECATED("use ZSTD_initDStream") size_t ZBUFF_decompressInit(ZBUFF_DCtx* dctx); +ZBUFF_DEPRECATED("use ZSTD_initDStream_usingDict") size_t ZBUFF_decompressInitDictionary(ZBUFF_DCtx* dctx, const void* dict, size_t dictSize); + +ZBUFF_DEPRECATED("use ZSTD_decompressStream") size_t ZBUFF_decompressContinue(ZBUFF_DCtx* dctx, + void* dst, size_t* dstCapacityPtr, + const void* src, size_t* srcSizePtr); + +/*-*************************************************************************** +* Streaming decompression howto +* +* A ZBUFF_DCtx object is required to track streaming operations. +* Use ZBUFF_createDCtx() and ZBUFF_freeDCtx() to create/release resources. +* Use ZBUFF_decompressInit() to start a new decompression operation, +* or ZBUFF_decompressInitDictionary() if decompression requires a dictionary. +* Note that ZBUFF_DCtx objects can be re-init multiple times. +* +* Use ZBUFF_decompressContinue() repetitively to consume your input. +* *srcSizePtr and *dstCapacityPtr can be any size. +* The function will report how many bytes were read or written by modifying *srcSizePtr and *dstCapacityPtr. +* Note that it may not consume the entire input, in which case it's up to the caller to present remaining input again. +* The content of `dst` will be overwritten (up to *dstCapacityPtr) at each function call, so save its content if it matters, or change `dst`. +* @return : 0 when a frame is completely decoded and fully flushed, +* 1 when there is still some data left within internal buffer to flush, +* >1 when more data is expected, with value being a suggested next input size (it's just a hint, which helps latency), +* or an error code, which can be tested using ZBUFF_isError(). +* +* Hint : recommended buffer sizes (not compulsory) : ZBUFF_recommendedDInSize() and ZBUFF_recommendedDOutSize() +* output : ZBUFF_recommendedDOutSize== 128 KB block size is the internal unit, it ensures it's always possible to write a full block when decoded. +* input : ZBUFF_recommendedDInSize == 128KB + 3; +* just follow indications from ZBUFF_decompressContinue() to minimize latency. It should always be <= 128 KB + 3 . +* *******************************************************************************/ + + +/* ************************************* +* Tool functions +***************************************/ +ZBUFF_DEPRECATED("use ZSTD_isError") unsigned ZBUFF_isError(size_t errorCode); +ZBUFF_DEPRECATED("use ZSTD_getErrorName") const char* ZBUFF_getErrorName(size_t errorCode); + +/** Functions below provide recommended buffer sizes for Compression or Decompression operations. +* These sizes are just hints, they tend to offer better latency */ +ZBUFF_DEPRECATED("use ZSTD_CStreamInSize") size_t ZBUFF_recommendedCInSize(void); +ZBUFF_DEPRECATED("use ZSTD_CStreamOutSize") size_t ZBUFF_recommendedCOutSize(void); +ZBUFF_DEPRECATED("use ZSTD_DStreamInSize") size_t ZBUFF_recommendedDInSize(void); +ZBUFF_DEPRECATED("use ZSTD_DStreamOutSize") size_t ZBUFF_recommendedDOutSize(void); + +#endif /* ZSTD_BUFFERED_H_23987 */ + + +#ifdef ZBUFF_STATIC_LINKING_ONLY +#ifndef ZBUFF_STATIC_H_30298098432 +#define ZBUFF_STATIC_H_30298098432 + +/* ==================================================================================== + * The definitions in this section are considered experimental. + * They should never be used in association with a dynamic library, as they may change in the future. + * They are provided for advanced usages. + * Use them only in association with static linking. + * ==================================================================================== */ + +/*--- Dependency ---*/ +#define ZSTD_STATIC_LINKING_ONLY /* ZSTD_parameters, ZSTD_customMem */ +#include "../zstd.h" + + +/*--- Custom memory allocator ---*/ +/*! ZBUFF_createCCtx_advanced() : + * Create a ZBUFF compression context using external alloc and free functions */ +ZBUFF_DEPRECATED("use ZSTD_createCStream_advanced") ZBUFF_CCtx* ZBUFF_createCCtx_advanced(ZSTD_customMem customMem); + +/*! ZBUFF_createDCtx_advanced() : + * Create a ZBUFF decompression context using external alloc and free functions */ +ZBUFF_DEPRECATED("use ZSTD_createDStream_advanced") ZBUFF_DCtx* ZBUFF_createDCtx_advanced(ZSTD_customMem customMem); + + +/*--- Advanced Streaming Initialization ---*/ +ZBUFF_DEPRECATED("use ZSTD_initDStream_usingDict") size_t ZBUFF_compressInit_advanced(ZBUFF_CCtx* zbc, + const void* dict, size_t dictSize, + ZSTD_parameters params, unsigned long long pledgedSrcSize); + + +#endif /* ZBUFF_STATIC_H_30298098432 */ +#endif /* ZBUFF_STATIC_LINKING_ONLY */ + + +#if defined (__cplusplus) +} +#endif diff --git a/dependencies/zstd-1.5.0/lib/deprecated/zbuff_common.c b/dependencies/zstd-1.5.0/lib/deprecated/zbuff_common.c new file mode 100644 index 0000000..e7d01a0 --- /dev/null +++ b/dependencies/zstd-1.5.0/lib/deprecated/zbuff_common.c @@ -0,0 +1,26 @@ +/* + * Copyright (c) Yann Collet, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + +/*-************************************* +* Dependencies +***************************************/ +#include "../common/error_private.h" +#include "zbuff.h" + +/*-**************************************** +* ZBUFF Error Management (deprecated) +******************************************/ + +/*! ZBUFF_isError() : +* tells if a return value is an error code */ +unsigned ZBUFF_isError(size_t errorCode) { return ERR_isError(errorCode); } +/*! ZBUFF_getErrorName() : +* provides error code string from function result (useful for debugging) */ +const char* ZBUFF_getErrorName(size_t errorCode) { return ERR_getErrorName(errorCode); } diff --git a/dependencies/zstd-1.5.0/lib/deprecated/zbuff_compress.c b/dependencies/zstd-1.5.0/lib/deprecated/zbuff_compress.c new file mode 100644 index 0000000..2e72267 --- /dev/null +++ b/dependencies/zstd-1.5.0/lib/deprecated/zbuff_compress.c @@ -0,0 +1,147 @@ +/* + * Copyright (c) Yann Collet, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + + + +/* ************************************* +* Dependencies +***************************************/ +#define ZBUFF_STATIC_LINKING_ONLY +#include "zbuff.h" + + +/*-*********************************************************** +* Streaming compression +* +* A ZBUFF_CCtx object is required to track streaming operation. +* Use ZBUFF_createCCtx() and ZBUFF_freeCCtx() to create/release resources. +* Use ZBUFF_compressInit() to start a new compression operation. +* ZBUFF_CCtx objects can be reused multiple times. +* +* Use ZBUFF_compressContinue() repetitively to consume your input. +* *srcSizePtr and *dstCapacityPtr can be any size. +* The function will report how many bytes were read or written by modifying *srcSizePtr and *dstCapacityPtr. +* Note that it may not consume the entire input, in which case it's up to the caller to call again the function with remaining input. +* The content of dst will be overwritten (up to *dstCapacityPtr) at each function call, so save its content if it matters or change dst . +* @return : a hint to preferred nb of bytes to use as input for next function call (it's only a hint, to improve latency) +* or an error code, which can be tested using ZBUFF_isError(). +* +* ZBUFF_compressFlush() can be used to instruct ZBUFF to compress and output whatever remains within its buffer. +* Note that it will not output more than *dstCapacityPtr. +* Therefore, some content might still be left into its internal buffer if dst buffer is too small. +* @return : nb of bytes still present into internal buffer (0 if it's empty) +* or an error code, which can be tested using ZBUFF_isError(). +* +* ZBUFF_compressEnd() instructs to finish a frame. +* It will perform a flush and write frame epilogue. +* Similar to ZBUFF_compressFlush(), it may not be able to output the entire internal buffer content if *dstCapacityPtr is too small. +* @return : nb of bytes still present into internal buffer (0 if it's empty) +* or an error code, which can be tested using ZBUFF_isError(). +* +* Hint : recommended buffer sizes (not compulsory) +* input : ZSTD_BLOCKSIZE_MAX (128 KB), internal unit size, it improves latency to use this value. +* output : ZSTD_compressBound(ZSTD_BLOCKSIZE_MAX) + ZSTD_blockHeaderSize + ZBUFF_endFrameSize : ensures it's always possible to write/flush/end a full block at best speed. +* ***********************************************************/ + +ZBUFF_CCtx* ZBUFF_createCCtx(void) +{ + return ZSTD_createCStream(); +} + +ZBUFF_CCtx* ZBUFF_createCCtx_advanced(ZSTD_customMem customMem) +{ + return ZSTD_createCStream_advanced(customMem); +} + +size_t ZBUFF_freeCCtx(ZBUFF_CCtx* zbc) +{ + return ZSTD_freeCStream(zbc); +} + + +/* ====== Initialization ====== */ + +size_t ZBUFF_compressInit_advanced(ZBUFF_CCtx* zbc, + const void* dict, size_t dictSize, + ZSTD_parameters params, unsigned long long pledgedSrcSize) +{ + if (pledgedSrcSize==0) pledgedSrcSize = ZSTD_CONTENTSIZE_UNKNOWN; /* preserve "0 == unknown" behavior */ + return ZSTD_initCStream_advanced(zbc, dict, dictSize, params, pledgedSrcSize); +} + + +size_t ZBUFF_compressInitDictionary(ZBUFF_CCtx* zbc, const void* dict, size_t dictSize, int compressionLevel) +{ + return ZSTD_initCStream_usingDict(zbc, dict, dictSize, compressionLevel); +} + +size_t ZBUFF_compressInit(ZBUFF_CCtx* zbc, int compressionLevel) +{ + return ZSTD_initCStream(zbc, compressionLevel); +} + +/* ====== Compression ====== */ + + +size_t ZBUFF_compressContinue(ZBUFF_CCtx* zbc, + void* dst, size_t* dstCapacityPtr, + const void* src, size_t* srcSizePtr) +{ + size_t result; + ZSTD_outBuffer outBuff; + ZSTD_inBuffer inBuff; + outBuff.dst = dst; + outBuff.pos = 0; + outBuff.size = *dstCapacityPtr; + inBuff.src = src; + inBuff.pos = 0; + inBuff.size = *srcSizePtr; + result = ZSTD_compressStream(zbc, &outBuff, &inBuff); + *dstCapacityPtr = outBuff.pos; + *srcSizePtr = inBuff.pos; + return result; +} + + + +/* ====== Finalize ====== */ + +size_t ZBUFF_compressFlush(ZBUFF_CCtx* zbc, void* dst, size_t* dstCapacityPtr) +{ + size_t result; + ZSTD_outBuffer outBuff; + outBuff.dst = dst; + outBuff.pos = 0; + outBuff.size = *dstCapacityPtr; + result = ZSTD_flushStream(zbc, &outBuff); + *dstCapacityPtr = outBuff.pos; + return result; +} + + +size_t ZBUFF_compressEnd(ZBUFF_CCtx* zbc, void* dst, size_t* dstCapacityPtr) +{ + size_t result; + ZSTD_outBuffer outBuff; + outBuff.dst = dst; + outBuff.pos = 0; + outBuff.size = *dstCapacityPtr; + result = ZSTD_endStream(zbc, &outBuff); + *dstCapacityPtr = outBuff.pos; + return result; +} + + + +/* ************************************* +* Tool functions +***************************************/ +size_t ZBUFF_recommendedCInSize(void) { return ZSTD_CStreamInSize(); } +size_t ZBUFF_recommendedCOutSize(void) { return ZSTD_CStreamOutSize(); } diff --git a/dependencies/zstd-1.5.0/lib/deprecated/zbuff_decompress.c b/dependencies/zstd-1.5.0/lib/deprecated/zbuff_decompress.c new file mode 100644 index 0000000..d73c0f3 --- /dev/null +++ b/dependencies/zstd-1.5.0/lib/deprecated/zbuff_decompress.c @@ -0,0 +1,75 @@ +/* + * Copyright (c) Yann Collet, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + + + +/* ************************************* +* Dependencies +***************************************/ +#define ZBUFF_STATIC_LINKING_ONLY +#include "zbuff.h" + + +ZBUFF_DCtx* ZBUFF_createDCtx(void) +{ + return ZSTD_createDStream(); +} + +ZBUFF_DCtx* ZBUFF_createDCtx_advanced(ZSTD_customMem customMem) +{ + return ZSTD_createDStream_advanced(customMem); +} + +size_t ZBUFF_freeDCtx(ZBUFF_DCtx* zbd) +{ + return ZSTD_freeDStream(zbd); +} + + +/* *** Initialization *** */ + +size_t ZBUFF_decompressInitDictionary(ZBUFF_DCtx* zbd, const void* dict, size_t dictSize) +{ + return ZSTD_initDStream_usingDict(zbd, dict, dictSize); +} + +size_t ZBUFF_decompressInit(ZBUFF_DCtx* zbd) +{ + return ZSTD_initDStream(zbd); +} + + +/* *** Decompression *** */ + +size_t ZBUFF_decompressContinue(ZBUFF_DCtx* zbd, + void* dst, size_t* dstCapacityPtr, + const void* src, size_t* srcSizePtr) +{ + ZSTD_outBuffer outBuff; + ZSTD_inBuffer inBuff; + size_t result; + outBuff.dst = dst; + outBuff.pos = 0; + outBuff.size = *dstCapacityPtr; + inBuff.src = src; + inBuff.pos = 0; + inBuff.size = *srcSizePtr; + result = ZSTD_decompressStream(zbd, &outBuff, &inBuff); + *dstCapacityPtr = outBuff.pos; + *srcSizePtr = inBuff.pos; + return result; +} + + +/* ************************************* +* Tool functions +***************************************/ +size_t ZBUFF_recommendedDInSize(void) { return ZSTD_DStreamInSize(); } +size_t ZBUFF_recommendedDOutSize(void) { return ZSTD_DStreamOutSize(); } diff --git a/dependencies/zstd-1.5.0/lib/dictBuilder/cover.c b/dependencies/zstd-1.5.0/lib/dictBuilder/cover.c new file mode 100644 index 0000000..8364444 --- /dev/null +++ b/dependencies/zstd-1.5.0/lib/dictBuilder/cover.c @@ -0,0 +1,1246 @@ +/* + * Copyright (c) Yann Collet, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + +/* ***************************************************************************** + * Constructs a dictionary using a heuristic based on the following paper: + * + * Liao, Petri, Moffat, Wirth + * Effective Construction of Relative Lempel-Ziv Dictionaries + * Published in WWW 2016. + * + * Adapted from code originally written by @ot (Giuseppe Ottaviano). + ******************************************************************************/ + +/*-************************************* +* Dependencies +***************************************/ +#include /* fprintf */ +#include /* malloc, free, qsort */ +#include /* memset */ +#include /* clock */ + +#ifndef ZDICT_STATIC_LINKING_ONLY +# define ZDICT_STATIC_LINKING_ONLY +#endif + +#include "../common/mem.h" /* read */ +#include "../common/pool.h" +#include "../common/threading.h" +#include "../common/zstd_internal.h" /* includes zstd.h */ +#include "../zdict.h" +#include "cover.h" + +/*-************************************* +* Constants +***************************************/ +#define COVER_MAX_SAMPLES_SIZE (sizeof(size_t) == 8 ? ((unsigned)-1) : ((unsigned)1 GB)) +#define COVER_DEFAULT_SPLITPOINT 1.0 + +/*-************************************* +* Console display +***************************************/ +#ifndef LOCALDISPLAYLEVEL +static int g_displayLevel = 2; +#endif +#undef DISPLAY +#define DISPLAY(...) \ + { \ + fprintf(stderr, __VA_ARGS__); \ + fflush(stderr); \ + } +#undef LOCALDISPLAYLEVEL +#define LOCALDISPLAYLEVEL(displayLevel, l, ...) \ + if (displayLevel >= l) { \ + DISPLAY(__VA_ARGS__); \ + } /* 0 : no display; 1: errors; 2: default; 3: details; 4: debug */ +#undef DISPLAYLEVEL +#define DISPLAYLEVEL(l, ...) LOCALDISPLAYLEVEL(g_displayLevel, l, __VA_ARGS__) + +#ifndef LOCALDISPLAYUPDATE +static const clock_t g_refreshRate = CLOCKS_PER_SEC * 15 / 100; +static clock_t g_time = 0; +#endif +#undef LOCALDISPLAYUPDATE +#define LOCALDISPLAYUPDATE(displayLevel, l, ...) \ + if (displayLevel >= l) { \ + if ((clock() - g_time > g_refreshRate) || (displayLevel >= 4)) { \ + g_time = clock(); \ + DISPLAY(__VA_ARGS__); \ + } \ + } +#undef DISPLAYUPDATE +#define DISPLAYUPDATE(l, ...) LOCALDISPLAYUPDATE(g_displayLevel, l, __VA_ARGS__) + +/*-************************************* +* Hash table +*************************************** +* A small specialized hash map for storing activeDmers. +* The map does not resize, so if it becomes full it will loop forever. +* Thus, the map must be large enough to store every value. +* The map implements linear probing and keeps its load less than 0.5. +*/ + +#define MAP_EMPTY_VALUE ((U32)-1) +typedef struct COVER_map_pair_t_s { + U32 key; + U32 value; +} COVER_map_pair_t; + +typedef struct COVER_map_s { + COVER_map_pair_t *data; + U32 sizeLog; + U32 size; + U32 sizeMask; +} COVER_map_t; + +/** + * Clear the map. + */ +static void COVER_map_clear(COVER_map_t *map) { + memset(map->data, MAP_EMPTY_VALUE, map->size * sizeof(COVER_map_pair_t)); +} + +/** + * Initializes a map of the given size. + * Returns 1 on success and 0 on failure. + * The map must be destroyed with COVER_map_destroy(). + * The map is only guaranteed to be large enough to hold size elements. + */ +static int COVER_map_init(COVER_map_t *map, U32 size) { + map->sizeLog = ZSTD_highbit32(size) + 2; + map->size = (U32)1 << map->sizeLog; + map->sizeMask = map->size - 1; + map->data = (COVER_map_pair_t *)malloc(map->size * sizeof(COVER_map_pair_t)); + if (!map->data) { + map->sizeLog = 0; + map->size = 0; + return 0; + } + COVER_map_clear(map); + return 1; +} + +/** + * Internal hash function + */ +static const U32 COVER_prime4bytes = 2654435761U; +static U32 COVER_map_hash(COVER_map_t *map, U32 key) { + return (key * COVER_prime4bytes) >> (32 - map->sizeLog); +} + +/** + * Helper function that returns the index that a key should be placed into. + */ +static U32 COVER_map_index(COVER_map_t *map, U32 key) { + const U32 hash = COVER_map_hash(map, key); + U32 i; + for (i = hash;; i = (i + 1) & map->sizeMask) { + COVER_map_pair_t *pos = &map->data[i]; + if (pos->value == MAP_EMPTY_VALUE) { + return i; + } + if (pos->key == key) { + return i; + } + } +} + +/** + * Returns the pointer to the value for key. + * If key is not in the map, it is inserted and the value is set to 0. + * The map must not be full. + */ +static U32 *COVER_map_at(COVER_map_t *map, U32 key) { + COVER_map_pair_t *pos = &map->data[COVER_map_index(map, key)]; + if (pos->value == MAP_EMPTY_VALUE) { + pos->key = key; + pos->value = 0; + } + return &pos->value; +} + +/** + * Deletes key from the map if present. + */ +static void COVER_map_remove(COVER_map_t *map, U32 key) { + U32 i = COVER_map_index(map, key); + COVER_map_pair_t *del = &map->data[i]; + U32 shift = 1; + if (del->value == MAP_EMPTY_VALUE) { + return; + } + for (i = (i + 1) & map->sizeMask;; i = (i + 1) & map->sizeMask) { + COVER_map_pair_t *const pos = &map->data[i]; + /* If the position is empty we are done */ + if (pos->value == MAP_EMPTY_VALUE) { + del->value = MAP_EMPTY_VALUE; + return; + } + /* If pos can be moved to del do so */ + if (((i - COVER_map_hash(map, pos->key)) & map->sizeMask) >= shift) { + del->key = pos->key; + del->value = pos->value; + del = pos; + shift = 1; + } else { + ++shift; + } + } +} + +/** + * Destroys a map that is inited with COVER_map_init(). + */ +static void COVER_map_destroy(COVER_map_t *map) { + if (map->data) { + free(map->data); + } + map->data = NULL; + map->size = 0; +} + +/*-************************************* +* Context +***************************************/ + +typedef struct { + const BYTE *samples; + size_t *offsets; + const size_t *samplesSizes; + size_t nbSamples; + size_t nbTrainSamples; + size_t nbTestSamples; + U32 *suffix; + size_t suffixSize; + U32 *freqs; + U32 *dmerAt; + unsigned d; +} COVER_ctx_t; + +/* We need a global context for qsort... */ +static COVER_ctx_t *g_coverCtx = NULL; + +/*-************************************* +* Helper functions +***************************************/ + +/** + * Returns the sum of the sample sizes. + */ +size_t COVER_sum(const size_t *samplesSizes, unsigned nbSamples) { + size_t sum = 0; + unsigned i; + for (i = 0; i < nbSamples; ++i) { + sum += samplesSizes[i]; + } + return sum; +} + +/** + * Returns -1 if the dmer at lp is less than the dmer at rp. + * Return 0 if the dmers at lp and rp are equal. + * Returns 1 if the dmer at lp is greater than the dmer at rp. + */ +static int COVER_cmp(COVER_ctx_t *ctx, const void *lp, const void *rp) { + U32 const lhs = *(U32 const *)lp; + U32 const rhs = *(U32 const *)rp; + return memcmp(ctx->samples + lhs, ctx->samples + rhs, ctx->d); +} +/** + * Faster version for d <= 8. + */ +static int COVER_cmp8(COVER_ctx_t *ctx, const void *lp, const void *rp) { + U64 const mask = (ctx->d == 8) ? (U64)-1 : (((U64)1 << (8 * ctx->d)) - 1); + U64 const lhs = MEM_readLE64(ctx->samples + *(U32 const *)lp) & mask; + U64 const rhs = MEM_readLE64(ctx->samples + *(U32 const *)rp) & mask; + if (lhs < rhs) { + return -1; + } + return (lhs > rhs); +} + +/** + * Same as COVER_cmp() except ties are broken by pointer value + * NOTE: g_coverCtx must be set to call this function. A global is required because + * qsort doesn't take an opaque pointer. + */ +static int WIN_CDECL COVER_strict_cmp(const void *lp, const void *rp) { + int result = COVER_cmp(g_coverCtx, lp, rp); + if (result == 0) { + result = lp < rp ? -1 : 1; + } + return result; +} +/** + * Faster version for d <= 8. + */ +static int WIN_CDECL COVER_strict_cmp8(const void *lp, const void *rp) { + int result = COVER_cmp8(g_coverCtx, lp, rp); + if (result == 0) { + result = lp < rp ? -1 : 1; + } + return result; +} + +/** + * Returns the first pointer in [first, last) whose element does not compare + * less than value. If no such element exists it returns last. + */ +static const size_t *COVER_lower_bound(const size_t *first, const size_t *last, + size_t value) { + size_t count = last - first; + while (count != 0) { + size_t step = count / 2; + const size_t *ptr = first; + ptr += step; + if (*ptr < value) { + first = ++ptr; + count -= step + 1; + } else { + count = step; + } + } + return first; +} + +/** + * Generic groupBy function. + * Groups an array sorted by cmp into groups with equivalent values. + * Calls grp for each group. + */ +static void +COVER_groupBy(const void *data, size_t count, size_t size, COVER_ctx_t *ctx, + int (*cmp)(COVER_ctx_t *, const void *, const void *), + void (*grp)(COVER_ctx_t *, const void *, const void *)) { + const BYTE *ptr = (const BYTE *)data; + size_t num = 0; + while (num < count) { + const BYTE *grpEnd = ptr + size; + ++num; + while (num < count && cmp(ctx, ptr, grpEnd) == 0) { + grpEnd += size; + ++num; + } + grp(ctx, ptr, grpEnd); + ptr = grpEnd; + } +} + +/*-************************************* +* Cover functions +***************************************/ + +/** + * Called on each group of positions with the same dmer. + * Counts the frequency of each dmer and saves it in the suffix array. + * Fills `ctx->dmerAt`. + */ +static void COVER_group(COVER_ctx_t *ctx, const void *group, + const void *groupEnd) { + /* The group consists of all the positions with the same first d bytes. */ + const U32 *grpPtr = (const U32 *)group; + const U32 *grpEnd = (const U32 *)groupEnd; + /* The dmerId is how we will reference this dmer. + * This allows us to map the whole dmer space to a much smaller space, the + * size of the suffix array. + */ + const U32 dmerId = (U32)(grpPtr - ctx->suffix); + /* Count the number of samples this dmer shows up in */ + U32 freq = 0; + /* Details */ + const size_t *curOffsetPtr = ctx->offsets; + const size_t *offsetsEnd = ctx->offsets + ctx->nbSamples; + /* Once *grpPtr >= curSampleEnd this occurrence of the dmer is in a + * different sample than the last. + */ + size_t curSampleEnd = ctx->offsets[0]; + for (; grpPtr != grpEnd; ++grpPtr) { + /* Save the dmerId for this position so we can get back to it. */ + ctx->dmerAt[*grpPtr] = dmerId; + /* Dictionaries only help for the first reference to the dmer. + * After that zstd can reference the match from the previous reference. + * So only count each dmer once for each sample it is in. + */ + if (*grpPtr < curSampleEnd) { + continue; + } + freq += 1; + /* Binary search to find the end of the sample *grpPtr is in. + * In the common case that grpPtr + 1 == grpEnd we can skip the binary + * search because the loop is over. + */ + if (grpPtr + 1 != grpEnd) { + const size_t *sampleEndPtr = + COVER_lower_bound(curOffsetPtr, offsetsEnd, *grpPtr); + curSampleEnd = *sampleEndPtr; + curOffsetPtr = sampleEndPtr + 1; + } + } + /* At this point we are never going to look at this segment of the suffix + * array again. We take advantage of this fact to save memory. + * We store the frequency of the dmer in the first position of the group, + * which is dmerId. + */ + ctx->suffix[dmerId] = freq; +} + + +/** + * Selects the best segment in an epoch. + * Segments of are scored according to the function: + * + * Let F(d) be the frequency of dmer d. + * Let S_i be the dmer at position i of segment S which has length k. + * + * Score(S) = F(S_1) + F(S_2) + ... + F(S_{k-d+1}) + * + * Once the dmer d is in the dictionary we set F(d) = 0. + */ +static COVER_segment_t COVER_selectSegment(const COVER_ctx_t *ctx, U32 *freqs, + COVER_map_t *activeDmers, U32 begin, + U32 end, + ZDICT_cover_params_t parameters) { + /* Constants */ + const U32 k = parameters.k; + const U32 d = parameters.d; + const U32 dmersInK = k - d + 1; + /* Try each segment (activeSegment) and save the best (bestSegment) */ + COVER_segment_t bestSegment = {0, 0, 0}; + COVER_segment_t activeSegment; + /* Reset the activeDmers in the segment */ + COVER_map_clear(activeDmers); + /* The activeSegment starts at the beginning of the epoch. */ + activeSegment.begin = begin; + activeSegment.end = begin; + activeSegment.score = 0; + /* Slide the activeSegment through the whole epoch. + * Save the best segment in bestSegment. + */ + while (activeSegment.end < end) { + /* The dmerId for the dmer at the next position */ + U32 newDmer = ctx->dmerAt[activeSegment.end]; + /* The entry in activeDmers for this dmerId */ + U32 *newDmerOcc = COVER_map_at(activeDmers, newDmer); + /* If the dmer isn't already present in the segment add its score. */ + if (*newDmerOcc == 0) { + /* The paper suggest using the L-0.5 norm, but experiments show that it + * doesn't help. + */ + activeSegment.score += freqs[newDmer]; + } + /* Add the dmer to the segment */ + activeSegment.end += 1; + *newDmerOcc += 1; + + /* If the window is now too large, drop the first position */ + if (activeSegment.end - activeSegment.begin == dmersInK + 1) { + U32 delDmer = ctx->dmerAt[activeSegment.begin]; + U32 *delDmerOcc = COVER_map_at(activeDmers, delDmer); + activeSegment.begin += 1; + *delDmerOcc -= 1; + /* If this is the last occurrence of the dmer, subtract its score */ + if (*delDmerOcc == 0) { + COVER_map_remove(activeDmers, delDmer); + activeSegment.score -= freqs[delDmer]; + } + } + + /* If this segment is the best so far save it */ + if (activeSegment.score > bestSegment.score) { + bestSegment = activeSegment; + } + } + { + /* Trim off the zero frequency head and tail from the segment. */ + U32 newBegin = bestSegment.end; + U32 newEnd = bestSegment.begin; + U32 pos; + for (pos = bestSegment.begin; pos != bestSegment.end; ++pos) { + U32 freq = freqs[ctx->dmerAt[pos]]; + if (freq != 0) { + newBegin = MIN(newBegin, pos); + newEnd = pos + 1; + } + } + bestSegment.begin = newBegin; + bestSegment.end = newEnd; + } + { + /* Zero out the frequency of each dmer covered by the chosen segment. */ + U32 pos; + for (pos = bestSegment.begin; pos != bestSegment.end; ++pos) { + freqs[ctx->dmerAt[pos]] = 0; + } + } + return bestSegment; +} + +/** + * Check the validity of the parameters. + * Returns non-zero if the parameters are valid and 0 otherwise. + */ +static int COVER_checkParameters(ZDICT_cover_params_t parameters, + size_t maxDictSize) { + /* k and d are required parameters */ + if (parameters.d == 0 || parameters.k == 0) { + return 0; + } + /* k <= maxDictSize */ + if (parameters.k > maxDictSize) { + return 0; + } + /* d <= k */ + if (parameters.d > parameters.k) { + return 0; + } + /* 0 < splitPoint <= 1 */ + if (parameters.splitPoint <= 0 || parameters.splitPoint > 1){ + return 0; + } + return 1; +} + +/** + * Clean up a context initialized with `COVER_ctx_init()`. + */ +static void COVER_ctx_destroy(COVER_ctx_t *ctx) { + if (!ctx) { + return; + } + if (ctx->suffix) { + free(ctx->suffix); + ctx->suffix = NULL; + } + if (ctx->freqs) { + free(ctx->freqs); + ctx->freqs = NULL; + } + if (ctx->dmerAt) { + free(ctx->dmerAt); + ctx->dmerAt = NULL; + } + if (ctx->offsets) { + free(ctx->offsets); + ctx->offsets = NULL; + } +} + +/** + * Prepare a context for dictionary building. + * The context is only dependent on the parameter `d` and can used multiple + * times. + * Returns 0 on success or error code on error. + * The context must be destroyed with `COVER_ctx_destroy()`. + */ +static size_t COVER_ctx_init(COVER_ctx_t *ctx, const void *samplesBuffer, + const size_t *samplesSizes, unsigned nbSamples, + unsigned d, double splitPoint) { + const BYTE *const samples = (const BYTE *)samplesBuffer; + const size_t totalSamplesSize = COVER_sum(samplesSizes, nbSamples); + /* Split samples into testing and training sets */ + const unsigned nbTrainSamples = splitPoint < 1.0 ? (unsigned)((double)nbSamples * splitPoint) : nbSamples; + const unsigned nbTestSamples = splitPoint < 1.0 ? nbSamples - nbTrainSamples : nbSamples; + const size_t trainingSamplesSize = splitPoint < 1.0 ? COVER_sum(samplesSizes, nbTrainSamples) : totalSamplesSize; + const size_t testSamplesSize = splitPoint < 1.0 ? COVER_sum(samplesSizes + nbTrainSamples, nbTestSamples) : totalSamplesSize; + /* Checks */ + if (totalSamplesSize < MAX(d, sizeof(U64)) || + totalSamplesSize >= (size_t)COVER_MAX_SAMPLES_SIZE) { + DISPLAYLEVEL(1, "Total samples size is too large (%u MB), maximum size is %u MB\n", + (unsigned)(totalSamplesSize>>20), (COVER_MAX_SAMPLES_SIZE >> 20)); + return ERROR(srcSize_wrong); + } + /* Check if there are at least 5 training samples */ + if (nbTrainSamples < 5) { + DISPLAYLEVEL(1, "Total number of training samples is %u and is invalid.", nbTrainSamples); + return ERROR(srcSize_wrong); + } + /* Check if there's testing sample */ + if (nbTestSamples < 1) { + DISPLAYLEVEL(1, "Total number of testing samples is %u and is invalid.", nbTestSamples); + return ERROR(srcSize_wrong); + } + /* Zero the context */ + memset(ctx, 0, sizeof(*ctx)); + DISPLAYLEVEL(2, "Training on %u samples of total size %u\n", nbTrainSamples, + (unsigned)trainingSamplesSize); + DISPLAYLEVEL(2, "Testing on %u samples of total size %u\n", nbTestSamples, + (unsigned)testSamplesSize); + ctx->samples = samples; + ctx->samplesSizes = samplesSizes; + ctx->nbSamples = nbSamples; + ctx->nbTrainSamples = nbTrainSamples; + ctx->nbTestSamples = nbTestSamples; + /* Partial suffix array */ + ctx->suffixSize = trainingSamplesSize - MAX(d, sizeof(U64)) + 1; + ctx->suffix = (U32 *)malloc(ctx->suffixSize * sizeof(U32)); + /* Maps index to the dmerID */ + ctx->dmerAt = (U32 *)malloc(ctx->suffixSize * sizeof(U32)); + /* The offsets of each file */ + ctx->offsets = (size_t *)malloc((nbSamples + 1) * sizeof(size_t)); + if (!ctx->suffix || !ctx->dmerAt || !ctx->offsets) { + DISPLAYLEVEL(1, "Failed to allocate scratch buffers\n"); + COVER_ctx_destroy(ctx); + return ERROR(memory_allocation); + } + ctx->freqs = NULL; + ctx->d = d; + + /* Fill offsets from the samplesSizes */ + { + U32 i; + ctx->offsets[0] = 0; + for (i = 1; i <= nbSamples; ++i) { + ctx->offsets[i] = ctx->offsets[i - 1] + samplesSizes[i - 1]; + } + } + DISPLAYLEVEL(2, "Constructing partial suffix array\n"); + { + /* suffix is a partial suffix array. + * It only sorts suffixes by their first parameters.d bytes. + * The sort is stable, so each dmer group is sorted by position in input. + */ + U32 i; + for (i = 0; i < ctx->suffixSize; ++i) { + ctx->suffix[i] = i; + } + /* qsort doesn't take an opaque pointer, so pass as a global. + * On OpenBSD qsort() is not guaranteed to be stable, their mergesort() is. + */ + g_coverCtx = ctx; +#if defined(__OpenBSD__) + mergesort(ctx->suffix, ctx->suffixSize, sizeof(U32), + (ctx->d <= 8 ? &COVER_strict_cmp8 : &COVER_strict_cmp)); +#else + qsort(ctx->suffix, ctx->suffixSize, sizeof(U32), + (ctx->d <= 8 ? &COVER_strict_cmp8 : &COVER_strict_cmp)); +#endif + } + DISPLAYLEVEL(2, "Computing frequencies\n"); + /* For each dmer group (group of positions with the same first d bytes): + * 1. For each position we set dmerAt[position] = dmerID. The dmerID is + * (groupBeginPtr - suffix). This allows us to go from position to + * dmerID so we can look up values in freq. + * 2. We calculate how many samples the dmer occurs in and save it in + * freqs[dmerId]. + */ + COVER_groupBy(ctx->suffix, ctx->suffixSize, sizeof(U32), ctx, + (ctx->d <= 8 ? &COVER_cmp8 : &COVER_cmp), &COVER_group); + ctx->freqs = ctx->suffix; + ctx->suffix = NULL; + return 0; +} + +void COVER_warnOnSmallCorpus(size_t maxDictSize, size_t nbDmers, int displayLevel) +{ + const double ratio = (double)nbDmers / maxDictSize; + if (ratio >= 10) { + return; + } + LOCALDISPLAYLEVEL(displayLevel, 1, + "WARNING: The maximum dictionary size %u is too large " + "compared to the source size %u! " + "size(source)/size(dictionary) = %f, but it should be >= " + "10! This may lead to a subpar dictionary! We recommend " + "training on sources at least 10x, and preferably 100x " + "the size of the dictionary! \n", (U32)maxDictSize, + (U32)nbDmers, ratio); +} + +COVER_epoch_info_t COVER_computeEpochs(U32 maxDictSize, + U32 nbDmers, U32 k, U32 passes) +{ + const U32 minEpochSize = k * 10; + COVER_epoch_info_t epochs; + epochs.num = MAX(1, maxDictSize / k / passes); + epochs.size = nbDmers / epochs.num; + if (epochs.size >= minEpochSize) { + assert(epochs.size * epochs.num <= nbDmers); + return epochs; + } + epochs.size = MIN(minEpochSize, nbDmers); + epochs.num = nbDmers / epochs.size; + assert(epochs.size * epochs.num <= nbDmers); + return epochs; +} + +/** + * Given the prepared context build the dictionary. + */ +static size_t COVER_buildDictionary(const COVER_ctx_t *ctx, U32 *freqs, + COVER_map_t *activeDmers, void *dictBuffer, + size_t dictBufferCapacity, + ZDICT_cover_params_t parameters) { + BYTE *const dict = (BYTE *)dictBuffer; + size_t tail = dictBufferCapacity; + /* Divide the data into epochs. We will select one segment from each epoch. */ + const COVER_epoch_info_t epochs = COVER_computeEpochs( + (U32)dictBufferCapacity, (U32)ctx->suffixSize, parameters.k, 4); + const size_t maxZeroScoreRun = MAX(10, MIN(100, epochs.num >> 3)); + size_t zeroScoreRun = 0; + size_t epoch; + DISPLAYLEVEL(2, "Breaking content into %u epochs of size %u\n", + (U32)epochs.num, (U32)epochs.size); + /* Loop through the epochs until there are no more segments or the dictionary + * is full. + */ + for (epoch = 0; tail > 0; epoch = (epoch + 1) % epochs.num) { + const U32 epochBegin = (U32)(epoch * epochs.size); + const U32 epochEnd = epochBegin + epochs.size; + size_t segmentSize; + /* Select a segment */ + COVER_segment_t segment = COVER_selectSegment( + ctx, freqs, activeDmers, epochBegin, epochEnd, parameters); + /* If the segment covers no dmers, then we are out of content. + * There may be new content in other epochs, for continue for some time. + */ + if (segment.score == 0) { + if (++zeroScoreRun >= maxZeroScoreRun) { + break; + } + continue; + } + zeroScoreRun = 0; + /* Trim the segment if necessary and if it is too small then we are done */ + segmentSize = MIN(segment.end - segment.begin + parameters.d - 1, tail); + if (segmentSize < parameters.d) { + break; + } + /* We fill the dictionary from the back to allow the best segments to be + * referenced with the smallest offsets. + */ + tail -= segmentSize; + memcpy(dict + tail, ctx->samples + segment.begin, segmentSize); + DISPLAYUPDATE( + 2, "\r%u%% ", + (unsigned)(((dictBufferCapacity - tail) * 100) / dictBufferCapacity)); + } + DISPLAYLEVEL(2, "\r%79s\r", ""); + return tail; +} + +ZDICTLIB_API size_t ZDICT_trainFromBuffer_cover( + void *dictBuffer, size_t dictBufferCapacity, + const void *samplesBuffer, const size_t *samplesSizes, unsigned nbSamples, + ZDICT_cover_params_t parameters) +{ + BYTE* const dict = (BYTE*)dictBuffer; + COVER_ctx_t ctx; + COVER_map_t activeDmers; + parameters.splitPoint = 1.0; + /* Initialize global data */ + g_displayLevel = parameters.zParams.notificationLevel; + /* Checks */ + if (!COVER_checkParameters(parameters, dictBufferCapacity)) { + DISPLAYLEVEL(1, "Cover parameters incorrect\n"); + return ERROR(parameter_outOfBound); + } + if (nbSamples == 0) { + DISPLAYLEVEL(1, "Cover must have at least one input file\n"); + return ERROR(srcSize_wrong); + } + if (dictBufferCapacity < ZDICT_DICTSIZE_MIN) { + DISPLAYLEVEL(1, "dictBufferCapacity must be at least %u\n", + ZDICT_DICTSIZE_MIN); + return ERROR(dstSize_tooSmall); + } + /* Initialize context and activeDmers */ + { + size_t const initVal = COVER_ctx_init(&ctx, samplesBuffer, samplesSizes, nbSamples, + parameters.d, parameters.splitPoint); + if (ZSTD_isError(initVal)) { + return initVal; + } + } + COVER_warnOnSmallCorpus(dictBufferCapacity, ctx.suffixSize, g_displayLevel); + if (!COVER_map_init(&activeDmers, parameters.k - parameters.d + 1)) { + DISPLAYLEVEL(1, "Failed to allocate dmer map: out of memory\n"); + COVER_ctx_destroy(&ctx); + return ERROR(memory_allocation); + } + + DISPLAYLEVEL(2, "Building dictionary\n"); + { + const size_t tail = + COVER_buildDictionary(&ctx, ctx.freqs, &activeDmers, dictBuffer, + dictBufferCapacity, parameters); + const size_t dictionarySize = ZDICT_finalizeDictionary( + dict, dictBufferCapacity, dict + tail, dictBufferCapacity - tail, + samplesBuffer, samplesSizes, nbSamples, parameters.zParams); + if (!ZSTD_isError(dictionarySize)) { + DISPLAYLEVEL(2, "Constructed dictionary of size %u\n", + (unsigned)dictionarySize); + } + COVER_ctx_destroy(&ctx); + COVER_map_destroy(&activeDmers); + return dictionarySize; + } +} + + + +size_t COVER_checkTotalCompressedSize(const ZDICT_cover_params_t parameters, + const size_t *samplesSizes, const BYTE *samples, + size_t *offsets, + size_t nbTrainSamples, size_t nbSamples, + BYTE *const dict, size_t dictBufferCapacity) { + size_t totalCompressedSize = ERROR(GENERIC); + /* Pointers */ + ZSTD_CCtx *cctx; + ZSTD_CDict *cdict; + void *dst; + /* Local variables */ + size_t dstCapacity; + size_t i; + /* Allocate dst with enough space to compress the maximum sized sample */ + { + size_t maxSampleSize = 0; + i = parameters.splitPoint < 1.0 ? nbTrainSamples : 0; + for (; i < nbSamples; ++i) { + maxSampleSize = MAX(samplesSizes[i], maxSampleSize); + } + dstCapacity = ZSTD_compressBound(maxSampleSize); + dst = malloc(dstCapacity); + } + /* Create the cctx and cdict */ + cctx = ZSTD_createCCtx(); + cdict = ZSTD_createCDict(dict, dictBufferCapacity, + parameters.zParams.compressionLevel); + if (!dst || !cctx || !cdict) { + goto _compressCleanup; + } + /* Compress each sample and sum their sizes (or error) */ + totalCompressedSize = dictBufferCapacity; + i = parameters.splitPoint < 1.0 ? nbTrainSamples : 0; + for (; i < nbSamples; ++i) { + const size_t size = ZSTD_compress_usingCDict( + cctx, dst, dstCapacity, samples + offsets[i], + samplesSizes[i], cdict); + if (ZSTD_isError(size)) { + totalCompressedSize = size; + goto _compressCleanup; + } + totalCompressedSize += size; + } +_compressCleanup: + ZSTD_freeCCtx(cctx); + ZSTD_freeCDict(cdict); + if (dst) { + free(dst); + } + return totalCompressedSize; +} + + +/** + * Initialize the `COVER_best_t`. + */ +void COVER_best_init(COVER_best_t *best) { + if (best==NULL) return; /* compatible with init on NULL */ + (void)ZSTD_pthread_mutex_init(&best->mutex, NULL); + (void)ZSTD_pthread_cond_init(&best->cond, NULL); + best->liveJobs = 0; + best->dict = NULL; + best->dictSize = 0; + best->compressedSize = (size_t)-1; + memset(&best->parameters, 0, sizeof(best->parameters)); +} + +/** + * Wait until liveJobs == 0. + */ +void COVER_best_wait(COVER_best_t *best) { + if (!best) { + return; + } + ZSTD_pthread_mutex_lock(&best->mutex); + while (best->liveJobs != 0) { + ZSTD_pthread_cond_wait(&best->cond, &best->mutex); + } + ZSTD_pthread_mutex_unlock(&best->mutex); +} + +/** + * Call COVER_best_wait() and then destroy the COVER_best_t. + */ +void COVER_best_destroy(COVER_best_t *best) { + if (!best) { + return; + } + COVER_best_wait(best); + if (best->dict) { + free(best->dict); + } + ZSTD_pthread_mutex_destroy(&best->mutex); + ZSTD_pthread_cond_destroy(&best->cond); +} + +/** + * Called when a thread is about to be launched. + * Increments liveJobs. + */ +void COVER_best_start(COVER_best_t *best) { + if (!best) { + return; + } + ZSTD_pthread_mutex_lock(&best->mutex); + ++best->liveJobs; + ZSTD_pthread_mutex_unlock(&best->mutex); +} + +/** + * Called when a thread finishes executing, both on error or success. + * Decrements liveJobs and signals any waiting threads if liveJobs == 0. + * If this dictionary is the best so far save it and its parameters. + */ +void COVER_best_finish(COVER_best_t *best, ZDICT_cover_params_t parameters, + COVER_dictSelection_t selection) { + void* dict = selection.dictContent; + size_t compressedSize = selection.totalCompressedSize; + size_t dictSize = selection.dictSize; + if (!best) { + return; + } + { + size_t liveJobs; + ZSTD_pthread_mutex_lock(&best->mutex); + --best->liveJobs; + liveJobs = best->liveJobs; + /* If the new dictionary is better */ + if (compressedSize < best->compressedSize) { + /* Allocate space if necessary */ + if (!best->dict || best->dictSize < dictSize) { + if (best->dict) { + free(best->dict); + } + best->dict = malloc(dictSize); + if (!best->dict) { + best->compressedSize = ERROR(GENERIC); + best->dictSize = 0; + ZSTD_pthread_cond_signal(&best->cond); + ZSTD_pthread_mutex_unlock(&best->mutex); + return; + } + } + /* Save the dictionary, parameters, and size */ + if (dict) { + memcpy(best->dict, dict, dictSize); + best->dictSize = dictSize; + best->parameters = parameters; + best->compressedSize = compressedSize; + } + } + if (liveJobs == 0) { + ZSTD_pthread_cond_broadcast(&best->cond); + } + ZSTD_pthread_mutex_unlock(&best->mutex); + } +} + +COVER_dictSelection_t COVER_dictSelectionError(size_t error) { + COVER_dictSelection_t selection = { NULL, 0, error }; + return selection; +} + +unsigned COVER_dictSelectionIsError(COVER_dictSelection_t selection) { + return (ZSTD_isError(selection.totalCompressedSize) || !selection.dictContent); +} + +void COVER_dictSelectionFree(COVER_dictSelection_t selection){ + free(selection.dictContent); +} + +COVER_dictSelection_t COVER_selectDict(BYTE* customDictContent, size_t dictBufferCapacity, + size_t dictContentSize, const BYTE* samplesBuffer, const size_t* samplesSizes, unsigned nbFinalizeSamples, + size_t nbCheckSamples, size_t nbSamples, ZDICT_cover_params_t params, size_t* offsets, size_t totalCompressedSize) { + + size_t largestDict = 0; + size_t largestCompressed = 0; + BYTE* customDictContentEnd = customDictContent + dictContentSize; + + BYTE * largestDictbuffer = (BYTE *)malloc(dictBufferCapacity); + BYTE * candidateDictBuffer = (BYTE *)malloc(dictBufferCapacity); + double regressionTolerance = ((double)params.shrinkDictMaxRegression / 100.0) + 1.00; + + if (!largestDictbuffer || !candidateDictBuffer) { + free(largestDictbuffer); + free(candidateDictBuffer); + return COVER_dictSelectionError(dictContentSize); + } + + /* Initial dictionary size and compressed size */ + memcpy(largestDictbuffer, customDictContent, dictContentSize); + dictContentSize = ZDICT_finalizeDictionary( + largestDictbuffer, dictBufferCapacity, customDictContent, dictContentSize, + samplesBuffer, samplesSizes, nbFinalizeSamples, params.zParams); + + if (ZDICT_isError(dictContentSize)) { + free(largestDictbuffer); + free(candidateDictBuffer); + return COVER_dictSelectionError(dictContentSize); + } + + totalCompressedSize = COVER_checkTotalCompressedSize(params, samplesSizes, + samplesBuffer, offsets, + nbCheckSamples, nbSamples, + largestDictbuffer, dictContentSize); + + if (ZSTD_isError(totalCompressedSize)) { + free(largestDictbuffer); + free(candidateDictBuffer); + return COVER_dictSelectionError(totalCompressedSize); + } + + if (params.shrinkDict == 0) { + COVER_dictSelection_t selection = { largestDictbuffer, dictContentSize, totalCompressedSize }; + free(candidateDictBuffer); + return selection; + } + + largestDict = dictContentSize; + largestCompressed = totalCompressedSize; + dictContentSize = ZDICT_DICTSIZE_MIN; + + /* Largest dict is initially at least ZDICT_DICTSIZE_MIN */ + while (dictContentSize < largestDict) { + memcpy(candidateDictBuffer, largestDictbuffer, largestDict); + dictContentSize = ZDICT_finalizeDictionary( + candidateDictBuffer, dictBufferCapacity, customDictContentEnd - dictContentSize, dictContentSize, + samplesBuffer, samplesSizes, nbFinalizeSamples, params.zParams); + + if (ZDICT_isError(dictContentSize)) { + free(largestDictbuffer); + free(candidateDictBuffer); + return COVER_dictSelectionError(dictContentSize); + + } + + totalCompressedSize = COVER_checkTotalCompressedSize(params, samplesSizes, + samplesBuffer, offsets, + nbCheckSamples, nbSamples, + candidateDictBuffer, dictContentSize); + + if (ZSTD_isError(totalCompressedSize)) { + free(largestDictbuffer); + free(candidateDictBuffer); + return COVER_dictSelectionError(totalCompressedSize); + } + + if (totalCompressedSize <= largestCompressed * regressionTolerance) { + COVER_dictSelection_t selection = { candidateDictBuffer, dictContentSize, totalCompressedSize }; + free(largestDictbuffer); + return selection; + } + dictContentSize *= 2; + } + dictContentSize = largestDict; + totalCompressedSize = largestCompressed; + { + COVER_dictSelection_t selection = { largestDictbuffer, dictContentSize, totalCompressedSize }; + free(candidateDictBuffer); + return selection; + } +} + +/** + * Parameters for COVER_tryParameters(). + */ +typedef struct COVER_tryParameters_data_s { + const COVER_ctx_t *ctx; + COVER_best_t *best; + size_t dictBufferCapacity; + ZDICT_cover_params_t parameters; +} COVER_tryParameters_data_t; + +/** + * Tries a set of parameters and updates the COVER_best_t with the results. + * This function is thread safe if zstd is compiled with multithreaded support. + * It takes its parameters as an *OWNING* opaque pointer to support threading. + */ +static void COVER_tryParameters(void *opaque) +{ + /* Save parameters as local variables */ + COVER_tryParameters_data_t *const data = (COVER_tryParameters_data_t*)opaque; + const COVER_ctx_t *const ctx = data->ctx; + const ZDICT_cover_params_t parameters = data->parameters; + size_t dictBufferCapacity = data->dictBufferCapacity; + size_t totalCompressedSize = ERROR(GENERIC); + /* Allocate space for hash table, dict, and freqs */ + COVER_map_t activeDmers; + BYTE* const dict = (BYTE*)malloc(dictBufferCapacity); + COVER_dictSelection_t selection = COVER_dictSelectionError(ERROR(GENERIC)); + U32* const freqs = (U32*)malloc(ctx->suffixSize * sizeof(U32)); + if (!COVER_map_init(&activeDmers, parameters.k - parameters.d + 1)) { + DISPLAYLEVEL(1, "Failed to allocate dmer map: out of memory\n"); + goto _cleanup; + } + if (!dict || !freqs) { + DISPLAYLEVEL(1, "Failed to allocate buffers: out of memory\n"); + goto _cleanup; + } + /* Copy the frequencies because we need to modify them */ + memcpy(freqs, ctx->freqs, ctx->suffixSize * sizeof(U32)); + /* Build the dictionary */ + { + const size_t tail = COVER_buildDictionary(ctx, freqs, &activeDmers, dict, + dictBufferCapacity, parameters); + selection = COVER_selectDict(dict + tail, dictBufferCapacity, dictBufferCapacity - tail, + ctx->samples, ctx->samplesSizes, (unsigned)ctx->nbTrainSamples, ctx->nbTrainSamples, ctx->nbSamples, parameters, ctx->offsets, + totalCompressedSize); + + if (COVER_dictSelectionIsError(selection)) { + DISPLAYLEVEL(1, "Failed to select dictionary\n"); + goto _cleanup; + } + } +_cleanup: + free(dict); + COVER_best_finish(data->best, parameters, selection); + free(data); + COVER_map_destroy(&activeDmers); + COVER_dictSelectionFree(selection); + free(freqs); +} + +ZDICTLIB_API size_t ZDICT_optimizeTrainFromBuffer_cover( + void* dictBuffer, size_t dictBufferCapacity, const void* samplesBuffer, + const size_t* samplesSizes, unsigned nbSamples, + ZDICT_cover_params_t* parameters) +{ + /* constants */ + const unsigned nbThreads = parameters->nbThreads; + const double splitPoint = + parameters->splitPoint <= 0.0 ? COVER_DEFAULT_SPLITPOINT : parameters->splitPoint; + const unsigned kMinD = parameters->d == 0 ? 6 : parameters->d; + const unsigned kMaxD = parameters->d == 0 ? 8 : parameters->d; + const unsigned kMinK = parameters->k == 0 ? 50 : parameters->k; + const unsigned kMaxK = parameters->k == 0 ? 2000 : parameters->k; + const unsigned kSteps = parameters->steps == 0 ? 40 : parameters->steps; + const unsigned kStepSize = MAX((kMaxK - kMinK) / kSteps, 1); + const unsigned kIterations = + (1 + (kMaxD - kMinD) / 2) * (1 + (kMaxK - kMinK) / kStepSize); + const unsigned shrinkDict = 0; + /* Local variables */ + const int displayLevel = parameters->zParams.notificationLevel; + unsigned iteration = 1; + unsigned d; + unsigned k; + COVER_best_t best; + POOL_ctx *pool = NULL; + int warned = 0; + + /* Checks */ + if (splitPoint <= 0 || splitPoint > 1) { + LOCALDISPLAYLEVEL(displayLevel, 1, "Incorrect parameters\n"); + return ERROR(parameter_outOfBound); + } + if (kMinK < kMaxD || kMaxK < kMinK) { + LOCALDISPLAYLEVEL(displayLevel, 1, "Incorrect parameters\n"); + return ERROR(parameter_outOfBound); + } + if (nbSamples == 0) { + DISPLAYLEVEL(1, "Cover must have at least one input file\n"); + return ERROR(srcSize_wrong); + } + if (dictBufferCapacity < ZDICT_DICTSIZE_MIN) { + DISPLAYLEVEL(1, "dictBufferCapacity must be at least %u\n", + ZDICT_DICTSIZE_MIN); + return ERROR(dstSize_tooSmall); + } + if (nbThreads > 1) { + pool = POOL_create(nbThreads, 1); + if (!pool) { + return ERROR(memory_allocation); + } + } + /* Initialization */ + COVER_best_init(&best); + /* Turn down global display level to clean up display at level 2 and below */ + g_displayLevel = displayLevel == 0 ? 0 : displayLevel - 1; + /* Loop through d first because each new value needs a new context */ + LOCALDISPLAYLEVEL(displayLevel, 2, "Trying %u different sets of parameters\n", + kIterations); + for (d = kMinD; d <= kMaxD; d += 2) { + /* Initialize the context for this value of d */ + COVER_ctx_t ctx; + LOCALDISPLAYLEVEL(displayLevel, 3, "d=%u\n", d); + { + const size_t initVal = COVER_ctx_init(&ctx, samplesBuffer, samplesSizes, nbSamples, d, splitPoint); + if (ZSTD_isError(initVal)) { + LOCALDISPLAYLEVEL(displayLevel, 1, "Failed to initialize context\n"); + COVER_best_destroy(&best); + POOL_free(pool); + return initVal; + } + } + if (!warned) { + COVER_warnOnSmallCorpus(dictBufferCapacity, ctx.suffixSize, displayLevel); + warned = 1; + } + /* Loop through k reusing the same context */ + for (k = kMinK; k <= kMaxK; k += kStepSize) { + /* Prepare the arguments */ + COVER_tryParameters_data_t *data = (COVER_tryParameters_data_t *)malloc( + sizeof(COVER_tryParameters_data_t)); + LOCALDISPLAYLEVEL(displayLevel, 3, "k=%u\n", k); + if (!data) { + LOCALDISPLAYLEVEL(displayLevel, 1, "Failed to allocate parameters\n"); + COVER_best_destroy(&best); + COVER_ctx_destroy(&ctx); + POOL_free(pool); + return ERROR(memory_allocation); + } + data->ctx = &ctx; + data->best = &best; + data->dictBufferCapacity = dictBufferCapacity; + data->parameters = *parameters; + data->parameters.k = k; + data->parameters.d = d; + data->parameters.splitPoint = splitPoint; + data->parameters.steps = kSteps; + data->parameters.shrinkDict = shrinkDict; + data->parameters.zParams.notificationLevel = g_displayLevel; + /* Check the parameters */ + if (!COVER_checkParameters(data->parameters, dictBufferCapacity)) { + DISPLAYLEVEL(1, "Cover parameters incorrect\n"); + free(data); + continue; + } + /* Call the function and pass ownership of data to it */ + COVER_best_start(&best); + if (pool) { + POOL_add(pool, &COVER_tryParameters, data); + } else { + COVER_tryParameters(data); + } + /* Print status */ + LOCALDISPLAYUPDATE(displayLevel, 2, "\r%u%% ", + (unsigned)((iteration * 100) / kIterations)); + ++iteration; + } + COVER_best_wait(&best); + COVER_ctx_destroy(&ctx); + } + LOCALDISPLAYLEVEL(displayLevel, 2, "\r%79s\r", ""); + /* Fill the output buffer and parameters with output of the best parameters */ + { + const size_t dictSize = best.dictSize; + if (ZSTD_isError(best.compressedSize)) { + const size_t compressedSize = best.compressedSize; + COVER_best_destroy(&best); + POOL_free(pool); + return compressedSize; + } + *parameters = best.parameters; + memcpy(dictBuffer, best.dict, dictSize); + COVER_best_destroy(&best); + POOL_free(pool); + return dictSize; + } +} diff --git a/dependencies/zstd-1.5.0/lib/dictBuilder/cover.h b/dependencies/zstd-1.5.0/lib/dictBuilder/cover.h new file mode 100644 index 0000000..1aacddd --- /dev/null +++ b/dependencies/zstd-1.5.0/lib/dictBuilder/cover.h @@ -0,0 +1,158 @@ +/* + * Copyright (c) Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + +#ifndef ZDICT_STATIC_LINKING_ONLY +# define ZDICT_STATIC_LINKING_ONLY +#endif + +#include /* fprintf */ +#include /* malloc, free, qsort */ +#include /* memset */ +#include /* clock */ +#include "../common/mem.h" /* read */ +#include "../common/pool.h" +#include "../common/threading.h" +#include "../common/zstd_internal.h" /* includes zstd.h */ +#include "../zdict.h" + +/** + * COVER_best_t is used for two purposes: + * 1. Synchronizing threads. + * 2. Saving the best parameters and dictionary. + * + * All of the methods except COVER_best_init() are thread safe if zstd is + * compiled with multithreaded support. + */ +typedef struct COVER_best_s { + ZSTD_pthread_mutex_t mutex; + ZSTD_pthread_cond_t cond; + size_t liveJobs; + void *dict; + size_t dictSize; + ZDICT_cover_params_t parameters; + size_t compressedSize; +} COVER_best_t; + +/** + * A segment is a range in the source as well as the score of the segment. + */ +typedef struct { + U32 begin; + U32 end; + U32 score; +} COVER_segment_t; + +/** + *Number of epochs and size of each epoch. + */ +typedef struct { + U32 num; + U32 size; +} COVER_epoch_info_t; + +/** + * Struct used for the dictionary selection function. + */ +typedef struct COVER_dictSelection { + BYTE* dictContent; + size_t dictSize; + size_t totalCompressedSize; +} COVER_dictSelection_t; + +/** + * Computes the number of epochs and the size of each epoch. + * We will make sure that each epoch gets at least 10 * k bytes. + * + * The COVER algorithms divide the data up into epochs of equal size and + * select one segment from each epoch. + * + * @param maxDictSize The maximum allowed dictionary size. + * @param nbDmers The number of dmers we are training on. + * @param k The parameter k (segment size). + * @param passes The target number of passes over the dmer corpus. + * More passes means a better dictionary. + */ +COVER_epoch_info_t COVER_computeEpochs(U32 maxDictSize, U32 nbDmers, + U32 k, U32 passes); + +/** + * Warns the user when their corpus is too small. + */ +void COVER_warnOnSmallCorpus(size_t maxDictSize, size_t nbDmers, int displayLevel); + +/** + * Checks total compressed size of a dictionary + */ +size_t COVER_checkTotalCompressedSize(const ZDICT_cover_params_t parameters, + const size_t *samplesSizes, const BYTE *samples, + size_t *offsets, + size_t nbTrainSamples, size_t nbSamples, + BYTE *const dict, size_t dictBufferCapacity); + +/** + * Returns the sum of the sample sizes. + */ +size_t COVER_sum(const size_t *samplesSizes, unsigned nbSamples) ; + +/** + * Initialize the `COVER_best_t`. + */ +void COVER_best_init(COVER_best_t *best); + +/** + * Wait until liveJobs == 0. + */ +void COVER_best_wait(COVER_best_t *best); + +/** + * Call COVER_best_wait() and then destroy the COVER_best_t. + */ +void COVER_best_destroy(COVER_best_t *best); + +/** + * Called when a thread is about to be launched. + * Increments liveJobs. + */ +void COVER_best_start(COVER_best_t *best); + +/** + * Called when a thread finishes executing, both on error or success. + * Decrements liveJobs and signals any waiting threads if liveJobs == 0. + * If this dictionary is the best so far save it and its parameters. + */ +void COVER_best_finish(COVER_best_t *best, ZDICT_cover_params_t parameters, + COVER_dictSelection_t selection); +/** + * Error function for COVER_selectDict function. Checks if the return + * value is an error. + */ +unsigned COVER_dictSelectionIsError(COVER_dictSelection_t selection); + + /** + * Error function for COVER_selectDict function. Returns a struct where + * return.totalCompressedSize is a ZSTD error. + */ +COVER_dictSelection_t COVER_dictSelectionError(size_t error); + +/** + * Always call after selectDict is called to free up used memory from + * newly created dictionary. + */ +void COVER_dictSelectionFree(COVER_dictSelection_t selection); + +/** + * Called to finalize the dictionary and select one based on whether or not + * the shrink-dict flag was enabled. If enabled the dictionary used is the + * smallest dictionary within a specified regression of the compressed size + * from the largest dictionary. + */ + COVER_dictSelection_t COVER_selectDict(BYTE* customDictContent, size_t dictBufferCapacity, + size_t dictContentSize, const BYTE* samplesBuffer, const size_t* samplesSizes, unsigned nbFinalizeSamples, + size_t nbCheckSamples, size_t nbSamples, ZDICT_cover_params_t params, size_t* offsets, size_t totalCompressedSize); diff --git a/dependencies/zstd-1.5.0/lib/dictBuilder/divsufsort.c b/dependencies/zstd-1.5.0/lib/dictBuilder/divsufsort.c new file mode 100644 index 0000000..a2870fb --- /dev/null +++ b/dependencies/zstd-1.5.0/lib/dictBuilder/divsufsort.c @@ -0,0 +1,1913 @@ +/* + * divsufsort.c for libdivsufsort-lite + * Copyright (c) 2003-2008 Yuta Mori All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + +/*- Compiler specifics -*/ +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wshorten-64-to-32" +#endif + +#if defined(_MSC_VER) +# pragma warning(disable : 4244) +# pragma warning(disable : 4127) /* C4127 : Condition expression is constant */ +#endif + + +/*- Dependencies -*/ +#include +#include +#include + +#include "divsufsort.h" + +/*- Constants -*/ +#if defined(INLINE) +# undef INLINE +#endif +#if !defined(INLINE) +# define INLINE __inline +#endif +#if defined(ALPHABET_SIZE) && (ALPHABET_SIZE < 1) +# undef ALPHABET_SIZE +#endif +#if !defined(ALPHABET_SIZE) +# define ALPHABET_SIZE (256) +#endif +#define BUCKET_A_SIZE (ALPHABET_SIZE) +#define BUCKET_B_SIZE (ALPHABET_SIZE * ALPHABET_SIZE) +#if defined(SS_INSERTIONSORT_THRESHOLD) +# if SS_INSERTIONSORT_THRESHOLD < 1 +# undef SS_INSERTIONSORT_THRESHOLD +# define SS_INSERTIONSORT_THRESHOLD (1) +# endif +#else +# define SS_INSERTIONSORT_THRESHOLD (8) +#endif +#if defined(SS_BLOCKSIZE) +# if SS_BLOCKSIZE < 0 +# undef SS_BLOCKSIZE +# define SS_BLOCKSIZE (0) +# elif 32768 <= SS_BLOCKSIZE +# undef SS_BLOCKSIZE +# define SS_BLOCKSIZE (32767) +# endif +#else +# define SS_BLOCKSIZE (1024) +#endif +/* minstacksize = log(SS_BLOCKSIZE) / log(3) * 2 */ +#if SS_BLOCKSIZE == 0 +# define SS_MISORT_STACKSIZE (96) +#elif SS_BLOCKSIZE <= 4096 +# define SS_MISORT_STACKSIZE (16) +#else +# define SS_MISORT_STACKSIZE (24) +#endif +#define SS_SMERGE_STACKSIZE (32) +#define TR_INSERTIONSORT_THRESHOLD (8) +#define TR_STACKSIZE (64) + + +/*- Macros -*/ +#ifndef SWAP +# define SWAP(_a, _b) do { t = (_a); (_a) = (_b); (_b) = t; } while(0) +#endif /* SWAP */ +#ifndef MIN +# define MIN(_a, _b) (((_a) < (_b)) ? (_a) : (_b)) +#endif /* MIN */ +#ifndef MAX +# define MAX(_a, _b) (((_a) > (_b)) ? (_a) : (_b)) +#endif /* MAX */ +#define STACK_PUSH(_a, _b, _c, _d)\ + do {\ + assert(ssize < STACK_SIZE);\ + stack[ssize].a = (_a), stack[ssize].b = (_b),\ + stack[ssize].c = (_c), stack[ssize++].d = (_d);\ + } while(0) +#define STACK_PUSH5(_a, _b, _c, _d, _e)\ + do {\ + assert(ssize < STACK_SIZE);\ + stack[ssize].a = (_a), stack[ssize].b = (_b),\ + stack[ssize].c = (_c), stack[ssize].d = (_d), stack[ssize++].e = (_e);\ + } while(0) +#define STACK_POP(_a, _b, _c, _d)\ + do {\ + assert(0 <= ssize);\ + if(ssize == 0) { return; }\ + (_a) = stack[--ssize].a, (_b) = stack[ssize].b,\ + (_c) = stack[ssize].c, (_d) = stack[ssize].d;\ + } while(0) +#define STACK_POP5(_a, _b, _c, _d, _e)\ + do {\ + assert(0 <= ssize);\ + if(ssize == 0) { return; }\ + (_a) = stack[--ssize].a, (_b) = stack[ssize].b,\ + (_c) = stack[ssize].c, (_d) = stack[ssize].d, (_e) = stack[ssize].e;\ + } while(0) +#define BUCKET_A(_c0) bucket_A[(_c0)] +#if ALPHABET_SIZE == 256 +#define BUCKET_B(_c0, _c1) (bucket_B[((_c1) << 8) | (_c0)]) +#define BUCKET_BSTAR(_c0, _c1) (bucket_B[((_c0) << 8) | (_c1)]) +#else +#define BUCKET_B(_c0, _c1) (bucket_B[(_c1) * ALPHABET_SIZE + (_c0)]) +#define BUCKET_BSTAR(_c0, _c1) (bucket_B[(_c0) * ALPHABET_SIZE + (_c1)]) +#endif + + +/*- Private Functions -*/ + +static const int lg_table[256]= { + -1,0,1,1,2,2,2,2,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, + 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, + 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, + 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, + 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7, + 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7, + 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7, + 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7 +}; + +#if (SS_BLOCKSIZE == 0) || (SS_INSERTIONSORT_THRESHOLD < SS_BLOCKSIZE) + +static INLINE +int +ss_ilg(int n) { +#if SS_BLOCKSIZE == 0 + return (n & 0xffff0000) ? + ((n & 0xff000000) ? + 24 + lg_table[(n >> 24) & 0xff] : + 16 + lg_table[(n >> 16) & 0xff]) : + ((n & 0x0000ff00) ? + 8 + lg_table[(n >> 8) & 0xff] : + 0 + lg_table[(n >> 0) & 0xff]); +#elif SS_BLOCKSIZE < 256 + return lg_table[n]; +#else + return (n & 0xff00) ? + 8 + lg_table[(n >> 8) & 0xff] : + 0 + lg_table[(n >> 0) & 0xff]; +#endif +} + +#endif /* (SS_BLOCKSIZE == 0) || (SS_INSERTIONSORT_THRESHOLD < SS_BLOCKSIZE) */ + +#if SS_BLOCKSIZE != 0 + +static const int sqq_table[256] = { + 0, 16, 22, 27, 32, 35, 39, 42, 45, 48, 50, 53, 55, 57, 59, 61, + 64, 65, 67, 69, 71, 73, 75, 76, 78, 80, 81, 83, 84, 86, 87, 89, + 90, 91, 93, 94, 96, 97, 98, 99, 101, 102, 103, 104, 106, 107, 108, 109, +110, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, +128, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, +143, 144, 144, 145, 146, 147, 148, 149, 150, 150, 151, 152, 153, 154, 155, 155, +156, 157, 158, 159, 160, 160, 161, 162, 163, 163, 164, 165, 166, 167, 167, 168, +169, 170, 170, 171, 172, 173, 173, 174, 175, 176, 176, 177, 178, 178, 179, 180, +181, 181, 182, 183, 183, 184, 185, 185, 186, 187, 187, 188, 189, 189, 190, 191, +192, 192, 193, 193, 194, 195, 195, 196, 197, 197, 198, 199, 199, 200, 201, 201, +202, 203, 203, 204, 204, 205, 206, 206, 207, 208, 208, 209, 209, 210, 211, 211, +212, 212, 213, 214, 214, 215, 215, 216, 217, 217, 218, 218, 219, 219, 220, 221, +221, 222, 222, 223, 224, 224, 225, 225, 226, 226, 227, 227, 228, 229, 229, 230, +230, 231, 231, 232, 232, 233, 234, 234, 235, 235, 236, 236, 237, 237, 238, 238, +239, 240, 240, 241, 241, 242, 242, 243, 243, 244, 244, 245, 245, 246, 246, 247, +247, 248, 248, 249, 249, 250, 250, 251, 251, 252, 252, 253, 253, 254, 254, 255 +}; + +static INLINE +int +ss_isqrt(int x) { + int y, e; + + if(x >= (SS_BLOCKSIZE * SS_BLOCKSIZE)) { return SS_BLOCKSIZE; } + e = (x & 0xffff0000) ? + ((x & 0xff000000) ? + 24 + lg_table[(x >> 24) & 0xff] : + 16 + lg_table[(x >> 16) & 0xff]) : + ((x & 0x0000ff00) ? + 8 + lg_table[(x >> 8) & 0xff] : + 0 + lg_table[(x >> 0) & 0xff]); + + if(e >= 16) { + y = sqq_table[x >> ((e - 6) - (e & 1))] << ((e >> 1) - 7); + if(e >= 24) { y = (y + 1 + x / y) >> 1; } + y = (y + 1 + x / y) >> 1; + } else if(e >= 8) { + y = (sqq_table[x >> ((e - 6) - (e & 1))] >> (7 - (e >> 1))) + 1; + } else { + return sqq_table[x] >> 4; + } + + return (x < (y * y)) ? y - 1 : y; +} + +#endif /* SS_BLOCKSIZE != 0 */ + + +/*---------------------------------------------------------------------------*/ + +/* Compares two suffixes. */ +static INLINE +int +ss_compare(const unsigned char *T, + const int *p1, const int *p2, + int depth) { + const unsigned char *U1, *U2, *U1n, *U2n; + + for(U1 = T + depth + *p1, + U2 = T + depth + *p2, + U1n = T + *(p1 + 1) + 2, + U2n = T + *(p2 + 1) + 2; + (U1 < U1n) && (U2 < U2n) && (*U1 == *U2); + ++U1, ++U2) { + } + + return U1 < U1n ? + (U2 < U2n ? *U1 - *U2 : 1) : + (U2 < U2n ? -1 : 0); +} + + +/*---------------------------------------------------------------------------*/ + +#if (SS_BLOCKSIZE != 1) && (SS_INSERTIONSORT_THRESHOLD != 1) + +/* Insertionsort for small size groups */ +static +void +ss_insertionsort(const unsigned char *T, const int *PA, + int *first, int *last, int depth) { + int *i, *j; + int t; + int r; + + for(i = last - 2; first <= i; --i) { + for(t = *i, j = i + 1; 0 < (r = ss_compare(T, PA + t, PA + *j, depth));) { + do { *(j - 1) = *j; } while((++j < last) && (*j < 0)); + if(last <= j) { break; } + } + if(r == 0) { *j = ~*j; } + *(j - 1) = t; + } +} + +#endif /* (SS_BLOCKSIZE != 1) && (SS_INSERTIONSORT_THRESHOLD != 1) */ + + +/*---------------------------------------------------------------------------*/ + +#if (SS_BLOCKSIZE == 0) || (SS_INSERTIONSORT_THRESHOLD < SS_BLOCKSIZE) + +static INLINE +void +ss_fixdown(const unsigned char *Td, const int *PA, + int *SA, int i, int size) { + int j, k; + int v; + int c, d, e; + + for(v = SA[i], c = Td[PA[v]]; (j = 2 * i + 1) < size; SA[i] = SA[k], i = k) { + d = Td[PA[SA[k = j++]]]; + if(d < (e = Td[PA[SA[j]]])) { k = j; d = e; } + if(d <= c) { break; } + } + SA[i] = v; +} + +/* Simple top-down heapsort. */ +static +void +ss_heapsort(const unsigned char *Td, const int *PA, int *SA, int size) { + int i, m; + int t; + + m = size; + if((size % 2) == 0) { + m--; + if(Td[PA[SA[m / 2]]] < Td[PA[SA[m]]]) { SWAP(SA[m], SA[m / 2]); } + } + + for(i = m / 2 - 1; 0 <= i; --i) { ss_fixdown(Td, PA, SA, i, m); } + if((size % 2) == 0) { SWAP(SA[0], SA[m]); ss_fixdown(Td, PA, SA, 0, m); } + for(i = m - 1; 0 < i; --i) { + t = SA[0], SA[0] = SA[i]; + ss_fixdown(Td, PA, SA, 0, i); + SA[i] = t; + } +} + + +/*---------------------------------------------------------------------------*/ + +/* Returns the median of three elements. */ +static INLINE +int * +ss_median3(const unsigned char *Td, const int *PA, + int *v1, int *v2, int *v3) { + int *t; + if(Td[PA[*v1]] > Td[PA[*v2]]) { SWAP(v1, v2); } + if(Td[PA[*v2]] > Td[PA[*v3]]) { + if(Td[PA[*v1]] > Td[PA[*v3]]) { return v1; } + else { return v3; } + } + return v2; +} + +/* Returns the median of five elements. */ +static INLINE +int * +ss_median5(const unsigned char *Td, const int *PA, + int *v1, int *v2, int *v3, int *v4, int *v5) { + int *t; + if(Td[PA[*v2]] > Td[PA[*v3]]) { SWAP(v2, v3); } + if(Td[PA[*v4]] > Td[PA[*v5]]) { SWAP(v4, v5); } + if(Td[PA[*v2]] > Td[PA[*v4]]) { SWAP(v2, v4); SWAP(v3, v5); } + if(Td[PA[*v1]] > Td[PA[*v3]]) { SWAP(v1, v3); } + if(Td[PA[*v1]] > Td[PA[*v4]]) { SWAP(v1, v4); SWAP(v3, v5); } + if(Td[PA[*v3]] > Td[PA[*v4]]) { return v4; } + return v3; +} + +/* Returns the pivot element. */ +static INLINE +int * +ss_pivot(const unsigned char *Td, const int *PA, int *first, int *last) { + int *middle; + int t; + + t = last - first; + middle = first + t / 2; + + if(t <= 512) { + if(t <= 32) { + return ss_median3(Td, PA, first, middle, last - 1); + } else { + t >>= 2; + return ss_median5(Td, PA, first, first + t, middle, last - 1 - t, last - 1); + } + } + t >>= 3; + first = ss_median3(Td, PA, first, first + t, first + (t << 1)); + middle = ss_median3(Td, PA, middle - t, middle, middle + t); + last = ss_median3(Td, PA, last - 1 - (t << 1), last - 1 - t, last - 1); + return ss_median3(Td, PA, first, middle, last); +} + + +/*---------------------------------------------------------------------------*/ + +/* Binary partition for substrings. */ +static INLINE +int * +ss_partition(const int *PA, + int *first, int *last, int depth) { + int *a, *b; + int t; + for(a = first - 1, b = last;;) { + for(; (++a < b) && ((PA[*a] + depth) >= (PA[*a + 1] + 1));) { *a = ~*a; } + for(; (a < --b) && ((PA[*b] + depth) < (PA[*b + 1] + 1));) { } + if(b <= a) { break; } + t = ~*b; + *b = *a; + *a = t; + } + if(first < a) { *first = ~*first; } + return a; +} + +/* Multikey introsort for medium size groups. */ +static +void +ss_mintrosort(const unsigned char *T, const int *PA, + int *first, int *last, + int depth) { +#define STACK_SIZE SS_MISORT_STACKSIZE + struct { int *a, *b, c; int d; } stack[STACK_SIZE]; + const unsigned char *Td; + int *a, *b, *c, *d, *e, *f; + int s, t; + int ssize; + int limit; + int v, x = 0; + + for(ssize = 0, limit = ss_ilg(last - first);;) { + + if((last - first) <= SS_INSERTIONSORT_THRESHOLD) { +#if 1 < SS_INSERTIONSORT_THRESHOLD + if(1 < (last - first)) { ss_insertionsort(T, PA, first, last, depth); } +#endif + STACK_POP(first, last, depth, limit); + continue; + } + + Td = T + depth; + if(limit-- == 0) { ss_heapsort(Td, PA, first, last - first); } + if(limit < 0) { + for(a = first + 1, v = Td[PA[*first]]; a < last; ++a) { + if((x = Td[PA[*a]]) != v) { + if(1 < (a - first)) { break; } + v = x; + first = a; + } + } + if(Td[PA[*first] - 1] < v) { + first = ss_partition(PA, first, a, depth); + } + if((a - first) <= (last - a)) { + if(1 < (a - first)) { + STACK_PUSH(a, last, depth, -1); + last = a, depth += 1, limit = ss_ilg(a - first); + } else { + first = a, limit = -1; + } + } else { + if(1 < (last - a)) { + STACK_PUSH(first, a, depth + 1, ss_ilg(a - first)); + first = a, limit = -1; + } else { + last = a, depth += 1, limit = ss_ilg(a - first); + } + } + continue; + } + + /* choose pivot */ + a = ss_pivot(Td, PA, first, last); + v = Td[PA[*a]]; + SWAP(*first, *a); + + /* partition */ + for(b = first; (++b < last) && ((x = Td[PA[*b]]) == v);) { } + if(((a = b) < last) && (x < v)) { + for(; (++b < last) && ((x = Td[PA[*b]]) <= v);) { + if(x == v) { SWAP(*b, *a); ++a; } + } + } + for(c = last; (b < --c) && ((x = Td[PA[*c]]) == v);) { } + if((b < (d = c)) && (x > v)) { + for(; (b < --c) && ((x = Td[PA[*c]]) >= v);) { + if(x == v) { SWAP(*c, *d); --d; } + } + } + for(; b < c;) { + SWAP(*b, *c); + for(; (++b < c) && ((x = Td[PA[*b]]) <= v);) { + if(x == v) { SWAP(*b, *a); ++a; } + } + for(; (b < --c) && ((x = Td[PA[*c]]) >= v);) { + if(x == v) { SWAP(*c, *d); --d; } + } + } + + if(a <= d) { + c = b - 1; + + if((s = a - first) > (t = b - a)) { s = t; } + for(e = first, f = b - s; 0 < s; --s, ++e, ++f) { SWAP(*e, *f); } + if((s = d - c) > (t = last - d - 1)) { s = t; } + for(e = b, f = last - s; 0 < s; --s, ++e, ++f) { SWAP(*e, *f); } + + a = first + (b - a), c = last - (d - c); + b = (v <= Td[PA[*a] - 1]) ? a : ss_partition(PA, a, c, depth); + + if((a - first) <= (last - c)) { + if((last - c) <= (c - b)) { + STACK_PUSH(b, c, depth + 1, ss_ilg(c - b)); + STACK_PUSH(c, last, depth, limit); + last = a; + } else if((a - first) <= (c - b)) { + STACK_PUSH(c, last, depth, limit); + STACK_PUSH(b, c, depth + 1, ss_ilg(c - b)); + last = a; + } else { + STACK_PUSH(c, last, depth, limit); + STACK_PUSH(first, a, depth, limit); + first = b, last = c, depth += 1, limit = ss_ilg(c - b); + } + } else { + if((a - first) <= (c - b)) { + STACK_PUSH(b, c, depth + 1, ss_ilg(c - b)); + STACK_PUSH(first, a, depth, limit); + first = c; + } else if((last - c) <= (c - b)) { + STACK_PUSH(first, a, depth, limit); + STACK_PUSH(b, c, depth + 1, ss_ilg(c - b)); + first = c; + } else { + STACK_PUSH(first, a, depth, limit); + STACK_PUSH(c, last, depth, limit); + first = b, last = c, depth += 1, limit = ss_ilg(c - b); + } + } + } else { + limit += 1; + if(Td[PA[*first] - 1] < v) { + first = ss_partition(PA, first, last, depth); + limit = ss_ilg(last - first); + } + depth += 1; + } + } +#undef STACK_SIZE +} + +#endif /* (SS_BLOCKSIZE == 0) || (SS_INSERTIONSORT_THRESHOLD < SS_BLOCKSIZE) */ + + +/*---------------------------------------------------------------------------*/ + +#if SS_BLOCKSIZE != 0 + +static INLINE +void +ss_blockswap(int *a, int *b, int n) { + int t; + for(; 0 < n; --n, ++a, ++b) { + t = *a, *a = *b, *b = t; + } +} + +static INLINE +void +ss_rotate(int *first, int *middle, int *last) { + int *a, *b, t; + int l, r; + l = middle - first, r = last - middle; + for(; (0 < l) && (0 < r);) { + if(l == r) { ss_blockswap(first, middle, l); break; } + if(l < r) { + a = last - 1, b = middle - 1; + t = *a; + do { + *a-- = *b, *b-- = *a; + if(b < first) { + *a = t; + last = a; + if((r -= l + 1) <= l) { break; } + a -= 1, b = middle - 1; + t = *a; + } + } while(1); + } else { + a = first, b = middle; + t = *a; + do { + *a++ = *b, *b++ = *a; + if(last <= b) { + *a = t; + first = a + 1; + if((l -= r + 1) <= r) { break; } + a += 1, b = middle; + t = *a; + } + } while(1); + } + } +} + + +/*---------------------------------------------------------------------------*/ + +static +void +ss_inplacemerge(const unsigned char *T, const int *PA, + int *first, int *middle, int *last, + int depth) { + const int *p; + int *a, *b; + int len, half; + int q, r; + int x; + + for(;;) { + if(*(last - 1) < 0) { x = 1; p = PA + ~*(last - 1); } + else { x = 0; p = PA + *(last - 1); } + for(a = first, len = middle - first, half = len >> 1, r = -1; + 0 < len; + len = half, half >>= 1) { + b = a + half; + q = ss_compare(T, PA + ((0 <= *b) ? *b : ~*b), p, depth); + if(q < 0) { + a = b + 1; + half -= (len & 1) ^ 1; + } else { + r = q; + } + } + if(a < middle) { + if(r == 0) { *a = ~*a; } + ss_rotate(a, middle, last); + last -= middle - a; + middle = a; + if(first == middle) { break; } + } + --last; + if(x != 0) { while(*--last < 0) { } } + if(middle == last) { break; } + } +} + + +/*---------------------------------------------------------------------------*/ + +/* Merge-forward with internal buffer. */ +static +void +ss_mergeforward(const unsigned char *T, const int *PA, + int *first, int *middle, int *last, + int *buf, int depth) { + int *a, *b, *c, *bufend; + int t; + int r; + + bufend = buf + (middle - first) - 1; + ss_blockswap(buf, first, middle - first); + + for(t = *(a = first), b = buf, c = middle;;) { + r = ss_compare(T, PA + *b, PA + *c, depth); + if(r < 0) { + do { + *a++ = *b; + if(bufend <= b) { *bufend = t; return; } + *b++ = *a; + } while(*b < 0); + } else if(r > 0) { + do { + *a++ = *c, *c++ = *a; + if(last <= c) { + while(b < bufend) { *a++ = *b, *b++ = *a; } + *a = *b, *b = t; + return; + } + } while(*c < 0); + } else { + *c = ~*c; + do { + *a++ = *b; + if(bufend <= b) { *bufend = t; return; } + *b++ = *a; + } while(*b < 0); + + do { + *a++ = *c, *c++ = *a; + if(last <= c) { + while(b < bufend) { *a++ = *b, *b++ = *a; } + *a = *b, *b = t; + return; + } + } while(*c < 0); + } + } +} + +/* Merge-backward with internal buffer. */ +static +void +ss_mergebackward(const unsigned char *T, const int *PA, + int *first, int *middle, int *last, + int *buf, int depth) { + const int *p1, *p2; + int *a, *b, *c, *bufend; + int t; + int r; + int x; + + bufend = buf + (last - middle) - 1; + ss_blockswap(buf, middle, last - middle); + + x = 0; + if(*bufend < 0) { p1 = PA + ~*bufend; x |= 1; } + else { p1 = PA + *bufend; } + if(*(middle - 1) < 0) { p2 = PA + ~*(middle - 1); x |= 2; } + else { p2 = PA + *(middle - 1); } + for(t = *(a = last - 1), b = bufend, c = middle - 1;;) { + r = ss_compare(T, p1, p2, depth); + if(0 < r) { + if(x & 1) { do { *a-- = *b, *b-- = *a; } while(*b < 0); x ^= 1; } + *a-- = *b; + if(b <= buf) { *buf = t; break; } + *b-- = *a; + if(*b < 0) { p1 = PA + ~*b; x |= 1; } + else { p1 = PA + *b; } + } else if(r < 0) { + if(x & 2) { do { *a-- = *c, *c-- = *a; } while(*c < 0); x ^= 2; } + *a-- = *c, *c-- = *a; + if(c < first) { + while(buf < b) { *a-- = *b, *b-- = *a; } + *a = *b, *b = t; + break; + } + if(*c < 0) { p2 = PA + ~*c; x |= 2; } + else { p2 = PA + *c; } + } else { + if(x & 1) { do { *a-- = *b, *b-- = *a; } while(*b < 0); x ^= 1; } + *a-- = ~*b; + if(b <= buf) { *buf = t; break; } + *b-- = *a; + if(x & 2) { do { *a-- = *c, *c-- = *a; } while(*c < 0); x ^= 2; } + *a-- = *c, *c-- = *a; + if(c < first) { + while(buf < b) { *a-- = *b, *b-- = *a; } + *a = *b, *b = t; + break; + } + if(*b < 0) { p1 = PA + ~*b; x |= 1; } + else { p1 = PA + *b; } + if(*c < 0) { p2 = PA + ~*c; x |= 2; } + else { p2 = PA + *c; } + } + } +} + +/* D&C based merge. */ +static +void +ss_swapmerge(const unsigned char *T, const int *PA, + int *first, int *middle, int *last, + int *buf, int bufsize, int depth) { +#define STACK_SIZE SS_SMERGE_STACKSIZE +#define GETIDX(a) ((0 <= (a)) ? (a) : (~(a))) +#define MERGE_CHECK(a, b, c)\ + do {\ + if(((c) & 1) ||\ + (((c) & 2) && (ss_compare(T, PA + GETIDX(*((a) - 1)), PA + *(a), depth) == 0))) {\ + *(a) = ~*(a);\ + }\ + if(((c) & 4) && ((ss_compare(T, PA + GETIDX(*((b) - 1)), PA + *(b), depth) == 0))) {\ + *(b) = ~*(b);\ + }\ + } while(0) + struct { int *a, *b, *c; int d; } stack[STACK_SIZE]; + int *l, *r, *lm, *rm; + int m, len, half; + int ssize; + int check, next; + + for(check = 0, ssize = 0;;) { + if((last - middle) <= bufsize) { + if((first < middle) && (middle < last)) { + ss_mergebackward(T, PA, first, middle, last, buf, depth); + } + MERGE_CHECK(first, last, check); + STACK_POP(first, middle, last, check); + continue; + } + + if((middle - first) <= bufsize) { + if(first < middle) { + ss_mergeforward(T, PA, first, middle, last, buf, depth); + } + MERGE_CHECK(first, last, check); + STACK_POP(first, middle, last, check); + continue; + } + + for(m = 0, len = MIN(middle - first, last - middle), half = len >> 1; + 0 < len; + len = half, half >>= 1) { + if(ss_compare(T, PA + GETIDX(*(middle + m + half)), + PA + GETIDX(*(middle - m - half - 1)), depth) < 0) { + m += half + 1; + half -= (len & 1) ^ 1; + } + } + + if(0 < m) { + lm = middle - m, rm = middle + m; + ss_blockswap(lm, middle, m); + l = r = middle, next = 0; + if(rm < last) { + if(*rm < 0) { + *rm = ~*rm; + if(first < lm) { for(; *--l < 0;) { } next |= 4; } + next |= 1; + } else if(first < lm) { + for(; *r < 0; ++r) { } + next |= 2; + } + } + + if((l - first) <= (last - r)) { + STACK_PUSH(r, rm, last, (next & 3) | (check & 4)); + middle = lm, last = l, check = (check & 3) | (next & 4); + } else { + if((next & 2) && (r == middle)) { next ^= 6; } + STACK_PUSH(first, lm, l, (check & 3) | (next & 4)); + first = r, middle = rm, check = (next & 3) | (check & 4); + } + } else { + if(ss_compare(T, PA + GETIDX(*(middle - 1)), PA + *middle, depth) == 0) { + *middle = ~*middle; + } + MERGE_CHECK(first, last, check); + STACK_POP(first, middle, last, check); + } + } +#undef STACK_SIZE +} + +#endif /* SS_BLOCKSIZE != 0 */ + + +/*---------------------------------------------------------------------------*/ + +/* Substring sort */ +static +void +sssort(const unsigned char *T, const int *PA, + int *first, int *last, + int *buf, int bufsize, + int depth, int n, int lastsuffix) { + int *a; +#if SS_BLOCKSIZE != 0 + int *b, *middle, *curbuf; + int j, k, curbufsize, limit; +#endif + int i; + + if(lastsuffix != 0) { ++first; } + +#if SS_BLOCKSIZE == 0 + ss_mintrosort(T, PA, first, last, depth); +#else + if((bufsize < SS_BLOCKSIZE) && + (bufsize < (last - first)) && + (bufsize < (limit = ss_isqrt(last - first)))) { + if(SS_BLOCKSIZE < limit) { limit = SS_BLOCKSIZE; } + buf = middle = last - limit, bufsize = limit; + } else { + middle = last, limit = 0; + } + for(a = first, i = 0; SS_BLOCKSIZE < (middle - a); a += SS_BLOCKSIZE, ++i) { +#if SS_INSERTIONSORT_THRESHOLD < SS_BLOCKSIZE + ss_mintrosort(T, PA, a, a + SS_BLOCKSIZE, depth); +#elif 1 < SS_BLOCKSIZE + ss_insertionsort(T, PA, a, a + SS_BLOCKSIZE, depth); +#endif + curbufsize = last - (a + SS_BLOCKSIZE); + curbuf = a + SS_BLOCKSIZE; + if(curbufsize <= bufsize) { curbufsize = bufsize, curbuf = buf; } + for(b = a, k = SS_BLOCKSIZE, j = i; j & 1; b -= k, k <<= 1, j >>= 1) { + ss_swapmerge(T, PA, b - k, b, b + k, curbuf, curbufsize, depth); + } + } +#if SS_INSERTIONSORT_THRESHOLD < SS_BLOCKSIZE + ss_mintrosort(T, PA, a, middle, depth); +#elif 1 < SS_BLOCKSIZE + ss_insertionsort(T, PA, a, middle, depth); +#endif + for(k = SS_BLOCKSIZE; i != 0; k <<= 1, i >>= 1) { + if(i & 1) { + ss_swapmerge(T, PA, a - k, a, middle, buf, bufsize, depth); + a -= k; + } + } + if(limit != 0) { +#if SS_INSERTIONSORT_THRESHOLD < SS_BLOCKSIZE + ss_mintrosort(T, PA, middle, last, depth); +#elif 1 < SS_BLOCKSIZE + ss_insertionsort(T, PA, middle, last, depth); +#endif + ss_inplacemerge(T, PA, first, middle, last, depth); + } +#endif + + if(lastsuffix != 0) { + /* Insert last type B* suffix. */ + int PAi[2]; PAi[0] = PA[*(first - 1)], PAi[1] = n - 2; + for(a = first, i = *(first - 1); + (a < last) && ((*a < 0) || (0 < ss_compare(T, &(PAi[0]), PA + *a, depth))); + ++a) { + *(a - 1) = *a; + } + *(a - 1) = i; + } +} + + +/*---------------------------------------------------------------------------*/ + +static INLINE +int +tr_ilg(int n) { + return (n & 0xffff0000) ? + ((n & 0xff000000) ? + 24 + lg_table[(n >> 24) & 0xff] : + 16 + lg_table[(n >> 16) & 0xff]) : + ((n & 0x0000ff00) ? + 8 + lg_table[(n >> 8) & 0xff] : + 0 + lg_table[(n >> 0) & 0xff]); +} + + +/*---------------------------------------------------------------------------*/ + +/* Simple insertionsort for small size groups. */ +static +void +tr_insertionsort(const int *ISAd, int *first, int *last) { + int *a, *b; + int t, r; + + for(a = first + 1; a < last; ++a) { + for(t = *a, b = a - 1; 0 > (r = ISAd[t] - ISAd[*b]);) { + do { *(b + 1) = *b; } while((first <= --b) && (*b < 0)); + if(b < first) { break; } + } + if(r == 0) { *b = ~*b; } + *(b + 1) = t; + } +} + + +/*---------------------------------------------------------------------------*/ + +static INLINE +void +tr_fixdown(const int *ISAd, int *SA, int i, int size) { + int j, k; + int v; + int c, d, e; + + for(v = SA[i], c = ISAd[v]; (j = 2 * i + 1) < size; SA[i] = SA[k], i = k) { + d = ISAd[SA[k = j++]]; + if(d < (e = ISAd[SA[j]])) { k = j; d = e; } + if(d <= c) { break; } + } + SA[i] = v; +} + +/* Simple top-down heapsort. */ +static +void +tr_heapsort(const int *ISAd, int *SA, int size) { + int i, m; + int t; + + m = size; + if((size % 2) == 0) { + m--; + if(ISAd[SA[m / 2]] < ISAd[SA[m]]) { SWAP(SA[m], SA[m / 2]); } + } + + for(i = m / 2 - 1; 0 <= i; --i) { tr_fixdown(ISAd, SA, i, m); } + if((size % 2) == 0) { SWAP(SA[0], SA[m]); tr_fixdown(ISAd, SA, 0, m); } + for(i = m - 1; 0 < i; --i) { + t = SA[0], SA[0] = SA[i]; + tr_fixdown(ISAd, SA, 0, i); + SA[i] = t; + } +} + + +/*---------------------------------------------------------------------------*/ + +/* Returns the median of three elements. */ +static INLINE +int * +tr_median3(const int *ISAd, int *v1, int *v2, int *v3) { + int *t; + if(ISAd[*v1] > ISAd[*v2]) { SWAP(v1, v2); } + if(ISAd[*v2] > ISAd[*v3]) { + if(ISAd[*v1] > ISAd[*v3]) { return v1; } + else { return v3; } + } + return v2; +} + +/* Returns the median of five elements. */ +static INLINE +int * +tr_median5(const int *ISAd, + int *v1, int *v2, int *v3, int *v4, int *v5) { + int *t; + if(ISAd[*v2] > ISAd[*v3]) { SWAP(v2, v3); } + if(ISAd[*v4] > ISAd[*v5]) { SWAP(v4, v5); } + if(ISAd[*v2] > ISAd[*v4]) { SWAP(v2, v4); SWAP(v3, v5); } + if(ISAd[*v1] > ISAd[*v3]) { SWAP(v1, v3); } + if(ISAd[*v1] > ISAd[*v4]) { SWAP(v1, v4); SWAP(v3, v5); } + if(ISAd[*v3] > ISAd[*v4]) { return v4; } + return v3; +} + +/* Returns the pivot element. */ +static INLINE +int * +tr_pivot(const int *ISAd, int *first, int *last) { + int *middle; + int t; + + t = last - first; + middle = first + t / 2; + + if(t <= 512) { + if(t <= 32) { + return tr_median3(ISAd, first, middle, last - 1); + } else { + t >>= 2; + return tr_median5(ISAd, first, first + t, middle, last - 1 - t, last - 1); + } + } + t >>= 3; + first = tr_median3(ISAd, first, first + t, first + (t << 1)); + middle = tr_median3(ISAd, middle - t, middle, middle + t); + last = tr_median3(ISAd, last - 1 - (t << 1), last - 1 - t, last - 1); + return tr_median3(ISAd, first, middle, last); +} + + +/*---------------------------------------------------------------------------*/ + +typedef struct _trbudget_t trbudget_t; +struct _trbudget_t { + int chance; + int remain; + int incval; + int count; +}; + +static INLINE +void +trbudget_init(trbudget_t *budget, int chance, int incval) { + budget->chance = chance; + budget->remain = budget->incval = incval; +} + +static INLINE +int +trbudget_check(trbudget_t *budget, int size) { + if(size <= budget->remain) { budget->remain -= size; return 1; } + if(budget->chance == 0) { budget->count += size; return 0; } + budget->remain += budget->incval - size; + budget->chance -= 1; + return 1; +} + + +/*---------------------------------------------------------------------------*/ + +static INLINE +void +tr_partition(const int *ISAd, + int *first, int *middle, int *last, + int **pa, int **pb, int v) { + int *a, *b, *c, *d, *e, *f; + int t, s; + int x = 0; + + for(b = middle - 1; (++b < last) && ((x = ISAd[*b]) == v);) { } + if(((a = b) < last) && (x < v)) { + for(; (++b < last) && ((x = ISAd[*b]) <= v);) { + if(x == v) { SWAP(*b, *a); ++a; } + } + } + for(c = last; (b < --c) && ((x = ISAd[*c]) == v);) { } + if((b < (d = c)) && (x > v)) { + for(; (b < --c) && ((x = ISAd[*c]) >= v);) { + if(x == v) { SWAP(*c, *d); --d; } + } + } + for(; b < c;) { + SWAP(*b, *c); + for(; (++b < c) && ((x = ISAd[*b]) <= v);) { + if(x == v) { SWAP(*b, *a); ++a; } + } + for(; (b < --c) && ((x = ISAd[*c]) >= v);) { + if(x == v) { SWAP(*c, *d); --d; } + } + } + + if(a <= d) { + c = b - 1; + if((s = a - first) > (t = b - a)) { s = t; } + for(e = first, f = b - s; 0 < s; --s, ++e, ++f) { SWAP(*e, *f); } + if((s = d - c) > (t = last - d - 1)) { s = t; } + for(e = b, f = last - s; 0 < s; --s, ++e, ++f) { SWAP(*e, *f); } + first += (b - a), last -= (d - c); + } + *pa = first, *pb = last; +} + +static +void +tr_copy(int *ISA, const int *SA, + int *first, int *a, int *b, int *last, + int depth) { + /* sort suffixes of middle partition + by using sorted order of suffixes of left and right partition. */ + int *c, *d, *e; + int s, v; + + v = b - SA - 1; + for(c = first, d = a - 1; c <= d; ++c) { + if((0 <= (s = *c - depth)) && (ISA[s] == v)) { + *++d = s; + ISA[s] = d - SA; + } + } + for(c = last - 1, e = d + 1, d = b; e < d; --c) { + if((0 <= (s = *c - depth)) && (ISA[s] == v)) { + *--d = s; + ISA[s] = d - SA; + } + } +} + +static +void +tr_partialcopy(int *ISA, const int *SA, + int *first, int *a, int *b, int *last, + int depth) { + int *c, *d, *e; + int s, v; + int rank, lastrank, newrank = -1; + + v = b - SA - 1; + lastrank = -1; + for(c = first, d = a - 1; c <= d; ++c) { + if((0 <= (s = *c - depth)) && (ISA[s] == v)) { + *++d = s; + rank = ISA[s + depth]; + if(lastrank != rank) { lastrank = rank; newrank = d - SA; } + ISA[s] = newrank; + } + } + + lastrank = -1; + for(e = d; first <= e; --e) { + rank = ISA[*e]; + if(lastrank != rank) { lastrank = rank; newrank = e - SA; } + if(newrank != rank) { ISA[*e] = newrank; } + } + + lastrank = -1; + for(c = last - 1, e = d + 1, d = b; e < d; --c) { + if((0 <= (s = *c - depth)) && (ISA[s] == v)) { + *--d = s; + rank = ISA[s + depth]; + if(lastrank != rank) { lastrank = rank; newrank = d - SA; } + ISA[s] = newrank; + } + } +} + +static +void +tr_introsort(int *ISA, const int *ISAd, + int *SA, int *first, int *last, + trbudget_t *budget) { +#define STACK_SIZE TR_STACKSIZE + struct { const int *a; int *b, *c; int d, e; }stack[STACK_SIZE]; + int *a, *b, *c; + int t; + int v, x = 0; + int incr = ISAd - ISA; + int limit, next; + int ssize, trlink = -1; + + for(ssize = 0, limit = tr_ilg(last - first);;) { + + if(limit < 0) { + if(limit == -1) { + /* tandem repeat partition */ + tr_partition(ISAd - incr, first, first, last, &a, &b, last - SA - 1); + + /* update ranks */ + if(a < last) { + for(c = first, v = a - SA - 1; c < a; ++c) { ISA[*c] = v; } + } + if(b < last) { + for(c = a, v = b - SA - 1; c < b; ++c) { ISA[*c] = v; } + } + + /* push */ + if(1 < (b - a)) { + STACK_PUSH5(NULL, a, b, 0, 0); + STACK_PUSH5(ISAd - incr, first, last, -2, trlink); + trlink = ssize - 2; + } + if((a - first) <= (last - b)) { + if(1 < (a - first)) { + STACK_PUSH5(ISAd, b, last, tr_ilg(last - b), trlink); + last = a, limit = tr_ilg(a - first); + } else if(1 < (last - b)) { + first = b, limit = tr_ilg(last - b); + } else { + STACK_POP5(ISAd, first, last, limit, trlink); + } + } else { + if(1 < (last - b)) { + STACK_PUSH5(ISAd, first, a, tr_ilg(a - first), trlink); + first = b, limit = tr_ilg(last - b); + } else if(1 < (a - first)) { + last = a, limit = tr_ilg(a - first); + } else { + STACK_POP5(ISAd, first, last, limit, trlink); + } + } + } else if(limit == -2) { + /* tandem repeat copy */ + a = stack[--ssize].b, b = stack[ssize].c; + if(stack[ssize].d == 0) { + tr_copy(ISA, SA, first, a, b, last, ISAd - ISA); + } else { + if(0 <= trlink) { stack[trlink].d = -1; } + tr_partialcopy(ISA, SA, first, a, b, last, ISAd - ISA); + } + STACK_POP5(ISAd, first, last, limit, trlink); + } else { + /* sorted partition */ + if(0 <= *first) { + a = first; + do { ISA[*a] = a - SA; } while((++a < last) && (0 <= *a)); + first = a; + } + if(first < last) { + a = first; do { *a = ~*a; } while(*++a < 0); + next = (ISA[*a] != ISAd[*a]) ? tr_ilg(a - first + 1) : -1; + if(++a < last) { for(b = first, v = a - SA - 1; b < a; ++b) { ISA[*b] = v; } } + + /* push */ + if(trbudget_check(budget, a - first)) { + if((a - first) <= (last - a)) { + STACK_PUSH5(ISAd, a, last, -3, trlink); + ISAd += incr, last = a, limit = next; + } else { + if(1 < (last - a)) { + STACK_PUSH5(ISAd + incr, first, a, next, trlink); + first = a, limit = -3; + } else { + ISAd += incr, last = a, limit = next; + } + } + } else { + if(0 <= trlink) { stack[trlink].d = -1; } + if(1 < (last - a)) { + first = a, limit = -3; + } else { + STACK_POP5(ISAd, first, last, limit, trlink); + } + } + } else { + STACK_POP5(ISAd, first, last, limit, trlink); + } + } + continue; + } + + if((last - first) <= TR_INSERTIONSORT_THRESHOLD) { + tr_insertionsort(ISAd, first, last); + limit = -3; + continue; + } + + if(limit-- == 0) { + tr_heapsort(ISAd, first, last - first); + for(a = last - 1; first < a; a = b) { + for(x = ISAd[*a], b = a - 1; (first <= b) && (ISAd[*b] == x); --b) { *b = ~*b; } + } + limit = -3; + continue; + } + + /* choose pivot */ + a = tr_pivot(ISAd, first, last); + SWAP(*first, *a); + v = ISAd[*first]; + + /* partition */ + tr_partition(ISAd, first, first + 1, last, &a, &b, v); + if((last - first) != (b - a)) { + next = (ISA[*a] != v) ? tr_ilg(b - a) : -1; + + /* update ranks */ + for(c = first, v = a - SA - 1; c < a; ++c) { ISA[*c] = v; } + if(b < last) { for(c = a, v = b - SA - 1; c < b; ++c) { ISA[*c] = v; } } + + /* push */ + if((1 < (b - a)) && (trbudget_check(budget, b - a))) { + if((a - first) <= (last - b)) { + if((last - b) <= (b - a)) { + if(1 < (a - first)) { + STACK_PUSH5(ISAd + incr, a, b, next, trlink); + STACK_PUSH5(ISAd, b, last, limit, trlink); + last = a; + } else if(1 < (last - b)) { + STACK_PUSH5(ISAd + incr, a, b, next, trlink); + first = b; + } else { + ISAd += incr, first = a, last = b, limit = next; + } + } else if((a - first) <= (b - a)) { + if(1 < (a - first)) { + STACK_PUSH5(ISAd, b, last, limit, trlink); + STACK_PUSH5(ISAd + incr, a, b, next, trlink); + last = a; + } else { + STACK_PUSH5(ISAd, b, last, limit, trlink); + ISAd += incr, first = a, last = b, limit = next; + } + } else { + STACK_PUSH5(ISAd, b, last, limit, trlink); + STACK_PUSH5(ISAd, first, a, limit, trlink); + ISAd += incr, first = a, last = b, limit = next; + } + } else { + if((a - first) <= (b - a)) { + if(1 < (last - b)) { + STACK_PUSH5(ISAd + incr, a, b, next, trlink); + STACK_PUSH5(ISAd, first, a, limit, trlink); + first = b; + } else if(1 < (a - first)) { + STACK_PUSH5(ISAd + incr, a, b, next, trlink); + last = a; + } else { + ISAd += incr, first = a, last = b, limit = next; + } + } else if((last - b) <= (b - a)) { + if(1 < (last - b)) { + STACK_PUSH5(ISAd, first, a, limit, trlink); + STACK_PUSH5(ISAd + incr, a, b, next, trlink); + first = b; + } else { + STACK_PUSH5(ISAd, first, a, limit, trlink); + ISAd += incr, first = a, last = b, limit = next; + } + } else { + STACK_PUSH5(ISAd, first, a, limit, trlink); + STACK_PUSH5(ISAd, b, last, limit, trlink); + ISAd += incr, first = a, last = b, limit = next; + } + } + } else { + if((1 < (b - a)) && (0 <= trlink)) { stack[trlink].d = -1; } + if((a - first) <= (last - b)) { + if(1 < (a - first)) { + STACK_PUSH5(ISAd, b, last, limit, trlink); + last = a; + } else if(1 < (last - b)) { + first = b; + } else { + STACK_POP5(ISAd, first, last, limit, trlink); + } + } else { + if(1 < (last - b)) { + STACK_PUSH5(ISAd, first, a, limit, trlink); + first = b; + } else if(1 < (a - first)) { + last = a; + } else { + STACK_POP5(ISAd, first, last, limit, trlink); + } + } + } + } else { + if(trbudget_check(budget, last - first)) { + limit = tr_ilg(last - first), ISAd += incr; + } else { + if(0 <= trlink) { stack[trlink].d = -1; } + STACK_POP5(ISAd, first, last, limit, trlink); + } + } + } +#undef STACK_SIZE +} + + + +/*---------------------------------------------------------------------------*/ + +/* Tandem repeat sort */ +static +void +trsort(int *ISA, int *SA, int n, int depth) { + int *ISAd; + int *first, *last; + trbudget_t budget; + int t, skip, unsorted; + + trbudget_init(&budget, tr_ilg(n) * 2 / 3, n); +/* trbudget_init(&budget, tr_ilg(n) * 3 / 4, n); */ + for(ISAd = ISA + depth; -n < *SA; ISAd += ISAd - ISA) { + first = SA; + skip = 0; + unsorted = 0; + do { + if((t = *first) < 0) { first -= t; skip += t; } + else { + if(skip != 0) { *(first + skip) = skip; skip = 0; } + last = SA + ISA[t] + 1; + if(1 < (last - first)) { + budget.count = 0; + tr_introsort(ISA, ISAd, SA, first, last, &budget); + if(budget.count != 0) { unsorted += budget.count; } + else { skip = first - last; } + } else if((last - first) == 1) { + skip = -1; + } + first = last; + } + } while(first < (SA + n)); + if(skip != 0) { *(first + skip) = skip; } + if(unsorted == 0) { break; } + } +} + + +/*---------------------------------------------------------------------------*/ + +/* Sorts suffixes of type B*. */ +static +int +sort_typeBstar(const unsigned char *T, int *SA, + int *bucket_A, int *bucket_B, + int n, int openMP) { + int *PAb, *ISAb, *buf; +#ifdef LIBBSC_OPENMP + int *curbuf; + int l; +#endif + int i, j, k, t, m, bufsize; + int c0, c1; +#ifdef LIBBSC_OPENMP + int d0, d1; +#endif + (void)openMP; + + /* Initialize bucket arrays. */ + for(i = 0; i < BUCKET_A_SIZE; ++i) { bucket_A[i] = 0; } + for(i = 0; i < BUCKET_B_SIZE; ++i) { bucket_B[i] = 0; } + + /* Count the number of occurrences of the first one or two characters of each + type A, B and B* suffix. Moreover, store the beginning position of all + type B* suffixes into the array SA. */ + for(i = n - 1, m = n, c0 = T[n - 1]; 0 <= i;) { + /* type A suffix. */ + do { ++BUCKET_A(c1 = c0); } while((0 <= --i) && ((c0 = T[i]) >= c1)); + if(0 <= i) { + /* type B* suffix. */ + ++BUCKET_BSTAR(c0, c1); + SA[--m] = i; + /* type B suffix. */ + for(--i, c1 = c0; (0 <= i) && ((c0 = T[i]) <= c1); --i, c1 = c0) { + ++BUCKET_B(c0, c1); + } + } + } + m = n - m; +/* +note: + A type B* suffix is lexicographically smaller than a type B suffix that + begins with the same first two characters. +*/ + + /* Calculate the index of start/end point of each bucket. */ + for(c0 = 0, i = 0, j = 0; c0 < ALPHABET_SIZE; ++c0) { + t = i + BUCKET_A(c0); + BUCKET_A(c0) = i + j; /* start point */ + i = t + BUCKET_B(c0, c0); + for(c1 = c0 + 1; c1 < ALPHABET_SIZE; ++c1) { + j += BUCKET_BSTAR(c0, c1); + BUCKET_BSTAR(c0, c1) = j; /* end point */ + i += BUCKET_B(c0, c1); + } + } + + if(0 < m) { + /* Sort the type B* suffixes by their first two characters. */ + PAb = SA + n - m; ISAb = SA + m; + for(i = m - 2; 0 <= i; --i) { + t = PAb[i], c0 = T[t], c1 = T[t + 1]; + SA[--BUCKET_BSTAR(c0, c1)] = i; + } + t = PAb[m - 1], c0 = T[t], c1 = T[t + 1]; + SA[--BUCKET_BSTAR(c0, c1)] = m - 1; + + /* Sort the type B* substrings using sssort. */ +#ifdef LIBBSC_OPENMP + if (openMP) + { + buf = SA + m; + c0 = ALPHABET_SIZE - 2, c1 = ALPHABET_SIZE - 1, j = m; +#pragma omp parallel default(shared) private(bufsize, curbuf, k, l, d0, d1) + { + bufsize = (n - (2 * m)) / omp_get_num_threads(); + curbuf = buf + omp_get_thread_num() * bufsize; + k = 0; + for(;;) { + #pragma omp critical(sssort_lock) + { + if(0 < (l = j)) { + d0 = c0, d1 = c1; + do { + k = BUCKET_BSTAR(d0, d1); + if(--d1 <= d0) { + d1 = ALPHABET_SIZE - 1; + if(--d0 < 0) { break; } + } + } while(((l - k) <= 1) && (0 < (l = k))); + c0 = d0, c1 = d1, j = k; + } + } + if(l == 0) { break; } + sssort(T, PAb, SA + k, SA + l, + curbuf, bufsize, 2, n, *(SA + k) == (m - 1)); + } + } + } + else + { + buf = SA + m, bufsize = n - (2 * m); + for(c0 = ALPHABET_SIZE - 2, j = m; 0 < j; --c0) { + for(c1 = ALPHABET_SIZE - 1; c0 < c1; j = i, --c1) { + i = BUCKET_BSTAR(c0, c1); + if(1 < (j - i)) { + sssort(T, PAb, SA + i, SA + j, + buf, bufsize, 2, n, *(SA + i) == (m - 1)); + } + } + } + } +#else + buf = SA + m, bufsize = n - (2 * m); + for(c0 = ALPHABET_SIZE - 2, j = m; 0 < j; --c0) { + for(c1 = ALPHABET_SIZE - 1; c0 < c1; j = i, --c1) { + i = BUCKET_BSTAR(c0, c1); + if(1 < (j - i)) { + sssort(T, PAb, SA + i, SA + j, + buf, bufsize, 2, n, *(SA + i) == (m - 1)); + } + } + } +#endif + + /* Compute ranks of type B* substrings. */ + for(i = m - 1; 0 <= i; --i) { + if(0 <= SA[i]) { + j = i; + do { ISAb[SA[i]] = i; } while((0 <= --i) && (0 <= SA[i])); + SA[i + 1] = i - j; + if(i <= 0) { break; } + } + j = i; + do { ISAb[SA[i] = ~SA[i]] = j; } while(SA[--i] < 0); + ISAb[SA[i]] = j; + } + + /* Construct the inverse suffix array of type B* suffixes using trsort. */ + trsort(ISAb, SA, m, 1); + + /* Set the sorted order of type B* suffixes. */ + for(i = n - 1, j = m, c0 = T[n - 1]; 0 <= i;) { + for(--i, c1 = c0; (0 <= i) && ((c0 = T[i]) >= c1); --i, c1 = c0) { } + if(0 <= i) { + t = i; + for(--i, c1 = c0; (0 <= i) && ((c0 = T[i]) <= c1); --i, c1 = c0) { } + SA[ISAb[--j]] = ((t == 0) || (1 < (t - i))) ? t : ~t; + } + } + + /* Calculate the index of start/end point of each bucket. */ + BUCKET_B(ALPHABET_SIZE - 1, ALPHABET_SIZE - 1) = n; /* end point */ + for(c0 = ALPHABET_SIZE - 2, k = m - 1; 0 <= c0; --c0) { + i = BUCKET_A(c0 + 1) - 1; + for(c1 = ALPHABET_SIZE - 1; c0 < c1; --c1) { + t = i - BUCKET_B(c0, c1); + BUCKET_B(c0, c1) = i; /* end point */ + + /* Move all type B* suffixes to the correct position. */ + for(i = t, j = BUCKET_BSTAR(c0, c1); + j <= k; + --i, --k) { SA[i] = SA[k]; } + } + BUCKET_BSTAR(c0, c0 + 1) = i - BUCKET_B(c0, c0) + 1; /* start point */ + BUCKET_B(c0, c0) = i; /* end point */ + } + } + + return m; +} + +/* Constructs the suffix array by using the sorted order of type B* suffixes. */ +static +void +construct_SA(const unsigned char *T, int *SA, + int *bucket_A, int *bucket_B, + int n, int m) { + int *i, *j, *k; + int s; + int c0, c1, c2; + + if(0 < m) { + /* Construct the sorted order of type B suffixes by using + the sorted order of type B* suffixes. */ + for(c1 = ALPHABET_SIZE - 2; 0 <= c1; --c1) { + /* Scan the suffix array from right to left. */ + for(i = SA + BUCKET_BSTAR(c1, c1 + 1), + j = SA + BUCKET_A(c1 + 1) - 1, k = NULL, c2 = -1; + i <= j; + --j) { + if(0 < (s = *j)) { + assert(T[s] == c1); + assert(((s + 1) < n) && (T[s] <= T[s + 1])); + assert(T[s - 1] <= T[s]); + *j = ~s; + c0 = T[--s]; + if((0 < s) && (T[s - 1] > c0)) { s = ~s; } + if(c0 != c2) { + if(0 <= c2) { BUCKET_B(c2, c1) = k - SA; } + k = SA + BUCKET_B(c2 = c0, c1); + } + assert(k < j); assert(k != NULL); + *k-- = s; + } else { + assert(((s == 0) && (T[s] == c1)) || (s < 0)); + *j = ~s; + } + } + } + } + + /* Construct the suffix array by using + the sorted order of type B suffixes. */ + k = SA + BUCKET_A(c2 = T[n - 1]); + *k++ = (T[n - 2] < c2) ? ~(n - 1) : (n - 1); + /* Scan the suffix array from left to right. */ + for(i = SA, j = SA + n; i < j; ++i) { + if(0 < (s = *i)) { + assert(T[s - 1] >= T[s]); + c0 = T[--s]; + if((s == 0) || (T[s - 1] < c0)) { s = ~s; } + if(c0 != c2) { + BUCKET_A(c2) = k - SA; + k = SA + BUCKET_A(c2 = c0); + } + assert(i < k); + *k++ = s; + } else { + assert(s < 0); + *i = ~s; + } + } +} + +/* Constructs the burrows-wheeler transformed string directly + by using the sorted order of type B* suffixes. */ +static +int +construct_BWT(const unsigned char *T, int *SA, + int *bucket_A, int *bucket_B, + int n, int m) { + int *i, *j, *k, *orig; + int s; + int c0, c1, c2; + + if(0 < m) { + /* Construct the sorted order of type B suffixes by using + the sorted order of type B* suffixes. */ + for(c1 = ALPHABET_SIZE - 2; 0 <= c1; --c1) { + /* Scan the suffix array from right to left. */ + for(i = SA + BUCKET_BSTAR(c1, c1 + 1), + j = SA + BUCKET_A(c1 + 1) - 1, k = NULL, c2 = -1; + i <= j; + --j) { + if(0 < (s = *j)) { + assert(T[s] == c1); + assert(((s + 1) < n) && (T[s] <= T[s + 1])); + assert(T[s - 1] <= T[s]); + c0 = T[--s]; + *j = ~((int)c0); + if((0 < s) && (T[s - 1] > c0)) { s = ~s; } + if(c0 != c2) { + if(0 <= c2) { BUCKET_B(c2, c1) = k - SA; } + k = SA + BUCKET_B(c2 = c0, c1); + } + assert(k < j); assert(k != NULL); + *k-- = s; + } else if(s != 0) { + *j = ~s; +#ifndef NDEBUG + } else { + assert(T[s] == c1); +#endif + } + } + } + } + + /* Construct the BWTed string by using + the sorted order of type B suffixes. */ + k = SA + BUCKET_A(c2 = T[n - 1]); + *k++ = (T[n - 2] < c2) ? ~((int)T[n - 2]) : (n - 1); + /* Scan the suffix array from left to right. */ + for(i = SA, j = SA + n, orig = SA; i < j; ++i) { + if(0 < (s = *i)) { + assert(T[s - 1] >= T[s]); + c0 = T[--s]; + *i = c0; + if((0 < s) && (T[s - 1] < c0)) { s = ~((int)T[s - 1]); } + if(c0 != c2) { + BUCKET_A(c2) = k - SA; + k = SA + BUCKET_A(c2 = c0); + } + assert(i < k); + *k++ = s; + } else if(s != 0) { + *i = ~s; + } else { + orig = i; + } + } + + return orig - SA; +} + +/* Constructs the burrows-wheeler transformed string directly + by using the sorted order of type B* suffixes. */ +static +int +construct_BWT_indexes(const unsigned char *T, int *SA, + int *bucket_A, int *bucket_B, + int n, int m, + unsigned char * num_indexes, int * indexes) { + int *i, *j, *k, *orig; + int s; + int c0, c1, c2; + + int mod = n / 8; + { + mod |= mod >> 1; mod |= mod >> 2; + mod |= mod >> 4; mod |= mod >> 8; + mod |= mod >> 16; mod >>= 1; + + *num_indexes = (unsigned char)((n - 1) / (mod + 1)); + } + + if(0 < m) { + /* Construct the sorted order of type B suffixes by using + the sorted order of type B* suffixes. */ + for(c1 = ALPHABET_SIZE - 2; 0 <= c1; --c1) { + /* Scan the suffix array from right to left. */ + for(i = SA + BUCKET_BSTAR(c1, c1 + 1), + j = SA + BUCKET_A(c1 + 1) - 1, k = NULL, c2 = -1; + i <= j; + --j) { + if(0 < (s = *j)) { + assert(T[s] == c1); + assert(((s + 1) < n) && (T[s] <= T[s + 1])); + assert(T[s - 1] <= T[s]); + + if ((s & mod) == 0) indexes[s / (mod + 1) - 1] = j - SA; + + c0 = T[--s]; + *j = ~((int)c0); + if((0 < s) && (T[s - 1] > c0)) { s = ~s; } + if(c0 != c2) { + if(0 <= c2) { BUCKET_B(c2, c1) = k - SA; } + k = SA + BUCKET_B(c2 = c0, c1); + } + assert(k < j); assert(k != NULL); + *k-- = s; + } else if(s != 0) { + *j = ~s; +#ifndef NDEBUG + } else { + assert(T[s] == c1); +#endif + } + } + } + } + + /* Construct the BWTed string by using + the sorted order of type B suffixes. */ + k = SA + BUCKET_A(c2 = T[n - 1]); + if (T[n - 2] < c2) { + if (((n - 1) & mod) == 0) indexes[(n - 1) / (mod + 1) - 1] = k - SA; + *k++ = ~((int)T[n - 2]); + } + else { + *k++ = n - 1; + } + + /* Scan the suffix array from left to right. */ + for(i = SA, j = SA + n, orig = SA; i < j; ++i) { + if(0 < (s = *i)) { + assert(T[s - 1] >= T[s]); + + if ((s & mod) == 0) indexes[s / (mod + 1) - 1] = i - SA; + + c0 = T[--s]; + *i = c0; + if(c0 != c2) { + BUCKET_A(c2) = k - SA; + k = SA + BUCKET_A(c2 = c0); + } + assert(i < k); + if((0 < s) && (T[s - 1] < c0)) { + if ((s & mod) == 0) indexes[s / (mod + 1) - 1] = k - SA; + *k++ = ~((int)T[s - 1]); + } else + *k++ = s; + } else if(s != 0) { + *i = ~s; + } else { + orig = i; + } + } + + return orig - SA; +} + + +/*---------------------------------------------------------------------------*/ + +/*- Function -*/ + +int +divsufsort(const unsigned char *T, int *SA, int n, int openMP) { + int *bucket_A, *bucket_B; + int m; + int err = 0; + + /* Check arguments. */ + if((T == NULL) || (SA == NULL) || (n < 0)) { return -1; } + else if(n == 0) { return 0; } + else if(n == 1) { SA[0] = 0; return 0; } + else if(n == 2) { m = (T[0] < T[1]); SA[m ^ 1] = 0, SA[m] = 1; return 0; } + + bucket_A = (int *)malloc(BUCKET_A_SIZE * sizeof(int)); + bucket_B = (int *)malloc(BUCKET_B_SIZE * sizeof(int)); + + /* Suffixsort. */ + if((bucket_A != NULL) && (bucket_B != NULL)) { + m = sort_typeBstar(T, SA, bucket_A, bucket_B, n, openMP); + construct_SA(T, SA, bucket_A, bucket_B, n, m); + } else { + err = -2; + } + + free(bucket_B); + free(bucket_A); + + return err; +} + +int +divbwt(const unsigned char *T, unsigned char *U, int *A, int n, unsigned char * num_indexes, int * indexes, int openMP) { + int *B; + int *bucket_A, *bucket_B; + int m, pidx, i; + + /* Check arguments. */ + if((T == NULL) || (U == NULL) || (n < 0)) { return -1; } + else if(n <= 1) { if(n == 1) { U[0] = T[0]; } return n; } + + if((B = A) == NULL) { B = (int *)malloc((size_t)(n + 1) * sizeof(int)); } + bucket_A = (int *)malloc(BUCKET_A_SIZE * sizeof(int)); + bucket_B = (int *)malloc(BUCKET_B_SIZE * sizeof(int)); + + /* Burrows-Wheeler Transform. */ + if((B != NULL) && (bucket_A != NULL) && (bucket_B != NULL)) { + m = sort_typeBstar(T, B, bucket_A, bucket_B, n, openMP); + + if (num_indexes == NULL || indexes == NULL) { + pidx = construct_BWT(T, B, bucket_A, bucket_B, n, m); + } else { + pidx = construct_BWT_indexes(T, B, bucket_A, bucket_B, n, m, num_indexes, indexes); + } + + /* Copy to output string. */ + U[0] = T[n - 1]; + for(i = 0; i < pidx; ++i) { U[i + 1] = (unsigned char)B[i]; } + for(i += 1; i < n; ++i) { U[i] = (unsigned char)B[i]; } + pidx += 1; + } else { + pidx = -2; + } + + free(bucket_B); + free(bucket_A); + if(A == NULL) { free(B); } + + return pidx; +} diff --git a/dependencies/zstd-1.5.0/lib/dictBuilder/divsufsort.h b/dependencies/zstd-1.5.0/lib/dictBuilder/divsufsort.h new file mode 100644 index 0000000..5440994 --- /dev/null +++ b/dependencies/zstd-1.5.0/lib/dictBuilder/divsufsort.h @@ -0,0 +1,67 @@ +/* + * divsufsort.h for libdivsufsort-lite + * Copyright (c) 2003-2008 Yuta Mori All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + +#ifndef _DIVSUFSORT_H +#define _DIVSUFSORT_H 1 + +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ + + +/*- Prototypes -*/ + +/** + * Constructs the suffix array of a given string. + * @param T [0..n-1] The input string. + * @param SA [0..n-1] The output array of suffixes. + * @param n The length of the given string. + * @param openMP enables OpenMP optimization. + * @return 0 if no error occurred, -1 or -2 otherwise. + */ +int +divsufsort(const unsigned char *T, int *SA, int n, int openMP); + +/** + * Constructs the burrows-wheeler transformed string of a given string. + * @param T [0..n-1] The input string. + * @param U [0..n-1] The output string. (can be T) + * @param A [0..n-1] The temporary array. (can be NULL) + * @param n The length of the given string. + * @param num_indexes The length of secondary indexes array. (can be NULL) + * @param indexes The secondary indexes array. (can be NULL) + * @param openMP enables OpenMP optimization. + * @return The primary index if no error occurred, -1 or -2 otherwise. + */ +int +divbwt(const unsigned char *T, unsigned char *U, int *A, int n, unsigned char * num_indexes, int * indexes, int openMP); + + +#ifdef __cplusplus +} /* extern "C" */ +#endif /* __cplusplus */ + +#endif /* _DIVSUFSORT_H */ diff --git a/dependencies/zstd-1.5.0/lib/dictBuilder/fastcover.c b/dependencies/zstd-1.5.0/lib/dictBuilder/fastcover.c new file mode 100644 index 0000000..ed789f9 --- /dev/null +++ b/dependencies/zstd-1.5.0/lib/dictBuilder/fastcover.c @@ -0,0 +1,759 @@ +/* + * Copyright (c) Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + +/*-************************************* +* Dependencies +***************************************/ +#include /* fprintf */ +#include /* malloc, free, qsort */ +#include /* memset */ +#include /* clock */ + +#ifndef ZDICT_STATIC_LINKING_ONLY +# define ZDICT_STATIC_LINKING_ONLY +#endif + +#include "../common/mem.h" /* read */ +#include "../common/pool.h" +#include "../common/threading.h" +#include "../common/zstd_internal.h" /* includes zstd.h */ +#include "../compress/zstd_compress_internal.h" /* ZSTD_hash*() */ +#include "../zdict.h" +#include "cover.h" + + +/*-************************************* +* Constants +***************************************/ +#define FASTCOVER_MAX_SAMPLES_SIZE (sizeof(size_t) == 8 ? ((unsigned)-1) : ((unsigned)1 GB)) +#define FASTCOVER_MAX_F 31 +#define FASTCOVER_MAX_ACCEL 10 +#define FASTCOVER_DEFAULT_SPLITPOINT 0.75 +#define DEFAULT_F 20 +#define DEFAULT_ACCEL 1 + + +/*-************************************* +* Console display +***************************************/ +#ifndef LOCALDISPLAYLEVEL +static int g_displayLevel = 2; +#endif +#undef DISPLAY +#define DISPLAY(...) \ + { \ + fprintf(stderr, __VA_ARGS__); \ + fflush(stderr); \ + } +#undef LOCALDISPLAYLEVEL +#define LOCALDISPLAYLEVEL(displayLevel, l, ...) \ + if (displayLevel >= l) { \ + DISPLAY(__VA_ARGS__); \ + } /* 0 : no display; 1: errors; 2: default; 3: details; 4: debug */ +#undef DISPLAYLEVEL +#define DISPLAYLEVEL(l, ...) LOCALDISPLAYLEVEL(g_displayLevel, l, __VA_ARGS__) + +#ifndef LOCALDISPLAYUPDATE +static const clock_t g_refreshRate = CLOCKS_PER_SEC * 15 / 100; +static clock_t g_time = 0; +#endif +#undef LOCALDISPLAYUPDATE +#define LOCALDISPLAYUPDATE(displayLevel, l, ...) \ + if (displayLevel >= l) { \ + if ((clock() - g_time > g_refreshRate) || (displayLevel >= 4)) { \ + g_time = clock(); \ + DISPLAY(__VA_ARGS__); \ + } \ + } +#undef DISPLAYUPDATE +#define DISPLAYUPDATE(l, ...) LOCALDISPLAYUPDATE(g_displayLevel, l, __VA_ARGS__) + + +/*-************************************* +* Hash Functions +***************************************/ +/** + * Hash the d-byte value pointed to by p and mod 2^f into the frequency vector + */ +static size_t FASTCOVER_hashPtrToIndex(const void* p, U32 f, unsigned d) { + if (d == 6) { + return ZSTD_hash6Ptr(p, f); + } + return ZSTD_hash8Ptr(p, f); +} + + +/*-************************************* +* Acceleration +***************************************/ +typedef struct { + unsigned finalize; /* Percentage of training samples used for ZDICT_finalizeDictionary */ + unsigned skip; /* Number of dmer skipped between each dmer counted in computeFrequency */ +} FASTCOVER_accel_t; + + +static const FASTCOVER_accel_t FASTCOVER_defaultAccelParameters[FASTCOVER_MAX_ACCEL+1] = { + { 100, 0 }, /* accel = 0, should not happen because accel = 0 defaults to accel = 1 */ + { 100, 0 }, /* accel = 1 */ + { 50, 1 }, /* accel = 2 */ + { 34, 2 }, /* accel = 3 */ + { 25, 3 }, /* accel = 4 */ + { 20, 4 }, /* accel = 5 */ + { 17, 5 }, /* accel = 6 */ + { 14, 6 }, /* accel = 7 */ + { 13, 7 }, /* accel = 8 */ + { 11, 8 }, /* accel = 9 */ + { 10, 9 }, /* accel = 10 */ +}; + + +/*-************************************* +* Context +***************************************/ +typedef struct { + const BYTE *samples; + size_t *offsets; + const size_t *samplesSizes; + size_t nbSamples; + size_t nbTrainSamples; + size_t nbTestSamples; + size_t nbDmers; + U32 *freqs; + unsigned d; + unsigned f; + FASTCOVER_accel_t accelParams; +} FASTCOVER_ctx_t; + + +/*-************************************* +* Helper functions +***************************************/ +/** + * Selects the best segment in an epoch. + * Segments of are scored according to the function: + * + * Let F(d) be the frequency of all dmers with hash value d. + * Let S_i be hash value of the dmer at position i of segment S which has length k. + * + * Score(S) = F(S_1) + F(S_2) + ... + F(S_{k-d+1}) + * + * Once the dmer with hash value d is in the dictionary we set F(d) = 0. + */ +static COVER_segment_t FASTCOVER_selectSegment(const FASTCOVER_ctx_t *ctx, + U32 *freqs, U32 begin, U32 end, + ZDICT_cover_params_t parameters, + U16* segmentFreqs) { + /* Constants */ + const U32 k = parameters.k; + const U32 d = parameters.d; + const U32 f = ctx->f; + const U32 dmersInK = k - d + 1; + + /* Try each segment (activeSegment) and save the best (bestSegment) */ + COVER_segment_t bestSegment = {0, 0, 0}; + COVER_segment_t activeSegment; + + /* Reset the activeDmers in the segment */ + /* The activeSegment starts at the beginning of the epoch. */ + activeSegment.begin = begin; + activeSegment.end = begin; + activeSegment.score = 0; + + /* Slide the activeSegment through the whole epoch. + * Save the best segment in bestSegment. + */ + while (activeSegment.end < end) { + /* Get hash value of current dmer */ + const size_t idx = FASTCOVER_hashPtrToIndex(ctx->samples + activeSegment.end, f, d); + + /* Add frequency of this index to score if this is the first occurrence of index in active segment */ + if (segmentFreqs[idx] == 0) { + activeSegment.score += freqs[idx]; + } + /* Increment end of segment and segmentFreqs*/ + activeSegment.end += 1; + segmentFreqs[idx] += 1; + /* If the window is now too large, drop the first position */ + if (activeSegment.end - activeSegment.begin == dmersInK + 1) { + /* Get hash value of the dmer to be eliminated from active segment */ + const size_t delIndex = FASTCOVER_hashPtrToIndex(ctx->samples + activeSegment.begin, f, d); + segmentFreqs[delIndex] -= 1; + /* Subtract frequency of this index from score if this is the last occurrence of this index in active segment */ + if (segmentFreqs[delIndex] == 0) { + activeSegment.score -= freqs[delIndex]; + } + /* Increment start of segment */ + activeSegment.begin += 1; + } + + /* If this segment is the best so far save it */ + if (activeSegment.score > bestSegment.score) { + bestSegment = activeSegment; + } + } + + /* Zero out rest of segmentFreqs array */ + while (activeSegment.begin < end) { + const size_t delIndex = FASTCOVER_hashPtrToIndex(ctx->samples + activeSegment.begin, f, d); + segmentFreqs[delIndex] -= 1; + activeSegment.begin += 1; + } + + { + /* Zero the frequency of hash value of each dmer covered by the chosen segment. */ + U32 pos; + for (pos = bestSegment.begin; pos != bestSegment.end; ++pos) { + const size_t i = FASTCOVER_hashPtrToIndex(ctx->samples + pos, f, d); + freqs[i] = 0; + } + } + + return bestSegment; +} + + +static int FASTCOVER_checkParameters(ZDICT_cover_params_t parameters, + size_t maxDictSize, unsigned f, + unsigned accel) { + /* k, d, and f are required parameters */ + if (parameters.d == 0 || parameters.k == 0) { + return 0; + } + /* d has to be 6 or 8 */ + if (parameters.d != 6 && parameters.d != 8) { + return 0; + } + /* k <= maxDictSize */ + if (parameters.k > maxDictSize) { + return 0; + } + /* d <= k */ + if (parameters.d > parameters.k) { + return 0; + } + /* 0 < f <= FASTCOVER_MAX_F*/ + if (f > FASTCOVER_MAX_F || f == 0) { + return 0; + } + /* 0 < splitPoint <= 1 */ + if (parameters.splitPoint <= 0 || parameters.splitPoint > 1) { + return 0; + } + /* 0 < accel <= 10 */ + if (accel > 10 || accel == 0) { + return 0; + } + return 1; +} + + +/** + * Clean up a context initialized with `FASTCOVER_ctx_init()`. + */ +static void +FASTCOVER_ctx_destroy(FASTCOVER_ctx_t* ctx) +{ + if (!ctx) return; + + free(ctx->freqs); + ctx->freqs = NULL; + + free(ctx->offsets); + ctx->offsets = NULL; +} + + +/** + * Calculate for frequency of hash value of each dmer in ctx->samples + */ +static void +FASTCOVER_computeFrequency(U32* freqs, const FASTCOVER_ctx_t* ctx) +{ + const unsigned f = ctx->f; + const unsigned d = ctx->d; + const unsigned skip = ctx->accelParams.skip; + const unsigned readLength = MAX(d, 8); + size_t i; + assert(ctx->nbTrainSamples >= 5); + assert(ctx->nbTrainSamples <= ctx->nbSamples); + for (i = 0; i < ctx->nbTrainSamples; i++) { + size_t start = ctx->offsets[i]; /* start of current dmer */ + size_t const currSampleEnd = ctx->offsets[i+1]; + while (start + readLength <= currSampleEnd) { + const size_t dmerIndex = FASTCOVER_hashPtrToIndex(ctx->samples + start, f, d); + freqs[dmerIndex]++; + start = start + skip + 1; + } + } +} + + +/** + * Prepare a context for dictionary building. + * The context is only dependent on the parameter `d` and can used multiple + * times. + * Returns 0 on success or error code on error. + * The context must be destroyed with `FASTCOVER_ctx_destroy()`. + */ +static size_t +FASTCOVER_ctx_init(FASTCOVER_ctx_t* ctx, + const void* samplesBuffer, + const size_t* samplesSizes, unsigned nbSamples, + unsigned d, double splitPoint, unsigned f, + FASTCOVER_accel_t accelParams) +{ + const BYTE* const samples = (const BYTE*)samplesBuffer; + const size_t totalSamplesSize = COVER_sum(samplesSizes, nbSamples); + /* Split samples into testing and training sets */ + const unsigned nbTrainSamples = splitPoint < 1.0 ? (unsigned)((double)nbSamples * splitPoint) : nbSamples; + const unsigned nbTestSamples = splitPoint < 1.0 ? nbSamples - nbTrainSamples : nbSamples; + const size_t trainingSamplesSize = splitPoint < 1.0 ? COVER_sum(samplesSizes, nbTrainSamples) : totalSamplesSize; + const size_t testSamplesSize = splitPoint < 1.0 ? COVER_sum(samplesSizes + nbTrainSamples, nbTestSamples) : totalSamplesSize; + + /* Checks */ + if (totalSamplesSize < MAX(d, sizeof(U64)) || + totalSamplesSize >= (size_t)FASTCOVER_MAX_SAMPLES_SIZE) { + DISPLAYLEVEL(1, "Total samples size is too large (%u MB), maximum size is %u MB\n", + (unsigned)(totalSamplesSize >> 20), (FASTCOVER_MAX_SAMPLES_SIZE >> 20)); + return ERROR(srcSize_wrong); + } + + /* Check if there are at least 5 training samples */ + if (nbTrainSamples < 5) { + DISPLAYLEVEL(1, "Total number of training samples is %u and is invalid\n", nbTrainSamples); + return ERROR(srcSize_wrong); + } + + /* Check if there's testing sample */ + if (nbTestSamples < 1) { + DISPLAYLEVEL(1, "Total number of testing samples is %u and is invalid.\n", nbTestSamples); + return ERROR(srcSize_wrong); + } + + /* Zero the context */ + memset(ctx, 0, sizeof(*ctx)); + DISPLAYLEVEL(2, "Training on %u samples of total size %u\n", nbTrainSamples, + (unsigned)trainingSamplesSize); + DISPLAYLEVEL(2, "Testing on %u samples of total size %u\n", nbTestSamples, + (unsigned)testSamplesSize); + + ctx->samples = samples; + ctx->samplesSizes = samplesSizes; + ctx->nbSamples = nbSamples; + ctx->nbTrainSamples = nbTrainSamples; + ctx->nbTestSamples = nbTestSamples; + ctx->nbDmers = trainingSamplesSize - MAX(d, sizeof(U64)) + 1; + ctx->d = d; + ctx->f = f; + ctx->accelParams = accelParams; + + /* The offsets of each file */ + ctx->offsets = (size_t*)calloc((nbSamples + 1), sizeof(size_t)); + if (ctx->offsets == NULL) { + DISPLAYLEVEL(1, "Failed to allocate scratch buffers \n"); + FASTCOVER_ctx_destroy(ctx); + return ERROR(memory_allocation); + } + + /* Fill offsets from the samplesSizes */ + { U32 i; + ctx->offsets[0] = 0; + assert(nbSamples >= 5); + for (i = 1; i <= nbSamples; ++i) { + ctx->offsets[i] = ctx->offsets[i - 1] + samplesSizes[i - 1]; + } + } + + /* Initialize frequency array of size 2^f */ + ctx->freqs = (U32*)calloc(((U64)1 << f), sizeof(U32)); + if (ctx->freqs == NULL) { + DISPLAYLEVEL(1, "Failed to allocate frequency table \n"); + FASTCOVER_ctx_destroy(ctx); + return ERROR(memory_allocation); + } + + DISPLAYLEVEL(2, "Computing frequencies\n"); + FASTCOVER_computeFrequency(ctx->freqs, ctx); + + return 0; +} + + +/** + * Given the prepared context build the dictionary. + */ +static size_t +FASTCOVER_buildDictionary(const FASTCOVER_ctx_t* ctx, + U32* freqs, + void* dictBuffer, size_t dictBufferCapacity, + ZDICT_cover_params_t parameters, + U16* segmentFreqs) +{ + BYTE *const dict = (BYTE *)dictBuffer; + size_t tail = dictBufferCapacity; + /* Divide the data into epochs. We will select one segment from each epoch. */ + const COVER_epoch_info_t epochs = COVER_computeEpochs( + (U32)dictBufferCapacity, (U32)ctx->nbDmers, parameters.k, 1); + const size_t maxZeroScoreRun = 10; + size_t zeroScoreRun = 0; + size_t epoch; + DISPLAYLEVEL(2, "Breaking content into %u epochs of size %u\n", + (U32)epochs.num, (U32)epochs.size); + /* Loop through the epochs until there are no more segments or the dictionary + * is full. + */ + for (epoch = 0; tail > 0; epoch = (epoch + 1) % epochs.num) { + const U32 epochBegin = (U32)(epoch * epochs.size); + const U32 epochEnd = epochBegin + epochs.size; + size_t segmentSize; + /* Select a segment */ + COVER_segment_t segment = FASTCOVER_selectSegment( + ctx, freqs, epochBegin, epochEnd, parameters, segmentFreqs); + + /* If the segment covers no dmers, then we are out of content. + * There may be new content in other epochs, for continue for some time. + */ + if (segment.score == 0) { + if (++zeroScoreRun >= maxZeroScoreRun) { + break; + } + continue; + } + zeroScoreRun = 0; + + /* Trim the segment if necessary and if it is too small then we are done */ + segmentSize = MIN(segment.end - segment.begin + parameters.d - 1, tail); + if (segmentSize < parameters.d) { + break; + } + + /* We fill the dictionary from the back to allow the best segments to be + * referenced with the smallest offsets. + */ + tail -= segmentSize; + memcpy(dict + tail, ctx->samples + segment.begin, segmentSize); + DISPLAYUPDATE( + 2, "\r%u%% ", + (unsigned)(((dictBufferCapacity - tail) * 100) / dictBufferCapacity)); + } + DISPLAYLEVEL(2, "\r%79s\r", ""); + return tail; +} + +/** + * Parameters for FASTCOVER_tryParameters(). + */ +typedef struct FASTCOVER_tryParameters_data_s { + const FASTCOVER_ctx_t* ctx; + COVER_best_t* best; + size_t dictBufferCapacity; + ZDICT_cover_params_t parameters; +} FASTCOVER_tryParameters_data_t; + + +/** + * Tries a set of parameters and updates the COVER_best_t with the results. + * This function is thread safe if zstd is compiled with multithreaded support. + * It takes its parameters as an *OWNING* opaque pointer to support threading. + */ +static void FASTCOVER_tryParameters(void* opaque) +{ + /* Save parameters as local variables */ + FASTCOVER_tryParameters_data_t *const data = (FASTCOVER_tryParameters_data_t*)opaque; + const FASTCOVER_ctx_t *const ctx = data->ctx; + const ZDICT_cover_params_t parameters = data->parameters; + size_t dictBufferCapacity = data->dictBufferCapacity; + size_t totalCompressedSize = ERROR(GENERIC); + /* Initialize array to keep track of frequency of dmer within activeSegment */ + U16* segmentFreqs = (U16*)calloc(((U64)1 << ctx->f), sizeof(U16)); + /* Allocate space for hash table, dict, and freqs */ + BYTE *const dict = (BYTE*)malloc(dictBufferCapacity); + COVER_dictSelection_t selection = COVER_dictSelectionError(ERROR(GENERIC)); + U32* freqs = (U32*) malloc(((U64)1 << ctx->f) * sizeof(U32)); + if (!segmentFreqs || !dict || !freqs) { + DISPLAYLEVEL(1, "Failed to allocate buffers: out of memory\n"); + goto _cleanup; + } + /* Copy the frequencies because we need to modify them */ + memcpy(freqs, ctx->freqs, ((U64)1 << ctx->f) * sizeof(U32)); + /* Build the dictionary */ + { const size_t tail = FASTCOVER_buildDictionary(ctx, freqs, dict, dictBufferCapacity, + parameters, segmentFreqs); + + const unsigned nbFinalizeSamples = (unsigned)(ctx->nbTrainSamples * ctx->accelParams.finalize / 100); + selection = COVER_selectDict(dict + tail, dictBufferCapacity, dictBufferCapacity - tail, + ctx->samples, ctx->samplesSizes, nbFinalizeSamples, ctx->nbTrainSamples, ctx->nbSamples, parameters, ctx->offsets, + totalCompressedSize); + + if (COVER_dictSelectionIsError(selection)) { + DISPLAYLEVEL(1, "Failed to select dictionary\n"); + goto _cleanup; + } + } +_cleanup: + free(dict); + COVER_best_finish(data->best, parameters, selection); + free(data); + free(segmentFreqs); + COVER_dictSelectionFree(selection); + free(freqs); +} + + +static void +FASTCOVER_convertToCoverParams(ZDICT_fastCover_params_t fastCoverParams, + ZDICT_cover_params_t* coverParams) +{ + coverParams->k = fastCoverParams.k; + coverParams->d = fastCoverParams.d; + coverParams->steps = fastCoverParams.steps; + coverParams->nbThreads = fastCoverParams.nbThreads; + coverParams->splitPoint = fastCoverParams.splitPoint; + coverParams->zParams = fastCoverParams.zParams; + coverParams->shrinkDict = fastCoverParams.shrinkDict; +} + + +static void +FASTCOVER_convertToFastCoverParams(ZDICT_cover_params_t coverParams, + ZDICT_fastCover_params_t* fastCoverParams, + unsigned f, unsigned accel) +{ + fastCoverParams->k = coverParams.k; + fastCoverParams->d = coverParams.d; + fastCoverParams->steps = coverParams.steps; + fastCoverParams->nbThreads = coverParams.nbThreads; + fastCoverParams->splitPoint = coverParams.splitPoint; + fastCoverParams->f = f; + fastCoverParams->accel = accel; + fastCoverParams->zParams = coverParams.zParams; + fastCoverParams->shrinkDict = coverParams.shrinkDict; +} + + +ZDICTLIB_API size_t +ZDICT_trainFromBuffer_fastCover(void* dictBuffer, size_t dictBufferCapacity, + const void* samplesBuffer, + const size_t* samplesSizes, unsigned nbSamples, + ZDICT_fastCover_params_t parameters) +{ + BYTE* const dict = (BYTE*)dictBuffer; + FASTCOVER_ctx_t ctx; + ZDICT_cover_params_t coverParams; + FASTCOVER_accel_t accelParams; + /* Initialize global data */ + g_displayLevel = parameters.zParams.notificationLevel; + /* Assign splitPoint and f if not provided */ + parameters.splitPoint = 1.0; + parameters.f = parameters.f == 0 ? DEFAULT_F : parameters.f; + parameters.accel = parameters.accel == 0 ? DEFAULT_ACCEL : parameters.accel; + /* Convert to cover parameter */ + memset(&coverParams, 0 , sizeof(coverParams)); + FASTCOVER_convertToCoverParams(parameters, &coverParams); + /* Checks */ + if (!FASTCOVER_checkParameters(coverParams, dictBufferCapacity, parameters.f, + parameters.accel)) { + DISPLAYLEVEL(1, "FASTCOVER parameters incorrect\n"); + return ERROR(parameter_outOfBound); + } + if (nbSamples == 0) { + DISPLAYLEVEL(1, "FASTCOVER must have at least one input file\n"); + return ERROR(srcSize_wrong); + } + if (dictBufferCapacity < ZDICT_DICTSIZE_MIN) { + DISPLAYLEVEL(1, "dictBufferCapacity must be at least %u\n", + ZDICT_DICTSIZE_MIN); + return ERROR(dstSize_tooSmall); + } + /* Assign corresponding FASTCOVER_accel_t to accelParams*/ + accelParams = FASTCOVER_defaultAccelParameters[parameters.accel]; + /* Initialize context */ + { + size_t const initVal = FASTCOVER_ctx_init(&ctx, samplesBuffer, samplesSizes, nbSamples, + coverParams.d, parameters.splitPoint, parameters.f, + accelParams); + if (ZSTD_isError(initVal)) { + DISPLAYLEVEL(1, "Failed to initialize context\n"); + return initVal; + } + } + COVER_warnOnSmallCorpus(dictBufferCapacity, ctx.nbDmers, g_displayLevel); + /* Build the dictionary */ + DISPLAYLEVEL(2, "Building dictionary\n"); + { + /* Initialize array to keep track of frequency of dmer within activeSegment */ + U16* segmentFreqs = (U16 *)calloc(((U64)1 << parameters.f), sizeof(U16)); + const size_t tail = FASTCOVER_buildDictionary(&ctx, ctx.freqs, dictBuffer, + dictBufferCapacity, coverParams, segmentFreqs); + const unsigned nbFinalizeSamples = (unsigned)(ctx.nbTrainSamples * ctx.accelParams.finalize / 100); + const size_t dictionarySize = ZDICT_finalizeDictionary( + dict, dictBufferCapacity, dict + tail, dictBufferCapacity - tail, + samplesBuffer, samplesSizes, nbFinalizeSamples, coverParams.zParams); + if (!ZSTD_isError(dictionarySize)) { + DISPLAYLEVEL(2, "Constructed dictionary of size %u\n", + (unsigned)dictionarySize); + } + FASTCOVER_ctx_destroy(&ctx); + free(segmentFreqs); + return dictionarySize; + } +} + + +ZDICTLIB_API size_t +ZDICT_optimizeTrainFromBuffer_fastCover( + void* dictBuffer, size_t dictBufferCapacity, + const void* samplesBuffer, + const size_t* samplesSizes, unsigned nbSamples, + ZDICT_fastCover_params_t* parameters) +{ + ZDICT_cover_params_t coverParams; + FASTCOVER_accel_t accelParams; + /* constants */ + const unsigned nbThreads = parameters->nbThreads; + const double splitPoint = + parameters->splitPoint <= 0.0 ? FASTCOVER_DEFAULT_SPLITPOINT : parameters->splitPoint; + const unsigned kMinD = parameters->d == 0 ? 6 : parameters->d; + const unsigned kMaxD = parameters->d == 0 ? 8 : parameters->d; + const unsigned kMinK = parameters->k == 0 ? 50 : parameters->k; + const unsigned kMaxK = parameters->k == 0 ? 2000 : parameters->k; + const unsigned kSteps = parameters->steps == 0 ? 40 : parameters->steps; + const unsigned kStepSize = MAX((kMaxK - kMinK) / kSteps, 1); + const unsigned kIterations = + (1 + (kMaxD - kMinD) / 2) * (1 + (kMaxK - kMinK) / kStepSize); + const unsigned f = parameters->f == 0 ? DEFAULT_F : parameters->f; + const unsigned accel = parameters->accel == 0 ? DEFAULT_ACCEL : parameters->accel; + const unsigned shrinkDict = 0; + /* Local variables */ + const int displayLevel = parameters->zParams.notificationLevel; + unsigned iteration = 1; + unsigned d; + unsigned k; + COVER_best_t best; + POOL_ctx *pool = NULL; + int warned = 0; + /* Checks */ + if (splitPoint <= 0 || splitPoint > 1) { + LOCALDISPLAYLEVEL(displayLevel, 1, "Incorrect splitPoint\n"); + return ERROR(parameter_outOfBound); + } + if (accel == 0 || accel > FASTCOVER_MAX_ACCEL) { + LOCALDISPLAYLEVEL(displayLevel, 1, "Incorrect accel\n"); + return ERROR(parameter_outOfBound); + } + if (kMinK < kMaxD || kMaxK < kMinK) { + LOCALDISPLAYLEVEL(displayLevel, 1, "Incorrect k\n"); + return ERROR(parameter_outOfBound); + } + if (nbSamples == 0) { + LOCALDISPLAYLEVEL(displayLevel, 1, "FASTCOVER must have at least one input file\n"); + return ERROR(srcSize_wrong); + } + if (dictBufferCapacity < ZDICT_DICTSIZE_MIN) { + LOCALDISPLAYLEVEL(displayLevel, 1, "dictBufferCapacity must be at least %u\n", + ZDICT_DICTSIZE_MIN); + return ERROR(dstSize_tooSmall); + } + if (nbThreads > 1) { + pool = POOL_create(nbThreads, 1); + if (!pool) { + return ERROR(memory_allocation); + } + } + /* Initialization */ + COVER_best_init(&best); + memset(&coverParams, 0 , sizeof(coverParams)); + FASTCOVER_convertToCoverParams(*parameters, &coverParams); + accelParams = FASTCOVER_defaultAccelParameters[accel]; + /* Turn down global display level to clean up display at level 2 and below */ + g_displayLevel = displayLevel == 0 ? 0 : displayLevel - 1; + /* Loop through d first because each new value needs a new context */ + LOCALDISPLAYLEVEL(displayLevel, 2, "Trying %u different sets of parameters\n", + kIterations); + for (d = kMinD; d <= kMaxD; d += 2) { + /* Initialize the context for this value of d */ + FASTCOVER_ctx_t ctx; + LOCALDISPLAYLEVEL(displayLevel, 3, "d=%u\n", d); + { + size_t const initVal = FASTCOVER_ctx_init(&ctx, samplesBuffer, samplesSizes, nbSamples, d, splitPoint, f, accelParams); + if (ZSTD_isError(initVal)) { + LOCALDISPLAYLEVEL(displayLevel, 1, "Failed to initialize context\n"); + COVER_best_destroy(&best); + POOL_free(pool); + return initVal; + } + } + if (!warned) { + COVER_warnOnSmallCorpus(dictBufferCapacity, ctx.nbDmers, displayLevel); + warned = 1; + } + /* Loop through k reusing the same context */ + for (k = kMinK; k <= kMaxK; k += kStepSize) { + /* Prepare the arguments */ + FASTCOVER_tryParameters_data_t *data = (FASTCOVER_tryParameters_data_t *)malloc( + sizeof(FASTCOVER_tryParameters_data_t)); + LOCALDISPLAYLEVEL(displayLevel, 3, "k=%u\n", k); + if (!data) { + LOCALDISPLAYLEVEL(displayLevel, 1, "Failed to allocate parameters\n"); + COVER_best_destroy(&best); + FASTCOVER_ctx_destroy(&ctx); + POOL_free(pool); + return ERROR(memory_allocation); + } + data->ctx = &ctx; + data->best = &best; + data->dictBufferCapacity = dictBufferCapacity; + data->parameters = coverParams; + data->parameters.k = k; + data->parameters.d = d; + data->parameters.splitPoint = splitPoint; + data->parameters.steps = kSteps; + data->parameters.shrinkDict = shrinkDict; + data->parameters.zParams.notificationLevel = g_displayLevel; + /* Check the parameters */ + if (!FASTCOVER_checkParameters(data->parameters, dictBufferCapacity, + data->ctx->f, accel)) { + DISPLAYLEVEL(1, "FASTCOVER parameters incorrect\n"); + free(data); + continue; + } + /* Call the function and pass ownership of data to it */ + COVER_best_start(&best); + if (pool) { + POOL_add(pool, &FASTCOVER_tryParameters, data); + } else { + FASTCOVER_tryParameters(data); + } + /* Print status */ + LOCALDISPLAYUPDATE(displayLevel, 2, "\r%u%% ", + (unsigned)((iteration * 100) / kIterations)); + ++iteration; + } + COVER_best_wait(&best); + FASTCOVER_ctx_destroy(&ctx); + } + LOCALDISPLAYLEVEL(displayLevel, 2, "\r%79s\r", ""); + /* Fill the output buffer and parameters with output of the best parameters */ + { + const size_t dictSize = best.dictSize; + if (ZSTD_isError(best.compressedSize)) { + const size_t compressedSize = best.compressedSize; + COVER_best_destroy(&best); + POOL_free(pool); + return compressedSize; + } + FASTCOVER_convertToFastCoverParams(best.parameters, parameters, f, accel); + memcpy(dictBuffer, best.dict, dictSize); + COVER_best_destroy(&best); + POOL_free(pool); + return dictSize; + } + +} diff --git a/dependencies/zstd-1.5.0/lib/dictBuilder/zdict.c b/dependencies/zstd-1.5.0/lib/dictBuilder/zdict.c new file mode 100644 index 0000000..459cbe4 --- /dev/null +++ b/dependencies/zstd-1.5.0/lib/dictBuilder/zdict.c @@ -0,0 +1,1134 @@ +/* + * Copyright (c) Yann Collet, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + + +/*-************************************** +* Tuning parameters +****************************************/ +#define MINRATIO 4 /* minimum nb of apparition to be selected in dictionary */ +#define ZDICT_MAX_SAMPLES_SIZE (2000U << 20) +#define ZDICT_MIN_SAMPLES_SIZE (ZDICT_CONTENTSIZE_MIN * MINRATIO) + + +/*-************************************** +* Compiler Options +****************************************/ +/* Unix Large Files support (>4GB) */ +#define _FILE_OFFSET_BITS 64 +#if (defined(__sun__) && (!defined(__LP64__))) /* Sun Solaris 32-bits requires specific definitions */ +# ifndef _LARGEFILE_SOURCE +# define _LARGEFILE_SOURCE +# endif +#elif ! defined(__LP64__) /* No point defining Large file for 64 bit */ +# ifndef _LARGEFILE64_SOURCE +# define _LARGEFILE64_SOURCE +# endif +#endif + + +/*-************************************* +* Dependencies +***************************************/ +#include /* malloc, free */ +#include /* memset */ +#include /* fprintf, fopen, ftello64 */ +#include /* clock */ + +#ifndef ZDICT_STATIC_LINKING_ONLY +# define ZDICT_STATIC_LINKING_ONLY +#endif +#define HUF_STATIC_LINKING_ONLY + +#include "../common/mem.h" /* read */ +#include "../common/fse.h" /* FSE_normalizeCount, FSE_writeNCount */ +#include "../common/huf.h" /* HUF_buildCTable, HUF_writeCTable */ +#include "../common/zstd_internal.h" /* includes zstd.h */ +#include "../common/xxhash.h" /* XXH64 */ +#include "../compress/zstd_compress_internal.h" /* ZSTD_loadCEntropy() */ +#include "../zdict.h" +#include "divsufsort.h" + + +/*-************************************* +* Constants +***************************************/ +#define KB *(1 <<10) +#define MB *(1 <<20) +#define GB *(1U<<30) + +#define DICTLISTSIZE_DEFAULT 10000 + +#define NOISELENGTH 32 + +static const U32 g_selectivity_default = 9; + + +/*-************************************* +* Console display +***************************************/ +#undef DISPLAY +#define DISPLAY(...) { fprintf(stderr, __VA_ARGS__); fflush( stderr ); } +#undef DISPLAYLEVEL +#define DISPLAYLEVEL(l, ...) if (notificationLevel>=l) { DISPLAY(__VA_ARGS__); } /* 0 : no display; 1: errors; 2: default; 3: details; 4: debug */ + +static clock_t ZDICT_clockSpan(clock_t nPrevious) { return clock() - nPrevious; } + +static void ZDICT_printHex(const void* ptr, size_t length) +{ + const BYTE* const b = (const BYTE*)ptr; + size_t u; + for (u=0; u126) c = '.'; /* non-printable char */ + DISPLAY("%c", c); + } +} + + +/*-******************************************************** +* Helper functions +**********************************************************/ +unsigned ZDICT_isError(size_t errorCode) { return ERR_isError(errorCode); } + +const char* ZDICT_getErrorName(size_t errorCode) { return ERR_getErrorName(errorCode); } + +unsigned ZDICT_getDictID(const void* dictBuffer, size_t dictSize) +{ + if (dictSize < 8) return 0; + if (MEM_readLE32(dictBuffer) != ZSTD_MAGIC_DICTIONARY) return 0; + return MEM_readLE32((const char*)dictBuffer + 4); +} + +size_t ZDICT_getDictHeaderSize(const void* dictBuffer, size_t dictSize) +{ + size_t headerSize; + if (dictSize <= 8 || MEM_readLE32(dictBuffer) != ZSTD_MAGIC_DICTIONARY) return ERROR(dictionary_corrupted); + + { ZSTD_compressedBlockState_t* bs = (ZSTD_compressedBlockState_t*)malloc(sizeof(ZSTD_compressedBlockState_t)); + U32* wksp = (U32*)malloc(HUF_WORKSPACE_SIZE); + if (!bs || !wksp) { + headerSize = ERROR(memory_allocation); + } else { + ZSTD_reset_compressedBlockState(bs); + headerSize = ZSTD_loadCEntropy(bs, wksp, dictBuffer, dictSize); + } + + free(bs); + free(wksp); + } + + return headerSize; +} + +/*-******************************************************** +* Dictionary training functions +**********************************************************/ +static unsigned ZDICT_NbCommonBytes (size_t val) +{ + if (MEM_isLittleEndian()) { + if (MEM_64bits()) { +# if defined(_MSC_VER) && defined(_WIN64) + unsigned long r = 0; + _BitScanForward64( &r, (U64)val ); + return (unsigned)(r>>3); +# elif defined(__GNUC__) && (__GNUC__ >= 3) + return (__builtin_ctzll((U64)val) >> 3); +# else + static const int DeBruijnBytePos[64] = { 0, 0, 0, 0, 0, 1, 1, 2, 0, 3, 1, 3, 1, 4, 2, 7, 0, 2, 3, 6, 1, 5, 3, 5, 1, 3, 4, 4, 2, 5, 6, 7, 7, 0, 1, 2, 3, 3, 4, 6, 2, 6, 5, 5, 3, 4, 5, 6, 7, 1, 2, 4, 6, 4, 4, 5, 7, 2, 6, 5, 7, 6, 7, 7 }; + return DeBruijnBytePos[((U64)((val & -(long long)val) * 0x0218A392CDABBD3FULL)) >> 58]; +# endif + } else { /* 32 bits */ +# if defined(_MSC_VER) + unsigned long r=0; + _BitScanForward( &r, (U32)val ); + return (unsigned)(r>>3); +# elif defined(__GNUC__) && (__GNUC__ >= 3) + return (__builtin_ctz((U32)val) >> 3); +# else + static const int DeBruijnBytePos[32] = { 0, 0, 3, 0, 3, 1, 3, 0, 3, 2, 2, 1, 3, 2, 0, 1, 3, 3, 1, 2, 2, 2, 2, 0, 3, 1, 2, 0, 1, 0, 1, 1 }; + return DeBruijnBytePos[((U32)((val & -(S32)val) * 0x077CB531U)) >> 27]; +# endif + } + } else { /* Big Endian CPU */ + if (MEM_64bits()) { +# if defined(_MSC_VER) && defined(_WIN64) + unsigned long r = 0; + _BitScanReverse64( &r, val ); + return (unsigned)(r>>3); +# elif defined(__GNUC__) && (__GNUC__ >= 3) + return (__builtin_clzll(val) >> 3); +# else + unsigned r; + const unsigned n32 = sizeof(size_t)*4; /* calculate this way due to compiler complaining in 32-bits mode */ + if (!(val>>n32)) { r=4; } else { r=0; val>>=n32; } + if (!(val>>16)) { r+=2; val>>=8; } else { val>>=24; } + r += (!val); + return r; +# endif + } else { /* 32 bits */ +# if defined(_MSC_VER) + unsigned long r = 0; + _BitScanReverse( &r, (unsigned long)val ); + return (unsigned)(r>>3); +# elif defined(__GNUC__) && (__GNUC__ >= 3) + return (__builtin_clz((U32)val) >> 3); +# else + unsigned r; + if (!(val>>16)) { r=2; val>>=8; } else { r=0; val>>=24; } + r += (!val); + return r; +# endif + } } +} + + +/*! ZDICT_count() : + Count the nb of common bytes between 2 pointers. + Note : this function presumes end of buffer followed by noisy guard band. +*/ +static size_t ZDICT_count(const void* pIn, const void* pMatch) +{ + const char* const pStart = (const char*)pIn; + for (;;) { + size_t const diff = MEM_readST(pMatch) ^ MEM_readST(pIn); + if (!diff) { + pIn = (const char*)pIn+sizeof(size_t); + pMatch = (const char*)pMatch+sizeof(size_t); + continue; + } + pIn = (const char*)pIn+ZDICT_NbCommonBytes(diff); + return (size_t)((const char*)pIn - pStart); + } +} + + +typedef struct { + U32 pos; + U32 length; + U32 savings; +} dictItem; + +static void ZDICT_initDictItem(dictItem* d) +{ + d->pos = 1; + d->length = 0; + d->savings = (U32)(-1); +} + + +#define LLIMIT 64 /* heuristic determined experimentally */ +#define MINMATCHLENGTH 7 /* heuristic determined experimentally */ +static dictItem ZDICT_analyzePos( + BYTE* doneMarks, + const int* suffix, U32 start, + const void* buffer, U32 minRatio, U32 notificationLevel) +{ + U32 lengthList[LLIMIT] = {0}; + U32 cumulLength[LLIMIT] = {0}; + U32 savings[LLIMIT] = {0}; + const BYTE* b = (const BYTE*)buffer; + size_t maxLength = LLIMIT; + size_t pos = suffix[start]; + U32 end = start; + dictItem solution; + + /* init */ + memset(&solution, 0, sizeof(solution)); + doneMarks[pos] = 1; + + /* trivial repetition cases */ + if ( (MEM_read16(b+pos+0) == MEM_read16(b+pos+2)) + ||(MEM_read16(b+pos+1) == MEM_read16(b+pos+3)) + ||(MEM_read16(b+pos+2) == MEM_read16(b+pos+4)) ) { + /* skip and mark segment */ + U16 const pattern16 = MEM_read16(b+pos+4); + U32 u, patternEnd = 6; + while (MEM_read16(b+pos+patternEnd) == pattern16) patternEnd+=2 ; + if (b[pos+patternEnd] == b[pos+patternEnd-1]) patternEnd++; + for (u=1; u= MINMATCHLENGTH); + } + + /* look backward */ + { size_t length; + do { + length = ZDICT_count(b + pos, b + *(suffix+start-1)); + if (length >=MINMATCHLENGTH) start--; + } while(length >= MINMATCHLENGTH); + } + + /* exit if not found a minimum nb of repetitions */ + if (end-start < minRatio) { + U32 idx; + for(idx=start; idx= %i at pos %7u ", (unsigned)(end-start), MINMATCHLENGTH, (unsigned)pos); + DISPLAYLEVEL(4, "\n"); + + for (mml = MINMATCHLENGTH ; ; mml++) { + BYTE currentChar = 0; + U32 currentCount = 0; + U32 currentID = refinedStart; + U32 id; + U32 selectedCount = 0; + U32 selectedID = currentID; + for (id =refinedStart; id < refinedEnd; id++) { + if (b[suffix[id] + mml] != currentChar) { + if (currentCount > selectedCount) { + selectedCount = currentCount; + selectedID = currentID; + } + currentID = id; + currentChar = b[ suffix[id] + mml]; + currentCount = 0; + } + currentCount ++; + } + if (currentCount > selectedCount) { /* for last */ + selectedCount = currentCount; + selectedID = currentID; + } + + if (selectedCount < minRatio) + break; + refinedStart = selectedID; + refinedEnd = refinedStart + selectedCount; + } + + /* evaluate gain based on new dict */ + start = refinedStart; + pos = suffix[refinedStart]; + end = start; + memset(lengthList, 0, sizeof(lengthList)); + + /* look forward */ + { size_t length; + do { + end++; + length = ZDICT_count(b + pos, b + suffix[end]); + if (length >= LLIMIT) length = LLIMIT-1; + lengthList[length]++; + } while (length >=MINMATCHLENGTH); + } + + /* look backward */ + { size_t length = MINMATCHLENGTH; + while ((length >= MINMATCHLENGTH) & (start > 0)) { + length = ZDICT_count(b + pos, b + suffix[start - 1]); + if (length >= LLIMIT) length = LLIMIT - 1; + lengthList[length]++; + if (length >= MINMATCHLENGTH) start--; + } + } + + /* largest useful length */ + memset(cumulLength, 0, sizeof(cumulLength)); + cumulLength[maxLength-1] = lengthList[maxLength-1]; + for (i=(int)(maxLength-2); i>=0; i--) + cumulLength[i] = cumulLength[i+1] + lengthList[i]; + + for (i=LLIMIT-1; i>=MINMATCHLENGTH; i--) if (cumulLength[i]>=minRatio) break; + maxLength = i; + + /* reduce maxLength in case of final into repetitive data */ + { U32 l = (U32)maxLength; + BYTE const c = b[pos + maxLength-1]; + while (b[pos+l-2]==c) l--; + maxLength = l; + } + if (maxLength < MINMATCHLENGTH) return solution; /* skip : no long-enough solution */ + + /* calculate savings */ + savings[5] = 0; + for (i=MINMATCHLENGTH; i<=(int)maxLength; i++) + savings[i] = savings[i-1] + (lengthList[i] * (i-3)); + + DISPLAYLEVEL(4, "Selected dict at position %u, of length %u : saves %u (ratio: %.2f) \n", + (unsigned)pos, (unsigned)maxLength, (unsigned)savings[maxLength], (double)savings[maxLength] / maxLength); + + solution.pos = (U32)pos; + solution.length = (U32)maxLength; + solution.savings = savings[maxLength]; + + /* mark positions done */ + { U32 id; + for (id=start; id solution.length) length = solution.length; + } + pEnd = (U32)(testedPos + length); + for (p=testedPos; ppos; + const U32 eltEnd = elt.pos + elt.length; + const char* const buf = (const char*) buffer; + + /* tail overlap */ + U32 u; for (u=1; u elt.pos) && (table[u].pos <= eltEnd)) { /* overlap, existing > new */ + /* append */ + U32 const addedLength = table[u].pos - elt.pos; + table[u].length += addedLength; + table[u].pos = elt.pos; + table[u].savings += elt.savings * addedLength / elt.length; /* rough approx */ + table[u].savings += elt.length / 8; /* rough approx bonus */ + elt = table[u]; + /* sort : improve rank */ + while ((u>1) && (table[u-1].savings < elt.savings)) + table[u] = table[u-1], u--; + table[u] = elt; + return u; + } } + + /* front overlap */ + for (u=1; u= elt.pos) && (table[u].pos < elt.pos)) { /* overlap, existing < new */ + /* append */ + int const addedLength = (int)eltEnd - (table[u].pos + table[u].length); + table[u].savings += elt.length / 8; /* rough approx bonus */ + if (addedLength > 0) { /* otherwise, elt fully included into existing */ + table[u].length += addedLength; + table[u].savings += elt.savings * addedLength / elt.length; /* rough approx */ + } + /* sort : improve rank */ + elt = table[u]; + while ((u>1) && (table[u-1].savings < elt.savings)) + table[u] = table[u-1], u--; + table[u] = elt; + return u; + } + + if (MEM_read64(buf + table[u].pos) == MEM_read64(buf + elt.pos + 1)) { + if (isIncluded(buf + table[u].pos, buf + elt.pos + 1, table[u].length)) { + size_t const addedLength = MAX( (int)elt.length - (int)table[u].length , 1 ); + table[u].pos = elt.pos; + table[u].savings += (U32)(elt.savings * addedLength / elt.length); + table[u].length = MIN(elt.length, table[u].length + 1); + return u; + } + } + } + + return 0; +} + + +static void ZDICT_removeDictItem(dictItem* table, U32 id) +{ + /* convention : table[0].pos stores nb of elts */ + U32 const max = table[0].pos; + U32 u; + if (!id) return; /* protection, should never happen */ + for (u=id; upos--; +} + + +static void ZDICT_insertDictItem(dictItem* table, U32 maxSize, dictItem elt, const void* buffer) +{ + /* merge if possible */ + U32 mergeId = ZDICT_tryMerge(table, elt, 0, buffer); + if (mergeId) { + U32 newMerge = 1; + while (newMerge) { + newMerge = ZDICT_tryMerge(table, table[mergeId], mergeId, buffer); + if (newMerge) ZDICT_removeDictItem(table, mergeId); + mergeId = newMerge; + } + return; + } + + /* insert */ + { U32 current; + U32 nextElt = table->pos; + if (nextElt >= maxSize) nextElt = maxSize-1; + current = nextElt-1; + while (table[current].savings < elt.savings) { + table[current+1] = table[current]; + current--; + } + table[current+1] = elt; + table->pos = nextElt+1; + } +} + + +static U32 ZDICT_dictSize(const dictItem* dictList) +{ + U32 u, dictSize = 0; + for (u=1; u=l) { \ + if (ZDICT_clockSpan(displayClock) > refreshRate) \ + { displayClock = clock(); DISPLAY(__VA_ARGS__); \ + if (notificationLevel>=4) fflush(stderr); } } + + /* init */ + DISPLAYLEVEL(2, "\r%70s\r", ""); /* clean display line */ + if (!suffix0 || !reverseSuffix || !doneMarks || !filePos) { + result = ERROR(memory_allocation); + goto _cleanup; + } + if (minRatio < MINRATIO) minRatio = MINRATIO; + memset(doneMarks, 0, bufferSize+16); + + /* limit sample set size (divsufsort limitation)*/ + if (bufferSize > ZDICT_MAX_SAMPLES_SIZE) DISPLAYLEVEL(3, "sample set too large : reduced to %u MB ...\n", (unsigned)(ZDICT_MAX_SAMPLES_SIZE>>20)); + while (bufferSize > ZDICT_MAX_SAMPLES_SIZE) bufferSize -= fileSizes[--nbFiles]; + + /* sort */ + DISPLAYLEVEL(2, "sorting %u files of total size %u MB ...\n", nbFiles, (unsigned)(bufferSize>>20)); + { int const divSuftSortResult = divsufsort((const unsigned char*)buffer, suffix, (int)bufferSize, 0); + if (divSuftSortResult != 0) { result = ERROR(GENERIC); goto _cleanup; } + } + suffix[bufferSize] = (int)bufferSize; /* leads into noise */ + suffix0[0] = (int)bufferSize; /* leads into noise */ + /* build reverse suffix sort */ + { size_t pos; + for (pos=0; pos < bufferSize; pos++) + reverseSuffix[suffix[pos]] = (U32)pos; + /* note filePos tracks borders between samples. + It's not used at this stage, but planned to become useful in a later update */ + filePos[0] = 0; + for (pos=1; pos> 21); + } +} + + +typedef struct +{ + ZSTD_CDict* dict; /* dictionary */ + ZSTD_CCtx* zc; /* working context */ + void* workPlace; /* must be ZSTD_BLOCKSIZE_MAX allocated */ +} EStats_ress_t; + +#define MAXREPOFFSET 1024 + +static void ZDICT_countEStats(EStats_ress_t esr, const ZSTD_parameters* params, + unsigned* countLit, unsigned* offsetcodeCount, unsigned* matchlengthCount, unsigned* litlengthCount, U32* repOffsets, + const void* src, size_t srcSize, + U32 notificationLevel) +{ + size_t const blockSizeMax = MIN (ZSTD_BLOCKSIZE_MAX, 1 << params->cParams.windowLog); + size_t cSize; + + if (srcSize > blockSizeMax) srcSize = blockSizeMax; /* protection vs large samples */ + { size_t const errorCode = ZSTD_compressBegin_usingCDict(esr.zc, esr.dict); + if (ZSTD_isError(errorCode)) { DISPLAYLEVEL(1, "warning : ZSTD_compressBegin_usingCDict failed \n"); return; } + + } + cSize = ZSTD_compressBlock(esr.zc, esr.workPlace, ZSTD_BLOCKSIZE_MAX, src, srcSize); + if (ZSTD_isError(cSize)) { DISPLAYLEVEL(3, "warning : could not compress sample size %u \n", (unsigned)srcSize); return; } + + if (cSize) { /* if == 0; block is not compressible */ + const seqStore_t* const seqStorePtr = ZSTD_getSeqStore(esr.zc); + + /* literals stats */ + { const BYTE* bytePtr; + for(bytePtr = seqStorePtr->litStart; bytePtr < seqStorePtr->lit; bytePtr++) + countLit[*bytePtr]++; + } + + /* seqStats */ + { U32 const nbSeq = (U32)(seqStorePtr->sequences - seqStorePtr->sequencesStart); + ZSTD_seqToCodes(seqStorePtr); + + { const BYTE* codePtr = seqStorePtr->ofCode; + U32 u; + for (u=0; umlCode; + U32 u; + for (u=0; ullCode; + U32 u; + for (u=0; u= 2) { /* rep offsets */ + const seqDef* const seq = seqStorePtr->sequencesStart; + U32 offset1 = seq[0].offset - 3; + U32 offset2 = seq[1].offset - 3; + if (offset1 >= MAXREPOFFSET) offset1 = 0; + if (offset2 >= MAXREPOFFSET) offset2 = 0; + repOffsets[offset1] += 3; + repOffsets[offset2] += 1; + } } } +} + +static size_t ZDICT_totalSampleSize(const size_t* fileSizes, unsigned nbFiles) +{ + size_t total=0; + unsigned u; + for (u=0; u0; u--) { + offsetCount_t tmp; + if (table[u-1].count >= table[u].count) break; + tmp = table[u-1]; + table[u-1] = table[u]; + table[u] = tmp; + } +} + +/* ZDICT_flatLit() : + * rewrite `countLit` to contain a mostly flat but still compressible distribution of literals. + * necessary to avoid generating a non-compressible distribution that HUF_writeCTable() cannot encode. + */ +static void ZDICT_flatLit(unsigned* countLit) +{ + int u; + for (u=1; u<256; u++) countLit[u] = 2; + countLit[0] = 4; + countLit[253] = 1; + countLit[254] = 1; +} + +#define OFFCODE_MAX 30 /* only applicable to first block */ +static size_t ZDICT_analyzeEntropy(void* dstBuffer, size_t maxDstSize, + int compressionLevel, + const void* srcBuffer, const size_t* fileSizes, unsigned nbFiles, + const void* dictBuffer, size_t dictBufferSize, + unsigned notificationLevel) +{ + unsigned countLit[256]; + HUF_CREATE_STATIC_CTABLE(hufTable, 255); + unsigned offcodeCount[OFFCODE_MAX+1]; + short offcodeNCount[OFFCODE_MAX+1]; + U32 offcodeMax = ZSTD_highbit32((U32)(dictBufferSize + 128 KB)); + unsigned matchLengthCount[MaxML+1]; + short matchLengthNCount[MaxML+1]; + unsigned litLengthCount[MaxLL+1]; + short litLengthNCount[MaxLL+1]; + U32 repOffset[MAXREPOFFSET]; + offsetCount_t bestRepOffset[ZSTD_REP_NUM+1]; + EStats_ress_t esr = { NULL, NULL, NULL }; + ZSTD_parameters params; + U32 u, huffLog = 11, Offlog = OffFSELog, mlLog = MLFSELog, llLog = LLFSELog, total; + size_t pos = 0, errorCode; + size_t eSize = 0; + size_t const totalSrcSize = ZDICT_totalSampleSize(fileSizes, nbFiles); + size_t const averageSampleSize = totalSrcSize / (nbFiles + !nbFiles); + BYTE* dstPtr = (BYTE*)dstBuffer; + + /* init */ + DEBUGLOG(4, "ZDICT_analyzeEntropy"); + if (offcodeMax>OFFCODE_MAX) { eSize = ERROR(dictionaryCreation_failed); goto _cleanup; } /* too large dictionary */ + for (u=0; u<256; u++) countLit[u] = 1; /* any character must be described */ + for (u=0; u<=offcodeMax; u++) offcodeCount[u] = 1; + for (u=0; u<=MaxML; u++) matchLengthCount[u] = 1; + for (u=0; u<=MaxLL; u++) litLengthCount[u] = 1; + memset(repOffset, 0, sizeof(repOffset)); + repOffset[1] = repOffset[4] = repOffset[8] = 1; + memset(bestRepOffset, 0, sizeof(bestRepOffset)); + if (compressionLevel==0) compressionLevel = ZSTD_CLEVEL_DEFAULT; + params = ZSTD_getParams(compressionLevel, averageSampleSize, dictBufferSize); + + esr.dict = ZSTD_createCDict_advanced(dictBuffer, dictBufferSize, ZSTD_dlm_byRef, ZSTD_dct_rawContent, params.cParams, ZSTD_defaultCMem); + esr.zc = ZSTD_createCCtx(); + esr.workPlace = malloc(ZSTD_BLOCKSIZE_MAX); + if (!esr.dict || !esr.zc || !esr.workPlace) { + eSize = ERROR(memory_allocation); + DISPLAYLEVEL(1, "Not enough memory \n"); + goto _cleanup; + } + + /* collect stats on all samples */ + for (u=0; u dictBufferCapacity) dictContentSize = dictBufferCapacity - hSize; + { size_t const dictSize = hSize + dictContentSize; + char* dictEnd = (char*)dictBuffer + dictSize; + memmove(dictEnd - dictContentSize, customDictContent, dictContentSize); + memcpy(dictBuffer, header, hSize); + return dictSize; + } +} + + +static size_t ZDICT_addEntropyTablesFromBuffer_advanced( + void* dictBuffer, size_t dictContentSize, size_t dictBufferCapacity, + const void* samplesBuffer, const size_t* samplesSizes, unsigned nbSamples, + ZDICT_params_t params) +{ + int const compressionLevel = (params.compressionLevel == 0) ? ZSTD_CLEVEL_DEFAULT : params.compressionLevel; + U32 const notificationLevel = params.notificationLevel; + size_t hSize = 8; + + /* calculate entropy tables */ + DISPLAYLEVEL(2, "\r%70s\r", ""); /* clean display line */ + DISPLAYLEVEL(2, "statistics ... \n"); + { size_t const eSize = ZDICT_analyzeEntropy((char*)dictBuffer+hSize, dictBufferCapacity-hSize, + compressionLevel, + samplesBuffer, samplesSizes, nbSamples, + (char*)dictBuffer + dictBufferCapacity - dictContentSize, dictContentSize, + notificationLevel); + if (ZDICT_isError(eSize)) return eSize; + hSize += eSize; + } + + /* add dictionary header (after entropy tables) */ + MEM_writeLE32(dictBuffer, ZSTD_MAGIC_DICTIONARY); + { U64 const randomID = XXH64((char*)dictBuffer + dictBufferCapacity - dictContentSize, dictContentSize, 0); + U32 const compliantID = (randomID % ((1U<<31)-32768)) + 32768; + U32 const dictID = params.dictID ? params.dictID : compliantID; + MEM_writeLE32((char*)dictBuffer+4, dictID); + } + + if (hSize + dictContentSize < dictBufferCapacity) + memmove((char*)dictBuffer + hSize, (char*)dictBuffer + dictBufferCapacity - dictContentSize, dictContentSize); + return MIN(dictBufferCapacity, hSize+dictContentSize); +} + +/*! ZDICT_trainFromBuffer_unsafe_legacy() : +* Warning : `samplesBuffer` must be followed by noisy guard band !!! +* @return : size of dictionary, or an error code which can be tested with ZDICT_isError() +*/ +static size_t ZDICT_trainFromBuffer_unsafe_legacy( + void* dictBuffer, size_t maxDictSize, + const void* samplesBuffer, const size_t* samplesSizes, unsigned nbSamples, + ZDICT_legacy_params_t params) +{ + U32 const dictListSize = MAX(MAX(DICTLISTSIZE_DEFAULT, nbSamples), (U32)(maxDictSize/16)); + dictItem* const dictList = (dictItem*)malloc(dictListSize * sizeof(*dictList)); + unsigned const selectivity = params.selectivityLevel == 0 ? g_selectivity_default : params.selectivityLevel; + unsigned const minRep = (selectivity > 30) ? MINRATIO : nbSamples >> selectivity; + size_t const targetDictSize = maxDictSize; + size_t const samplesBuffSize = ZDICT_totalSampleSize(samplesSizes, nbSamples); + size_t dictSize = 0; + U32 const notificationLevel = params.zParams.notificationLevel; + + /* checks */ + if (!dictList) return ERROR(memory_allocation); + if (maxDictSize < ZDICT_DICTSIZE_MIN) { free(dictList); return ERROR(dstSize_tooSmall); } /* requested dictionary size is too small */ + if (samplesBuffSize < ZDICT_MIN_SAMPLES_SIZE) { free(dictList); return ERROR(dictionaryCreation_failed); } /* not enough source to create dictionary */ + + /* init */ + ZDICT_initDictItem(dictList); + + /* build dictionary */ + ZDICT_trainBuffer_legacy(dictList, dictListSize, + samplesBuffer, samplesBuffSize, + samplesSizes, nbSamples, + minRep, notificationLevel); + + /* display best matches */ + if (params.zParams.notificationLevel>= 3) { + unsigned const nb = MIN(25, dictList[0].pos); + unsigned const dictContentSize = ZDICT_dictSize(dictList); + unsigned u; + DISPLAYLEVEL(3, "\n %u segments found, of total size %u \n", (unsigned)dictList[0].pos-1, dictContentSize); + DISPLAYLEVEL(3, "list %u best segments \n", nb-1); + for (u=1; u samplesBuffSize) || ((pos + length) > samplesBuffSize)) { + free(dictList); + return ERROR(GENERIC); /* should never happen */ + } + DISPLAYLEVEL(3, "%3u:%3u bytes at pos %8u, savings %7u bytes |", + u, length, pos, (unsigned)dictList[u].savings); + ZDICT_printHex((const char*)samplesBuffer+pos, printedLength); + DISPLAYLEVEL(3, "| \n"); + } } + + + /* create dictionary */ + { unsigned dictContentSize = ZDICT_dictSize(dictList); + if (dictContentSize < ZDICT_CONTENTSIZE_MIN) { free(dictList); return ERROR(dictionaryCreation_failed); } /* dictionary content too small */ + if (dictContentSize < targetDictSize/4) { + DISPLAYLEVEL(2, "! warning : selected content significantly smaller than requested (%u < %u) \n", dictContentSize, (unsigned)maxDictSize); + if (samplesBuffSize < 10 * targetDictSize) + DISPLAYLEVEL(2, "! consider increasing the number of samples (total size : %u MB)\n", (unsigned)(samplesBuffSize>>20)); + if (minRep > MINRATIO) { + DISPLAYLEVEL(2, "! consider increasing selectivity to produce larger dictionary (-s%u) \n", selectivity+1); + DISPLAYLEVEL(2, "! note : larger dictionaries are not necessarily better, test its efficiency on samples \n"); + } + } + + if ((dictContentSize > targetDictSize*3) && (nbSamples > 2*MINRATIO) && (selectivity>1)) { + unsigned proposedSelectivity = selectivity-1; + while ((nbSamples >> proposedSelectivity) <= MINRATIO) { proposedSelectivity--; } + DISPLAYLEVEL(2, "! note : calculated dictionary significantly larger than requested (%u > %u) \n", dictContentSize, (unsigned)maxDictSize); + DISPLAYLEVEL(2, "! consider increasing dictionary size, or produce denser dictionary (-s%u) \n", proposedSelectivity); + DISPLAYLEVEL(2, "! always test dictionary efficiency on real samples \n"); + } + + /* limit dictionary size */ + { U32 const max = dictList->pos; /* convention : nb of useful elts within dictList */ + U32 currentSize = 0; + U32 n; for (n=1; n targetDictSize) { currentSize -= dictList[n].length; break; } + } + dictList->pos = n; + dictContentSize = currentSize; + } + + /* build dict content */ + { U32 u; + BYTE* ptr = (BYTE*)dictBuffer + maxDictSize; + for (u=1; upos; u++) { + U32 l = dictList[u].length; + ptr -= l; + if (ptr<(BYTE*)dictBuffer) { free(dictList); return ERROR(GENERIC); } /* should not happen */ + memcpy(ptr, (const char*)samplesBuffer+dictList[u].pos, l); + } } + + dictSize = ZDICT_addEntropyTablesFromBuffer_advanced(dictBuffer, dictContentSize, maxDictSize, + samplesBuffer, samplesSizes, nbSamples, + params.zParams); + } + + /* clean up */ + free(dictList); + return dictSize; +} + + +/* ZDICT_trainFromBuffer_legacy() : + * issue : samplesBuffer need to be followed by a noisy guard band. + * work around : duplicate the buffer, and add the noise */ +size_t ZDICT_trainFromBuffer_legacy(void* dictBuffer, size_t dictBufferCapacity, + const void* samplesBuffer, const size_t* samplesSizes, unsigned nbSamples, + ZDICT_legacy_params_t params) +{ + size_t result; + void* newBuff; + size_t const sBuffSize = ZDICT_totalSampleSize(samplesSizes, nbSamples); + if (sBuffSize < ZDICT_MIN_SAMPLES_SIZE) return 0; /* not enough content => no dictionary */ + + newBuff = malloc(sBuffSize + NOISELENGTH); + if (!newBuff) return ERROR(memory_allocation); + + memcpy(newBuff, samplesBuffer, sBuffSize); + ZDICT_fillNoise((char*)newBuff + sBuffSize, NOISELENGTH); /* guard band, for end of buffer condition */ + + result = + ZDICT_trainFromBuffer_unsafe_legacy(dictBuffer, dictBufferCapacity, newBuff, + samplesSizes, nbSamples, params); + free(newBuff); + return result; +} + + +size_t ZDICT_trainFromBuffer(void* dictBuffer, size_t dictBufferCapacity, + const void* samplesBuffer, const size_t* samplesSizes, unsigned nbSamples) +{ + ZDICT_fastCover_params_t params; + DEBUGLOG(3, "ZDICT_trainFromBuffer"); + memset(¶ms, 0, sizeof(params)); + params.d = 8; + params.steps = 4; + /* Use default level since no compression level information is available */ + params.zParams.compressionLevel = ZSTD_CLEVEL_DEFAULT; +#if defined(DEBUGLEVEL) && (DEBUGLEVEL>=1) + params.zParams.notificationLevel = DEBUGLEVEL; +#endif + return ZDICT_optimizeTrainFromBuffer_fastCover(dictBuffer, dictBufferCapacity, + samplesBuffer, samplesSizes, nbSamples, + ¶ms); +} + +size_t ZDICT_addEntropyTablesFromBuffer(void* dictBuffer, size_t dictContentSize, size_t dictBufferCapacity, + const void* samplesBuffer, const size_t* samplesSizes, unsigned nbSamples) +{ + ZDICT_params_t params; + memset(¶ms, 0, sizeof(params)); + return ZDICT_addEntropyTablesFromBuffer_advanced(dictBuffer, dictContentSize, dictBufferCapacity, + samplesBuffer, samplesSizes, nbSamples, + params); +} diff --git a/dependencies/zstd-1.5.0/lib/dll/example/Makefile b/dependencies/zstd-1.5.0/lib/dll/example/Makefile new file mode 100644 index 0000000..03b034d --- /dev/null +++ b/dependencies/zstd-1.5.0/lib/dll/example/Makefile @@ -0,0 +1,48 @@ +# ################################################################ +# Copyright (c) Yann Collet, Facebook, Inc. +# All rights reserved. +# +# This source code is licensed under both the BSD-style license (found in the +# LICENSE file in the root directory of this source tree) and the GPLv2 (found +# in the COPYING file in the root directory of this source tree). +# You may select, at your option, one of the above-listed licenses. +# ################################################################ + +VOID := /dev/null +ZSTDDIR := ../include +LIBDIR := ../static +DLLDIR := ../dll + +CFLAGS ?= -O3 # can select custom flags. For example : CFLAGS="-O2 -g" make +CFLAGS += -Wall -Wextra -Wundef -Wcast-qual -Wcast-align -Wshadow -Wswitch-enum \ + -Wdeclaration-after-statement -Wstrict-prototypes \ + -Wpointer-arith -Wstrict-aliasing=1 +CFLAGS += $(MOREFLAGS) +CPPFLAGS:= -I$(ZSTDDIR) -DXXH_NAMESPACE=ZSTD_ +FLAGS := $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) + + +# Define *.exe as extension for Windows systems +ifneq (,$(filter Windows%,$(OS))) +EXT =.exe +else +EXT = +endif + +.PHONY: default fullbench-dll fullbench-lib + + +default: all + +all: fullbench-dll fullbench-lib + + +fullbench-lib: fullbench.c datagen.c + $(CC) $(FLAGS) $^ -o $@$(EXT) $(LIBDIR)/libzstd_static.lib + +fullbench-dll: fullbench.c datagen.c + $(CC) $(FLAGS) $^ -o $@$(EXT) -DZSTD_DLL_IMPORT=1 $(DLLDIR)/libzstd.dll + +clean: + @$(RM) fullbench-dll$(EXT) fullbench-lib$(EXT) \ + @echo Cleaning completed diff --git a/dependencies/zstd-1.5.0/lib/dll/example/README.md b/dependencies/zstd-1.5.0/lib/dll/example/README.md new file mode 100644 index 0000000..9e30fd5 --- /dev/null +++ b/dependencies/zstd-1.5.0/lib/dll/example/README.md @@ -0,0 +1,63 @@ +# ZSTD Windows binary package + +## The package contents + +- `zstd.exe` : Command Line Utility, supporting gzip-like arguments +- `dll\libzstd.dll` : The ZSTD dynamic library (DLL) +- `dll\libzstd.lib` : The import library of the ZSTD dynamic library (DLL) for Visual C++ +- `example\` : The example of usage of the ZSTD library +- `include\` : Header files required by the ZSTD library +- `static\libzstd_static.lib` : The static ZSTD library (LIB) + +## Usage of Command Line Interface + +Command Line Interface (CLI) supports gzip-like arguments. +By default CLI takes an input file and compresses it to an output file: + + Usage: zstd [arg] [input] [output] + +The full list of commands for CLI can be obtained with `-h` or `-H`. The ratio can +be improved with commands from `-3` to `-16` but higher levels also have slower +compression. CLI includes in-memory compression benchmark module with compression +levels starting from `-b` and ending with `-e` with iteration time of `-i` seconds. +CLI supports aggregation of parameters i.e. `-b1`, `-e18`, and `-i1` can be joined +into `-b1e18i1`. + +## The example of usage of static and dynamic ZSTD libraries with gcc/MinGW + +Use `cd example` and `make` to build `fullbench-dll` and `fullbench-lib`. +`fullbench-dll` uses a dynamic ZSTD library from the `dll` directory. +`fullbench-lib` uses a static ZSTD library from the `lib` directory. + +## Using ZSTD DLL with gcc/MinGW + +The header files from `include\` and the dynamic library `dll\libzstd.dll` +are required to compile a project using gcc/MinGW. +The dynamic library has to be added to linking options. +It means that if a project that uses ZSTD consists of a single `test-dll.c` +file it should be linked with `dll\libzstd.dll`. For example: + + gcc $(CFLAGS) -Iinclude\ test-dll.c -o test-dll dll\libzstd.dll + +The compiled executable will require ZSTD DLL which is available at `dll\libzstd.dll`. + +## The example of usage of static and dynamic ZSTD libraries with Visual C++ + +Open `example\fullbench-dll.sln` to compile `fullbench-dll` that uses a +dynamic ZSTD library from the `dll` directory. The solution works with Visual C++ +2010 or newer. When one will open the solution with Visual C++ newer than 2010 +then the solution will upgraded to the current version. + +## Using ZSTD DLL with Visual C++ + +The header files from `include\` and the import library `dll\libzstd.lib` +are required to compile a project using Visual C++. + +1. The path to header files should be added to `Additional Include Directories` that can + be found in project properties `C/C++` then `General`. +2. The import library has to be added to `Additional Dependencies` that can + be found in project properties `Linker` then `Input`. + If one will provide only the name `libzstd.lib` without a full path to the library + the directory has to be added to `Linker\General\Additional Library Directories`. + +The compiled executable will require ZSTD DLL which is available at `dll\libzstd.dll`. diff --git a/dependencies/zstd-1.5.0/lib/dll/example/build_package.bat b/dependencies/zstd-1.5.0/lib/dll/example/build_package.bat new file mode 100644 index 0000000..8baabc7 --- /dev/null +++ b/dependencies/zstd-1.5.0/lib/dll/example/build_package.bat @@ -0,0 +1,20 @@ +@ECHO OFF +MKDIR bin\dll bin\static bin\example bin\include +COPY tests\fullbench.c bin\example\ +COPY programs\datagen.c bin\example\ +COPY programs\datagen.h bin\example\ +COPY programs\util.h bin\example\ +COPY programs\platform.h bin\example\ +COPY lib\common\mem.h bin\example\ +COPY lib\common\zstd_internal.h bin\example\ +COPY lib\common\error_private.h bin\example\ +COPY lib\common\xxhash.h bin\example\ +COPY lib\libzstd.a bin\static\libzstd_static.lib +COPY lib\dll\libzstd.* bin\dll\ +COPY lib\dll\example\Makefile bin\example\ +COPY lib\dll\example\fullbench-dll.* bin\example\ +COPY lib\dll\example\README.md bin\ +COPY lib\zstd.h bin\include\ +COPY lib\common\zstd_errors.h bin\include\ +COPY lib\dictBuilder\zdict.h bin\include\ +COPY programs\zstd.exe bin\zstd.exe diff --git a/dependencies/zstd-1.5.0/lib/dll/example/fullbench-dll.sln b/dependencies/zstd-1.5.0/lib/dll/example/fullbench-dll.sln new file mode 100644 index 0000000..72e302e --- /dev/null +++ b/dependencies/zstd-1.5.0/lib/dll/example/fullbench-dll.sln @@ -0,0 +1,25 @@ +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Express 2012 for Windows Desktop +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "fullbench-dll", "fullbench-dll.vcxproj", "{13992FD2-077E-4954-B065-A428198201A9}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Debug|x64 = Debug|x64 + Release|Win32 = Release|Win32 + Release|x64 = Release|x64 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {13992FD2-077E-4954-B065-A428198201A9}.Debug|Win32.ActiveCfg = Debug|Win32 + {13992FD2-077E-4954-B065-A428198201A9}.Debug|Win32.Build.0 = Debug|Win32 + {13992FD2-077E-4954-B065-A428198201A9}.Debug|x64.ActiveCfg = Debug|x64 + {13992FD2-077E-4954-B065-A428198201A9}.Debug|x64.Build.0 = Debug|x64 + {13992FD2-077E-4954-B065-A428198201A9}.Release|Win32.ActiveCfg = Release|Win32 + {13992FD2-077E-4954-B065-A428198201A9}.Release|Win32.Build.0 = Release|Win32 + {13992FD2-077E-4954-B065-A428198201A9}.Release|x64.ActiveCfg = Release|x64 + {13992FD2-077E-4954-B065-A428198201A9}.Release|x64.Build.0 = Release|x64 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/dependencies/zstd-1.5.0/lib/dll/example/fullbench-dll.vcxproj b/dependencies/zstd-1.5.0/lib/dll/example/fullbench-dll.vcxproj new file mode 100644 index 0000000..44bbaf7 --- /dev/null +++ b/dependencies/zstd-1.5.0/lib/dll/example/fullbench-dll.vcxproj @@ -0,0 +1,181 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {00000000-1CC8-4FD7-9281-6B8DBB9D3DF8} + Win32Proj + fullbench-dll + $(SolutionDir)bin\$(Platform)_$(Configuration)\ + $(SolutionDir)bin\obj\$(RootNamespace)_$(Platform)_$(Configuration)\ + + + + Application + true + MultiByte + + + Application + true + MultiByte + + + Application + false + true + MultiByte + + + Application + false + true + MultiByte + + + + + + + + + + + + + + + + + + + true + $(IncludePath);$(SolutionDir)..\..\lib;$(SolutionDir)..\..\programs;$(SolutionDir)..\..\lib\legacy;$(SolutionDir)..\..\lib\common;$(UniversalCRT_IncludePath); + false + + + true + $(IncludePath);$(SolutionDir)..\..\lib;$(SolutionDir)..\..\programs;$(SolutionDir)..\..\lib\legacy;$(SolutionDir)..\..\lib\common;$(UniversalCRT_IncludePath); + false + + + false + $(IncludePath);$(SolutionDir)..\..\lib;$(SolutionDir)..\..\programs;$(SolutionDir)..\..\lib\legacy;$(SolutionDir)..\..\lib\common;$(UniversalCRT_IncludePath); + false + + + false + $(IncludePath);$(SolutionDir)..\..\lib;$(SolutionDir)..\..\programs;$(SolutionDir)..\..\lib\legacy;$(SolutionDir)..\..\lib\common;$(UniversalCRT_IncludePath); + false + + + + + + Level4 + Disabled + WIN32;_DEBUG;_CONSOLE;ZSTD_DLL_IMPORT=1;%(PreprocessorDefinitions) + true + false + ..\include + + + Console + true + $(SolutionDir)..\dll;%(AdditionalLibraryDirectories) + libzstd.lib;%(AdditionalDependencies) + false + + + + + + + Level4 + Disabled + WIN32;_DEBUG;_CONSOLE;ZSTD_DLL_IMPORT=1;%(PreprocessorDefinitions) + true + false + ..\include + + + Console + true + $(SolutionDir)..\dll;%(AdditionalLibraryDirectories) + libzstd.lib;%(AdditionalDependencies) + + + + + Level4 + + + MaxSpeed + true + true + WIN32;_DEBUG;_CONSOLE;ZSTD_DLL_IMPORT=1;%(PreprocessorDefinitions) + false + ..\include + false + MultiThreaded + + + Console + true + true + true + $(SolutionDir)..\dll;%(AdditionalLibraryDirectories) + libzstd.lib;%(AdditionalDependencies) + false + + + + + Level4 + + + MaxSpeed + true + true + WIN32;_DEBUG;_CONSOLE;ZSTD_DLL_IMPORT=1;%(PreprocessorDefinitions) + false + false + ..\include + MultiThreaded + + + Console + true + true + true + $(SolutionDir)..\dll;%(AdditionalLibraryDirectories) + libzstd.lib;%(AdditionalDependencies) + + + + + + + + + + + + + \ No newline at end of file diff --git a/dependencies/zstd-1.5.0/lib/legacy/zstd_legacy.h b/dependencies/zstd-1.5.0/lib/legacy/zstd_legacy.h new file mode 100644 index 0000000..a6f1174 --- /dev/null +++ b/dependencies/zstd-1.5.0/lib/legacy/zstd_legacy.h @@ -0,0 +1,415 @@ +/* + * Copyright (c) Yann Collet, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + +#ifndef ZSTD_LEGACY_H +#define ZSTD_LEGACY_H + +#if defined (__cplusplus) +extern "C" { +#endif + +/* ************************************* +* Includes +***************************************/ +#include "../common/mem.h" /* MEM_STATIC */ +#include "../common/error_private.h" /* ERROR */ +#include "../common/zstd_internal.h" /* ZSTD_inBuffer, ZSTD_outBuffer, ZSTD_frameSizeInfo */ + +#if !defined (ZSTD_LEGACY_SUPPORT) || (ZSTD_LEGACY_SUPPORT == 0) +# undef ZSTD_LEGACY_SUPPORT +# define ZSTD_LEGACY_SUPPORT 8 +#endif + +#if (ZSTD_LEGACY_SUPPORT <= 1) +# include "zstd_v01.h" +#endif +#if (ZSTD_LEGACY_SUPPORT <= 2) +# include "zstd_v02.h" +#endif +#if (ZSTD_LEGACY_SUPPORT <= 3) +# include "zstd_v03.h" +#endif +#if (ZSTD_LEGACY_SUPPORT <= 4) +# include "zstd_v04.h" +#endif +#if (ZSTD_LEGACY_SUPPORT <= 5) +# include "zstd_v05.h" +#endif +#if (ZSTD_LEGACY_SUPPORT <= 6) +# include "zstd_v06.h" +#endif +#if (ZSTD_LEGACY_SUPPORT <= 7) +# include "zstd_v07.h" +#endif + +/** ZSTD_isLegacy() : + @return : > 0 if supported by legacy decoder. 0 otherwise. + return value is the version. +*/ +MEM_STATIC unsigned ZSTD_isLegacy(const void* src, size_t srcSize) +{ + U32 magicNumberLE; + if (srcSize<4) return 0; + magicNumberLE = MEM_readLE32(src); + switch(magicNumberLE) + { +#if (ZSTD_LEGACY_SUPPORT <= 1) + case ZSTDv01_magicNumberLE:return 1; +#endif +#if (ZSTD_LEGACY_SUPPORT <= 2) + case ZSTDv02_magicNumber : return 2; +#endif +#if (ZSTD_LEGACY_SUPPORT <= 3) + case ZSTDv03_magicNumber : return 3; +#endif +#if (ZSTD_LEGACY_SUPPORT <= 4) + case ZSTDv04_magicNumber : return 4; +#endif +#if (ZSTD_LEGACY_SUPPORT <= 5) + case ZSTDv05_MAGICNUMBER : return 5; +#endif +#if (ZSTD_LEGACY_SUPPORT <= 6) + case ZSTDv06_MAGICNUMBER : return 6; +#endif +#if (ZSTD_LEGACY_SUPPORT <= 7) + case ZSTDv07_MAGICNUMBER : return 7; +#endif + default : return 0; + } +} + + +MEM_STATIC unsigned long long ZSTD_getDecompressedSize_legacy(const void* src, size_t srcSize) +{ + U32 const version = ZSTD_isLegacy(src, srcSize); + if (version < 5) return 0; /* no decompressed size in frame header, or not a legacy format */ +#if (ZSTD_LEGACY_SUPPORT <= 5) + if (version==5) { + ZSTDv05_parameters fParams; + size_t const frResult = ZSTDv05_getFrameParams(&fParams, src, srcSize); + if (frResult != 0) return 0; + return fParams.srcSize; + } +#endif +#if (ZSTD_LEGACY_SUPPORT <= 6) + if (version==6) { + ZSTDv06_frameParams fParams; + size_t const frResult = ZSTDv06_getFrameParams(&fParams, src, srcSize); + if (frResult != 0) return 0; + return fParams.frameContentSize; + } +#endif +#if (ZSTD_LEGACY_SUPPORT <= 7) + if (version==7) { + ZSTDv07_frameParams fParams; + size_t const frResult = ZSTDv07_getFrameParams(&fParams, src, srcSize); + if (frResult != 0) return 0; + return fParams.frameContentSize; + } +#endif + return 0; /* should not be possible */ +} + + +MEM_STATIC size_t ZSTD_decompressLegacy( + void* dst, size_t dstCapacity, + const void* src, size_t compressedSize, + const void* dict,size_t dictSize) +{ + U32 const version = ZSTD_isLegacy(src, compressedSize); + (void)dst; (void)dstCapacity; (void)dict; (void)dictSize; /* unused when ZSTD_LEGACY_SUPPORT >= 8 */ + switch(version) + { +#if (ZSTD_LEGACY_SUPPORT <= 1) + case 1 : + return ZSTDv01_decompress(dst, dstCapacity, src, compressedSize); +#endif +#if (ZSTD_LEGACY_SUPPORT <= 2) + case 2 : + return ZSTDv02_decompress(dst, dstCapacity, src, compressedSize); +#endif +#if (ZSTD_LEGACY_SUPPORT <= 3) + case 3 : + return ZSTDv03_decompress(dst, dstCapacity, src, compressedSize); +#endif +#if (ZSTD_LEGACY_SUPPORT <= 4) + case 4 : + return ZSTDv04_decompress(dst, dstCapacity, src, compressedSize); +#endif +#if (ZSTD_LEGACY_SUPPORT <= 5) + case 5 : + { size_t result; + ZSTDv05_DCtx* const zd = ZSTDv05_createDCtx(); + if (zd==NULL) return ERROR(memory_allocation); + result = ZSTDv05_decompress_usingDict(zd, dst, dstCapacity, src, compressedSize, dict, dictSize); + ZSTDv05_freeDCtx(zd); + return result; + } +#endif +#if (ZSTD_LEGACY_SUPPORT <= 6) + case 6 : + { size_t result; + ZSTDv06_DCtx* const zd = ZSTDv06_createDCtx(); + if (zd==NULL) return ERROR(memory_allocation); + result = ZSTDv06_decompress_usingDict(zd, dst, dstCapacity, src, compressedSize, dict, dictSize); + ZSTDv06_freeDCtx(zd); + return result; + } +#endif +#if (ZSTD_LEGACY_SUPPORT <= 7) + case 7 : + { size_t result; + ZSTDv07_DCtx* const zd = ZSTDv07_createDCtx(); + if (zd==NULL) return ERROR(memory_allocation); + result = ZSTDv07_decompress_usingDict(zd, dst, dstCapacity, src, compressedSize, dict, dictSize); + ZSTDv07_freeDCtx(zd); + return result; + } +#endif + default : + return ERROR(prefix_unknown); + } +} + +MEM_STATIC ZSTD_frameSizeInfo ZSTD_findFrameSizeInfoLegacy(const void *src, size_t srcSize) +{ + ZSTD_frameSizeInfo frameSizeInfo; + U32 const version = ZSTD_isLegacy(src, srcSize); + switch(version) + { +#if (ZSTD_LEGACY_SUPPORT <= 1) + case 1 : + ZSTDv01_findFrameSizeInfoLegacy(src, srcSize, + &frameSizeInfo.compressedSize, + &frameSizeInfo.decompressedBound); + break; +#endif +#if (ZSTD_LEGACY_SUPPORT <= 2) + case 2 : + ZSTDv02_findFrameSizeInfoLegacy(src, srcSize, + &frameSizeInfo.compressedSize, + &frameSizeInfo.decompressedBound); + break; +#endif +#if (ZSTD_LEGACY_SUPPORT <= 3) + case 3 : + ZSTDv03_findFrameSizeInfoLegacy(src, srcSize, + &frameSizeInfo.compressedSize, + &frameSizeInfo.decompressedBound); + break; +#endif +#if (ZSTD_LEGACY_SUPPORT <= 4) + case 4 : + ZSTDv04_findFrameSizeInfoLegacy(src, srcSize, + &frameSizeInfo.compressedSize, + &frameSizeInfo.decompressedBound); + break; +#endif +#if (ZSTD_LEGACY_SUPPORT <= 5) + case 5 : + ZSTDv05_findFrameSizeInfoLegacy(src, srcSize, + &frameSizeInfo.compressedSize, + &frameSizeInfo.decompressedBound); + break; +#endif +#if (ZSTD_LEGACY_SUPPORT <= 6) + case 6 : + ZSTDv06_findFrameSizeInfoLegacy(src, srcSize, + &frameSizeInfo.compressedSize, + &frameSizeInfo.decompressedBound); + break; +#endif +#if (ZSTD_LEGACY_SUPPORT <= 7) + case 7 : + ZSTDv07_findFrameSizeInfoLegacy(src, srcSize, + &frameSizeInfo.compressedSize, + &frameSizeInfo.decompressedBound); + break; +#endif + default : + frameSizeInfo.compressedSize = ERROR(prefix_unknown); + frameSizeInfo.decompressedBound = ZSTD_CONTENTSIZE_ERROR; + break; + } + if (!ZSTD_isError(frameSizeInfo.compressedSize) && frameSizeInfo.compressedSize > srcSize) { + frameSizeInfo.compressedSize = ERROR(srcSize_wrong); + frameSizeInfo.decompressedBound = ZSTD_CONTENTSIZE_ERROR; + } + return frameSizeInfo; +} + +MEM_STATIC size_t ZSTD_findFrameCompressedSizeLegacy(const void *src, size_t srcSize) +{ + ZSTD_frameSizeInfo frameSizeInfo = ZSTD_findFrameSizeInfoLegacy(src, srcSize); + return frameSizeInfo.compressedSize; +} + +MEM_STATIC size_t ZSTD_freeLegacyStreamContext(void* legacyContext, U32 version) +{ + switch(version) + { + default : + case 1 : + case 2 : + case 3 : + (void)legacyContext; + return ERROR(version_unsupported); +#if (ZSTD_LEGACY_SUPPORT <= 4) + case 4 : return ZBUFFv04_freeDCtx((ZBUFFv04_DCtx*)legacyContext); +#endif +#if (ZSTD_LEGACY_SUPPORT <= 5) + case 5 : return ZBUFFv05_freeDCtx((ZBUFFv05_DCtx*)legacyContext); +#endif +#if (ZSTD_LEGACY_SUPPORT <= 6) + case 6 : return ZBUFFv06_freeDCtx((ZBUFFv06_DCtx*)legacyContext); +#endif +#if (ZSTD_LEGACY_SUPPORT <= 7) + case 7 : return ZBUFFv07_freeDCtx((ZBUFFv07_DCtx*)legacyContext); +#endif + } +} + + +MEM_STATIC size_t ZSTD_initLegacyStream(void** legacyContext, U32 prevVersion, U32 newVersion, + const void* dict, size_t dictSize) +{ + DEBUGLOG(5, "ZSTD_initLegacyStream for v0.%u", newVersion); + if (prevVersion != newVersion) ZSTD_freeLegacyStreamContext(*legacyContext, prevVersion); + switch(newVersion) + { + default : + case 1 : + case 2 : + case 3 : + (void)dict; (void)dictSize; + return 0; +#if (ZSTD_LEGACY_SUPPORT <= 4) + case 4 : + { + ZBUFFv04_DCtx* dctx = (prevVersion != newVersion) ? ZBUFFv04_createDCtx() : (ZBUFFv04_DCtx*)*legacyContext; + if (dctx==NULL) return ERROR(memory_allocation); + ZBUFFv04_decompressInit(dctx); + ZBUFFv04_decompressWithDictionary(dctx, dict, dictSize); + *legacyContext = dctx; + return 0; + } +#endif +#if (ZSTD_LEGACY_SUPPORT <= 5) + case 5 : + { + ZBUFFv05_DCtx* dctx = (prevVersion != newVersion) ? ZBUFFv05_createDCtx() : (ZBUFFv05_DCtx*)*legacyContext; + if (dctx==NULL) return ERROR(memory_allocation); + ZBUFFv05_decompressInitDictionary(dctx, dict, dictSize); + *legacyContext = dctx; + return 0; + } +#endif +#if (ZSTD_LEGACY_SUPPORT <= 6) + case 6 : + { + ZBUFFv06_DCtx* dctx = (prevVersion != newVersion) ? ZBUFFv06_createDCtx() : (ZBUFFv06_DCtx*)*legacyContext; + if (dctx==NULL) return ERROR(memory_allocation); + ZBUFFv06_decompressInitDictionary(dctx, dict, dictSize); + *legacyContext = dctx; + return 0; + } +#endif +#if (ZSTD_LEGACY_SUPPORT <= 7) + case 7 : + { + ZBUFFv07_DCtx* dctx = (prevVersion != newVersion) ? ZBUFFv07_createDCtx() : (ZBUFFv07_DCtx*)*legacyContext; + if (dctx==NULL) return ERROR(memory_allocation); + ZBUFFv07_decompressInitDictionary(dctx, dict, dictSize); + *legacyContext = dctx; + return 0; + } +#endif + } +} + + + +MEM_STATIC size_t ZSTD_decompressLegacyStream(void* legacyContext, U32 version, + ZSTD_outBuffer* output, ZSTD_inBuffer* input) +{ + DEBUGLOG(5, "ZSTD_decompressLegacyStream for v0.%u", version); + switch(version) + { + default : + case 1 : + case 2 : + case 3 : + (void)legacyContext; (void)output; (void)input; + return ERROR(version_unsupported); +#if (ZSTD_LEGACY_SUPPORT <= 4) + case 4 : + { + ZBUFFv04_DCtx* dctx = (ZBUFFv04_DCtx*) legacyContext; + const void* src = (const char*)input->src + input->pos; + size_t readSize = input->size - input->pos; + void* dst = (char*)output->dst + output->pos; + size_t decodedSize = output->size - output->pos; + size_t const hintSize = ZBUFFv04_decompressContinue(dctx, dst, &decodedSize, src, &readSize); + output->pos += decodedSize; + input->pos += readSize; + return hintSize; + } +#endif +#if (ZSTD_LEGACY_SUPPORT <= 5) + case 5 : + { + ZBUFFv05_DCtx* dctx = (ZBUFFv05_DCtx*) legacyContext; + const void* src = (const char*)input->src + input->pos; + size_t readSize = input->size - input->pos; + void* dst = (char*)output->dst + output->pos; + size_t decodedSize = output->size - output->pos; + size_t const hintSize = ZBUFFv05_decompressContinue(dctx, dst, &decodedSize, src, &readSize); + output->pos += decodedSize; + input->pos += readSize; + return hintSize; + } +#endif +#if (ZSTD_LEGACY_SUPPORT <= 6) + case 6 : + { + ZBUFFv06_DCtx* dctx = (ZBUFFv06_DCtx*) legacyContext; + const void* src = (const char*)input->src + input->pos; + size_t readSize = input->size - input->pos; + void* dst = (char*)output->dst + output->pos; + size_t decodedSize = output->size - output->pos; + size_t const hintSize = ZBUFFv06_decompressContinue(dctx, dst, &decodedSize, src, &readSize); + output->pos += decodedSize; + input->pos += readSize; + return hintSize; + } +#endif +#if (ZSTD_LEGACY_SUPPORT <= 7) + case 7 : + { + ZBUFFv07_DCtx* dctx = (ZBUFFv07_DCtx*) legacyContext; + const void* src = (const char*)input->src + input->pos; + size_t readSize = input->size - input->pos; + void* dst = (char*)output->dst + output->pos; + size_t decodedSize = output->size - output->pos; + size_t const hintSize = ZBUFFv07_decompressContinue(dctx, dst, &decodedSize, src, &readSize); + output->pos += decodedSize; + input->pos += readSize; + return hintSize; + } +#endif + } +} + + +#if defined (__cplusplus) +} +#endif + +#endif /* ZSTD_LEGACY_H */ diff --git a/dependencies/zstd-1.5.0/lib/legacy/zstd_v01.c b/dependencies/zstd-1.5.0/lib/legacy/zstd_v01.c new file mode 100644 index 0000000..7ab5547 --- /dev/null +++ b/dependencies/zstd-1.5.0/lib/legacy/zstd_v01.c @@ -0,0 +1,2162 @@ +/* + * Copyright (c) Yann Collet, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + + +/****************************************** +* Includes +******************************************/ +#include /* size_t, ptrdiff_t */ +#include "zstd_v01.h" +#include "../common/error_private.h" + + +/****************************************** +* Static allocation +******************************************/ +/* You can statically allocate FSE CTable/DTable as a table of unsigned using below macro */ +#define FSE_DTABLE_SIZE_U32(maxTableLog) (1 + (1<2^N Bytes (examples : 10 -> 1KB; 12 -> 4KB ; 16 -> 64KB; 20 -> 1MB; etc.) +* Increasing memory usage improves compression ratio +* Reduced memory usage can improve speed, due to cache effect +* Recommended max value is 14, for 16KB, which nicely fits into Intel x86 L1 cache */ +#define FSE_MAX_MEMORY_USAGE 14 +#define FSE_DEFAULT_MEMORY_USAGE 13 + +/* FSE_MAX_SYMBOL_VALUE : +* Maximum symbol value authorized. +* Required for proper stack allocation */ +#define FSE_MAX_SYMBOL_VALUE 255 + + +/**************************************************************** +* template functions type & suffix +****************************************************************/ +#define FSE_FUNCTION_TYPE BYTE +#define FSE_FUNCTION_EXTENSION + + +/**************************************************************** +* Byte symbol type +****************************************************************/ +typedef struct +{ + unsigned short newState; + unsigned char symbol; + unsigned char nbBits; +} FSE_decode_t; /* size == U32 */ + + + +/**************************************************************** +* Compiler specifics +****************************************************************/ +#ifdef _MSC_VER /* Visual Studio */ +# define FORCE_INLINE static __forceinline +# include /* For Visual 2005 */ +# pragma warning(disable : 4127) /* disable: C4127: conditional expression is constant */ +# pragma warning(disable : 4214) /* disable: C4214: non-int bitfields */ +#else +# define GCC_VERSION (__GNUC__ * 100 + __GNUC_MINOR__) +# if defined (__cplusplus) || defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L /* C99 */ +# ifdef __GNUC__ +# define FORCE_INLINE static inline __attribute__((always_inline)) +# else +# define FORCE_INLINE static inline +# endif +# else +# define FORCE_INLINE static +# endif /* __STDC_VERSION__ */ +#endif + + +/**************************************************************** +* Includes +****************************************************************/ +#include /* malloc, free, qsort */ +#include /* memcpy, memset */ +#include /* printf (debug) */ + + +#ifndef MEM_ACCESS_MODULE +#define MEM_ACCESS_MODULE +/**************************************************************** +* Basic Types +*****************************************************************/ +#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L /* C99 */ +# include +typedef uint8_t BYTE; +typedef uint16_t U16; +typedef int16_t S16; +typedef uint32_t U32; +typedef int32_t S32; +typedef uint64_t U64; +typedef int64_t S64; +#else +typedef unsigned char BYTE; +typedef unsigned short U16; +typedef signed short S16; +typedef unsigned int U32; +typedef signed int S32; +typedef unsigned long long U64; +typedef signed long long S64; +#endif + +#endif /* MEM_ACCESS_MODULE */ + +/**************************************************************** +* Memory I/O +*****************************************************************/ +/* FSE_FORCE_MEMORY_ACCESS + * By default, access to unaligned memory is controlled by `memcpy()`, which is safe and portable. + * Unfortunately, on some target/compiler combinations, the generated assembly is sub-optimal. + * The below switch allow to select different access method for improved performance. + * Method 0 (default) : use `memcpy()`. Safe and portable. + * Method 1 : `__packed` statement. It depends on compiler extension (ie, not portable). + * This method is safe if your compiler supports it, and *generally* as fast or faster than `memcpy`. + * Method 2 : direct access. This method is portable but violate C standard. + * It can generate buggy code on targets generating assembly depending on alignment. + * But in some circumstances, it's the only known way to get the most performance (ie GCC + ARMv6) + * See http://fastcompression.blogspot.fr/2015/08/accessing-unaligned-memory.html for details. + * Prefer these methods in priority order (0 > 1 > 2) + */ +#ifndef FSE_FORCE_MEMORY_ACCESS /* can be defined externally, on command line for example */ +# if defined(__GNUC__) && ( defined(__ARM_ARCH_6__) || defined(__ARM_ARCH_6J__) || defined(__ARM_ARCH_6K__) || defined(__ARM_ARCH_6Z__) || defined(__ARM_ARCH_6ZK__) || defined(__ARM_ARCH_6T2__) ) +# define FSE_FORCE_MEMORY_ACCESS 2 +# elif (defined(__INTEL_COMPILER) && !defined(WIN32)) || \ + (defined(__GNUC__) && ( defined(__ARM_ARCH_7__) || defined(__ARM_ARCH_7A__) || defined(__ARM_ARCH_7R__) || defined(__ARM_ARCH_7M__) || defined(__ARM_ARCH_7S__) )) +# define FSE_FORCE_MEMORY_ACCESS 1 +# endif +#endif + + +static unsigned FSE_32bits(void) +{ + return sizeof(void*)==4; +} + +static unsigned FSE_isLittleEndian(void) +{ + const union { U32 i; BYTE c[4]; } one = { 1 }; /* don't use static : performance detrimental */ + return one.c[0]; +} + +#if defined(FSE_FORCE_MEMORY_ACCESS) && (FSE_FORCE_MEMORY_ACCESS==2) + +static U16 FSE_read16(const void* memPtr) { return *(const U16*) memPtr; } +static U32 FSE_read32(const void* memPtr) { return *(const U32*) memPtr; } +static U64 FSE_read64(const void* memPtr) { return *(const U64*) memPtr; } + +#elif defined(FSE_FORCE_MEMORY_ACCESS) && (FSE_FORCE_MEMORY_ACCESS==1) + +/* __pack instructions are safer, but compiler specific, hence potentially problematic for some compilers */ +/* currently only defined for gcc and icc */ +typedef union { U16 u16; U32 u32; U64 u64; } __attribute__((packed)) unalign; + +static U16 FSE_read16(const void* ptr) { return ((const unalign*)ptr)->u16; } +static U32 FSE_read32(const void* ptr) { return ((const unalign*)ptr)->u32; } +static U64 FSE_read64(const void* ptr) { return ((const unalign*)ptr)->u64; } + +#else + +static U16 FSE_read16(const void* memPtr) +{ + U16 val; memcpy(&val, memPtr, sizeof(val)); return val; +} + +static U32 FSE_read32(const void* memPtr) +{ + U32 val; memcpy(&val, memPtr, sizeof(val)); return val; +} + +static U64 FSE_read64(const void* memPtr) +{ + U64 val; memcpy(&val, memPtr, sizeof(val)); return val; +} + +#endif /* FSE_FORCE_MEMORY_ACCESS */ + +static U16 FSE_readLE16(const void* memPtr) +{ + if (FSE_isLittleEndian()) + return FSE_read16(memPtr); + else + { + const BYTE* p = (const BYTE*)memPtr; + return (U16)(p[0] + (p[1]<<8)); + } +} + +static U32 FSE_readLE32(const void* memPtr) +{ + if (FSE_isLittleEndian()) + return FSE_read32(memPtr); + else + { + const BYTE* p = (const BYTE*)memPtr; + return (U32)((U32)p[0] + ((U32)p[1]<<8) + ((U32)p[2]<<16) + ((U32)p[3]<<24)); + } +} + + +static U64 FSE_readLE64(const void* memPtr) +{ + if (FSE_isLittleEndian()) + return FSE_read64(memPtr); + else + { + const BYTE* p = (const BYTE*)memPtr; + return (U64)((U64)p[0] + ((U64)p[1]<<8) + ((U64)p[2]<<16) + ((U64)p[3]<<24) + + ((U64)p[4]<<32) + ((U64)p[5]<<40) + ((U64)p[6]<<48) + ((U64)p[7]<<56)); + } +} + +static size_t FSE_readLEST(const void* memPtr) +{ + if (FSE_32bits()) + return (size_t)FSE_readLE32(memPtr); + else + return (size_t)FSE_readLE64(memPtr); +} + + + +/**************************************************************** +* Constants +*****************************************************************/ +#define FSE_MAX_TABLELOG (FSE_MAX_MEMORY_USAGE-2) +#define FSE_MAX_TABLESIZE (1U< FSE_TABLELOG_ABSOLUTE_MAX +#error "FSE_MAX_TABLELOG > FSE_TABLELOG_ABSOLUTE_MAX is not supported" +#endif + + +/**************************************************************** +* Error Management +****************************************************************/ +#define FSE_STATIC_ASSERT(c) { enum { FSE_static_assert = 1/(int)(!!(c)) }; } /* use only *after* variable declarations */ + + +/**************************************************************** +* Complex types +****************************************************************/ +typedef struct +{ + int deltaFindState; + U32 deltaNbBits; +} FSE_symbolCompressionTransform; /* total 8 bytes */ + +typedef U32 DTable_max_t[FSE_DTABLE_SIZE_U32(FSE_MAX_TABLELOG)]; + +/**************************************************************** +* Internal functions +****************************************************************/ +FORCE_INLINE unsigned FSE_highbit32 (U32 val) +{ +# if defined(_MSC_VER) /* Visual */ + unsigned long r; + _BitScanReverse ( &r, val ); + return (unsigned) r; +# elif defined(__GNUC__) && (GCC_VERSION >= 304) /* GCC Intrinsic */ + return __builtin_clz (val) ^ 31; +# else /* Software version */ + static const unsigned DeBruijnClz[32] = { 0, 9, 1, 10, 13, 21, 2, 29, 11, 14, 16, 18, 22, 25, 3, 30, 8, 12, 20, 28, 15, 17, 24, 7, 19, 27, 23, 6, 26, 5, 4, 31 }; + U32 v = val; + unsigned r; + v |= v >> 1; + v |= v >> 2; + v |= v >> 4; + v |= v >> 8; + v |= v >> 16; + r = DeBruijnClz[ (U32) (v * 0x07C4ACDDU) >> 27]; + return r; +# endif +} + + +/**************************************************************** +* Templates +****************************************************************/ +/* + designed to be included + for type-specific functions (template emulation in C) + Objective is to write these functions only once, for improved maintenance +*/ + +/* safety checks */ +#ifndef FSE_FUNCTION_EXTENSION +# error "FSE_FUNCTION_EXTENSION must be defined" +#endif +#ifndef FSE_FUNCTION_TYPE +# error "FSE_FUNCTION_TYPE must be defined" +#endif + +/* Function names */ +#define FSE_CAT(X,Y) X##Y +#define FSE_FUNCTION_NAME(X,Y) FSE_CAT(X,Y) +#define FSE_TYPE_NAME(X,Y) FSE_CAT(X,Y) + + + +static U32 FSE_tableStep(U32 tableSize) { return (tableSize>>1) + (tableSize>>3) + 3; } + +#define FSE_DECODE_TYPE FSE_decode_t + + +typedef struct { + U16 tableLog; + U16 fastMode; +} FSE_DTableHeader; /* sizeof U32 */ + +static size_t FSE_buildDTable +(FSE_DTable* dt, const short* normalizedCounter, unsigned maxSymbolValue, unsigned tableLog) +{ + void* ptr = dt; + FSE_DTableHeader* const DTableH = (FSE_DTableHeader*)ptr; + FSE_DECODE_TYPE* const tableDecode = (FSE_DECODE_TYPE*)(ptr) + 1; /* because dt is unsigned, 32-bits aligned on 32-bits */ + const U32 tableSize = 1 << tableLog; + const U32 tableMask = tableSize-1; + const U32 step = FSE_tableStep(tableSize); + U16 symbolNext[FSE_MAX_SYMBOL_VALUE+1]; + U32 position = 0; + U32 highThreshold = tableSize-1; + const S16 largeLimit= (S16)(1 << (tableLog-1)); + U32 noLarge = 1; + U32 s; + + /* Sanity Checks */ + if (maxSymbolValue > FSE_MAX_SYMBOL_VALUE) return (size_t)-FSE_ERROR_maxSymbolValue_tooLarge; + if (tableLog > FSE_MAX_TABLELOG) return (size_t)-FSE_ERROR_tableLog_tooLarge; + + /* Init, lay down lowprob symbols */ + DTableH[0].tableLog = (U16)tableLog; + for (s=0; s<=maxSymbolValue; s++) + { + if (normalizedCounter[s]==-1) + { + tableDecode[highThreshold--].symbol = (FSE_FUNCTION_TYPE)s; + symbolNext[s] = 1; + } + else + { + if (normalizedCounter[s] >= largeLimit) noLarge=0; + symbolNext[s] = normalizedCounter[s]; + } + } + + /* Spread symbols */ + for (s=0; s<=maxSymbolValue; s++) + { + int i; + for (i=0; i highThreshold) position = (position + step) & tableMask; /* lowprob area */ + } + } + + if (position!=0) return (size_t)-FSE_ERROR_GENERIC; /* position must reach all cells once, otherwise normalizedCounter is incorrect */ + + /* Build Decoding table */ + { + U32 i; + for (i=0; ifastMode = (U16)noLarge; + return 0; +} + + +/****************************************** +* FSE byte symbol +******************************************/ +#ifndef FSE_COMMONDEFS_ONLY + +static unsigned FSE_isError(size_t code) { return (code > (size_t)(-FSE_ERROR_maxCode)); } + +static short FSE_abs(short a) +{ + return a<0? -a : a; +} + + +/**************************************************************** +* Header bitstream management +****************************************************************/ +static size_t FSE_readNCount (short* normalizedCounter, unsigned* maxSVPtr, unsigned* tableLogPtr, + const void* headerBuffer, size_t hbSize) +{ + const BYTE* const istart = (const BYTE*) headerBuffer; + const BYTE* const iend = istart + hbSize; + const BYTE* ip = istart; + int nbBits; + int remaining; + int threshold; + U32 bitStream; + int bitCount; + unsigned charnum = 0; + int previous0 = 0; + + if (hbSize < 4) return (size_t)-FSE_ERROR_srcSize_wrong; + bitStream = FSE_readLE32(ip); + nbBits = (bitStream & 0xF) + FSE_MIN_TABLELOG; /* extract tableLog */ + if (nbBits > FSE_TABLELOG_ABSOLUTE_MAX) return (size_t)-FSE_ERROR_tableLog_tooLarge; + bitStream >>= 4; + bitCount = 4; + *tableLogPtr = nbBits; + remaining = (1<1) && (charnum<=*maxSVPtr)) + { + if (previous0) + { + unsigned n0 = charnum; + while ((bitStream & 0xFFFF) == 0xFFFF) + { + n0+=24; + if (ip < iend-5) + { + ip+=2; + bitStream = FSE_readLE32(ip) >> bitCount; + } + else + { + bitStream >>= 16; + bitCount+=16; + } + } + while ((bitStream & 3) == 3) + { + n0+=3; + bitStream>>=2; + bitCount+=2; + } + n0 += bitStream & 3; + bitCount += 2; + if (n0 > *maxSVPtr) return (size_t)-FSE_ERROR_maxSymbolValue_tooSmall; + while (charnum < n0) normalizedCounter[charnum++] = 0; + if ((ip <= iend-7) || (ip + (bitCount>>3) <= iend-4)) + { + ip += bitCount>>3; + bitCount &= 7; + bitStream = FSE_readLE32(ip) >> bitCount; + } + else + bitStream >>= 2; + } + { + const short max = (short)((2*threshold-1)-remaining); + short count; + + if ((bitStream & (threshold-1)) < (U32)max) + { + count = (short)(bitStream & (threshold-1)); + bitCount += nbBits-1; + } + else + { + count = (short)(bitStream & (2*threshold-1)); + if (count >= threshold) count -= max; + bitCount += nbBits; + } + + count--; /* extra accuracy */ + remaining -= FSE_abs(count); + normalizedCounter[charnum++] = count; + previous0 = !count; + while (remaining < threshold) + { + nbBits--; + threshold >>= 1; + } + + { + if ((ip <= iend-7) || (ip + (bitCount>>3) <= iend-4)) + { + ip += bitCount>>3; + bitCount &= 7; + } + else + { + bitCount -= (int)(8 * (iend - 4 - ip)); + ip = iend - 4; + } + bitStream = FSE_readLE32(ip) >> (bitCount & 31); + } + } + } + if (remaining != 1) return (size_t)-FSE_ERROR_GENERIC; + *maxSVPtr = charnum-1; + + ip += (bitCount+7)>>3; + if ((size_t)(ip-istart) > hbSize) return (size_t)-FSE_ERROR_srcSize_wrong; + return ip-istart; +} + + +/********************************************************* +* Decompression (Byte symbols) +*********************************************************/ +static size_t FSE_buildDTable_rle (FSE_DTable* dt, BYTE symbolValue) +{ + void* ptr = dt; + FSE_DTableHeader* const DTableH = (FSE_DTableHeader*)ptr; + FSE_decode_t* const cell = (FSE_decode_t*)(ptr) + 1; /* because dt is unsigned */ + + DTableH->tableLog = 0; + DTableH->fastMode = 0; + + cell->newState = 0; + cell->symbol = symbolValue; + cell->nbBits = 0; + + return 0; +} + + +static size_t FSE_buildDTable_raw (FSE_DTable* dt, unsigned nbBits) +{ + void* ptr = dt; + FSE_DTableHeader* const DTableH = (FSE_DTableHeader*)ptr; + FSE_decode_t* const dinfo = (FSE_decode_t*)(ptr) + 1; /* because dt is unsigned */ + const unsigned tableSize = 1 << nbBits; + const unsigned tableMask = tableSize - 1; + const unsigned maxSymbolValue = tableMask; + unsigned s; + + /* Sanity checks */ + if (nbBits < 1) return (size_t)-FSE_ERROR_GENERIC; /* min size */ + + /* Build Decoding Table */ + DTableH->tableLog = (U16)nbBits; + DTableH->fastMode = 1; + for (s=0; s<=maxSymbolValue; s++) + { + dinfo[s].newState = 0; + dinfo[s].symbol = (BYTE)s; + dinfo[s].nbBits = (BYTE)nbBits; + } + + return 0; +} + + +/* FSE_initDStream + * Initialize a FSE_DStream_t. + * srcBuffer must point at the beginning of an FSE block. + * The function result is the size of the FSE_block (== srcSize). + * If srcSize is too small, the function will return an errorCode; + */ +static size_t FSE_initDStream(FSE_DStream_t* bitD, const void* srcBuffer, size_t srcSize) +{ + if (srcSize < 1) return (size_t)-FSE_ERROR_srcSize_wrong; + + if (srcSize >= sizeof(size_t)) + { + U32 contain32; + bitD->start = (const char*)srcBuffer; + bitD->ptr = (const char*)srcBuffer + srcSize - sizeof(size_t); + bitD->bitContainer = FSE_readLEST(bitD->ptr); + contain32 = ((const BYTE*)srcBuffer)[srcSize-1]; + if (contain32 == 0) return (size_t)-FSE_ERROR_GENERIC; /* stop bit not present */ + bitD->bitsConsumed = 8 - FSE_highbit32(contain32); + } + else + { + U32 contain32; + bitD->start = (const char*)srcBuffer; + bitD->ptr = bitD->start; + bitD->bitContainer = *(const BYTE*)(bitD->start); + switch(srcSize) + { + case 7: bitD->bitContainer += (size_t)(((const BYTE*)(bitD->start))[6]) << (sizeof(size_t)*8 - 16); + /* fallthrough */ + case 6: bitD->bitContainer += (size_t)(((const BYTE*)(bitD->start))[5]) << (sizeof(size_t)*8 - 24); + /* fallthrough */ + case 5: bitD->bitContainer += (size_t)(((const BYTE*)(bitD->start))[4]) << (sizeof(size_t)*8 - 32); + /* fallthrough */ + case 4: bitD->bitContainer += (size_t)(((const BYTE*)(bitD->start))[3]) << 24; + /* fallthrough */ + case 3: bitD->bitContainer += (size_t)(((const BYTE*)(bitD->start))[2]) << 16; + /* fallthrough */ + case 2: bitD->bitContainer += (size_t)(((const BYTE*)(bitD->start))[1]) << 8; + /* fallthrough */ + default:; + } + contain32 = ((const BYTE*)srcBuffer)[srcSize-1]; + if (contain32 == 0) return (size_t)-FSE_ERROR_GENERIC; /* stop bit not present */ + bitD->bitsConsumed = 8 - FSE_highbit32(contain32); + bitD->bitsConsumed += (U32)(sizeof(size_t) - srcSize)*8; + } + + return srcSize; +} + + +/*!FSE_lookBits + * Provides next n bits from the bitContainer. + * bitContainer is not modified (bits are still present for next read/look) + * On 32-bits, maxNbBits==25 + * On 64-bits, maxNbBits==57 + * return : value extracted. + */ +static size_t FSE_lookBits(FSE_DStream_t* bitD, U32 nbBits) +{ + const U32 bitMask = sizeof(bitD->bitContainer)*8 - 1; + return ((bitD->bitContainer << (bitD->bitsConsumed & bitMask)) >> 1) >> ((bitMask-nbBits) & bitMask); +} + +static size_t FSE_lookBitsFast(FSE_DStream_t* bitD, U32 nbBits) /* only if nbBits >= 1 !! */ +{ + const U32 bitMask = sizeof(bitD->bitContainer)*8 - 1; + return (bitD->bitContainer << (bitD->bitsConsumed & bitMask)) >> (((bitMask+1)-nbBits) & bitMask); +} + +static void FSE_skipBits(FSE_DStream_t* bitD, U32 nbBits) +{ + bitD->bitsConsumed += nbBits; +} + + +/*!FSE_readBits + * Read next n bits from the bitContainer. + * On 32-bits, don't read more than maxNbBits==25 + * On 64-bits, don't read more than maxNbBits==57 + * Use the fast variant *only* if n >= 1. + * return : value extracted. + */ +static size_t FSE_readBits(FSE_DStream_t* bitD, U32 nbBits) +{ + size_t value = FSE_lookBits(bitD, nbBits); + FSE_skipBits(bitD, nbBits); + return value; +} + +static size_t FSE_readBitsFast(FSE_DStream_t* bitD, U32 nbBits) /* only if nbBits >= 1 !! */ +{ + size_t value = FSE_lookBitsFast(bitD, nbBits); + FSE_skipBits(bitD, nbBits); + return value; +} + +static unsigned FSE_reloadDStream(FSE_DStream_t* bitD) +{ + if (bitD->bitsConsumed > (sizeof(bitD->bitContainer)*8)) /* should never happen */ + return FSE_DStream_tooFar; + + if (bitD->ptr >= bitD->start + sizeof(bitD->bitContainer)) + { + bitD->ptr -= bitD->bitsConsumed >> 3; + bitD->bitsConsumed &= 7; + bitD->bitContainer = FSE_readLEST(bitD->ptr); + return FSE_DStream_unfinished; + } + if (bitD->ptr == bitD->start) + { + if (bitD->bitsConsumed < sizeof(bitD->bitContainer)*8) return FSE_DStream_endOfBuffer; + return FSE_DStream_completed; + } + { + U32 nbBytes = bitD->bitsConsumed >> 3; + U32 result = FSE_DStream_unfinished; + if (bitD->ptr - nbBytes < bitD->start) + { + nbBytes = (U32)(bitD->ptr - bitD->start); /* ptr > start */ + result = FSE_DStream_endOfBuffer; + } + bitD->ptr -= nbBytes; + bitD->bitsConsumed -= nbBytes*8; + bitD->bitContainer = FSE_readLEST(bitD->ptr); /* reminder : srcSize > sizeof(bitD) */ + return result; + } +} + + +static void FSE_initDState(FSE_DState_t* DStatePtr, FSE_DStream_t* bitD, const FSE_DTable* dt) +{ + const void* ptr = dt; + const FSE_DTableHeader* const DTableH = (const FSE_DTableHeader*)ptr; + DStatePtr->state = FSE_readBits(bitD, DTableH->tableLog); + FSE_reloadDStream(bitD); + DStatePtr->table = dt + 1; +} + +static BYTE FSE_decodeSymbol(FSE_DState_t* DStatePtr, FSE_DStream_t* bitD) +{ + const FSE_decode_t DInfo = ((const FSE_decode_t*)(DStatePtr->table))[DStatePtr->state]; + const U32 nbBits = DInfo.nbBits; + BYTE symbol = DInfo.symbol; + size_t lowBits = FSE_readBits(bitD, nbBits); + + DStatePtr->state = DInfo.newState + lowBits; + return symbol; +} + +static BYTE FSE_decodeSymbolFast(FSE_DState_t* DStatePtr, FSE_DStream_t* bitD) +{ + const FSE_decode_t DInfo = ((const FSE_decode_t*)(DStatePtr->table))[DStatePtr->state]; + const U32 nbBits = DInfo.nbBits; + BYTE symbol = DInfo.symbol; + size_t lowBits = FSE_readBitsFast(bitD, nbBits); + + DStatePtr->state = DInfo.newState + lowBits; + return symbol; +} + +/* FSE_endOfDStream + Tells if bitD has reached end of bitStream or not */ + +static unsigned FSE_endOfDStream(const FSE_DStream_t* bitD) +{ + return ((bitD->ptr == bitD->start) && (bitD->bitsConsumed == sizeof(bitD->bitContainer)*8)); +} + +static unsigned FSE_endOfDState(const FSE_DState_t* DStatePtr) +{ + return DStatePtr->state == 0; +} + + +FORCE_INLINE size_t FSE_decompress_usingDTable_generic( + void* dst, size_t maxDstSize, + const void* cSrc, size_t cSrcSize, + const FSE_DTable* dt, const unsigned fast) +{ + BYTE* const ostart = (BYTE*) dst; + BYTE* op = ostart; + BYTE* const omax = op + maxDstSize; + BYTE* const olimit = omax-3; + + FSE_DStream_t bitD; + FSE_DState_t state1; + FSE_DState_t state2; + size_t errorCode; + + /* Init */ + errorCode = FSE_initDStream(&bitD, cSrc, cSrcSize); /* replaced last arg by maxCompressed Size */ + if (FSE_isError(errorCode)) return errorCode; + + FSE_initDState(&state1, &bitD, dt); + FSE_initDState(&state2, &bitD, dt); + +#define FSE_GETSYMBOL(statePtr) fast ? FSE_decodeSymbolFast(statePtr, &bitD) : FSE_decodeSymbol(statePtr, &bitD) + + /* 4 symbols per loop */ + for ( ; (FSE_reloadDStream(&bitD)==FSE_DStream_unfinished) && (op sizeof(bitD.bitContainer)*8) /* This test must be static */ + FSE_reloadDStream(&bitD); + + op[1] = FSE_GETSYMBOL(&state2); + + if (FSE_MAX_TABLELOG*4+7 > sizeof(bitD.bitContainer)*8) /* This test must be static */ + { if (FSE_reloadDStream(&bitD) > FSE_DStream_unfinished) { op+=2; break; } } + + op[2] = FSE_GETSYMBOL(&state1); + + if (FSE_MAX_TABLELOG*2+7 > sizeof(bitD.bitContainer)*8) /* This test must be static */ + FSE_reloadDStream(&bitD); + + op[3] = FSE_GETSYMBOL(&state2); + } + + /* tail */ + /* note : FSE_reloadDStream(&bitD) >= FSE_DStream_partiallyFilled; Ends at exactly FSE_DStream_completed */ + while (1) + { + if ( (FSE_reloadDStream(&bitD)>FSE_DStream_completed) || (op==omax) || (FSE_endOfDStream(&bitD) && (fast || FSE_endOfDState(&state1))) ) + break; + + *op++ = FSE_GETSYMBOL(&state1); + + if ( (FSE_reloadDStream(&bitD)>FSE_DStream_completed) || (op==omax) || (FSE_endOfDStream(&bitD) && (fast || FSE_endOfDState(&state2))) ) + break; + + *op++ = FSE_GETSYMBOL(&state2); + } + + /* end ? */ + if (FSE_endOfDStream(&bitD) && FSE_endOfDState(&state1) && FSE_endOfDState(&state2)) + return op-ostart; + + if (op==omax) return (size_t)-FSE_ERROR_dstSize_tooSmall; /* dst buffer is full, but cSrc unfinished */ + + return (size_t)-FSE_ERROR_corruptionDetected; +} + + +static size_t FSE_decompress_usingDTable(void* dst, size_t originalSize, + const void* cSrc, size_t cSrcSize, + const FSE_DTable* dt) +{ + FSE_DTableHeader DTableH; + memcpy(&DTableH, dt, sizeof(DTableH)); /* memcpy() into local variable, to avoid strict aliasing warning */ + + /* select fast mode (static) */ + if (DTableH.fastMode) return FSE_decompress_usingDTable_generic(dst, originalSize, cSrc, cSrcSize, dt, 1); + return FSE_decompress_usingDTable_generic(dst, originalSize, cSrc, cSrcSize, dt, 0); +} + + +static size_t FSE_decompress(void* dst, size_t maxDstSize, const void* cSrc, size_t cSrcSize) +{ + const BYTE* const istart = (const BYTE*)cSrc; + const BYTE* ip = istart; + short counting[FSE_MAX_SYMBOL_VALUE+1]; + DTable_max_t dt; /* Static analyzer seems unable to understand this table will be properly initialized later */ + unsigned tableLog; + unsigned maxSymbolValue = FSE_MAX_SYMBOL_VALUE; + size_t errorCode; + + if (cSrcSize<2) return (size_t)-FSE_ERROR_srcSize_wrong; /* too small input size */ + + /* normal FSE decoding mode */ + errorCode = FSE_readNCount (counting, &maxSymbolValue, &tableLog, istart, cSrcSize); + if (FSE_isError(errorCode)) return errorCode; + if (errorCode >= cSrcSize) return (size_t)-FSE_ERROR_srcSize_wrong; /* too small input size */ + ip += errorCode; + cSrcSize -= errorCode; + + errorCode = FSE_buildDTable (dt, counting, maxSymbolValue, tableLog); + if (FSE_isError(errorCode)) return errorCode; + + /* always return, even if it is an error code */ + return FSE_decompress_usingDTable (dst, maxDstSize, ip, cSrcSize, dt); +} + + + +/* ******************************************************* +* Huff0 : Huffman block compression +*********************************************************/ +#define HUF_MAX_SYMBOL_VALUE 255 +#define HUF_DEFAULT_TABLELOG 12 /* used by default, when not specified */ +#define HUF_MAX_TABLELOG 12 /* max possible tableLog; for allocation purpose; can be modified */ +#define HUF_ABSOLUTEMAX_TABLELOG 16 /* absolute limit of HUF_MAX_TABLELOG. Beyond that value, code does not work */ +#if (HUF_MAX_TABLELOG > HUF_ABSOLUTEMAX_TABLELOG) +# error "HUF_MAX_TABLELOG is too large !" +#endif + +typedef struct HUF_CElt_s { + U16 val; + BYTE nbBits; +} HUF_CElt ; + +typedef struct nodeElt_s { + U32 count; + U16 parent; + BYTE byte; + BYTE nbBits; +} nodeElt; + + +/* ******************************************************* +* Huff0 : Huffman block decompression +*********************************************************/ +typedef struct { + BYTE byte; + BYTE nbBits; +} HUF_DElt; + +static size_t HUF_readDTable (U16* DTable, const void* src, size_t srcSize) +{ + BYTE huffWeight[HUF_MAX_SYMBOL_VALUE + 1]; + U32 rankVal[HUF_ABSOLUTEMAX_TABLELOG + 1]; /* large enough for values from 0 to 16 */ + U32 weightTotal; + U32 maxBits; + const BYTE* ip = (const BYTE*) src; + size_t iSize; + size_t oSize; + U32 n; + U32 nextRankStart; + void* ptr = DTable+1; + HUF_DElt* const dt = (HUF_DElt*)ptr; + + if (!srcSize) return (size_t)-FSE_ERROR_srcSize_wrong; + iSize = ip[0]; + + FSE_STATIC_ASSERT(sizeof(HUF_DElt) == sizeof(U16)); /* if compilation fails here, assertion is false */ + //memset(huffWeight, 0, sizeof(huffWeight)); /* should not be necessary, but some analyzer complain ... */ + if (iSize >= 128) /* special header */ + { + if (iSize >= (242)) /* RLE */ + { + static int l[14] = { 1, 2, 3, 4, 7, 8, 15, 16, 31, 32, 63, 64, 127, 128 }; + oSize = l[iSize-242]; + memset(huffWeight, 1, sizeof(huffWeight)); + iSize = 0; + } + else /* Incompressible */ + { + oSize = iSize - 127; + iSize = ((oSize+1)/2); + if (iSize+1 > srcSize) return (size_t)-FSE_ERROR_srcSize_wrong; + ip += 1; + for (n=0; n> 4; + huffWeight[n+1] = ip[n/2] & 15; + } + } + } + else /* header compressed with FSE (normal case) */ + { + if (iSize+1 > srcSize) return (size_t)-FSE_ERROR_srcSize_wrong; + oSize = FSE_decompress(huffWeight, HUF_MAX_SYMBOL_VALUE, ip+1, iSize); /* max 255 values decoded, last one is implied */ + if (FSE_isError(oSize)) return oSize; + } + + /* collect weight stats */ + memset(rankVal, 0, sizeof(rankVal)); + weightTotal = 0; + for (n=0; n= HUF_ABSOLUTEMAX_TABLELOG) return (size_t)-FSE_ERROR_corruptionDetected; + rankVal[huffWeight[n]]++; + weightTotal += (1 << huffWeight[n]) >> 1; + } + if (weightTotal == 0) return (size_t)-FSE_ERROR_corruptionDetected; + + /* get last non-null symbol weight (implied, total must be 2^n) */ + maxBits = FSE_highbit32(weightTotal) + 1; + if (maxBits > DTable[0]) return (size_t)-FSE_ERROR_tableLog_tooLarge; /* DTable is too small */ + DTable[0] = (U16)maxBits; + { + U32 total = 1 << maxBits; + U32 rest = total - weightTotal; + U32 verif = 1 << FSE_highbit32(rest); + U32 lastWeight = FSE_highbit32(rest) + 1; + if (verif != rest) return (size_t)-FSE_ERROR_corruptionDetected; /* last value must be a clean power of 2 */ + huffWeight[oSize] = (BYTE)lastWeight; + rankVal[lastWeight]++; + } + + /* check tree construction validity */ + if ((rankVal[1] < 2) || (rankVal[1] & 1)) return (size_t)-FSE_ERROR_corruptionDetected; /* by construction : at least 2 elts of rank 1, must be even */ + + /* Prepare ranks */ + nextRankStart = 0; + for (n=1; n<=maxBits; n++) + { + U32 current = nextRankStart; + nextRankStart += (rankVal[n] << (n-1)); + rankVal[n] = current; + } + + /* fill DTable */ + for (n=0; n<=oSize; n++) + { + const U32 w = huffWeight[n]; + const U32 length = (1 << w) >> 1; + U32 i; + HUF_DElt D; + D.byte = (BYTE)n; D.nbBits = (BYTE)(maxBits + 1 - w); + for (i = rankVal[w]; i < rankVal[w] + length; i++) + dt[i] = D; + rankVal[w] += length; + } + + return iSize+1; +} + + +static BYTE HUF_decodeSymbol(FSE_DStream_t* Dstream, const HUF_DElt* dt, const U32 dtLog) +{ + const size_t val = FSE_lookBitsFast(Dstream, dtLog); /* note : dtLog >= 1 */ + const BYTE c = dt[val].byte; + FSE_skipBits(Dstream, dt[val].nbBits); + return c; +} + +static size_t HUF_decompress_usingDTable( /* -3% slower when non static */ + void* dst, size_t maxDstSize, + const void* cSrc, size_t cSrcSize, + const U16* DTable) +{ + if (cSrcSize < 6) return (size_t)-FSE_ERROR_srcSize_wrong; + { + BYTE* const ostart = (BYTE*) dst; + BYTE* op = ostart; + BYTE* const omax = op + maxDstSize; + BYTE* const olimit = maxDstSize < 15 ? op : omax-15; + + const void* ptr = DTable; + const HUF_DElt* const dt = (const HUF_DElt*)(ptr)+1; + const U32 dtLog = DTable[0]; + size_t errorCode; + U32 reloadStatus; + + /* Init */ + + const U16* jumpTable = (const U16*)cSrc; + const size_t length1 = FSE_readLE16(jumpTable); + const size_t length2 = FSE_readLE16(jumpTable+1); + const size_t length3 = FSE_readLE16(jumpTable+2); + const size_t length4 = cSrcSize - 6 - length1 - length2 - length3; /* check coherency !! */ + const char* const start1 = (const char*)(cSrc) + 6; + const char* const start2 = start1 + length1; + const char* const start3 = start2 + length2; + const char* const start4 = start3 + length3; + FSE_DStream_t bitD1, bitD2, bitD3, bitD4; + + if (length1+length2+length3+6 >= cSrcSize) return (size_t)-FSE_ERROR_srcSize_wrong; + + errorCode = FSE_initDStream(&bitD1, start1, length1); + if (FSE_isError(errorCode)) return errorCode; + errorCode = FSE_initDStream(&bitD2, start2, length2); + if (FSE_isError(errorCode)) return errorCode; + errorCode = FSE_initDStream(&bitD3, start3, length3); + if (FSE_isError(errorCode)) return errorCode; + errorCode = FSE_initDStream(&bitD4, start4, length4); + if (FSE_isError(errorCode)) return errorCode; + + reloadStatus=FSE_reloadDStream(&bitD2); + + /* 16 symbols per loop */ + for ( ; (reloadStatus12)) FSE_reloadDStream(&Dstream) + + #define HUF_DECODE_SYMBOL_2(n, Dstream) \ + op[n] = HUF_decodeSymbol(&Dstream, dt, dtLog); \ + if (FSE_32bits()) FSE_reloadDStream(&Dstream) + + HUF_DECODE_SYMBOL_1( 0, bitD1); + HUF_DECODE_SYMBOL_1( 1, bitD2); + HUF_DECODE_SYMBOL_1( 2, bitD3); + HUF_DECODE_SYMBOL_1( 3, bitD4); + HUF_DECODE_SYMBOL_2( 4, bitD1); + HUF_DECODE_SYMBOL_2( 5, bitD2); + HUF_DECODE_SYMBOL_2( 6, bitD3); + HUF_DECODE_SYMBOL_2( 7, bitD4); + HUF_DECODE_SYMBOL_1( 8, bitD1); + HUF_DECODE_SYMBOL_1( 9, bitD2); + HUF_DECODE_SYMBOL_1(10, bitD3); + HUF_DECODE_SYMBOL_1(11, bitD4); + HUF_DECODE_SYMBOL_0(12, bitD1); + HUF_DECODE_SYMBOL_0(13, bitD2); + HUF_DECODE_SYMBOL_0(14, bitD3); + HUF_DECODE_SYMBOL_0(15, bitD4); + } + + if (reloadStatus!=FSE_DStream_completed) /* not complete : some bitStream might be FSE_DStream_unfinished */ + return (size_t)-FSE_ERROR_corruptionDetected; + + /* tail */ + { + /* bitTail = bitD1; */ /* *much* slower : -20% !??! */ + FSE_DStream_t bitTail; + bitTail.ptr = bitD1.ptr; + bitTail.bitsConsumed = bitD1.bitsConsumed; + bitTail.bitContainer = bitD1.bitContainer; /* required in case of FSE_DStream_endOfBuffer */ + bitTail.start = start1; + for ( ; (FSE_reloadDStream(&bitTail) < FSE_DStream_completed) && (op= cSrcSize) return (size_t)-FSE_ERROR_srcSize_wrong; + ip += errorCode; + cSrcSize -= errorCode; + + return HUF_decompress_usingDTable (dst, maxDstSize, ip, cSrcSize, DTable); +} + + +#endif /* FSE_COMMONDEFS_ONLY */ + +/* + zstd - standard compression library + Copyright (C) 2014-2015, Yann Collet. + + BSD 2-Clause License (http://www.opensource.org/licenses/bsd-license.php) + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + You can contact the author at : + - zstd source repository : https://github.com/Cyan4973/zstd + - ztsd public forum : https://groups.google.com/forum/#!forum/lz4c +*/ + +/**************************************************************** +* Tuning parameters +*****************************************************************/ +/* MEMORY_USAGE : +* Memory usage formula : N->2^N Bytes (examples : 10 -> 1KB; 12 -> 4KB ; 16 -> 64KB; 20 -> 1MB; etc.) +* Increasing memory usage improves compression ratio +* Reduced memory usage can improve speed, due to cache effect */ +#define ZSTD_MEMORY_USAGE 17 + + +/************************************** + CPU Feature Detection +**************************************/ +/* + * Automated efficient unaligned memory access detection + * Based on known hardware architectures + * This list will be updated thanks to feedbacks + */ +#if defined(CPU_HAS_EFFICIENT_UNALIGNED_MEMORY_ACCESS) \ + || defined(__ARM_FEATURE_UNALIGNED) \ + || defined(__i386__) || defined(__x86_64__) \ + || defined(_M_IX86) || defined(_M_X64) \ + || defined(__ARM_ARCH_7__) || defined(__ARM_ARCH_8__) \ + || (defined(_M_ARM) && (_M_ARM >= 7)) +# define ZSTD_UNALIGNED_ACCESS 1 +#else +# define ZSTD_UNALIGNED_ACCESS 0 +#endif + + +/******************************************************** +* Includes +*********************************************************/ +#include /* calloc */ +#include /* memcpy, memmove */ +#include /* debug : printf */ + + +/******************************************************** +* Compiler specifics +*********************************************************/ +#ifdef __AVX2__ +# include /* AVX2 intrinsics */ +#endif + +#ifdef _MSC_VER /* Visual Studio */ +# include /* For Visual 2005 */ +# pragma warning(disable : 4127) /* disable: C4127: conditional expression is constant */ +# pragma warning(disable : 4324) /* disable: C4324: padded structure */ +#endif + + +#ifndef MEM_ACCESS_MODULE +#define MEM_ACCESS_MODULE +/******************************************************** +* Basic Types +*********************************************************/ +#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L /* C99 */ +# if defined(_AIX) +# include +# else +# include /* intptr_t */ +# endif +typedef uint8_t BYTE; +typedef uint16_t U16; +typedef int16_t S16; +typedef uint32_t U32; +typedef int32_t S32; +typedef uint64_t U64; +#else +typedef unsigned char BYTE; +typedef unsigned short U16; +typedef signed short S16; +typedef unsigned int U32; +typedef signed int S32; +typedef unsigned long long U64; +#endif + +#endif /* MEM_ACCESS_MODULE */ + + +/******************************************************** +* Constants +*********************************************************/ +static const U32 ZSTD_magicNumber = 0xFD2FB51E; /* 3rd version : seqNb header */ + +#define HASH_LOG (ZSTD_MEMORY_USAGE - 2) +#define HASH_TABLESIZE (1 << HASH_LOG) +#define HASH_MASK (HASH_TABLESIZE - 1) + +#define KNUTH 2654435761 + +#define BIT7 128 +#define BIT6 64 +#define BIT5 32 +#define BIT4 16 + +#define KB *(1 <<10) +#define MB *(1 <<20) +#define GB *(1U<<30) + +#define BLOCKSIZE (128 KB) /* define, for static allocation */ + +#define WORKPLACESIZE (BLOCKSIZE*3) +#define MINMATCH 4 +#define MLbits 7 +#define LLbits 6 +#define Offbits 5 +#define MaxML ((1<>3]; +#else + U32 hashTable[HASH_TABLESIZE]; +#endif + BYTE buffer[WORKPLACESIZE]; +} cctxi_t; + + + + +/************************************** +* Error Management +**************************************/ +/* published entry point */ +unsigned ZSTDv01_isError(size_t code) { return ERR_isError(code); } + + +/************************************** +* Tool functions +**************************************/ +#define ZSTD_VERSION_MAJOR 0 /* for breaking interface changes */ +#define ZSTD_VERSION_MINOR 1 /* for new (non-breaking) interface capabilities */ +#define ZSTD_VERSION_RELEASE 3 /* for tweaks, bug-fixes, or development */ +#define ZSTD_VERSION_NUMBER (ZSTD_VERSION_MAJOR *100*100 + ZSTD_VERSION_MINOR *100 + ZSTD_VERSION_RELEASE) + +/************************************************************** +* Decompression code +**************************************************************/ + +static size_t ZSTDv01_getcBlockSize(const void* src, size_t srcSize, blockProperties_t* bpPtr) +{ + const BYTE* const in = (const BYTE* const)src; + BYTE headerFlags; + U32 cSize; + + if (srcSize < 3) return ERROR(srcSize_wrong); + + headerFlags = *in; + cSize = in[2] + (in[1]<<8) + ((in[0] & 7)<<16); + + bpPtr->blockType = (blockType_t)(headerFlags >> 6); + bpPtr->origSize = (bpPtr->blockType == bt_rle) ? cSize : 0; + + if (bpPtr->blockType == bt_end) return 0; + if (bpPtr->blockType == bt_rle) return 1; + return cSize; +} + + +static size_t ZSTD_copyUncompressedBlock(void* dst, size_t maxDstSize, const void* src, size_t srcSize) +{ + if (srcSize > maxDstSize) return ERROR(dstSize_tooSmall); + if (srcSize > 0) { + memcpy(dst, src, srcSize); + } + return srcSize; +} + + +static size_t ZSTD_decompressLiterals(void* ctx, + void* dst, size_t maxDstSize, + const void* src, size_t srcSize) +{ + BYTE* op = (BYTE*)dst; + BYTE* const oend = op + maxDstSize; + const BYTE* ip = (const BYTE*)src; + size_t errorCode; + size_t litSize; + + /* check : minimum 2, for litSize, +1, for content */ + if (srcSize <= 3) return ERROR(corruption_detected); + + litSize = ip[1] + (ip[0]<<8); + litSize += ((ip[-3] >> 3) & 7) << 16; /* mmmmh.... */ + op = oend - litSize; + + (void)ctx; + if (litSize > maxDstSize) return ERROR(dstSize_tooSmall); + errorCode = HUF_decompress(op, litSize, ip+2, srcSize-2); + if (FSE_isError(errorCode)) return ERROR(GENERIC); + return litSize; +} + + +static size_t ZSTDv01_decodeLiteralsBlock(void* ctx, + void* dst, size_t maxDstSize, + const BYTE** litStart, size_t* litSize, + const void* src, size_t srcSize) +{ + const BYTE* const istart = (const BYTE* const)src; + const BYTE* ip = istart; + BYTE* const ostart = (BYTE* const)dst; + BYTE* const oend = ostart + maxDstSize; + blockProperties_t litbp; + + size_t litcSize = ZSTDv01_getcBlockSize(src, srcSize, &litbp); + if (ZSTDv01_isError(litcSize)) return litcSize; + if (litcSize > srcSize - ZSTD_blockHeaderSize) return ERROR(srcSize_wrong); + ip += ZSTD_blockHeaderSize; + + switch(litbp.blockType) + { + case bt_raw: + *litStart = ip; + ip += litcSize; + *litSize = litcSize; + break; + case bt_rle: + { + size_t rleSize = litbp.origSize; + if (rleSize>maxDstSize) return ERROR(dstSize_tooSmall); + if (!srcSize) return ERROR(srcSize_wrong); + if (rleSize > 0) { + memset(oend - rleSize, *ip, rleSize); + } + *litStart = oend - rleSize; + *litSize = rleSize; + ip++; + break; + } + case bt_compressed: + { + size_t decodedLitSize = ZSTD_decompressLiterals(ctx, dst, maxDstSize, ip, litcSize); + if (ZSTDv01_isError(decodedLitSize)) return decodedLitSize; + *litStart = oend - decodedLitSize; + *litSize = decodedLitSize; + ip += litcSize; + break; + } + case bt_end: + default: + return ERROR(GENERIC); + } + + return ip-istart; +} + + +static size_t ZSTDv01_decodeSeqHeaders(int* nbSeq, const BYTE** dumpsPtr, size_t* dumpsLengthPtr, + FSE_DTable* DTableLL, FSE_DTable* DTableML, FSE_DTable* DTableOffb, + const void* src, size_t srcSize) +{ + const BYTE* const istart = (const BYTE* const)src; + const BYTE* ip = istart; + const BYTE* const iend = istart + srcSize; + U32 LLtype, Offtype, MLtype; + U32 LLlog, Offlog, MLlog; + size_t dumpsLength; + + /* check */ + if (srcSize < 5) return ERROR(srcSize_wrong); + + /* SeqHead */ + *nbSeq = ZSTD_readLE16(ip); ip+=2; + LLtype = *ip >> 6; + Offtype = (*ip >> 4) & 3; + MLtype = (*ip >> 2) & 3; + if (*ip & 2) + { + dumpsLength = ip[2]; + dumpsLength += ip[1] << 8; + ip += 3; + } + else + { + dumpsLength = ip[1]; + dumpsLength += (ip[0] & 1) << 8; + ip += 2; + } + *dumpsPtr = ip; + ip += dumpsLength; + *dumpsLengthPtr = dumpsLength; + + /* check */ + if (ip > iend-3) return ERROR(srcSize_wrong); /* min : all 3 are "raw", hence no header, but at least xxLog bits per type */ + + /* sequences */ + { + S16 norm[MaxML+1]; /* assumption : MaxML >= MaxLL and MaxOff */ + size_t headerSize; + + /* Build DTables */ + switch(LLtype) + { + case bt_rle : + LLlog = 0; + FSE_buildDTable_rle(DTableLL, *ip++); break; + case bt_raw : + LLlog = LLbits; + FSE_buildDTable_raw(DTableLL, LLbits); break; + default : + { U32 max = MaxLL; + headerSize = FSE_readNCount(norm, &max, &LLlog, ip, iend-ip); + if (FSE_isError(headerSize)) return ERROR(GENERIC); + if (LLlog > LLFSELog) return ERROR(corruption_detected); + ip += headerSize; + FSE_buildDTable(DTableLL, norm, max, LLlog); + } } + + switch(Offtype) + { + case bt_rle : + Offlog = 0; + if (ip > iend-2) return ERROR(srcSize_wrong); /* min : "raw", hence no header, but at least xxLog bits */ + FSE_buildDTable_rle(DTableOffb, *ip++); break; + case bt_raw : + Offlog = Offbits; + FSE_buildDTable_raw(DTableOffb, Offbits); break; + default : + { U32 max = MaxOff; + headerSize = FSE_readNCount(norm, &max, &Offlog, ip, iend-ip); + if (FSE_isError(headerSize)) return ERROR(GENERIC); + if (Offlog > OffFSELog) return ERROR(corruption_detected); + ip += headerSize; + FSE_buildDTable(DTableOffb, norm, max, Offlog); + } } + + switch(MLtype) + { + case bt_rle : + MLlog = 0; + if (ip > iend-2) return ERROR(srcSize_wrong); /* min : "raw", hence no header, but at least xxLog bits */ + FSE_buildDTable_rle(DTableML, *ip++); break; + case bt_raw : + MLlog = MLbits; + FSE_buildDTable_raw(DTableML, MLbits); break; + default : + { U32 max = MaxML; + headerSize = FSE_readNCount(norm, &max, &MLlog, ip, iend-ip); + if (FSE_isError(headerSize)) return ERROR(GENERIC); + if (MLlog > MLFSELog) return ERROR(corruption_detected); + ip += headerSize; + FSE_buildDTable(DTableML, norm, max, MLlog); + } } } + + return ip-istart; +} + + +typedef struct { + size_t litLength; + size_t offset; + size_t matchLength; +} seq_t; + +typedef struct { + FSE_DStream_t DStream; + FSE_DState_t stateLL; + FSE_DState_t stateOffb; + FSE_DState_t stateML; + size_t prevOffset; + const BYTE* dumps; + const BYTE* dumpsEnd; +} seqState_t; + + +static void ZSTD_decodeSequence(seq_t* seq, seqState_t* seqState) +{ + size_t litLength; + size_t prevOffset; + size_t offset; + size_t matchLength; + const BYTE* dumps = seqState->dumps; + const BYTE* const de = seqState->dumpsEnd; + + /* Literal length */ + litLength = FSE_decodeSymbol(&(seqState->stateLL), &(seqState->DStream)); + prevOffset = litLength ? seq->offset : seqState->prevOffset; + seqState->prevOffset = seq->offset; + if (litLength == MaxLL) + { + const U32 add = dumpsstateOffb), &(seqState->DStream)); + if (ZSTD_32bits()) FSE_reloadDStream(&(seqState->DStream)); + nbBits = offsetCode - 1; + if (offsetCode==0) nbBits = 0; /* cmove */ + offset = ((size_t)1 << (nbBits & ((sizeof(offset)*8)-1))) + FSE_readBits(&(seqState->DStream), nbBits); + if (ZSTD_32bits()) FSE_reloadDStream(&(seqState->DStream)); + if (offsetCode==0) offset = prevOffset; + } + + /* MatchLength */ + matchLength = FSE_decodeSymbol(&(seqState->stateML), &(seqState->DStream)); + if (matchLength == MaxML) + { + const U32 add = dumpslitLength = litLength; + seq->offset = offset; + seq->matchLength = matchLength; + seqState->dumps = dumps; +} + + +static size_t ZSTD_execSequence(BYTE* op, + seq_t sequence, + const BYTE** litPtr, const BYTE* const litLimit, + BYTE* const base, BYTE* const oend) +{ + static const int dec32table[] = {0, 1, 2, 1, 4, 4, 4, 4}; /* added */ + static const int dec64table[] = {8, 8, 8, 7, 8, 9,10,11}; /* subtracted */ + const BYTE* const ostart = op; + const size_t litLength = sequence.litLength; + BYTE* const endMatch = op + litLength + sequence.matchLength; /* risk : address space overflow (32-bits) */ + const BYTE* const litEnd = *litPtr + litLength; + + /* check */ + if (endMatch > oend) return ERROR(dstSize_tooSmall); /* overwrite beyond dst buffer */ + if (litEnd > litLimit) return ERROR(corruption_detected); + if (sequence.matchLength > (size_t)(*litPtr-op)) return ERROR(dstSize_tooSmall); /* overwrite literal segment */ + + /* copy Literals */ + if (((size_t)(*litPtr - op) < 8) || ((size_t)(oend-litEnd) < 8) || (op+litLength > oend-8)) + memmove(op, *litPtr, litLength); /* overwrite risk */ + else + ZSTD_wildcopy(op, *litPtr, litLength); + op += litLength; + *litPtr = litEnd; /* update for next sequence */ + + /* check : last match must be at a minimum distance of 8 from end of dest buffer */ + if (oend-op < 8) return ERROR(dstSize_tooSmall); + + /* copy Match */ + { + const U32 overlapRisk = (((size_t)(litEnd - endMatch)) < 12); + const BYTE* match = op - sequence.offset; /* possible underflow at op - offset ? */ + size_t qutt = 12; + U64 saved[2]; + + /* check */ + if (match < base) return ERROR(corruption_detected); + if (sequence.offset > (size_t)base) return ERROR(corruption_detected); + + /* save beginning of literal sequence, in case of write overlap */ + if (overlapRisk) + { + if ((endMatch + qutt) > oend) qutt = oend-endMatch; + memcpy(saved, endMatch, qutt); + } + + if (sequence.offset < 8) + { + const int dec64 = dec64table[sequence.offset]; + op[0] = match[0]; + op[1] = match[1]; + op[2] = match[2]; + op[3] = match[3]; + match += dec32table[sequence.offset]; + ZSTD_copy4(op+4, match); + match -= dec64; + } else { ZSTD_copy8(op, match); } + op += 8; match += 8; + + if (endMatch > oend-(16-MINMATCH)) + { + if (op < oend-8) + { + ZSTD_wildcopy(op, match, (oend-8) - op); + match += (oend-8) - op; + op = oend-8; + } + while (opLLTable; + U32* DTableML = dctx->MLTable; + U32* DTableOffb = dctx->OffTable; + BYTE* const base = (BYTE*) (dctx->base); + + /* Build Decoding Tables */ + errorCode = ZSTDv01_decodeSeqHeaders(&nbSeq, &dumps, &dumpsLength, + DTableLL, DTableML, DTableOffb, + ip, iend-ip); + if (ZSTDv01_isError(errorCode)) return errorCode; + ip += errorCode; + + /* Regen sequences */ + { + seq_t sequence; + seqState_t seqState; + + memset(&sequence, 0, sizeof(sequence)); + seqState.dumps = dumps; + seqState.dumpsEnd = dumps + dumpsLength; + seqState.prevOffset = 1; + errorCode = FSE_initDStream(&(seqState.DStream), ip, iend-ip); + if (FSE_isError(errorCode)) return ERROR(corruption_detected); + FSE_initDState(&(seqState.stateLL), &(seqState.DStream), DTableLL); + FSE_initDState(&(seqState.stateOffb), &(seqState.DStream), DTableOffb); + FSE_initDState(&(seqState.stateML), &(seqState.DStream), DTableML); + + for ( ; (FSE_reloadDStream(&(seqState.DStream)) <= FSE_DStream_completed) && (nbSeq>0) ; ) + { + size_t oneSeqSize; + nbSeq--; + ZSTD_decodeSequence(&sequence, &seqState); + oneSeqSize = ZSTD_execSequence(op, sequence, &litPtr, litEnd, base, oend); + if (ZSTDv01_isError(oneSeqSize)) return oneSeqSize; + op += oneSeqSize; + } + + /* check if reached exact end */ + if ( !FSE_endOfDStream(&(seqState.DStream)) ) return ERROR(corruption_detected); /* requested too much : data is corrupted */ + if (nbSeq<0) return ERROR(corruption_detected); /* requested too many sequences : data is corrupted */ + + /* last literal segment */ + { + size_t lastLLSize = litEnd - litPtr; + if (op+lastLLSize > oend) return ERROR(dstSize_tooSmall); + if (lastLLSize > 0) { + if (op != litPtr) memmove(op, litPtr, lastLLSize); + op += lastLLSize; + } + } + } + + return op-ostart; +} + + +static size_t ZSTD_decompressBlock( + void* ctx, + void* dst, size_t maxDstSize, + const void* src, size_t srcSize) +{ + /* blockType == blockCompressed, srcSize is trusted */ + const BYTE* ip = (const BYTE*)src; + const BYTE* litPtr = NULL; + size_t litSize = 0; + size_t errorCode; + + /* Decode literals sub-block */ + errorCode = ZSTDv01_decodeLiteralsBlock(ctx, dst, maxDstSize, &litPtr, &litSize, src, srcSize); + if (ZSTDv01_isError(errorCode)) return errorCode; + ip += errorCode; + srcSize -= errorCode; + + return ZSTD_decompressSequences(ctx, dst, maxDstSize, ip, srcSize, litPtr, litSize); +} + + +size_t ZSTDv01_decompressDCtx(void* ctx, void* dst, size_t maxDstSize, const void* src, size_t srcSize) +{ + const BYTE* ip = (const BYTE*)src; + const BYTE* iend = ip + srcSize; + BYTE* const ostart = (BYTE* const)dst; + BYTE* op = ostart; + BYTE* const oend = ostart + maxDstSize; + size_t remainingSize = srcSize; + U32 magicNumber; + size_t errorCode=0; + blockProperties_t blockProperties; + + /* Frame Header */ + if (srcSize < ZSTD_frameHeaderSize+ZSTD_blockHeaderSize) return ERROR(srcSize_wrong); + magicNumber = ZSTD_readBE32(src); + if (magicNumber != ZSTD_magicNumber) return ERROR(prefix_unknown); + ip += ZSTD_frameHeaderSize; remainingSize -= ZSTD_frameHeaderSize; + + /* Loop on each block */ + while (1) + { + size_t blockSize = ZSTDv01_getcBlockSize(ip, iend-ip, &blockProperties); + if (ZSTDv01_isError(blockSize)) return blockSize; + + ip += ZSTD_blockHeaderSize; + remainingSize -= ZSTD_blockHeaderSize; + if (blockSize > remainingSize) return ERROR(srcSize_wrong); + + switch(blockProperties.blockType) + { + case bt_compressed: + errorCode = ZSTD_decompressBlock(ctx, op, oend-op, ip, blockSize); + break; + case bt_raw : + errorCode = ZSTD_copyUncompressedBlock(op, oend-op, ip, blockSize); + break; + case bt_rle : + return ERROR(GENERIC); /* not yet supported */ + break; + case bt_end : + /* end of frame */ + if (remainingSize) return ERROR(srcSize_wrong); + break; + default: + return ERROR(GENERIC); + } + if (blockSize == 0) break; /* bt_end */ + + if (ZSTDv01_isError(errorCode)) return errorCode; + op += errorCode; + ip += blockSize; + remainingSize -= blockSize; + } + + return op-ostart; +} + +size_t ZSTDv01_decompress(void* dst, size_t maxDstSize, const void* src, size_t srcSize) +{ + dctx_t ctx; + ctx.base = dst; + return ZSTDv01_decompressDCtx(&ctx, dst, maxDstSize, src, srcSize); +} + +/* ZSTD_errorFrameSizeInfoLegacy() : + assumes `cSize` and `dBound` are _not_ NULL */ +static void ZSTD_errorFrameSizeInfoLegacy(size_t* cSize, unsigned long long* dBound, size_t ret) +{ + *cSize = ret; + *dBound = ZSTD_CONTENTSIZE_ERROR; +} + +void ZSTDv01_findFrameSizeInfoLegacy(const void *src, size_t srcSize, size_t* cSize, unsigned long long* dBound) +{ + const BYTE* ip = (const BYTE*)src; + size_t remainingSize = srcSize; + size_t nbBlocks = 0; + U32 magicNumber; + blockProperties_t blockProperties; + + /* Frame Header */ + if (srcSize < ZSTD_frameHeaderSize+ZSTD_blockHeaderSize) { + ZSTD_errorFrameSizeInfoLegacy(cSize, dBound, ERROR(srcSize_wrong)); + return; + } + magicNumber = ZSTD_readBE32(src); + if (magicNumber != ZSTD_magicNumber) { + ZSTD_errorFrameSizeInfoLegacy(cSize, dBound, ERROR(prefix_unknown)); + return; + } + ip += ZSTD_frameHeaderSize; remainingSize -= ZSTD_frameHeaderSize; + + /* Loop on each block */ + while (1) + { + size_t blockSize = ZSTDv01_getcBlockSize(ip, remainingSize, &blockProperties); + if (ZSTDv01_isError(blockSize)) { + ZSTD_errorFrameSizeInfoLegacy(cSize, dBound, blockSize); + return; + } + + ip += ZSTD_blockHeaderSize; + remainingSize -= ZSTD_blockHeaderSize; + if (blockSize > remainingSize) { + ZSTD_errorFrameSizeInfoLegacy(cSize, dBound, ERROR(srcSize_wrong)); + return; + } + + if (blockSize == 0) break; /* bt_end */ + + ip += blockSize; + remainingSize -= blockSize; + nbBlocks++; + } + + *cSize = ip - (const BYTE*)src; + *dBound = nbBlocks * BLOCKSIZE; +} + +/******************************* +* Streaming Decompression API +*******************************/ + +size_t ZSTDv01_resetDCtx(ZSTDv01_Dctx* dctx) +{ + dctx->expected = ZSTD_frameHeaderSize; + dctx->phase = 0; + dctx->previousDstEnd = NULL; + dctx->base = NULL; + return 0; +} + +ZSTDv01_Dctx* ZSTDv01_createDCtx(void) +{ + ZSTDv01_Dctx* dctx = (ZSTDv01_Dctx*)malloc(sizeof(ZSTDv01_Dctx)); + if (dctx==NULL) return NULL; + ZSTDv01_resetDCtx(dctx); + return dctx; +} + +size_t ZSTDv01_freeDCtx(ZSTDv01_Dctx* dctx) +{ + free(dctx); + return 0; +} + +size_t ZSTDv01_nextSrcSizeToDecompress(ZSTDv01_Dctx* dctx) +{ + return ((dctx_t*)dctx)->expected; +} + +size_t ZSTDv01_decompressContinue(ZSTDv01_Dctx* dctx, void* dst, size_t maxDstSize, const void* src, size_t srcSize) +{ + dctx_t* ctx = (dctx_t*)dctx; + + /* Sanity check */ + if (srcSize != ctx->expected) return ERROR(srcSize_wrong); + if (dst != ctx->previousDstEnd) /* not contiguous */ + ctx->base = dst; + + /* Decompress : frame header */ + if (ctx->phase == 0) + { + /* Check frame magic header */ + U32 magicNumber = ZSTD_readBE32(src); + if (magicNumber != ZSTD_magicNumber) return ERROR(prefix_unknown); + ctx->phase = 1; + ctx->expected = ZSTD_blockHeaderSize; + return 0; + } + + /* Decompress : block header */ + if (ctx->phase == 1) + { + blockProperties_t bp; + size_t blockSize = ZSTDv01_getcBlockSize(src, ZSTD_blockHeaderSize, &bp); + if (ZSTDv01_isError(blockSize)) return blockSize; + if (bp.blockType == bt_end) + { + ctx->expected = 0; + ctx->phase = 0; + } + else + { + ctx->expected = blockSize; + ctx->bType = bp.blockType; + ctx->phase = 2; + } + + return 0; + } + + /* Decompress : block content */ + { + size_t rSize; + switch(ctx->bType) + { + case bt_compressed: + rSize = ZSTD_decompressBlock(ctx, dst, maxDstSize, src, srcSize); + break; + case bt_raw : + rSize = ZSTD_copyUncompressedBlock(dst, maxDstSize, src, srcSize); + break; + case bt_rle : + return ERROR(GENERIC); /* not yet handled */ + break; + case bt_end : /* should never happen (filtered at phase 1) */ + rSize = 0; + break; + default: + return ERROR(GENERIC); + } + ctx->phase = 1; + ctx->expected = ZSTD_blockHeaderSize; + ctx->previousDstEnd = (void*)( ((char*)dst) + rSize); + return rSize; + } + +} diff --git a/dependencies/zstd-1.5.0/lib/legacy/zstd_v01.h b/dependencies/zstd-1.5.0/lib/legacy/zstd_v01.h new file mode 100644 index 0000000..f777eb6 --- /dev/null +++ b/dependencies/zstd-1.5.0/lib/legacy/zstd_v01.h @@ -0,0 +1,94 @@ +/* + * Copyright (c) Yann Collet, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + +#ifndef ZSTD_V01_H_28739879432 +#define ZSTD_V01_H_28739879432 + +#if defined (__cplusplus) +extern "C" { +#endif + +/* ************************************* +* Includes +***************************************/ +#include /* size_t */ + + +/* ************************************* +* Simple one-step function +***************************************/ +/** +ZSTDv01_decompress() : decompress ZSTD frames compliant with v0.1.x format + compressedSize : is the exact source size + maxOriginalSize : is the size of the 'dst' buffer, which must be already allocated. + It must be equal or larger than originalSize, otherwise decompression will fail. + return : the number of bytes decompressed into destination buffer (originalSize) + or an errorCode if it fails (which can be tested using ZSTDv01_isError()) +*/ +size_t ZSTDv01_decompress( void* dst, size_t maxOriginalSize, + const void* src, size_t compressedSize); + + /** + ZSTDv01_findFrameSizeInfoLegacy() : get the source length and decompressed bound of a ZSTD frame compliant with v0.1.x format + srcSize : The size of the 'src' buffer, at least as large as the frame pointed to by 'src' + cSize (output parameter) : the number of bytes that would be read to decompress this frame + or an error code if it fails (which can be tested using ZSTDv01_isError()) + dBound (output parameter) : an upper-bound for the decompressed size of the data in the frame + or ZSTD_CONTENTSIZE_ERROR if an error occurs + + note : assumes `cSize` and `dBound` are _not_ NULL. + */ +void ZSTDv01_findFrameSizeInfoLegacy(const void *src, size_t srcSize, + size_t* cSize, unsigned long long* dBound); + +/** +ZSTDv01_isError() : tells if the result of ZSTDv01_decompress() is an error +*/ +unsigned ZSTDv01_isError(size_t code); + + +/* ************************************* +* Advanced functions +***************************************/ +typedef struct ZSTDv01_Dctx_s ZSTDv01_Dctx; +ZSTDv01_Dctx* ZSTDv01_createDCtx(void); +size_t ZSTDv01_freeDCtx(ZSTDv01_Dctx* dctx); + +size_t ZSTDv01_decompressDCtx(void* ctx, + void* dst, size_t maxOriginalSize, + const void* src, size_t compressedSize); + +/* ************************************* +* Streaming functions +***************************************/ +size_t ZSTDv01_resetDCtx(ZSTDv01_Dctx* dctx); + +size_t ZSTDv01_nextSrcSizeToDecompress(ZSTDv01_Dctx* dctx); +size_t ZSTDv01_decompressContinue(ZSTDv01_Dctx* dctx, void* dst, size_t maxDstSize, const void* src, size_t srcSize); +/** + Use above functions alternatively. + ZSTD_nextSrcSizeToDecompress() tells how much bytes to provide as 'srcSize' to ZSTD_decompressContinue(). + ZSTD_decompressContinue() will use previous data blocks to improve compression if they are located prior to current block. + Result is the number of bytes regenerated within 'dst'. + It can be zero, which is not an error; it just means ZSTD_decompressContinue() has decoded some header. +*/ + +/* ************************************* +* Prefix - version detection +***************************************/ +#define ZSTDv01_magicNumber 0xFD2FB51E /* Big Endian version */ +#define ZSTDv01_magicNumberLE 0x1EB52FFD /* Little Endian version */ + + +#if defined (__cplusplus) +} +#endif + +#endif /* ZSTD_V01_H_28739879432 */ diff --git a/dependencies/zstd-1.5.0/lib/legacy/zstd_v02.c b/dependencies/zstd-1.5.0/lib/legacy/zstd_v02.c new file mode 100644 index 0000000..89fdc71 --- /dev/null +++ b/dependencies/zstd-1.5.0/lib/legacy/zstd_v02.c @@ -0,0 +1,3522 @@ +/* + * Copyright (c) Yann Collet, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + + +#include /* size_t, ptrdiff_t */ +#include "zstd_v02.h" +#include "../common/error_private.h" + + +/****************************************** +* Compiler-specific +******************************************/ +#if defined(_MSC_VER) /* Visual Studio */ +# include /* _byteswap_ulong */ +# include /* _byteswap_* */ +#endif + + +/* ****************************************************************** + mem.h + low-level memory access routines + Copyright (C) 2013-2015, Yann Collet. + + BSD 2-Clause License (http://www.opensource.org/licenses/bsd-license.php) + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + You can contact the author at : + - FSE source repository : https://github.com/Cyan4973/FiniteStateEntropy + - Public forum : https://groups.google.com/forum/#!forum/lz4c +****************************************************************** */ +#ifndef MEM_H_MODULE +#define MEM_H_MODULE + +#if defined (__cplusplus) +extern "C" { +#endif + +/****************************************** +* Includes +******************************************/ +#include /* size_t, ptrdiff_t */ +#include /* memcpy */ + + +/****************************************** +* Compiler-specific +******************************************/ +#if defined(__GNUC__) +# define MEM_STATIC static __attribute__((unused)) +#elif defined (__cplusplus) || (defined (__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) /* C99 */) +# define MEM_STATIC static inline +#elif defined(_MSC_VER) +# define MEM_STATIC static __inline +#else +# define MEM_STATIC static /* this version may generate warnings for unused static functions; disable the relevant warning */ +#endif + + +/**************************************************************** +* Basic Types +*****************************************************************/ +#if defined (__cplusplus) || (defined (__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) /* C99 */) +# if defined(_AIX) +# include +# else +# include /* intptr_t */ +# endif + typedef uint8_t BYTE; + typedef uint16_t U16; + typedef int16_t S16; + typedef uint32_t U32; + typedef int32_t S32; + typedef uint64_t U64; + typedef int64_t S64; +#else + typedef unsigned char BYTE; + typedef unsigned short U16; + typedef signed short S16; + typedef unsigned int U32; + typedef signed int S32; + typedef unsigned long long U64; + typedef signed long long S64; +#endif + + +/**************************************************************** +* Memory I/O +*****************************************************************/ +/* MEM_FORCE_MEMORY_ACCESS + * By default, access to unaligned memory is controlled by `memcpy()`, which is safe and portable. + * Unfortunately, on some target/compiler combinations, the generated assembly is sub-optimal. + * The below switch allow to select different access method for improved performance. + * Method 0 (default) : use `memcpy()`. Safe and portable. + * Method 1 : `__packed` statement. It depends on compiler extension (ie, not portable). + * This method is safe if your compiler supports it, and *generally* as fast or faster than `memcpy`. + * Method 2 : direct access. This method is portable but violate C standard. + * It can generate buggy code on targets generating assembly depending on alignment. + * But in some circumstances, it's the only known way to get the most performance (ie GCC + ARMv6) + * See http://fastcompression.blogspot.fr/2015/08/accessing-unaligned-memory.html for details. + * Prefer these methods in priority order (0 > 1 > 2) + */ +#ifndef MEM_FORCE_MEMORY_ACCESS /* can be defined externally, on command line for example */ +# if defined(__GNUC__) && ( defined(__ARM_ARCH_6__) || defined(__ARM_ARCH_6J__) || defined(__ARM_ARCH_6K__) || defined(__ARM_ARCH_6Z__) || defined(__ARM_ARCH_6ZK__) || defined(__ARM_ARCH_6T2__) ) +# define MEM_FORCE_MEMORY_ACCESS 2 +# elif (defined(__INTEL_COMPILER) && !defined(WIN32)) || \ + (defined(__GNUC__) && ( defined(__ARM_ARCH_7__) || defined(__ARM_ARCH_7A__) || defined(__ARM_ARCH_7R__) || defined(__ARM_ARCH_7M__) || defined(__ARM_ARCH_7S__) )) +# define MEM_FORCE_MEMORY_ACCESS 1 +# endif +#endif + +MEM_STATIC unsigned MEM_32bits(void) { return sizeof(void*)==4; } +MEM_STATIC unsigned MEM_64bits(void) { return sizeof(void*)==8; } + +MEM_STATIC unsigned MEM_isLittleEndian(void) +{ + const union { U32 u; BYTE c[4]; } one = { 1 }; /* don't use static : performance detrimental */ + return one.c[0]; +} + +#if defined(MEM_FORCE_MEMORY_ACCESS) && (MEM_FORCE_MEMORY_ACCESS==2) + +/* violates C standard on structure alignment. +Only use if no other choice to achieve best performance on target platform */ +MEM_STATIC U16 MEM_read16(const void* memPtr) { return *(const U16*) memPtr; } +MEM_STATIC U32 MEM_read32(const void* memPtr) { return *(const U32*) memPtr; } +MEM_STATIC U64 MEM_read64(const void* memPtr) { return *(const U64*) memPtr; } + +MEM_STATIC void MEM_write16(void* memPtr, U16 value) { *(U16*)memPtr = value; } + +#elif defined(MEM_FORCE_MEMORY_ACCESS) && (MEM_FORCE_MEMORY_ACCESS==1) + +/* __pack instructions are safer, but compiler specific, hence potentially problematic for some compilers */ +/* currently only defined for gcc and icc */ +typedef union { U16 u16; U32 u32; U64 u64; } __attribute__((packed)) unalign; + +MEM_STATIC U16 MEM_read16(const void* ptr) { return ((const unalign*)ptr)->u16; } +MEM_STATIC U32 MEM_read32(const void* ptr) { return ((const unalign*)ptr)->u32; } +MEM_STATIC U64 MEM_read64(const void* ptr) { return ((const unalign*)ptr)->u64; } + +MEM_STATIC void MEM_write16(void* memPtr, U16 value) { ((unalign*)memPtr)->u16 = value; } + +#else + +/* default method, safe and standard. + can sometimes prove slower */ + +MEM_STATIC U16 MEM_read16(const void* memPtr) +{ + U16 val; memcpy(&val, memPtr, sizeof(val)); return val; +} + +MEM_STATIC U32 MEM_read32(const void* memPtr) +{ + U32 val; memcpy(&val, memPtr, sizeof(val)); return val; +} + +MEM_STATIC U64 MEM_read64(const void* memPtr) +{ + U64 val; memcpy(&val, memPtr, sizeof(val)); return val; +} + +MEM_STATIC void MEM_write16(void* memPtr, U16 value) +{ + memcpy(memPtr, &value, sizeof(value)); +} + +#endif /* MEM_FORCE_MEMORY_ACCESS */ + + +MEM_STATIC U16 MEM_readLE16(const void* memPtr) +{ + if (MEM_isLittleEndian()) + return MEM_read16(memPtr); + else + { + const BYTE* p = (const BYTE*)memPtr; + return (U16)(p[0] + (p[1]<<8)); + } +} + +MEM_STATIC void MEM_writeLE16(void* memPtr, U16 val) +{ + if (MEM_isLittleEndian()) + { + MEM_write16(memPtr, val); + } + else + { + BYTE* p = (BYTE*)memPtr; + p[0] = (BYTE)val; + p[1] = (BYTE)(val>>8); + } +} + +MEM_STATIC U32 MEM_readLE24(const void* memPtr) +{ + return MEM_readLE16(memPtr) + (((const BYTE*)memPtr)[2] << 16); +} + +MEM_STATIC U32 MEM_readLE32(const void* memPtr) +{ + if (MEM_isLittleEndian()) + return MEM_read32(memPtr); + else + { + const BYTE* p = (const BYTE*)memPtr; + return (U32)((U32)p[0] + ((U32)p[1]<<8) + ((U32)p[2]<<16) + ((U32)p[3]<<24)); + } +} + + +MEM_STATIC U64 MEM_readLE64(const void* memPtr) +{ + if (MEM_isLittleEndian()) + return MEM_read64(memPtr); + else + { + const BYTE* p = (const BYTE*)memPtr; + return (U64)((U64)p[0] + ((U64)p[1]<<8) + ((U64)p[2]<<16) + ((U64)p[3]<<24) + + ((U64)p[4]<<32) + ((U64)p[5]<<40) + ((U64)p[6]<<48) + ((U64)p[7]<<56)); + } +} + + +MEM_STATIC size_t MEM_readLEST(const void* memPtr) +{ + if (MEM_32bits()) + return (size_t)MEM_readLE32(memPtr); + else + return (size_t)MEM_readLE64(memPtr); +} + +#if defined (__cplusplus) +} +#endif + +#endif /* MEM_H_MODULE */ + + +/* ****************************************************************** + bitstream + Part of NewGen Entropy library + header file (to include) + Copyright (C) 2013-2015, Yann Collet. + + BSD 2-Clause License (http://www.opensource.org/licenses/bsd-license.php) + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + You can contact the author at : + - Source repository : https://github.com/Cyan4973/FiniteStateEntropy + - Public forum : https://groups.google.com/forum/#!forum/lz4c +****************************************************************** */ +#ifndef BITSTREAM_H_MODULE +#define BITSTREAM_H_MODULE + +#if defined (__cplusplus) +extern "C" { +#endif + + +/* +* This API consists of small unitary functions, which highly benefit from being inlined. +* Since link-time-optimization is not available for all compilers, +* these functions are defined into a .h to be included. +*/ + + +/********************************************** +* bitStream decompression API (read backward) +**********************************************/ +typedef struct +{ + size_t bitContainer; + unsigned bitsConsumed; + const char* ptr; + const char* start; +} BIT_DStream_t; + +typedef enum { BIT_DStream_unfinished = 0, + BIT_DStream_endOfBuffer = 1, + BIT_DStream_completed = 2, + BIT_DStream_overflow = 3 } BIT_DStream_status; /* result of BIT_reloadDStream() */ + /* 1,2,4,8 would be better for bitmap combinations, but slows down performance a bit ... :( */ + +MEM_STATIC size_t BIT_initDStream(BIT_DStream_t* bitD, const void* srcBuffer, size_t srcSize); +MEM_STATIC size_t BIT_readBits(BIT_DStream_t* bitD, unsigned nbBits); +MEM_STATIC BIT_DStream_status BIT_reloadDStream(BIT_DStream_t* bitD); +MEM_STATIC unsigned BIT_endOfDStream(const BIT_DStream_t* bitD); + + +/****************************************** +* unsafe API +******************************************/ +MEM_STATIC size_t BIT_readBitsFast(BIT_DStream_t* bitD, unsigned nbBits); +/* faster, but works only if nbBits >= 1 */ + + + +/**************************************************************** +* Helper functions +****************************************************************/ +MEM_STATIC unsigned BIT_highbit32 (U32 val) +{ +# if defined(_MSC_VER) /* Visual */ + unsigned long r=0; + _BitScanReverse ( &r, val ); + return (unsigned) r; +# elif defined(__GNUC__) && (__GNUC__ >= 3) /* Use GCC Intrinsic */ + return __builtin_clz (val) ^ 31; +# else /* Software version */ + static const unsigned DeBruijnClz[32] = { 0, 9, 1, 10, 13, 21, 2, 29, 11, 14, 16, 18, 22, 25, 3, 30, 8, 12, 20, 28, 15, 17, 24, 7, 19, 27, 23, 6, 26, 5, 4, 31 }; + U32 v = val; + unsigned r; + v |= v >> 1; + v |= v >> 2; + v |= v >> 4; + v |= v >> 8; + v |= v >> 16; + r = DeBruijnClz[ (U32) (v * 0x07C4ACDDU) >> 27]; + return r; +# endif +} + + + +/********************************************************** +* bitStream decoding +**********************************************************/ + +/*!BIT_initDStream +* Initialize a BIT_DStream_t. +* @bitD : a pointer to an already allocated BIT_DStream_t structure +* @srcBuffer must point at the beginning of a bitStream +* @srcSize must be the exact size of the bitStream +* @result : size of stream (== srcSize) or an errorCode if a problem is detected +*/ +MEM_STATIC size_t BIT_initDStream(BIT_DStream_t* bitD, const void* srcBuffer, size_t srcSize) +{ + if (srcSize < 1) { memset(bitD, 0, sizeof(*bitD)); return ERROR(srcSize_wrong); } + + if (srcSize >= sizeof(size_t)) /* normal case */ + { + U32 contain32; + bitD->start = (const char*)srcBuffer; + bitD->ptr = (const char*)srcBuffer + srcSize - sizeof(size_t); + bitD->bitContainer = MEM_readLEST(bitD->ptr); + contain32 = ((const BYTE*)srcBuffer)[srcSize-1]; + if (contain32 == 0) return ERROR(GENERIC); /* endMark not present */ + bitD->bitsConsumed = 8 - BIT_highbit32(contain32); + } + else + { + U32 contain32; + bitD->start = (const char*)srcBuffer; + bitD->ptr = bitD->start; + bitD->bitContainer = *(const BYTE*)(bitD->start); + switch(srcSize) + { + case 7: bitD->bitContainer += (size_t)(((const BYTE*)(bitD->start))[6]) << (sizeof(size_t)*8 - 16); + /* fallthrough */ + case 6: bitD->bitContainer += (size_t)(((const BYTE*)(bitD->start))[5]) << (sizeof(size_t)*8 - 24); + /* fallthrough */ + case 5: bitD->bitContainer += (size_t)(((const BYTE*)(bitD->start))[4]) << (sizeof(size_t)*8 - 32); + /* fallthrough */ + case 4: bitD->bitContainer += (size_t)(((const BYTE*)(bitD->start))[3]) << 24; + /* fallthrough */ + case 3: bitD->bitContainer += (size_t)(((const BYTE*)(bitD->start))[2]) << 16; + /* fallthrough */ + case 2: bitD->bitContainer += (size_t)(((const BYTE*)(bitD->start))[1]) << 8; + /* fallthrough */ + default:; + } + contain32 = ((const BYTE*)srcBuffer)[srcSize-1]; + if (contain32 == 0) return ERROR(GENERIC); /* endMark not present */ + bitD->bitsConsumed = 8 - BIT_highbit32(contain32); + bitD->bitsConsumed += (U32)(sizeof(size_t) - srcSize)*8; + } + + return srcSize; +} + +MEM_STATIC size_t BIT_lookBits(BIT_DStream_t* bitD, U32 nbBits) +{ + const U32 bitMask = sizeof(bitD->bitContainer)*8 - 1; + return ((bitD->bitContainer << (bitD->bitsConsumed & bitMask)) >> 1) >> ((bitMask-nbBits) & bitMask); +} + +/*! BIT_lookBitsFast : +* unsafe version; only works only if nbBits >= 1 */ +MEM_STATIC size_t BIT_lookBitsFast(BIT_DStream_t* bitD, U32 nbBits) +{ + const U32 bitMask = sizeof(bitD->bitContainer)*8 - 1; + return (bitD->bitContainer << (bitD->bitsConsumed & bitMask)) >> (((bitMask+1)-nbBits) & bitMask); +} + +MEM_STATIC void BIT_skipBits(BIT_DStream_t* bitD, U32 nbBits) +{ + bitD->bitsConsumed += nbBits; +} + +MEM_STATIC size_t BIT_readBits(BIT_DStream_t* bitD, U32 nbBits) +{ + size_t value = BIT_lookBits(bitD, nbBits); + BIT_skipBits(bitD, nbBits); + return value; +} + +/*!BIT_readBitsFast : +* unsafe version; only works only if nbBits >= 1 */ +MEM_STATIC size_t BIT_readBitsFast(BIT_DStream_t* bitD, U32 nbBits) +{ + size_t value = BIT_lookBitsFast(bitD, nbBits); + BIT_skipBits(bitD, nbBits); + return value; +} + +MEM_STATIC BIT_DStream_status BIT_reloadDStream(BIT_DStream_t* bitD) +{ + if (bitD->bitsConsumed > (sizeof(bitD->bitContainer)*8)) /* should never happen */ + return BIT_DStream_overflow; + + if (bitD->ptr >= bitD->start + sizeof(bitD->bitContainer)) + { + bitD->ptr -= bitD->bitsConsumed >> 3; + bitD->bitsConsumed &= 7; + bitD->bitContainer = MEM_readLEST(bitD->ptr); + return BIT_DStream_unfinished; + } + if (bitD->ptr == bitD->start) + { + if (bitD->bitsConsumed < sizeof(bitD->bitContainer)*8) return BIT_DStream_endOfBuffer; + return BIT_DStream_completed; + } + { + U32 nbBytes = bitD->bitsConsumed >> 3; + BIT_DStream_status result = BIT_DStream_unfinished; + if (bitD->ptr - nbBytes < bitD->start) + { + nbBytes = (U32)(bitD->ptr - bitD->start); /* ptr > start */ + result = BIT_DStream_endOfBuffer; + } + bitD->ptr -= nbBytes; + bitD->bitsConsumed -= nbBytes*8; + bitD->bitContainer = MEM_readLEST(bitD->ptr); /* reminder : srcSize > sizeof(bitD) */ + return result; + } +} + +/*! BIT_endOfDStream +* @return Tells if DStream has reached its exact end +*/ +MEM_STATIC unsigned BIT_endOfDStream(const BIT_DStream_t* DStream) +{ + return ((DStream->ptr == DStream->start) && (DStream->bitsConsumed == sizeof(DStream->bitContainer)*8)); +} + +#if defined (__cplusplus) +} +#endif + +#endif /* BITSTREAM_H_MODULE */ +/* ****************************************************************** + Error codes and messages + Copyright (C) 2013-2015, Yann Collet + + BSD 2-Clause License (http://www.opensource.org/licenses/bsd-license.php) + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + You can contact the author at : + - Source repository : https://github.com/Cyan4973/FiniteStateEntropy + - Public forum : https://groups.google.com/forum/#!forum/lz4c +****************************************************************** */ +#ifndef ERROR_H_MODULE +#define ERROR_H_MODULE + +#if defined (__cplusplus) +extern "C" { +#endif + + +/****************************************** +* Compiler-specific +******************************************/ +#if defined (__cplusplus) || (defined (__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) /* C99 */) +# define ERR_STATIC static inline +#elif defined(_MSC_VER) +# define ERR_STATIC static __inline +#elif defined(__GNUC__) +# define ERR_STATIC static __attribute__((unused)) +#else +# define ERR_STATIC static /* this version may generate warnings for unused static functions; disable the relevant warning */ +#endif + + +/****************************************** +* Error Management +******************************************/ +#define PREFIX(name) ZSTD_error_##name + +#define ERROR(name) (size_t)-PREFIX(name) + +#define ERROR_LIST(ITEM) \ + ITEM(PREFIX(No_Error)) ITEM(PREFIX(GENERIC)) \ + ITEM(PREFIX(dstSize_tooSmall)) ITEM(PREFIX(srcSize_wrong)) \ + ITEM(PREFIX(prefix_unknown)) ITEM(PREFIX(corruption_detected)) \ + ITEM(PREFIX(tableLog_tooLarge)) ITEM(PREFIX(maxSymbolValue_tooLarge)) ITEM(PREFIX(maxSymbolValue_tooSmall)) \ + ITEM(PREFIX(maxCode)) + +#define ERROR_GENERATE_ENUM(ENUM) ENUM, +typedef enum { ERROR_LIST(ERROR_GENERATE_ENUM) } ERR_codes; /* enum is exposed, to detect & handle specific errors; compare function result to -enum value */ + +#define ERROR_CONVERTTOSTRING(STRING) #STRING, +#define ERROR_GENERATE_STRING(EXPR) ERROR_CONVERTTOSTRING(EXPR) +static const char* ERR_strings[] = { ERROR_LIST(ERROR_GENERATE_STRING) }; + +ERR_STATIC unsigned ERR_isError(size_t code) { return (code > ERROR(maxCode)); } + +ERR_STATIC const char* ERR_getErrorName(size_t code) +{ + static const char* codeError = "Unspecified error code"; + if (ERR_isError(code)) return ERR_strings[-(int)(code)]; + return codeError; +} + + +#if defined (__cplusplus) +} +#endif + +#endif /* ERROR_H_MODULE */ +/* +Constructor and Destructor of type FSE_CTable + Note that its size depends on 'tableLog' and 'maxSymbolValue' */ +typedef unsigned FSE_CTable; /* don't allocate that. It's just a way to be more restrictive than void* */ +typedef unsigned FSE_DTable; /* don't allocate that. It's just a way to be more restrictive than void* */ + + +/* ****************************************************************** + FSE : Finite State Entropy coder + header file for static linking (only) + Copyright (C) 2013-2015, Yann Collet + + BSD 2-Clause License (http://www.opensource.org/licenses/bsd-license.php) + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + You can contact the author at : + - Source repository : https://github.com/Cyan4973/FiniteStateEntropy + - Public forum : https://groups.google.com/forum/#!forum/lz4c +****************************************************************** */ +#if defined (__cplusplus) +extern "C" { +#endif + + +/****************************************** +* Static allocation +******************************************/ +/* FSE buffer bounds */ +#define FSE_NCOUNTBOUND 512 +#define FSE_BLOCKBOUND(size) (size + (size>>7)) +#define FSE_COMPRESSBOUND(size) (FSE_NCOUNTBOUND + FSE_BLOCKBOUND(size)) /* Macro version, useful for static allocation */ + +/* You can statically allocate FSE CTable/DTable as a table of unsigned using below macro */ +#define FSE_CTABLE_SIZE_U32(maxTableLog, maxSymbolValue) (1 + (1<<(maxTableLog-1)) + ((maxSymbolValue+1)*2)) +#define FSE_DTABLE_SIZE_U32(maxTableLog) (1 + (1<= 1 (otherwise, result will be corrupted) */ + + +/****************************************** +* Implementation of inline functions +******************************************/ + +/* decompression */ + +typedef struct { + U16 tableLog; + U16 fastMode; +} FSE_DTableHeader; /* sizeof U32 */ + +typedef struct +{ + unsigned short newState; + unsigned char symbol; + unsigned char nbBits; +} FSE_decode_t; /* size == U32 */ + +MEM_STATIC void FSE_initDState(FSE_DState_t* DStatePtr, BIT_DStream_t* bitD, const FSE_DTable* dt) +{ + FSE_DTableHeader DTableH; + memcpy(&DTableH, dt, sizeof(DTableH)); + DStatePtr->state = BIT_readBits(bitD, DTableH.tableLog); + BIT_reloadDStream(bitD); + DStatePtr->table = dt + 1; +} + +MEM_STATIC BYTE FSE_decodeSymbol(FSE_DState_t* DStatePtr, BIT_DStream_t* bitD) +{ + const FSE_decode_t DInfo = ((const FSE_decode_t*)(DStatePtr->table))[DStatePtr->state]; + const U32 nbBits = DInfo.nbBits; + BYTE symbol = DInfo.symbol; + size_t lowBits = BIT_readBits(bitD, nbBits); + + DStatePtr->state = DInfo.newState + lowBits; + return symbol; +} + +MEM_STATIC BYTE FSE_decodeSymbolFast(FSE_DState_t* DStatePtr, BIT_DStream_t* bitD) +{ + const FSE_decode_t DInfo = ((const FSE_decode_t*)(DStatePtr->table))[DStatePtr->state]; + const U32 nbBits = DInfo.nbBits; + BYTE symbol = DInfo.symbol; + size_t lowBits = BIT_readBitsFast(bitD, nbBits); + + DStatePtr->state = DInfo.newState + lowBits; + return symbol; +} + +MEM_STATIC unsigned FSE_endOfDState(const FSE_DState_t* DStatePtr) +{ + return DStatePtr->state == 0; +} + + +#if defined (__cplusplus) +} +#endif +/* ****************************************************************** + Huff0 : Huffman coder, part of New Generation Entropy library + header file for static linking (only) + Copyright (C) 2013-2015, Yann Collet + + BSD 2-Clause License (http://www.opensource.org/licenses/bsd-license.php) + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + You can contact the author at : + - Source repository : https://github.com/Cyan4973/FiniteStateEntropy + - Public forum : https://groups.google.com/forum/#!forum/lz4c +****************************************************************** */ + +#if defined (__cplusplus) +extern "C" { +#endif + +/****************************************** +* Static allocation macros +******************************************/ +/* Huff0 buffer bounds */ +#define HUF_CTABLEBOUND 129 +#define HUF_BLOCKBOUND(size) (size + (size>>8) + 8) /* only true if incompressible pre-filtered with fast heuristic */ +#define HUF_COMPRESSBOUND(size) (HUF_CTABLEBOUND + HUF_BLOCKBOUND(size)) /* Macro version, useful for static allocation */ + +/* static allocation of Huff0's DTable */ +#define HUF_DTABLE_SIZE(maxTableLog) (1 + (1< /* size_t */ + + +/* ************************************* +* Version +***************************************/ +#define ZSTD_VERSION_MAJOR 0 /* for breaking interface changes */ +#define ZSTD_VERSION_MINOR 2 /* for new (non-breaking) interface capabilities */ +#define ZSTD_VERSION_RELEASE 2 /* for tweaks, bug-fixes, or development */ +#define ZSTD_VERSION_NUMBER (ZSTD_VERSION_MAJOR *100*100 + ZSTD_VERSION_MINOR *100 + ZSTD_VERSION_RELEASE) + + +/* ************************************* +* Advanced functions +***************************************/ +typedef struct ZSTD_CCtx_s ZSTD_CCtx; /* incomplete type */ + +#if defined (__cplusplus) +} +#endif +/* + zstd - standard compression library + Header File for static linking only + Copyright (C) 2014-2015, Yann Collet. + + BSD 2-Clause License (http://www.opensource.org/licenses/bsd-license.php) + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + You can contact the author at : + - zstd source repository : https://github.com/Cyan4973/zstd + - ztsd public forum : https://groups.google.com/forum/#!forum/lz4c +*/ + +/* The objects defined into this file should be considered experimental. + * They are not labelled stable, as their prototype may change in the future. + * You can use them for tests, provide feedback, or if you can endure risk of future changes. + */ + +#if defined (__cplusplus) +extern "C" { +#endif + +/* ************************************* +* Streaming functions +***************************************/ + +typedef struct ZSTD_DCtx_s ZSTD_DCtx; + +/* + Use above functions alternatively. + ZSTD_nextSrcSizeToDecompress() tells how much bytes to provide as 'srcSize' to ZSTD_decompressContinue(). + ZSTD_decompressContinue() will use previous data blocks to improve compression if they are located prior to current block. + Result is the number of bytes regenerated within 'dst'. + It can be zero, which is not an error; it just means ZSTD_decompressContinue() has decoded some header. +*/ + +/* ************************************* +* Prefix - version detection +***************************************/ +#define ZSTD_magicNumber 0xFD2FB522 /* v0.2 (current)*/ + + +#if defined (__cplusplus) +} +#endif +/* ****************************************************************** + FSE : Finite State Entropy coder + Copyright (C) 2013-2015, Yann Collet. + + BSD 2-Clause License (http://www.opensource.org/licenses/bsd-license.php) + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + You can contact the author at : + - FSE source repository : https://github.com/Cyan4973/FiniteStateEntropy + - Public forum : https://groups.google.com/forum/#!forum/lz4c +****************************************************************** */ + +#ifndef FSE_COMMONDEFS_ONLY + +/**************************************************************** +* Tuning parameters +****************************************************************/ +/* MEMORY_USAGE : +* Memory usage formula : N->2^N Bytes (examples : 10 -> 1KB; 12 -> 4KB ; 16 -> 64KB; 20 -> 1MB; etc.) +* Increasing memory usage improves compression ratio +* Reduced memory usage can improve speed, due to cache effect +* Recommended max value is 14, for 16KB, which nicely fits into Intel x86 L1 cache */ +#define FSE_MAX_MEMORY_USAGE 14 +#define FSE_DEFAULT_MEMORY_USAGE 13 + +/* FSE_MAX_SYMBOL_VALUE : +* Maximum symbol value authorized. +* Required for proper stack allocation */ +#define FSE_MAX_SYMBOL_VALUE 255 + + +/**************************************************************** +* template functions type & suffix +****************************************************************/ +#define FSE_FUNCTION_TYPE BYTE +#define FSE_FUNCTION_EXTENSION + + +/**************************************************************** +* Byte symbol type +****************************************************************/ +#endif /* !FSE_COMMONDEFS_ONLY */ + + +/**************************************************************** +* Compiler specifics +****************************************************************/ +#ifdef _MSC_VER /* Visual Studio */ +# define FORCE_INLINE static __forceinline +# include /* For Visual 2005 */ +# pragma warning(disable : 4127) /* disable: C4127: conditional expression is constant */ +# pragma warning(disable : 4214) /* disable: C4214: non-int bitfields */ +#else +# if defined (__cplusplus) || defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L /* C99 */ +# ifdef __GNUC__ +# define FORCE_INLINE static inline __attribute__((always_inline)) +# else +# define FORCE_INLINE static inline +# endif +# else +# define FORCE_INLINE static +# endif /* __STDC_VERSION__ */ +#endif + + +/**************************************************************** +* Includes +****************************************************************/ +#include /* malloc, free, qsort */ +#include /* memcpy, memset */ +#include /* printf (debug) */ + +/**************************************************************** +* Constants +*****************************************************************/ +#define FSE_MAX_TABLELOG (FSE_MAX_MEMORY_USAGE-2) +#define FSE_MAX_TABLESIZE (1U< FSE_TABLELOG_ABSOLUTE_MAX +#error "FSE_MAX_TABLELOG > FSE_TABLELOG_ABSOLUTE_MAX is not supported" +#endif + + +/**************************************************************** +* Error Management +****************************************************************/ +#define FSE_STATIC_ASSERT(c) { enum { FSE_static_assert = 1/(int)(!!(c)) }; } /* use only *after* variable declarations */ + + +/**************************************************************** +* Complex types +****************************************************************/ +typedef U32 DTable_max_t[FSE_DTABLE_SIZE_U32(FSE_MAX_TABLELOG)]; + + +/**************************************************************** +* Templates +****************************************************************/ +/* + designed to be included + for type-specific functions (template emulation in C) + Objective is to write these functions only once, for improved maintenance +*/ + +/* safety checks */ +#ifndef FSE_FUNCTION_EXTENSION +# error "FSE_FUNCTION_EXTENSION must be defined" +#endif +#ifndef FSE_FUNCTION_TYPE +# error "FSE_FUNCTION_TYPE must be defined" +#endif + +/* Function names */ +#define FSE_CAT(X,Y) X##Y +#define FSE_FUNCTION_NAME(X,Y) FSE_CAT(X,Y) +#define FSE_TYPE_NAME(X,Y) FSE_CAT(X,Y) + + +/* Function templates */ + +#define FSE_DECODE_TYPE FSE_decode_t + +static U32 FSE_tableStep(U32 tableSize) { return (tableSize>>1) + (tableSize>>3) + 3; } + +static size_t FSE_buildDTable +(FSE_DTable* dt, const short* normalizedCounter, unsigned maxSymbolValue, unsigned tableLog) +{ + void* ptr = dt+1; + FSE_DECODE_TYPE* const tableDecode = (FSE_DECODE_TYPE*)ptr; + FSE_DTableHeader DTableH; + const U32 tableSize = 1 << tableLog; + const U32 tableMask = tableSize-1; + const U32 step = FSE_tableStep(tableSize); + U16 symbolNext[FSE_MAX_SYMBOL_VALUE+1]; + U32 position = 0; + U32 highThreshold = tableSize-1; + const S16 largeLimit= (S16)(1 << (tableLog-1)); + U32 noLarge = 1; + U32 s; + + /* Sanity Checks */ + if (maxSymbolValue > FSE_MAX_SYMBOL_VALUE) return ERROR(maxSymbolValue_tooLarge); + if (tableLog > FSE_MAX_TABLELOG) return ERROR(tableLog_tooLarge); + + /* Init, lay down lowprob symbols */ + DTableH.tableLog = (U16)tableLog; + for (s=0; s<=maxSymbolValue; s++) + { + if (normalizedCounter[s]==-1) + { + tableDecode[highThreshold--].symbol = (FSE_FUNCTION_TYPE)s; + symbolNext[s] = 1; + } + else + { + if (normalizedCounter[s] >= largeLimit) noLarge=0; + symbolNext[s] = normalizedCounter[s]; + } + } + + /* Spread symbols */ + for (s=0; s<=maxSymbolValue; s++) + { + int i; + for (i=0; i highThreshold) position = (position + step) & tableMask; /* lowprob area */ + } + } + + if (position!=0) return ERROR(GENERIC); /* position must reach all cells once, otherwise normalizedCounter is incorrect */ + + /* Build Decoding table */ + { + U32 i; + for (i=0; i FSE_TABLELOG_ABSOLUTE_MAX) return ERROR(tableLog_tooLarge); + bitStream >>= 4; + bitCount = 4; + *tableLogPtr = nbBits; + remaining = (1<1) && (charnum<=*maxSVPtr)) + { + if (previous0) + { + unsigned n0 = charnum; + while ((bitStream & 0xFFFF) == 0xFFFF) + { + n0+=24; + if (ip < iend-5) + { + ip+=2; + bitStream = MEM_readLE32(ip) >> bitCount; + } + else + { + bitStream >>= 16; + bitCount+=16; + } + } + while ((bitStream & 3) == 3) + { + n0+=3; + bitStream>>=2; + bitCount+=2; + } + n0 += bitStream & 3; + bitCount += 2; + if (n0 > *maxSVPtr) return ERROR(maxSymbolValue_tooSmall); + while (charnum < n0) normalizedCounter[charnum++] = 0; + if ((ip <= iend-7) || (ip + (bitCount>>3) <= iend-4)) + { + ip += bitCount>>3; + bitCount &= 7; + bitStream = MEM_readLE32(ip) >> bitCount; + } + else + bitStream >>= 2; + } + { + const short max = (short)((2*threshold-1)-remaining); + short count; + + if ((bitStream & (threshold-1)) < (U32)max) + { + count = (short)(bitStream & (threshold-1)); + bitCount += nbBits-1; + } + else + { + count = (short)(bitStream & (2*threshold-1)); + if (count >= threshold) count -= max; + bitCount += nbBits; + } + + count--; /* extra accuracy */ + remaining -= FSE_abs(count); + normalizedCounter[charnum++] = count; + previous0 = !count; + while (remaining < threshold) + { + nbBits--; + threshold >>= 1; + } + + { + if ((ip <= iend-7) || (ip + (bitCount>>3) <= iend-4)) + { + ip += bitCount>>3; + bitCount &= 7; + } + else + { + bitCount -= (int)(8 * (iend - 4 - ip)); + ip = iend - 4; + } + bitStream = MEM_readLE32(ip) >> (bitCount & 31); + } + } + } + if (remaining != 1) return ERROR(GENERIC); + *maxSVPtr = charnum-1; + + ip += (bitCount+7)>>3; + if ((size_t)(ip-istart) > hbSize) return ERROR(srcSize_wrong); + return ip-istart; +} + + +/********************************************************* +* Decompression (Byte symbols) +*********************************************************/ +static size_t FSE_buildDTable_rle (FSE_DTable* dt, BYTE symbolValue) +{ + void* ptr = dt; + FSE_DTableHeader* const DTableH = (FSE_DTableHeader*)ptr; + FSE_decode_t* const cell = (FSE_decode_t*)(ptr) + 1; /* because dt is unsigned */ + + DTableH->tableLog = 0; + DTableH->fastMode = 0; + + cell->newState = 0; + cell->symbol = symbolValue; + cell->nbBits = 0; + + return 0; +} + + +static size_t FSE_buildDTable_raw (FSE_DTable* dt, unsigned nbBits) +{ + void* ptr = dt; + FSE_DTableHeader* const DTableH = (FSE_DTableHeader*)ptr; + FSE_decode_t* const dinfo = (FSE_decode_t*)(ptr) + 1; /* because dt is unsigned */ + const unsigned tableSize = 1 << nbBits; + const unsigned tableMask = tableSize - 1; + const unsigned maxSymbolValue = tableMask; + unsigned s; + + /* Sanity checks */ + if (nbBits < 1) return ERROR(GENERIC); /* min size */ + + /* Build Decoding Table */ + DTableH->tableLog = (U16)nbBits; + DTableH->fastMode = 1; + for (s=0; s<=maxSymbolValue; s++) + { + dinfo[s].newState = 0; + dinfo[s].symbol = (BYTE)s; + dinfo[s].nbBits = (BYTE)nbBits; + } + + return 0; +} + +FORCE_INLINE size_t FSE_decompress_usingDTable_generic( + void* dst, size_t maxDstSize, + const void* cSrc, size_t cSrcSize, + const FSE_DTable* dt, const unsigned fast) +{ + BYTE* const ostart = (BYTE*) dst; + BYTE* op = ostart; + BYTE* const omax = op + maxDstSize; + BYTE* const olimit = omax-3; + + BIT_DStream_t bitD; + FSE_DState_t state1; + FSE_DState_t state2; + size_t errorCode; + + /* Init */ + errorCode = BIT_initDStream(&bitD, cSrc, cSrcSize); /* replaced last arg by maxCompressed Size */ + if (FSE_isError(errorCode)) return errorCode; + + FSE_initDState(&state1, &bitD, dt); + FSE_initDState(&state2, &bitD, dt); + +#define FSE_GETSYMBOL(statePtr) fast ? FSE_decodeSymbolFast(statePtr, &bitD) : FSE_decodeSymbol(statePtr, &bitD) + + /* 4 symbols per loop */ + for ( ; (BIT_reloadDStream(&bitD)==BIT_DStream_unfinished) && (op sizeof(bitD.bitContainer)*8) /* This test must be static */ + BIT_reloadDStream(&bitD); + + op[1] = FSE_GETSYMBOL(&state2); + + if (FSE_MAX_TABLELOG*4+7 > sizeof(bitD.bitContainer)*8) /* This test must be static */ + { if (BIT_reloadDStream(&bitD) > BIT_DStream_unfinished) { op+=2; break; } } + + op[2] = FSE_GETSYMBOL(&state1); + + if (FSE_MAX_TABLELOG*2+7 > sizeof(bitD.bitContainer)*8) /* This test must be static */ + BIT_reloadDStream(&bitD); + + op[3] = FSE_GETSYMBOL(&state2); + } + + /* tail */ + /* note : BIT_reloadDStream(&bitD) >= FSE_DStream_partiallyFilled; Ends at exactly BIT_DStream_completed */ + while (1) + { + if ( (BIT_reloadDStream(&bitD)>BIT_DStream_completed) || (op==omax) || (BIT_endOfDStream(&bitD) && (fast || FSE_endOfDState(&state1))) ) + break; + + *op++ = FSE_GETSYMBOL(&state1); + + if ( (BIT_reloadDStream(&bitD)>BIT_DStream_completed) || (op==omax) || (BIT_endOfDStream(&bitD) && (fast || FSE_endOfDState(&state2))) ) + break; + + *op++ = FSE_GETSYMBOL(&state2); + } + + /* end ? */ + if (BIT_endOfDStream(&bitD) && FSE_endOfDState(&state1) && FSE_endOfDState(&state2)) + return op-ostart; + + if (op==omax) return ERROR(dstSize_tooSmall); /* dst buffer is full, but cSrc unfinished */ + + return ERROR(corruption_detected); +} + + +static size_t FSE_decompress_usingDTable(void* dst, size_t originalSize, + const void* cSrc, size_t cSrcSize, + const FSE_DTable* dt) +{ + FSE_DTableHeader DTableH; + memcpy(&DTableH, dt, sizeof(DTableH)); + + /* select fast mode (static) */ + if (DTableH.fastMode) return FSE_decompress_usingDTable_generic(dst, originalSize, cSrc, cSrcSize, dt, 1); + return FSE_decompress_usingDTable_generic(dst, originalSize, cSrc, cSrcSize, dt, 0); +} + + +static size_t FSE_decompress(void* dst, size_t maxDstSize, const void* cSrc, size_t cSrcSize) +{ + const BYTE* const istart = (const BYTE*)cSrc; + const BYTE* ip = istart; + short counting[FSE_MAX_SYMBOL_VALUE+1]; + DTable_max_t dt; /* Static analyzer seems unable to understand this table will be properly initialized later */ + unsigned tableLog; + unsigned maxSymbolValue = FSE_MAX_SYMBOL_VALUE; + size_t errorCode; + + if (cSrcSize<2) return ERROR(srcSize_wrong); /* too small input size */ + + /* normal FSE decoding mode */ + errorCode = FSE_readNCount (counting, &maxSymbolValue, &tableLog, istart, cSrcSize); + if (FSE_isError(errorCode)) return errorCode; + if (errorCode >= cSrcSize) return ERROR(srcSize_wrong); /* too small input size */ + ip += errorCode; + cSrcSize -= errorCode; + + errorCode = FSE_buildDTable (dt, counting, maxSymbolValue, tableLog); + if (FSE_isError(errorCode)) return errorCode; + + /* always return, even if it is an error code */ + return FSE_decompress_usingDTable (dst, maxDstSize, ip, cSrcSize, dt); +} + + + +#endif /* FSE_COMMONDEFS_ONLY */ +/* ****************************************************************** + Huff0 : Huffman coder, part of New Generation Entropy library + Copyright (C) 2013-2015, Yann Collet. + + BSD 2-Clause License (http://www.opensource.org/licenses/bsd-license.php) + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + You can contact the author at : + - FSE+Huff0 source repository : https://github.com/Cyan4973/FiniteStateEntropy + - Public forum : https://groups.google.com/forum/#!forum/lz4c +****************************************************************** */ + +/**************************************************************** +* Compiler specifics +****************************************************************/ +#if defined (__cplusplus) || (defined (__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) /* C99 */) +/* inline is defined */ +#elif defined(_MSC_VER) +# define inline __inline +#else +# define inline /* disable inline */ +#endif + + +#ifdef _MSC_VER /* Visual Studio */ +# pragma warning(disable : 4127) /* disable: C4127: conditional expression is constant */ +#endif + + +/**************************************************************** +* Includes +****************************************************************/ +#include /* malloc, free, qsort */ +#include /* memcpy, memset */ +#include /* printf (debug) */ + +/**************************************************************** +* Error Management +****************************************************************/ +#define HUF_STATIC_ASSERT(c) { enum { HUF_static_assert = 1/(int)(!!(c)) }; } /* use only *after* variable declarations */ + + +/****************************************** +* Helper functions +******************************************/ +static unsigned HUF_isError(size_t code) { return ERR_isError(code); } + +#define HUF_ABSOLUTEMAX_TABLELOG 16 /* absolute limit of HUF_MAX_TABLELOG. Beyond that value, code does not work */ +#define HUF_MAX_TABLELOG 12 /* max configured tableLog (for static allocation); can be modified up to HUF_ABSOLUTEMAX_TABLELOG */ +#define HUF_DEFAULT_TABLELOG HUF_MAX_TABLELOG /* tableLog by default, when not specified */ +#define HUF_MAX_SYMBOL_VALUE 255 +#if (HUF_MAX_TABLELOG > HUF_ABSOLUTEMAX_TABLELOG) +# error "HUF_MAX_TABLELOG is too large !" +#endif + + + +/********************************************************* +* Huff0 : Huffman block decompression +*********************************************************/ +typedef struct { BYTE byte; BYTE nbBits; } HUF_DEltX2; /* single-symbol decoding */ + +typedef struct { U16 sequence; BYTE nbBits; BYTE length; } HUF_DEltX4; /* double-symbols decoding */ + +typedef struct { BYTE symbol; BYTE weight; } sortedSymbol_t; + +/*! HUF_readStats + Read compact Huffman tree, saved by HUF_writeCTable + @huffWeight : destination buffer + @return : size read from `src` +*/ +static size_t HUF_readStats(BYTE* huffWeight, size_t hwSize, U32* rankStats, + U32* nbSymbolsPtr, U32* tableLogPtr, + const void* src, size_t srcSize) +{ + U32 weightTotal; + U32 tableLog; + const BYTE* ip = (const BYTE*) src; + size_t iSize; + size_t oSize; + U32 n; + + if (!srcSize) return ERROR(srcSize_wrong); + iSize = ip[0]; + //memset(huffWeight, 0, hwSize); /* is not necessary, even though some analyzer complain ... */ + + if (iSize >= 128) /* special header */ + { + if (iSize >= (242)) /* RLE */ + { + static int l[14] = { 1, 2, 3, 4, 7, 8, 15, 16, 31, 32, 63, 64, 127, 128 }; + oSize = l[iSize-242]; + memset(huffWeight, 1, hwSize); + iSize = 0; + } + else /* Incompressible */ + { + oSize = iSize - 127; + iSize = ((oSize+1)/2); + if (iSize+1 > srcSize) return ERROR(srcSize_wrong); + if (oSize >= hwSize) return ERROR(corruption_detected); + ip += 1; + for (n=0; n> 4; + huffWeight[n+1] = ip[n/2] & 15; + } + } + } + else /* header compressed with FSE (normal case) */ + { + if (iSize+1 > srcSize) return ERROR(srcSize_wrong); + oSize = FSE_decompress(huffWeight, hwSize-1, ip+1, iSize); /* max (hwSize-1) values decoded, as last one is implied */ + if (FSE_isError(oSize)) return oSize; + } + + /* collect weight stats */ + memset(rankStats, 0, (HUF_ABSOLUTEMAX_TABLELOG + 1) * sizeof(U32)); + weightTotal = 0; + for (n=0; n= HUF_ABSOLUTEMAX_TABLELOG) return ERROR(corruption_detected); + rankStats[huffWeight[n]]++; + weightTotal += (1 << huffWeight[n]) >> 1; + } + if (weightTotal == 0) return ERROR(corruption_detected); + + /* get last non-null symbol weight (implied, total must be 2^n) */ + tableLog = BIT_highbit32(weightTotal) + 1; + if (tableLog > HUF_ABSOLUTEMAX_TABLELOG) return ERROR(corruption_detected); + { + U32 total = 1 << tableLog; + U32 rest = total - weightTotal; + U32 verif = 1 << BIT_highbit32(rest); + U32 lastWeight = BIT_highbit32(rest) + 1; + if (verif != rest) return ERROR(corruption_detected); /* last value must be a clean power of 2 */ + huffWeight[oSize] = (BYTE)lastWeight; + rankStats[lastWeight]++; + } + + /* check tree construction validity */ + if ((rankStats[1] < 2) || (rankStats[1] & 1)) return ERROR(corruption_detected); /* by construction : at least 2 elts of rank 1, must be even */ + + /* results */ + *nbSymbolsPtr = (U32)(oSize+1); + *tableLogPtr = tableLog; + return iSize+1; +} + + +/**************************/ +/* single-symbol decoding */ +/**************************/ + +static size_t HUF_readDTableX2 (U16* DTable, const void* src, size_t srcSize) +{ + BYTE huffWeight[HUF_MAX_SYMBOL_VALUE + 1]; + U32 rankVal[HUF_ABSOLUTEMAX_TABLELOG + 1]; /* large enough for values from 0 to 16 */ + U32 tableLog = 0; + const BYTE* ip = (const BYTE*) src; + size_t iSize = ip[0]; + U32 nbSymbols = 0; + U32 n; + U32 nextRankStart; + void* ptr = DTable+1; + HUF_DEltX2* const dt = (HUF_DEltX2*)ptr; + + HUF_STATIC_ASSERT(sizeof(HUF_DEltX2) == sizeof(U16)); /* if compilation fails here, assertion is false */ + //memset(huffWeight, 0, sizeof(huffWeight)); /* is not necessary, even though some analyzer complain ... */ + + iSize = HUF_readStats(huffWeight, HUF_MAX_SYMBOL_VALUE + 1, rankVal, &nbSymbols, &tableLog, src, srcSize); + if (HUF_isError(iSize)) return iSize; + + /* check result */ + if (tableLog > DTable[0]) return ERROR(tableLog_tooLarge); /* DTable is too small */ + DTable[0] = (U16)tableLog; /* maybe should separate sizeof DTable, as allocated, from used size of DTable, in case of DTable re-use */ + + /* Prepare ranks */ + nextRankStart = 0; + for (n=1; n<=tableLog; n++) + { + U32 current = nextRankStart; + nextRankStart += (rankVal[n] << (n-1)); + rankVal[n] = current; + } + + /* fill DTable */ + for (n=0; n> 1; + U32 i; + HUF_DEltX2 D; + D.byte = (BYTE)n; D.nbBits = (BYTE)(tableLog + 1 - w); + for (i = rankVal[w]; i < rankVal[w] + length; i++) + dt[i] = D; + rankVal[w] += length; + } + + return iSize; +} + +static BYTE HUF_decodeSymbolX2(BIT_DStream_t* Dstream, const HUF_DEltX2* dt, const U32 dtLog) +{ + const size_t val = BIT_lookBitsFast(Dstream, dtLog); /* note : dtLog >= 1 */ + const BYTE c = dt[val].byte; + BIT_skipBits(Dstream, dt[val].nbBits); + return c; +} + +#define HUF_DECODE_SYMBOLX2_0(ptr, DStreamPtr) \ + *ptr++ = HUF_decodeSymbolX2(DStreamPtr, dt, dtLog) + +#define HUF_DECODE_SYMBOLX2_1(ptr, DStreamPtr) \ + if (MEM_64bits() || (HUF_MAX_TABLELOG<=12)) \ + HUF_DECODE_SYMBOLX2_0(ptr, DStreamPtr) + +#define HUF_DECODE_SYMBOLX2_2(ptr, DStreamPtr) \ + if (MEM_64bits()) \ + HUF_DECODE_SYMBOLX2_0(ptr, DStreamPtr) + +static inline size_t HUF_decodeStreamX2(BYTE* p, BIT_DStream_t* const bitDPtr, BYTE* const pEnd, const HUF_DEltX2* const dt, const U32 dtLog) +{ + BYTE* const pStart = p; + + /* up to 4 symbols at a time */ + while ((BIT_reloadDStream(bitDPtr) == BIT_DStream_unfinished) && (p <= pEnd-4)) + { + HUF_DECODE_SYMBOLX2_2(p, bitDPtr); + HUF_DECODE_SYMBOLX2_1(p, bitDPtr); + HUF_DECODE_SYMBOLX2_2(p, bitDPtr); + HUF_DECODE_SYMBOLX2_0(p, bitDPtr); + } + + /* closer to the end */ + while ((BIT_reloadDStream(bitDPtr) == BIT_DStream_unfinished) && (p < pEnd)) + HUF_DECODE_SYMBOLX2_0(p, bitDPtr); + + /* no more data to retrieve from bitstream, hence no need to reload */ + while (p < pEnd) + HUF_DECODE_SYMBOLX2_0(p, bitDPtr); + + return pEnd-pStart; +} + + +static size_t HUF_decompress4X2_usingDTable( + void* dst, size_t dstSize, + const void* cSrc, size_t cSrcSize, + const U16* DTable) +{ + if (cSrcSize < 10) return ERROR(corruption_detected); /* strict minimum : jump table + 1 byte per stream */ + + { + const BYTE* const istart = (const BYTE*) cSrc; + BYTE* const ostart = (BYTE*) dst; + BYTE* const oend = ostart + dstSize; + + const void* ptr = DTable; + const HUF_DEltX2* const dt = ((const HUF_DEltX2*)ptr) +1; + const U32 dtLog = DTable[0]; + size_t errorCode; + + /* Init */ + BIT_DStream_t bitD1; + BIT_DStream_t bitD2; + BIT_DStream_t bitD3; + BIT_DStream_t bitD4; + const size_t length1 = MEM_readLE16(istart); + const size_t length2 = MEM_readLE16(istart+2); + const size_t length3 = MEM_readLE16(istart+4); + size_t length4; + const BYTE* const istart1 = istart + 6; /* jumpTable */ + const BYTE* const istart2 = istart1 + length1; + const BYTE* const istart3 = istart2 + length2; + const BYTE* const istart4 = istart3 + length3; + const size_t segmentSize = (dstSize+3) / 4; + BYTE* const opStart2 = ostart + segmentSize; + BYTE* const opStart3 = opStart2 + segmentSize; + BYTE* const opStart4 = opStart3 + segmentSize; + BYTE* op1 = ostart; + BYTE* op2 = opStart2; + BYTE* op3 = opStart3; + BYTE* op4 = opStart4; + U32 endSignal; + + length4 = cSrcSize - (length1 + length2 + length3 + 6); + if (length4 > cSrcSize) return ERROR(corruption_detected); /* overflow */ + errorCode = BIT_initDStream(&bitD1, istart1, length1); + if (HUF_isError(errorCode)) return errorCode; + errorCode = BIT_initDStream(&bitD2, istart2, length2); + if (HUF_isError(errorCode)) return errorCode; + errorCode = BIT_initDStream(&bitD3, istart3, length3); + if (HUF_isError(errorCode)) return errorCode; + errorCode = BIT_initDStream(&bitD4, istart4, length4); + if (HUF_isError(errorCode)) return errorCode; + + /* 16-32 symbols per loop (4-8 symbols per stream) */ + endSignal = BIT_reloadDStream(&bitD1) | BIT_reloadDStream(&bitD2) | BIT_reloadDStream(&bitD3) | BIT_reloadDStream(&bitD4); + for ( ; (endSignal==BIT_DStream_unfinished) && (op4<(oend-7)) ; ) + { + HUF_DECODE_SYMBOLX2_2(op1, &bitD1); + HUF_DECODE_SYMBOLX2_2(op2, &bitD2); + HUF_DECODE_SYMBOLX2_2(op3, &bitD3); + HUF_DECODE_SYMBOLX2_2(op4, &bitD4); + HUF_DECODE_SYMBOLX2_1(op1, &bitD1); + HUF_DECODE_SYMBOLX2_1(op2, &bitD2); + HUF_DECODE_SYMBOLX2_1(op3, &bitD3); + HUF_DECODE_SYMBOLX2_1(op4, &bitD4); + HUF_DECODE_SYMBOLX2_2(op1, &bitD1); + HUF_DECODE_SYMBOLX2_2(op2, &bitD2); + HUF_DECODE_SYMBOLX2_2(op3, &bitD3); + HUF_DECODE_SYMBOLX2_2(op4, &bitD4); + HUF_DECODE_SYMBOLX2_0(op1, &bitD1); + HUF_DECODE_SYMBOLX2_0(op2, &bitD2); + HUF_DECODE_SYMBOLX2_0(op3, &bitD3); + HUF_DECODE_SYMBOLX2_0(op4, &bitD4); + + endSignal = BIT_reloadDStream(&bitD1) | BIT_reloadDStream(&bitD2) | BIT_reloadDStream(&bitD3) | BIT_reloadDStream(&bitD4); + } + + /* check corruption */ + if (op1 > opStart2) return ERROR(corruption_detected); + if (op2 > opStart3) return ERROR(corruption_detected); + if (op3 > opStart4) return ERROR(corruption_detected); + /* note : op4 supposed already verified within main loop */ + + /* finish bitStreams one by one */ + HUF_decodeStreamX2(op1, &bitD1, opStart2, dt, dtLog); + HUF_decodeStreamX2(op2, &bitD2, opStart3, dt, dtLog); + HUF_decodeStreamX2(op3, &bitD3, opStart4, dt, dtLog); + HUF_decodeStreamX2(op4, &bitD4, oend, dt, dtLog); + + /* check */ + endSignal = BIT_endOfDStream(&bitD1) & BIT_endOfDStream(&bitD2) & BIT_endOfDStream(&bitD3) & BIT_endOfDStream(&bitD4); + if (!endSignal) return ERROR(corruption_detected); + + /* decoded size */ + return dstSize; + } +} + + +static size_t HUF_decompress4X2 (void* dst, size_t dstSize, const void* cSrc, size_t cSrcSize) +{ + HUF_CREATE_STATIC_DTABLEX2(DTable, HUF_MAX_TABLELOG); + const BYTE* ip = (const BYTE*) cSrc; + size_t errorCode; + + errorCode = HUF_readDTableX2 (DTable, cSrc, cSrcSize); + if (HUF_isError(errorCode)) return errorCode; + if (errorCode >= cSrcSize) return ERROR(srcSize_wrong); + ip += errorCode; + cSrcSize -= errorCode; + + return HUF_decompress4X2_usingDTable (dst, dstSize, ip, cSrcSize, DTable); +} + + +/***************************/ +/* double-symbols decoding */ +/***************************/ + +static void HUF_fillDTableX4Level2(HUF_DEltX4* DTable, U32 sizeLog, const U32 consumed, + const U32* rankValOrigin, const int minWeight, + const sortedSymbol_t* sortedSymbols, const U32 sortedListSize, + U32 nbBitsBaseline, U16 baseSeq) +{ + HUF_DEltX4 DElt; + U32 rankVal[HUF_ABSOLUTEMAX_TABLELOG + 1]; + U32 s; + + /* get pre-calculated rankVal */ + memcpy(rankVal, rankValOrigin, sizeof(rankVal)); + + /* fill skipped values */ + if (minWeight>1) + { + U32 i, skipSize = rankVal[minWeight]; + MEM_writeLE16(&(DElt.sequence), baseSeq); + DElt.nbBits = (BYTE)(consumed); + DElt.length = 1; + for (i = 0; i < skipSize; i++) + DTable[i] = DElt; + } + + /* fill DTable */ + for (s=0; s= 1 */ + + rankVal[weight] += length; + } +} + +typedef U32 rankVal_t[HUF_ABSOLUTEMAX_TABLELOG][HUF_ABSOLUTEMAX_TABLELOG + 1]; + +static void HUF_fillDTableX4(HUF_DEltX4* DTable, const U32 targetLog, + const sortedSymbol_t* sortedList, const U32 sortedListSize, + const U32* rankStart, rankVal_t rankValOrigin, const U32 maxWeight, + const U32 nbBitsBaseline) +{ + U32 rankVal[HUF_ABSOLUTEMAX_TABLELOG + 1]; + const int scaleLog = nbBitsBaseline - targetLog; /* note : targetLog >= srcLog, hence scaleLog <= 1 */ + const U32 minBits = nbBitsBaseline - maxWeight; + U32 s; + + memcpy(rankVal, rankValOrigin, sizeof(rankVal)); + + /* fill DTable */ + for (s=0; s= minBits) /* enough room for a second symbol */ + { + U32 sortedRank; + int minWeight = nbBits + scaleLog; + if (minWeight < 1) minWeight = 1; + sortedRank = rankStart[minWeight]; + HUF_fillDTableX4Level2(DTable+start, targetLog-nbBits, nbBits, + rankValOrigin[nbBits], minWeight, + sortedList+sortedRank, sortedListSize-sortedRank, + nbBitsBaseline, symbol); + } + else + { + U32 i; + const U32 end = start + length; + HUF_DEltX4 DElt; + + MEM_writeLE16(&(DElt.sequence), symbol); + DElt.nbBits = (BYTE)(nbBits); + DElt.length = 1; + for (i = start; i < end; i++) + DTable[i] = DElt; + } + rankVal[weight] += length; + } +} + +static size_t HUF_readDTableX4 (U32* DTable, const void* src, size_t srcSize) +{ + BYTE weightList[HUF_MAX_SYMBOL_VALUE + 1]; + sortedSymbol_t sortedSymbol[HUF_MAX_SYMBOL_VALUE + 1]; + U32 rankStats[HUF_ABSOLUTEMAX_TABLELOG + 1] = { 0 }; + U32 rankStart0[HUF_ABSOLUTEMAX_TABLELOG + 2] = { 0 }; + U32* const rankStart = rankStart0+1; + rankVal_t rankVal; + U32 tableLog, maxW, sizeOfSort, nbSymbols; + const U32 memLog = DTable[0]; + const BYTE* ip = (const BYTE*) src; + size_t iSize = ip[0]; + void* ptr = DTable; + HUF_DEltX4* const dt = ((HUF_DEltX4*)ptr) + 1; + + HUF_STATIC_ASSERT(sizeof(HUF_DEltX4) == sizeof(U32)); /* if compilation fails here, assertion is false */ + if (memLog > HUF_ABSOLUTEMAX_TABLELOG) return ERROR(tableLog_tooLarge); + //memset(weightList, 0, sizeof(weightList)); /* is not necessary, even though some analyzer complain ... */ + + iSize = HUF_readStats(weightList, HUF_MAX_SYMBOL_VALUE + 1, rankStats, &nbSymbols, &tableLog, src, srcSize); + if (HUF_isError(iSize)) return iSize; + + /* check result */ + if (tableLog > memLog) return ERROR(tableLog_tooLarge); /* DTable can't fit code depth */ + + /* find maxWeight */ + for (maxW = tableLog; rankStats[maxW]==0; maxW--) + {if (!maxW) return ERROR(GENERIC); } /* necessarily finds a solution before maxW==0 */ + + /* Get start index of each weight */ + { + U32 w, nextRankStart = 0; + for (w=1; w<=maxW; w++) + { + U32 current = nextRankStart; + nextRankStart += rankStats[w]; + rankStart[w] = current; + } + rankStart[0] = nextRankStart; /* put all 0w symbols at the end of sorted list*/ + sizeOfSort = nextRankStart; + } + + /* sort symbols by weight */ + { + U32 s; + for (s=0; s> consumed; + } + } + } + + HUF_fillDTableX4(dt, memLog, + sortedSymbol, sizeOfSort, + rankStart0, rankVal, maxW, + tableLog+1); + + return iSize; +} + + +static U32 HUF_decodeSymbolX4(void* op, BIT_DStream_t* DStream, const HUF_DEltX4* dt, const U32 dtLog) +{ + const size_t val = BIT_lookBitsFast(DStream, dtLog); /* note : dtLog >= 1 */ + memcpy(op, dt+val, 2); + BIT_skipBits(DStream, dt[val].nbBits); + return dt[val].length; +} + +static U32 HUF_decodeLastSymbolX4(void* op, BIT_DStream_t* DStream, const HUF_DEltX4* dt, const U32 dtLog) +{ + const size_t val = BIT_lookBitsFast(DStream, dtLog); /* note : dtLog >= 1 */ + memcpy(op, dt+val, 1); + if (dt[val].length==1) BIT_skipBits(DStream, dt[val].nbBits); + else + { + if (DStream->bitsConsumed < (sizeof(DStream->bitContainer)*8)) + { + BIT_skipBits(DStream, dt[val].nbBits); + if (DStream->bitsConsumed > (sizeof(DStream->bitContainer)*8)) + DStream->bitsConsumed = (sizeof(DStream->bitContainer)*8); /* ugly hack; works only because it's the last symbol. Note : can't easily extract nbBits from just this symbol */ + } + } + return 1; +} + + +#define HUF_DECODE_SYMBOLX4_0(ptr, DStreamPtr) \ + ptr += HUF_decodeSymbolX4(ptr, DStreamPtr, dt, dtLog) + +#define HUF_DECODE_SYMBOLX4_1(ptr, DStreamPtr) \ + if (MEM_64bits() || (HUF_MAX_TABLELOG<=12)) \ + ptr += HUF_decodeSymbolX4(ptr, DStreamPtr, dt, dtLog) + +#define HUF_DECODE_SYMBOLX4_2(ptr, DStreamPtr) \ + if (MEM_64bits()) \ + ptr += HUF_decodeSymbolX4(ptr, DStreamPtr, dt, dtLog) + +static inline size_t HUF_decodeStreamX4(BYTE* p, BIT_DStream_t* bitDPtr, BYTE* const pEnd, const HUF_DEltX4* const dt, const U32 dtLog) +{ + BYTE* const pStart = p; + + /* up to 8 symbols at a time */ + while ((BIT_reloadDStream(bitDPtr) == BIT_DStream_unfinished) && (p < pEnd-7)) + { + HUF_DECODE_SYMBOLX4_2(p, bitDPtr); + HUF_DECODE_SYMBOLX4_1(p, bitDPtr); + HUF_DECODE_SYMBOLX4_2(p, bitDPtr); + HUF_DECODE_SYMBOLX4_0(p, bitDPtr); + } + + /* closer to the end */ + while ((BIT_reloadDStream(bitDPtr) == BIT_DStream_unfinished) && (p <= pEnd-2)) + HUF_DECODE_SYMBOLX4_0(p, bitDPtr); + + while (p <= pEnd-2) + HUF_DECODE_SYMBOLX4_0(p, bitDPtr); /* no need to reload : reached the end of DStream */ + + if (p < pEnd) + p += HUF_decodeLastSymbolX4(p, bitDPtr, dt, dtLog); + + return p-pStart; +} + + + +static size_t HUF_decompress4X4_usingDTable( + void* dst, size_t dstSize, + const void* cSrc, size_t cSrcSize, + const U32* DTable) +{ + if (cSrcSize < 10) return ERROR(corruption_detected); /* strict minimum : jump table + 1 byte per stream */ + + { + const BYTE* const istart = (const BYTE*) cSrc; + BYTE* const ostart = (BYTE*) dst; + BYTE* const oend = ostart + dstSize; + + const void* ptr = DTable; + const HUF_DEltX4* const dt = ((const HUF_DEltX4*)ptr) +1; + const U32 dtLog = DTable[0]; + size_t errorCode; + + /* Init */ + BIT_DStream_t bitD1; + BIT_DStream_t bitD2; + BIT_DStream_t bitD3; + BIT_DStream_t bitD4; + const size_t length1 = MEM_readLE16(istart); + const size_t length2 = MEM_readLE16(istart+2); + const size_t length3 = MEM_readLE16(istart+4); + size_t length4; + const BYTE* const istart1 = istart + 6; /* jumpTable */ + const BYTE* const istart2 = istart1 + length1; + const BYTE* const istart3 = istart2 + length2; + const BYTE* const istart4 = istart3 + length3; + const size_t segmentSize = (dstSize+3) / 4; + BYTE* const opStart2 = ostart + segmentSize; + BYTE* const opStart3 = opStart2 + segmentSize; + BYTE* const opStart4 = opStart3 + segmentSize; + BYTE* op1 = ostart; + BYTE* op2 = opStart2; + BYTE* op3 = opStart3; + BYTE* op4 = opStart4; + U32 endSignal; + + length4 = cSrcSize - (length1 + length2 + length3 + 6); + if (length4 > cSrcSize) return ERROR(corruption_detected); /* overflow */ + errorCode = BIT_initDStream(&bitD1, istart1, length1); + if (HUF_isError(errorCode)) return errorCode; + errorCode = BIT_initDStream(&bitD2, istart2, length2); + if (HUF_isError(errorCode)) return errorCode; + errorCode = BIT_initDStream(&bitD3, istart3, length3); + if (HUF_isError(errorCode)) return errorCode; + errorCode = BIT_initDStream(&bitD4, istart4, length4); + if (HUF_isError(errorCode)) return errorCode; + + /* 16-32 symbols per loop (4-8 symbols per stream) */ + endSignal = BIT_reloadDStream(&bitD1) | BIT_reloadDStream(&bitD2) | BIT_reloadDStream(&bitD3) | BIT_reloadDStream(&bitD4); + for ( ; (endSignal==BIT_DStream_unfinished) && (op4<(oend-7)) ; ) + { + HUF_DECODE_SYMBOLX4_2(op1, &bitD1); + HUF_DECODE_SYMBOLX4_2(op2, &bitD2); + HUF_DECODE_SYMBOLX4_2(op3, &bitD3); + HUF_DECODE_SYMBOLX4_2(op4, &bitD4); + HUF_DECODE_SYMBOLX4_1(op1, &bitD1); + HUF_DECODE_SYMBOLX4_1(op2, &bitD2); + HUF_DECODE_SYMBOLX4_1(op3, &bitD3); + HUF_DECODE_SYMBOLX4_1(op4, &bitD4); + HUF_DECODE_SYMBOLX4_2(op1, &bitD1); + HUF_DECODE_SYMBOLX4_2(op2, &bitD2); + HUF_DECODE_SYMBOLX4_2(op3, &bitD3); + HUF_DECODE_SYMBOLX4_2(op4, &bitD4); + HUF_DECODE_SYMBOLX4_0(op1, &bitD1); + HUF_DECODE_SYMBOLX4_0(op2, &bitD2); + HUF_DECODE_SYMBOLX4_0(op3, &bitD3); + HUF_DECODE_SYMBOLX4_0(op4, &bitD4); + + endSignal = BIT_reloadDStream(&bitD1) | BIT_reloadDStream(&bitD2) | BIT_reloadDStream(&bitD3) | BIT_reloadDStream(&bitD4); + } + + /* check corruption */ + if (op1 > opStart2) return ERROR(corruption_detected); + if (op2 > opStart3) return ERROR(corruption_detected); + if (op3 > opStart4) return ERROR(corruption_detected); + /* note : op4 supposed already verified within main loop */ + + /* finish bitStreams one by one */ + HUF_decodeStreamX4(op1, &bitD1, opStart2, dt, dtLog); + HUF_decodeStreamX4(op2, &bitD2, opStart3, dt, dtLog); + HUF_decodeStreamX4(op3, &bitD3, opStart4, dt, dtLog); + HUF_decodeStreamX4(op4, &bitD4, oend, dt, dtLog); + + /* check */ + endSignal = BIT_endOfDStream(&bitD1) & BIT_endOfDStream(&bitD2) & BIT_endOfDStream(&bitD3) & BIT_endOfDStream(&bitD4); + if (!endSignal) return ERROR(corruption_detected); + + /* decoded size */ + return dstSize; + } +} + + +static size_t HUF_decompress4X4 (void* dst, size_t dstSize, const void* cSrc, size_t cSrcSize) +{ + HUF_CREATE_STATIC_DTABLEX4(DTable, HUF_MAX_TABLELOG); + const BYTE* ip = (const BYTE*) cSrc; + + size_t hSize = HUF_readDTableX4 (DTable, cSrc, cSrcSize); + if (HUF_isError(hSize)) return hSize; + if (hSize >= cSrcSize) return ERROR(srcSize_wrong); + ip += hSize; + cSrcSize -= hSize; + + return HUF_decompress4X4_usingDTable (dst, dstSize, ip, cSrcSize, DTable); +} + + +/**********************************/ +/* quad-symbol decoding */ +/**********************************/ +typedef struct { BYTE nbBits; BYTE nbBytes; } HUF_DDescX6; +typedef union { BYTE byte[4]; U32 sequence; } HUF_DSeqX6; + +/* recursive, up to level 3; may benefit from

    oC(7If%p=Z% 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 delta 11721 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 diff --git a/dependencies/libarchive-3.5.2/doc/pdf/archive_entry_acl.3.pdf b/dependencies/libarchive-3.5.2/doc/pdf/archive_entry_acl.3.pdf new file mode 100644 index 0000000000000000000000000000000000000000..a428f40fec9bac56f46cade4fb4306bcbdc20f01 GIT binary patch literal 38581 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