From 5930a191ca3934babafc5b529d0824a6cba62536 Mon Sep 17 00:00:00 2001 From: Garth Snyder Date: Fri, 6 Mar 2026 14:19:51 -0800 Subject: [PATCH] zstream: add comprehensive test suite This PR defines a `zstream` test category and adds tests to exercise all features of the `zstream` command. It was originally intended to guarantee that PR #18509 did not disrupt any user-facing behavior, but during the development of that latter PR, some bugs were fixed and tests were added for them. As a result, some of the tests in this PR will fail when run against the current version of `zstream`. I would suggest not integrating this PR in advance of PR #18509, but if it's preferred to have the tests in first, I can add known-issue flags for the failing tests. Or alternatively, this PR can be merged into PR #18509. Signed-off-by: Garth Snyder --- cmd/zstream/scripts/add-xattrs.py | 91 ++++++++++++++ cmd/zstream/scripts/gen-lorem-files.py | 83 ++++++++++++ .../scripts/make-all-records-streams.sh | 45 +++++++ .../scripts/make-decompression-streams.sh | 26 ++++ cmd/zstream/scripts/make-dump-files.py | 77 ++++++++++++ cmd/zstream/scripts/make-long-payloads.sh | 26 ++++ cmd/zstream/scripts/make-venv.sh | 5 + tests/runfiles/common.run | 18 ++- tests/runfiles/sanity.run | 7 +- tests/zfs-tests/tests/Makefile.am | 59 ++++++++- .../functional/zstream/beadtbn-new.dump.bz2 | Bin 0 -> 1286 bytes .../functional/zstream/beadtbn-old.dump.bz2 | Bin 0 -> 1222 bytes .../functional/zstream/beadtbx-new.dump.bz2 | Bin 0 -> 1289 bytes .../functional/zstream/beadtbx-old.dump.bz2 | Bin 0 -> 1224 bytes .../functional/zstream/beadtin-new.dump.bz2 | Bin 0 -> 3230 bytes .../functional/zstream/beadtin-old.dump.bz2 | Bin 0 -> 3178 bytes .../functional/zstream/beadtix-new.dump.bz2 | Bin 0 -> 3221 bytes .../functional/zstream/beadtix-old.dump.bz2 | Bin 0 -> 3180 bytes .../functional/zstream/belp-new.dump.bz2 | Bin 0 -> 1112 bytes .../functional/zstream/belp-old.dump.bz2 | Bin 0 -> 1101 bytes ...endian-all-drr-types-base-NATIVE.zsend.bz2 | Bin 0 -> 7382 bytes ...ig-endian-all-drr-types-base-XDR.zsend.bz2 | Bin 0 -> 7466 bytes ...endian-all-drr-types-incr-NATIVE.zsend.bz2 | Bin 0 -> 40989 bytes ...ig-endian-all-drr-types-incr-XDR.zsend.bz2 | Bin 0 -> 41155 bytes .../big-endian-long-payloads.zsend.bz2 | Bin 0 -> 37023 bytes .../tests/functional/zstream/cleanup.ksh | 39 ++++++ .../tests/functional/zstream/d-new.dump.bz2 | Bin 0 -> 1130 bytes .../tests/functional/zstream/dc-new.dump.bz2 | Bin 0 -> 2175 bytes .../zstream/decompress-crypt.zsend.bz2 | Bin 0 -> 28946 bytes .../functional/zstream/decompress.zsend.bz2 | Bin 0 -> 5970 bytes .../functional/zstream/leadtbn-new.dump.bz2 | Bin 0 -> 1295 bytes .../functional/zstream/leadtbn-old.dump.bz2 | Bin 0 -> 1224 bytes .../functional/zstream/leadtbx-new.dump.bz2 | Bin 0 -> 1287 bytes .../functional/zstream/leadtbx-old.dump.bz2 | Bin 0 -> 1221 bytes .../functional/zstream/leadtin-new.dump.bz2 | Bin 0 -> 3308 bytes .../functional/zstream/leadtin-old.dump.bz2 | Bin 0 -> 3241 bytes .../functional/zstream/leadtix-new.dump.bz2 | Bin 0 -> 3277 bytes .../functional/zstream/leadtix-old.dump.bz2 | Bin 0 -> 3241 bytes .../functional/zstream/lelp-new.dump.bz2 | Bin 0 -> 1116 bytes .../functional/zstream/lelp-old.dump.bz2 | Bin 0 -> 1097 bytes ...endian-all-drr-types-base-NATIVE.zsend.bz2 | Bin 0 -> 7491 bytes ...le-endian-all-drr-types-base-XDR.zsend.bz2 | Bin 0 -> 6979 bytes ...endian-all-drr-types-incr-NATIVE.zsend.bz2 | Bin 0 -> 43463 bytes ...le-endian-all-drr-types-incr-XDR.zsend.bz2 | Bin 0 -> 40759 bytes .../little-endian-long-payloads.zsend.bz2 | Bin 0 -> 46633 bytes .../tests/functional/zstream/setup.ksh | 37 ++++++ .../tests/functional/zstream/zstream.cfg | 33 +++++ .../tests/functional/zstream/zstream.kshlib | 90 +++++++++++++ .../zstream/zstream_checksum_001_pos.ksh | 66 ++++++++++ .../zstream/zstream_decompress_001_pos.ksh | 98 +++++++++++++++ .../zstream/zstream_decompress_002_pos.ksh | 57 +++++++++ .../zstream/zstream_decompress_003_neg.ksh | 59 +++++++++ .../zstream/zstream_decompress_004_pos.ksh | 55 ++++++++ .../zstream/zstream_decompress_005_pos.ksh | 119 ++++++++++++++++++ .../zstream/zstream_decompress_006_neg.ksh | 61 +++++++++ .../zstream_drop_record_001_pos.ksh} | 9 +- .../zstream_dump_001_pos.ksh} | 13 +- .../zstream/zstream_dump_002_pos.ksh | 84 +++++++++++++ .../zstream/zstream_dump_003_pos.ksh | 96 ++++++++++++++ .../zstream/zstream_dump_004_neg.ksh | 88 +++++++++++++ .../zstream_recompress_001_pos.ksh} | 9 +- .../zstream/zstream_recompress_002_pos.ksh | 51 ++++++++ .../zstream/zstream_recompress_003_pos.ksh | 64 ++++++++++ .../zstream/zstream_recompress_004_pos.ksh | 61 +++++++++ .../zstream/zstream_recompress_005_pos.ksh | 62 +++++++++ .../zstream/zstream_redup_001_pos.ksh | 79 ++++++++++++ 66 files changed, 1744 insertions(+), 23 deletions(-) create mode 100755 cmd/zstream/scripts/add-xattrs.py create mode 100755 cmd/zstream/scripts/gen-lorem-files.py create mode 100755 cmd/zstream/scripts/make-all-records-streams.sh create mode 100755 cmd/zstream/scripts/make-decompression-streams.sh create mode 100755 cmd/zstream/scripts/make-dump-files.py create mode 100755 cmd/zstream/scripts/make-long-payloads.sh create mode 100755 cmd/zstream/scripts/make-venv.sh create mode 100644 tests/zfs-tests/tests/functional/zstream/beadtbn-new.dump.bz2 create mode 100644 tests/zfs-tests/tests/functional/zstream/beadtbn-old.dump.bz2 create mode 100644 tests/zfs-tests/tests/functional/zstream/beadtbx-new.dump.bz2 create mode 100644 tests/zfs-tests/tests/functional/zstream/beadtbx-old.dump.bz2 create mode 100644 tests/zfs-tests/tests/functional/zstream/beadtin-new.dump.bz2 create mode 100644 tests/zfs-tests/tests/functional/zstream/beadtin-old.dump.bz2 create mode 100644 tests/zfs-tests/tests/functional/zstream/beadtix-new.dump.bz2 create mode 100644 tests/zfs-tests/tests/functional/zstream/beadtix-old.dump.bz2 create mode 100644 tests/zfs-tests/tests/functional/zstream/belp-new.dump.bz2 create mode 100644 tests/zfs-tests/tests/functional/zstream/belp-old.dump.bz2 create mode 100644 tests/zfs-tests/tests/functional/zstream/big-endian-all-drr-types-base-NATIVE.zsend.bz2 create mode 100644 tests/zfs-tests/tests/functional/zstream/big-endian-all-drr-types-base-XDR.zsend.bz2 create mode 100644 tests/zfs-tests/tests/functional/zstream/big-endian-all-drr-types-incr-NATIVE.zsend.bz2 create mode 100644 tests/zfs-tests/tests/functional/zstream/big-endian-all-drr-types-incr-XDR.zsend.bz2 create mode 100644 tests/zfs-tests/tests/functional/zstream/big-endian-long-payloads.zsend.bz2 create mode 100755 tests/zfs-tests/tests/functional/zstream/cleanup.ksh create mode 100644 tests/zfs-tests/tests/functional/zstream/d-new.dump.bz2 create mode 100644 tests/zfs-tests/tests/functional/zstream/dc-new.dump.bz2 create mode 100644 tests/zfs-tests/tests/functional/zstream/decompress-crypt.zsend.bz2 create mode 100644 tests/zfs-tests/tests/functional/zstream/decompress.zsend.bz2 create mode 100644 tests/zfs-tests/tests/functional/zstream/leadtbn-new.dump.bz2 create mode 100644 tests/zfs-tests/tests/functional/zstream/leadtbn-old.dump.bz2 create mode 100644 tests/zfs-tests/tests/functional/zstream/leadtbx-new.dump.bz2 create mode 100644 tests/zfs-tests/tests/functional/zstream/leadtbx-old.dump.bz2 create mode 100644 tests/zfs-tests/tests/functional/zstream/leadtin-new.dump.bz2 create mode 100644 tests/zfs-tests/tests/functional/zstream/leadtin-old.dump.bz2 create mode 100644 tests/zfs-tests/tests/functional/zstream/leadtix-new.dump.bz2 create mode 100644 tests/zfs-tests/tests/functional/zstream/leadtix-old.dump.bz2 create mode 100644 tests/zfs-tests/tests/functional/zstream/lelp-new.dump.bz2 create mode 100644 tests/zfs-tests/tests/functional/zstream/lelp-old.dump.bz2 create mode 100644 tests/zfs-tests/tests/functional/zstream/little-endian-all-drr-types-base-NATIVE.zsend.bz2 create mode 100644 tests/zfs-tests/tests/functional/zstream/little-endian-all-drr-types-base-XDR.zsend.bz2 create mode 100644 tests/zfs-tests/tests/functional/zstream/little-endian-all-drr-types-incr-NATIVE.zsend.bz2 create mode 100644 tests/zfs-tests/tests/functional/zstream/little-endian-all-drr-types-incr-XDR.zsend.bz2 create mode 100644 tests/zfs-tests/tests/functional/zstream/little-endian-long-payloads.zsend.bz2 create mode 100755 tests/zfs-tests/tests/functional/zstream/setup.ksh create mode 100644 tests/zfs-tests/tests/functional/zstream/zstream.cfg create mode 100644 tests/zfs-tests/tests/functional/zstream/zstream.kshlib create mode 100755 tests/zfs-tests/tests/functional/zstream/zstream_checksum_001_pos.ksh create mode 100755 tests/zfs-tests/tests/functional/zstream/zstream_decompress_001_pos.ksh create mode 100755 tests/zfs-tests/tests/functional/zstream/zstream_decompress_002_pos.ksh create mode 100755 tests/zfs-tests/tests/functional/zstream/zstream_decompress_003_neg.ksh create mode 100755 tests/zfs-tests/tests/functional/zstream/zstream_decompress_004_pos.ksh create mode 100755 tests/zfs-tests/tests/functional/zstream/zstream_decompress_005_pos.ksh create mode 100755 tests/zfs-tests/tests/functional/zstream/zstream_decompress_006_neg.ksh rename tests/zfs-tests/tests/functional/{rsend/send-zstream_drop_record.ksh => zstream/zstream_drop_record_001_pos.ksh} (93%) rename tests/zfs-tests/tests/functional/{rsend/send-c_zstreamdump.ksh => zstream/zstream_dump_001_pos.ksh} (90%) create mode 100755 tests/zfs-tests/tests/functional/zstream/zstream_dump_002_pos.ksh create mode 100755 tests/zfs-tests/tests/functional/zstream/zstream_dump_003_pos.ksh create mode 100755 tests/zfs-tests/tests/functional/zstream/zstream_dump_004_neg.ksh rename tests/zfs-tests/tests/functional/{rsend/send-c_zstream_recompress.ksh => zstream/zstream_recompress_001_pos.ksh} (91%) create mode 100755 tests/zfs-tests/tests/functional/zstream/zstream_recompress_002_pos.ksh create mode 100755 tests/zfs-tests/tests/functional/zstream/zstream_recompress_003_pos.ksh create mode 100755 tests/zfs-tests/tests/functional/zstream/zstream_recompress_004_pos.ksh create mode 100755 tests/zfs-tests/tests/functional/zstream/zstream_recompress_005_pos.ksh create mode 100755 tests/zfs-tests/tests/functional/zstream/zstream_redup_001_pos.ksh diff --git a/cmd/zstream/scripts/add-xattrs.py b/cmd/zstream/scripts/add-xattrs.py new file mode 100755 index 000000000000..12b2483a364e --- /dev/null +++ b/cmd/zstream/scripts/add-xattrs.py @@ -0,0 +1,91 @@ +#!/tmp/zstream-venv/bin/python3 +"""Add random extended attributes to files until 600 bytes of xattrs are added.""" + +import argparse +import os +import random +import sys +from lorem_text import lorem + +ADJECTIVES = [ + "boogie", "funky", "wobbly", "snazzy", "jazzy", "groovy", "zippy", + "bouncy", "fluffy", "crunchy", "sparkly", "fuzzy", "spiffy", "dandy", + "peppy", "snappy", "sassy", "zesty", "swanky", "nifty", "plucky", + "quirky", "wacky", "goofy", "dizzy", "breezy", "cheery", "perky", + "frisky", "chirpy", "feisty", "jolly", "lively", "merry", "spunky", + "zippy", "vivid", "brisk", "sunny", "witty", "kinky", +] + +NOUNS = [ + "woogie", "monkey", "noodle", "pickle", "muffin", "waffle", "pebble", + "wobble", "doodle", "tangle", "giggle", "wiggle", "jiggle", "sparkle", + "crinkle", "twinkle", "frizzle", "drizzle", "sizzle", "fizzle", + "puddle", "bubble", "muddle", "huddle", "cuddle", "juggle", "muggle", + "snuggle", "tuggle", "buggle", "nugget", "widget", "gadget", "gibbet", + "trinket", "bracket", "racket", "jacket", "ticket", "cricket", "thicket", + "biscuit", "circuit", "summit", "muppet", "trumpet", "basket", "casket", +] + +TARGET_BYTES = 1024 + + +def random_attr_name(used: set) -> str: + for _ in range(1000): + name = f"user.{random.choice(ADJECTIVES)}-{random.choice(NOUNS)}" + if name not in used: + return name + base = f"user.{random.choice(ADJECTIVES)}-{random.choice(NOUNS)}" + i = 2 + while f"{base}-{i}" in used: + i += 1 + return f"{base}-{i}" + + +def random_value(length: int) -> bytes: + # Pull words from lorem sentences and trim/pad to exact length + text = "" + while len(text) < length: + text += lorem.sentence() + " " + return text[:length].encode() + + +def add_xattrs(path: str) -> int: + """Add xattrs to path until TARGET_BYTES total value bytes added. Returns bytes added.""" + used_names = set() + total = 0 + while total < TARGET_BYTES: + remaining = TARGET_BYTES - total + length = min(random.randint(40, 200), remaining) if remaining < 40 else random.randint(40, min(200, remaining)) + # If remaining < 40, just do one final attr to hit the target + if remaining < 40: + length = remaining + name = random_attr_name(used_names) + used_names.add(name) + value = random_value(length) + os.setxattr(path, name, value) + total += len(value) + return total + + +def main(): + parser = argparse.ArgumentParser( + description=f"Add random xattrs to files until {TARGET_BYTES} bytes of xattr values are added." + ) + parser.add_argument("files", nargs="+", help="Files to annotate with xattrs") + args = parser.parse_args() + + errors = 0 + for path in args.files: + try: + added = add_xattrs(path) + print(f" {path} ({added:,} bytes in xattrs)") + except OSError as e: + print(f" {path} error: {e}", file=sys.stderr) + errors += 1 + + if errors: + sys.exit(1) + + +if __name__ == "__main__": + main() diff --git a/cmd/zstream/scripts/gen-lorem-files.py b/cmd/zstream/scripts/gen-lorem-files.py new file mode 100755 index 000000000000..84ea1faf6386 --- /dev/null +++ b/cmd/zstream/scripts/gen-lorem-files.py @@ -0,0 +1,83 @@ +#!/tmp/zstream-venv/bin/python3 +"""Generate files with random names filled with lorem ipsum paragraphs.""" + +import argparse +import random +import sys +from pathlib import Path +from lorem_text import lorem + +ADJECTIVES = [ + "boogie", "funky", "wobbly", "snazzy", "jazzy", "groovy", "zippy", + "bouncy", "fluffy", "crunchy", "sparkly", "fuzzy", "spiffy", "dandy", + "peppy", "snappy", "sassy", "zesty", "swanky", "nifty", "plucky", + "quirky", "wacky", "goofy", "dizzy", "breezy", "cheery", "perky", + "frisky", "chirpy", "feisty", "jolly", "lively", "merry", "spunky", + "frisky", "zippy", "vivid", "brisk", "sunny", "witty", "kinky", +] + +NOUNS = [ + "woogie", "monkey", "noodle", "pickle", "muffin", "waffle", "pebble", + "wobble", "doodle", "tangle", "giggle", "wiggle", "jiggle", "sparkle", + "crinkle", "twinkle", "frizzle", "drizzle", "sizzle", "fizzle", + "puddle", "bubble", "muddle", "huddle", "cuddle", "juggle", "muggle", + "snuggle", "tuggle", "buggle", "nugget", "widget", "gadget", "gibbet", + "trinket", "bracket", "racket", "jacket", "ticket", "cricket", "thicket", + "biscuit", "circuit", "summit", "muppet", "trumpet", "basket", "casket", +] + +def random_name(used: set) -> str: + for _ in range(1000): + name = f"{random.choice(ADJECTIVES)}-{random.choice(NOUNS)}" + if name not in used: + return name + # Fallback: append a number + base = f"{random.choice(ADJECTIVES)}-{random.choice(NOUNS)}" + i = 2 + while f"{base}-{i}" in used: + i += 1 + return f"{base}-{i}" + + +def fill_file(path: Path, target_size: int, repeat=False) -> None: + content_parts = [] + total = 0 + para = lorem.paragraph() + while total < target_size: + content_parts.append(para) + total += len(para) + 1 # +1 for newline + if not repeat: + para = lorem.paragraph() + path.write_text("\n\n".join(content_parts) + "\n") + + +def main(): + parser = argparse.ArgumentParser( + description="Generate files with random names and lorem ipsum content." + ) + parser.add_argument("count", type=int, help="Number of files to create") + parser.add_argument("-d", "--directory", default=".", help="Target directory (default: .)") + parser.add_argument("-r", "--repeat", action="store_true", help="Fill files with reps of a single paragraph") + parser.add_argument("--min-size", type=int, default=16384, help="Minimum file size in bytes (default: 2048)") + parser.add_argument("--max-size", type=int, default=128000, help="Maximum file size in bytes (default: 128000)") + args = parser.parse_args() + + if args.min_size >= args.max_size: + print(f"error: min-size ({args.min_size}) must be less than max-size ({args.max_size})", file=sys.stderr) + sys.exit(1) + + directory = Path(args.directory) + directory.mkdir(parents=True, exist_ok=True) + + used_names = set() + for i in range(args.count): + name = random_name(used_names) + used_names.add(name) + target_size = random.randint(args.min_size, args.max_size) + path = directory / name + fill_file(path, target_size, args.repeat) + print(f" {path} ({path.stat().st_size:,} bytes)") + + +if __name__ == "__main__": + main() diff --git a/cmd/zstream/scripts/make-all-records-streams.sh b/cmd/zstream/scripts/make-all-records-streams.sh new file mode 100755 index 000000000000..e518625beea0 --- /dev/null +++ b/cmd/zstream/scripts/make-all-records-streams.sh @@ -0,0 +1,45 @@ +#!/bin/sh + +if [ $# -ne 1 ]; then + echo "Usage: $0 " >&2 + exit 1 +fi + +DEVICE="$1" +SCRIPTDIR="$(cd "$(dirname "$0")" && pwd)" + +zpool create -o ashift=12 test "$DEVICE" +zfs set compression=on xattr=sa test +zfs create test/source + +"$SCRIPTDIR/gen-lorem-files.py" -r -d /test/source --min-size 2048 \ + --max-size 32000 3 +"$SCRIPTDIR/add-xattrs.py" /test/source/* +echo "very small" > /test/source/small +echo "password" > /test/source/to-be-redacted +chmod 400 /test/source/to-be-redacted + +zfs snapshot -r test/source@baseline +zfs clone test/source@baseline test/redacted +rm /test/redacted/to-be-redacted +"$SCRIPTDIR/gen-lorem-files.py" -r -d /test/redacted --min-size 4096 \ + --max-size 32000 3 +"$SCRIPTDIR/add-xattrs.py" /test/redacted/* +cd /test/redacted +tar cf /tmp/dups.tar . +mkdir copies +cd copies +tar xvf /tmp/dups.tar + +echo "password" > /test/redacted/new-key +zfs create -o encryption=on -o keylocation=file:///test/redacted/new-key \ + -o keyformat=passphrase test/redacted/encrypted +"$SCRIPTDIR/gen-lorem-files.py" -r -d /test/redacted/encrypted 3 +echo "very small" > /test/redacted/encrypted/small-encrypted +# "$SCRIPTDIR/add-xattrs.py" /test/redacted/encrypted/* + +zfs snapshot -r test/redacted@clean + +zfs redact test/source@baseline redaction-bookmark test/redacted@clean +zfs send -ce --redact redaction-bookmark test/source@baseline > /tmp/all-record-types-base.zsend +zfs send -Rcew -i test/source@baseline test/redacted@clean > /tmp/all-record-types-incr.zsend diff --git a/cmd/zstream/scripts/make-decompression-streams.sh b/cmd/zstream/scripts/make-decompression-streams.sh new file mode 100755 index 000000000000..2eba3c52889c --- /dev/null +++ b/cmd/zstream/scripts/make-decompression-streams.sh @@ -0,0 +1,26 @@ +#!/bin/sh + +if [ $# -ne 1 ]; then + echo "Usage: $0 " >&2 + exit 1 +fi + +DEVICE="$1" +SCRIPTDIR="$(cd "$(dirname "$0")" && pwd)" + +zpool create -o ashift=12 test "$DEVICE" +echo "password" > /test/password + +zfs create -o compression=zstd-5 test/unencrypted +"$SCRIPTDIR/gen-lorem-files.py" -r -d /test/unencrypted --min-size 12000 \ + --max-size 40000 2 +"$SCRIPTDIR/gen-lorem-files.py" -r -d /test/unencrypted --min-size 140000 \ + --max-size 160000 1 + +zfs create -o compression=lz4 -o encryption=on -o keylocation=file:///test/password -o keyformat=passphrase test/encrypted +"$SCRIPTDIR/gen-lorem-files.py" -r -d /test/encrypted --min-size 12000 \ + --max-size 40000 3 + +zfs snapshot -r test@decompression +zfs send -cw test/unencrypted@decompression > /tmp/decompression.zsend +zfs send -cw test/encrypted@decompression > /tmp/decompression-crypt.zsend diff --git a/cmd/zstream/scripts/make-dump-files.py b/cmd/zstream/scripts/make-dump-files.py new file mode 100755 index 000000000000..49fbef54bb3e --- /dev/null +++ b/cmd/zstream/scripts/make-dump-files.py @@ -0,0 +1,77 @@ +#!/usr/bin/env python3 +"""Run old and new zstream dump -v on stream files, producing abbreviated dump outputs.""" +import argparse +import subprocess +import sys +from pathlib import Path + +def abbreviate(filename: str) -> str: + """Split filename at dashes, take the first letter of each segment, lowercased.""" + stem = Path(filename).stem + # Strip common compression suffixes to get the logical stem + for ext in (".zfs", ".gz", ".bz2", ".xz", ".zst", ".lz4"): + if stem.endswith(ext): + stem = stem[: -len(ext)] + return "".join(seg[0] for seg in stem.split("-") if seg).lower() + +def run_dump(zstream: Path, stream: Path, output: Path) -> bool: + """Run `zstream dump -v < stream > output`. Returns True on success.""" + try: + with open(stream, "rb") as inf, open(output, "w") as outf: + proc = subprocess.run( + [str(zstream), "dump", "-v"], + stdin=inf, + stdout=outf, + stderr=outf, + ) + if proc.returncode != 0: + print( + f" WARNING: {zstream} exited {proc.returncode} for {stream.name}", + file=sys.stderr, + ) + if proc.stderr: + print(f" stderr: {proc.stderr.decode(errors='replace').rstrip()}", + file=sys.stderr) + return True + except Exception as e: + print(f" ERROR: {e}", file=sys.stderr) + return False + + +def main(): + parser = argparse.ArgumentParser( + description="Run old and new zstream dump -v on stream files." + ) + parser.add_argument("old_zstream", type=Path, help="Path to old zstream binary") + parser.add_argument("new_zstream", type=Path, help="Path to new zstream binary") + parser.add_argument( + "streams", nargs="+", type=Path, help="Compressed stream files to process" + ) + args = parser.parse_args() + + for zs in (args.old_zstream, args.new_zstream): + if not zs.is_file(): + parser.error(f"zstream binary not found: {zs}") + + for stream in args.streams: + if not stream.is_file(): + print(f"Skipping missing file: {stream}", file=sys.stderr) + continue + + abbrev = abbreviate(stream.name) + out_dir = stream.parent + + old_out = out_dir / f"{abbrev}-old.dump" + new_out = out_dir / f"{abbrev}-new.dump" + + print(f"{stream.name} -> {abbrev}") + + print(f" old: {old_out}") + run_dump(args.old_zstream, stream, old_out) + + print(f" new: {new_out}") + run_dump(args.new_zstream, stream, new_out) + + +if __name__ == "__main__": + main() diff --git a/cmd/zstream/scripts/make-long-payloads.sh b/cmd/zstream/scripts/make-long-payloads.sh new file mode 100755 index 000000000000..2a5251111601 --- /dev/null +++ b/cmd/zstream/scripts/make-long-payloads.sh @@ -0,0 +1,26 @@ +#!/bin/sh + +if [ $# -ne 1 ]; then + echo "Usage: $0 " >&2 + exit 1 +fi + +DEVICE="$1" +SCRIPTDIR="$(cd "$(dirname "$0")" && pwd)" + +zpool create -o ashift=12 test "$DEVICE" + +zfs set compression=off recordsize=16MiB test + +# We are testing 8MB blocks, so write one short file, 8.5MB +# file, and one 24.5MB file. + +"$SCRIPTDIR/gen-lorem-files.py" -d /test -r --min-size 20000 \ + --max-size 24000 1 +"$SCRIPTDIR/gen-lorem-files.py" -d /test -r --min-size 8500000 \ + --max-size 8510000 1 +"$SCRIPTDIR/gen-lorem-files.py" -d /test -r --min-size 24500000 \ + --max-size 24510000 1 + +zfs snapshot test@long-payloads +zfs send -L test@long-payloads > /tmp/long-payloads.zsend diff --git a/cmd/zstream/scripts/make-venv.sh b/cmd/zstream/scripts/make-venv.sh new file mode 100755 index 000000000000..ced816dcb3d8 --- /dev/null +++ b/cmd/zstream/scripts/make-venv.sh @@ -0,0 +1,5 @@ +#!/bin/sh + +python3 -m venv /tmp/zstream-venv +. /tmp/zstream-venv/bin/activate +pip install lorem_text diff --git a/tests/runfiles/common.run b/tests/runfiles/common.run index 14e4bd79f853..9435b366d32e 100644 --- a/tests/runfiles/common.run +++ b/tests/runfiles/common.run @@ -1003,7 +1003,7 @@ tests = ['recv_dedup', 'recv_dedup_encrypted_zvol', 'rsend_001_pos', 'rsend_030_pos', 'rsend_031_pos', 'rsend-exclude_001_pos', 'rsend-exclude_002_pos', 'send-c_verify_ratio', 'send-c_verify_contents', 'send-c_props', 'send-c_incremental', - 'send-c_volume', 'send-c_zstream_recompress', 'send-c_zstreamdump', + 'send-c_volume', 'send-c_lz4_disabled', 'send-c_recv_lz4_disabled', 'send-c_mixed_compression', 'send-c_stream_size_estimate', 'send-c_embedded_blocks', 'send-c_resume', 'send-cpL_varied_recsize', @@ -1012,7 +1012,7 @@ tests = ['recv_dedup', 'recv_dedup_encrypted_zvol', 'rsend_001_pos', 'send_encrypted_props', 'send_encrypted_truncated_files', 'send_freeobjects', 'send_realloc_files', 'send_realloc_encrypted_files', 'send_spill_block', 'send_holds', 'send_hole_birth', 'send_mixed_raw', - 'send-wR_encrypted_zvol', 'send-zstream_drop_record', + 'send-wR_encrypted_zvol', 'send_partial_dataset', 'send_invalid', 'send_large_blocks_incremental', 'send_large_blocks_initial', 'send_large_microzap_incremental', 'send_large_microzap_transitive', @@ -1131,6 +1131,20 @@ tests = ['zoned_uid_001_pos', 'zoned_uid_002_pos', 'zoned_uid_003_pos', 'zoned_uid_029_neg', 'zoned_uid_031_pos'] tags = ['functional', 'zoned_uid'] +[tests/functional/zstream] +tests = ['zstream_checksum_001_pos', + 'zstream_decompress_001_pos', 'zstream_decompress_002_pos', + 'zstream_decompress_003_neg', 'zstream_decompress_004_pos', + 'zstream_decompress_005_pos', 'zstream_decompress_006_neg', + 'zstream_drop_record_001_pos', + 'zstream_dump_001_pos', 'zstream_dump_002_pos', + 'zstream_dump_003_pos', 'zstream_dump_004_neg', + 'zstream_recompress_001_pos', 'zstream_recompress_002_pos', + 'zstream_recompress_003_pos', 'zstream_recompress_004_pos', + 'zstream_recompress_005_pos', + 'zstream_redup_001_pos'] +tags = ['functional', 'zstream'] + [tests/functional/zvol/zvol_ENOSPC] tests = ['zvol_ENOSPC_001_pos'] tags = ['functional', 'zvol', 'zvol_ENOSPC'] diff --git a/tests/runfiles/sanity.run b/tests/runfiles/sanity.run index 936f2bcc32be..2f42fcb4b638 100644 --- a/tests/runfiles/sanity.run +++ b/tests/runfiles/sanity.run @@ -561,7 +561,7 @@ tests = ['recv_dedup', 'recv_dedup_encrypted_zvol', 'rsend_001_pos', 'rsend_006_pos', 'rsend_009_pos', 'rsend_010_pos', 'rsend_011_pos', 'rsend_014_pos', 'rsend_016_neg', 'rsend-exclude_001_pos', 'rsend-exclude_002_pos', 'send-c_verify_contents', - 'send-c_volume', 'send-c_zstreamdump', 'send-c_recv_dedup', + 'send-c_volume', 'send-c_recv_dedup', 'send-L_toggle', 'send_encrypted_hierarchy', 'send_encrypted_props', 'send_encrypted_freeobjects', 'send_encrypted_truncated_files', 'send_freeobjects', 'send_holds', @@ -629,6 +629,11 @@ tests = ['xattr_001_pos', 'xattr_002_neg', 'xattr_003_neg', 'xattr_004_pos', 'xattr_011_pos', 'xattr_013_pos', 'xattr_014_pos', 'xattr_compat'] tags = ['functional', 'xattr'] +[tests/functional/zstream] +tests = ['zstream_dump_001_pos', 'zstream_dump_002_pos', + 'zstream_redup_001_pos'] +tags = ['functional', 'zstream'] + [tests/functional/zvol/zvol_ENOSPC] tests = ['zvol_ENOSPC_001_pos'] tags = ['functional', 'zvol', 'zvol_ENOSPC'] diff --git a/tests/zfs-tests/tests/Makefile.am b/tests/zfs-tests/tests/Makefile.am index 28acc6f3af12..d416a444a90d 100644 --- a/tests/zfs-tests/tests/Makefile.am +++ b/tests/zfs-tests/tests/Makefile.am @@ -401,6 +401,42 @@ nobase_dist_datadir_zfs_tests_tests_DATA += \ functional/zvol/zvol_ENOSPC/zvol_ENOSPC.cfg \ functional/zvol/zvol_misc/zvol_misc_common.kshlib \ functional/zvol/zvol_swap/zvol_swap.cfg \ + functional/zstream/zstream.cfg \ + functional/zstream/zstream.kshlib \ + functional/zstream/big-endian-all-drr-types-base-NATIVE.zsend.bz2 \ + functional/zstream/big-endian-all-drr-types-base-XDR.zsend.bz2 \ + functional/zstream/big-endian-all-drr-types-incr-NATIVE.zsend.bz2 \ + functional/zstream/big-endian-all-drr-types-incr-XDR.zsend.bz2 \ + functional/zstream/little-endian-all-drr-types-base-NATIVE.zsend.bz2 \ + functional/zstream/little-endian-all-drr-types-base-XDR.zsend.bz2 \ + functional/zstream/little-endian-all-drr-types-incr-NATIVE.zsend.bz2 \ + functional/zstream/little-endian-all-drr-types-incr-XDR.zsend.bz2 \ + functional/zstream/decompress.zsend.bz2 \ + functional/zstream/decompress-crypt.zsend.bz2 \ + functional/zstream/big-endian-long-payloads.zsend.bz2 \ + functional/zstream/little-endian-long-payloads.zsend.bz2 \ + functional/zstream/beadtbn-new.dump.bz2 \ + functional/zstream/beadtbn-old.dump.bz2 \ + functional/zstream/beadtbx-new.dump.bz2 \ + functional/zstream/beadtbx-old.dump.bz2 \ + functional/zstream/beadtin-new.dump.bz2 \ + functional/zstream/beadtin-old.dump.bz2 \ + functional/zstream/beadtix-new.dump.bz2 \ + functional/zstream/beadtix-old.dump.bz2 \ + functional/zstream/belp-new.dump.bz2 \ + functional/zstream/belp-old.dump.bz2 \ + functional/zstream/d-new.dump.bz2 \ + functional/zstream/dc-new.dump.bz2 \ + functional/zstream/leadtbn-new.dump.bz2 \ + functional/zstream/leadtbn-old.dump.bz2 \ + functional/zstream/leadtbx-new.dump.bz2 \ + functional/zstream/leadtbx-old.dump.bz2 \ + functional/zstream/leadtin-new.dump.bz2 \ + functional/zstream/leadtin-old.dump.bz2 \ + functional/zstream/leadtix-new.dump.bz2 \ + functional/zstream/leadtix-old.dump.bz2 \ + functional/zstream/lelp-new.dump.bz2 \ + functional/zstream/lelp-old.dump.bz2 \ functional/idmap_mount/idmap_mount.cfg \ functional/idmap_mount/idmap_mount_common.kshlib @@ -2091,8 +2127,6 @@ nobase_dist_datadir_zfs_tests_tests_SCRIPTS += \ functional/rsend/send-c_verify_contents.ksh \ functional/rsend/send-c_verify_ratio.ksh \ functional/rsend/send-c_volume.ksh \ - functional/rsend/send-c_zstream_recompress.ksh \ - functional/rsend/send-c_zstreamdump.ksh \ functional/rsend/send-cpL_varied_recsize.ksh \ functional/rsend/send_doall.ksh \ functional/rsend/send_encrypted_incremental.ksh \ @@ -2121,7 +2155,6 @@ nobase_dist_datadir_zfs_tests_tests_SCRIPTS += \ functional/rsend/send_realloc_files.ksh \ functional/rsend/send_spill_block.ksh \ functional/rsend/send-wR_encrypted_zvol.ksh \ - functional/rsend/send-zstream_drop_record.ksh \ functional/rsend/setup.ksh \ functional/scrub_mirror/cleanup.ksh \ functional/scrub_mirror/scrub_mirror_001_pos.ksh \ @@ -2330,6 +2363,26 @@ nobase_dist_datadir_zfs_tests_tests_SCRIPTS += \ functional/zpool_influxdb/cleanup.ksh \ functional/zpool_influxdb/setup.ksh \ functional/zpool_influxdb/zpool_influxdb.ksh \ + functional/zstream/setup.ksh \ + functional/zstream/cleanup.ksh \ + functional/zstream/zstream_checksum_001_pos.ksh \ + functional/zstream/zstream_decompress_001_pos.ksh \ + functional/zstream/zstream_decompress_002_pos.ksh \ + functional/zstream/zstream_decompress_003_neg.ksh \ + functional/zstream/zstream_decompress_004_pos.ksh \ + functional/zstream/zstream_decompress_005_pos.ksh \ + functional/zstream/zstream_decompress_006_neg.ksh \ + functional/zstream/zstream_drop_record_001_pos.ksh \ + functional/zstream/zstream_dump_001_pos.ksh \ + functional/zstream/zstream_dump_002_pos.ksh \ + functional/zstream/zstream_dump_003_pos.ksh \ + functional/zstream/zstream_dump_004_neg.ksh \ + functional/zstream/zstream_recompress_001_pos.ksh \ + functional/zstream/zstream_recompress_002_pos.ksh \ + functional/zstream/zstream_recompress_003_pos.ksh \ + functional/zstream/zstream_recompress_004_pos.ksh \ + functional/zstream/zstream_recompress_005_pos.ksh \ + functional/zstream/zstream_redup_001_pos.ksh \ functional/zvol/zvol_cli/cleanup.ksh \ functional/zvol/zvol_cli/setup.ksh \ functional/zvol/zvol_cli/zvol_cli_001_pos.ksh \ diff --git a/tests/zfs-tests/tests/functional/zstream/beadtbn-new.dump.bz2 b/tests/zfs-tests/tests/functional/zstream/beadtbn-new.dump.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..947d615c74628e3b2e8053a147372104dabfa0be GIT binary patch literal 1286 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 literal 0 HcmV?d00001 diff --git a/tests/zfs-tests/tests/functional/zstream/beadtin-new.dump.bz2 b/tests/zfs-tests/tests/functional/zstream/beadtin-new.dump.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..22b4ed986a1859d8cb32e0792702b71bb87dc5b7 GIT binary patch literal 3230 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 Qf}i-ik}1N3gPFQ+fC|FitN;K2 literal 0 HcmV?d00001 diff --git a/tests/zfs-tests/tests/functional/zstream/beadtin-old.dump.bz2 b/tests/zfs-tests/tests/functional/zstream/beadtin-old.dump.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..e467af8ce1bcc34ddc373a155e30343fe2a8a15b GIT binary patch literal 3178 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 Qf}aK4kxmpOC;1EFfSxSRRR910 literal 0 HcmV?d00001 diff --git a/tests/zfs-tests/tests/functional/zstream/beadtix-new.dump.bz2 b/tests/zfs-tests/tests/functional/zstream/beadtix-new.dump.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..456d6da63547636076548324f72b534292cd55e0 GIT binary patch literal 3221 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 Hxf*ofAF0Pn literal 0 HcmV?d00001 diff --git a/tests/zfs-tests/tests/functional/zstream/beadtix-old.dump.bz2 b/tests/zfs-tests/tests/functional/zstream/beadtix-old.dump.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..8a677e3d030be983fd0583ec809c2cf7d7ef9db1 GIT binary patch literal 3180 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 S1PY+1{x0N-aG@biIYS&Zh_s~u literal 0 HcmV?d00001 diff --git a/tests/zfs-tests/tests/functional/zstream/belp-new.dump.bz2 b/tests/zfs-tests/tests/functional/zstream/belp-new.dump.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..49a98d9c62af574646e53fa1f3a5aad0acfc4baa GIT binary patch literal 1112 zcmV-e1gHB#T4*^jL0KkKS^lz*sQ?6|e}Diq1Oz~0|MGvg-k`t#-|$ccd*0fsu8xjv z+GGJL5`;rhsre&QBSDa0BOnHvX`>)HrX~V3z>FgR000vRz)7kFPbBqCs6SNEpbt@| zfMObG009)HOs0)bO*JtFkZ27CgAt&_(U3%vXwXTLVL)U7pwMCl$p9D=T%Csw*+Svc0YAmEZ5pv>Ai~q=oya&SLoYL;*h}Irx6)b*EBDSW;+rAu$L- z6q1nGr+S*yt&+n5GC$U++j_EnYkSynS`|tq6EI{ch1<|xWikwZ6^W*5mbQ6CG-Gst z<*ln`!2TpU(@`1NIB895O=-JzxJ;D01vxKz>3uY0*3gDwt8KDw84tKr7r@hjMT!n1R*OIc5={eqaIf3UF;S*^(Sr2a>(|m~#x&abI-`<2+ zC=-MnEkG`W0!RiFXTDl;5O&^>&0|p3>9eWF+JzXwN@A#}2asMxdLkEML5m>BrdKO% z@ZU01cPm*fVw-1?ks67SgF%&JXcu0}=dOC06#u1AS8heF%LXZjEtDnD&BHW73vRZI zxU&rd3tUzCV{TgRagbG{Aum)>Sx%do;)961ZN}Q*pv+yc6VJsY3tcwf$zwfwty0C> zDlmb)FF1xqeEDAu0ghw~R)f{I8?WRv)I-Lqu=sJ+9AK_{9`18tJz$Zc((8Ug6co2Xd`(aP- zO*P3&?cV7na5)17B0gv!c3@0QRNt>t@T@7Coe<)V5b>@7?EvvoKw<=9kbCF~D_%zU zDr&GB5$q5+RINKu+#qeTyOe=Qstu@pv=OM=B0A%*Umc@pmLsg$WPqDEg3pT<#G7 literal 0 HcmV?d00001 diff --git a/tests/zfs-tests/tests/functional/zstream/belp-old.dump.bz2 b/tests/zfs-tests/tests/functional/zstream/belp-old.dump.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..83a20115a8428daa02210a7ab72600cdbe4496b9 GIT binary patch literal 1101 zcmV-T1hV@=T4*^jL0KkKSwRELF#rUXe}Diq1Oz~0|MGvg-k`t#-|$ccTi(W9uoO;0 zh^QKr@=sGEAk%3w8USF80j3COVCI;Z2-5;Ei~s-tOd|mzAv6<6(^EhLO&SdV4Kg$U zMJcsRpv3hwWB_OYXaE4v1WF(iMu|N%CX)dM(lH)Uli4UXhLShk2KIY3+qc`h@oHV& zny_uLwymC1*}|mf!sf7M2n8g!o~6?ZaOnU9?n6%h1UEg&L19Tl2_As&?2Wvn~;vR)DyA;BdC2P-d zSy(=mB9C0p+;>7kMn*&G90v&on4B?=aT`1Q7f7nL;?PNw4}ShV3~T`k;!R++ z13F0<80~5y0|~BDl&ukQcpw}y5JQ0c!Sex>n`(zF`5LSwLev5>Ca%Sl6a^XutxyIn z07?MX%A7?`@Xhsv7D=dPHAYJlPf`dkauP2PLj!P@!a3RsriLbyVr?RoBP{N#VZy4U z$|gutY7`oViWe{wi85hSxT9`1#GwoNLGrXSYqtfj2Kgrnl(|iX90Ah zNUqD}vmDJR5iN{$h#-nS49i{vMwXdrmNy_QC6&SRX$WC8Mp^EX*y}Lls)8D04B zB08{00UlqW&-dsOe1cr9zFVM!$lGIVY;Cczr_d!&pGYB>$=EO)iAzonpRs_qi`n0$ z{Ay6i45%Nk?4iGqyHMk?4Z)6Fgv?kRQO?CJZ{0Q!4-`F$e-cPS5Qv5tj=?zl6pkOT zVh!oB6B;=b?NZFxJJ7KY!E5U1$x2=UJ5bI-)Hub&gbHQ36#x5f-&HfWUuj%H<^~Ey zKL{XsFcS%dCau_?8epZ$Z9_U4p~jhsyaS4o0}vw=gTjDNraH}77n`UJ6yzXuseRrE zb%-1(e_9YyUV~~M&Z2HORG&HX-{rJFpxZ&rRFY73P}j1xArhr^DWI*E=IH~u4)A<@ zP@PC)dKW288mUnO*aC1-$QXvu8<9G05WQWq8YbNTsTCL^LbNKCXbnm?#kHV;g@hU@OgIHI0i@caaZ8GHqbOL7|C|Vpc%-RyOh{cq{GlpS zK8jn6QoL0uqTo$bEkY?{DrAHzK8i_%rAncaoD|6iVihUGgD?f*2tu_?EXoz4N){n` zO#-A?5s)DQKw#sw9%M1vu6-9g=7>`SETUefk#2}oBDfR>sq#e~>T5$Rkn^z#1-TLG TLj*4nKH~03rwS4XAbEx$F#*jd literal 0 HcmV?d00001 diff --git a/tests/zfs-tests/tests/functional/zstream/big-endian-all-drr-types-base-NATIVE.zsend.bz2 b/tests/zfs-tests/tests/functional/zstream/big-endian-all-drr-types-base-NATIVE.zsend.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..5ebe9e40c1cd296bf846b8fd22e51162ef7f63da GIT binary patch literal 7382 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 Aq5uE@ literal 0 HcmV?d00001 diff --git a/tests/zfs-tests/tests/functional/zstream/big-endian-all-drr-types-base-XDR.zsend.bz2 b/tests/zfs-tests/tests/functional/zstream/big-endian-all-drr-types-base-XDR.zsend.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..a9c6c04453461cafec5bede3ec5c5d84a0fe4148 GIT binary patch literal 7466 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 I!_4XaAA}|(OaK4? literal 0 HcmV?d00001 diff --git a/tests/zfs-tests/tests/functional/zstream/big-endian-all-drr-types-incr-NATIVE.zsend.bz2 b/tests/zfs-tests/tests/functional/zstream/big-endian-all-drr-types-incr-NATIVE.zsend.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..385aecd46aa2eeb4f9f07e716adf430498e89034 GIT binary patch literal 40989 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 e06_o|fq;@M&Iz2y literal 0 HcmV?d00001 diff --git a/tests/zfs-tests/tests/functional/zstream/big-endian-all-drr-types-incr-XDR.zsend.bz2 b/tests/zfs-tests/tests/functional/zstream/big-endian-all-drr-types-incr-XDR.zsend.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..162dde833c91ff19dd39db4b70579358353f30be GIT binary patch literal 41155 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 Ht9|?bBPp)4 literal 0 HcmV?d00001 diff --git a/tests/zfs-tests/tests/functional/zstream/cleanup.ksh b/tests/zfs-tests/tests/functional/zstream/cleanup.ksh new file mode 100755 index 000000000000..e63e0553cec3 --- /dev/null +++ b/tests/zfs-tests/tests/functional/zstream/cleanup.ksh @@ -0,0 +1,39 @@ +#!/bin/ksh -p +# SPDX-License-Identifier: CDDL-1.0 +# +# CDDL HEADER START +# +# The contents of this file are subject to the terms of the +# Common Development and Distribution License (the "License"). +# You may not use this file except in compliance with the License. +# +# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE +# or https://opensource.org/licenses/CDDL-1.0. +# See the License for the specific language governing permissions +# and limitations under the License. +# +# When distributing Covered Code, include this CDDL HEADER in each +# file and include the License file at usr/src/OPENSOLARIS.LICENSE. +# If applicable, add the following below this CDDL HEADER, with the +# fields enclosed by brackets "[]" replaced with your own identifying +# information: Portions Copyright [yyyy] [name of copyright owner] +# +# CDDL HEADER END +# + +# +# Copyright (c) 2026 by ConnectWise. All rights reserved. +# + +. $STF_SUITE/tests/functional/zstream/zstream.kshlib + +verify_runnable "both" + +if is_global_zone ; then + destroy_pool $POOL +else + cleanup_pool $POOL +fi +log_must rm -rf $BACKDIR + +log_pass diff --git a/tests/zfs-tests/tests/functional/zstream/d-new.dump.bz2 b/tests/zfs-tests/tests/functional/zstream/d-new.dump.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..a378b6c2aef9b26783aee1dbaee75e00f5d9cadc GIT binary patch literal 1130 zcmV-w1eN5s+Ym8jOP(Mt~bs zpfuCe4FCWD000dD1xXM=Pti3WsTxg!nl#X4(X})WQzIsg!6+AAQaah~=-BP*_}4Xe zymT<;^2uz`>u$+(Ip?;;m^QEiV=ZVeH>By}Ng)U5gKfLf@IBFVlwl9<7MLMuP_be0 z9N19rpEZPA_$0vHk&Kt(*o%qNa@3YVs8=T<8ZJRY_ib@ zzum8I3UpJhHJam2@%BODzlRyxHP-gEt;=%^Io>JdA9_xdc`I`8$KLG7!bJ&C+v*lc z4y**47ZS0Wc$mJfv<)h=n9FS-qOpC`&{mb%>}o_YeKF6>MYU1%r$# zu`B}{4HA%vjywyz1DZq*Tw6k9iAa_fvVmeQw*<`9Tq+h4)zKUMyt9o5P_bi>qg^8j zH*TwDw}(TH`GDQU__L=ryYYlTZ#3aZowrTdB?DYA)huy<>a1HblypwohcV#Lx4$Hb z4EsC(i1vIt9w3>R=42_+3Mtoc_6sM}HVhm`KBl}b{F zwH4XfU4GGCpY|S$TiK4}J+e8kk0w#BA~3HJToY3y;pWT-90}`wi6;Q z*$LMTaTJFnIxcZTK5e~lhRm4Y|W8Ta388l5!ExB5s94nn=kHCP-$7C~P7B zBI5{o;c2jGR4h4EHN(Y>sEnj2Z-p|2@`g4-eXCgDq@1r!464!;C5xZiYpvv!?2)S6)W(&Nsqv zg`wz7sufV*GQR{chQu|P;SGpk4Y1fa7g0q@QcPeBS=lAKibi%2Z|8N&soezO1z{C7 w&Nh*q7!;FiS{_O0*3u_9+YS5S^e{<-5TXDk(*)>~fFH%&kxmpOB25-CfaIPKf&c&j literal 0 HcmV?d00001 diff --git a/tests/zfs-tests/tests/functional/zstream/dc-new.dump.bz2 b/tests/zfs-tests/tests/functional/zstream/dc-new.dump.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..613ffbd3b3bc201ad62ff7ee062080cc32347f8f GIT binary patch literal 2175 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 B?xz3% literal 0 HcmV?d00001 diff --git a/tests/zfs-tests/tests/functional/zstream/decompress-crypt.zsend.bz2 b/tests/zfs-tests/tests/functional/zstream/decompress-crypt.zsend.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..de1931ff6bc77165470a4a9c87f6a78ec849b628 GIT binary patch literal 28946 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 literal 0 HcmV?d00001 diff --git a/tests/zfs-tests/tests/functional/zstream/decompress.zsend.bz2 b/tests/zfs-tests/tests/functional/zstream/decompress.zsend.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..7f2ef6141cdc8c2e2f17b05814203013156ff9a0 GIT binary patch literal 5970 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 literal 0 HcmV?d00001 diff --git a/tests/zfs-tests/tests/functional/zstream/leadtbx-old.dump.bz2 b/tests/zfs-tests/tests/functional/zstream/leadtbx-old.dump.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..48c4892c181ae4a4848195330dbf23b0bbd00c4b GIT binary patch literal 1221 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 literal 0 HcmV?d00001 diff --git a/tests/zfs-tests/tests/functional/zstream/leadtin-old.dump.bz2 b/tests/zfs-tests/tests/functional/zstream/leadtin-old.dump.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..fd9acbf8507c76a705de556b018ad5bc87f081ea GIT binary patch literal 3241 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 bN(5Y@hC$MXA_dB+|BJaIoG3^J^kMjbd!FvW literal 0 HcmV?d00001 diff --git a/tests/zfs-tests/tests/functional/zstream/leadtix-new.dump.bz2 b/tests/zfs-tests/tests/functional/zstream/leadtix-new.dump.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..b3de0d7bda00827a78f6a9c83826d55113870dfa GIT binary patch literal 3277 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 LoG3^@=MpD?=2+A# literal 0 HcmV?d00001 diff --git a/tests/zfs-tests/tests/functional/zstream/leadtix-old.dump.bz2 b/tests/zfs-tests/tests/functional/zstream/leadtix-old.dump.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..04d0c41b99787623bae476242f762aaddb7880af GIT binary patch literal 3241 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 bD1b~NA+UO(sDWwS5?Xbl=P8USb- z004?aXeX+lrkbP4s5BY|jWp2E4WtZ$B_@PwY?REWl=7JXXaE`qqfi3^aOok!p01wl z-oCHj8G9Wxt;i~hnY%LVS;($Wg`s3gdI3oxZpsw8`*PkO3Dk#chZH%JB(PYeQ2ZfL z2!v9_BSk+-Yhi4YA%L16?5sIwY4x@5kmA%?DJeAuLZV(?g6>X1_|~!vRY?sg*E_Nr zMq&s|TCCU~#D@gn5u68tso}Q^%gc@E5c_$G@C~<}<|*NGf0? zW12YMInx-Bbr2Ea!dlZImeYC+V8W}B5jJJTNtT<9tpMd0j7%am%?=c^4R)zS0tCm> zgrcfrQ2?R=ja=NNr*wv^XctKWEH(t>Kx(Zs)mEiET*yqWB$U)a7m@=4MjV$a^-xI3 zbd-Y0eQsNB_OmgWOjIh0n6Y7$%)vC86B}|ah7A~12Hi_bhH8IDGk&_2g6WvV*+x}F zm_f@xu%Uq|T1uixFcF-p6;T!wXE-ptr3m6d!9@b7CnX|SXT(4YKoXV#s`N4RRs?C4ikH zSH48WT9~>boR(I-m!bl6_&9x!ZypNIDjzsLX(5{hD0Imc5k*l%=xgaDzRrXoo7)@) zV`57~7|iO#yj#`h>dx*HBxh7BFpqp43LARG(M$4EK)W8bDl8`jYhsqSY>bFZAv+NC zNPCq;L{>3*$a8Z%@*W!H{e)93Ae@T&ROwQf!Sq7pKf?3#KN2vzqF)SvPLwnusSi-Q z(11T1VxPQr-&(1aG?{_Y3>1j>;DM^~E|cZ&wM!JzhBPyw*G%B`Yyj(0Kw<=9kb9H@ zg)~=A+~#9eRs&)^f(G?9^KnCg~(A!Yi6Xx4nPxfjv&Grh|v>$1TI%%7lIw4%}(1; z-i8Wg5T&YV2yL^yYXX!|g(`#;LWoMmW(<^a7dB!B)(~c-_UI{iGqW`tRJ9&eY(nI6 z{b-2l6tPOFxeB3`h**sEO&t8fl-(sZIxh4xLKLxyn4tv6$ta8BQzoVgY*PdrkfNSM z8o)6Sh+L`LYg8^osu!V(nnJ=bBOnlgATV&vT@=GLYsE)ttqER*l1r4=3rIp?70gf_ i&ZwiUOi;rFJZwTiZbWw}dKU;E@pmLsg$W4@uBniYs^mfd literal 0 HcmV?d00001 diff --git a/tests/zfs-tests/tests/functional/zstream/lelp-old.dump.bz2 b/tests/zfs-tests/tests/functional/zstream/lelp-old.dump.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..fce108ee3e0e26a346f96ec8ed53c579b22120a2 GIT binary patch literal 1097 zcmV-P1h)G^T4*^jL0KkKSq*@LKmY`he}Diq1Oz~0|MGvg-k`t#-|$ccTgV--8D-{G zR6uh~Oay6x7)Ag9045QD$u%_fG@B?-Bs9||gF_$zqa#fi2{j;^MvzRVgH0MeOn?Ar z41++5f|!#hspw1y02%;f000P-K{BVAA&EUhKmY(~p|n8I$qxNM?@zO4QZ!Tc zro}6CxWG*x_3Ss=)A+VAam}c*Qc`XVg+#=~1{=2zUiEOzRFKs>?S?~9nSv8Gt2PJM z1G;wz&g0{%d+px%cxT3GOfzKpvzu!=)Lra}zS7u*Ms0|gPi*|91UO)Mq&G9TYN%~* z9!oY!@klZf+;Q|Dnkb@z#TG165IWAnjyWD$c~x}s_H7}FowHOV2p+b0dMe0Xs^t+8 z`&7v@h9^cZEge74=@->olxq!%rmu1kO&4owUlI#>2d&60O@(I z(+7}F>`-M;WM#tCArJ+ox2m!%7cX8RSk3TY-BoQk?0oV4AePZ`PH$0*48=7DTvLj+j3`D z5D-eKK)3-36F4(b7#&ejI5Gw=Mw8euf>4DK0sz+OjGiP)feKouzJgiHP0tofOElk% zU<5rMq4oN|Vn@J}&aab2K=wfTq(2o=5fzMG0%y++3UJ4R>=;0u zNSo;KDWys^Aa|ikAAcJ7q=+ih2M~9VYE+pt9LQ$NLXbp?xaDHB-nVcY$a(|W*o5AO z7ol>L&8n3UJYXi}96^X!141TB1SwYX6#^f^$xrJ@WJ3iqkxNwLh;6fFtQ5IIDWwQp zg~&!~$QY>BEsTT=ED&U*u-_D@8BWC;N?KE?8KFuw{9ih6yZWZHUbR*9#rD% literal 0 HcmV?d00001 diff --git a/tests/zfs-tests/tests/functional/zstream/little-endian-all-drr-types-base-NATIVE.zsend.bz2 b/tests/zfs-tests/tests/functional/zstream/little-endian-all-drr-types-base-NATIVE.zsend.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..de08809d7945bf66a8d9030c6468c74470d1120b GIT binary patch literal 7491 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 I)jKZ!KaU&{3jhEB literal 0 HcmV?d00001 diff --git a/tests/zfs-tests/tests/functional/zstream/little-endian-all-drr-types-base-XDR.zsend.bz2 b/tests/zfs-tests/tests/functional/zstream/little-endian-all-drr-types-base-XDR.zsend.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..bb8ab79fcf606246bf3d3fc39621835504decb6f GIT binary patch literal 6979 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 Xq$&2`i{5*>X-NWhM}(poMcDoeT4@fs literal 0 HcmV?d00001 diff --git a/tests/zfs-tests/tests/functional/zstream/little-endian-all-drr-types-incr-NATIVE.zsend.bz2 b/tests/zfs-tests/tests/functional/zstream/little-endian-all-drr-types-incr-NATIVE.zsend.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..ec781bc96ec8d1bd43db82f6bf99b8c5d367ea0c GIT binary patch literal 43463 zcmafYQ;#qVukF~jZQHh=v2EM7ZQHhO+qP}be!uev&PsZ*k~S-C(~Gu3n&zC0f*NE> z8udhL3;+P0fB#?X`{}{wNBTp>1N;vkXW4L{_BiJa(XkU}I!!&WV|LWrHFI8@Z|&f& zZ9OGYtEnwBRb6aP`~Nuu-hNz_@$K)_G&b3Jd);+^Z9cl?U?qoGEO&~#xv}@0_1KbY z-fpViBo|M0Y&meVTMKmAY&#ZH)!fB|3dQ;4DWk9B^1+Sz*Ie;k@4UG@0uYtCtvKGC z`xpY(`hRur<9%&ox25G{eQgB-J`V!atUHpJZSA?fwRyMogiY#ppSdKrsVv%_Ng-LG zZXqsN?9AG^zBOLi-f&w}Yg*5=Y1O2bZdnj4Xo;8DtVNh&~w^88VQeJ~A?7k}&1}YVse_%{?nol@I`c43zHw#{rr20YHXF z{Q()$|408HfGkQg^#LFQFhIutAqr6_l={n%$;beCLMF+w{+kFMpC}063GQcN8UHT? zOU5#NB6!}SpcGG-pd;Px;g=H(0)ss)w4PWxqJb&(Mqy)M85R%`!c;&Fa=J zdhf;`3V3&^jBTcPqy52cj5EYCST1B#2W%7PMt`T23R0!fOPZ)q3>gvj2^kx4U>PVe zEzB$?N#$~+NJ|v5mQ)(OQ7>=j{uwzni9)f5p9`rW{1bcgOkPK$vaYc4pE$Nd|4#i! z9$OVLVRU4gFbd#fNT5*2t&AO8;b;z(z{EWd z9ui*J)seboi>+h2=eQ;5M&vP~LeiLKLh_{}Tk4S0x!sNLGBf7Vf8@&nordEu`rWRB zE8tCq%eXu8%8@X$bkGJQlFy}|K$rk9jtOY2VNyy~AgWV!Ua8%tUq!upsnWV!fh%XA z3og-Brb~XxgFj~24)#;pxxl-R%iBgcL>seb)^+pcyZNEzo@pU$$J`qmu2Q&$n@MA- zuBEXT#Vds_+* z7}V614QyWv(5uOPl8Uz3s>Oyhs4jyO;>covcT3yZIhd1(4x2fBod^;y8%&2<&%=iV z@O4GcDP?3~)4y{+In-s6eL|-jd-V@8jZgu11Y!WwV2m|9(HbAK;=54-CKiaD4nJ(~v`>C33(N6(v4;gjPJ$$T z6b5W`(b}ek>QE7EOR5i$F;G9iriL*HY#pThSdp%P)XlDI4r2&I_*)vgRna;yQ%F<{ z$jBOrdJ`nlNCH4&p^0x%LX%P;@Kw-$P)HQW5Rpl;SbtF^ArgzFsFX$WSj&*o^|?Rb zP}wX~1Rg^G$gpJCG3O(mi8DOh;e3)Dgb+Z{9HE?%Ko?$iVDIG*dEV>e$5i;yRmI1{ z`}s{n_2ap6E%~tr7dPwc+HM8cJvdm9xWXtBJenDyPwyj+-~u zgE#c0+DgZFuWrmfUtDYH18=sY8{Mq*v;CR&khM+cmovX-?Ymv;`i+gXJzEtazj7rO zQU9#EGaFHK0V}lqgi-=CHxPN$bPHos%7YnoP|APk)R=qKv9fy)@*Wuuij0XGD`7ct zUN9NPzN0g1!aKYtM|cM#S>kQqkU5G)A`EFl+5 zqQ;;Q3sg4QT0h%B(VST(G67XzexN?vVNNKNR5T6kUS>h%D+nrhNtX;I9X3jCdAivu z+f!;>QcXZ5dIy`-XVJE^qs6+MRH1lN1xu70vWkp+P|##qZB0$>KT`shSik`R z>SzzNf*`{p(mY^e`1JtrKpu3RLHT!=uykn3+Ym&koKDilK1-0idoCcv2mRMHQ+ ztN<%7)0ZVtCYRV&C&3b|k?8*(5`2yp(2UmdpRdiZB}=KXCNRm#)=Hu;HakLKiO1U# zx&;ePXn_&>)C4G;5B_fe5Jkx#0XgQuFl!6)Vbo&m17$1+KLr5nZ6KDSC2E?8d4}X}F0U`aYcgUT>kf#G0&?}HGD;8L=LrInf2Eq4lC zgG#FKdp8FKJ@vtj5`rx=K@a2VzPhF@*p$=Q30e*Lqn>>rplV1Ig+UyOB(Z26AaUnj z7M?|y&sSh^qqr@H42WwN4SFw9nz{@mYwd#hEh_PQ`2l_`qN;BUOX7zj`nq2 z&j3$R7g`X($}Iq#X1uQR;@P3k^7u#Rqq+5@ImPSBy%TvIIK(EC{{FoW>F zy>;HBiKXo=i?-7J;IbYkSBvFM?FwTu0yZ?%u{*}`It0<9eTSO(9r)3HUcF^L)bZ4y zfiy4cy)(OY-x%t%Gr6X($A_>NB3Q(J`t{8NcAE%R9wK*kF>q2R(S*@2q(SasXt*(S zKB`!+&eFAxc;Q?~fz(4y-Eu&BYQQSBl{D!Mxx!ZW33fC^e_8=Y;}nwOI8&$dhkf^$ z)&_Yr9_rNpyd-Koxh3E$USg~^(K$x$j`#ViE;MVs_aq@*V`vMCt>=t9KL0`Q{juHfaFURP@K6K-_yZ^y z#TW8w4xVf!?#Sq8;<+l+krVCA<{|rdd~42X7>oUJm>oD?nO4V8M>`&AyBlOF4eei( z|HM1b?^mPtEd8N)(!5&sOo5Z1v~}9K7F$()!%j~#_>#SDZBe9UXYuiY|LB;{Ty}fZ z`IyLo8KZ!)MZ?32YOj&gu#=PIE{oF1sJg9MGEx1duF-jZ=?a@Jk(~3M&($Zq z$u@lcL`-byuW$L@eI()-T>RtSbNn+;lq3yWUyvvgfBV8IAtv1Q;x!rj{?>}CiTGsZ z_pyBKz}M=!pw~GY8aS{|>!D-rt(#-Wh5^KYkQ9o~M+Dy=%nHsc?VIbk&0E2c@`)N_ zPFxYxjwJ~i_ThML{|*~#$nNUkpN>cSEZ?Lj-(Np@Ehu_psXqCcp?sP2tD65c9-e0Y z84;<+CzLM=c!}mo(@G;g`rCu7Nf+qr1!6>*Dil-t#DJ@dA;0vn`fVVMQS-fBx^_1I zkykCQClZjrIw%7~M)L}XHWta!!IFV#ihW@VD+ZVTYG~aw26@~RMgu$+8bx6e0 zVroCczAo+W1qQ^y82cN<_SYV3gUTYDEDVNl=wQP*5M{&YuZ`~Bt-)L)Z~#2$$01TF z3dFAX*N%rb31lz)NYZl@3`VdHK1e#=ppSbE{2qow;HMzWj03|yU^Gk*0K?uO3<+1eI&Gixg1drC z{tOuI(3rcL+y8Q?xe!j9;r79Ls0c2aJ8s|Lc*~cG{?;z2vb6@T3vQg@F$iAhnc)$* zw;P5hM*o$C$*~0(9-V_>XmbnRPfecTJ!oSW-pQKbLl}l(==>DED4EYUz#wd$zMf&I z$_@r?#vcg~!+ZMx0tEmBz!d`ATnKP%l>|Uy!@8V$*Qj!zzlR~eO8V*>^HB=S6R!nf z{C?fWhos@3wZT<4TPh3po=4#qW)42}qMWJUuKR7N=(m-`N)xOr5gnWEbuVR1bXq~qcOuN{P2Rc{S0~;X zV`{vI2L!-q%h%~=yGPYWIOn$31*32paV;B)eCo?5A^vpFSSm06)r4=)sssLFSMs4B z%4z8r=xCN`?&>L{@~e%|tzt-<4wb7Hn>VHhMSc?G*ISll!{2E#d#sESP zeI^egfAp|+2@$YXBn-#-(f%*UElD52*0k_rsG&W6$~D6f49A=zfE~Zs{SXWr`#Hd} zaE2S~DgsAb^HShdXY{@kVJObJL6{7NL8Ca66xh!>Y%#--Wweh|ELCsw|J$`4Do5qth%Ya&M#ejXp%4JC`1{AZbmfH!fy7>V3^w9I1GN4C z@%|k_r+aHcfw}m(A!n(jM*7b@T~^5-lAhW}Fb-Q$_}Qh?)68fXKt;htQqKqi16U_0i0gryK}K86yJ{ zXJUW_lVzo4r>9{X)mIf#|^M}7Jv-&{@&QEcWr`*>Qg6@`X z0c&lF9@rL0FB8b}T_*j2S~hZZcTKod)}f+X6j2Zv8d|NMaj6v#_TOXwF`&(Ru+c+i zQ17IQgnmqjGp>IFeUM_h-;q=Dfe3n;5Aa)H&5n$*x0n5W5N0R6?q?PX_5VX6^sV(QJA6mr1w1r!j508j!eDm zQ~X51!6TlR=Mb=a@nRsvBk!_Dfi^mY5n3ef>f$dJzfT933{LU7mGgBL7B2FUxWRyt1!42p|itrsk(21GWfgbv78z&mz-jj!uV9=AKct z&ZCX^TpMmu(pk#HAkd2$2dLo5JvxRNDTTO=R%W<(2j>hF3+uLh#EhQfHAEgaeGPHK z`ReO#x*drVViLPe$5^Z#08nuRoQjhW{Bfjn_B?awnJJ}>PulJDQhahUZ>}t7O@=V^ z$GhyjtA5y}S=40@(OtZU%P-Bae9)oG?nt?`Vnt_U6o8`V1Cw9RpX+C4?%@V`Dbf|_ zP-WA&CN;nS*3M}h<&(R+fBPM6I|rU@UiXo@K87vo8NF8Joh|3JF@=^RGp22PD<0E4 zmxcZ?cwj+84{tqv?fac`efZZ-*|q9w0kCKULh5u&g0&np!XI{cXHCf!H^+Y`Z5gb* zlY**)@({J?V!VdNxvRdwnFmB1jCV&?D zp6}Rjt#g1`Vrhq8Cc!@BRAo;r2clCB4cAn5QDl4*bTuVYb2ZEv1pn=Xpqv4LyB;L= zTp}p3_=R(OcCu~I`N4vON zEyaLSYB5aKRRm$h29Yu)T6a&4yeew znndL0`THd7dfw{|1}^6kP`!AA6me%IHx$hh$qzyF?*%p@F4f^jnwxNSmgkRj{9EV6 z8YW+Ctpq;Gl*+z_UAPX?EqlznV?3VjJ8XH6A6VNdf5q1hrtcjxqCh9c+Xzbm0|-k- z4zPnZLj*(+Mwo~oB5*it12Jq__T$Ldp@*0kH$UL>S8RRKDmh#1H?N&Nmkb}?y>$yK zo*prWWp5LC=yv_Lm*K1k00C^QmvjPFUO^w$ipX+g_WAwLn~IYap)>@e^ri@L=|B4; znBXL}=Ef3a{}duCQ>7HuF+qZHp>Ei=L?-m+c3;yfwu@2V)k9pQg^VR>jnmzy8Wa!Yc;$1`04a!`<)soLu&Nb~$or1>pTgTX<}!FEs*kMWIf~ zn0>27cD9y1XWmE&jH3yU)4N-n#ncdKSwqS#0;BVett+xn`6rA$jObs{2W%}I9 zvO;*jZ>WeymmH&XKM;Dayn7ourjo}4JE4dX0$eGu>@gGs0Mw2Z`u%kw>JJ~Z-KvKM zA-p0+T=YZ1%6(6*2?a_f~T(7La$Ck3!_q1Z28y;4LnXiUZ_2w%tuyIj(+6BRsBPxBif zvbd&X0Za}QxG9H`0Xj^>@d33!>ga8(Ss^wiqMbGVKz*K30B3Y4^J)9``~;f_N*?67AjDG&9Ffx%_UeYzAeOalyHJ4I)98Gk+(Y z`yX0yuJo|PqZMZp-P0ym9=UUJ43pQ@T?``olxXa;B)gYCXDxERlFsP(>OSl4-+D}i zxdOj4?Xp6EL=v*GP?z}sUGA}q*FF@EMUK7V<@MEmr#WdEva2>w(Cev8*U6GXFLp*s z4Aekbc!8iNab%*sZyk#=6)M?F>uVOeOwKuGIsz8plHnrTN7GB$FzfO#m^8$q{vk}O zm}+1;C_Vpbci>@1U#Tpx6@Vbd!ol}d*f}j#z9#a*PrZ=y7Q+u( zl%XwVh3_F!H)+}N6d%6w91GH76XvAdFP!-FvpwW{0zwPT$3&vjWqsIk>q*yekDXvQ60=;OWXRf}E zv^V1o3B)+*QKN1NV4=mwW(0N`wi#YyPB6N{XqdXg{6_E8B^USb*8&$CTru#V8E;HA zrS#oCB6v;@HsBJ&F-8dtx1D;>ysG<|;`oMwG)9Z}_V>TUdsze57^Ijb4qL5TyE1@f zgi#HewnDr^01)y?_L>Al#=U&l ze_1+J$xI!PEjl(Z?gWn%5V$<|_=vV?2J*1IVv&q@CM{@wQ@ZE5%=)=*U%hhFjz9+h zw>y%;0)m?bvS)aAzjj*W{w+G;fo+}sGPfx;fPlDJl#oLhzqP=QO>KNoUJ!QP))Xv1 zCB&Kc=05~DiC(l=@BxCfu~9^fI+0={5V9e@cl;?bkKTz1z8S>LVw{DSsmW+fJksQn zgbjCv*RH;Onht7st~EYs2k zTG*cRfa3e%_2OIRj_LM5{)kwD+y>7bnT>BVkKvmyFhub`2IRKk-5Aw(jn5QFYRO=& zHHHg*KN^LK%}wU=yzUdE6G5PKEA4~cLz^)O2IOq4?@mc;jV{x=YQ$z!H$`^h26_zu`D z4qHqKZU6OdO4PJ48!*Te5C8#Wq8!ACbaK8cepJPt>OE^OF?jBYRXC!GhpH2rEjis4 z!>a1)DskWjOJG!wm8jZxNTc)}Z2$^La`tld5zG3>G&v+3NX^G^9n4e1Ro5h|Dc`c( z2{1W1>j)3kl_Au8Rc?RAjzGWBEA#E?*~EydWl-jP@;6wzWYvkP3|$4>d}~tR6XXCs zp*rO1tj5j$46r{BgpgF!=v7LD8#HWX47|6%64)U>dqc{dE}tcmOZyis&^gKsWX4zY zy`|xyglJhR=*+2xIfSZu2|QH+C=N)=fpf3LS}b5^mS56)eJep!#JS$D|Dk;z^Z991MP5 z^n_6pz$GTAeKQe|*t5Hq;BM-okD+Y0Zo$T1L*xSWs$># z{YrpL!rZ7wGmwwJUz0SRkWGVU<7JPF0z=$&t-c=Ld?iNLq!T^wXJcMbP03SFwY9BX z;xrKDFL?fO%YX6yRotqo6Rs*Ye`wjj=K+h#u6%4Tk7K*=d|K5nKHmHKtNUEUK_?}% zIKlZ9Mj|6kz6+&;pUz7Ivd?5%8duJV7@Zrei>)XR98w)&&d`L5qk%f{RAC%v zJ7X|qbC#jM3`M5UZEcP=h41wDdCYHyL!EK0+Q-}^TCvdR^Wr#NoB1Gf+zPkwz7UG! zMMI@Y-;A&O;Q3%Y;0oV8>3VShK|_`$(&C8Ef9YL3vrKv2e1PuacN}3v@dj zvuX(csJbV|2!O9iM-pjsrep1sL-NVC^}4Y>9|(Zsy+)C%=yZe(UJbGfbfl9vP0WSy zRCjgBzGHabOJbrtw{8(C**OpSN7(Izd_8g0cK*DoGwEjYL|`}Mz(j9ptBAdqNT7ut zG0X#>$t;KJGW7SssABpfL&|6r-HiNvN6=Kqs?2LRjPhUrR+32(48iqxU@xLK(GpIW z5#rTswHt|h87!__eom;GSd%1o!R?4@!Cn@GwVH}(HxPc*QCSk+LbFffppunJ8m$+` z<@C`{eesg1u#l)DU7s|!-FKI>tC1`Rr|pS<8*lbA@`C=(F1>5-s{KqS&7@TM)u5{ ziGfkYh9SE}chy-)_zAhnWmvPMqZ1$ujVK71!k``WqNJux4?6$D^$%GZOwZKv71u-& zx^wHLlazU&$zHB?DJJ?ZWKJ<|tCtbyupu+${)*zRwy&j@H=GOiRm@R}VZ`w26rZVs z$0#c_xW-*5CXa++7!--p|)`Fwv&8jMSe2{WA_7VdCJDTb0mwhb^Wxw{9}R1Y=G^yDyM0O(mBK`$aRcZ zM^)y&wSDXhM_W44k*&aB{{l8{eZF-O+!bMB5rf?Gs1rJlNvK^KrLdVszQzSMoHlJU zGc?m%MEUwP6tWDCgcj=o)3wvV_L*=}br!U{q$%bk!?Cu6M1g=}BHY0!=d2BGv^g)w ze2OB8>7{LO#D?rG-P7n=CJ0FN4T?!jCAqcE8cP$AfG|0&(_KAsPE(BZ14lHCa7973G>bJhmQW?t;CQtRr4c*l zR3lS8UE_uronvW%PM7=0v~=_oM)kgFlwSYBz&YopxZwV??R!E%%1FO0yCO1SCw@46 z`h1eUv%XS69s|R8!N`?EdOL}FEmXv56JxE76*&78OQmB17IF+Y1IhX@QWn&GK`BL! zzQ!5UVc?L)kbclkC~J6Ty6Sm5p(8VVv?ViR0vmZ6jY<^N1-LX;5;7H+Sw{5I2yAMe z*t-*0>lV3rcJ@ts$3JUmNv^i&T>M)MP^9gx2QKAVoXm(K594vI=hGg#?=#t6VEkPSwvsh|>3%c@SR1yM~|#B?qG z+#dsAjCSzEnASAxdK4I{$+8hREt-SnNLGrJT_;hUk;<2jmj?t#O2UFO%{-tExshIo ziS&(c5n{C0H8@7I5l9U6jETt1PEs6rdK@uTsZSb*rzEy)!~dwD20_8_ zTrsTsvuU8B9WkP28Nq>x>S|4KyDcN92GVa`N2VQngD$wc=dnd)&o@@hWg z@Xz|-Prk*&o(h40fZZYCm5D^p@Ca8A#g?^_>6b@Eux#J*NKYWm4H&h1Xw^8#K%ym# z4izoY7$!K}`3LK5g0oc+D+c^J!7jt^C<+2dKAGk|VJ* zOQvKRO(AR>=4%zZ-p>B`N%wBpqE%+XIGZZ!b9er#{7J|$GLOz+!6SVerB+G{=025Y zc>ZcKMcy}|pW0b~Z=)63$h!Du^|oB}Rs>lkc_=}KBXI{yK%+~Cb60k`YV>;BOZf>L z6Nvd=WVuJGO)nO~Zp*Oz!~L{#z(&#A?-~XDn{WJ$I*wZZj=;^cMP2fRJ6L3fZ` zGnDq4X{?e!0U`L+zW$rEr@4&MWfZDgP@k!6{RKhlh0lN7d~QW_aA2T-3r6K{R%UV4 zDO^H*umg3{)e3ubtuF`i$M6@>glP~igc|`x(bedU+PaDUxOU5h{>al`_Rw90d=6qP zbbWksgJgi>A?qOzbuMB=YHVT3(~OWg*sgQ4p+w0%h^e3oXQR6kRuc<(l+WetY+AY* z)83FsQGKm(>IXqURbR!QDP7l&ja*+sWO#J^5hyRBtA7w!2P4F+tXyM+CqI<42z40_ z2E-Qd2^`{iGoawf^pDXyDbcCy<FTnzr%a2AIs1D* zWgJm7vr(FZ2l|!+r4qjalLDf-5~0=NH8V|LovXQWfR09l(C1cq$+$<96w=NG0E*$g z5jr6KFsXI=TS4`O{odwr2H7kc$3QWGM>uQ3Nj7L?em+s)IAYtXUgk;VOjbPNI;x8B zaeGlU=j+^xax7uBU^7}Io|mPWo-bL9_bI7Pu@n26H(p($7;)loIek9YA*(k%*6*Z3 z67zYF=yXzR^YT-krd9NSj9%WQ>x_^kl#fILOaMWN5cm&DS&~3SINQZi&bLP*Prvva zUvI=<^4`5GKEd|MEd?dB0rc88ug_;QrqFNnvlVYCp$5kd58rSSC=;iaB{UGc&9hkE zqrSL`8btFv8;M=DxeaVFxn)Sa0%R!M9g9B$FZCAFZp={DB2EI83`|9yA20o7aq7qv zpT7gvNjx6;;Yq-h@QfCPf*>HwTrpI=^5KCrK>zm30(uEw*mpFSVJkBEBB1;HCH+o< z7mCS69W@5x8Yc0K(4QDKFct9~&!7dd5{L=6&d(Uh@x5wA6@>RqG3G|NX(T2vVE$zi zU$Eh(Tzke`W-CwaRabQ`^A!X-VtieNYHZyO z;CVGsn!S=tl%wPXwIy^j2xCAy>T%Yh#wX`R7$h=r?ge)KEvsm}dHwV2lths}UtPT# zau^Wx$`hI#F2m}y@(!VYcZEw`1?Uy&F@9f+0si*VrU%{(f-G3LC*W9I6b(AM~ zq*89mAC%L)8cekH?2k!QT`adzNf0B%m{&CL4SiY2=~E#lW(LuzTQL&w7NbPu_+%O1 z{b$JN^cN;h13_v_@Apzy_tA65u&{s_2^cv=$%H$n>KSc)_^MYbT)9UWxNk-d@o(uh z5_YIcV#GY&itc9n{(NAQO$Yg)FiF$3gWTqq1ivIDV% z2;niuDA;zc9_nR2?{_0u6PGBrVU^tj_mb#P>2xy`zcON79ul0G!G=4U?PNVl8fYQg(G&=E@pCfO^;biDuc%7;&1 z?fec7Cv{O5!)OzVUdy@b-4uJN-$)aQ!9+Uc!4qGF!rR=+0w`p5S#l0DT1v6 zno}o%(~NqG8>bPpUO7ncFD8Goi$w@$7jL_$si<;Obiket^0rR5m@X0*{aW)DuYJL0 zU2sS8KAwJE2_fbHMy5w>2m|DLG+tVdC%`QNC%13BD%%fRjYm=mB1c{(WDxh@eo@HQ zq0%N5e~*k`gNbo+V`iP9WyGfbHjKyvFoCL}05QmO0l#TD_z*=!ou@H}f*e+0Z)EeB zx!ov2fx00gal7u)X}b+iM!QQ3+j6mYrc#*O3U|MyOJ+k@(Fgo|!oEs}kz&g(N^?9& zFe9P9=33j(b$+GiL~0TI_N$ctV_-ClEGIz^>X;(EZEsBQ&z<3zSj)e=qLbcn239_r zK#ddFU~yT;MiR!iK?*tThr&%%?H3i@6+&N?cNZ!x(;8j{@5*w$&rF4LH{f7v0-cU6knED`z$)I-nP|>=&Gcj>giP6C}Ys$;Nq_5hWcyXUMt9G5*b+d ze0`mzYq0rA1h0dzq|%8~v?K@VUS?W}!$`>Z;wobfD*L{?>T~!yCOQAeg#`f%oe%&8 z!+3s~2!4Wh))<>T141S7e5=Zu1wLJJ&a-qpt2Tk!3>h_C5_|m(MM1H{cnzo&@*Cu- z@gA*&{f@OahdH`K|G0mXQm^h*pO0X+s`y1wWygGYHupu`N>Agh$ zHDWY8gUTjR28o1q#_9Ovk1h34x$NBfPAR#5?lYzDI{oZT?`dVyr+~Xy{cbji$4^}D zFOiip{xFF~6xc7>X)*$7IfnJ zwzZgA7G|5Xq+1eBl(e7SWu;p%ogpBRdg7!GfK^1OcI}k zZHkh%b?Hm0#c??@JZjGoySp-QljotNn2YVA*;}Bk)9-!Nq zc1uk>#V`-FGm%;rX+UdG`B_y3*Ap^&SKRL=N|2AFqmcQ_MYbF;i z9$<&oe7$w{=j(qqlY#*15OTIpMSXq5(Ln?Lmqp9={=H7wKp{*0RWH4hH;iMkyTjCz zmOG!F^2tIEda9~KCF>kp=lh6~IrZM)9;SPm$+arOKCiwVCN1H;j#yF!45?a2M#Tp! zo1wk*QnJ3|h zM~TwAlSaL89<=g~x+DJE;5TQ$^Ok914z6w=B*0Vuj z+}*O}Q#n<}{sb|S8PxgUCjRFaXu5;tWnPCC#IzQ!!8nZ6&wKp*Zr%R5m|cGtLcptz zosbzd6(^^DAX&Q#$zORy1>Ubd6@EEtYqIH9q|DBi)JETNW?b@>mHG742hHxQv^e)n zH%5m_`o2E1Bq?&-!z*NCNZmE~X}7X9cGd8QPCfQ<;z|N(X84B>KYKWmmHh8vz8yWT zYwI~Y+19nMEXMJrj8TbxO%(}VYxnncFIumc4O;;Xi}z_{Qrck0uO2$;7K5@}OQ7Y^ zC`nML92R`WJf8;J=F1DX{+|zv6zV6 z!-o#>$QtXozzSu_^%>pwL_7*k;{iLY3a_*;CIzUmi^6b`4kp=NydwXXRDRv5K~M_q z25F!`%?taMD%s^wu4Rt18rlFw-9>S-R<3}a0^eZBgLE^2>j^XJ8eWs6>vZei&__u0 zX<=CaX)WJ~?u3^RS^6!PiK9scXK%4w7+=d)ADf@l7mrO!^hNgULdtG7?pwkg&DnT{6H0Ql<7y`5O~)XlUz&Ke2+kg26b3~;oqokvo83ZR+?Q(YeN4yh=&F9mauOQ1 zB6Ck)Dc~QmT#7`p=B_DAMYj_X3Ju%G=_`4kT!(e}2J1*}KBB_S=LfXu4)f zk?m;Rq8OcUY-iVZ%mM~z!Lwr7QayZ$@8%4sQqk_ad#x?@nuBDiI*^diFgd^EehskuG|$QM70{m(3==32`URAu%9dqvVsy`&_~%jacOJq^qcMB zY?Y1P&OFKO8h$kdUhH4}BpI|}q{9mg_i#n2BWyIj=RlOm7l5%k$#U}Hg`^?!H*J8DJA>IM}S>FM;X7IkMo z1r|?~pT?-r6_@lMDG&+Xxk55T{+YanmcOEK;AN{tXNxYMW`FK{aO0xMf#owQ;oPs3 zb6SS`GHrYoUA$>-DWtb7$C$o^g}yNJ(jn$kWAeW^cb^mPXj}A8Dx^_X;-l}_b4w8) z_1$PsRbv{`WObLo@l6CVf3)iw0(|XuscOT#a4QGxT-|rKRGLNxKEreV0F(~zVcS7F z=46U`_wO;gA&?X$){9IQ{Df}S4@=Y$;aB(}5g|ty?j}PW3UKshbnqaE`Idr^(j|d#o1d5PrxR_(W$Sxm%s0+&$M(oMjnHN9O6I)A zC=9Pn$+M<_NJkJr)RTE}F+=2_5K>_cSxh;wwr*tvMpp^=CWMdoWUif~NVMucYq8t+ zg)LgatXUl$gI6RZuI-y+;B*Fr`p}%zJjnXGrKJ3(8NWV0cS_6SO2sPb#kV^V_E+dm zG%2?4W$AUE9RC6#J7AJFTFmLG0O8=6mDyi*%}*X^U}g&f4U9G{;~FiTle?-d%(GS3 ztw&BUuZ6a-Jin+m7JXLv;We)$as)|SUG-GkW$3iKosR2Gs!v&F zAijXVsjUIwpegzHZP~NlXxm9+*YhQwhSaI&rVQG3@84|5|45@HDj8taMnxc29|V4c z&wtQp?+MOZ*9-Uz*q58rFPAN^ip)^}XE5EX7Edhpab41*>4`=z?eQR57R&?|T#sup zTU^*#NedOSl!&OEZr%>g#z|cLf22+fl0|7Bar>BR*D94?-%i<+PD}Q_Tx!*ee^0H? zxtZwD;NxL3ZYUB{VJml8%6w<`6me4Pqd^m$sI|qfFJ1sH@|M?!-w)U0p_m~evix`_ zq2GsJrCu_EIg%d0vnc58n2ZGEr3sb%$-cii7_HacepAo{|4eII^{oBeMWXkBm=PNd z+v({bra&rP^MEu=TXX&e&LIA2ESp@fVEWA1TQAp&tzFtO)LxFjy_=K-VmSz=ZGNQy zW7LkjmP(^QuEWX!|GKe3*@RZ0VH%EPMuwDAX%M|6&GdMc+HfMpo_tO7z1ejf@urFM z401gxDnKnmzqo2P;qpPncY)`f+5q)&94gSOd{A9@YGqNPp7M}Jz5++T<}GArO~X0P zt{nJB-E5SZ9DjOe(aU;oKGQX#Y{>a!b5pJfzs#BYZyIDFzZxCg^`_H<2)$UGGZM`` zkxiVkBJ+Vw?6pLvO__B;1wWOZf(%?KuVjn)q>W$1@w4)<1QjPWe0KRJKEX{IYgr$J z1Yyb+5tnjn-3Zg}JR~Qh`XJ60A}mtbyx;yJppQPa&Nkq6g#ftJ?In{BQinKT&f1`M zBIUVbQ2Dx5zoQPLR()}1y6VT|9_j%g6A;mxAy#I;gL_Gu6sLBPUU{Y*VnJI*8;RnN zr^9&;`Mp^)#W*ASXQ=3OA*n$!Qoyi#K+^zhPFP-*YnGd6Vir{RsZ8aK_! z!v}us*tj>!%Y>Av6mDg(7ON9TEYAfBB04$f8)gVB-!s@})7g~BczJNCxmVWm@Ua#` zb&1pIdQ%Sx;{jfjbMfcur#3<>y9Ek*LP~LW$1d1l?q+_6K@k;-$F$qsCXO{kc zOYP+I>7!Fz3m0o3utF^hXM+clyI9U=`8}nUXcWP(t4>z z=jKX*of$PU=heTFNNhzeNnI~u21=Q!V4jw|UF8#Log;%r#l{1R4@Iv#C++E=ONX?1 z5x|oY=ENq+i|5_!B{mhy?^&f4E4s7$UTMW?V~xo$;GJ?<><@fA?}tbGmigPQOlCi> z!(>d&$zCebV%h>dN4B$8-ai42D1Qp| z0mcy9jENsGq3_`wduWSJfwiY-wLgOPXcW!I-baYe2CLhHJ;0Z5t$=rfO&@<~Rl9M{bb;4l|qU3$V6=$mx8>eF!H z$8H2iHG5a=-#EeqRsMcu4@$a2?n=5*d0MLC-RjGe~S`unWFJ5aCASTpi6#94?PAY` z0!@&hQxE}q`5uB^c#1y6n(R?IxwgEqJ9+iIbCqjeByWkqop1nR`kRhI8&Zh%f@l1o z4M|Re7C-*B!psP!%m zMe3T0a7S+gb=Z`gY*r!=A)))m5X*L}{|7)ozrP(tV{|63{m?IWMpogwkp3I(=1cI? zsq(_C{~vQZENOsPK;XM8%J`~iHJbwvOF5o3V+Ev`$ErlAq6~eKnpZ{zaBHZ=H0o7f zu{Mtr4tfSH)?bE`IAbfUSYvt65;Wt!7Hk{lJ8Gs>JC-dXTqtY}g*5LJ#NW)~xuwx8 z`f%A&TT*hVE+Xf6W%Ygq;eaHmRsY>E&?4i34@>FNRn7cbM0`fa-mSQ+QK zVdeZ$R~q^~HcP%b!)sda?Ef%}mAOJCT|t_sDfnoHHd+{*@c&iZ-UIyI{eSA8t{913 z)cOt z=+iq?87zB@FgVlsyNhct8C4bYLCBi?tQsK36tAP!CE3oGeXX2X#_1h%YP88^RAUnl zn7K>Pt39t%`^U1Y6*F8JIu`pB*3}4ch7>88L=^XLrl60^^_w25bF=FyyTx^I&U70` zv1zeO&~>uk!ED&VLJ%YI^k;~IVPLikHR$^otI1ID+3eKnJ$%A%ajAWA){JfbCBH&O z$*U~ouln4qb+;1LFkFSn1fS?E*L*s4a;%j6IY7h<0s*j@Q^8Il{`6X8rg;dnmMv}h zQ8}29t}c=9@Z)F+Jp~+J5tUYWKEAW^k&4jdAI_$J=}StAebS3Ls*B-NA*8B4_Ox}M ze0q!HnxMJi&zP~zp2O7M%WW|aV!1a}X7(y5h!wElAua90}^J4OKd%LZk5zrBNS z>Zuj>`Y+Bnr_4fBTIinnq{0`Q04xx82}kd!S<#!RtLT0mBz@dj4|Vl?l=DY-c6k(c zb<}$ihon32PQSJGTY;OH76LV3Y=&*HWPamzY?ukRZ0BnG=Ho2EHv`wX=kpub;!>Eq zZ*F{eXQ0RbOnoUGk+)KoAZTq4KjbNjgFn9gEWAVeaeD!jINx(lz#kWpefS;bOn8Jb zb2!fYHlts*1WNNk*!b*8b;7k*A^=P}mV^pX-2)vlEyh=ay}TJJmn=AGa)H_sJa0Xw z%;z@bKq3s1t?tiz5=X~*`3iroOc>J^xjrSBE}F=)ZxJz^QLmFT=!|~h`*yV&YX(f$ z6|=*}|C+fE#qz0rYA9Kr(r`h1*?|! zH=?4eDwQ#egFvaqx?b?>a;im?<+z}kKr6+8=YuW3ySvgiPZp6`c~AE|s)y=PP`39n zsP{}{-J$+D;afZ_V~ty;iav^Gt&2q_p7nDIiT8`IW~xR9xET;7T`QT^YG530eL@Nj zik$ck%A_Yo_Hc7sUd`~<46}MLbPxkgl!M5EA_tQCD-q#`fEdW$!2Rgbzahi4ywXZ1 z|G$1JM|m=Bnin{2SLFKcsApg?#e+6Cb`IsX7*@{IBSKd+`ri@V!r^vS;wLp?ZN)!Y zWr|B0_jED})*yJ61K+LD9olf9F>kS|-jDkT-)r@!dTB}=7MFAb{vQWtp0<+7>MPr( zKL3vgkUusZ*EUF?e(>m?IztCl;X6$;}M(u;h4q~8G;M0;p zk#}q0*@D9xs#@#B_kI>$)qI+daJvg+J_oA%mH#85J}k=N zwp^}$D?z6s9>BOj%V0@RR1nQ9^3^_|#|YDx07h2UEs7YO+FiM-jE>?PdCM^UNcnU- zZ@*xfM~_6h2Ls~H`_qWnk~Q+~9hjX}!M`=-TOW#f5CK+ENZ7S?k z{Sm9!XHv8P%?=SUXe~p{0$gCI)q~f&`W8l*r`O4(o?BqoP14BHiE@$X=QPi~kP+O3jk?TnhdFv$+t8H)Pzx4Gq%oQt(Hr2_WuJ59R3(4--C(xi*LX~3Bskkd z1y4cAwjznQye5_;h!7G-qyAyI>B>i96Gm5zDe~)dOjxjvfM{s z<-sfS(>3p_%}a{w5W&n`2Jp$8f2yw`02VFB&LK&HOY~AhLMp8FQ9q0Zor4Dwaq4rb z?b#m3+8&z;g)s>=xZ*9JVd#G7icJ&1E=$>#f&<}}qvA7VPy>dzneYCMS!k@;XV-Mt zVu~v(NBG=UFR>SDUbFcq2tA13=fKe`MBa=v~WD1i~U>Z*!4OF9sWA%4h{JdLr7n1 zym`n%P0!sW1dlAJgsH-p{tGB3A922hXtmBFK=8Ce+F(DT!vx z5-_SN1c2>Cs*@ll4O52U8g8ZV{KOmu2jW) zQz;>|+HHxAW~ls{I`v2j2^Yqsm62RF+HJPb!MVY12_BihPYt%v!SG*-X&EX-nAvz> z+(6rf3?OjRZNnlPE@2~j7!kS+rdFW?fMO3gc)+clo>r4zTuBPj#^De8>UJEgIqgr%PndzGgKTc$ zzvcO$)K8W+|EC^lkV3_#1H+}u*yiY9avBOFL9>)^^B0iWV+S))w*dy=kJjI5AqnXe z07D)N%(@on+Bc)qu|HDABHQSet2BJMtnR7|!YgJCW)T_&L62w-7zx0@2R$&UszO_r zKQhUiZ9x>$FCCu?#b)v!9Rw@Sq7Wpxe`d^?RN^EBumAwr6C|A1H_OgA4i1MLpB0`% zzwe%)Df9tY7awylOJE{u($MxBwM+aILws3on2X9{^1g5K<}}{NdymWcbZ^-Eow(dG zn!P@J>0Yj;Q_Syi{bru|j7cN2Nwy#j`I;@xHnd;A_F|}j2$`}I8kcJL=_lhpJ~?xu zJUile!{x}fNbQiUpLVY*awaeWP=LDcZNnr1mUie^W;P9hrf4)`YGEoq&&#CV68$1q zQ5zxIK6X*8DJUrL)cksX-_GcDH+DA-KzAx8T;?-P z>!0-L-8k(gru>X{%Iy#NusWX4v8M+R7*V$1IA9gz9l_c_O;j@VRv2iG@+oO$Uv4bE zH+Wg?N*2r4opeZAqpyaJ>}rov#_H3r+QImp_kZ-i(dKHH`K1J+@b?us)wp zboRNc8sIW6yi7r&60aCwv1a5Y$54P-h)H3@Yz*GJMdQnVpa{k=xJb>lQ3#MIIg-4> z$YXCCJq$WcfHASO#yb?Ggb*zgR8B#Pf=Nyadx`+Ygvo}2n3Mr+RPDSXi*2xMY<}Kj z`K4G03qr-7)RL`Ls1DaJ(fpGy{eOWBTkcWhN~3#5l`AX#dvfnmGh>FltKVmP-=f!Y*6;al(`rB(79iUod5uiM$Zh0p z7s=(^?dKQk`WjM4f_D`P^Uth0%(klM@_Jl$)zn@4bw2(a^{jOlH|f}5%a-sn%4chU z8mYnx4aGW{Gba}i%kPVuY$QSlGpL#xy0sE0YF2^8tF>@p29d!Ab2J5jZabnh>AO-C z5pPDt=HxLbhK%?D+r`QoV)a*Istnv0Hqd?kQ9RDq?Br&Oxd`h@bo;q zsx%S`BMb!e6EMgmL4`&fo*RGxhvoDru>)&pW=|A@nplYiFS#gfZ@PB*_gr}eq^=gZekdc{b zBX|oWiRtaA`J95tU^WVW0BKB4(i~3HaEuW!lr||z zJ4uBweXR+!r$IYB9TzI?ad^-n2#xd#Bm)>UHk(bfJJJH6s)dB>m zlOae{5K9w%NkA5jA+(~_0!<}yCYCOm3u|_OfC7lXLS<5zEowzId_YbMR>HxE7$S&X z+EM_(kTJB|s92<46}15r-1aFjRBzzRS~HZZdk4gm{MS^>t3Pcm zVuFRj!>u^_jX413aAhM847SQ1s8?4Q?Z5{-3RJeXu$8+Xp7!4 zFufqlgBv*}v&j`rO0t>iWya?t(V77*Dwf*vF;;!zA)ym_sF$X*&Abyw7)`H8`MIV4ENNu|R11#@cNvBy0}4wM^V&=hs>_69;DPd#KnMLM z9##sVfl2}hAMb&t3ySOw*s|f$DWE@Y3-7@r`c99(Y2G&9hwjKy{+|bp-DDEzyiXr6 zy6e>R#rr=XS5P=YI)Cwv?LALQBP(alisH#HP7{)0PC)~*YS;^%=(o|I@J;#-xm1Xdc z3u~__UFmmZ$gqPY6~ez#Te_WN!N)~Hu(*W2`yA`@f{Lk2i-oF@RTOUg~Q z#+$w+BWD=XYzB;&6cQ)|9n%SqS)yWt8$$*RZ4G|HA)A2F45}cU<@-i~vIMZp_9Pwx zLP0cw!KoE8EzMG}lx zR*80WQYu(B(_?KkS30Q{S4k2OOn}`efElnu71GnNAYxO2LII79j4Jxp6=(r`7^{v5 zg$W!Dcp}MK47?Sp!KTK=IBZxH(x$CiZK0;d#>AB@5@Q-;28Z(uQy{ZQx)l_ZF?PE` z01vp1)PBP8y`g(YFeu9+TWSyt6#$Z@0VZVmP({_%TB~NPu<9f>+9<~qB?EzS3#*W% zgs92EkWq^>GO>#c&58sMBgh3cL`rcK1p-x}NJase5S%Q_T152<;mBd`Bm*E6C?zmV zNkIuNgA+2K!73!TQ4JGJWJwb=7$mC!QY0k7S|m=9HK3OtLct24h)Tpto$M;wAVp$D zP~FA~%^`@^533#^^w2&*5cCuPZNQUe_tQ=XY1~OHlt4YHOa?!}&-dh4wL`iJETHk4 zV(3%c5&%(gLaROr%bG`akV~WgG*Um?l}_%IztjokTTYDlfWKR8ALQWQFn| z2f3*ZfG~=1(R;XoI~VZZkwRFcHBO+yi2Rq*T&0loS!y*=0`M6($iV<2J^nGV3HJN~ z;0z%tf+itsmmvzinz1!Ae3c9R-{stmpo6RZ*!v!zZ~Y$9{*E7Q#c=Yu0_1RC>-Gu8 zdOWMRLCeJx{lgO~jjJ*Sn=Io~KWJv_spWza>RsgB6w-MyFJYfK;A+z&0%)~cA8G+6 z%CL?@FLJs4un{xC0sy1|01zMoLxHB;1=}9^U*vN) zXSdgXYHFscA{8EC$?x~xBgx_{ii)8QDak=1P@+vZHTpjjf6@6Gk7wY$*?0QRj`?`> zeN6^~NA-6fn|SIjy&p#d|C>L;F&=CYN!Q3|W-B!X^`kzx7G}9;(Wfw+N%lhrThzD& zQrC%~JCsHMi;u)4+%Q-^x!>Nw^SSt|-Y6nNoeUxf3Lv720*EhFB13I?zEocH6* z{suZ*{;`?C1XYs~tCm+{*=#f6u-2`0mRs<8K&wjOoctJ|ex>lX(qYqT5F><63p8 zDWg@h)y_sT&Cx#C2t3!G84fo9rioUd1@)kaGv5qwo)%*JdfsZ*ZfqejwlOsd;zXR3 zIB-Bjgac><5`+RU5GD!*mkb1<7TZMzlSG7yBp^wGhzx+pBr^sHMMNTCkU&KkAdo^y z22?mepn@SHj3S(*!M3EL0k+gbaGDxSaGV1IAw(!7)HNZEH4K4`v%}-^mp+FB#!;r2 z+NV*#F_6hh1~`T0e4LLzsQ(|D^S^?Lo0_8vMwv`bDFa!AzQ!B(AGe|S`iBJ-v*waD_@Tmz^oPa6s zk`gJkAWee?H?~2inB8=jHBedAV{Np?+ikYS3}<2XWVbB0z2|B(AN{^|{(WhM%-j7L zk0XfT_!kg(hO41n&w(f;DLgq)nRy3~MJ@`#m1tN7U_kTHEhj}6t5MhpZwwM zH6Qz7ZH~4ZP&K<8PW1Qj_?fH^{Q36nzvKS4->-STSax=S@>-}9Od&aWEqc?ePza(U z3-ixrkE#C^+aLqV{ipj%NcAZY7QI%Zp_urn28n3;M-xiQ63J8gH_O-!rZmUVn{bcB z2SYI>BMWDRG^l9bfuu6K5a0|60259w#eq6WDTFiwQB_z8VP__p3SkW(B$wO0%x+d` z6M(rwh-^lQ0<8pA2WT@gkWM8?N`e+XimE1x;krXk(rGGRV8LAl{t&X5-&&GFG6iu_ z6|7?-910Unp|%WA(i%ZphSNGnCDNB@06bIHt@^-gL&5NROSWJ*7zFd-u@#a?eGn3m5(Za4edQ`OIQEZpTM zr;_gQVOD%vo_I+`YMT>M1=(6Sq{ZI`@EyW5MLq97A@+Ida1T+vdb%14P6$97;f5Gt zg%mpFAGq;KK@y*WZdEZrP(jSnmQ2M=mj(?4E=1Jbg;axr!!;tEe^-p>vGw2at@1T< z35P0OHpK6Ff6=^W_m4K6mVax^cik6tW!-ERDFJjTuIqJ|ogs3%``SXNk4>Q&Q8bck z1jCA|c@$8+7Mn?QMJ=H0*oMJ2n*p&gp|DMX{xwvR0kAVjUlm=PK}{fVGZ3!{T@C4#&D8N9kL=BCm#)o`L{ajy($%;fuB-qI)g)s!CQxF09Mj~;x z(;96i(@Jrs*xT05DGIZ_tQ3JTuxckLw86H-(L#PzU%}c#A&ww$H2~Wf;nf1Rn2I2; z(}E8WM8O0cAfZFV(if|Gv{ZE zM`YWJvuOA;^#^Q(9D6KMz2gZq2%E02daCLG7hgGLo=rF)lbFOr6qbVs019G>#-uig z5~E=_4P?M4J+8TOZmA7{hs9xIMm?EvCLH{#Bt-L}`Kp8Y6^l?-SpKO5s4K5R*Xc*tW?VOLvB+cdW7JLSfl<~j)E*|4R^Ir*fxg1 zinWKS0FcuI-I*WaxK_Z@wqLHjS+H$AX1~AcDSa*;wBbwxw+{Dj$Im3VW$8mLEX=1t zWW{4Pc7g>(GO|z37_pU(UAA*sG`TDf;wr`mv;-?Sp&O7-kL=M}?qnGM*i9+in<*wI zD6J&5{Qhh*AI>zl?(qhk^{YMZxKJ&HD4_P*L}B74ZNrEMC~g~S2}p+^N^l6zr2DoU zi8N`DWJ^q#k_;IHFpQa(GFS-)iJ62-0TN*wFkpgAABF`$5n>^r#ik@3lBJx^Oi@V~ zPmU_dh2|_ho*a`$O<^8NBUR?&OQ7G(i9XQCl^4KWCU`iv2?( zMhmR8>w!MOjoo(7-Lp!FtSJ=w&c% zw1&ZFio^wRGD!B=Ae{oI2mSxFP#LB$iDZC7 zOp_8)h+}R<5Q$bIU{wI?{CN^>w=hql>wli7!s>Xpzj1&EU!b#AjE{39h{_eSi`|AN zPbc;;&H0cJ|Juf#DhgvQkfv=ORzx-BjH6(b(blCpA8zFBk4^iQ!6I0>24R}OLMfh;>$WN{CId*p zWCSF`Dj1T>DjAX*NkLG7Bndz#2ul+(7$#5>T(**eK@uDN zyWaWnd*7;+7U|R?B~X+xwp^1)lV^vH>u&Y6{O>)Vdw+jcvY%1q{u10jMhm*f?6$4< zj;@wK3(1fY&PhqO+H7sRBnX&Go+yDNi=@if~H|@Bmj>s3CIeA=A*W#iF zaLkd#*w9t!BXUT9t{iptB91e%$lxxA{u2d6O3*|JRwZ`S0+>8_0YVlLB|sD@JO&t7 zAX%15*g|Ss*C_=bC#CRqJ}wWFj)TkLuiclaPZsWTZq$WvX6i(*8Z}S=0+Qz?4Wd5A zo@GC%tjgZ??(m1iAY)arj%LGg4vXIbI)yvJda-m^iP zYlYpnc}&|F(AW}S9QnPNhaq&{2K~@3Bk1_F7HcOBtdz`T{0jZe=9KryWWTc^nnhFVIF)=XId1M$M$W+-xHXx#@Cj>>*&@|}E zsueWKLZu5VRH#M6ifM^W!MLDU`fnn)i%t!bxm|iB=|@N<=9gUim!x zwSc#N8_nZ>?F~9-JJ#s<-+FVU<6!EvHpk6aQn)Y_rn?lhccxC^K?y@d42W=sLm9^$ zgcL^8V^mULrzoUA4Yr$2w3|#A(9&Qgfz$eZTh$BQeL#joZIIL=A_2IC4v>{P*3)GL zKb}G$V7VoxV3iq`cfaSipV`yaAyuwA4XD7@OODM*}z6rFQEiijX2f=HtT5=tfsNEk&D5=6odNMtF~X*XC-R4Ga3!~y5o25Jw6 zh7?%!*}ym=%x^M|HimcOj@sWasOX-SG-BEaGmrKtMo|iY1!tGvxmQDLL7pA@#65z^ zf>(h99=gFq-{`(Oiz_bap4Tvz_B42Nj^RZ)c zd2uiI#J9RcL__HzEwZ!$9Guj}paW@PwFKN2&ko8&=_+VNpwevtn;J?6l5HyR`6?uC z%rauY6Ny?1G%i{%C~|JjBE|?P5VqMWBbm)RAxs#FAyr+)1rtmOB!H3z45UaQD!Zp7 z#lwXG84hAqP(#I}3ABpBhFJo`hhiqGRy0rp_6}rLq_ek@&~BQ(Rw^W$P?~}vHz^Wn z!-7G}B#TQ{lWnAp)s=x-Fk@Wh=?={a6#&_-fhAhG)+GQs`u8hK;8kLp6v!~;K`?G+ zV3k!VIGGBfoR-r7$RQ$#mZ{4j5P+6|EKNc&OgBjwC^l5`m#~9Rh z8SfC>i6R#!I%xb%kVz%G>NlmB7*F%PX+8vmqm^7kpPeFOHSrnD3`6$1qcOb)7an z5)q3qj*o=uZgqlq2Zf7BGK4wNyk3eZ=s5 zt=b`oV7CVU$cq2MB$%@6`Kpj0>f?!Gf&d^kgb2a_f`PoTXMmCx`ZdS3QD@Nt#mf?| z`OFmnNZI)+CX=?>s}f2Yx1}L+NnFQYX064WrV}@ywJfIrHG>Iv$d4{ z)`%OZWgq)?{Fg;J&Ui?&l?V@0_+O&{B={ZxSQ`j?FChT8dP5=Ew|LVLNSP;}50dw7 ze55+dU>rBV zk9(iCm8gW0Yuy`^qaVg)!Wz?aC~l54S-8R+9vd3~r#|(1shwrK3ZJGUR&_zfdjuHt&D*Gx2_nF9~rO!gGebS6qHvW=P*fvEIyKt_1^eBfINH z0uJzLW7#2Y-+QvQ?#^y=v`y*C3d1u{KpeWOc5lm8)6DD@m%X*fprw$aE}z0Qt0bJW zzC4}oD8n7h4SZ~b%G`h}34fT~8>{KxdoBJAV+OTIV$L6yigmT+4p+kvAP5(;%lHSvNEg&8D6z z299h`mvx%s1iG)8pcWD8l;zI6sRt6Ma6bkH@C!sS%ux1XAbllEdB%?`I%lMxte6PPDmx*R zzJup;Z_-b!_JP^DHQE>_ntau$#g;hPD#i(IhbT(YGdy|A|Err8gr1cLcb{@$$q{R1 zS=P7TUha5rPkTSr(X#mu12#~=CH4dxM-ox`y)En}$i9N7gi`2k<;0`I2oqHZR-q$j z%i}{bK`z@l>3nuMs~V+ENc_$UI*fFP4PL{f8Qk*v%xXRfMxGlzM_@R+(r0g{l*XN| zVMRCX56Css5cSVjD~?`yLeQ4Oa5g6lbGR!t8Pw&td||&Eli}cEaibU$V&hq%D|-m= z@A2$yOiCAflG_%1d71@{Wzx|)~m11n7XMziJ z!kiiv?vk{W7k4z$SCmKCUeXMhco>eVOldl11q-cmr?!!a-0xx_`DQjOTwXg=)dsJQ{L)j|Hmww&tWi+zekg4b+GSXH^>(Yb85SKvMG~2)AkOG*H;%_J zcgruim~C~90E`d>9M^ASL`TE$l3ukrO%NADd2ch6C0=sq6{Yca2f-}>sbD*Frix0! zRY?8s!jnlkuNq|kEE`(c0}a6xzY3;x&4B0i;5{s7+|=*0$H~U1HhSn_)W)e0K_7v* z9FalQuFnj0#}@LNwbCV3_Q+#YUV$Mv*XrimO@Nz%Fv-T23rtn_vPSnWojQJMaiJig z>LtTxvWl+umN7b=yYVLp{GQpyubEg9dxKws-8IawX6}`dv}xaD_uEFEKUgi6PFXa~ z__Yf`8`$0BIQD!n03pP1f)@~u=LltKR<|CudNGezV*|@1w`C14W>nT;!W1N0;Rd>K zlbRzWN$f##{<-%Z9gmeJISFoxz;}~>j#o=jz}WucJ(IcTg~6%!_MwjxxH8g3U!a|w z3va^UFXVX8)-62-Q&$W>GZQK2Q;HxE06?;_k=SeX>F)jwPCvifUrijrC~i@A&=qL1 z`vtoN-}dF%t}~Jrb!a~JS}!LF4qgHzca$rB+~N6a5MMtGmaVo zJ%ULakk)hCea%MIFG+&5L3UTT?IT~L6-@-(Zqm43Opf7KgRF$)#}+l@Uci&u$2)Pl z$vB{pjdtBt=a!d7f9*%bzU2Acu`B*==KGr^1a;;t=GHMxg~GNLDm7Z7=5?ocbM=f) zj&8TEox4OE01xQ`ooH4}GKouIZV{*kP2q<*aIbtwqm@13b<&S{&#He~8H#`3?A0q4 zz1_*-o4;f18Q>i*SogJ6$?T_QgR050Juw7U_gnEby>fYOt;FWM2G7Q!99=H;4Krsy zIn(Vnwq}zLyldMIlaBh018U^S4(hg+yd$bC$>4OUD0^cUHp3iIO@y!c$`;Wt?gT~Au7?m(G3}n z_?>#zoG7)SK2oDM$gj!?%M<B#gJ z|9xA(f=if%%J=kPP*t%l#e56clGOXW;I}2z{ z3`_M>?Z-2S&b1|>8hmtX&~!}*K|Vr&0HO#Ziug$?dl4@h3&*+dcBYwKOr)Cd_BvrG z`vRqkRoj0a)I{4AU;l@F#}>x5o$i~j z@c!rw9mhVqdez zgcUMZW%{4p$prLY8@5?0_H#ylRaN&A5{uu*eRb>Bts$aPUmg{AF>>$shw!WGVp{u^ z%FuB%w^7ZMiVCnjg>l#OXW0*bc}vD*K5wO}Wpvd3 ze0M-_VJhEXAP!|Fr7o?}n2cNp#g(vLFS_gZ%OHC62&O12wvO4Gz&HoDI&Pm(6Tqh_ zblnpreq2yoW{&kfH!l#l-eDDF2lAHGNR66;n*1zX-3J){8vnV4xv_xJo&wp~B1f({ z@vb|Ed9eU=_he{raXKucNVLwln2A(ztuV@B6oKwA@jD*p%uU*r3H!IYYA)pURH?dU zhwIq;VcSQ(+O*`!c!CYr^% z>=~4ePmeMmBj-M(f2jStDT?(!+ZT;R{;CdY)}gnx4^GMF?4OGYg7<-0{Qx{tCh7YX zzGx~lgtS)=HwyDswWD8|Z7w&aac-6i)s1~gvp@PnmSbg=WC-RhSm$r*y*}k8gZW5< ztVG1laE8RswTCt2F{@{}y8heE-=Ay?PP%_)Ch&X#ub((MrgKwm-pOL?AC`u;i8>-O z&9k>Tp6gf`P-exNRyTfGO}XS-w4_p;hK=9ai3?7mLna^QAQ;>ZkIl zEc|}656tnTBKV7_q5x?Hche?Idfvht!3|`va^6x-8_D*E z9Nc1z9p&$N-FNppXJvO$W_4f`sYA%{{b{t(#HG53xJrQHXt3^nT}ytf(~rH@0`<>T zd}Fzy2*|nBOykB!oi2n^R1aNO#KL)A;~bBp#o%BvG*F4SThry!bBe@^tKj%LD)mDH zJlsGpKuLZ$1%&_w)AMJjAA=-3A6u%~B?Ba?Dt9jJ3BhxV!@-)Syp`m@KXXR79E4y9 zofZW_5HsLZP6&fy9td(POJ6qDhr}Zu+^U=hJp|Xr;_fK^V$}+tTA?hT_4BVGXz4#= zG@sSc;*&|S)w|GBn1aN6ipk(ef<9%zuJ9hnsrHx`;LVRa?Zv?tuj6S%B4=6@}QC%3u61`@~?Fd3~sC{Ps-pcc?++~Kj$ zQmSQvHb1kMZtwB)nbRHTpvQ{;7=UpcUdJb!M}qS7`JCUQ*S`EhFHodtsVi;uCNhEP zA$ZTLE{BcoILUjro@SZTJ>Np%83WZ9b6kL;?g>_K9gIq8IGC2bW_U*-Xte*`{^h^N)EL99q8{#N4s`HyrR&pTt^7~aR3Oy+nzjoA%Tq6r6T>-#j z;6u0~ek9NiF@JP-szpNha3~4Rm3PN~LReV0`|W)-I`C4DRBk2|mP3$>hK=*md7p&* zHbpinj++N2|Ek*$U7x84^8p%Gf~dp?U}GN$n(bIM&8h#jMK9X_(a*Jv8WZ|4iLeb0 z5FF1W7{wT!>JPLBxFqQq`+9@;F|MAHJ6Q;HN^#xI4ExT4u8KVf!D`*5o=$*EL%gKUcE}4Qa17uJ zP>?HoqiHcw2yxf2t0;IxEhAe)=kMGbkI3@ICj68#_Yrax+Ai@N3k(t)Ntz}rSU&UU zhu7ltJy9J=qeLBs&gvM~?-b#XAM|e4J7`ndW;<7^X%1XGVR|B+R%#)uuQKCbn|p0f z+N31L{FQDIk3Me@0009hSqvZut#*saV;lim>?u%)o;@e_<-bT}wU7KSpkH0m$$9bb z-B)F3!P#B{PtJY7G6RRrammlGh3%L z{dTF?wRjE7Ie<-ATWA^WtKS_4&C^n#rMD?u6MO@oQ4*ljjt{_RmxQmj|rOB)>KN_-Q$)g#5Z*jjAK>!>C1!Hmz;cByzav*@nLf6_ra0mq6`*)2z zP0k7joNdhgcUR$8tdZl%GJO-aqN_@%AkO|R0S*PgY#wA-%68L9dB z^*T1@PsjWM7kL-5ZiaP~9@ufl?a^NJvQ3gOHzq6KmygerT`v6t##d-0z+vhDL|!Ho ziD?VSHzbdl_z=>{^i_rWpWY`J-D1v~11BrI#cNfw$=aE$7jxFWuU3e^YR^=evhS_k;`&rIMnN?dj{9<8l zD(?O%b&%~6x>mUUiba$UKHQmydsATJj#L9HF-`9+Js-;d!hTAl!e3_SwhCgI%e`a` zUt-Fw)&E!O?eeQPnsJ|v;Yh!@L$d~Q67?r{_)f2i&7GXhYxkgQ>38|#CD2PImsB@x z>2ORwqcx-$?GgXV(!2TzJgnUw0kHrfg zM;fY9%5e7+>w zv7+_cJm=ThJSB{kO4F9tIqR$9YZqS<~Bn>2(NHK4L+#A^Dsth$uye?sp`MM1;EDOxiZcR*bJm<`^+Ckpf>&F}V zsGk4rBeh?}3;OQvj3-Yqb-A78#Wz|UIqAP)8c0g$(r6?&3HCnkwwo%Sr8SQexb%_U z-=|xu)`U@*2RZ6kt_oxI95stT)Q`lZicD=YNysYuBzoSDQjt$$zlu>uu=ercjK{H( zGyoug-PzVrx6K+K$U3r|%}E5@$nLqnW8%rPG?(KGh=rz>&LH%!%Z5rPw89%wOO}&M zh%+3TW)rIx?atlog99@Ptp$1W=vPON&!kadN|5CdIlsmFhF70Pdkbg2J&q+BeeGaw zvJ8k2ASIv~tSxcoo=i_w)7rxEJd@fi`Sdx%gOb1Q}cz(6VmzzxPlxg!nNK%ilFnFSsBMLuQrthiZJ zYLN+!(f6^6R`to#*3hf$>&$?SO_C=U1S46+|e!v^NPSjw>9S2s*3Hft>{m#Q)9gl==>f zD9j@Pa>-Pq48#dG_l#i>YZ>Ph+5@nEjvvt^bVo413egINh&`KWCgZaoaQqTpgscUz zGIQDUiiD?2hj;ujZ9;rt>|%{;cVm!kW^+*rFh((p{b=K!JV&6J`8g9ZEJ_8vW$r?W zoIEG~6Qbk`@xgr2+W#z%v@Sb7R*XPy9}7k~%hl;-Tk=m30@vu_CqEyuzS%3tBKu{riooFtXVAh_t5$Ca<`*HL>@{v!ghCK_h{sqnI&0&czd6v7Cc&!r^0YM%k z;z+(cegk42m&cY#V6Cx%%>Jd|+(1A;&%Gkm2J4$PFKu{Q8KrM~a!C=!td%w_e3E|+ zmSa2VjNKujn6jUIO^u>`jcuur)8sfvBfTwqjNd8Hp*n$^`H;?Z7%;Zf!-YVK1)=l) z*@d)UkU`!fjCmP-H9vnTs=@+w?~!<7zS4oqXR0>@s`PDiC>r=aJM<9O$8|*t3IZZx zb((RhQd#Br{9W$-h`hsOYDp?sjVgZ@LUhhIqPREsMRB@l6IFL@Z`@SRT98_-%bXdp zJTC{Cla0u(qFqsY=nD_F_8g6}B)t624_7qlp zl=;|QpC)^0cwU<_-h|_61RQ0y$I?3PTpFX)jzux=Iq#E$)Xp(_wA}?YzF7k1pbn77 zum9p0cw?Dvu=Dg2qnWm6p6pahZf}86RJ~yVSjwP}QKa)t@hk@1(VdACESSC)Svcg zxcxvZMvM14YiVhk&dbA98J1xH>*l?w^q{C-kUop7&p*?pe`qSiU!euLS_kyw1*G%U|gi4x;fKm8BY6I&FS2#WOPz@k!kTH%Nc=#%Ou z_>bs-1C?+xprVFROlz(@8gEidXWr8YiJWw-NXhpn-MGo~N?XLCLi{q@rQ#XifRYQe z|AeY^Mb~&fD zYb|?qFeo%S$@-tP_oxj@ z_|;uJv8+a{AR+Rn;fAfHN)>}-x;6Irg_P~5n(D;nrMJ3_1gKrJ z1l^=HWjn{>ACm?;rE~NXu>=bN5@-wippw$o;{EZC-*9rPg-9}X535+g7&DE}9#t*8$q@I3GJhJ)QYJ`LiPcd=lcFh^1*Difa+(P>fN>6{xOM#%q6g9F0fm&r;Q%D>TEL}Nfz|= z@zibndk&(yexa$wUu;7=FkpBJ^XN#?r%h;=*Pzk|=uLo;G1U-FQa{4N`6nSLz5oaa z0E&)^L7&y12=gca0$!5cBWe$w%AV>tJXGlYa7s8U;DjdB-Lz6CjIb_yuN?A0d_Fo5 z8t;B!hL^m4s$Op5k)NZ(JWU7kW}A^!Zjk1$wQ7T+Icm2VN# zLxNVT0a*QW)j;B>nTzCMqA9Deo0o5-Zjf8w&+szgjMiF)pIJq$%cSVB8!>kzDNy1C z2;Uyb7e#kzn>#tF`YygdaH>w#s&%_+UCue5IR=2X zl-(6rI2-pEVV^}PY&|g#1lC)SG}L3RZ1lyOqONF%)k0&#h=|TlYVyf zmwDm8A*K=x>Ur|ML|;{~tDmELzVupZUkNbw)mH&|r!uu|e@@#T3%Vk=(bw0n z_88C}WU5Pup`3uXJs*`;93Q4&=x^p;SGz?EMX+)xTFo#4V-4(TGDP>d*oX zQa2~opl|!+=C7gtz|a`E2hW>{_P0^pIBX#_ zs?P@$jTR&TN{K6c$y?6oX0i-Cg(6~N0nXp0iM5m@T$U`sh`2AehuE;nJ+5^=0tMo0 zUvU)H=Z)BalOH$7;|*cHqdwL03l048P1?L>$W3Ek=_oM-lHe{iY-^hCOpv$2Wln{c zq*=?Beu95lTH!u?CaFL&baCB14U(g}@uRnxOvA!M`FTc`2^9r_j%qH(9`=-{#6bmB z-7Woa6uYp=v^NO~_P5;jL+$0Ib+o;+J=WsUK+iwYp2@pn!g5nD%7sW;qndlWx(S1j z&?NA+ZWDYi8QV z*o)iT0C|zco$oHj%_Pm zY1+}>9FHQQ(3;f*6b<{5cmKT|U(a2m@}QF}S7u)BQ?~p@SxPI@*IZbR@jE@7Y^`8Q zjnbyM@&ak+i_@D;4bKa`aV*FpA@Pbmsm?sx%R?9UP2@2Wu;M!3m#f4{sT*WBc5s2{ zM9y@?92cFx^u^jfc^!*1xWlQiE`1eL)Yjnvina5XA*^IK^=SYim&paX@?$WgKyF*v zyTk3FN4Hp4o)}rl_za>}$=4?9f0AKey{Y*883}oh&~%BLz%SNLDT1vy)K@i3gvHkpA^x;eNcjf_>} zo#Nf)L$|VzlEF(i)sp;&xZ0tYqI+)~tCu;HP*yge2>37XKu&01rPP6x|en^|6xBP`O%1gZo3>uTE$ZQsH-L@0u zl7jc^oW%x{SU?K{yO$ts!d>oU(n}B1E4W7-t6L3!{oTY<&=S1p&!8Hwn#G>xF<0!T zh3+s9yYQCH{U5q`=SBG&y^Hmy`Wf5y^F*a1hcYy8UxdCAjFO8?ZzxSFP=dKcbY-r7 zv5`}VNC`}kVHEY1vFW3UjeWb;bVvkFt_PYmx|7kviYe1V?I)GsY8=P^Qj=ocgOMDW+fHRDEMk}WdkjG(? zZ}#KZ_n_@ug2O4bq9c))m@KZl!ni4;{c5^>D6J&xCUw##%7O3li`L5BZwTkNR)Sd|Xng_+M zrRO94?_cU+HwU{GZ%6~sIZX+KIsQ#wo@5zS$$Nk1Wo|;f9^zhz_FV*NIMf-HVBDQ7 z4E%B)UnO;05mzb1n5zYJ4*a?hpzx=anX4DC+qZVb4t;sMn+D%|`nHM&Sl|Wkbrcz# zrQ~8zX)dwVN8x($KEtrLT`REmOMsAC2B5eTQ|hrHijF14@)y%gw7POHkdT!Ox!-u7 zDGymUxBCU|t}Ifdw&m34TfFnb(noQ(N#m1({LsecWyIs$4x9z-$lN~A{uKcb(;@L)Z`;v*Qv*G1 zIi8*dg=oUDx<}0X#zdpDe@&Tx;)(34w)zvLI-L2VE=Hg9SLX)Zn36VEZNEzym~M5( z&@4z7>Q|);i~?g$m1s)$aC@Qzoot>@(vt8rBG=H#)p-w%_HcI?8i)8b_M4a z!tw;zzy6iaark|u#9JqN&PtUCQ1y?36`e{oMZ}XS3E5tc#62P8uMuL6nka<1M@U-< zbX|1RQ-tex--0f;tUS0x!?>^97F0jPB8+8`5xiA$RfvHWT+WPG`lI2*4DHv0zLmiD zJE=58;zUqg;Z>7agYElv!dy3DC6}PFfM&~yv+!ONy z8oS9}`R!kxl_XIQOr&kH-6ahKn9$9mzuUj`T}a=oEwpc%c+;&SigeX)CZtuTvL2@W zn-`~Ega}I+YQa8GfrZe{Yht+dNikM8?UY}p+3@F}uCOUR5gNM_El7kPqCCeNsqmr< z?pI1%^21@lwB)7y4K`GI0|og|+0=(8ejp()6mjd;dmcKmq|~L%fe?EPkFL@LZ~1`u z&nj;LJKXb@t*i58v8NfqsjE@tldft&g}_wP!0>4dZkHVdapoN!nu_SUt?MbD8cf;X zP;W{k|6fa;B=f9HwhkQP-)gf#4t?)rN}lca91#KERj7t326>?<^X!{SU#>kAZUJMA zH0Ff=!LKqOwsRNp4nUMjW=7slB1~C|zOvn7>eb-7Yg4?K9D}fpSUQ=BLgUf6RQRfN z2zw5&6_@N^BUo3Y$r&f^Uz)EgWpQ!v+^T!pU;2h^MplDOiTV8nuZrL9%q7eb9`umW zn(t*usz2Im-(hZm_M0=|oh=(-#a;u_aXM4unkf4lpB*U-*-=^EX1)=8xOm*7;?W0E zjJJl!;6%&9!ek<|8&z)3YOeJk<|3*!o0e_-Uk=OmoaL(_Rfe()3i)nbWGN;A&N# z7G*{rxJ$iCQo5L)sV;fS5z^g{j7`zn6ywwL*1)!N#sn8L*U#FYq8@7!w}_)&8b2&D z!Ua0T`P7Y%o1$WaRcxJpVZ!$+fP8oB5oq9h^oEh)@ns!96^(O#b>99lzMhX0*iD7C zBLH#L&>$usLFR5ND$mW2tiSSkf6at?@WoMl;JyEGc=)SV?fM&$h;ZAN-%TpvvN$`4k?B|RW=}Z@s$1KEfJHWKtNfX!(%MzPg}1?{#wA-?X|c^fRBRtt zCQ9juh^!jr&RH7-za;_(r)j_5lqIdAx4YY3!~c~|a#cBd_aLK<%qPC;+t71)juGt> zcrrPa{Kv}!AQ^OYy-T-~1&TWZ!uLP<4Yqo7H&jGdvZhPLEN(yR!;CJognKDtaJdaE zFYSMdt{pVmZ&fAEH&VNih2hB`Fb^CZ?wQ95ar>d!L2%_jb(+|&pZWJI7$N#atonT- z6FVvXIzV8$C3JIz0S>$Hk*CM=kNP8WSG2+4&qA#g;G+Ne}5#B;;>^X$sEqzRt zh`xe!Purk??mnUB&C^(#@6sOLePU3xnaHpU;f0ZoOj41d+$kNB^LL(Y9yGPg+8iW} zgEwFDxU@4=VPrj1M?%IdE74__tMObal_{2M$T()~KB^J(`7w(;o64$wgl$Ni!OpSM zu`k4D1KU6Dn#du)9tN|TXb3Dz_4ukPrZNUIfDrj&g*22d^C_LiOwM9he7c3s>T$K@ zdc1Cms$3oTn)|xnb&PFL*`s|){!9DfPD~67<`dVhy#L<%d;Pf+8M<22_B550(^IIk z=mKWEUS+ifhY}QfOGbw1@Ks%JEQWM_T_tYNg*=ceqc|WqR z(`f%!@vS%m5^AJZriz-tC}_;#?q|g^hB?45&NeECZXS&@=0-J^Rx|rFQ0HR>p%cc- zUvZ=qxY=!SnHL-3JIaEjBSfwM??qaHrdL~K1E;8rruw9vA|{F+9A*#6i*R%2GiWjAeHd`(ll zm6-FG9j1CerYWEkRQh4E@?e$(9X2hb`?}oG7heOF0uYPm)qVAR@^bdh(v;v^uZd>G z^22bA$i%ff&W^<|J>E?+0?nb{d6%`QiNKGeWMmZKvLz8h0L;6=Q`j3ej!OudueyG5 zE-j#i!VE5q+(e3=3Dd_~pt|s`d!`|2G%o6VeiD65--<1@G^5fe;2kd%LeiQkeLUoC zcV(GNd$bFs5V$mrMU`w>R*SoP7Ej$V;|;%AbUeGzGw9=(ru0#pAQTp@KaRR=Ei+i( z&VbI2Jz>zp2gnWdjL6X0Sv=DL|txH(m)V_`paQqMym0D3k)n-pq48iC+l!U`Tt z8Iy6~Evv?i92rkGJH1z>HML;e?KjK zsIZ>0vJ)KJ=nrmR4EwZtPpawA8atXqkSBKSL&t6sX(%N22X8o`LkJr_4P^(nM;*gQ zKaVc$0gciail2{tMer}NF?pN+#fOLIoE+!dcVjWt+% z)Em*`y!=Ms0)5=CmANZ2RFKjo&byj>lx5U^z6jfrqzd;W_p^La5W0L^b}S$tx>qLp{kTt9mmy9oD%%X8wDeP~ z^l(M{FQ`XIzW!#i@G_i8J-O$6>_dQ_%;*p+@4U9_>Jb`|q(Jmuy2U*0>f7baQp4g? zX5q=NpH+oDn|?}?CJ`v@xBpiS-=ja~o6AeMDyn_Oh+>so%j{)8Tr3V44&8N!0D~nY zV6V6st@IJQj?f|8^Gi?J3mu+kilXchG&t*d2*>&?uVH%4;15=HeC^4z)%u`SPK*u< z?XgtY+sLRkOkapj`ffxC(ZpOsyzhTk3SV2F)#XTmEnNr2S4t-3#EWsUPjwjd;Dw{O zjM^os0Nd;SFh+6hbqA(LCm?Kpg~cu4Sn_ms^B!6EeMY=&OYG2nXXsl%UnnO&fZEWA z5ZsQ!0JU8>d~d%t7YljXP5viR%dNbiexoGffqaABM_7l|r+n^deZQa9$hNVMlY8ms zmuhr5@A>9vQVYHINRm%iP-8SKtrE2FLg`bXvD^L0wIqXEcR}=V&A=Ry$w6&gpcS;c zk@F91nm1iI&k5*hg$8Nzz}eyQTphCvk6!max%T*~Am#XCWx0>aweg2ma*w_6veBme z75_G&jx(E2R9bGg#8sHX58?=O3K3Qso|3`-(JE?r@Zrxo%KBGPyGIj)>mdtcc<_#u z{`_iT=$17%NJexVl&U-W>o3R;A%`sfgD-*{d%6kH9YLjL>u-F&|1(%swjc@k$vXbE zs85Q6Q_xP{V3HjcaRp4|p2X48VdrrR>E|%SHNMwTv)sfWrUK=7FJLxj*MV>V1q@cj z6r(7~UsrKfih?&bQ)j)0E-Xl;(glgPFF1XvKHCdIS#4}} zwgMqFjg$Cp|CJl3(K&JHSo*9rIJmNiAJY-i>Df9p(QV#o0Jh(|*A#&NTxTI{(Qsv< znmuRxfu5>cI-Ew42w@It2~(Vk(|`KHTKG$4F#uFUW1TI z2a&PEM{ndmxx(EwqxA_B^y^@GUY8CE2Ri9X$eK}Q$<@WxAV)6^yinzX?BgFHj|+S47c71eE7`C4V~8`NK1c%0 zrp>XI^_w9)p|_4=D5m=6L0-iDlA(3HF)aM4Z%}*v`N5cjMu8>ExGW26m_n#JuOc9&Nyi4+MJ z^VVVQVJ>%tU06yOrWYxdNqkS8=Q+QcV{PzP1)O+^_BJvMo^;U0*51LVOgxYMOhi`qC86voKS_jDvfY z5ocS*FV3>OTFP8*w~~In?{`8lukhoC>~hK&LMQg>zIj9`c2iGzC&}uF$uW&A%c54P z!dtw2FE_u6vm7Y1U0Zz8QQ;l)`7qLF7wh3!X{b>iTh8*9g;n3VYhH`ur3q)cEq)CcXX;mX?@oDs)Mpl??(C zOZbU)-D3x1&VOb8v}HSDzVtzYP2br^=6G2taQ{tC?iThrd@u04j-MvtWna1|urUi~ z1uIx>N3}_qEfA{th9Bd?!f8Xg9jKSbrg(?fJCVonv3H*o3_t0y_x9^pd!$}LQE>^= z@ft9%iQ#dB)fg3lxO4NT{G=%*-o^f{clIG(6d5!$EC*B|D;y%ue2%c*6n~-+ibz-s zLMk1a!lEkaTZ=ZgG4?o^!VI+Fsu19WVSRJL%v90Vn7|YB4=2BO2lI? z{zV)o!Us|f!;bL-O1<2X+Ra&O5xepbr*cey&0bxaHHQ?j#}^9f96LxzszE}&%+2cQ zk6qQ;zd%Fh=|QLl?uz7R?bdHWi`e<%E(J`s9OU+|#;Afb%~QadB>k&LouhzmZv=Pe zn3YHFPL)t_!s<}jP@dt6Ru+J9nVGZlqxa8AV_YNl0 zL*9U%Bq6`5*#n==p)GkzQB2O+4Jn{yBEg6;4uk(k3wK2k^9ebDx$e;AP)$4x{}i&n zWxhaTRIK7Fs!u2&`ZQC#DgTJuB$5e^%VqC{zOX?-BB#C|Uo$#>c!s%a2@T$G%>AWh z2*RD`%FT}|*s2R>67`zR($ANY|Cq3D>^;bL6ECB8c%9`vhi1B{j>E_})Fuo|WR_VK zjCs>D;3Pvi+2oB$VdNap95xoM`pxQnVa<4}q)UOIg>)ds{+fJdCcZrW!oN<*GdGh! zgiQYw`|D&)DA1Et_)cHdSfk`F2KCRVpeth1q{H#hgK7+o^72( zdL{%>!^Bnbr34D^p)(}`j8nzJ*6nH#QNkQgdPLMP8>@WDgJ4$ z<#Fg$oLR*s0sp3m1AbHd_Up#U&r5QaY%7s<&kL7KRAP>#Ys#fMk9IL%Y+UJ19W~uT zYkbP=sUiNbnN)zfyZ_P6maS3NBhj`fanieXKLH(Yn0O;hpr90+0%@}YJSov;i^ccd zb%=WFkfbzha6`@e)M@9);xtTGbGPXCpew!(YFLg%7Ro-SW5D8O^n))AWKOetSks?pyZfmNGnHlFa<5M zjuDawNbjN<7aE~1W`5ka{Q`rF=rcvjxeGMFw;alp-`7xVYU%JIr$+lSoqjMWr?8-4 zbAfOWH>|B@ZT`ndZe7CZ&W>3(9Z8xkH<*`4f5XX^kb*Zyo-K?c;-Ok%mD2(VG-$)x z3!ebXK|>%Wgfk}O`*R?V!M`{5`KPj!Sb_lFxC#5XJsagm*9~mKtd9-6l~jzH@`l&9 z+{Z9@JfFRP#QFEwqQs%b|mzC-iF1%`5_*vL7^$m=O&(nlDn;TS<( zx#;aXDRxzkrYfcIagRu7k&4^NM^{f1@ZXKO&V=*xE~a0BMWX*Zi_>#UW%uh9%VMY( zXD0m5-y(!g61xAX1ftJ|;__`vdw+NL?DF~iA3H@?J4Kq5_yIjt(0GqJCSzkMW|5fk zoy!`{f;0oPK=SS}j8)bX(Ba$uD2_7+WH`)4=tc<=V&y?|xUS++M-1FtEg1~PlEk}p zW+8)Jr;ytwTk+>3=v?+6%ANOKKm#*5kNuysN8Kq%WC-)|TxqIZ2{XPQoI5icI6BDA z8Us~|VT47PG|qbtC!B*<&bZn5Gfyr7&Mewy_1eWc3jyJhC6+Uh>@g4Tm+W%8-Bm-f z9uM@kvum`{Edr$Or`_!X>%z%M+NP^?#wr6FMX09+slY%K?bo3>*} z?0gLjZ14}nb{CtIi2>X0OfOKrB@Lrcii@!)Vk8Da>8K$%XWen~`r z4#PDtQ@B{rw6D5zDq6XK*XtYEuX{f7@vkM>zqdMbO8Kwnm|D?xcH&3oL$I3fOie(z ze+@HQkmQV)VkL+gkdZ6PzEPGUv z%T8DoHI9IUD$t$+>Z`WPvs8r@ik5oEQB0mt^ArTXsmd=ImcEF1)1 zEHzxSdxG7Uf2`6{vlPKf#sB2WwTlj;Z&KCvbcw1olmU#tCgn9RJz;c=M%IjHe_SXtJ2BDpJy7Uux?>i>_I=*DnOV?SF z)d7T(>o6Rf`k>Bh!2283rL$WL1(EXl)8STEl*|Zw`R7a}MVQ)Q*63cZ0xjg-#$pA= z7Xb+E&u3HmX@qhtvHf5Ja0U54D_ef?QTM70lQa3{xQ2cw$frhh5D{x>l?`fuDE$de zo)+F-?t1BPqz%@xosxRUalZfIv=`#hFTv0JE#;*$t!EUDI*Px1tpY4t|J~YFgUf=? z?@2!!?qYnK(|gmBR>lkL7y@d&I>V%yBXpP&y_e#uAAFwIX8GC3b3B%m<7IbF4td#d zCDiH&OpwD`#cEE;+zB$NKt{e>5+?5!v?df&bwXNapDnrGwMpQot9 z6P#aO&37RsIQsb~<2gNhWzrq4s{iO0p16bg89;dfMp`0O%W(BpNrl5=EnqjEGEu*H z#~UDEXOZY$* zmVJ(v{^d<#cEs)c2}fb>vttbB^hMtip^)^q4{aA(pQQkIO{C zo58w1kpIe^=xVXzD^S0|_9%o2l0|LaKVh9zSnIEc5hAN1NQe%Q>^$yJbWg}h5~oNe zbCcLrUPgLyol+ZTFwRs3nDt%6r||E1*c%RO8PcJhBjysFUZ*)gW%#`$pw*KN`% zs*l`kn@=7uHiQk8XB@0SYI;dqT^u{LAW4f>8d+Gi<-ez*TKgc~v$V_vto`iYQNj@pQAvlHO6oY{Vn_ zcg+EPPF1|2>Ug6FOf<%scHX@uAI;{k#*aKKF2)Z8tLk5^VVpMOOZ<4sak!S|N`YnpS!C%adJfp646++4X8Bn(I-`Ceu=3kD{ZpFZCMO`y!${X7q zr2W^Ecwy*&eJoAVlj!Zo+cOcSyZ`21t@x9m_f4&Vu9@+&ci)vQptbmtXC@#I8i`(K zU#Sku)Y5Pc4kmbC2L<1rTXU1% zi{{HKRwSItAjsJI7Em(3SKs#-%R~kAEU55!A!eCY{r4M3D9HYVTK&o`+7Q7^Y@KE~ zbU0$)ad2x$630($(A)-RqUcfsDFQKY_DKTM#|=Ra(o_>+Ktj(#H&%OJFI;T#B>IEM zkn(48+8Oyrwy@X2~5B**@%jk8S~qnC)s2f zQ)(f=P{6>8iPx6al2N2kYSdAi=OqEylf5mP4(>JkJmGec;drQ{$^=PNP|-G?D8bUN z!vcc)qGJLh^Y=|tsc|G~iG=ocxr)YK#-&59k}e#qRLj-wD>J~S@*_^Jifd?sQ>A9L z)DN3^D>sM%8R$5DYxW$6`s1U`T#z5!k_>;p6*&pAk18Ov}z zFLgWj?hwD2@M6#H5urVsb7oqCH`ahh@ZyuIa@8G;I?8hzSAQWe23Hn=H`dSbv8MSI z@ABMd?iHQcEBMJ<(YE<{iwb1>&Di}uUEO5<;lc6J1e{YDnW?1ld zubpe3dmmp_@+GapXGk5Os4wyXZskO}Qn+hqQK3R!%ehj34`#mZSYn^Bm#{(9Jb138 z&5R)RyE7RRNNk8jfg{A5m~N&BZdQo`COGLQoSR@FV`RyF*^@V#Xa!p`1T3N?6Mkeb zs`5Ql&FReB179MO6@){`O95^|3L%t))aYRq{C9SsZ&vE$vRR-DN<29#8}nj})XKC| z+AZb9N>c>-nlu3ujQ*x!N3@w^n@f+8Ygg3exmD)z@VPe}$HA8Z@kZRwrRP!jg-svL?rzz_-yk$ac;&?(kb)p`%l={G8r zXLa;#Kp-NCq}4wQ-VWFQ%7RW#{$p99AS5a#9ixqf$EIBQNs`)$Kzn-*fB*mg|NsC0|NsC0|NsC0|NsC0|NsC0|NsC0 z|NsC0|Nr20p8)s>0FVFx00007gegRm*V}x1ww-q^*3yl=-p+Mh-BEZiZrhM`xgM{8 z0002<-ffKvS+K92U3YHX#}V4ibn9*1n6|fNfu)_=qjuMBcUzWr-6APl zcQk8t-QO45kxlD2*j~Z)gX{oz*^=SBfF&p0dCp#snA9Ho?g!sHhM0%jb&wACfxzns z0lkhT9J^k9uYKP3Z>zPNXWhN+ySrUZrtP_CcFif%N;(x?u_Jaa;_lsZvrBCqmu|OR zWw&b2ZhPG3joUhL%#!Ne+px)3F5RxtuCul%=D<63xaoGCn>IUYx(jQ&sk>aw9ochr zE3L-MY`V~Z8B&KQ#8cUsf_@hiGea{lL%?*X@NGT zrpbby6B7hvVK7t4rV6L*0%*u-hKRys$jN{cRPz%in2i%{1wB+6o*@W?(rJi{h|N<+ zsL%}!qZHFj)Byb=dV^{J8`O;r292m~AZhA7L8gOhdLf_yJwQDp)EXKCL8d@@fuI4V zfsh7(kt85ZGy-Xm6DETuYH5k4jE1Jv+8G)~4GbehZ5o(qqf^wzr;wU>hEan}002xA z2AVXOj8cA0H9az9!7x)zJxzjoOqhnIQ%h#86{V;g*j+~;V-mTZA1%v1Uyt9pSuGO= zRo5cI3U!Uys=M_}C?cXK7=U4l#+ou`A;n&6<9?GDC3}4EQv$`D-$J)>u<3p@1 zRiu7bcj5ZpXR~;n+?^gi)0`0sG0ouR)1bNTE4gw{!uY~&_fV}>s(cZ9Wod7O4Ebqq zZw%s$$eP)mMPc;AMM%nP1ur z!YZVyhA1#^G}5&HF4mEgc{Wc5MKPmEb54)Le&8zQvd}j`=ckmZUTLTVq%;U)vT0Mx zK#7lAhScCQd>;SoW4L`?kzTn7GWnGWF&ZLzVjv5XsGWeA3b!OFe^8$#gN0$ZD4VrslvLu~{kp5P7u1lk0~kT!v|HiDx* zR*(RE%n%DlzCr|-B`5&U?xc%`69ObKEIa3m;UKnql1YJ!ANgTi(-4+Dg_PN;2^(M8 zj7;m1;IH$fu7-)#5KPf?Uh0W8NMzzwD^E<>V7fWKk>vH0asH>aN)h{KUKf8n(X+rC zE5vN{8V_4K_E+ikV~fve$K$;oy-4BCzGs=o%-4zz7du{Bjc*(aJ9OCRpQiv_A5?8& z!yNO&)p21PfH$uUC5C1DYTqxgJM{~D(fNFg-N(1d>vguaKAl}oF>W~QXv>MwlVC$t zPVy@cxBU=u4Aj{mVx#H7ZeNdo&AU3OjW@pV<7{muS9+U$=VD^{^Bpf9PuzcM^4|53 zZeNb=WA`&9kDBoD>UUemCu78(>by?k<$W82dNNEz2WXZ656l z&eg%6##wnRo5R${SMq;M9)6x#@McxBdFUpr-rJzXVYhZZhR&Q*SjQxvpQG*fg8e=c zlssf||CjY|2Ic5xt3dbebIlZz?>3yw9vjQsuww!g8`R=EX(Si3)4;I zaU1No1I>>^x994qv#jo1h32h65)Vn9re^kj8_}U#O7MSGr7Yw7yi3|}Rj#;O9%n1& z^ftee%tv0u!Q|`ab9Z@(yoSE2hGU=@&Fib6=;($3yJmg-F4eB@R)(6`Z?T(R(=B=W z|7D-_bZxfdD%V-k$4P|DbrT;OMpYjpj9Y92=}EhxefYpz?js16TWK5CMqjU;z-s3q$Tg7K3+y3;sR`Xu&W8QNBV*1Fd2b z66debkWyfe{pw)Mu>|wLlNtaaq_1vRJo{~q>Cm^ zC{kobM+*hl>DKj@bF9{$up5DK3cErs5qEDSBH`RMrD9Dnf@!pd&=)M3siP5RYi)6D zb8%G_@9?V@u#t4stl=d@L`aGnnrMcKD1j+op#cpEe?}11%_szh(`hz0CXl%DtRw(k zLWCqoj736H78r9RV+N3eqwk2nG`psf1M)N$Vrf-kCt7yx53Bl>7_@!^^P!Y(gwCB!5N$w0`SZN2b8RiLcn{CJ#t|^wk-- z1MIZ9Mzid}G+eY8G&F+@#EdKOdFV%i(T!_-IEY7l&smF3#j)(+2s4d*9!0E=srK&- z_GQ!?HU{&yN66CTnLjrH%CqBV*3$5uvkOxt0?9r>{NEIR%h78&*&xUaS{KGX#h*z1 zmLuFBDD`@*xNIzd~Lksx*TKiHi*3Gw`=g4h5}i&uL6dp*yW^aagYUO*mum#+Q50uEt@cJjAt3VLDGK6Lf-F4_u0g- z+F|`%_i;EB`~HC?C6ayk|I2ie!=gm~1dm zgX3aHh0Z_-IqBodplN9fj7=O<(%>Iagbqn&>xQicEyQ{Gj5Jk?0*x>nHF87ApmucH2rgM-Pn1x z$W!i_sOvq?Cn@jo*qWh_VrjlLq1BN}ttzyt)uM_hqKbS?PxJYvLc&>3zIAC*wGd!}S8LorTf<&Q)CO-)PiUGL7H63Hqm^n7R(f>%RhTCZu3AS=4 zqZ9AhKnUdwIE&x-h+24V83_P^Okh{kKpQ*OghKZ5)v7|kns0t~sFpavkMN)NCuU6u z^nf955DHKj2n4s5h(+LLvB6AwwrCwD=@K_{cLY{C!KHhR6Xm%+q9IgXcC>z!}UOOW0;xgR$@_$BiGGjTr&F+0&U&`VDvEYH2n4X~iw zhBg*%n@2O`RiS^^`22f6f+__G)w5kEnG(G3q%qJHHh&$=>1jJn2ao!8RDA|hl=HKF zDVw{e!{K9gV2uX85s~L1E)k>)J%x`4aF3CoTo#KCiv}5 ziAN7>>O%3nfWAh{p5Nl(+w@W{ZuZM>gSpwc|U9;qZ7&#}{Wf004Lj@FNo2xNaY96h0M`$e_30ypG&V z>r*v868~*Jyy!~+AOuhX0FP_>=y(qEv(sd|ZeMIU9>%%_b^GB7EVDw+v*&$N?|!Hd zWEipRTx&n|>N(%vgP0ON##hSheP4Ekyyvx&ONP?$6~3%4JCWP=cnUmgC97fQcsAV^ zTY3MKxi4FPz|HWzcSr3>WbwJlZ`Jx8=P##~AInU5(mQYW8SO+MULyf}hRWY_#JfX< zM2B?poM(S05^%Ne9kS((#4O=}y6~yUewKD>d@a%#J|1E$FW}7bq*e|-LwLd9XVJm- zW1^L)rJuR1{9y_L6cmO7?uh#sdBZ4eaJ)slh>e1(>bYxgQ{Da)yRQPrnS|J4tv?sn zwcFj*O1R5}#sRr%<&k{^0*`?riJgIE1!gZq7+bes9}yALbZ z#dcP`M(?WZUb47aYrwbg;z{w*h)5v*7)d5V##uGs(k$~gK$bPa;6t0;fzl)axOjiw zAnW-l-*hZZ(h}Qd9zQ2lLFeSTL4b4DgZGF+2(f^IdK%A6no4PKCbuYB4@Q@{66NSR z`*9b#d*HL%`>RbSh%$PwJkwV@g9l8&F%KPAxn@8?sydMqCM3H!b6Ak|}PF8&xh|-L=(-z7=LcTFig*RH07w8Bz5E ztbzPeRN6u;^AEuQMg)D8q3{kmp#V9I-%@0V+WZ&x>#y!tXC78QMqTg8JChHewue)J z6^lo?MI?$npvhNP1@8S*@A{EDTv21@EK;jz9=khc02j3aFr+&8;aQ$IKvG!SMQjJunF443xu4SM{nxE*q zU|1I`VgW!20RS!UH%ul@|91*AeXH93JlT7GmwB$Iqs%<^|+3JYa6lMFu>RK}6yVES}( z&!61dkafC9Fork{c{b#M`hQ{YNUf~ebC?U!|9fzlk<9S@}+qrdJ?vr|-Gy6SU zzLO*4c{%bdI%A|UED|MG2qd}3;J+QG#ZPHbW~dpz4358nQSG(1(b+ye;XP)`SSK+NuY~9H|jNK&JpQy))ZTA_FQE&U=@T=rL6|E|~E$ zdy`D97=N%_eLkfrm#LFf#3Eoug$g4}gt_D4Y!Rdcp=&Vsho*rLG{Em6BQP%wn|NxY#=*?t=jwGnZ^P^7 z`ai$aZL#TX*7@8qy0=wCG7!fNxKRj&4MRgsp^c0NLv9;!5Zi6GHy=jRo8&e;Mu^c9 zYwA?e1pt8>VcluWyp{a8UqcX@j4TsG27TDjd4DX14%=sq=lDxn`2BZj3qCnG|bT{4vo7A zs*6VONH#Ps4AKR=p64+I2n=HoC4G`1^Nj+9kD%c~9eD_nf`|_QH~7vr__)ooVsQ0Y@>%PLJjM+l*{|A8L{gb8eb($qsyDp%sMPX3QMY@^jZaA|5dvB? z1=pWrgEXR<>#;WwP4>|nlL=wXpB6gw9nxJ%c9mfg-5K;jIletZdn^3#g+(f4i^Y0L z@tT5fe?+QH&rtEd0svNvfi&QDW!mz<#as#O=}M!??WpP4w2DFK;t%{y!Ry4k+a5W4?Vgo6)vO;Chlp*R_Yf|1LCri@t?~__C|vPJ_@y`jic9VEiuy^cYmeB;a5o zanEI$*T$N*!*8FQuz(-UI#;ahp?R2 z^1J=J3@7ydKT-~eXkB&+Qfa2Z-2}bXTz+1|x!GOnHqS5B>}a{TOEXq&F9CIF-cvvu zbs2F&q^hrL8-#|pm;*bFobf1f2T8Kd8p_o8{rND9=rr4lI|*Qc0@(ATmnT1cq^Ale zI38zV(0nn0w8bgoW;E^Vc|51-S86OYtZUR%gp)jj-SDb=sA0kZ1sBK07(O?DW4sfS z*Mey1f13XB&1`8Ue2Cr(%XmSe-2Pa18WJb&R_LzVXq@a<4py=|laPwv%f!^SX1&+y z^^%0(00a<)a=6z9g(-G#A|#&K(To48PVzmV-SD|bW=<%EY)_?6;EpK_7-Hj zO5ZlW;HYx$Atv!GBx;P7jhOKl6kh9gmO!0&pubj8m^vrJXC^5C9U~*c-~lHqSzE?{ z2mpYXa5~-YY8S*eadN4%Iu-Nw4o+{}pNeKZuf?Nk^rj~Ni&x(27D0uxeEip9RGh5WSjC-1Vl?9q8vTp{8O$&a0)z+)ZOEs79-^WU zfj^v7-IRA$QnQY^%^qBzei(O@d=UKN2T$6wbrinF#j4YUGsRgZRiee9#qPOxpeW8m&dM}iQbU!kUYdGz>PYA#F z5KmJmU~-=o`6wQ%39TbAqTFxovUQW?3&zhUsdt zI@zte#4mP*_T27CEc@C`~wo!fxY`Ip89%XGTH81@= z^tqzBv@Rqu1VHV(>EWoa(w*uE2`{<+1|C*YU5H4pP2S%5u`%L#sFnD#CCcb-cY9nI zU_h8>zDqI<1N!oMJx_(yowjr488>BzGzx#Qx#C|eBsaA^3%~lqD6F;p2b81KjZ*$k zO=nDST1eawYHGMwHiEU2_RwaRH3QDEXmYoc`OA*pj)o5g&RDY@#zq(X&c~ZnzJ*;A zZQe#~w;VBJsFn|+9mo{}t;jOKFoGuVANgHOf;CHc1+WR>+=PD>${@+oy=Ec_scE}k zZKjH{ejQRq1}4f1>6ox-MMqy{)*bUnGKgRXc#5^V!>O(&Lg-Yr95IB5SI0KJDy=tr z3Tn2EY_Z*_qPV!rvY|PNNS$@OwT5#?+8EkJt_=9W|86d%Oz;uX%I%voz2J ze4zQ}w8-}>@8w&8<38HEAJ_=MIkM6cn{Ol4bhi@HJQ_`)^WhV< z9A;s&Xn0f@%$|xCTDp^XPATRxn^D}D;oN(a5t#e3@vYbyEwu?Cq;#eHjm2|BC%zqK3Tb=RxRrCnylTjiPcZ9(D zUtQpXE^4)^=j8R(QMQ*bCLsc37F0kEDGvkP$hQ*$wt8KH;>0LIJZ+k z^VluHD1FoG8`_!}FhyRWl1?+Yb^h@KigG0j(ob4x6ZG~dIbsvYeU*v7Yeb(1LlXgM zW!6ZcQY_470kjYy*ern`KndK-Wd!8L zg1TvHzE zaXA?}PtYS!Y=h0rwa_21`6-jvLS7>f`MYWx1w5|hq(OBRyLT)iiU4s)4*Tj@C_z%Q z7Jq5@d{rvU$Va0*i%_3`Z3ID|P%toDaZ|^xQ7sm9e>|o0El@^HqicCPK$wMp@&?9I zv;LnuzgOCF>H6zds}2BM6=@|tr+e~W&HKwI%T~wlzW{l}IHM@EG`*A)vc1{2 z?4B@tyy`j4>+$~0RNp4kD{<;_?-zVT8>HGV-qGu{ex5lN%%@5UuaIXtc<6_a#9LiK z++aR6M<7&d+#vMpAD-MV+YBC^9LmpD4s-?n00ZO{0YDTeP*ihEd}W7kpeYhKXokMy zExBKJ2WwEi)!%leHf~~Ul%i^LOj2r{9a7g znrPo83yb2+&~F#JrZU@D8o?E&foY0Z&X66lFM!21;4Ap6+FI7rqP&Dngv?{OjXfUh$F?&aMeER+Jqkp_zbD6#kGXnVJ_{ z3ANv;nmBWN`1O0_X67|`yy-xsFiV)-QH0$I5H86QTt;@I5+r6x7}9R;T*_026g0*z zE>OuP(Uk5Y6DuKxw`r`8$LUssVVmd)11iUxRTo;_j1d5qrcte_nWqpSiZcdpR72*2 zFs_x6#i?en2Lczo}KHbtz)%*BLh=RO7-?ipv)_ zVP+M=3Ic$lxfQWeX63st53xQJ=~$hwW{|Irp!Uc7I6-PiMA#d^*7WiAZ*JS7g=?-SaU37 zvA-JLG)pt6($kStkThPG6y&8%(+*wjb**4V8OA1Y5mYuf0vNeYWi}}VcrXOsqKM7m zLI$ex=LZoNhIGps!wo61(P+_3#&cOB5!H#(G`%D!!X+$-T4JE=o0&7Hc#_D(DXTy$ zvu`*eYxn8UJ5moSgt$$|K6lFC-fb;R z%mi`88dl+s#S(@Ag@C>oT~H9d<~SUnOW8%%`J8nYxMn!~^z^G;{Nb9(O0JV}gvq0hlnir7(cx}@Ad(* zN{Pouk2N4!?UjI?6!YS#BvpOczwa|me#y$0;1B>M)l4+)AWb&Nmi+eo*-`$`BS94% zhw*J!MCW{{3#i>R*ne{&{v7fQ5!Enz<={n;j@nEcHU95x-@3rnaClG&DRu8XEsW+u z*gvj`PX|?6l}dMZ4f1!T{%~2d=U){#3U6$@`lpWo07V9YPO+#PgNu%Gl%gl^$amMQ z0^?(kW4EfyYs+fM%kL&k^uTSxSK&-JxVs*KUb;Zkh6k)F*66Z@Z=Ki9Pz$gF7)V{1 zaDOqRVrq39|0$TE#2;0(o*Nyk8dnaCBhflxTbNXju#)%C;Mhe??D=%ey}S2~N*B`& zpfKug)d2wxZ1<%!vbZt$8H)-~bG8>^6-6^N0QdqZpZ^PY6K>h?+T>#SMNH1BLm}Qp%l&c-GqPG1ta*K}-{ErI-xc+Q#N+T4hK|`p zPuukzr{?eNejPEYXUEIbV{Fbqn4TNIS0Zoox@u}4duqyR`4iCJG`ru>`y)VBxJjO~ zihyyS84xjL&uKic?}Kc(Oz<^ZR3*`TE)nxX!G6}+eMnv;qkp&XkF> zrHU7}%Neo361Pb6({X{In)QMFPV`H8yJLedmy-KHoQLKZ8Ks85S<}xlK90mu15q-$ zc~Fic#Q(gt%3_p{Yr7f3Hi^Aop)NBV#iO^katpvQYaDwEp|cJxa|*K~UI8wUZVOz1 z-}5Zo{9IaUX{ahNWOE;Kuy%x%KNWh1VoyJ7eW=CZyMFIxctZVolw~7H8rC2XNQ?$J zS8zOjXFIo3`pV@md5^Im(fV!}dt6;)d|%qXZ}l*5>5zs&yD|MyZ{5(7ylILf;gbDn z>ZPO7@Sv2g+Tgo65~^!`sa(a6cd5k|YtRA!5JB@Qv{kDnz2uwDSu3v!d$s4puj@B? z7xc6rez)axiszyd`Xf9rPOqm-f0dn>Yi}FR6@(HI26(utL7oE#8Bpmp-ZsSZsTy=- z3Aa7crais99GHGg`&Z+C-sb8p58%ehNI^H+7|a+cMF zE;(jBM*nD_g;~yUALmKkpXJrFjY>42 zIx#e6xOBWN4DC?Qf(bhWVI={-U2SaX5t8@-uE{4qr}XR?SIp@twkjx~Y`D)H?FZL#IV64M*=5)3Qxe8d4 zh5OVd1ynLazPXVZfkB57cE&H4Cj{IK_a3X#e~;|*Js*31@ODSt*O`1?wF1w)N~6K# zUi*<%Akw_#)B3*=Qu$nyhOun}^@Yc$1bkY!qZMz|bRnl^N(Ys1`{&HEk}>AWiz4e4 z$j9dH=rnq%LbnbOIv;H7zFO$jYDOd~&YeIm#4Jhv{}(MDO9z4My>8!v$9=Nf>)K#> z%r*k^{CJ%fvy|X_;VnDRwf9@HiMj|=w6v2#KXJrUke9GyM%ErdQKry&ECP=g_Eshm z&~@L7$<%5!#$@d2AY&ksd^(DZitnVf&TTT?X(hKfhYTR?oaC?CPi?}&a>&X$FJotF z7-b*!5k*k&Gmjh!{W(`6hpq(IeleECgH7i4!Hhi*dWc$3Kw)13@$0isYY3&lRyfu5 z&+z8De@9)#XSa=ri-ZIK z5o)9WLB7d@A|W^>c%*aOf4posRo35>dvWiE1kK-;Hltr-)M6^0vws`H6qT66q2gRu z9uss#8tT1&nCO)KYOuee<=6l_mk0m^s03qL4U~Be)pfTujS)`_G3e75SbYm_0=_Hf zQ3g(jsq*I^1~z*{)eWm*G+wj7f7=ZVlw3SmzX(tJqkmKAE&|wj3@8ELa`P}%#MV95 zNi`>184nKZi{8}CEd65Fmbn&+qDd$UtR#N=W0uHE^HWtr!-e@E zA=5PxV~BK9%jK`i)TJu%1Oog@kV9gt0xI9OrF#pip>$EcJEqoXa#pd=7uj7>iK0Kf z(Lz?%{_zC~DlR4FXBSxS{$>jq&&+9+Bz6 z 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%0AT!K8FGWrOe;-;>x)aCCg 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 "beadtbn" +# +function get_stream_abbrev +{ + typeset stem=$1 + typeset -l abbrev="" + typeset IFS="-" + + for part in $stem; do + abbrev="${abbrev}${part%"${part#?}"}" + done + + echo "$abbrev" +} + +# +# Receive a stream into $POOL/recv, compute sorted xxhsum -H2 of all +# regular files under the mountpoint, and write the result to $1. +# Destroys $POOL/recv afterward if $2 is set to "cleanup". +# +function recv_and_hash +{ + typeset hashfile=$1 + typeset stream=$2 + typeset cleanup=${3:-""} + + log_must zfs receive -F $POOL/recv < "$stream" + typeset mnt=$(get_prop mountpoint $POOL/recv) + ( cd "$mnt" && find . -type f -print0 | sort -z | \ + xargs -0 xxhsum -H2 ) > "$hashfile" + if [[ -n $cleanup ]]; then + log_must zfs destroy -r $POOL/recv + fi +} diff --git a/tests/zfs-tests/tests/functional/zstream/zstream_checksum_001_pos.ksh b/tests/zfs-tests/tests/functional/zstream/zstream_checksum_001_pos.ksh new file mode 100755 index 000000000000..4238c178be26 --- /dev/null +++ b/tests/zfs-tests/tests/functional/zstream/zstream_checksum_001_pos.ksh @@ -0,0 +1,66 @@ +#!/bin/ksh -p +# SPDX-License-Identifier: CDDL-1.0 + +# +# This file and its contents are supplied under the terms of the +# Common Development and Distribution License ("CDDL"), version 1.0. +# You may only use this file in accordance with the terms of version +# 1.0 of the CDDL. +# +# A full copy of the text of the CDDL should have accompanied this +# source. A copy of the CDDL is also available via the Internet at +# http://www.illumos.org/license/CDDL. +# + +# +# Copyright (c) 2026 by Garth Snyder. All rights reserved. +# + +. $STF_SUITE/tests/functional/zstream/zstream.kshlib + +# +# Description: +# Verify that very long payload records are checksummed correctly by +# running them through zstream redup (which recalculates checksums but is +# otherwise a no-op). This exercises the 8MiB Fletcher4 chunk boundary +# handling. There are test streams of both endiannesses because opposite- +# endian checksumming is a slightly separate path. +# +# Strategy: +# 1. Decompress the long-payloads test streams +# 2. Pipe through zstream redup +# 3. Verify the output is byte-identical to the input +# + +verify_runnable "both" + +log_assert "Verify long payload records are checksummed correctly." + +typeset -a streams=( + little-endian-long-payloads + big-endian-long-payloads +) + +typeset failed="" + +for stem in "${streams[@]}"; do + + typeset src="$ZSTREAM_DATADIR/${stem}.zsend.bz2" + typeset orig="$BACKDIR/${stem}.zsend.orig" + typeset redup_out="$BACKDIR/${stem}.zsend.redup" + + bzcat "$src" > "$orig" + log_must eval "zstream redup '$orig' > '$redup_out'" + + if cmp -s "$ref" "$out" > /dev/null 2>&1; then + log_note "MISMATCH: $stem" + failed="$failed $stem" + fi + + log_must cmp -s "$orig" "$redup_out" + +done + +[[ -z $failed ]] || log_fail "Round-trip mismatch for: $failed" + +log_pass "Long-payload records are checksummed correctly." diff --git a/tests/zfs-tests/tests/functional/zstream/zstream_decompress_001_pos.ksh b/tests/zfs-tests/tests/functional/zstream/zstream_decompress_001_pos.ksh new file mode 100755 index 000000000000..9029b4880619 --- /dev/null +++ b/tests/zfs-tests/tests/functional/zstream/zstream_decompress_001_pos.ksh @@ -0,0 +1,98 @@ +#!/bin/ksh -p +# SPDX-License-Identifier: CDDL-1.0 + +# +# This file and its contents are supplied under the terms of the +# Common Development and Distribution License ("CDDL"), version 1.0. +# You may only use this file in accordance with the terms of version +# 1.0 of the CDDL. +# +# A full copy of the text of the CDDL should have accompanied this +# source. A copy of the CDDL is also available via the Internet at +# http://www.illumos.org/license/CDDL. +# + +# +# Copyright (c) 2026 by Garth Snyder. All rights reserved. +# + +. $STF_SUITE/tests/functional/zstream/zstream.kshlib + +# +# Description: +# Verify that zstream decompress actually decompresses selected WRITE +# records. The input stream contains zstd-compressed writes. +# +# Strategy: +# 1. Decompress selected records (2,0 3,0 128,131072) from the stream +# 2. Run zstream dump -v on both original and decompressed streams +# 3. Verify the selected records now show compression type = 0, +# compressed_size = 0, and payload_size = logical_size +# + +verify_runnable "both" + +log_assert "Verify zstream decompress decompresses selected WRITE records." + +typeset src="$ZSTREAM_DATADIR/decompress.zsend.bz2" +typeset orig="$BACKDIR/decompress.orig.zsend" +typeset decompressed="$BACKDIR/decompress.out.zsend" +typeset orig_dump="$BACKDIR/decompress.orig.dump" +typeset decomp_dump="$BACKDIR/decompress.out.dump" + +# Selected records: object,offset +typeset -a records=(2,0 3,0 128,131072) + +# Decompress the bz2 and run zstream decompress on selected records +bzcat "$src" > "$orig" +log_must eval "zstream decompress ${records[*]} < '$orig' > '$decompressed'" + +# Dump both streams +log_must eval "zstream dump -v < '$orig' > '$orig_dump' 2>&1" +log_must eval "zstream dump -v < '$decompressed' > '$decomp_dump' 2>&1" + +# For each selected record, verify it was decompressed in the output +typeset failed="" +for rec in "${records[@]}"; do + typeset obj=${rec%,*} + typeset off=${rec#*,} + + # Find the WRITE line for this object/offset in the original dump + # and extract the logical_size + typeset orig_line=$(awk \ + "/^WRITE object = $obj .* offset = $off /" \ + "$orig_dump") + typeset lsize=$(echo "$orig_line" | \ + sed 's/.*logical_size = \([0-9]*\).*/\1/') + + # Find the same record in the decompressed dump + typeset decomp_line=$(awk \ + "/^WRITE object = $obj .* offset = $off /" \ + "$decomp_dump") + + # Verify compression type = 0 + if ! echo "$decomp_line" | grep -q 'compression type = 0'; then + log_note "Record $rec: compression type not 0" + log_note " got: $decomp_line" + failed="$failed ${rec}(comp)" + fi + + # Verify compressed_size = 0 (indicates uncompressed) + if ! echo "$decomp_line" | grep -q 'compressed_size = 0'; then + log_note "Record $rec: compressed_size not 0" + failed="$failed ${rec}(csize)" + fi + + # Verify payload_size = logical_size + typeset psize=$(echo "$decomp_line" | \ + sed 's/.*payload_size = \([0-9]*\).*/\1/') + if [[ "$psize" != "$lsize" ]]; then + log_note "Record $rec: payload_size ($psize) != logical_size ($lsize)" + failed="$failed ${rec}(psize)" + fi +done + +[[ -z $failed ]] || \ + log_fail "Decompression verification failed for:$failed" + +log_pass "zstream decompress decompresses selected WRITE records." diff --git a/tests/zfs-tests/tests/functional/zstream/zstream_decompress_002_pos.ksh b/tests/zfs-tests/tests/functional/zstream/zstream_decompress_002_pos.ksh new file mode 100755 index 000000000000..1c7d9b7dcfc0 --- /dev/null +++ b/tests/zfs-tests/tests/functional/zstream/zstream_decompress_002_pos.ksh @@ -0,0 +1,57 @@ +#!/bin/ksh -p +# SPDX-License-Identifier: CDDL-1.0 + +# +# This file and its contents are supplied under the terms of the +# Common Development and Distribution License ("CDDL"), version 1.0. +# You may only use this file in accordance with the terms of version +# 1.0 of the CDDL. +# +# A full copy of the text of the CDDL should have accompanied this +# source. A copy of the CDDL is also available via the Internet at +# http://www.illumos.org/license/CDDL. +# + +# +# Copyright (c) 2026 by Garth Snyder. All rights reserved. +# + +. $STF_SUITE/tests/functional/zstream/zstream.kshlib + +# +# Description: +# Verify that a decompressed stream produces identical filesystem contents +# when received. +# +# Strategy: +# 1. Receive the original decompress.zsend into a test pool and hash files +# 2. Receive the decompressed stream (with records 2,0 3,0 +# and 128,131072 decompressed) +# 3. Verify file hashes are identical +# + +verify_runnable "both" + +log_assert "Verify decompressed stream receives with identical file contents." +log_onexit cleanup_pool $POOL + +typeset src="$ZSTREAM_DATADIR/decompress.zsend.bz2" +typeset orig="$BACKDIR/decompress.orig.zsend" +typeset decompressed="$BACKDIR/decompress.out.zsend" + +typeset -a records=(2,0 3,0 128,131072) + +# Prepare streams +bzcat "$src" > "$orig" +log_must eval "zstream decompress ${records[*]} < '$orig' > '$decompressed'" + +# Receive original and hash +recv_and_hash "$BACKDIR/hash-orig.txt" "$orig" cleanup + +# Receive decompressed and hash +recv_and_hash "$BACKDIR/hash-decomp.txt" "$decompressed" cleanup + +# Compare +log_must diff "$BACKDIR/hash-orig.txt" "$BACKDIR/hash-decomp.txt" + +log_pass "Decompressed stream receives with identical file contents." diff --git a/tests/zfs-tests/tests/functional/zstream/zstream_decompress_003_neg.ksh b/tests/zfs-tests/tests/functional/zstream/zstream_decompress_003_neg.ksh new file mode 100755 index 000000000000..9a394d14f972 --- /dev/null +++ b/tests/zfs-tests/tests/functional/zstream/zstream_decompress_003_neg.ksh @@ -0,0 +1,59 @@ +#!/bin/ksh -p +# SPDX-License-Identifier: CDDL-1.0 + +# +# This file and its contents are supplied under the terms of the +# Common Development and Distribution License ("CDDL"), version 1.0. +# You may only use this file in accordance with the terms of version +# 1.0 of the CDDL. +# +# A full copy of the text of the CDDL should have accompanied this +# source. A copy of the CDDL is also available via the Internet at +# http://www.illumos.org/license/CDDL. +# + +# +# Copyright (c) 2026 by Garth Snyder. All rights reserved. +# + +. $STF_SUITE/tests/functional/zstream/zstream.kshlib + +# +# Description: +# Verify that specifying the wrong compression type (lz4 for a zstd +# stream) causes decompression to fail gracefully, leaving the output +# stream identical to the input. +# +# Strategy: +# 1. Run zstream decompress with lz4 type on zstd-compressed records +# 2. Verify the output stream is byte-identical to the input +# 3. Check stderr for failure messages +# + +verify_runnable "both" + +log_assert "Verify wrong compression type leaves stream unchanged." + +typeset src="$ZSTREAM_DATADIR/decompress.zsend.bz2" +typeset orig="$BACKDIR/decompress.orig" +typeset output="$BACKDIR/decompress-lz4.out" +typeset errfile="$BACKDIR/decompress-lz4.err" + +typeset -a records=(2,0,lz4 3,0,lz4 128,131072,lz4) + +bzcat "$src" > "$orig" + +# Attempt to decompress zstd records as lz4 — should fail for each +zstream decompress ${records[*]} < "$orig" > "$output" 2>"$errfile" + +# Output stream must be identical to input (nothing decompressed) +log_must cmp -s "$orig" "$output" + +# Stderr should contain messages about the failed decompressions +typeset errcount=$(wc -l < "$errfile") +if [[ $errcount -ne 3 ]]; then + log_fail "Did not receive 3 error messages on stderr, got $errcount" +fi +log_note "Got $errcount lines of error output (expected)" + +log_pass "Wrong compression type leaves stream unchanged." diff --git a/tests/zfs-tests/tests/functional/zstream/zstream_decompress_004_pos.ksh b/tests/zfs-tests/tests/functional/zstream/zstream_decompress_004_pos.ksh new file mode 100755 index 000000000000..9b16d89cc17e --- /dev/null +++ b/tests/zfs-tests/tests/functional/zstream/zstream_decompress_004_pos.ksh @@ -0,0 +1,55 @@ +#!/bin/ksh -p +# SPDX-License-Identifier: CDDL-1.0 + +# +# This file and its contents are supplied under the terms of the +# Common Development and Distribution License ("CDDL"), version 1.0. +# You may only use this file in accordance with the terms of version +# 1.0 of the CDDL. +# +# A full copy of the text of the CDDL should have accompanied this +# source. A copy of the CDDL is also available via the Internet at +# http://www.illumos.org/license/CDDL. +# + +# +# Copyright (c) 2026 by Garth Snyder. All rights reserved. +# + +. $STF_SUITE/tests/functional/zstream/zstream.kshlib + +# +# Description: +# Verify that specifying the correct compression type (zstd) produces +# the same output as omitting the type. +# +# Strategy: +# 1. Decompress records without specifying type +# 2. Decompress records specifying zstd as type +# 3. Verify both outputs are identical +# + +verify_runnable "both" + +log_assert "Verify explicit correct compression type matches default." + +typeset src="$ZSTREAM_DATADIR/decompress.zsend.bz2" +typeset orig="$BACKDIR/decompress.orig" +typeset out_default="$BACKDIR/decompress-default.out" +typeset out_zstd="$BACKDIR/decompress-zstd.out" + +typeset -a records=(2,0 3,0 128,131072) +typeset -a zstd_records=(2,0,zstd 3,0,zstd 128,131072,zstd) + +bzcat "$src" > "$orig" + +# Decompress without specifying type +log_must eval "zstream decompress ${records[*]} < '$orig' > '$out_default'" + +# Decompress specifying zstd +log_must eval "zstream decompress ${zstd_records[*]} < '$orig' > '$out_zstd'" + +# Both outputs must be identical +log_must cmp -s "$out_default" "$out_zstd" + +log_pass "Explicit correct compression type matches default." diff --git a/tests/zfs-tests/tests/functional/zstream/zstream_decompress_005_pos.ksh b/tests/zfs-tests/tests/functional/zstream/zstream_decompress_005_pos.ksh new file mode 100755 index 000000000000..b5dfb518ae24 --- /dev/null +++ b/tests/zfs-tests/tests/functional/zstream/zstream_decompress_005_pos.ksh @@ -0,0 +1,119 @@ +#!/bin/ksh -p +# SPDX-License-Identifier: CDDL-1.0 + +# +# This file and its contents are supplied under the terms of the +# Common Development and Distribution License ("CDDL"), version 1.0. +# You may only use this file in accordance with the terms of version +# 1.0 of the CDDL. +# +# A full copy of the text of the CDDL should have accompanied this +# source. A copy of the CDDL is also available via the Internet at +# http://www.illumos.org/license/CDDL. +# + +# +# Copyright (c) 2026 by Garth Snyder. All rights reserved. +# + +. $STF_SUITE/tests/functional/zstream/zstream.kshlib + +# +# Description: +# Verify that zstream decompress with "off" as the compression type +# changes record headers to mark them as uncompressed but leaves the +# actual data payload untouched. This means the received files will +# contain raw compressed data (junk) for the affected records. +# +# Strategy: +# 1. Decompress selected records with type "off" +# 2. Verify via zstream dump that selected records now show +# compression type = 0 and logical_size is unchanged +# 3. Receive both original and "off" streams into a test pool +# 4. Verify that file hashes differ (junk data in affected files) +# + +verify_runnable "both" + +log_assert "Verify decompress with 'off' changes headers but not data." +log_onexit cleanup_pool $POOL + +typeset src="$ZSTREAM_DATADIR/decompress.zsend.bz2" +typeset orig="$BACKDIR/decompress.orig" +typeset off_out="$BACKDIR/decompress-off.out" +typeset orig_dump="$BACKDIR/decompress-orig.dump" +typeset off_dump="$BACKDIR/decompress-off.dump" + +typeset -a records=(2,0 3,0 128,131072) +typeset -a off_records=(2,0,off 3,0,off 128,131072,off) + +bzcat "$src" > "$orig" + +log_must eval "zstream decompress ${off_records[*]} < '$orig' > '$off_out'" + +# Dump both streams +log_must eval "zstream dump -v < '$orig' > '$orig_dump' 2>&1" +log_must eval "zstream dump -v < '$off_out' > '$off_dump' 2>&1" + +# Verify selected records show compression type = 0 with same logical_size +typeset failed="" +for rec in "${records[@]}"; do + typeset obj=${rec%,*} + typeset off=${rec#*,} + + typeset orig_line=$(awk \ + "/^WRITE object = $obj .* offset = $off /" \ + "$orig_dump") + typeset orig_lsize=$(echo "$orig_line" | \ + sed 's/.*logical_size = \([0-9]*\).*/\1/') + typeset orig_csize=$(echo "$orig_line" | \ + sed 's/.*compressed_size = \([0-9]*\).*/\1/') + typeset orig_ctype=$(echo "$orig_line" | \ + sed 's/.*compression type = \([0-9]*\).*/\1/') + + typeset off_line=$(awk \ + "/^WRITE object = $obj .* offset = $off /" \ + "$off_dump") + typeset off_lsize=$(echo "$off_line" | \ + sed 's/.*logical_size = \([0-9]*\).*/\1/') + typeset off_csize=$(echo "$off_line" | \ + sed 's/.*compressed_size = \([0-9]*\).*/\1/') + typeset off_ctype=$(echo "$off_line" | \ + sed 's/.*compression type = \([0-9]*\).*/\1/') + + if [[ "$orig_ctype" == "0" ]]; then + log_note "Record $rec: original compression type is 0" + failed="$failed ${rec}(orig ctype)" + fi + if [[ "$off_ctype" != "0" ]]; then + log_note "Record $rec: modified compression type is not 0" + failed="$failed ${rec}(modified ctype)" + fi + if [[ "$off_lsize" != "$orig_csize" ]]; then + log_note "Record $rec: modified logical_size != original " \ + "compressed_size ($orig_lsize -> $off_lsize)" + failed="$failed ${rec}(lsize)" + fi + if [[ "$off_csize" != "0" ]]; then + log_note "Record $rec: modified compressed_size != 0 " \ + "($orig_csize -> $off_csize)" + failed="$failed ${rec}(csize)" + fi +done + +[[ -z $failed ]] || \ + log_fail "Header verification failed for:$failed" + +# Receive original and hash +recv_and_hash "$BACKDIR/hash-orig.txt" "$orig" cleanup + +# Receive "off" stream and hash +recv_and_hash "$BACKDIR/hash-off.txt" "$off_out" cleanup + +# Hashes must differ (affected files now contain junk data) +if diff -q "$BACKDIR/hash-orig.txt" "$BACKDIR/hash-off.txt" \ + > /dev/null 2>&1; then + log_fail "Expected file contents to differ, but hashes are identical" +fi + +log_pass "Decompress with 'off' changes headers but not data." diff --git a/tests/zfs-tests/tests/functional/zstream/zstream_decompress_006_neg.ksh b/tests/zfs-tests/tests/functional/zstream/zstream_decompress_006_neg.ksh new file mode 100755 index 000000000000..32ce347e4afa --- /dev/null +++ b/tests/zfs-tests/tests/functional/zstream/zstream_decompress_006_neg.ksh @@ -0,0 +1,61 @@ +#!/bin/ksh -p +# SPDX-License-Identifier: CDDL-1.0 + +# +# This file and its contents are supplied under the terms of the +# Common Development and Distribution License ("CDDL"), version 1.0. +# You may only use this file in accordance with the terms of version +# 1.0 of the CDDL. +# +# A full copy of the text of the CDDL should have accompanied this +# source. A copy of the CDDL is also available via the Internet at +# http://www.illumos.org/license/CDDL. +# + +# +# Copyright (c) 2026 by Garth Snyder. All rights reserved. +# + +. $STF_SUITE/tests/functional/zstream/zstream.kshlib + +# +# Description: +# Verify that zstream decompress prints a warning to stderr for encrypted +# WRITES, attempts to decompress anyway, fails, and leaves stream unchanged. +# +# Strategy: +# 1. Select compressed encrypted records from decompress-crypt.zsend +# 2. Attempt to decompress them +# 3. Verify stderr contains warnings for each record +# 4. Verify output stream is byte-identical to input +# + +verify_runnable "both" + +log_assert "Verify that zstream decompress handles encrypted records correctly." + +typeset src="$ZSTREAM_DATADIR/decompress-crypt.zsend.bz2" +typeset orig="$BACKDIR/decompress-crypt.orig" +typeset output="$BACKDIR/decompress-crypt.out" +typeset errfile="$BACKDIR/decompress-crypt.err" + + + +typeset -a records=(2,0 3,0 36,0) + +bzcat "$src" > "$orig" + +# Attempt to decompress encrypted records +zstream decompress ${records[*]} < "$orig" > "$output" 2>"$errfile" + +# Output stream must be identical to input +log_must cmp -s "$orig" "$output" + +# Stderr should contain warnings about each record +typeset errcount=$(wc -l < "$errfile") +if [[ $errcount -ne 6 ]]; then + log_fail "Expected 6 messages on stderr, got $errcount" +fi +log_note "Got $errcount lines of warning output (expected)" + +log_pass "Encrypted records refuse to decompress." diff --git a/tests/zfs-tests/tests/functional/rsend/send-zstream_drop_record.ksh b/tests/zfs-tests/tests/functional/zstream/zstream_drop_record_001_pos.ksh similarity index 93% rename from tests/zfs-tests/tests/functional/rsend/send-zstream_drop_record.ksh rename to tests/zfs-tests/tests/functional/zstream/zstream_drop_record_001_pos.ksh index a2e810fd40dc..25ffcb3015c7 100755 --- a/tests/zfs-tests/tests/functional/rsend/send-zstream_drop_record.ksh +++ b/tests/zfs-tests/tests/functional/zstream/zstream_drop_record_001_pos.ksh @@ -16,8 +16,7 @@ # Copyright (c) 2026 by ConnectWise. All rights reserved. # -. $STF_SUITE/tests/functional/rsend/rsend.kshlib -. $STF_SUITE/include/math.shlib +. $STF_SUITE/tests/functional/zstream/zstream.kshlib # # Description: @@ -32,10 +31,10 @@ verify_runnable "both" log_assert "Verify zstream drop_record correctly drops records." -log_onexit cleanup_pool $POOL2 +log_onexit cleanup_pool $POOL -typeset sendfs=$POOL2/fs -typeset recvfs=$POOL2/fs2 +typeset sendfs=$POOL/fs +typeset recvfs=$POOL/fs2 typeset stream=$BACKDIR/stream typeset filtered=$BACKDIR/filtered typeset dump=$BACKDIR/dump diff --git a/tests/zfs-tests/tests/functional/rsend/send-c_zstreamdump.ksh b/tests/zfs-tests/tests/functional/zstream/zstream_dump_001_pos.ksh similarity index 90% rename from tests/zfs-tests/tests/functional/rsend/send-c_zstreamdump.ksh rename to tests/zfs-tests/tests/functional/zstream/zstream_dump_001_pos.ksh index 5ff2cbf0c6a9..c604f36c52fa 100755 --- a/tests/zfs-tests/tests/functional/rsend/send-c_zstreamdump.ksh +++ b/tests/zfs-tests/tests/functional/zstream/zstream_dump_001_pos.ksh @@ -17,12 +17,11 @@ # Copyright (c) 2020 by Datto, Inc. All rights reserved. # -. $STF_SUITE/tests/functional/rsend/rsend.kshlib -. $STF_SUITE/include/math.shlib +. $STF_SUITE/tests/functional/zstream/zstream.kshlib # # Description: -# Verify compression features show up in zstream dump +# Verify that compression features show up in zstream dump # # Strategy: # 1. Create a full compressed send stream @@ -36,11 +35,11 @@ verify_runnable "both" log_assert "Verify zstream dump correctly interprets compressed send streams." -log_onexit cleanup_pool $POOL2 +log_onexit cleanup_pool $POOL -typeset sendfs=$POOL2/fs -typeset streamfs=$POOL2/fs2 -typeset recvfs=$POOL2/fs3 +typeset sendfs=$POOL/fs +typeset streamfs=$POOL/fs2 +typeset recvfs=$POOL/fs3 log_must zfs create -o compress=lz4 $sendfs log_must zfs create -o compress=lz4 $streamfs diff --git a/tests/zfs-tests/tests/functional/zstream/zstream_dump_002_pos.ksh b/tests/zfs-tests/tests/functional/zstream/zstream_dump_002_pos.ksh new file mode 100755 index 000000000000..558a79a29659 --- /dev/null +++ b/tests/zfs-tests/tests/functional/zstream/zstream_dump_002_pos.ksh @@ -0,0 +1,84 @@ +#!/bin/ksh -p +# SPDX-License-Identifier: CDDL-1.0 + +# +# This file and its contents are supplied under the terms of the +# Common Development and Distribution License ("CDDL"), version 1.0. +# You may only use this file in accordance with the terms of version +# 1.0 of the CDDL. +# +# A full copy of the text of the CDDL should have accompanied this +# source. A copy of the CDDL is also available via the Internet at +# http://www.illumos.org/license/CDDL. +# + +# +# Copyright (c) 2026 by Garth Snyder. All rights reserved. +# + +. $STF_SUITE/tests/functional/zstream/zstream.kshlib + +# +# Description: +# Verify that zstream dump -v output is as expected for pregenerated +# same-endian, neutral (no BEGIN nvlists), and XDR-encoded test streams. +# NV_ENCODE_NATIVE-encoded BEGIN records aren't readable on opposite-endian +# systems, so for these the output of zstream dump varies according to +# host endianness. +# +# Strategy: +# 1. For each of the test streams, run zstream dump -v +# 2. Compare stdout+stderr with the corresponding reference dump +# + +verify_runnable "both" + +log_assert "Verify zstream dump -v output matches reference dump files." + +typeset sys_endian=$(get_system_endian) + +typeset -a streams=( + decompress + decompress-crypt + little-endian-long-payloads + big-endian-long-payloads + big-endian-all-drr-types-base-XDR + big-endian-all-drr-types-incr-XDR + little-endian-all-drr-types-base-XDR + little-endian-all-drr-types-incr-XDR +) + +if [[ $sys_endian == "little" ]]; then + streams+=( + little-endian-all-drr-types-base-NATIVE + little-endian-all-drr-types-incr-NATIVE + ) +else + streams+=( + big-endian-all-drr-types-base-NATIVE + big-endian-all-drr-types-incr-NATIVE + ) +fi + +typeset failed="" + +for stem in "${streams[@]}"; do + typeset abbrev=$(get_stream_abbrev "$stem") + typeset ref_src="$ZSTREAM_DATADIR/${abbrev}-new.dump.bz2" + typeset send_src="$ZSTREAM_DATADIR/${stem}.zsend.bz2" + typeset ref="$BACKDIR/${abbrev}-new.dump" + typeset out="$BACKDIR/${abbrev}-out.dump" + + bzcat "$send_src" | zstream dump -v > "$out" 2>&1 + bzcat "$ref_src" > "$ref" + + if ! diff -q "$ref" "$out" > /dev/null 2>&1; then + log_note "MISMATCH: $stem (abbrev $abbrev)" + log_note "$(diff "$ref" "$out")" + failed="$failed $stem" + fi +done + +[[ -z $failed ]] || log_fail "Dump output mismatch for:$failed" + +log_pass "zstream dump -v output matches reference dump files." diff --git a/tests/zfs-tests/tests/functional/zstream/zstream_dump_003_pos.ksh b/tests/zfs-tests/tests/functional/zstream/zstream_dump_003_pos.ksh new file mode 100755 index 000000000000..edcfe877a93b --- /dev/null +++ b/tests/zfs-tests/tests/functional/zstream/zstream_dump_003_pos.ksh @@ -0,0 +1,96 @@ +#!/bin/ksh -p +# SPDX-License-Identifier: CDDL-1.0 + +# +# This file and its contents are supplied under the terms of the +# Common Development and Distribution License ("CDDL"), version 1.0. +# You may only use this file in accordance with the terms of version +# 1.0 of the CDDL. +# +# A full copy of the text of the CDDL should have accompanied this +# source. A copy of the CDDL is also available via the Internet at +# http://www.illumos.org/license/CDDL. +# + +# +# Copyright (c) 2026 by Garth Snyder. All rights reserved. +# + +. $STF_SUITE/tests/functional/zstream/zstream.kshlib + +# +# Description: +# Verify that zstream dump -v output for all same-endian and XDR-encoded +# test streams matches that of the previous version of zstream, with the +# following exceptions: +# +# 1. Add a line that describes the nvlist packing format for BEGIN records +# 2. Include DRR_OBJECT_RANGE and DRR_REDACT records in end summary +# +# The previous version of zstream does not dump opposite-endian streams +# correctly, so these don't have a comparison basis. +# + +verify_runnable "both" + +log_assert "Verify old-vs-new dump diff contains only expected additions." + +typeset sys_endian=$(get_system_endian) + +typeset -a streams=( + little-endian-long-payloads + big-endian-long-payloads + little-endian-all-drr-types-base-XDR + little-endian-all-drr-types-incr-XDR + big-endian-all-drr-types-base-XDR + big-endian-all-drr-types-incr-XDR +) + +if [[ $sys_endian == "little" ]]; then + streams+=( + little-endian-all-drr-types-base-NATIVE + little-endian-all-drr-types-incr-NATIVE + ) +else + streams+=( + big-endian-all-drr-types-base-NATIVE + big-endian-all-drr-types-incr-NATIVE + ) +fi + +typeset failed="" + +for stem in "${streams[@]}"; do + + typeset send_src="$ZSTREAM_DATADIR/${stem}.zsend.bz2" + typeset ref="$BACKDIR/${abbrev}-new.dump" + typeset out="$BACKDIR/${abbrev}-out.dump" + + typeset abbrev=$(get_stream_abbrev "$stem") + typeset send_src="$ZSTREAM_DATADIR/${stem}.zsend.bz2" + typeset old_src="$ZSTREAM_DATADIR/${abbrev}-old.dump.bz2" + typeset new_dump="$BACKDIR/${abbrev}-new.dump" + typeset old_dump="$BACKDIR/${abbrev}-old.dump" + typeset filtered="$BACKDIR/${abbrev}-filtered.dump" + + bzcat "$send_src" | zstream dump -v > "$new_dump" 2>&1 + bzcat "$old_src" > "$old_dump" + + # Remove the lines that are new additions: + # 1. "nvlist encoding = ..." lines + # 2. Summary lines for DRR_OBJECT_RANGE and DRR_REDACT + grep -v '^nvlist encoding = ' "$new_dump" | \ + grep -v 'Total DRR_OBJECT_RANGE records' | \ + grep -v 'Total DRR_REDACT records' > "$filtered" + + if ! diff -q "$old_dump" "$filtered" > /dev/null 2>&1; then + log_note "MISMATCH after filtering: $stem (abbrev $abbrev)" + log_note "$(diff "$old_dump" "$filtered")" + failed="$failed $stem" + fi +done + +[[ -z $failed ]] || \ + log_fail "Filtered new dump did not match old dump for:$failed" + +log_pass "Old-vs-new dump diff contains only expected additions." diff --git a/tests/zfs-tests/tests/functional/zstream/zstream_dump_004_neg.ksh b/tests/zfs-tests/tests/functional/zstream/zstream_dump_004_neg.ksh new file mode 100755 index 000000000000..0bf7c82d635b --- /dev/null +++ b/tests/zfs-tests/tests/functional/zstream/zstream_dump_004_neg.ksh @@ -0,0 +1,88 @@ +#!/bin/ksh -p +# SPDX-License-Identifier: CDDL-1.0 + +# +# This file and its contents are supplied under the terms of the +# Common Development and Distribution License ("CDDL"), version 1.0. +# You may only use this file in accordance with the terms of version +# 1.0 of the CDDL. +# +# A full copy of the text of the CDDL should have accompanied this +# source. A copy of the CDDL is also available via the Internet at +# http://www.illumos.org/license/CDDL. +# + +# +# Copyright (c) 2026 by Garth Snyder. All rights reserved. +# + +. $STF_SUITE/tests/functional/zstream/zstream.kshlib + +# +# Description: +# Verify that zstream dump on non-native-endian NATIVE-encoded streams +# eventually exits with code ENOTSUP (95 on Linux, 45 on FreeBSD) but +# still dumps the complete stream (minus nondecodable nvlists) and +# prints the rollup summary. +# +# Strategy: +# 1. Determine system endianness to identify non-native NATIVE streams +# 2. Run zstream dump -v on each non-native NATIVE stream +# 3. Verify exit code is 95 (ENOTSUP) +# 4. Verify that SUMMARY section is present and complete +# + +verify_runnable "both" + +log_assert "Non-native NATIVE-encoded streams exit with code 95." + +typeset sys_endian=$(get_system_endian) + +if [[ $sys_endian == "little" ]]; then + typeset -a streams=( + big-endian-all-drr-types-base-NATIVE + big-endian-all-drr-types-incr-NATIVE + ) +else + typeset -a streams=( + little-endian-all-drr-types-base-NATIVE + little-endian-all-drr-types-incr-NATIVE + ) +fi + +typeset failed="" + +for stem in "${streams[@]}"; do + typeset out="$BACKDIR/${stem}-out.dump" + typeset stream="$ZSTREAM_DATADIR/${stem}.zsend.bz2" + + bzcat "$stream" | zstream dump -v > "$out" 2>&1 + typeset rc=$? + + if [[ $rc -ne 45 && $rc -ne 95 ]]; then + log_note "$stem: expected exit code 45 or 95, got $rc" + failed="$failed ${stem}(rc=$rc)" + fi + + # Verify the SUMMARY section is present + if ! grep -q '^SUMMARY:' "$out"; then + log_note "$stem: missing SUMMARY section" + failed="$failed ${stem}(no-summary)" + fi + + # Verify key summary lines are present + if ! grep -q 'Total DRR_BEGIN records' "$out"; then + log_note "$stem: missing DRR_BEGIN in summary" + failed="$failed ${stem}(incomplete-summary)" + fi + + if ! grep -q 'Total stream length' "$out"; then + log_note "$stem: missing total stream length in summary" + failed="$failed ${stem}(no-stream-length)" + fi +done + +[[ -z $failed ]] || \ + log_fail "Non-native NATIVE stream check failed:$failed" + +log_pass "Non-native NATIVE-encoded streams exit with code 95." diff --git a/tests/zfs-tests/tests/functional/rsend/send-c_zstream_recompress.ksh b/tests/zfs-tests/tests/functional/zstream/zstream_recompress_001_pos.ksh similarity index 91% rename from tests/zfs-tests/tests/functional/rsend/send-c_zstream_recompress.ksh rename to tests/zfs-tests/tests/functional/zstream/zstream_recompress_001_pos.ksh index 81c7e24a2204..ea332a32b833 100755 --- a/tests/zfs-tests/tests/functional/rsend/send-c_zstream_recompress.ksh +++ b/tests/zfs-tests/tests/functional/zstream/zstream_recompress_001_pos.ksh @@ -16,8 +16,7 @@ # Copyright (c) 2022 by Delphix. All rights reserved. # -. $STF_SUITE/tests/functional/rsend/rsend.kshlib -. $STF_SUITE/include/math.shlib +. $STF_SUITE/tests/functional/zstream/zstream.kshlib # # Description: @@ -36,10 +35,10 @@ verify_runnable "both" log_assert "Verify zstream recompress correctly modifies send streams." -log_onexit cleanup_pool $POOL2 +log_onexit cleanup_pool $POOL -typeset sendfs=$POOL2/fs -typeset recvfs=$POOL2/fs2 +typeset sendfs=$POOL/fs +typeset recvfs=$POOL/fs2 log_must zfs create -o compress=lz4 $sendfs typeset dir=$(get_prop mountpoint $sendfs) diff --git a/tests/zfs-tests/tests/functional/zstream/zstream_recompress_002_pos.ksh b/tests/zfs-tests/tests/functional/zstream/zstream_recompress_002_pos.ksh new file mode 100755 index 000000000000..3183357d4aaf --- /dev/null +++ b/tests/zfs-tests/tests/functional/zstream/zstream_recompress_002_pos.ksh @@ -0,0 +1,51 @@ +#!/bin/ksh -p +# SPDX-License-Identifier: CDDL-1.0 + +# +# This file and its contents are supplied under the terms of the +# Common Development and Distribution License ("CDDL"), version 1.0. +# You may only use this file in accordance with the terms of version +# 1.0 of the CDDL. +# +# A full copy of the text of the CDDL should have accompanied this +# source. A copy of the CDDL is also available via the Internet at +# http://www.illumos.org/license/CDDL. +# + +# +# Copyright (c) 2024 by the OpenZFS project. All rights reserved. +# + +. $STF_SUITE/tests/functional/zstream/zstream.kshlib + +# +# Description: +# Verify that recompressing a send stream and then decompressing it +# with zstream produces a stream identical to the original. +# +# Strategy: +# 1. Create an filesystem with compressible data +# 2. Generate a replication send stream +# 3. Pipe the stream through zstream recompress lz4 | zstream recompress off +# 4. Verify the result is byte-identical to the original stream +# + +verify_runnable "both" + +log_assert "Verify zstream recompress round-trip produces identical stream." +log_onexit cleanup_pool $POOL + +typeset sendfs=$POOL/fs + +log_must zfs create $sendfs +typeset dir=$(get_prop mountpoint $sendfs) +write_compressible $dir 16m +log_must zfs snapshot $sendfs@snap + +log_must eval "zfs send -R $sendfs@snap >$BACKDIR/original" +log_must eval "zstream recompress lz4 <$BACKDIR/original | \ + zstream recompress off >$BACKDIR/roundtrip" + +log_must cmp $BACKDIR/original $BACKDIR/roundtrip + +log_pass "zstream recompress round-trip produces identical stream." diff --git a/tests/zfs-tests/tests/functional/zstream/zstream_recompress_003_pos.ksh b/tests/zfs-tests/tests/functional/zstream/zstream_recompress_003_pos.ksh new file mode 100755 index 000000000000..194baa43e900 --- /dev/null +++ b/tests/zfs-tests/tests/functional/zstream/zstream_recompress_003_pos.ksh @@ -0,0 +1,64 @@ +#!/bin/ksh -p +# SPDX-License-Identifier: CDDL-1.0 + +# +# This file and its contents are supplied under the terms of the +# Common Development and Distribution License ("CDDL"), version 1.0. +# You may only use this file in accordance with the terms of version +# 1.0 of the CDDL. +# +# A full copy of the text of the CDDL should have accompanied this +# source. A copy of the CDDL is also available via the Internet at +# http://www.illumos.org/license/CDDL. +# + +# +# Copyright (c) 2026 by Garth Snyder. All rights reserved. +# + +. $STF_SUITE/tests/functional/zstream/zstream.kshlib + +# +# Description: +# Verify that zstream recompress with zstd at level 19 produces a smaller +# stream that receives with identical file contents. +# +# Strategy: +# 1. Receive the original stream and compute file hashes as baseline +# 2. Recompress the stream with zstd-19 +# 3. Verify the recompressed stream is smaller than the original +# 4. Receive the recompressed stream and verify file hashes match +# + +verify_runnable "both" + +log_assert "Verify zstream recompress with zstd-19 produces smaller stream." +log_onexit cleanup_pool $POOL + +typeset src="$ZSTREAM_DATADIR/decompress.zsend.bz2" +typeset orig="$BACKDIR/recompress.orig" +typeset recompressed="$BACKDIR/recompress-zstd19.out" +typeset orig_hash="$BACKDIR/hash-baseline.txt" +typeset rc_hash="$BACKDIR/hash-rc.txt" + +bzcat "$src" > "$orig" + +# Baseline: receive original and hash +recv_and_hash "$orig_hash" "$orig" cleanup + +# Recompress with zstd at level 19 +log_must eval "zstream recompress -l 19 zstd \ + < '$orig' > '$recompressed'" + +# Verify size is smaller +typeset orig_size=$(wc -c < "$orig") +typeset recomp_size=$(wc -c < "$recompressed") +log_note "Original size: $orig_size, recompressed size: $recomp_size" +[[ $recomp_size -lt $orig_size ]] || \ + log_fail "Recompressed stream ($recomp_size) not smaller than original ($orig_size)" + +# Receive recompressed and verify +recv_and_hash "$rc_hash" "$recompressed" cleanup +log_must diff "$orig_hash" "$rc_hash" + +log_pass "zstream recompress with zstd-19 produces smaller stream." diff --git a/tests/zfs-tests/tests/functional/zstream/zstream_recompress_004_pos.ksh b/tests/zfs-tests/tests/functional/zstream/zstream_recompress_004_pos.ksh new file mode 100755 index 000000000000..c72eff14086f --- /dev/null +++ b/tests/zfs-tests/tests/functional/zstream/zstream_recompress_004_pos.ksh @@ -0,0 +1,61 @@ +#!/bin/ksh -p +# SPDX-License-Identifier: CDDL-1.0 + +# +# This file and its contents are supplied under the terms of the +# Common Development and Distribution License ("CDDL"), version 1.0. +# You may only use this file in accordance with the terms of version +# 1.0 of the CDDL. +# +# A full copy of the text of the CDDL should have accompanied this +# source. A copy of the CDDL is also available via the Internet at +# http://www.illumos.org/license/CDDL. +# + +# +# Copyright (c) 2026 by Garth Snyder. All rights reserved. +# + +. $STF_SUITE/tests/functional/zstream/zstream.kshlib + +# +# Description: +# Verify that zstream recompress with "off" produces a larger (uncompressed) +# stream that still receives with identical file contents. +# +# Strategy: +# 1. Receive the original stream and compute file hashes as baseline +# 2. Recompress with "off" (decompress) +# 3. Verify the output stream is larger than the original +# 4. Receive and verify file hashes match +# + +verify_runnable "both" + +log_assert "Verify zstream recompress with 'off' produces larger stream." +log_onexit cleanup_pool $POOL + +typeset src="$ZSTREAM_DATADIR/decompress.zsend.bz2" +typeset orig="$BACKDIR/recompress.orig" +typeset uncompressed="$BACKDIR/recompress-off.out" + +bzcat "$src" > "$orig" + +# Baseline +recv_and_hash "$BACKDIR/hash-baseline.txt" "$orig" cleanup + +# Recompress with off +log_must eval "zstream recompress off < '$orig' > '$uncompressed'" + +# Verify size is larger +typeset orig_size=$(wc -c < "$orig") +typeset uncomp_size=$(wc -c < "$uncompressed") +log_note "Original size: $orig_size, uncompressed size: $uncomp_size" +[[ $uncomp_size -gt $orig_size ]] || \ + log_fail "Uncompressed stream ($uncomp_size) not larger than original ($orig_size)" + +# Receive and verify +recv_and_hash "$BACKDIR/hash-off.txt" "$uncompressed" cleanup +log_must diff "$BACKDIR/hash-baseline.txt" "$BACKDIR/hash-off.txt" + +log_pass "zstream recompress with 'off' produces larger stream." diff --git a/tests/zfs-tests/tests/functional/zstream/zstream_recompress_005_pos.ksh b/tests/zfs-tests/tests/functional/zstream/zstream_recompress_005_pos.ksh new file mode 100755 index 000000000000..374ab2841a39 --- /dev/null +++ b/tests/zfs-tests/tests/functional/zstream/zstream_recompress_005_pos.ksh @@ -0,0 +1,62 @@ +#!/bin/ksh -p +# SPDX-License-Identifier: CDDL-1.0 + +# +# This file and its contents are supplied under the terms of the +# Common Development and Distribution License ("CDDL"), version 1.0. +# You may only use this file in accordance with the terms of version +# 1.0 of the CDDL. +# +# A full copy of the text of the CDDL should have accompanied this +# source. A copy of the CDDL is also available via the Internet at +# http://www.illumos.org/license/CDDL. +# + +# +# Copyright (c) 2026 by Garth Snyder. All rights reserved. +# + +. $STF_SUITE/tests/functional/zstream/zstream.kshlib + +# +# Description: +# Verify that zstream recompress lz4 of a zstd-5-compressed input stream +# yields a stream with a nonidentical size that zfs receives with identical +# file contents. +# +# Strategy: +# 1. Receive the original stream and compute file hashes as baseline +# 2. Recompress with lz4 +# 3. Verify the output stream size differs from the original +# 4. Receive and verify file hashes match +# + +verify_runnable "both" + +log_assert "Verify zstream recompress with lz4 preserves data." +log_onexit cleanup_pool $POOL + +typeset src="$ZSTREAM_DATADIR/decompress.zsend.bz2" +typeset orig="$BACKDIR/recompress.orig" +typeset lz4_out="$BACKDIR/recompress-lz4.out" + +bzcat "$src" > "$orig" + +# Baseline +recv_and_hash "$BACKDIR/hash-baseline.txt" "$orig" cleanup + +# Recompress with lz4 +log_must eval "zstream recompress lz4 < '$orig' > '$lz4_out'" + +# Verify size is different +typeset orig_size=$(wc -c < "$orig") +typeset lz4_size=$(wc -c < "$lz4_out") +log_note "Original size: $orig_size, lz4 size: $lz4_size" +[[ $lz4_size -ne $orig_size ]] || \ + log_fail "LZ4 stream size ($lz4_size) same as original ($orig_size)" + +# Receive and verify +recv_and_hash "$BACKDIR/hash-lz4.txt" "$lz4_out" cleanup +log_must diff "$BACKDIR/hash-baseline.txt" "$BACKDIR/hash-lz4.txt" + +log_pass "zstream recompress with lz4 preserves data." diff --git a/tests/zfs-tests/tests/functional/zstream/zstream_redup_001_pos.ksh b/tests/zfs-tests/tests/functional/zstream/zstream_redup_001_pos.ksh new file mode 100755 index 000000000000..475d4b670c38 --- /dev/null +++ b/tests/zfs-tests/tests/functional/zstream/zstream_redup_001_pos.ksh @@ -0,0 +1,79 @@ +#!/bin/ksh -p +# SPDX-License-Identifier: CDDL-1.0 + +# +# This file and its contents are supplied under the terms of the +# Common Development and Distribution License ("CDDL"), version 1.0. +# You may only use this file in accordance with the terms of version +# 1.0 of the CDDL. +# +# A full copy of the text of the CDDL should have accompanied this +# source. A copy of the CDDL is also available via the Internet at +# http://www.illumos.org/license/CDDL. +# + +# +# Copyright (c) 2026 by Garth Snyder. All rights reserved. +# + +. $STF_SUITE/tests/functional/zstream/zstream.kshlib + +# +# Description: +# +# Verify that zstream redup produces output identical to input for same-endian +# test streams These input files contain no dedup records. However, the round +# trip does involve the full pipeline as well as validating and regenerating all +# checksums, so this is a useful check. +# +# Strategy: +# 1. For each of the same-endian test streams, decompress with bzcat +# 2. Pipe through zstream redup +# 3. Compare with cmp against the original decompressed stream +# + +verify_runnable "both" + +log_assert "Verify zstream redup is an identity transform on non-dedup streams." + +typeset sys_endian=$(get_system_endian) + +if [[ $sys_endian == "little" ]]; then + typeset -a streams=( + decompress + decompress-crypt + little-endian-all-drr-types-base-NATIVE + little-endian-all-drr-types-base-XDR + little-endian-all-drr-types-incr-NATIVE + little-endian-all-drr-types-incr-XDR + ) +else + typeset -a streams=( + big-endian-all-drr-types-base-NATIVE + big-endian-all-drr-types-base-XDR + big-endian-all-drr-types-incr-NATIVE + big-endian-all-drr-types-incr-XDR + ) +fi + +typeset failed="" + +for stem in "${streams[@]}"; do + typeset src="$ZSTREAM_DATADIR/${stem}.zsend.bz2" + typeset orig="$BACKDIR/${stem}.orig" + typeset redup_out="$BACKDIR/${stem}.redup" + + bzcat "$src" > "$orig" + zstream redup "$orig" > "$redup_out" + + if ! cmp -s "$orig" "$redup_out"; then + log_note "MISMATCH: zstream redup output differs for $stem" + failed="$failed $stem" + fi + + rm -f "$orig" "$redup_out" +done + +[[ -z $failed ]] || log_fail "Redup identity check failed for:$failed" + +log_pass "zstream redup is an identity transform on non-dedup streams."